V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
CapNemo
V2EX  ›  程序员

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

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

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

    主要看中的特性:

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

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

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

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

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

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

    目前满足这些的,我知道的也就只有 Python 和 Java 了。后起之秀还有 Rust 。
    CyouYamato
        9
    CyouYamato  
       2025 年 3 月 14 日
    靠山和生态, 其他都是可以克服的.
    securityCoding
        10
    securityCoding  
       2025 年 3 月 14 日
    没得选
    niubiman
        11
    niubiman  
       2025 年 3 月 14 日
    最重要的特性就是钱和命, 既能挣到相对不错的钱, 也不至于缩短寿命, 两者平衡一下
    pursuer
        12
    pursuer  
       2025 年 3 月 14 日
    最重要的是生态,造轮子大部分都是浪费时间,综合来看现在是 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  
       2025 年 3 月 14 日
    生态啊,第一位的。如果想干什么都没轮子,得自己造,那就是纯纯在浪费时间了,除非自己做着玩
    sthwrong
        14
    sthwrong  
       2025 年 3 月 14 日
    还是看钱和命,我很不喜欢 java ,为了钱还不是在写。
    zhibisora
        15
    zhibisora  
       2025 年 3 月 15 日
    核心是生态, 其次是易用性, 简洁性和可维护性, 最后按照项目看功能性
    zhibisora
        16
    zhibisora  
       2025 年 3 月 15 日
    单考虑约束的话是时间和价值
    xuld
        17
    xuld  
       2025 年 3 月 15 日
    一个人喜欢做什么工作,和实际做什么工作,往往是不同的。
    事实上,多数程序员对语言和工具是没有选择权的,因此他们的喜好其实毫无意义。

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

    而决定你最熟悉哪个工具,事实上是看你在刚工作阶段,接触到谁。
    以上这些,其实和所谓的“生态”、“特性”、“易用性”等毫无关系。
    关于   ·   帮助文档   ·   自助推广系统   ·   博客   ·   API   ·   FAQ   ·   Solana   ·   1912 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 10:43 · PVG 18:43 · LAX 02:43 · JFK 05:43
    ♥ Do have faith in what you're doing.