Re: [请益] 程式语言的学习 谁的说法正确???????

楼主: fayhong (恰似飞鸿踏雪泥)   2018-01-02 10:08:29
我不是要发表什么新的观点,只是想问 mega salary 的各位几个问题。
1. 各位可能都学过 C/C++/Java/Obj-C/JS/PHP/Python/Ruby/Swift/C#,
但有人研究过像 OCaml/Prolog/Scheme&Racket/Lisp/Erlang/Haskell/Algo/Agda&Coq
之类的语言吗?
2. 如果撇开 ecosystem 的大小不论,各位心里最钟爱的语言,心里认为设计最完美的
语言是什么呢?
3. 如果各位认为最完美的语言,是像 C/C++/Java/PHP/JS/Python/C# 这样有庞大
ecosystem 的语言,那这个问题不适合你,但如果不是,你认为为何这些语言
有那么庞大的 ecosystem 与 API,但你的完美语言没有呢?
4. 假设,你要把你现在在使用的语言抽出一些核心元素,形成一个 subset,足以完成
你现在所做的工作,你认为至少应该要有哪些语言特性需要被抽取出来呢?
5. 补充一个,假设你已经会一个语言,Java/C#/JS/Python/C 都好,让你接触一个新
语言,解决一个原有的问题,你会怎么思考呢?
作者: Ommm5566 (56天團)   2018-01-02 10:41:00
你问的问题都是没意义的 因为所有语言都是turing等价因为现在语言最后都是变成Von Neumann架构 所以核心就只有每次至多一笔资料去执行指令你如果要说subset那就是原本的分类像是funtional prog.object-oriented 之类的Programming paradigms所以根本就不存在A语言能解的问题但B语言不能解
楼主: fayhong (恰似飞鸿踏雪泥)   2018-01-02 10:50:00
你要这么说真的是没错,这样 Assembly与C便统一天下了程式语言最终也是转成 machine code 执行,但它提供的抽象机制,目的我认为是要提高语言的可读性因为可读,所以可以传达,因为可以传达,所以可以合作的确不存在A语言能解,而B语言不能的问题,除非B语言的设计有本质上的问题
作者: lachtchlee (nymph)   2018-01-02 12:24:00
板大独漏Self
作者: NoNameL (名无乚)   2018-01-02 12:26:00
的确不存在A语言能解,而B语言不能的问题 <= 我想到一种状况,那这样是不是在努力之后,可以用javascript或是lua之类的东西去写BIOS以及韧体之类的?
作者: pttworld (批踢踢世界)   2018-01-02 13:00:00
脸书有社群号称js在写作业系统
作者: dnabossking (少狂)   2018-01-02 13:02:00
抽像是抽像,可读是可读
作者: bcew (bcew)   2018-01-02 13:07:00
只要实现组语产生器,还有各专案的变量内存配置表高阶语言就能碰底层,但如果不是研究或好玩就没必要
作者: Argos (Big doge is watching u)   2018-01-02 13:19:00
不能因为最后都转成机器码就都说这都一样阿?不然人跟狗都原子组成反正都一样 这样逻辑对吗?为何要有高阶语言就是因为用低阶语言写某些东西会搞死人阿不然程式语言都可以扔了大家回去组语 不然写机器码好了 XD一堆程式语言和平台架构的最终目的是在做什么?先搞清楚来因为人类对于过度复杂的东西无法全面掌控 所以才使用切割并且模组化的策略 高阶语言也是模组化低阶部份功能来的 真正为的是简化重复出现的问题 以面对更复杂的真实世界需求整个资讯技术事实上都在努力化繁为简 努力的切割模组 努力的让后人不要再造轮子 难道这些都没意义?
楼主: fayhong (恰似飞鸿踏雪泥)   2018-01-02 13:44:00
楼上所言甚是,程式语言常是为了某些领域的问题所造以减化问题的解决过程,并重复那些好的practice与paradigm
作者: stosto (树多)   2018-01-02 14:09:00
我选给我两百万年薪的工作要写的语言
作者: freeunixer (御剑客)   2018-01-02 14:41:00
用 C 刻个 web framework,就能丢掉 ror, node 了(~误
作者: robber1234 (超痛恨嘴炮)   2018-01-02 15:02:00
还好你没提到Scala 不然先嘘再说
楼主: fayhong (恰似飞鸿踏雪泥)   2018-01-02 15:35:00
糟,我竟压根地把它忘了.....
作者: Argos (Big doge is watching u)   2018-01-02 17:55:00
其实除了切割模组外 黑暗面是商业考量 甚至我觉得商业考量的影响还多过于业界真正想解决问题呢 XDDD
作者: youngce (时间会让人遗忘)   2018-01-02 18:48:00
R大这么讨厌scala哦
作者: xxxorc   2018-01-02 20:23:00
我在刚转行时也觉得scheme很棒,学这个才是cs正统但现在只求做出有那么一点点价值的产品就好成功或淘汰都是有历史因素 就跟人类文明一样而且要比简单 R5RS 应该没人比得过吧
楼主: fayhong (恰似飞鸿踏雪泥)   2018-01-02 21:24:00
我现在只希望能用一个没那么多弱点,但可能特性也不多的语言,能够搭建出具有时间价值的东西,Java 有很多 3rdparty 的东西,ecosystem 极为庞大,虽然用起来很方便,但我更希望能够慢慢地自己能建构更深的东西,用更简洁的方法来做事,Scheme、Haskell、OCaml都是很值得一学的语言,不一定能用在真实场景,有时候是因为旁边的人没办法接受太跳tone的语法,但真的可以重新建构写程式的观点
作者: cybermeow (我有一只猫)   2018-01-02 21:40:00
推OCaml Haskell不过最近也蛮喜欢Rust的
作者: genius945 (添财)   2018-01-03 00:41:00
推这篇,感谢原po的分享
作者: kaifrankwind (大师兄)   2018-01-03 01:00:00
第6点那句话最后翻得不太对 没有"好使得" 就只是移减少看似需要加入新特性才能弥补短处的缺陷
作者: changyuheng (张昱珩)   2018-01-03 02:03:00
最后一句翻得怪怪的。原意白话是:语言设计的考量点不该是如何在既有特性上追加更多能力,而是要反其道而行——移除那些造成要追加功能才能使语言更加完善的弱点和限制。
作者: cobrasgo (人鱼线变成鲔鱼线,超帅)   2018-01-03 07:31:00
跟大家讲个翻译的观念,不要侷限在原本的句子而是要把它的意义翻出来。若设计的语言存在不足与缺陷,我们该做的是移除这些缺陷而不是新增功能来弥补这些缺陷
楼主: fayhong (恰似飞鸿踏雪泥)   2018-01-03 07:43:00
谢谢楼上的修正,我一直不知道怎么翻比较正确....

Links booklink

Contact Us: admin [ a t ] ucptt.com