V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
darksheep9527
V2EX  ›  随想

是否同其他语言相比, Java 程序员比起程序员更像是码农

  •  1
     
  •   darksheep9527 · 2021-04-01 21:22:46 +08:00 · 6037 次点击
    这是一个创建于 1364 天前的主题,其中的信息可能已经有所发展或是发生改变。

    先说一下这个题目里程序员和码农的解释(仅限本帖)

    程序员:能够通过代码便利自己的生活,小到脚本,大到独立开发者,做出能影响到普通人的产品 码农:公司生产系统中的一块砖,组成部分之一,工业社会的螺丝钉

    为什么会有这个想法

    感觉像 github 上面受欢迎的国人开源,js,python 这些脚本语言会有更多小脚本,网页工具这些便利或者给现实生活带来些趣味的东西,java 项目则更多是生产系统中的框架脚手架,更底层和硬件结合的 c 和 c++则可以做出一些硬件 diy 的很有趣的东西

    这个想法的一些悖论

    事实上安卓平台的主要开发语言还是 java 和与 java 千丝万缕联系的 kotlin

    或者说,java 是带来趣味更少的一门语言?也是后台的特性

    42 条回复    2021-04-05 20:43:26 +08:00
    Vegetable
        1
    Vegetable  
       2021-04-01 21:29:03 +08:00   ❤️ 13
    JAVA 程序员忙着背题呢,哪有功夫整这些有的没的 /狗头
    putaozhenhaochi
        2
    putaozhenhaochi  
       2021-04-01 21:35:50 +08:00 via Android
    管它啥趣味,做业务 Java 确实耐操
    linvon
        3
    linvon  
       2021-04-01 21:57:06 +08:00   ❤️ 2
    这只是基于你的视角得出的结论罢了
    首先我觉得你所谓的程序员和码农之间没有明显的边界,在做码农的过程中经常性的就会为了便利、进一步的技术需求而产出你所谓程序员的工作内容
    其次所谓的受欢迎的开源,自然跟对应语言的受众人数有关,js 和 python 的使用人数无疑非常多,也利于实现便利工具。而且难道 GitHub 上 Java 的受欢迎开源项目就少吗?是不是你没观察到呢?
    Java 在业务处理上的健壮性也是一门艺术
    kuangwinnie
        4
    kuangwinnie  
       2021-04-01 22:01:22 +08:00   ❤️ 1
    码农不好吗,能赚钱就行了吧
    yeqizhang
        5
    yeqizhang  
       2021-04-01 22:03:43 +08:00 via Android   ❤️ 1
    而且 java 需要虚拟机,比较重,不太适合做一些小东西,我做 java 开发的,也会摸索整一些脚本,工具,Python 和 go 的都有。个人是比较喜欢很多 golang 的项目。

    还有就是生态环境,js 的工具我能想到的就是油猴脚本,浏览器开放出来的接口。

    厉害的人,用 java 也能写出个人赚钱的东西。大多数普通人包括前端,也没啥想法整出啥来,都是码农。
    cmdOptionKana
        6
    cmdOptionKana  
       2021-04-01 22:08:54 +08:00   ❤️ 4
    楼主疏忽了一点:Java 程序员也可以业余用其他语言做个人项目,github 上用其他语言做个人项目的人他的正职可能是个 Java 程序员。
    billlee
        7
    billlee  
       2021-04-01 22:09:12 +08:00
    随便起个进程至少 128 MB 内存, 稍微复杂一点就超 1 GB 了
    随便写个程序都要拉 IDE 起来,要写构建配置

    所以虽然我工作都是用 scala 和 java, 但自己写小工具都是用 python 或 C
    murmur
        8
    murmur  
       2021-04-01 22:12:14 +08:00
    什么叫趣味 某些语言从 shit 里找金子算趣味么 用成熟的技术 成熟的框架 成熟的模式开发居然想找趣味。。
    FreeEx
        9
    FreeEx  
       2021-04-01 22:13:48 +08:00   ❤️ 2
    我本职是一个 Java 程序员,日常工作却和网络打交道,为了练习 Go 开源了几个项目,不过我找工作还是愿意找 Java 。
    GitHub: https://github.com/dushixiang
    Bolg: https://typesafe.cn/
    Cbdy
        10
    Cbdy  
       2021-04-01 22:35:31 +08:00 via Android   ❤️ 1
    虽然我是一个前端,但我的电报机器人就是 Java 写的
    https://github.com/cbdyzj/natrium
    EscYezi
        11
    EscYezi  
       2021-04-02 00:49:52 +08:00 via iPhone
    Java 是一门工程化程度很高的语言, 做复杂系统比较有优势,但是做规模较小的软件就显得太重了。写个小工具还要先建个 maven 项目引一大堆依赖进来,想想就难受。用 Golang 就爽多了。
    不过吃饭还是要靠 Java🌚
    applehater
        12
    applehater  
       2021-04-02 02:43:43 +08:00 via Android
    其他的写时一时爽,重构 xxx
    falcon05
        13
    falcon05  
       2021-04-02 02:51:58 +08:00
    是的,连输出 hello world 都有工业化的感觉。
    myBatis
        14
    myBatis  
       2021-04-02 03:20:57 +08:00
    为社么非要局限于 java 程序员,我早年也写 java 但是 python,c++,js 这些要是需要写个三四千行的小项目也是信手拈来,需要小工具自己写一个就是了。作为工程师不是讲究的是一通百通吗,你主用 java 就非得把自己定位成 java 程序员?
    binux
        15
    binux  
       2021-04-02 04:18:15 +08:00 via Android   ❤️ 4
    因为 Java 写起来不 fun,fun projects 当然要用 fun 的语言啦。
    levelworm
        16
    levelworm  
       2021-04-02 05:05:51 +08:00 via Android
    大数据一大堆东西还是 java 做起来的
    msg7086
        17
    msg7086  
       2021-04-02 05:32:42 +08:00
    有些语言,好玩,灵活,所以写起来爽,但是不容易集团开发。
    有些语言相反,死板,固定,写了 2 年和写了 20 年的写出来代码差不多,适合集团开发。
    大公司大都偏向 Java 和 Python 这两个死板的语言,因为没有人鹤立鸡群,每个人写出来的代码都差不多,每个人都能大致看懂别人的代码。这种就是最适合工业上用的语言了。

    你要写点 lisp 啊 haskell 啊什么的,鬼才看得懂咧。
    xupefei
        18
    xupefei  
       2021-04-02 05:43:29 +08:00 via iPhone
    这样说来 apache 基金会养了一群 jawa 码农
    mikulch
        19
    mikulch  
       2021-04-02 08:10:34 +08:00 via iPhone   ❤️ 1
    可能你不太懂什么是小作坊和工程的概念吧。
    daimubai
        20
    daimubai  
       2021-04-02 08:12:05 +08:00 via iPhone
    你所说的缺点不也正是它的优点吗
    huyujievip
        21
    huyujievip  
       2021-04-02 09:05:13 +08:00 via iPhone
    之前写 py,感觉有需求很快就能实现。自从入坑 java,感觉从冲锋枪换成了加特林,不过写起来更加规范成体系了,各种全局配置,开发幸福感增加不少。
    love
        22
    love  
       2021-04-02 09:27:38 +08:00
    @huyujievip py 如果没上静态检查还真不如 java,写起来是快但动态语言改东西太费劲,早期少花的时间全找回来了。

    当然现在我脱 py 成 typescrip 粉了,集合动静态双方优点,前后端同一语言,语言本身也写起来比 py 舒服
    bequt
        23
    bequt  
       2021-04-02 09:31:48 +08:00
    java 很强呀,头秃。
    Cyen
        24
    Cyen  
       2021-04-02 09:37:33 +08:00
    内卷严重
    Craig37
        25
    Craig37  
       2021-04-02 09:38:36 +08:00
    做 IoT 的好像都没资格自称码农
    grewer
        26
    grewer  
       2021-04-02 09:48:16 +08:00
    开除码籍
    Rwing
        27
    Rwing  
       2021-04-02 09:48:43 +08:00
    一般来说是的,java 实现一个功能通常要比其它语言写更多行的代码……
    huyujievip
        28
    huyujievip  
       2021-04-02 09:52:49 +08:00 via iPhone
    @love 是的是的,这就是我幸福感的来源之一。用多了 java 后,回到 py,函数多了,调用函数自动补全都不知道函数返回类型是啥,有点难受
    bk201
        29
    bk201  
       2021-04-02 09:55:24 +08:00
    程序员好像不应该有语言之分。
    abersheeran
        30
    abersheeran  
       2021-04-02 11:19:54 +08:00
    @huyujievip 现在越来越多的库可以自动补全了……比如我的,几乎都可以允许自动补全
    Jooooooooo
        31
    Jooooooooo  
       2021-04-02 11:22:32 +08:00
    你说盖大厦用的家伙肯定不是玩具啊
    boris93
        32
    boris93  
       2021-04-02 12:02:04 +08:00 via iPhone
    如果你把自己限定为 Java 程序员,那干啥都是码农
    我靠 Java 挣饭钱,也不耽误我用 Go/Swift 写自己的玩具啊
    tinyuu
        33
    tinyuu  
       2021-04-02 12:32:29 +08:00
    都是进城务工的农民工
    zagfai
        34
    zagfai  
       2021-04-02 13:49:06 +08:00
    @msg7086 Python 是很死板的语言??。。你确认有认真用过?


    所谓的工程化,大 project,是过去 20 年的事情了。计算机语言和程序组织的发展过程一直在工程化和自由化中摇摆,并在近几年又有自由化的趋势。
    no1xsyzy
        35
    no1xsyzy  
       2021-04-02 14:48:30 +08:00
    @msg7086 Python 你可以随便实现 __*__ 魔法替换系统内置函数效果,死板?

    Lisp 工程化也很好,就是语言有点多。
    Haskell 的工程化是超过 Java 的,就是约束比较大,写法不符合直觉。
    msg7086
        36
    msg7086  
       2021-04-03 16:37:55 +08:00 via Android
    @zagfai @no1xsyzy
    看看会被别的 Python 程序员骂成啥样。

    我说的不是语言本身的能力。Java 你也可以从头到尾反射个遍,问题是有人这么用吗。写 Python 的是不是宗旨是每件事都应该用一种最优做法?是不是显式优于隐式?这些信条最终是不是造就了死板的语言?你炫技,别人劈头盖脸来一句,这 pythonic 吗。

    我承认我没有认真用过 Python,因为我在其他语言中写 block 的习惯,放到 Python 上根本没法实现,因为我发现 lambda 好像只能写成单行。就算是列表表达也只能表达很简单的句子。我自己的项目是不会用 Python 去写的,只有公司项目要写 Python 了才会照着别人的要求写出一样一板一眼的代码。Java 也是。
    zagfai
        37
    zagfai  
       2021-04-03 18:17:22 +08:00
    @msg7086 我是 10 年+的 Pyhton 老鸟。。。不骂你,建议你先多学习学习。。。分析对比下各种语言,你所谓写的 Python 其实是 Javphon,包了 python 外壳的 Java 。我曾经维护过用 Python 写成的像 C++的工程,各种想死。。。很简单的功能复杂地实现了,大概是 1000 行的代码用了 8000 行这样,你说这些代码是 Python 代码吗?说是也算是。
    no1xsyzy
        38
    no1xsyzy  
       2021-04-03 19:55:04 +08:00
    @msg7086 库代码魔法多得多了。
    pydantic 是 Python 最有名的库之一,目前基本上是序列化反序列化的事实标准,整个库基于 Metaclass 魔法,在 Python 语法解析下实现了一个伪 DSL 。
    还有 sympy 和 ORM 这种修改云算符以表达运算关系而不是计算结果的东西。比如 Table.a+Table.b 不是把 a 和 b 加在一起,而是表达 “a 字段与 b 字段之和”,从而 ORM 中可以直接使用 Table.a+Table.b<42 来构造 WHERE 条件)
    主要一点,Python 的逻辑并不是 worse is better,将复杂的脏逻辑封装成使用上更简便的库是被 Zen 允许的。可以说你想用 Python 写基本绕不开各种库自定义的伪 DSL 。
    你可能写惯了很多 worse is better 的语言,误解了这些价值判断在 Python 语境下的含义。
    (话说其实现在官方都在各种地方违背 Zen
    msg7086
        39
    msg7086  
       2021-04-04 06:29:46 +08:00   ❤️ 1
    @no1xsyzy 其实你说的这些才是我觉得 Python 「应该有的样子」。
    但是在项目上,工程上,去用这些黑魔法,还是算了吧,我反正不敢。
    我自己写项目也会写 DSL,包括像你说的重载运算符实现各种高级语义。
    我自己做的 workflow 项目,就是用 +() 和 |() 运算符来实现数据流定义的。

    我平时是写 Ruby 的,天天用黑魔法,至少我可以随便放心用,不怕被人打死……
    我们习惯于写 2.days.ago 或者 5.minutes.since,而不是 datetime.now() - timedelta(days=2)。
    在 Python 里你们会把 Integer 类给打开然后往里塞奇怪的方法吗?应该不会吧。

    我说 Python 死板也不是在贬低他。黑魔法越少,代码越容易读懂,这是 Python 被大量公司采用的原因之一,也是 Java 8 被大量公司采用的原因。(我司本来还在用 Java 7,连 lambda 都没有,我随便写一个闭包都要各种 hack……)
    实际上,我一个不懂 Python 的人,都可以读写 Python 代码,本身就说明 Python 是一个相对死板的语言,可以让任何写其他语言的人都能快速上手。
    同样,我一个不懂 Java 的人,也可以直接上手做 Java 开发,也可以说明 Java 是一个相对死板的语言。

    有一点我要承认,我对 Python 的印象基本停留在十几年前,差不多 Python 3 还没出生的年代。如果现在 Python 对那些黑魔法黑科技更宽容了,那倒也是件好事,至少写代码的人会轻松很多。
    no1xsyzy
        40
    no1xsyzy  
       2021-04-04 17:05:04 +08:00
    @msg7086 你是从这方面说的话,其实可能死板的原因是 by implementation 而不是 by design 。大部分功能完全依赖纯 C 实现然后提供接口。比如 int 类根本不能塞东西,因为它是个纯 C 的类,最多是继承之后稍作修改,限制也很大,因为没有通用的实现覆盖,最显著的也不过是 T(2).days.ago ,其实那也根本不需要继承,直接写个 T 就成。典型的问题,dict 可以继承后改改,但是 __setitem__ 覆盖了以后并不能影响 update,因为 update 并不调用 __setitem__(反过来也不是)。
    msg7086
        41
    msg7086  
       2021-04-05 02:02:13 +08:00 via Android
    @no1xsyzy 这样啊。那应该就是你说的实现上的问题了。如果能修改纯 C 类的话,可以玩出很多好玩的花样(当然也会变得很魔法就是了……)。
    shm7
        42
    shm7  
       2021-04-05 20:43:26 +08:00 via iPhone
    人艰不拆。都是同类,非要逼自己承认一个鄙视链,好同类相残,我真的很佩服人类的基因了,真的可以和气生活的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1742 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 16:36 · PVG 00:36 · LAX 08:36 · JFK 11:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.