自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

編程思想碰撞 Scala不是改良的Java

開發(fā) 后端
Scala把自己定位為旨在以一種簡潔、優(yōu)雅的方式表現(xiàn)常見編程模式的多范式編程語言。但這些理念從根本上與Java之所以成為Java的原因相抵觸。Java從文化上反對這些理念:Java慎重的簡單。

Scala 2.8的發(fā)布又一次帶來Scala和Java區(qū)別與聯(lián)系的熱烈討論。Scala編程語言擁有所有Java的語言特征,而且還支持所有的新興的有趣的概念,例如閉包,higher-kinded類型,內(nèi)聯(lián)XML。如果你要創(chuàng)建一個JVM上的新項目,你是否會考慮使用Scala?

Scala編程環(huán)境非常的有意思,在2.8版本中,編譯器會為帶有unboxed的基本數(shù)據(jù)類型的函數(shù)編譯出多個版本——這樣泛型函數(shù)就免去了性能昂貴的unboxing和boxing操作了。

Scala允許操作符重載,通過它隱含的機(jī)制,你甚至能在實例化后的對象里動態(tài)的添加新的方法。

這些功能使你編碼時感到更方便。你基本上不需要再顯式的把數(shù)組和其它的序列類型區(qū)分開,不需要把未封裝的double類型和其它數(shù)字類型區(qū)分開。JVM上的數(shù)組、基本數(shù)據(jù)類型和其它相關(guān)類型的“平?;?ldquo;在某種程度上減少了使用這些類型的復(fù)雜度。

雖然與Scala的第一次親密接觸會讓你感覺到Java如影隨形,但這些理念從根本上與Java之所以成為Java的原因相抵觸。Scala把自己定位為旨在以一種簡潔、優(yōu)雅的方式表現(xiàn)常見編程模式的多范式編程語言。Java從文化上反對這些理念:Java慎重的簡單。 Java設(shè)計團(tuán)隊研究了“現(xiàn)代”C和C++語言的各個方面后才決定了在現(xiàn)代面向?qū)ο缶幊陶Z言環(huán)境中哪些功能特征應(yīng)該被取消,同時又要保留C++相類似的語法。

特別的,一個已知的原則,任何事情都必須非常的直接明了: C和C++里一個主要的麻煩是,你需要在大量的語境中去理解他人的代碼:在理解一段程序之前,你必須閱讀所有相關(guān)的頭文件,所有相關(guān)的#defines, 所有相關(guān)的typedefs。本質(zhì)上,使用#defines和typedefs編程會導(dǎo)致每個程序員都像是在發(fā)明一種新編程語言,只有開發(fā)的人自己能理 解,這種情況不符合好的編程過程的設(shè)計目標(biāo)。

這種對好的編程過程的理念正是Scala極力反對的。在核心中集成領(lǐng)域特定語言(domain specific languages)的能力被Scala當(dāng)作一種積極因素被提倡。

按我的觀點(diǎn),判斷好的編程過程的依據(jù)應(yīng)該考慮是否能產(chǎn)生好的結(jié)果這個因素。HotJava實驗失敗后,我們應(yīng)該承認(rèn),所有的三種主要的web瀏 覽器(Mozilla Gecko, Webkit, 和 Internet Explorer)都是用C++寫成的,這是人們根據(jù)結(jié)果來選擇編程語言的行為,而不是根據(jù)了一種習(xí)慣經(jīng)驗。

Java被認(rèn)為是從小語言慢慢長壯大的,是一種從Lisp和Smalltalk之類的語言獲取了積累經(jīng)驗的果實。 Scala自豪于擁有強(qiáng)大的higher-kinded類型,Java自豪于去除了多重繼承。它們更本不是相互的競爭者:它們的文化取向差異巨大。

在《Java,正在老去的王者》一文中,我們分析Java的未來在于JVM語言的繁盛和興起,也許Scala可以推動JVM跟其它的平臺進(jìn)行競爭。它有一些好的Web公司支持它(例如Fourquare),作為一種具有強(qiáng)類型校驗的面向?qū)ο蟮哪_步語言,它是很稱職的。

Java是有意設(shè)計成非面向程序員的。這就是Java的特點(diǎn)——它是專門被設(shè)計成防止那些有問題的程序員給自己制造麻煩。如果你討厭JVM,我想問題應(yīng)該是:多少防護(hù)措施對你的程序員是合適的?Scala給出的答案本質(zhì)上和Java是相反。

 

【編輯推薦】

  1. Scala的啟發(fā):代碼本質(zhì)與過度包裝的平衡
  2. 獨(dú)家專訪Scala IDE三劍客:探秘IDE插件開發(fā)
  3. Scala編程的思考方法
  4. 從Java走進(jìn)Scala:一步步教你使用Scala Actor
  5. 對象函數(shù)式編程 Scala簡史
責(zé)任編輯:佚名 來源: 外刊IT評論
相關(guān)推薦

2011-12-16 13:42:42

云計算

2010-09-14 15:34:41

Scala

2009-06-15 10:25:46

Java編程思想Java

2016-04-25 16:25:36

存儲極客硬盤RAID

2009-02-06 09:08:04

Scala函數(shù)語言輕量級

2009-06-16 17:09:17

Scala面向?qū)ο?/a>函數(shù)編程

2010-11-17 11:31:22

Scala基礎(chǔ)面向?qū)ο?/a>Scala

2009-09-24 09:41:00

Scala講座Scala

2013-06-17 11:21:27

2009-06-22 13:48:00

Java編程思想面向?qū)ο?/a>

2010-09-14 13:22:17

Scala編程指南Scala

2020-09-10 14:02:28

騎車數(shù)字化

2010-10-14 13:50:11

Scala

2012-08-22 08:58:39

編程

2009-07-03 11:27:11

JSP編程思想

2010-08-03 08:54:07

JDK 7Lambda表達(dá)式函數(shù)式編程

2010-09-14 14:28:58

Scala

2012-05-14 10:53:58

公益

2010-03-11 10:34:22

Scala

2011-06-28 11:06:16

Scala
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號