摘要:在此過程中還有其它語言我發(fā)現(xiàn)有意思,但是沒有找到足夠時間或?qū)嵺`機(jī)會去真正學(xué)習(xí)它們,或浮現(xiàn)在腦海。或許我應(yīng)當(dāng)盡量發(fā)起下一步我們應(yīng)當(dāng)采用哪種語言的某種共識不過我擔(dān)心興趣不夠而剩下和的老路。
我大體上對編程語言感興趣。特別低,我一直對另一門編程語言 如何能夠提供給我表達(dá)程序的新特性以及允許我成長為一名程序員 感到好奇。
我在校時學(xué)到了第一門語言。那兒的電腦------一屋子都是PET 2001,那時候他們是新潮的------只有BASIC,很快就讓我失望了。在大學(xué),我開始了一門Pascal的課程,閑暇做了很多編程。Pascal很快填補了我在BASIC發(fā)現(xiàn)的惱人的不足。
帶著興趣我學(xué)習(xí)了FORTRAN基礎(chǔ),但是從來沒有真正用過。Modula 2 出現(xiàn)了,甚至有更大的編程分配,但是沒有真正引起我的興趣。我發(fā)現(xiàn)Ada更有意思,不過在進(jìn)程控制課程之外很少有機(jī)會使用。我接觸了一點兒Forth,但是再一次沒有真正的應(yīng)用程序來實踐。
當(dāng)我接觸C時,最終被吸引住了。那是,最終的,“真正的語言”,在某種程度上,我可以完全掌控的一門語言,不僅在技術(shù)情景------對于我的大部分專業(yè)生涯,它是讓我過得很好的主要因素之一。
我在大學(xué)還學(xué)了其它有意思的語言,比如,Tcl,不是最偉大的語言,但它是一個非常易于嵌入的解釋器。很快,我把它嵌入了我寫的每一個主要程序。我學(xué)了一點兒Prolog,但還不夠,我很遺憾。
但是我對函數(shù)式語言產(chǎn)生了極大興趣,并在那個領(lǐng)域取得了更多進(jìn)步------主要是Lisp、Hope、ML,Lisp是我自己構(gòu)建實現(xiàn)的唯一語言------或者,不止一個。起初對于一項任務(wù),和一名合作學(xué)生一起,在Modula 2上。我們不喜歡那門課程里的某些要求,沒有如此多的實現(xiàn)語言,因此隨后,我們用C做了一個相似的。數(shù)年后,我用Java做了一個Lisp解釋器,后來還用C做了另一個Lisp解釋器。所有這些都不是真正完全的------特別是后面的垃圾回收有點兒著急,回收了它不應(yīng)該回收的東東,但是兩者都實現(xiàn)了一個小型但“真正”的Lisp,能夠使用遞歸和高階函數(shù),有可用的基本內(nèi)建命令。在此期間我用Go寫了一個,它是它們當(dāng)中最完整的,盡管還在我收藏的玩具語言分類、而不是有用的編程環(huán)境。
正如前面提到的,C對于我的大部分專業(yè)工作是有幫助的,也是我目前在用的。但是其他語言進(jìn)入了視野,主要是Perl。當(dāng)我想嘗試某個東東或不得不只實現(xiàn)一點兒功能時,Perl甚至變成了我的默認(rèn)語言。這不是因為我對Perl的技術(shù)有點有著高度評價,不過它隨處可用,每個人了解它,因此和C比起來,很多事情用Perl不可否認(rèn)地更加容易,所以Perl已經(jīng)變成了一種習(xí)慣。雖然我不是Perl的最大粉絲;我發(fā)現(xiàn)它處處不雅和粗野,總在試圖鼓勵其它語言的有疑問的編程習(xí)慣。還有,它用相對較少的努力就能把事情搞定。
在此過程中還有其它語言我發(fā)現(xiàn)有意思,但是沒有找到足夠時間(或?qū)嵺`機(jī)會)去真正學(xué)習(xí)它們------LUA、SNOBOL,APL(或J)浮現(xiàn)在腦海。我遲早不得不要用JavaScript工作,但是我認(rèn)為它非常無聊。
然后我看了越來越多的Go。Rob Pike的一篇文章最終讓我深入進(jìn)去,關(guān)于我一直想去做的東東。現(xiàn)在它貌似是一門好的語言,內(nèi)建了偉大思想,還有繼承了與C和其后代語言一起成長的程序員的習(xí)慣。Go有潛力把我?guī)Щ?0年前我腦子里充滿C的那種愉悅,結(jié)合了一門最終的優(yōu)雅語言(雖然不如Lisp或更加現(xiàn)代的函數(shù)式語言優(yōu)雅)的舒適和實用(像Perl)。我將拭目以待;現(xiàn)在除了一些簡單程序和用Go實現(xiàn)的上面提及的Lisp解釋器,我沒有做更多。
后來有了Haskell。我在90年代早期就對Haskell感到好奇,當(dāng)時我做為一名學(xué)生(參考上面)接觸了其它函數(shù)式語言。有人給我一篇關(guān)于在ACM SIGPLAN Notics上面的Haskell的文章。Haskell那時候還是新的,但是它已經(jīng)成長了數(shù)十年,它仍然存在,我認(rèn)為這是好的信號。由于我總是喜歡函數(shù)式編程,這或許是我一起成長的語言。
現(xiàn)在對我來說,采用一門新語言的最大障礙不是學(xué)習(xí)的難度和為了實際任務(wù)的加速學(xué)習(xí),而是其他人。讓我遺憾的是,我的工作場所有一種文化,人們大部分在獨立地做他們的開發(fā)項目,當(dāng)原作者在度假、或者原作者離開后做進(jìn)一步開發(fā)時,其他人能夠修復(fù)問題,這仍然被認(rèn)為是重要的。當(dāng)然我同意這一點。但是當(dāng)其他人只是對同樣事情不感興趣時,才會使得采用一門新語言變得困難。哎,他們好像不是這樣。
除了使用shell腳本,我們工作時用C,差不多也用Perl,不過我愛用Go或Haskell工作。我愿意在工作中使用,來讓我的工作更加簡單和有趣。但是由于沒有人能夠接手用這些語言做的項目,我還不能那樣做。(有個人對Go有足夠的興趣,我猜的,但他是名學(xué)生,一兩年后會離開我們。)太讓人失望了。或許我應(yīng)當(dāng)盡量發(fā)起 下一步我們應(yīng)當(dāng)采用哪種語言的 某種共識------不過我擔(dān)心興趣不夠而剩下C和Perl的老路。畢竟,他們已經(jīng)采用Perl做為一門新語言甚至不到20年,那么,為什么同樣的情景這么快就再來一次呢?
原文地址:http://jyrgenn.dreamwidth.org/30953.html
文章首發(fā):臘八粥
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/78065.html
摘要:在此過程中還有其它語言我發(fā)現(xiàn)有意思,但是沒有找到足夠時間或?qū)嵺`機(jī)會去真正學(xué)習(xí)它們,或浮現(xiàn)在腦海。或許我應(yīng)當(dāng)盡量發(fā)起下一步我們應(yīng)當(dāng)采用哪種語言的某種共識不過我擔(dān)心興趣不夠而剩下和的老路。 我大體上對編程語言感興趣。特別低,我一直對另一門編程語言 如何能夠提供給我表達(dá)程序的新特性以及允許我成長為一名程序員 感到好奇。 我在校時學(xué)到了第一門語言。那兒的電腦------一屋子都是PET 20...
摘要:參考鏈接面向?qū)ο缶幊棠P同F(xiàn)在的很多編程語言基本都具有面向?qū)ο蟮乃枷耄热绲鹊龋嫦驅(qū)ο蟮闹饕枷雽ο螅悾^承,封裝,多態(tài)比較容易理解,這里就不多多描述了。 前言 在我們的日常日發(fā)和學(xué)習(xí)生活中會常常遇到一些名詞,比如 命令式編程模型,聲明式編程模型,xxx語言是面向?qū)ο蟮牡鹊龋@個編程模型到處可見,但是始終搞不清是什么?什么語言又是什么編程模型,當(dāng)你新接觸一門語言的時候,有些問題是需...
摘要:構(gòu)造函數(shù)第一種途徑是使用的構(gòu)造函數(shù),方式。一個構(gòu)造函數(shù)和其他函數(shù)一樣除了自身細(xì)節(jié)上有些許區(qū)別慣常的做法是將函數(shù)名首字母大寫以表示其存在目的是作為一個構(gòu)造函數(shù)。關(guān)鍵字的作用就是創(chuàng)建一個新對象,并將構(gòu)造函數(shù)內(nèi)的指向這個新創(chuàng)建的對象。 ECMAscript 說明文檔對這門語言的定義是一門適于在宿主環(huán)境中執(zhí)行計算及操作計算對象的面向?qū)ο蟮木幊陶Z言。簡單的說,JavaScript是一門面向?qū)ο螅?..
閱讀 1532·2023-04-26 00:25
閱讀 921·2021-09-27 13:36
閱讀 934·2019-08-30 14:14
閱讀 2180·2019-08-29 17:10
閱讀 1015·2019-08-29 15:09
閱讀 1952·2019-08-28 18:21
閱讀 971·2019-08-26 13:27
閱讀 982·2019-08-26 10:58