编程语言不单单是工具而已

我绝对的承认懂得多种编程语言的价值,也认为“用正确的工具干活儿”是个好思想。但在编程工做中,人们对这个概念有个误解,我认为须要在这里指出一下。但请记住,对这个误解的诠释并非来否认这个思想的。 程序员

多语言电影
让我从一个古怪的类比开始:假设这有一个电影,是关于一个政治阴谋,涉及到一系列复杂的国际冒险,冲突波及到七、8个国家。每一个演员都说着他们本地的语 言,没有字幕。谁能看懂这个阴谋的情节?恐怕只有少数几个懂得多语言的制片人能欣赏的了这个电影。咱们大部分人都不会去看它。 数据库

多语言编程
咱们的上一个Web应用项目里使用了六、7种的编程语言(Groovy, Java, HTML, CSS, SQL, Ant)。若是咱们感受须要的话,还能够轻松的再增长更多的语言。再增长Clojure, Scala 或 Ruby/JRuby 并不会以为不合适。一个懂得多种语言并有能力在多种语言间切换到程序员就被称做“多语言程序员”。 编程

形成多语言项目产生的一个主要理由一般是“使用正确的工具干活儿”的概念。而这个“活儿”一般指的是一个大项目里的一些小任务,好比编译项目,访问数据库, 实现永不定型的业务逻辑。对于每一个子任务,都有某个语言可以更出色的完成。除了人们对这种多语言的作法形成的隐藏成本存在争议外,还有一个对于“工具”这 个词的误解须要注意。 框架

编程语言不是工具 编程语言

如 果你的工具碰巧是一种编程语言,那你生产的源代码将和你的工具融合到一块儿。没有这个工具,你的产品彻底不能运行。若是你认为编译后的二进制代码是“产 品”,你将没有可能针对它作“需求变动”,这是程序员最初可能会有的一个错误概念。很显然,程序员的生产的产品是“源代码”。编程语言并非扮演工具的角色,从软件的性质上看,它应该是材料。工具能够扔掉,材料构成主体。 工具

编程语言是产品材料
由于源代码依附于它的编程语言,它们是一个概念上的合体。因此,我建议,当咱们在谈论编程语言时,应该改为“使用正确的材料来干活儿”的说法。相比起选择 是使用飞利浦的螺丝刀仍是三菱的改锥这样的问题,咱们修改后的说法会对编程语言的选择起到更深远的意义。材料须要持久的耐用,而工具大部分时间是丢在一 边。 spa

但同时也是工具
在上面提到的咱们作过的Web应用项目中,咱们使用了不少工具。Grails是咱们的框架,Jetty是咱们的Web容 器,Spring Framework提供了强大的服务,咱们用IDEA把它们结合到一块儿。咱们能够轻松的用Tomcat替换Jetty,或用Eclipse替换IDEA。 工具须要可替换,甚至是一次性的。 教程

总结
“用正确的工具干活儿”这话并不能简单的应用到编程语言上,由于它们不是工具,而是材料。这就是为何在一个项目中大量使用多语言是危险的。它很容易让项目变成一个混乱的“复合板“项目。
ip

更多编程语言教程集合请登陆e良师益友网。 get

相关文章
相关标签/搜索