成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

從Java和JavaScript來學習Haskell和Groovy

開發 后端 前端
我爭取從Java和JavaScript到Haskell和Groovy,對這四門語言,一個特性一個特性地橫向比較,比如站在類型系統的角度,弱類 型、強類型,靜態的、動態的,類型之間的關系、類型創建等等;再比如元編程方面,Java的反射和代理系統,JavaScript的 prototype,Groovy強大的元編程體系,還有Haskell的編譯期元編程實現等等。

 

[[140015]]

我記得剛接觸計算機的時候,我就受到了兩個非常巨大的錯誤觀念的影響,這個觀念最初是來自于老師的傳授還是學長的教誨已經記不清了,但是直到我工作幾年以后,才慢慢有了實際的體會:

  1. 學習和使用什么編程語言不重要,重要的是算法和設計;
  2. 程序員學習的精髓是面向對象的設計模式,掌握以后,一通百通。

簡直就是是胡扯啊。也許在某個極其狹隘的上下文中還能這樣說,但是泛泛而談,這樣的態度無疑是誤人子弟的。

就說***條,編程語言不但重要,而且太重要了。換句話說,學習一門新的編程語言,可能學習的是背后的范型和思考問題的方式。如果這個部分能帶來新的東西,那就是值得花時間投入的。

可能很多人和我的背景一樣,熟悉Java和JavaScript,一門是經典的靜態語言,一門是經典的動態語言。有人說相較而言,搞C++背景的人算法和 數據結構基礎更加扎實;而起初搞Java背景的人可能設計方面懂的多一點,但是水貨更多;而說起JavaScript,就似乎更“低廉”了,雖說學好太 難,但入門門檻超低。于是針對像我這樣背景的工程師,我打算用類比Java和JavaScript的方式寫一些新的編程語言的學習筆記,因為在我看來,用 “類比”的方式是學習印象深刻,而且容易更容易理解的有效方式。以前也用類似的方式寫過一些新技術的學習筆記,比如《GWT初體驗》。但是通常要學習一門 新的編程語言,尤其是從未熟悉的一個新的編程范型,學習曲線要比這個高得多。在我的腦海里有這樣一個清單,記載了最想接觸和熟悉的編程語言,這個清單最首 要就包括:

  • Groovy。學習Groovy就是奔著“動態語言”去的,而動態語言,就是奔著“元編程”去的。“動態”,是指在程序運行過程中可以改變數據類型的結 構。也就是說,是圍繞著“元編程”產生的特性。元編程,指的是在運行時改變“類”的定義,例如訪問、增加或修改等等。一言以蔽之,就是“用程序來寫程 序”。Groovy是和Java最親近的動態語言。07年底接觸過一段時間Groovy程序,還混過當時Groovy中國社區的斑竹,只可惜本人如此喜愛 掛念的東西,現在依然不算多活躍,在 ***的TIOBE排行上面 ,列在36位,有趣的是,35位的是Scala,真可謂難兄難弟。這里有個小段子,Groovy的作者James Strachan說,如果當年他看到了Scala,就不會有Groovy什么事兒了。即便是這種自掘墳墓式的追捧,如今看來Scala的下場也沒見得好到 哪去。JavaScript也一樣是動態語言,為什么還要接觸Groovy?其中一個重要原因是其中的元編程特性太豐富。
  • Haskell。純粹的函數式語言。可以這樣理解“純粹”一說:有一些語言“可以”進行函數式編程,但是有的則是“不得不”進行函數式編程。 編程語言發展的兩大趨勢就是動態語言和函數式語言。因此有了Groovy代表動態語言,接著我一直想學習一門函數式語言。函數式編程就像數學中的函數一 樣,唯一給定了輸入參數,就可以唯一確定輸出結果,沒有上下文的影響,沒有執行次數的影響,或者說是天然冪等的。網上太多文章批Haskell太過學院 派,連教科書里面要教授函數式編程都用Scheme(因為它更易學,還沒有那么復雜的類型系統),但是開闊視野無疑是非常好的(“代碼原來可以這樣 寫!”),尤其喜愛其中的模式匹配的特性。

當然還有其它的,有代表性的語言想深入研究,比如邏輯式的Prolog,還有可以寫詩的Perl……但是也害怕吃得太多就會撐著。

Haskell之于函數,就像Perl之于字符串,就像Prolog之于謎題,就像Groovy之于DSL。

我會記錄和討論一些語言特性,但是不會去討論大多數語法糖這樣可能重要但是瑣碎的部分。如果只是純粹的學習筆記那多無聊啊,還不如把它寫成吐槽 帖。我爭取從Java和JavaScript到Haskell和Groovy,對這四門語言,一個特性一個特性地橫向比較,比如站在類型系統的角度,弱類 型、強類型,靜態的、動態的,類型之間的關系、類型創建等等;再比如元編程方面,Java的反射和代理系統,JavaScript的 prototype,Groovy強大的元編程體系,還有Haskell的編譯期元編程實現等等。

 
責任編輯:王雪燕 來源: IT牛人博客
相關推薦

2022-12-29 08:16:45

Groovy語法coercion

2010-05-24 13:57:27

swap分區

2013-02-18 11:31:00

JavaScriptPerl語言

2017-04-10 14:23:01

typescriptjavascriptwebpack

2013-03-12 10:00:29

HaskellHaskell語言編程語言

2020-05-11 14:18:14

JavaScript斐波那契數列遞歸

2012-11-19 11:09:15

IBMdw

2009-08-26 13:31:21

JavaScript使

2009-08-28 11:03:21

C#快速排序

2009-07-29 17:42:55

JavaScript和JavaJScript

2021-08-03 16:35:04

AndroidANR內存

2009-08-07 10:27:45

Eclipse和Net

2022-08-18 11:36:16

可視化JavaScript事件循環

2010-10-08 15:17:47

JavaScriptJava

2014-09-17 10:57:30

AndroidWebview安全交互

2020-06-17 16:08:33

人工智能

2009-07-16 13:20:39

Jython和JRub

2022-03-30 08:19:12

JavaGroovy

2013-06-06 10:53:39

Javascript裝載

2022-03-21 09:50:50

JavaGroovy映射Map
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: av网站在线播放 | 色小姐综合网 | 久草视频网站 | 亚洲欧美激情精品一区二区 | 国产亚洲高清视频 | 综合国产第二页 | 久草视频网站 | 国产精品日韩一区二区 | 欧美成人在线网站 | 天天干视频在线 | 国产网站在线播放 | 国产成人福利在线观看 | 日本精品久久久久久久 | 国产精品不卡 | 午夜影视| 免费视频一区二区三区在线观看 | 色爱综合网 | 日韩欧美中文 | 黄片毛片免费观看 | 亚洲精品一二三区 | 一区二区三区国产 | 欧美激情精品久久久久久变态 | h在线看| www久| 色综合区 | 天天操天天干天天透 | 黄色免费在线观看 | 久久国产精品一区二区 | 伊人狠狠干 | 99爱视频 | 免费一级黄色录像 | 一a一片一级一片啪啪 | www97影院| 日韩小视频在线 | 国产精品观看 | 成人网av | 国产成人免费视频网站高清观看视频 | 亚洲激情在线视频 | 91色视频在线观看 | 波多野结衣精品在线 | 91视频在线观看 |