从众多语言中,挑出本书包含的几门语言,这一过程也许不像你想得那么复杂。我们只不过发了些调查问卷,向本书的潜在读者请教了一番。调查数据汇总上来时,有八门语言入选希望最大。不过,我先是把JavaScript“踢”了出去,因为它实在是过于热门了,取而代之的是原型语言中热门程度仅次于JavaScript的Io。随后,我又把Python“踢”了出去,因为我只想给面向对象语言一个名额,而Ruby的票数多于Python。同时,这也给一个出人意料的候选者让出了位置——名单上位列前十的Prolog。下面,我给出成功入围本书的最终名单和挑选它们的理由
- Ruby。这门面向对象语言高票当选,因为它不仅好用,而且好读。我曾经考虑过不介绍任何一门面向对象语言,但我又想在其他编程范型与面向对象编程之间作一些比较,因此,至少介绍一门面向对象语言还是有必要的。相比于大多数程序员的日常用法,我想把它挖掘得更深入一些,以揭示设计者的良苦用心。我最终决定重点介绍Ruby元编程(metaprogramming),因为它可以扩展Ruby的语法。对于Ruby榜上有名的结果,我还是相当认可的。
- Io。和Prolog一样,Io也是本书颇具争议的语言。它虽与商业成功无缘,但其兼具简单性和语法一致性的并发结构,却是十分重要的思想。它的最简语法(minimal syntax)功能强大,与Lisp的相似性也颇能给人留下几分印象。Io不仅和JavaScript一样同为原型语言,还有着独一无二、韵味无穷的消息分发机制,因此在众多编程语言之中,它也占有小小的一席之地。
- Prolog。没错,我知道Prolog年事已高,但它仍然力大无穷。它能轻松解出数独问题,这不禁让我大开眼界。而且用Java或C语言时,有些难题我殚精竭虑方能解决,用它却能干净利落地搞定。承蒙Erlang的发明者Joe Armstrong出手相助,我得以深刻体会到Prolog之妙。同时,也正是深受Prolog影响,Erlang才得以问世。如果你此前从未用过Prolog,我保证,它定会带给你惊喜。
- Scala。作为运行于Java虚拟机上的新一代语言,Scala为Java系统引入了强大的函数式思想,而且也并未丢弃面向对象编程。回顾历史,我发现C++和它有着惊人的相似之处,因为从过程式编程过渡到面向对象编程期间,C++同样起到了举足轻重的作用。当你真正融入Scala社区之后,你就会明白,为什么对于函数式语言程序员来说,Scala是异端邪说,而对于Java开发者来说,Scala是天降福音。
- Erlang。作为名单上历史最悠久的语言之一,Erlang不仅是一门函数式语言,而且在并发、分布式编程、容错等诸多方面都有着优异表现,真是想不火都难。CouchDB(新兴的基于云的数据库)的创始人就选择了Erlang,并且义无反顾地一直用它,只要花上点时间了解这门分布式语言,你就会明白原因所在。在Erlang帮助下,设计带有并发、分布式、容错等特征的应用程序将变得无比简单。
- Clojure。这又是一门Java虚拟机语言,但正是这门Lisp方言,彻底颠覆了我们在Java虚拟机上并发编程的思考方式。它是本书唯一在版本数据库中使用同一种策略管理并发的语言。作为Lisp方言,Clojure或许拥有本书所有语言中最灵活的编程模型,因此绝不缺乏号召力。与其他Lisp方言不同的是,它不会带那么多括号 ,还有众多Java库和在各平台上的广泛部署作为坚强后盾。
- Haskell。它是本书唯一的纯函数式语言,这也意味着,它根本不存在可变状态:只要使用相同的输入参数调用相同的函数,就会返回相同的输出。在所有强类型语言中,Haskell拥有最令人称羡的类型模型。和Prolog一样,它也需要你花一些时间理解,但你得到的回报绝对物超所值。
如果名单上没有你钟爱的语言,我深感抱歉。老实说,还真有语言狂热分子给我发过好几封恐吓信。在本节开始提到的民意调查中,我们总共列出了几十门语言。我挑的这几门语言未必是其中最出色的,但它们特点突出、个性鲜明,都具有重要的学习价值。
分享到:
相关推荐
在这个界面,您需要为每种语言配置文本域的文本内容。例如,为英文和中文分别输入对应的语言文本。 现在,让我们处理语言切换按钮。选中这个按钮,右键点击并进入属性设置。在“事件”部分,设置按钮的单击事件为...
5. 当你选中“current language”后,按下“F4”键,这将打开语言选择列表。在这个列表中,你可以看到所有支持的语言选项。 6. 找到并选择“CHINESE”(中文)选项,然后按下“enter”回车键进行确认。完成这一步后...
4、选择多语言包文件所在位置(比如E:\langpacks\en-us),并选中“英语(美国)”。 5、点击“下一步”进行安装 6、安装成功之后,进入控制面板->语言,点击English(United States) 的选项(如果没有这个语言,...
解压密码:www.sanye.cx 资源介绍:取选中文本易语言模块源码例程程序调用API函数取选中文本。点评:取选中文本易语言模块源码不通过剪贴板取选中文本,可取后台选中文本。资源作者:易语言源码资源界面:资源下载:
这样一来,你可以为每种语言独立设置字体大小。接下来,你需要为每种语言配置特定的字体大小。在取消勾选后,Wincc会显示一个列表,列出了项目中包含的所有语言。点击每种语言,然后在右侧的“字体”部分调整字体...
使用富文本TInMCE默认为英文,设置语言需要导入相应的语言包 , 发现其它的语言包下载需要积分,翻译不全以及是很老的版本了。特此上传一份供大家使用, 导入格式如下: tinymce.init({ selector: '#textID', // ...
在这个例子中,当窗口创建时,`单选框1`被设置为默认选中状态。而当用户点击`单选框2`时,`单选框2`会被选中,同时`单选框1`的选中状态被取消,实现了单选的效果。 了解这些基本概念和函数后,你就能在易语言中自如...
这是因为Vtiger CRM在导入语言包时要求文件格式为ZIP。你可以使用任意支持ZIP格式的压缩工具(如WinRAR或7-Zip)来进行这一步操作,确保选中所有需要导入的文件和文件夹,并将它们打包成一个ZIP文件。 最后,在...
### checkBox分别处理选中与不选中 在Web开发中,`checkbox`是一种常见的表单元素,用于收集用户的选择信息。通常情况下,一个`checkbox`只能代表一项选择,但可以通过设置多个`checkbox`来实现多选功能。本文将...
### SAP 打语言包(SMLT)操作指南 #### 一、简介 SAP系统中的语言包(Language Pack)管理对于确保系统能够正确显示多种语言界面至关重要。本指南将详细介绍如何通过SAP的SMLT事务代码来安装、更新语言包以及进行...
在Android开发中,GridView是一种常用的布局控件,它允许我们以网格的形式展示数据,通常用于创建列表或展示图片。在很多应用中,我们可能需要实现GridView的选中效果,包括设置默认选中项以及选中后的视觉反馈。...
本文提供了三种取消选中radio的方式,代码示例如下: 本文依赖于jQuery,其中第一种,第二种方式是使用jQuery实现的,第三种方式是基于JS和DOM实现的。 代码如下: <!DOCTYPE HTML> <html> <head> <...
在Struts中几种情况可以使标签初始就是选中的,Formbean里面该Property的值设为 1.on 、2.yes 、3.true 这三种情况都是可以实现默认选中的。 注:如果不选中,最好把Property的设置为””,因为在Action中得到...
在选择安装组件时,确保选中“语言包”选项,以便将Visual Studio的界面语言更改为中文。 4. **重启应用**:安装完成后,可能需要重启Visual Studio或甚至计算机,以使语言更改生效。 5. **更新与维护**:保持...
易语言是一种专为中国人设计的编程语言,它的目标是让编程变得简单易学。在易语言中,"取选中文本模块"是一个重要的功能模块,主要用于处理文本选取操作,这在许多应用程序中都非常常见,例如编辑器、浏览器或文档...
这个类通常会包含一个静态属性,如`CurrentLanguage`,用于存储当前选中的语言,并提供一个方法来切换语言,例如: ```csharp public static class Localization { public static CultureInfo CurrentLanguage { ...
在Android开发中,CheckBox是一个常用的UI组件,用于提供两种状态的选择:选中和未选中。默认情况下,CheckBox的选中和未选中状态的图标是系统提供的,但有时为了满足应用的个性化需求,我们需要自定义这些图片样式...
当一个item被选中时,我们需要将其背景设为选中颜色,否则设为默认颜色。例如: ```java @Override public View getView(int position, View convertView, ViewGroup parent) { View view = ... // 获取或复用...
Eclipse是一款广泛使用的开源集成开发环境(IDE),主要用于Java编程,同时也支持其他多种编程语言。在Eclipse中,为了方便中国用户使用,官方提供了Eclipse中文语言包,它包含了Eclipse界面的所有中文翻译,使得...
对于多语言,我们需要为每种语言创建一个这样的文件,并在对应的`values`目录下。例如,为英文和中文,我们会有`values/strings.xml`和`values-zh-rCN/strings.xml`。每个文件中会包含相同ID的字符串,但内容是不同...