V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
echojoy
V2EX  ›  问与答

大家的主语言都是什么啊,为什么选择他(她)

  •  
  •   echojoy · 128 天前 · 1626 次点击
    这是一个创建于 128 天前的主题,其中的信息可能已经有所发展或是发生改变。

    是为了快乐编程选择 ruby ,还是因为走上人工智能和机器学习而选择的 python ,或者喜欢为网页而选择前端

    23 条回复    2022-04-11 13:22:10 +08:00
    Inn0Vat10n
        1
    Inn0Vat10n  
       128 天前   ❤️ 6
    我不需选择语言,是语言选择了我
    leimao
        2
    leimao  
       128 天前
    C->Python->C++
    sadfQED2
        3
    sadfQED2  
       128 天前 via Android
    php java go python ,因为钱
    realkaiway
        4
    realkaiway  
       128 天前 via iPhone
    Java>>>JavaScript>>>TypeScript>>>Node
    从 Java 到 JavaScript 最根本的原因是钱给的多,而且 JS 这门语言的可能性很多,其他的算是业务上的需要~
    EscYezi
        5
    EscYezi  
       128 天前 via iPhone
    java ,当时只是觉得 java 能做的事情很多,后来一看工作岗位确实很多。
    cmdOptionKana
        6
    cmdOptionKana  
       128 天前
    如果是指工作,影响因素很多,未必能反映个人选择。
    ericls
        7
    ericls  
       128 天前 via iPhone
    语言是作品的属性 不是程序员的属性
    wonderfulcxm
        8
    wonderfulcxm  
       128 天前 via iPhone
    PHP ,因为听说是最好的语言,啊不是,因为 WordPress 天下第一,啊好像也不是,因为我不思进取,是的!😂
    Procumbens
        9
    Procumbens  
       128 天前   ❤️ 1
    为什么是他 /她 不是它?
    ldm0
        10
    ldm0  
       128 天前
    因为快乐选择 Rust
    ETiV
        11
    ETiV  
       128 天前 via iPhone
    小学初中:小霸王和文曲星的 BASIC 、
    高中:ActionScript 、网页 JS 、
    大学毕业后:PHP 、C/C++、网页和 Node JS

    我是纯喜欢写代码而做这份工作…
    foam
        12
    foam  
       128 天前
    我在不同场景选择不同语言。
    公司工作需要:golang, node.js
    想写个开源工具,不希望使用者装依赖,用 golang
    在写个开源玩具,本想用 golang ,理由同上。但是依赖的库是 node.js 写的,不想移植过去了,用 node.js 写,问题不大
    写点测试小脚本,php 使用库函数不需要各种 import ,require ,写起来快,用 php
    写点 mac 原生 app ,原本用 golang 的 cgo 来写,但和 OC 调用时太多不安全指针,且在 oc 申请的内存很难回收,内存泄露严重,所以只好用 swift 写

    所以哪个语言在哪种场景适合,我就用哪种语言,不存在主语言。
    如果主语言的意思是:
    - 最喜欢:好像没有最喜欢,各有喜欢和讨厌的地方
    - 工作使用频率最高:过去是 php ,现在是 golang 和 node.js
    3dwelcome
        13
    3dwelcome  
       128 天前
    WASM

    我上学时喜欢先做很难的数学题,因为那样比较有成就感。

    工作后也一样,编程语言需要让我感觉有一点难度,才会有持续的动力,正反馈和兴趣。显然 JS 和 JAVA 都没能满足我。

    公司规划原因,被划分到了前端组,一开始我内心是抵触的,动不动就上 V2 摸鱼。后来发现,竟然还能用 WASM 来写前端,一下子又重燃编程兴趣,仿佛找回了学校里的感觉。
    Mirage09
        14
    Mirage09  
       128 天前 via iPhone
    英语
    开会 / design doc / 聊天都用
    GeruzoniAnsasu
        15
    GeruzoniAnsasu  
       128 天前   ❤️ 3
    最近看到不少 golang 的抱怨帖

    但我想给 golang 正一下名。
    众所周知没有任何语言或套件能解决一切问题。如果语言能解决一部分问题,那么在这部分问题上就是个好选择。

    golang 解决了什么问题:

    1. 没有菜逼能把程序性能写崩,也不会有 pro 写出你要看很久才能弄清楚妙处在哪的魔法,逻辑很直观
    2. bootstrap 一个项目足够简单,有现代的好用的,yet keep it simple 的包管理
    3. 对接 ABI 没有什么痛苦,一切可以在 C interface 上完成


    这意味着 golang 保持着极低维护成本的前提下还能提供不错的开发效率。

    在过去, 能达到 1 效果的语言都因为先天不足非常难以管理构建环境和依赖,看看 C 就知道了。上手一个 5w 行不到的 C 项目,可能都得先研究半个月构建脚本在写什么,甚至怎么往项目里加一个新文件都要试错很久,单元测试也是噩梦,写一个「自动收集某目录下的文件并生成单测 executable 」的「构建脚本」就得花掉不少时间,更别说试图引入一个新依赖包的时候 —— 我 tm 不如想办法复制粘贴一小部分要用的代码得了。


    而这一切在 golang 上只需要 go get 和 go test


    可以说 golang 的项目我是有自信无论最后写成了一坨什么样的屎,后面接手的人都是能吃得进去的()



    golang 粉在吹什么大道至简是吹歪了。简陋得承认,error code 就是冗长。但比起 c++ 能在异常处理里因为捕获的异常对象指针莫名其妙空了而 crash 的这种「异常」(这是我遇到的 ANTLR 生成的 c++代码的一个真实 bug )—— return error code 你一目了然它不可能搞崩 GC 。这种「从简」还相对有道理一点,但表达不出 golang 的优点。




    一句话来说,一个语法跟 C 一样简单,且无缝对接 C Interface 和 os native 的,能编译成 standalone 的性能不错的静态类型语言,还能像 nodejs 一样随意下载任何依赖包,着足够现代的生态支持,我认为足以成为任何想要开发面向服务器应用的小开发团队的第一选择。

    找不到会写代码的人=>不需要,随便写写不崩
    简陋语法写起来很慢=>不用造轮子,你能很快地搜索并一键引入全球的轮子

    小公司福音。
    uqf0663
        16
    uqf0663  
       128 天前
    全干工程师表示最近一年我主要在写“易语言”,仅仅是因为刚好需求用“易语言”实现最简单快捷。
    Zien
        17
    Zien  
       127 天前 via iPhone
    当然是汉语或英语了
    pursuer
        18
    pursuer  
       127 天前
    工作之外的话,为了更好的糊胶水,先什么语言都学点,然后主要拿 python 和 c/c++黏。。

    @GeruzoniAnsasu 要说用 C 的 ABI ,感觉很少有写起来痛苦的,C++ extern "C"最简单,python 有 ctypes ,jvm 系有 jna ,node 不太了解但感觉大部分语言套上 libffi 都能搞个不错的。Go 的工具链倒是真的简单,但是 Go 的动态性太糟糕了,plugin 到现在依然不支持 windows
    findex
        19
    findex  
       127 天前 via iPhone
    @GeruzoniAnsasu 最近在用 go 的后继者 dart 语言。google 把这两个语言拿捏的很稳。现在用 python 做后台,dart 做前端。就是生态不太多,重新发明车轮
    GeruzoniAnsasu
        20
    GeruzoniAnsasu  
       127 天前
    @pursuer 使用 C 暴露的数据结构确实大多数语言都没什么瓶颈,但方向调转难度就要陡增了。golang 和 C 几乎可以直接共享所有的数据类型,比如一个很常见的 C 接口接受一个 const char* 或者 struct whatever *,那些有 vm 的语言要从原生层传一个这种结构进去就算谈不上多麻烦吧,起码转译数据结构是躲不开的,而且好多实现被屏蔽了看不到做了啥。在 golang 这就是个「不会被 GC 的 unsafe 指针」,跟 C 的思路完全一致

    我是感觉 plugin 属于那种还在 experimental 的东西(虽然发布挺早,但简陋啊),golang 1.11 之前的包管理也很糟糕,但现在已经能吹了不是,以后会有的(大概,如果有人提的话……)。 之前的项目里,需要动态特性的一律无脑 grpc 了,socket 总是能用的。 还是那句话,确实简陋,但轮子很容易接,这点成功弥补了很多缺陷。
    MiketsuSmasher
        21
    MiketsuSmasher  
       127 天前
    Python
    作为在校学生,没有工作的需求,也就没有动力去学其他语言;另外,专业是运动康复,所学知识和编程完全不沾边。
    但在这种情况下,我由于自己的使用习惯,需要用到一些可高度自定义又好上手的东西,Python 正好满足了我的需求。
    pursuer
        22
    pursuer  
       127 天前
    @GeruzoniAnsasu 从 C 源码生成对应语言 glue 的库也有不少,比如 swig ,不过不像 go 是集成进编译器的。plugin 发布的很早现在也没什么动静,感觉没法指望。。
    不过动态性我用 python 就能满足需要了,还有 Jupyterlab 这种能发挥动态性,把 python 当 shell 用的神器,所以也不期待 go 的动态性能做成什么样。
    baibaibaibai
        23
    baibaibaibai  
       126 天前
    C#
    生活所迫
    关于   ·   帮助文档   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   1183 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 19:53 · PVG 03:53 · LAX 12:53 · JFK 15:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.