想知道各位平时编程时面对的主要约束,以及在选择语言和工具时主要看重的特性 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
CapNemo
V2EX    程序员

想知道各位平时编程时面对的主要约束,以及在选择语言和工具时主要看重的特性

  •  
  •   CapNemo 260 天前 1826 次点击
    这是一个创建于 260 天前的主题,其中的信息可能已经有所发展或是发生改变。
    17 条回复    2025-03-15 16:23:22 +08:00
    Need4more
        1
    Need4more  
       260 天前
    语言是否有大厂支持和杀手级应用,工具链是否完善。
    NessajCN
        2
    NessajCN  
       260 天前   3
    编程时面对的主要约束:太菜了写不出来
    选择语言和工具时主要看重的特性:我会不会写
    kxg3030
        3
    kxg3030  
       260 天前
    主要看实用性,目前唯一不用的就是 java ,它属于是门门通,样样瘟,几乎没有任何擅长的领域...(集中火力来攻击我吧)
    CapNemo
        4
    CapNemo  
    OP
       260 天前
    @kxg3030 我记得在 CCPC/ICPC 等算法竞赛中,java 自带的大整数有时候挺有用的
    Need4more
        5
    Need4more  
       260 天前
    @kxg3030 企业应用开发和大数据这块应该是躲不开的
    48y1951r9G8k7Zou
        6
    48y1951r9G8k7Zou  
       260 天前
    主要约束:

    1. 人生苦短,想要做的东西太多,但留给我的时间有限。
    2. 水平和认知有限,并不是所有 idea 都能着手去实现(不懂的东西可以去学,但这又受到了时间的制约)。

    主要看中的特性:

    1. 简单。不仅接口要简单,实现更应该简单。
    2. 可移植性强。即使是面对一个全新的平台,也总是能够在第一时间得到支持。剩下一点不兼容的地方也可以自己小修小补解决。
    3. 生态好。总是可以在操作系统发行版自带的软件仓库找到成熟的、经过社区审计、生产环境验证的第三方库可供使用。
    4. 可互操作性强。即使是在和其他生态的语言/工具进行协同,也能以较低成本实现。
    InkStone
        7
    InkStone  
       260 天前
    @CapNemo 那是因为算法竞赛不让用三方库

    能用三方库的情况下,C++的大整数库使用体验远胜 Java (谁会喜欢连运算符重载都没有的大整数库呢?)
    w568w
        8
    w568w  
       260 天前
    最重要的特性其实就是生态,因为生态好能说明以下几点:

    1. 语言流行,人人都愿意学

    2. 包管理简单,容易发布自己的包、安装别人的包

    3. 支持的平台多,和 C 互交互能力强(因为很多平台都要依赖 C/C++ 库实现)

    4. 有人愿意用它完成实际的生产应用需求

    目前满足这些的,我知道的也就只有 Python 和 Java 了。后起之秀还有 Rust 。
    CyouYamato
        9
    CyouYamato  
       260 天前
    靠山和生态, 其他都是可以克服的.
    securityCoding
        10
    securityCoding  
       260 天前
    没得选
    niubiman
        11
    niubiman  
       260 天前
    最重要的特性就是钱和命, 既能挣到相对不错的钱, 也不至于缩短寿命, 两者平衡一下
    pursuer
        12
    pursuer  
       260 天前
    最重要的是生态,造轮子大部分都是浪费时间,综合来看现在是 JS/TS(前端 Web 生态唯一选择,强大的动态和调试能力) 和 C++(Linux 和 Windows 等平台的 API 原生支持以及跨平台库支持(libuv)),然后 Android 上需要补充一个 Java ,基本只做 binding 。

    本来想看看 Zig 来代替 C++的,毕竟 c++不用协程,写异步以及内存管理真的很麻烦。但转念一想用的不多还是算了

    @w568w
    c++生态还不错,但包管理就不行,当然这也没办法,毕竟要面对的相当广泛的平台。要是以后 WASM 成为 C++的"JVM"说不定能有新突破?
    另外 C 互交互里 ABI 不兼容是个巨大的坑,所以我现在跨语言交互尽可能优选 RPC 了
    yooomu
        13
    yooomu  
       260 天前
    生态啊,第一位的。如果想干什么都没轮子,得自己造,那就是纯纯在浪费时间了,除非自己做着玩
    sthwrong
        14
    sthwrong  
       260 天前
    还是看钱和命,我很不喜欢 java ,为了钱还不是在写。
    zhibisora
        15
    zhibisora  
       260 天前
    核心是生态, 其次是易用性, 简洁性和可维护性, 最后按照项目看功能性
    zhibisora
        16
    zhibisora  
       260 天前
    单考虑约束的话是时间和价值
    xuld
        17
    xuld  
       259 天前
    一个人喜欢做什么工作,和实际做什么工作,往往是不同的。
    事实上,多数程序员对语言和工具是没有选择权的,因此他们的喜好其实毫无意义。

    假如你有选择权,基本上你会选择最熟悉的,而不会去客观比较各家的优缺点。
    即使你看到你最熟悉的语言和工具有若干的缺点,你也会选择无视。

    而决定你最熟悉哪个工具,事实上是看你在刚工作阶段,接触到谁。
    以上这些,其实和所谓的“生态”、“特性”、“易用性”等毫无关系。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     833 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 22ms UTC 22:02 PVG 06:02 LAX 14:02 JFK 17:02
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86