来看 java 的 hello world
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello world");
}
}
好一个蠢字了得。为了输出二个字,要写这么多样板和层次
不能像 shell 一样平坦化吗
而且以后,你还要学”继承,保护,ducking type ,mixed in, 参数类,原型链,面向 interface ,设计模式,并发加锁,信号量“ 而且到最后,你会被告知”py,cpp 的 oo 都是山寨,只有 smalltalk,ruby 那种 oo 才是纯的“
并且最最后,你会发现先它们一步的函数式语言无须厚重的数据抽象,也能获得更好的代码结构和范式,并且天然并发,自带 dsl
102
qiumaoyuan 2023-02-15 09:59:45 +08:00
见识少不奇怪。
不如看看你写的代码? |
103
JavenXiao 2023-02-15 10:06:41 +08:00
复杂的继承确实给阅读代码带来了很大的难度,耦合问题很严重。
尤其是大公司的大一统 android 客户端代码,那真的是错综复杂。大家也都没有删代码的习惯,很多类其实没用了也不删,也会给阅读代码带来很大的障碍。 |
104
pkoukk 2023-02-15 10:15:43 +08:00
你可以用 C#
|
105
Hayashikawa 2023-02-15 10:18:17 +08:00
在情人节看到这个标题前半部分,我以为是在对单身人士钓鱼呢。
|
107
fioncat 2023-02-15 10:19:17 +08:00
在 v2 喷 java 。。我只能祝 OP 好运
|
108
godblessumilk 2023-02-15 10:19:25 +08:00 3
面向对象:我只需要一条香蕉🍌,但我得定义一片森林。
面向过程:全局变量满天飞,写单元测试的时候能把人急得剁屌,因为不知道全部变量会被哪个函数修改污染 |
109
kop1989smurf 2023-02-15 10:21:20 +08:00
@Mexion #106 C#有一些函数式编程的语法糖,比如 LINQ
|
110
godblessumilk 2023-02-15 10:23:56 +08:00
函数式:写时一时爽,维护火葬场
|
111
godblessumilk 2023-02-15 10:24:51 +08:00
@godblessumilk 全部变量 -> 全局变量
|
112
biantaoGG 2023-02-15 10:28:52 +08:00
@godblessumilk 笑死,老哥深受其苦啊
|
113
lostsquirrelX 2023-02-15 11:16:04 +08:00
我们用汇编吧
|
114
nyakoy 2023-02-15 11:25:06 +08:00
V 站 block 得第 2 个人,整天在这里引战找存在感,前几天“只有我觉得 chatgpt 索然无味吗?”,今天“只有我觉得面向对象很蠢吗?”,你是电你是光,
|
115
thinkershare 2023-02-15 11:25:34 +08:00
典型的想的太多,写的太少。
|
116
tool2d 2023-02-15 11:29:14 +08:00
|
117
alexzuo 2023-02-15 11:32:37 +08:00
如果只拿一个场景就说一个编程范式糟糕,那我觉得可能是你没找到合适场景。
就像你用大炮打蚊子,打起来很费劲,不是因为大炮糟糕。 |
118
Mark24 2023-02-15 11:34:01 +08:00
学而不思则罔,思而不学则殆
|
119
xFrye 2023-02-15 11:36:19 +08:00
op 是很缺铜币么? 上个帖子是 chatgpt ,这个是 Java 。如果真的缺那我建议后面你可以喷喷 iPhone mac 之类的,保证你挣得盆满钵满
|
120
superedlimited 2023-02-15 11:38:11 +08:00
@godblessumilk 不好意思,跑个题,为什么急的时候,要剁屌呢。
|
122
uni 2023-02-15 12:49:34 +08:00 3
太同意了!!这么久了我也仍然保持着跟 lz 一样的想法,这也是我一直抗拒搞后端的原因
前端的实践早就证明了不用面向对象,用偏向函数式的写法完全可以处理复杂的问题,我觉得那些眼里只有面向对象的人真的很落后 |
123
bk201 2023-02-15 12:57:41 +08:00
说了半天,你就 show 了我一个 hello world ,do not talk more ,show me your code
|
124
uni 2023-02-15 13:00:19 +08:00 1
@546L5LiK6ZOt 我觉得这反而应该是软件工程应该反思的问题,人类对这个世界的思考与建模有着几千上万年的历史,而数学正是人类探索出来的对这个世界进行建模的伟大框架,看看其他学科(物理学、经济学等等)只要是涉及应用工程计算的都是在用数学作为其最底层的工具,而函数就是数学里面的一个最为基础的东西,所以函数对于人类的思维来说才是最自然的
反而软件工程自己搞出的面向对象这种扭曲的东西,每次我用数学思考完问题之后写代码的时候又得被迫用面向对象来思考,感觉自己像被强奸一样 |
125
WebKit 2023-02-15 13:03:38 +08:00 via Android
楼主多大了?
|
126
krixaar 2023-02-15 15:26:17 +08:00
@uni #124 面向对象也是数学思想,“因为 X 是一种特殊的 Y ,所以 X 具有 Y 的性质,适用于 Y 的公式同样适用于 X”,甚至很多讲继承的教程都在用 class 正方形 extends 矩形 来举例,因为学数学 /物理的时候都是这么学的,从特殊的简单概念入手,一步步往更广的方向上推。
只不过某些时候 OOP 非得 class 正方形 extends 矩形 extends 平行四边形 extends 四边形 extends 多边形 extends 平面图形 巴不得继承个祖宗十八代才是该喷的点。 |
127
dqzcwxb 2023-02-15 16:12:23 +08:00
@thinkershare #115
|
128
DNA 2023-02-15 16:15:59 +08:00
You can you up , no can no BB
|
129
546L5LiK6ZOt 2023-02-15 17:09:55 +08:00
@uni 我是实践派哈哈~ 数学是很好,但是不是所有人都懂。用数学语言跟各方人员沟通,感觉现实不太可行。。。
|
130
netabare 2023-02-15 20:07:08 +08:00 via Android 1
@tool2d 函数式编程不是写函数,是探讨怎么以函数为最小可复用单位去进行各种组合和抽象。状态与否也不是函数式所关心的,状态本身在常见的函数式编程语言里可以用数据结构来表达。
如果您说的写函数是指,`void fun() { foo(); bar(); baz() }` 这种写法,这和函数式完全没有任何关系,这叫过程式,写的其实也只是子过程而已。 函数式编程至少要求可组合的函数,比如说,`f x`,`g (f x)`,这里的函数和数学上的函数是可以一一对应的。那么对编程语言的要求也是最少要支持以函数为参数或者作为返回值来计算(也就是高阶函数)。至于其他更复杂的构造都是后话了。 |
131
huijiewei 2023-02-15 20:38:47 +08:00
我精通 100 种语言,都会写 hello world!
我自己做了 200 种编程语言,都能输出 hello world! |
132
Cooky 2023-02-15 20:56:44 +08:00
这是 java 的问题,不是面向对象的问题
java 的编程范式只适合堆屎山 |
133
markx 2023-02-16 03:14:31 +08:00
你见过几种程范式和语言?
|
134
apostleChan 2023-04-18 23:20:19 +08:00 via iPhone
营销就是制造冲突
|