`
saybody
  • 浏览: 902406 次
  • 性别: Icon_minigender_2
  • 来自: 西安
文章分类
社区版块
存档分类
最新评论

我心目中的理想語言

阅读更多

文 / 蔡學鏞

主動學習各種新語言是我的習慣,於是我經常到PLnews網站上,看看各種語言的消息,遇到不認識的語言,就會花一些時間研究一下值不值得學。我自己有一套語言評分標準,我理想中的語言必須符合這篇文章所描述的各點(依重要次序排列)。我到現在還沒有找到完全符合這些嚴苛條件的語言。

你也可以拿這些條件來檢視目前你正在使用的語言(例如Java、C#、Ruby),看看你的語言表現如何。

【支援Unicode】 所有不支援Unicode的語言,都應該被埋在上個世紀的歷史灰燼中。雖然Unicode早就已經是主流,但是還有許多語言不支援Unicode,這是相當重大的缺點。即使號稱有支援Unicode,也有支援程度的差異,例如有的語言對Unicode的支援是添加上去的,有點格格不入,且有些語言對Unicode的支援相當有限。

【寫一次,任何地方都可以執行】 最好支援Windows、MacOS、Linux、BSD等主流OS,甚至Windows Mobile、Symbian等手機的OS。

【超小的執行環境】 現在的軟體都大得很可怕。幾乎所有現代的語言,都需要10MB以上的執行環境,而30MB以上的也不少見。執行環境太大有什麼不好:(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那麼複雜。複雜的東西又貴又難上手,失敗告終的機會很高。

【支援RIA】 提供瀏覽器Plug-In,讓程式可以在瀏覽器內執行,也可以獨立於瀏覽器而執行。為了要支援RIA,也要提供許多標準協定(例如HTTP)。

【有互動模式】 對於初學者來說,互動模式是相當好的學習方式,而且也可以當作Shell,進行日常一些基本的操作(例如檔案系統管理)。

【免費與開放源碼】 軟體開發的錢很難賺,能省則省。另外,開放源碼的語言比較有保障,比較不會因為廠商關門而使得該語言產品的用戶變成孤兒。

【有很強的社群】 社群可以幫我們解決技術問題,告訴我們到哪裡取用資源。社群的存在,可以幫助語言健康地發展。

分享到:
评论

相关推荐

    一位研究生导师心目中理想的论文

    总的来说,理想的研究生论文应当具备清晰的结构,明确的研究目标,有力的证据支持,以及准确详实的方法描述。此外,良好的语言表达能力和对学术规范的严格遵守也是不可或缺的。通过不断打磨和完善,论文不仅能体现...

    我心目中的班集体演讲稿300字范文.pdf

    这篇文档包含了多个演讲稿,主题都是关于学生们心目中的理想班集体。这些演讲稿共同强调了几个核心要点: 1. **团结友爱**:理想的班集体应该像一个大家庭,同学们彼此关心,互相帮助,共同度过快乐时光。在他人...

    六年级语文下册理想风筝PPT学习教案.pptx

    3. 课题解析:“理想的风筝”一题引发学生思考风筝的象征意义,即它不仅是娱乐工具,更是作者心目中理想的象征,因为它承载着刘老师面对生活的乐观态度和不屈精神。 4. 教学目标:引导学生理解“理想的风筝”背后的...

    大班语言活动教案 未来的汽车.docx

    3. 教师通过提问,如汽车的颜色、形状和用途,引导孩子们大胆想象和讲述自己心目中的理想汽车,同时,教师通过平行谈话示范,激发孩子们的创造力。 4. 对于孩子们的讲述,教师进行适当指导和反馈,鼓励他们表达个人...

    looknstop防火墙详细教程

    长期以来因机器性能差,且机器有重要文档而不断寻找一款占资源少且性能优异的防火墙,在经历了ZA、OP后,终于发现Look’n’stop是心目中理想的防火墙。 在寻找过程中,不断发现有网友认为LNS难以配置、造成不能上网...

    四年级语文上册 1.1 等我也长了胡子教案设计 长春版-长春版小学四年级上册语文教案.doc

    2. 能够流畅、有感情地朗读课文,鼓励学生根据个人体验分享他们心目中的理想父亲形象。 3. 培养学生的表达能力,鼓励他们勇敢表达自己的想法并尝试写作。 教学过程中,教师通过创设情境,如播放《大头儿子小头爸爸...

    江西省吉安市吉安县第三中学2015届高考语文一轮复习语文测评题(8)

    在这个题目中,学生被要求用比喻来描述心目中的"青春"。比如,"青春是一首未完的诗,它在笔尖跳跃,挥洒出激情与梦想的篇章",展示出青春的创造力和活力。 6. **概括境界并举例说明** 这个题目让学生选取一个词来...

    2021-2022年收藏的精品资料苏教版三年级下册道德与法治第三单元为了你为了我七课时教案.doc

    3. 创新与设计能力:教学过程包含了设计未来社区的活动,让学生发挥创造力,构想心目中的理想社区,这有助于培养他们的创新思维和设计能力。 4. 公共设施的认识与保护:在另一课时中,教育学生了解公共设施的重要性...

    Python语言描述最大连续子序列和

    也希望各位找工作的同志们都拿到心目中理想的offer,从此以后,战胜高富帅,赢取白富美,走上人生巅峰。 1.问题描述 假设有一数组(python里为list啦)[1,3,-3,4,-6,-1],求数组中最大连续子序列的和。例如在此数组...

    兰兰过桥 (2).doc

    此外,课程还鼓励学生发挥想象力,设计心目中理想的桥,以此培养他们的创新思维和动手能力。 总的来说,《兰兰过桥》的教学设计不仅关注语言文字的基础学习,更重视培养学生的创新精神和实践能力。通过这样的教学,...

    大话经典语录.docx

    14. **理想与现实**:“紫霞在你心目中是不是一个惊叹号?还是一个句号?”反映了角色对理想与现实之间的困惑。 15. **宽恕与欺骗**:“不管你怎么不愿意,你都不要告诉我你从来没有喜欢过我。”展示了对情感真相的...

    我的好老师作文.doc

    【标题】: "我的好老师作文.doc" 是一篇描绘作者心目中的优秀教师的文章,通过具体的事件和细节,展示了教师的教育理念和对学生无微不至的关怀。 【描述】: 这篇文章描述了作者在暑假期间参加英语兴趣班的经历,...

    职业生涯规划模板系列2021-播音主持专业大学生职业生涯规划书.docx

    在职业定位上,节目主持人不仅是传播信息的媒介,更是公众心目中的角色模型。他们需要符合受众的理想角色要求,得到观众的认同。主持人节目在中国的发展相对较晚,但发展迅速,主持人在节目中扮演着舆论领袖的角色,...

    mudoo:Go实现的网络通信库

    我心目中理想的网络库的样子协程安全,原生支持多核多协程.不考虑可移植性,不跨平台,只支持Linux,不支持Windows.主要支持x86-64,兼顾IA32.不支持UDP,只支持TCP.不支持IPv6,只支持IPv4.API简单易用,只暴露具体...

    幼儿园教案2021-中班艺术:我来设计…….doc

    3. 幼儿创作:提供多种材料,让幼儿自由选择,动手设计并制作心目中的家庭用具,教师在旁观察指导,适时给予帮助和建议。 4. 交流分享:幼儿展示自己的作品,讲述设计意图和功能,通过个别展示和小组分享,提升语言...

    福建省泉州东湖中学七年级语文下册 第30课《诗词五首-迢迢牵牛星》同步练习 语文版(通用).doc

    14. 在表达交流环节,可以引导学生用自己的语言描绘心目中的田园生活,激发他们的想象力和语言表达能力,体现语文教学的实践性和个性化。 综上所述,这些练习题旨在帮助学生深入理解和欣赏古代诗词,通过文字积累、...

    部编本人教版小学四年级语文下册第一单元第2课《乡下人家》教案(含两课时).pdf

    同时,鼓励学生分享自己对文中描绘场景的想象,或者画出心目中的乡下人家,以此激发他们的艺术创作灵感。此外,教师还可以引导学生学习作者的写作手法,比如如何运用拟人、比喻等修辞手法来描绘景物,增强语言表现力...

    java编程文档

    作者Bruce Eckel是众多Java程序员心目中的大师级人物。随着Java技术的发展和深入,Bruce Eckel推出的第三版《Java编程思想》受到了广泛欢迎和赞誉。这本书之所以深受欢迎,是因为它不仅仅讲述了Java语言的基础知识,...

    新概念英语Lesson PPT课件.pptx

    它可以指代宗教中的天堂,如“heaven”,也可以用来描述人们心目中的理想之地,如美国被一些人视为“paradise”。 最后,“wretched”是一个形容词,用来形容悲惨、不幸或质量极差的情况。它可以用来描述人的心情、...

Global site tag (gtag.js) - Google Analytics