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

sfafreshman 20天前 13

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

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

为什么会有这个想法

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

这个想法的一些悖论

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

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

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

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

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

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

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

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


    所谓的工程化,大 project,是过去 20 年的事情了。计算机语言和程序组织的发展过程一直在工程化和自由化中摇摆,并在近几年又有自由化的趋势。
  • no1xsyzy 15天前
    引用 36
    @msg7086 Python 你可以随便实现 __*__ 魔法替换系统内置函数效果,死板?

    Lisp 工程化也很好,就是语言有点多。
    Haskell 的工程化是超过 Java 的,就是约束比较大,写法不符合直觉。
  • msg7086 15天前
    引用 37
    @zagfai @no1xsyzy
    看看会被别的 Python 程序员骂成啥样。

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

    我承认我没有认真用过 Python,因为我在其他语言中写 block 的习惯,放到 Python 上根本没法实现,因为我发现 lambda 好像只能写成单行。就算是列表表达也只能表达很简单的句子。我自己的项目是不会用 Python 去写的,只有公司项目要写 Python 了才会照着别人的要求写出一样一板一眼的代码。Java 也是。
  • zagfai 15天前
    引用 38
    @msg7086 我是 10 年+的 Pyhton 老鸟。。。不骂你,建议你先多学习学习。。。分析对比下各种语言,你所谓写的 Python 其实是 Javphon,包了 python 外壳的 Java 。我曾经维护过用 Python 写成的像 C++的工程,各种想死。。。很简单的功能复杂地实现了,大概是 1000 行的代码用了 8000 行这样,你说这些代码是 Python 代码吗?说是也算是。
  • no1xsyzy 15天前
    引用 39
    @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 15天前
    引用 40
    @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 15天前
    引用 41
    @msg7086 你是从这方面说的话,其实可能死板的原因是 by implementation 而不是 by design 。大部分功能完全依赖纯 C 实现然后提供接口。比如 int 类根本不能塞东西,因为它是个纯 C 的类,最多是继承之后稍作修改,限制也很大,因为没有通用的实现覆盖,最显著的也不过是 T(2).days.ago ,其实那也根本不需要继承,直接写个 T 就成。典型的问题,dict 可以继承后改改,但是 __setitem__ 覆盖了以后并不能影响 update,因为 update 并不调用 __setitem__(反过来也不是)。
  • msg7086 15天前
    引用 42
    @no1xsyzy 这样啊。那应该就是你说的实现上的问题了。如果能修改纯 C 类的话,可以玩出很多好玩的花样(当然也会变得很魔法就是了……)。
  • shm7 15天前
    引用 43
    人艰不拆。都是同类,非要逼自己承认一个鄙视链,好同类相残,我真的很佩服人类的基因了,真的可以和气生活的。
  • 游客
    44
返回