由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - 我们来聊聊paradigms吧
相关主题
Java 不是纯oo, oo 不是 imperative programmingWhat is the difference between class and struct?
各个语言在paradigms上的对比也谈OOP跟FP之争
现在谈paradigm过时了C++的牛B之处你们都还没体会到
FP并不比OO什么的更“高级”我来尽量客观地谈谈GC/ref count,还有RAII
scala不是pure fp不同的语言可以统一语法吗
python代码写成这样,什么鬼阿。一道面试怪题C++. (转载)
prolog, lisp, sql,这些算functional programming么?Emacs有没有这样一种功能? (转载)
interface是oo feature吗[合集] 到底要学习Perl,还是Python?
相关话题的讨论汇总
话题: paradigms话题: java话题: 反射话题: driven话题: fp
进入Programming版参与讨论
1 (共1页)
z****e
发帖数: 54598
1
尤其是multiple混杂的部分
paradigms最早应该是指令式paradigms
Imperative,这个主要是面向机器的编程方式
汇编就是典型,指令集么,这种方式基本上在机器性能提升之后
发展出结构化和非结构化paradigms
结构化后来搞出了过程式编程,c就是
再后面发展出了oop
oop最典型的当然是java了,java并不是第一个纯的oo
第一个纯的oo是smalltalk,但是java保留了大部分c的语法
从而简化了学习门槛,使得java在很短时间内流行开来
c++其实是介于c和java之间的一个过渡性质的语言
两个paradigms都有,结果两个都做不好
之后java发展出了元数据meta paradigms
也就是反射,这个大大拓宽了java本身的能力
使得很多功能,不再需要通过定义各种模板接口这种东西来实现
spring就是利用了反射的功能,把老套的ejb接口给踩在脚下
好在反射本身学习有难度,所以一般初学者不会反射,也就不会滥用反射
用反射的往往都是牛人,用来写框架用的
在此基础之上,有了aop,event-driven等paradigms
这两个在java世界里面,用的是额外的类库来实现
aop最有名的就是aspect j,event-driven主要是各种工作流引擎
还有soa,其实就是event-driven的paradigms
都是比较成功的例子,不管是aspect j还是soa,都需要提供额外的引擎
光jvm是不够的,所以这就使得用aop和event driven编程的程序猿
所写的代码,不会跟oop程序猿写的代码冲突,你写你的,我写我的
这样也很好滴保证了独立性,使得不同风格的程序猿合作成为可能
现在很火热的fp其实是宣告式declarative paradigms
跟大部分解释执行的脚本都属于declarative paradigms
所以你会发现,很多脚本的爱好者,跟fp的支持者,其实是同一群人
宣告式的编程方式,更贴近人阅读的习惯
大多数人不会在乎自然界规律是怎么运转的,它们不管实现
它们只负责提交命令,做这个做那个,所以很多脚本语言
从它诞生之日起,就针对的是非科班毕业的人
从中有什么教训?
1)从指令式paradigms中学习到,不同的paradigms之间,最好有楚河汉界
分清楚,不要互相介入对方的领域,否则同一个代码片段
同时出现两种paradigms,这将会是一种灾难
就像二爷说的,当你在那几款语言中用了java code,瞬间美感就被破坏了
想办法切割开来,不要侵入式滴实现,否则下场会跟c++一样
c程序员不喜欢,java程序员也不喜欢,最后c程序员不用,java程序员更不用
2)fp越简单越有前途,既然不是给机器看的,是给人看的
那谁的学习成本低廉,谁就有前途
这就不难解释为什么r之类的语言迅速占领了统计之类的领域
因为r的语法跟统计学家们用的语法很相像
综合以上两点,我认为,将来jvm上fp的方向
将会是一个语法简单,不需要学习
但是又不破坏java本身结构的那么一种脚本或者fp等宣告式语言
当然jvm本身还有其它可以搞的,比如可视化ui部分
x****u
发帖数: 44466
2
你就是死抱着JAVA大腿,COM/OLE做反射是JAVA在哪里。

【在 z****e 的大作中提到】
: 尤其是multiple混杂的部分
: paradigms最早应该是指令式paradigms
: Imperative,这个主要是面向机器的编程方式
: 汇编就是典型,指令集么,这种方式基本上在机器性能提升之后
: 发展出结构化和非结构化paradigms
: 结构化后来搞出了过程式编程,c就是
: 再后面发展出了oop
: oop最典型的当然是java了,java并不是第一个纯的oo
: 第一个纯的oo是smalltalk,但是java保留了大部分c的语法
: 从而简化了学习门槛,使得java在很短时间内流行开来

z****e
发帖数: 54598
3
在学习,其它东西先做,java等它们证明成功之后
再抄袭过来,我们说的是企业级应用,不是小孩子过家家
一旦定下来的标准,是不能改回去的
java现在awt什么都跑得很欢快

【在 x****u 的大作中提到】
: 你就是死抱着JAVA大腿,COM/OLE做反射是JAVA在哪里。
x****u
发帖数: 44466
4
在Java出来之前企业应用一样跑在COM+上。
这东西主要是开发门槛有点高,不容易控制团队代码质量。

【在 z****e 的大作中提到】
: 在学习,其它东西先做,java等它们证明成功之后
: 再抄袭过来,我们说的是企业级应用,不是小孩子过家家
: 一旦定下来的标准,是不能改回去的
: java现在awt什么都跑得很欢快

z****e
发帖数: 54598
5
java出来之前总要跑在某些东西上
只是当时失败的不少,要不然java也不会发展到现在这个地步

【在 x****u 的大作中提到】
: 在Java出来之前企业应用一样跑在COM+上。
: 这东西主要是开发门槛有点高,不容易控制团队代码质量。

x****u
发帖数: 44466
6
COM+也不是失败了,毕竟这东西还是整个Windows生态系统的基础,而且任何成功的GUI
环境都有克隆。
关键是server开发需要比client更多廉价低素质的劳动力,Java顺应了时代需求。

【在 z****e 的大作中提到】
: java出来之前总要跑在某些东西上
: 只是当时失败的不少,要不然java也不会发展到现在这个地步

g****t
发帖数: 31659
7
fp现在算不上火热.

尤其是multiple混杂的部分
paradigms最早应该是指令式paradigms
Imperative,这个主要是面向机器的编程方式
汇编就是典型,指令集么,这种方式基本上在机器性能提升之后
发展出结构化和非结构化paradigms
结构化后来搞出了过程式编程,c就是
再后面发展出了oop
oop最典型的当然是java了,java并不是第一个纯的oo
第一个纯的oo是smalltalk,但是java保留了大部分c的语法
从而简化了学习门槛,使得java在很短时间内流行开来
c++其实是介于c和java之间的一个过渡性质的语言
两个paradigms都有,结果两个都做不好
之后java发展出了元数据meta paradigms
也就是反射,这个大大拓宽了java本身的能力
使得很多功能,不再需要通过定义各种模板接口这种东西来实现
spring就是利用了反射的功能,把老套的ejb接口给踩在脚下
好在反射本身学习有难度,所以一般初学者不会反射,也就不会滥用反射
用反射的往往都是牛人,用来写框架用的
在此基础之上,有了aop,event-driven等paradigms
这两个在java世界里面,用的是额外的类库来实现
aop最有名的就是aspect j,event-driven主要是各种工作流引擎
还有soa,其实就是event-driven的paradigms
都是比较成功的例子,不管是aspect j还是soa,都需要提供额外的引擎
光jvm是不够的,所以这就使得用aop和event driven编程的程序猿
所写的代码,不会跟oop程序猿写的代码冲突,你写你的,我写我的
这样也很好滴保证了独立性,使得不同风格的程序猿合作成为可能
现在很火热的fp其实是宣告式declarative paradigms
跟大部分解释执行的脚本都属于declarative paradigms
所以你会发现,很多脚本的爱好者,跟fp的支持者,其实是同一群人
宣告式的编程方式,更贴近人阅读的习惯
大多数人不会在乎自然界规律是怎么运转的,它们不管实现
它们只负责提交命令,做这个做那个,所以很多脚本语言
从它诞生之日起,就针对的是非科班毕业的人
从中有什么教训?
1)从指令式paradigms中学习到,不同的paradigms之间,最好有楚河汉界
分清楚,不要互相介入对方的领域,否则同一个代码片段
同时出现两种paradigms,这将会是一种灾难
就像二爷说的,当你在那几款语言中用了java code,瞬间美感就被破坏了
想办法切割开来,不要侵入式滴实现,否则下场会跟c++一样
c程序员不喜欢,java程序员也不喜欢,最后c程序员不用,java程序员更不用
2)fp越简单越有前途,既然不是给机器看的,是给人看的
那谁的学习成本低廉,谁就有前途
这就不难解释为什么r之类的语言迅速占领了统计之类的领域
因为r的语法跟统计学家们用的语法很相像
综合以上两点,我认为,将来jvm上fp的方向
将会是一个语法简单,不需要学习
但是又不破坏java本身结构的那么一种脚本或者fp等宣告式语言
当然jvm本身还有其它可以搞的,比如可视化ui部分

【在 z****e 的大作中提到】
: 尤其是multiple混杂的部分
: paradigms最早应该是指令式paradigms
: Imperative,这个主要是面向机器的编程方式
: 汇编就是典型,指令集么,这种方式基本上在机器性能提升之后
: 发展出结构化和非结构化paradigms
: 结构化后来搞出了过程式编程,c就是
: 再后面发展出了oop
: oop最典型的当然是java了,java并不是第一个纯的oo
: 第一个纯的oo是smalltalk,但是java保留了大部分c的语法
: 从而简化了学习门槛,使得java在很短时间内流行开来

d***n
发帖数: 832
8
soa是指service oriented architecture么
如果是的话跟event-driven是怎么关联起来的
:还有soa,其实就是event-driven的paradigms
b*******r
发帖数: 361
9
lz说的统计学家的语法?是什么情况?r好在不要钱和community。

【在 g****t 的大作中提到】
: fp现在算不上火热.
:
: 尤其是multiple混杂的部分
: paradigms最早应该是指令式paradigms
: Imperative,这个主要是面向机器的编程方式
: 汇编就是典型,指令集么,这种方式基本上在机器性能提升之后
: 发展出结构化和非结构化paradigms
: 结构化后来搞出了过程式编程,c就是
: 再后面发展出了oop
: oop最典型的当然是java了,java并不是第一个纯的oo

z****e
发帖数: 54598
10
http://en.wikipedia.org/wiki/Event-driven_SOA

【在 d***n 的大作中提到】
: soa是指service oriented architecture么
: 如果是的话跟event-driven是怎么关联起来的
: :还有soa,其实就是event-driven的paradigms

相关主题
python代码写成这样,什么鬼阿。What is the difference between class and struct?
prolog, lisp, sql,这些算functional programming么?也谈OOP跟FP之争
interface是oo feature吗C++的牛B之处你们都还没体会到
进入Programming版参与讨论
z****e
发帖数: 54598
11
现在谁做语言还收费?什么语言不是不要钱和community?
community cloud没听说过?
r community就是一堆统计学家数学家在里面

【在 b*******r 的大作中提到】
: lz说的统计学家的语法?是什么情况?r好在不要钱和community。
z****e
发帖数: 54598
12
给捧fp的留点面子罢了
最后定位可能会比aop好点
但是怕是好不了太多

【在 g****t 的大作中提到】
: fp现在算不上火热.
:
: 尤其是multiple混杂的部分
: paradigms最早应该是指令式paradigms
: Imperative,这个主要是面向机器的编程方式
: 汇编就是典型,指令集么,这种方式基本上在机器性能提升之后
: 发展出结构化和非结构化paradigms
: 结构化后来搞出了过程式编程,c就是
: 再后面发展出了oop
: oop最典型的当然是java了,java并不是第一个纯的oo

b*******r
发帖数: 361
13
你说的统计学家们用的语言貌似都爱收费额。你可能对这方面不太接触?

【在 z****e 的大作中提到】
: 现在谁做语言还收费?什么语言不是不要钱和community?
: community cloud没听说过?
: r community就是一堆统计学家数学家在里面

z****e
发帖数: 54598
14
比如sas?
商用和开源在性能上的差距应该是要承认的
拿出来卖钱的东西要是还比不过开源,那还了得
但是这种商用的往往会面临着开源的威胁
这种东西,我一般是不看好其前景的

【在 b*******r 的大作中提到】
: 你说的统计学家们用的语言貌似都爱收费额。你可能对这方面不太接触?
b*******r
发帖数: 361
15
好多公司想拿r赚钱,大大小小的

【在 z****e 的大作中提到】
: 比如sas?
: 商用和开源在性能上的差距应该是要承认的
: 拿出来卖钱的东西要是还比不过开源,那还了得
: 但是这种商用的往往会面临着开源的威胁
: 这种东西,我一般是不看好其前景的

z****e
发帖数: 54598
16
我是说语言本身不赚钱
实际上sas还有.net什么也都不是靠语言本身赚钱
而是通过兜售语言相关产品赚钱

【在 b*******r 的大作中提到】
: 好多公司想拿r赚钱,大大小小的
b*******r
发帖数: 361
17
不收钱的性能好到接近c和fortran的很易读的用的人又多以保证bug少的好像目前暂时
无解。

【在 z****e 的大作中提到】
: 我是说语言本身不赚钱
: 实际上sas还有.net什么也都不是靠语言本身赚钱
: 而是通过兜售语言相关产品赚钱

z****e
发帖数: 54598
18
不需要接近c,接近c/2就足够好了

【在 b*******r 的大作中提到】
: 不收钱的性能好到接近c和fortran的很易读的用的人又多以保证bug少的好像目前暂时
: 无解。

b*******r
发帖数: 361
19
that's what i mean...

【在 z****e 的大作中提到】
: 不需要接近c,接近c/2就足够好了
z****e
发帖数: 54598
20
真没看出来……

【在 b*******r 的大作中提到】
: that's what i mean...
相关主题
我来尽量客观地谈谈GC/ref count,还有RAIIEmacs有没有这样一种功能? (转载)
不同的语言可以统一语法吗[合集] 到底要学习Perl,还是Python?
一道面试怪题C++. (转载)我来说说python的优点吧
进入Programming版参与讨论
b*******r
发帖数: 361
21
你是说光速c?

【在 z****e 的大作中提到】
: 真没看出来……
n******t
发帖数: 4406
22
实际上大部分都是2B.

【在 z****e 的大作中提到】
: 不需要接近c,接近c/2就足够好了
z****e
发帖数: 54598
23
没怎么学过物理不理解什么是光速

【在 b*******r 的大作中提到】
: 你是说光速c?
z****e
发帖数: 54598
24
bc差多少?

【在 n******t 的大作中提到】
: 实际上大部分都是2B.
1 (共1页)
进入Programming版参与讨论
相关主题
[合集] 到底要学习Perl,还是Python?scala不是pure fp
我来说说python的优点吧python代码写成这样,什么鬼阿。
现在还在“学”脚本语言的,都弱爆了prolog, lisp, sql,这些算functional programming么?
FP内部比较: Haskell其实可以当脚本语言来用interface是oo feature吗
Java 不是纯oo, oo 不是 imperative programmingWhat is the difference between class and struct?
各个语言在paradigms上的对比也谈OOP跟FP之争
现在谈paradigm过时了C++的牛B之处你们都还没体会到
FP并不比OO什么的更“高级”我来尽量客观地谈谈GC/ref count,还有RAII
相关话题的讨论汇总
话题: paradigms话题: java话题: 反射话题: driven话题: fp