程序员
:能够通过代码便利自己的生活,小到脚本,大到独立开发者,做出能影响到普通人的产品
码农
:公司生产系统中的一块砖,组成部分之一,工业社会的螺丝钉
感觉像 github 上面受欢迎的国人开源,js,python 这些脚本语言会有更多小脚本,网页工具这些便利或者给现实生活带来些趣味的东西,java 项目则更多是生产系统中的框架脚手架,更底层和硬件结合的 c 和 c++则可以做出一些硬件 diy 的很有趣的东西
事实上安卓平台的主要开发语言还是 java 和与 java 千丝万缕联系的 kotlin
1
Vegetable 2021-04-01 21:29:03 +08:00 13
JAVA 程序员忙着背题呢,哪有功夫整这些有的没的 /狗头
|
2
putaozhenhaochi 2021-04-01 21:35:50 +08:00 via Android
管它啥趣味,做业务 Java 确实耐操
|
3
linvon 2021-04-01 21:57:06 +08:00 2
这只是基于你的视角得出的结论罢了
首先我觉得你所谓的程序员和码农之间没有明显的边界,在做码农的过程中经常性的就会为了便利、进一步的技术需求而产出你所谓程序员的工作内容 其次所谓的受欢迎的开源,自然跟对应语言的受众人数有关,js 和 python 的使用人数无疑非常多,也利于实现便利工具。而且难道 GitHub 上 Java 的受欢迎开源项目就少吗?是不是你没观察到呢? Java 在业务处理上的健壮性也是一门艺术 |
4
kuangwinnie 2021-04-01 22:01:22 +08:00 1
码农不好吗,能赚钱就行了吧
|
5
yeqizhang 2021-04-01 22:03:43 +08:00 via Android 1
而且 java 需要虚拟机,比较重,不太适合做一些小东西,我做 java 开发的,也会摸索整一些脚本,工具,Python 和 go 的都有。个人是比较喜欢很多 golang 的项目。
还有就是生态环境,js 的工具我能想到的就是油猴脚本,浏览器开放出来的接口。 厉害的人,用 java 也能写出个人赚钱的东西。大多数普通人包括前端,也没啥想法整出啥来,都是码农。 |
6
cmdOptionKana 2021-04-01 22:08:54 +08:00 4
楼主疏忽了一点:Java 程序员也可以业余用其他语言做个人项目,github 上用其他语言做个人项目的人他的正职可能是个 Java 程序员。
|
7
billlee 2021-04-01 22:09:12 +08:00
随便起个进程至少 128 MB 内存, 稍微复杂一点就超 1 GB 了
随便写个程序都要拉 IDE 起来,要写构建配置 所以虽然我工作都是用 scala 和 java, 但自己写小工具都是用 python 或 C |
8
murmur 2021-04-01 22:12:14 +08:00
什么叫趣味 某些语言从 shit 里找金子算趣味么 用成熟的技术 成熟的框架 成熟的模式开发居然想找趣味。。
|
9
FreeEx 2021-04-01 22:13:48 +08:00 2
我本职是一个 Java 程序员,日常工作却和网络打交道,为了练习 Go 开源了几个项目,不过我找工作还是愿意找 Java 。
GitHub: https://github.com/dushixiang Bolg: https://typesafe.cn/ |
10
Cbdy 2021-04-01 22:35:31 +08:00 via Android 1
虽然我是一个前端,但我的电报机器人就是 Java 写的
https://github.com/cbdyzj/natrium |
11
EscYezi 2021-04-02 00:49:52 +08:00 via iPhone
Java 是一门工程化程度很高的语言, 做复杂系统比较有优势,但是做规模较小的软件就显得太重了。写个小工具还要先建个 maven 项目引一大堆依赖进来,想想就难受。用 Golang 就爽多了。
不过吃饭还是要靠 Java🌚 |
12
applehater 2021-04-02 02:43:43 +08:00 via Android
其他的写时一时爽,重构 xxx
|
13
falcon05 2021-04-02 02:51:58 +08:00
是的,连输出 hello world 都有工业化的感觉。
|
14
myBatis 2021-04-02 03:20:57 +08:00
为社么非要局限于 java 程序员,我早年也写 java 但是 python,c++,js 这些要是需要写个三四千行的小项目也是信手拈来,需要小工具自己写一个就是了。作为工程师不是讲究的是一通百通吗,你主用 java 就非得把自己定位成 java 程序员?
|
15
binux 2021-04-02 04:18:15 +08:00 via Android 4
因为 Java 写起来不 fun,fun projects 当然要用 fun 的语言啦。
|
16
levelworm 2021-04-02 05:05:51 +08:00 via Android
大数据一大堆东西还是 java 做起来的
|
17
msg7086 2021-04-02 05:32:42 +08:00
有些语言,好玩,灵活,所以写起来爽,但是不容易集团开发。
有些语言相反,死板,固定,写了 2 年和写了 20 年的写出来代码差不多,适合集团开发。 大公司大都偏向 Java 和 Python 这两个死板的语言,因为没有人鹤立鸡群,每个人写出来的代码都差不多,每个人都能大致看懂别人的代码。这种就是最适合工业上用的语言了。 你要写点 lisp 啊 haskell 啊什么的,鬼才看得懂咧。 |
18
xupefei 2021-04-02 05:43:29 +08:00 via iPhone
这样说来 apache 基金会养了一群 jawa 码农
|
19
mikulch 2021-04-02 08:10:34 +08:00 via iPhone 1
可能你不太懂什么是小作坊和工程的概念吧。
|
20
daimubai 2021-04-02 08:12:05 +08:00 via iPhone
你所说的缺点不也正是它的优点吗
|
21
huyujievip 2021-04-02 09:05:13 +08:00 via iPhone
之前写 py,感觉有需求很快就能实现。自从入坑 java,感觉从冲锋枪换成了加特林,不过写起来更加规范成体系了,各种全局配置,开发幸福感增加不少。
|
22
love 2021-04-02 09:27:38 +08:00
@huyujievip py 如果没上静态检查还真不如 java,写起来是快但动态语言改东西太费劲,早期少花的时间全找回来了。
当然现在我脱 py 成 typescrip 粉了,集合动静态双方优点,前后端同一语言,语言本身也写起来比 py 舒服 |
23
bequt 2021-04-02 09:31:48 +08:00
java 很强呀,头秃。
|
24
Cyen 2021-04-02 09:37:33 +08:00
内卷严重
|
25
Craig37 2021-04-02 09:38:36 +08:00
做 IoT 的好像都没资格自称码农
|
26
grewer 2021-04-02 09:48:16 +08:00
开除码籍
|
27
Rwing 2021-04-02 09:48:43 +08:00
一般来说是的,java 实现一个功能通常要比其它语言写更多行的代码……
|
28
huyujievip 2021-04-02 09:52:49 +08:00 via iPhone
@love 是的是的,这就是我幸福感的来源之一。用多了 java 后,回到 py,函数多了,调用函数自动补全都不知道函数返回类型是啥,有点难受
|
29
bk201 2021-04-02 09:55:24 +08:00
程序员好像不应该有语言之分。
|
30
abersheeran 2021-04-02 11:19:54 +08:00
@huyujievip 现在越来越多的库可以自动补全了……比如我的,几乎都可以允许自动补全
|
31
Jooooooooo 2021-04-02 11:22:32 +08:00
你说盖大厦用的家伙肯定不是玩具啊
|
32
boris93 2021-04-02 12:02:04 +08:00 via iPhone
如果你把自己限定为 Java 程序员,那干啥都是码农
我靠 Java 挣饭钱,也不耽误我用 Go/Swift 写自己的玩具啊 |
33
tinyuu 2021-04-02 12:32:29 +08:00
都是进城务工的农民工
|
34
zagfai 2021-04-02 13:49:06 +08:00
@msg7086 Python 是很死板的语言??。。你确认有认真用过?
所谓的工程化,大 project,是过去 20 年的事情了。计算机语言和程序组织的发展过程一直在工程化和自由化中摇摆,并在近几年又有自由化的趋势。 |
35
no1xsyzy 2021-04-02 14:48:30 +08:00
@msg7086 Python 你可以随便实现 __*__ 魔法替换系统内置函数效果,死板?
Lisp 工程化也很好,就是语言有点多。 Haskell 的工程化是超过 Java 的,就是约束比较大,写法不符合直觉。 |
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 也是。 |
37
zagfai 2021-04-03 18:17:22 +08:00
@msg7086 我是 10 年+的 Pyhton 老鸟。。。不骂你,建议你先多学习学习。。。分析对比下各种语言,你所谓写的 Python 其实是 Javphon,包了 python 外壳的 Java 。我曾经维护过用 Python 写成的像 C++的工程,各种想死。。。很简单的功能复杂地实现了,大概是 1000 行的代码用了 8000 行这样,你说这些代码是 Python 代码吗?说是也算是。
|
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 |
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 对那些黑魔法黑科技更宽容了,那倒也是件好事,至少写代码的人会轻松很多。 |
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__(反过来也不是)。
|
41
msg7086 2021-04-05 02:02:13 +08:00 via Android
@no1xsyzy 这样啊。那应该就是你说的实现上的问题了。如果能修改纯 C 类的话,可以玩出很多好玩的花样(当然也会变得很魔法就是了……)。
|
42
shm7 2021-04-05 20:43:26 +08:00 via iPhone
人艰不拆。都是同类,非要逼自己承认一个鄙视链,好同类相残,我真的很佩服人类的基因了,真的可以和气生活的。
|