各位覺得主流編程語言中哪個編程語言最容易學習?
請說出自己掌握的語言,掌握到什麼程度,然後說出自己的觀點,最好說一下原因,大家都是語言的使用者,而非語言的擁護者,一部分人也並非只使用一種語言,爭吵無益,標榜無益
C#是最好的編程語言,VS是最好的IDE。
寫過VB C PHP Python Java Go Ruby Node,
都掌握的還可以。
現在的項目一般都已經web化了,不再像當年BS/CS方式來劃分,先不談GUI的開發,純web的項目,理解了mv*的架構設計,再了解下語法,其實各語言寫起來差異已經越來越小。
現代的語言相互學習借鑒,已經越來越融合。
PHP補了yield支持協程,閉包支持函數式,包管理,內置web伺服器。
Java8加了閉包支持,Java9據說還要支持類似Python的命令行方式。
Node和Go之所以大紅大紫,本來就是站在前人肩膀上,把非同步和回調做的更原生而已。
Ruby和Python都出了拋開自己的虛擬機,跑在JVM上的版本。為了擺脫性能瓶頸,也一直在嘗試各種JIT方案。
而步子緩慢的VB C,已經漸漸落後於時代,C在底層和嵌入式開發方面還有優勢,VB基本上在淘汰的邊緣。
對項目整體開發而言,語言的好壞,其實取決於框架的因素更多。語言好比原材料,框架好比流水線,有壓模機,包裝機,封口機,裁剪機。。。各種各樣的組件,兩者結合才能更好生產各種各樣的產品。
PHP的Laravel,Java的Springboot,Python的Flask,這些框架已經把web開發的方方面面整合的幾乎完美。Ruby雖然有點沒落,但是一代框架之神Rails,依然老而彌新,web2.0風潮的興起,現在各種框架的設計(路由 Request和Response ORM)都是從Rails學習來的。
對大型項目而言,現在最佳的開發模式應該是微服務化。一個服務模塊,系統整體不關心如何實現,用什麼語言實現,只要你能正常的提供介面功能,這才是團隊開發最佳模式。
所以結論是,不要關心語言的差異,入門在主流的裡面選,PHP Java Python Go。。。都行。有一定經驗之後,其它的語言和框架都學一學,不要覺得要學很多點很難,現在已經是相互融合,模式趨同的時代,一法通萬法通。至於語言層面的差異,一周,最多一個月,已經可以熟悉入門了。哦,我打擊初學者信心了啊……抱歉了,另外謝謝 @大笨蛋千里冰封 提醒了。
那麼正經地說:I (unofficially) back Haskell (as well as Lisp/ML)!
Haskell的思路可以說提供給了我一個重新思考程序和放寬眼界(畢竟你不知道Haskell怎麼會知道Idris,不知道Idris怎麼會知道Agda?)的機會。
而back lisp的理由希望你能夠從lisp的極簡語法中獲得get into essentials directly的感覺,告訴你如何用最簡的方式思考。
之後關於ml,其實就是入門適合初學者的函數式編程語言了,因為各種原因,Haskell總被人認為不好入門,但是事實上沒有那麼複雜,不過如果你有ML的背景,相信會更加簡單。
之後還想back下wolfram language(如果你正在用matlab的話)。
還有件事哈:瞎打什麼標籤……你問的是哪種語言對你來說最容易學習,打個編程語言的標籤就夠了。
-----------
原答案:
Hask......啊,never mind.
來我這裡幹活兒,您得先自學一下Ada。
從語言本身和編碼工具配合的角度來說,因為工具能指引人學習,而周邊的組件和環境則弱化,畢竟樓主是從學習的角度而不是以賺錢找工作有沒有特別完整的組件來問的
C#配合VS這種IDE絕對是最舒服的編程沒有之一,強大的智能提示和語法檢查,語言好用先進的同時,卻很嚴謹的添加每一個新特性,比如多返回值一直沒有隨隨便便加入,直到最近以底層為元祖的形式加語法糖包裝才提供了,他是最先提出也使用async await的,py和js這種需要非同步的爭相學習,可以說是一個工業語言語法的典範(反面案例 C++是個大雜燴,符號都不夠用了,更何況對指針數組字元串稍微不精就各種垃圾代碼,py的2.7和3.x差別太大至今都還有這道鴻溝),exe web app隨便寫,一個vs搞定,安卓 ios linux還有Xamarin加持,唯獨不太好搞腳本,又是非native里執行效率最高的,性能都幾乎不需要擔心,而且C風格絕對是語言的主流.。
然後就是basic語系比如VB,配對設計的太舒服了,Function就對應End Function,C風格的花括弧以及pasal的begin end根本比不上這種方式,而且這玩意有腳本,又能立於。net上,還能在瀏覽器里跑,可惜很多地方都敗下陣來,起碼從語言角度來說,他是對非碼農的人教學第一語言,因為也是一門強類型語言,IDE非常容易配合,以前不少工具的腳本語言都是basic風格的,現在不行了
接下來就是py了,腳本化執行方便,其他方面總歸比js lua什麼的好,IDE用和不用感覺差別不大,新特性還是不少的,畢竟是腳本語言,就學到能寫出自己想跑的程序即可,根本不需要多學。。。
js語言是工業化語言的反面典型,各種不符合邏輯,卻有很多人要考你那些js設計的最差的地方,從一門語言的設計來看,是非常差的,IDE基本只能提示所有變數,不理會作用域。。。他的動態類型設計的是最動態的,可以參考,他的ES6是重新吸取教訓設計的,ts在此基礎上增加了強類型形成了工業級別的語言,所以ts我覺得反而更好
Kotlin。看這簡潔的語法
看這DSL一般的測試代碼!看這GUI界面的DSL!
快入坑補充
我看了下截至目前回答的答主自稱用過的語言,目前除了JS,PHP和OC之外還沒有我沒用過的,我這是肺腑之言,題主相信我補充2Lisp也是很好的,真的,我寫過Lisp,也寫過Lisp的解釋器,真的很好(此處 @御坂黒子看到一堆說c適合入門,觀點我贊同,但是文不對題呀。
題主的問題是
各位覺得主流編程語言中哪個編程語言最容易學習?
不是
各位覺得主流編程語言中哪個編程語言最適合入門?
說容易學習,那必然是python bash之類的腳本語言了。屏蔽底層複雜,用戶傻瓜式使用,學習曲線平緩
c確實適合入門學習,掌握計算機基礎知識,了解內存管理,打牢基礎無可厚非。但是說容易學習,c語言恰恰不是。因為c暴露和很多計算機細節,如果想真正駕馭好c,要對計算機體系了如指掌,要不幾個指針都會把人繞暈。
謝邀,題主說不要撕逼,其實這是很難的,如果叫我推薦入門,我選擇java。強烈不推薦js,語法奇葩的不要不要的,更奇葩的是,有人竟以掌握這些腦殘用法為榮,面試別人。還有這麼sb的語言竟然火的不要不要的,我想著都生氣啊!
我覺得最容易學的是lisp,其次是C,最難學的是js。因為C這東西,你可以用一個下午的時間學會。可是python的語法糖實在太多了。是不是容易學,主要看是不是有一致性,C的一致性是最高的。至於js,肯定是最難學的語言了,用這東西來做html簡直就是遭罪 。
其實換一個角度來考慮就知道一個語言是不是難學了,很簡單,看這個語言實現起來是不是容易。
越容易實現的當然越容易學了。
~~~~~~~~~~
在說說為什麼C好學吧。我以為呢,語言其實有兩個維度,一個是是否好學,一個是是否好用。
C是屬於好學不好用的。
python是屬於好用不好學的。
至於java,既不好學又不好用,但是好找工作的。
C為什麼好學呢?
因為C裡面的內容少啊。關鍵字二十多個。數據類型,其實嚴格說就一種。
C裡面只有一種數據類型,就是整數。更進一步,就只有int8,int16, int32, int64四種整數罷了。
而所謂的指針,有人說很難,那不就是一個整數嗎?
尤其是直接訪問內存的時候,用C實在不要太簡單。這個時候用python就挺費勁的了。
C這東西為什麼簡單?因為語法簡單,設計簡單,用一句話來說:C是簡單的,唯一困難一點的地方在於,需要一點點智力來理解他的簡單。
C不好學不好學在什麼地方。C只是對英語使用者不好學,對漢語使用者其實是比較好學的。
為什麼呢?因為C不是一種用英語作為關鍵字的語言。比如,static關鍵字,對變數使用,是靜態變數,全局屬性的,可是對函數使用,就變成了文件內的靜態函數。但是這並沒有影響C的一致性。C這東西,基本可以做到寫完了之後,你心理有底,知道自己究竟幹了什麼。做到完全的控制。這一點任何其他語言都無法做到。
而且,C還有一個好處,就是可維護性。經常是幾十萬行級別的代碼,很容易的就能通讀下來,進行維護修改。這一點也是其他語言做不到的。尤其是OO類的語言。
我來補充一下子C為什麼難用。其實C語言寫起來很舒服的,這種難用,我覺得主要是歷史造成的。C出現的太早,那個時候的商業模式和現在完全不同,現在是網上隨便找一個模塊就用的年代。那個時候,都是閉源的軟體啊。現在都是web程序,IO密集型的,對C的需求沒那麼大而已。用java一樣時間開發的程序,用C不會花費更多的時間。這種難用,更多的是因為缺少開源模塊
當然,lisp是更簡單的,以至於早期的嵌入式系統中,比比皆是嵌入的lisp。
比如autocad什麼的。
比如我寫一段代碼,訪問AIX系統中的配置信息,用python寫是這樣的:
XXOO???
不知道為啥代碼放不上來了。
能夠看到,直接訪問內存信息,用python的話需要4,5行代碼,而用C則一行代碼就可以了,而且python的表達很啰嗦。
但是至少用python還好,能寫出來代碼,用C最簡單,用其他語言,估計很難做到。
學習這個東西吧,是學習,工作是工作,是兩碼事。不能混為一談。
學習語言這個事情,我挺贊同學習C++的,畢竟C++的特性多,一旦學會,基本所有的語言特性是怎麼來的,就都知道了。但是工作,我還是推薦用C+python的方式。簡單,可靠,速度快,穩定。這才是工作需要的。
說說PHP
php是最好的語言,呵呵。其實大家都知道,php裡面的問題實在太多,吐槽不能。早期php就是設計給C語言開發者開發網站的,所以也沒仔細考慮。裡面問題實在太多。本身這種開發方式確實是容易上手的。現在不知道php都用什麼方式開發了。但是這種html和頁面混在一起的方式真的是很適合「全棧工程師」啊,不容易維護。個人感覺安全性也很不靠譜。另外,好像除了寫網頁也幹不了別的什麼東西吧?不知道
最爛的語言:basic、JavaScript。
說說java
java非常的繁瑣,寫起來冗餘繁瑣。如果真的需要這麼冗餘,幹嘛不用ada呢?幹嘛不用cobol呢?其實java就是給軟體工人設計的,所以會做種種限制,以便「架構師」設計好了介面,類等等,讓北大青鳥出來的,去做對日外包,那麼用java也無可厚非。
如果一個專業軟體工程師,那麼去學java真沒任何意義。工程師的任務是解決問題,不是為了編碼而編碼。編碼不過是解決問題的手段,不是目的。
很多問題都是java製造出來的,對於客戶來說,java其實是製造不存在的問題以便賣錢。所以ORACLE公司特別的喜歡java。java也總是和oracle資料庫一起使用。畢竟oracle公司是一家純商業公司。
同時,這種商業模式也特別的適合印度,因為印度是一個種姓制度的國家。高等種姓的人做項目經理,劣等種姓的人做java工程師。身在國內的你是不是有了某些相似的感覺?
比如代碼生成器。比如規則引擎等等諸如此類本來不存在的問題,java是特別的擅長解決啊
最喜歡java的人,都是從來不用java的人,比如你的老闆。
java的評價:難學難用,好找工作。
說說fortran
話說我大學的時候,還得了一個北京市計算機比賽的一等獎,當時比的就是這個Fortran。
這個東西是高級語言的鼻祖。最早出現的高級語言就是Fortran了。設計出來完全是為了計算微積分的。同時也是針對打孔紙帶語法。太長的時間不用了。現在還跑在很多工程項目中,不過也有很多的模塊被C取代了。這應該是必然的。
說說JavaScript
可以說最難學難用的一個東西了。相比lua可是差的太遠了。這種語言開始的設計思路其實是C語言外殼的lisp。整個開始就是一個精神分裂的產物。所以後期bug不斷。如果不是web,根本應該就會有人用這玩意。最近有人搗鼓出了nodejs。這玩意就是玩具好不好。如果用來測試js也還可以,至於生產環境上用這東西,呵呵,佛祖保佑吧,或者上帝保佑,多寫幾個神的名字在代碼的頭上吧
說說XSLT
這也是在一個古籍處理的項目中用過的東西,那個古籍是用TEI.2格式的XML存儲的。xslt唯一的用處是處理XML。我的感覺是用來處理XML的首選。比java處理xml好用多了。完全的lisp風格。但是使用xml的語法導致也是非常的繁瑣啊。這個項目里的xslt可能不超過10萬行的代碼吧
說說SHELL
用shell做過幾個大型項目。這玩意真是難學難用啊。速度比java還要慢無數倍。代碼維護難度,估計也就perl敢跟他爭奪第一的名次了吧。不過shell這東西還真的缺不了,但是建議不要寫太複雜的shell。如果用的話,建議用在進程和作業控制上,寫一些簡單的shell,不要寫太複雜
說說awk
awk是處理所謂「文本資料庫」的專門語言,什麼是文本資料庫呢?就是csv這種資料庫。用途其實非常有限。處理速度還可以。awk其實可以歸結到shell裡面。一般學shell的人也就隨便學了awk和sed這些東西。現在有了python,其實這些都沒有必要存在了,也就shell,控制進程和作業的時候有點用處了。
說說BASIC
有人問到basic了,那麼就說說basic。basic我認為是最垃圾的語言之一。也許對於西方人來說,basic很容易,但是對於中國人,肯定是非常的垃圾。現在真的好久不用basic了,已經差不多忘光了,只能憑藉印象說說了。我最早用basic,那個時候是我媽媽上大學的時候的課本。我看到了計算機的書,就自己看那些程序。後來還寫過一些vb程序。用basic來工作,基本可以說,你什麼都做不了。而且寫出的程序非常的不穩定。維護性也很差。據說好多政府部門的程序都是vb寫的。政府項目啊,中外都是最差勁的項目。可能比較適合西方的小孩
說說LUA
lua以嵌入和速度作為賣點。我在redis和nginx裡面用過這個東西寫過一些程序。首先呢,沒感覺特別快。只能說速度還行,其次,語法有些怪異,但是畢竟還是可用。在嵌入式語言中,目前可能說是唯一還算好用的東西了。至少比JavaScript要強,如果web開發都用lua,瀏覽器的大小可能也會縮小很多。
說說SLANG
這個東西是一個編輯器的嵌入式語言,因為公司的一個ESB信息交換平台產品是用這個東西控制的,所以用過一段時間。語法以接近C作為賣點。沒有完整的讀過語法書,所以說不出更多的東西。但是感覺粗看起來比lua舒服一點
說說coffeescript
個人感覺coffeescript是用起來感覺最舒服的嵌入式語言,雖然和js同源。有一段時間火過一陣子,感覺知乎裡面的前端工程師對這個比較鄙視,不知道為什麼。可惜,過於依賴js,沒有獨立的編譯和解釋程序。這導致他的發展前途未卜。
~~~~~~~~~~~~
繼續來更新了
說說lisp
我用lisp寫程序的時候,那個時候叫做表處理語言。這個表其實有點類似類似一個數組的東西,然後用括弧括起來。那個年代主要用於人工智慧、autocad的嵌入語言等等領域。為啥說lisp簡單呢。記得當時用這東西連語法都沒有,就是一堆括弧而已。現在想想,這個表其實就是語法書上的一個節點。相對於其他語言來說,語法解析的過程都省去了。直接在語法樹上編程。所以真的是最容易學習的語言了,這也導致lisp的實現很容易。也多用於嵌入。比如autocad啦,比如emacs啦等等。就是現在最火的javascript,其實也是根據lisp來實現的,就是不過是披著c外皮的lisp罷了。
lisp的優點我認為就是他是唯一一種軟體語言。相對比於C只有整型類型,lisp真正的做到了數據和代碼不分。數據就是代碼,代碼就是數據的高層抽象。前面說的那麼多語言,基本都是跟硬體有關的低級語言。比如一個整型數,是有大小限制的,超過了這個限制,就溢出了。而lisp則是一種完全工作在軟體這個層面的真正高級語言,當然,也要看具體實現的進程。不知道為什麼一直沒有怎麼應用在工業領域中。據說主要還是因為過於高級,導致運行速度慢。早年的時候程序的運行速度就是一切。為了能更快的運行lisp,曾經有公司出過lisp晶元,針對lisp進行優化。
相比較而言,Python都已經發展了這麼多年了,到了python3才開始推出抽象數據類型。可以想像lisp是多麼先進的東西了。可惜馮唐易老,李廣難封,歷史的進程啊,真是說不清楚
當然,畢竟是一種古老的東西了,lisp的問題就是括弧太多了。程序寫長了很容易眼花
如果今天可能這些就不是問題了。畢竟連java這麼慢的東西都有人能接受。lisp怎麼也比java快多了。
說說C++
C++在微軟的東西大行其道的時候火爆過一陣子。主要的原因是微軟的windows是C++寫的。現在蘋果是objc寫的,結果objc也好多人用了是一樣的道理。
C++這個東西,貌似現在應用的領域也就只有windows的桌面程序和遊戲軟體這兩個領域了。因為這個東西的語法確實挺複雜的。評論裡面很多人學C就頭大的要死,就不要說C++了,而且工程實踐還表明,C++其實沒啥用。相比C來說,增加了複雜度,而沒有因為獲得什麼更多的收益。而且C++的東西編譯起來特別費勁。但是C++挺適合用來學習計算機的原理的。如果工作中用C++,那真的是被計算機給玩了
那個時候的人特別的迷信面向對象編程。就好像更早有人迷信結構化編程。現在的某些人迷信函數編程一樣。人這東西特別奇怪,好像不迷信就不能活。我小時候看希臘神話,結果變成了一個污神論者,對此表示難以理解
說說彙編
既然有人提到了彙編,那就說說彙編。彙編在大學的時候學過Z80的彙編和386的彙編,這兩個是寫過程序的,依稀記得好像還用過幾種其他處理器的彙編。
寫彙編吧,主要有兩種寫法,一種是intel公司的寫法。一種是att公司的寫法。不知道為什麼,大學教的時教的是intel的寫法。我說實話,intel的彙編寫法挺爛的,沒有att的寫法好,如果各位有想會彙編的,就別用清華的教材。中國的教材也不知道都誰編的,都非常巧妙的避開了真正有用的知識。怎麼說呢。比如正常一個人學一本書就能學會的,中國的教材一定要教10本書的內容。造成很多本來很聰明的人,智力都浪費在「我到底應該學什麼」的疑問中了
彙編其實還是應該學學的,因為有非常罕見的情況,寫C的時候會發現問題,那麼就只能通過彙編來解釋為什麼了。而且C和彙編之間沒有任何的生殖隔離。他們在一起那是非常的魚水交融,非常的賽艇啊。
~~~~~~~~~~~~~~~~~~~~~
有人說: 現在都是高級語言的天下了,能幹活就行。 管他機是怎麼工作的。 還有人說:js如何如何好。我的想法呢,是這樣的,看你學習語言的目的是什麼。
如果是一個以此謀生的工程師,那麼肯定是不對的。如果只是為了找一份工作,或者說一個工人。那麼也沒什麼問題。
首先,計算機肯定是屬於工科的領域。這樣,和計算機相似的學科是機械、建築這些行業,在這些行業裡面,傳統上是分兩種人的,一種人呢,是工程師,一種人呢,是工人。
在計算機領域,和其他工業領域所有不同。那就是設計和施工經常是一撥人,這就給人造成了一種錯覺。那就是似乎計算機行業沒有工人。如果你以技術工人自居,那麼當然了。能幹活就行,不必在意背後的那些東西。出了問題,反正有人解決。
但是,一個體力勞動,既沒有意思,也沒有什麼價值吧?
我認為,隨著社會的發展,將會越來越不需要體力勞動者。一個能解決問題的工程師,可以一直工作到80歲,動不了了為止,可是一個工人呢?你能工作到什麼時候?
現在很多java編碼者,做到34歲,就被裁員或者自己不樂意繼續「編碼」了,為什麼呢?他一直從事體力勞動,那麼體力下降之後,自然沒人需要他了
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
有人看就接著寫,那些年用過學過的語言
舉個栗子,有個需求:把字元串"Hello World!"寫入文件"test.txt"中。
幾種語言常用的實現方式大概是這樣的:
C
#include &
#include &
int main(void){
FILE *file = NULL;
const char *FileName = "test.txt";
file = fopen(FileName, "r+");
if(!file){
printf("error
");
exit(1);
}
const char *string = "Hello World!";
if(!fputs(string, file))
printf("OK!
");
else
printf("Failed!
");
fclose(file);
file = NULL;
return 0;
}
Java
import java.io.File;
import java.io.FileWriter;
import java.io.BufferedWriter;
import java.io.IOException;
public class Demo {
public static void main( String[] args ){
try{
String data = "Hello World!";
File file =new File("test.txt");
if(!file.exists()){
file.createNewFile();
}
FileWriter fileWritter = new FileWriter(file.getName(),true);
BufferedWriter bufferWritter = new BufferedWriter(fileWritter);
bufferWritter.write(data);
bufferWritter.close();
System.out.println("OK!");
}catch(IOException e){
e.printStackTrace();
}
}
}
Node.JS
var fs = require("fs");
fs.writeFile("test.txt", "Hello World!", function(err) {
if(err) {
return console.log(err);
}
console.log("OK!");
});
Python
f = open("test.txt","w")
f.write("Hello World!")
f.close()
PHP
file_put_contents("test.txt","Hello World!");
當然還有Shell
echo "Hello World!" &> test.txt
原生PHP一行代碼就可以把遠程圖片保存到本地:
file_put_contents("/tmp/logo.gif", file_get_contents("https://www.baidu.com/img/bdlogo.gif"));
其他語言可就複雜得多了,特別是對設計模式和面向對象如痴如狂的Java.
時間就是金錢,效率就是生命.PHP的本質就是解放和發展生產力.
Web開發領域,PHP的學習/開發/運維成本遠低於其他技術方案.
凡是噴PHP的語言,都是沒人用的語言.
凡是用PHP的開發者,都是最務實的開發者.
PHP代表著最先進的生產力,最先進的文化以及最廣大開發者的根本利益.
這就是PHP的兩個凡是和三個代表.
有吹捧http://ASP.NET的人說PHP配置起來好痛苦,難道那些軟粉連PHP內置HTTP伺服器和SQLite資料庫都不知道嗎,連 php -S 127.0.0.1:8080 -t /path/to/www 就能啟動這個服務都不知道么?就算不知道,難道還不知道有XAMPP和WampServer這些無腦下一步的集成安裝包么?就事論事,實事求是才是好孩子.
吹捧http://ASP.NET的人會說VS是天下第一IDE.到底VS是不是最好IDE我不知道,但這貨幾十個GB的磁碟空間佔用,絕對是天下第一.還有,也別說得好像PHP沒有IDE用的,或者PHP的IDE都沒法用似的,Netbeans/PHPStorm/ZendStudio難道用不了?我發現你這個同志,說話很搞笑.
講道理C語言入門比較「合理的簡單」,雖然涉及了最基本的內存的概念,但比java這種上去就是包,就是OO,就是一堆庫的引入這種要讓新人更好接受。作為一個新人絕對會對java的很多底層感到困惑與不理解,C就直接告訴你為什麼。另外,第三方庫用多了,會給人一種天下無敵什麼都能開發的錯覺 XD
講真 我推薦c++
推薦這個肯定有一大批人要噴,但我真的推薦這門語言 理由如下1 初期學習時候合理的簡單,完全可以當做c語言來學,可以暫時不學習面向對象部分,也不影響編程。2 夠底層,封裝度不高,易於打基礎,深入理解內存 指針 函數棧等概念,我很不明白為什麼有人會說很難,深入理解一下也就那回事,比各種數學課不知道簡單多少。3 易於後期發展,學完cpp後我再學習js和python非常簡單,基本一樣的思想。4 可以判斷自己到底適不適合當程序員,到底是玩一票就走還是可以繼續發展。5 為將來學習計算機其他方面打好基礎 如計算機系統和編譯原理6 經典書籍非常多,提高自己對編程的理解。不要聽風就是雨,別人說難就望而生畏,自己實踐後,其實就那回事。
以上當然是C語言。
利益相關:使用過 JS、Ruby、Python、C#、PHP、Groovy、Bash Script,入門學的是 C 語言。
比較下來,覺得從 C 語言入門性價比最高。語法又少,又能了解數據類型、演算法、數據結構、內存,同時由於沒有面向對象教條的束縛,所以更能直白地理解機器的運行邏輯。
eechen的評論區下很多人沒有講到重點。
我的看法也絕對是php,首先部署我就不說了,有宇宙最簡單的phpstudy,全中文,菜單對話框式的集成環境,一鍵安裝全部搞定。
其次是php這種集百家之長的語法和豐富易用的內置擴展以及弱類型腳本式的開發流程。有其他編程語言基礎即可高速入門,即使沒有也沒關係。
學java,即使是很簡單的jsp,發布到tomcat編譯也得幾秒鐘吧,而且jsp,servlet,或者純命令行項目等測試發布流程如果沒有ide的幫助,需要手工各種命令敲,而php只需刷新一下瀏覽器而已。
接著來說入門學習,php最大的優勢在於內置的擴展沒有命名空間,並且echo等自帶的東西為原生語法結構,可以直接函數式調用。非強制面向對象編程。
在別的編程語言要調用這些,你得先和他們解釋一通為什麼頂上要use一堆東西或者import,其次你要告訴他們為什麼是system.printxxx而不是computer.printxxx。也無需和他們解釋為什麼函數要寫在public static main()裡面而不是private xxx()裡面,當然你要寫也不是不行,通過框架來實現面向對象,mvc等架構。
最後,php5.4之後內置了http伺服器,一行命令即可啟動。雖然別的編程語言也有,但是結合php本身的新手友好優勢可以說是錦上添花。
關於java我就不說別的,就來說說兩個字元串比較吧,想必有多少新手會因為"a"=="a"為false感到疑惑?如果要解釋這些,是不是還得從對象引用,指針開始講起?
最後還要說一說關於包名稱問題,php早期沒有命名空間,但是5.2之前有_autoload函數,可以通過類名下劃線的形式來模擬命名空間載入這個特性,讓新手通過自己編寫一個autoload函數按類名從路徑導入類文件來了解這個自動載入過程,比java編譯器幫你封裝好import然後苦學半天要好很多。而且很多簡單的函數比如說md5,json_decode就可以直接調用,無需背誦又臭又長那一串包名。也無需各種外部jar包導入(我就不說java有fastjson,gson,各種xxjson讓新手犯選擇困難症了,而且如果接觸的項目多,還得同時掌握好幾種jar包的api,煩不煩?)
php還有一個引以為傲的數據結構和函數,那就是數組以及var_dump(),這兩個方面我不想做過多解釋,用過的人自然知道有多爽。
最後:我承認php的歷史遺留問題很多,但是隨著php版本更新到7.1,而且幾乎平滑升級來看,php很多遺留問題都得到了妥善解決。至於門檻低會不會導致php本身被拉低?我並不這麼認為,同樣是php,他卻支撐了早期的淘寶首頁,百度,騰訊,facebook,而也有人能把c,c++寫成譚浩強那樣的int a,int b,i+++++1之類的代碼,這並不是語言的問題,如果自己水平不高,工程化思想不夠,經驗不足,就算是用健壯的java,至多只能在編譯期間讓編譯器幫你解決一些類型轉換,異常拋出之類的問題。綜合來看我覺得作為新手入門,php還是一門很不錯的語言,至少不需要了解太多計算機方面的其他知識,可以讓一個外行很快的入門上手,看到寫出來的代碼成功運行的那一刻說非常的開心,而不是對著python,java那動輒幾十上百行的錯誤棧不知所措。Scala
想說lisp,但是lisp不算主流,那就c和java吧
Haskell啊,主流的周末語言……學習它以後,你會發現這個編程語言語言其實也沒那麼難,處理臟活比較優雅,但是所謂的更簡單的c系的語言,處理臟活累活就麻煩了(當然,有庫例外,那是他們幫你做好臟活累活了)
寫過c,c++,c#,java,PHP,js,pascal。
寫網站最好入門的還是php
windows桌面應用最快是c#本人的語言歷程是c、java、android、objective c、swift、php,其它如python少有涉獵,就不表態了。。。除了c之外其它語言都做過產品,就學習難易來說推薦java,資源多,結構清晰,生態完善,工作好找,私活方便,精通了java再學移動開發很容易上手,注意,我說的難易是總體考慮的,並不是列印個hello world所需的代碼量那種
推薦閱讀:
※有什麼好的 Haskell 中文書籍?
※關於C語言中漢字排序的問題?
※LABVIEW 有哪些反人類的編程特性?
※c++類成員變數為什麼不能做成員函數的默認實參?
※VR 時代的主流編程語言是什麼?
TAG:編程語言 |