设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 IT综合资讯 查看内容

蔡学镛:我心目中理想的编程语言

2014-2-7 15:52| 发布者: joejoe0332| 查看: 1611| 评论: 0|原作者: 红联Linux门户|来自: 红联Linux门户

摘要:   一个好的编程语言应该让你驰骋在自己的脑海中,自由飞翔,而不是设置重重障碍拖累你。除了这个笼统的说法之外,我自己有一套语言评分标准,我理想中的语言 必须符合这篇文章所描述的各点(依重要次序排列)。你也 ...

  一个好的编程语言应该让你驰骋在自己的脑海中,自由飞翔,而不是设置重重障碍拖累你。除了这个笼统的说法之外,我自己有一套语言评分标准,我理想中的语言 必须符合这篇文章所描述的各点(依重要次序排列)。你也可以拿这些条件来检视目前你正在使用的语言(例如 Java、C#、Ruby),看看你的语言表现如何。


【支持 Unicode】

所有不支持 Unicode 的语言,都应该被埋在上个世纪的历史灰烬中。虽然 Unicode 早就已经是主流,但是还有一些语言不支持 Unicode,这是致命的缺点。即使号称支持 Unicode,也有程度的差异,例如有的语言对 Unicode 的支持是后来添加的,有点格格不入,且有些语言对 Unicode 的支持相当有限。


【写一次,到处都可执行】

最好支持 Windows、MacOS、Linux、BSD 等主流 OS,甚至 iOS、Android 等手机 OS。


【支持各种软件开发】

我希望能用一个语言做系统开发、驱动开发、DLL 开发、应用开发、服务器开发、脚本开发。


【超小的执行环境】

现在的软件都大得可怕。几乎所有现代的语言,都需要 10MB 以上的执行环境,而 50MB 以上的也不少见。执行环境太大有什么不好:(1) 下载、安装时耗费时间与资源;(2) 执行时速度「可能」会比较差;(3) 潜藏其中的 bug「可能」比较多。因此,我极度抗拒痴肥的语言与框架。


【包含 GUI】

大多数 Open Source 的语言,都不包含 GUI,而是使用外部的 Tk、wxWidget 等库,这些外部库往往:(1) 相当庞大;(2) 效率「可能」不是很好;(3) 不见得和语言本身的范式(paradigm)吻合,使用起来可能会导致精神错乱。除了 GUI 库,我也希望具有比较好的 2D / 3D 绘图引擎。


【用更少,做更多】

程序写得越长,不代表越有价值。能够用精简的代码,做出许多重要的事,才是我们追求的目标。写出来的代码短,会比较好维护。


【支持 Meta-Programming】

我希望能够不需要再通过 ANTLR 等工具,而是可以直接用语言本身,轻易地写程序处理另一种(我自己发明的)小语言,并让两种语言之间可以互相融合,达到最佳的 DSL(Domain Specific Language)境界。如此一来,开发的效率会相当高,且需要的代码会相当少。

我希望重要的 DSL 都已经有人先建立好了,我可以直接采用,特别是 Web、数据库、GUI 这些部分。


【好用的剖析器】

现在程序需要剖析文字档的机会很高,我不喜欢 Regular Expression,也不想用外部的 ANTLR,我希望能有更方便使用的剖析器,让我可以利用 BNF(Backus- Naur Form)的写法。


【能够调用 C 的库】

许多时候,光靠语言本身还是做不到的事,必须呼叫 OS 或其他厂商的 C 程序库。如果语言和 C 之间能有良好的调用规范,那么调用外部程序库就会很容易。我希望不只能调用 C,也可以做成 call-back 函数,让 C 回调。


【具有良好的 Web 与数据库方案】

现在做软件开发,十之八九都是 Web 加上数据库。如果该语言可以轻易地做出这样的方案,会相当具有吸引力。


【能嵌入汇编语言】

写 C 程式时,我们可以嵌入 x86 汇编语言,以提升速度。我希望现在一般的语言也能够有类似的作法,让我可以嵌入比较低阶的语言,舍弃一些检查(例如型态检查,数组边界检查),换取速度的提升。


【丰富的数据类型 Literal】

我希望语言能有丰富的数据类型,且能够用 literial 的方式写出这些类型的值,如此一来,写起来非常简短方便,表达力更好,并可能有其他的好处(例如让 DSL 的设计更容易)。

可惜目前主流的语言,Literial 的写法都只有不到 10 种,不外乎是整数、小数、字符串、数组,距离我所谓的「丰富」,还有好几倍的差距。


【轻量级的 RPC / SOA】

我希望语言能支持 RPC / SOA,且使用轻量级的方式,不要搞得像 IBM 的 SOA 那么复杂。复杂的东西又贵又难上手,失败告终的机会很高。


【有交互操作模式】

对于初学者来说,交互模式是相当好的学习方式,而且也可以当作 Shell,进行日常一些基本的操作(例如文件系统管理)。


【免费与开放源码】

软件开发的钱很难赚,能省则省。另外,开放源码的语言比较有保障,比较不会因为厂商关门而使得该语言产品的用户变成孤儿。


【有很强的社群】

社群可以帮我们解决技术问题,告诉我们到哪里取用资源。社群的存在,可以帮助语言健康地发展。


【支持浏览器】

代码可以编译成 JavaScript/HTML5,让程序可在浏览器内执行。

我到现在还没有找到完全符合这些条件的语言。或者,你已经发现了这样的语言?


酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部