-
1 # 太科羅技
-
2 # 從頭開始自學java
這個真是仁者見仁智者見智,我也給出一個名單。
函數語言程式設計語言Lisp Haskell等這些語言才是最難的,有人說是底層語言,這是沒有受過這些語言的苦呀!
Haskell、lisp等語言是反著寫的,比如(* 2 3),你看懂了嗎?就是2*3,我不否認這只是一些人的習慣問題,等你習慣了這些語法之後,肯定不會是什麼難事,不過學習c語言出身的各位你們需要多久才能適應呢?
函式式語言還有一個函式程式設計思想作為門檻在攔著各位,即使你學會了函式式語言的語法,要寫出漂亮的函式式程式也不是一件簡單的事情,什麼變數是不可變的,閉包等等。
組合語言組合語言跟底層聯絡太緊密了,要想寫出一點有用的東西太難了。
學習彙編需要對硬體非常瞭解,什麼是暫存器,那個暫存器是幹什麼的,怎麼對暫存器賦值等等,彙編不難,可是硬體知識特別難,而且不同的硬體還是不同的,這個門檻難過呀。
C語言C語言不難,只要能夠拿下指標,C語言真的不難,不過很多人都是卡在了這一關,而且一輩子都跨不過去。
指標的難不是指標本身的問題,而是使用指標的人實在是太漏洞百出了,即使你是一個C語言高手在使用指標的過程中也必定是經常寫出有bug的程式碼。
Scala太靈活了Scala學習了Python的語法糖,並且把語法糖發揚光大,結果就是這個語言精通真是特別難。
沒有沉浸個幾年還真的精通不了。
-
3 # 光明右使8787
彙編,因為你要了解硬體,暫存器,堆疊這些,還要背一堆指令,特別是x86這類複雜指令集的,絕對背到你懷疑人生。從C開始,硬體特性由編譯器處理了,程式設計師只要處理記憶體,程式設計變得輕鬆愉快。更高階的語言,JAVA這些,連記憶體也由JRE虛擬機器處理了,程式設計只要處理邏輯,更簡單。
-
4 # 飛57709646
組合語言需要了解硬體的細節,需要從機器的角度理解世界。c和c++需要從作業系統的角度理解世界。java和c#以及其他的一些指令碼語言只需要從業務邏輯的角度理解世界。越高階的語言越符合人類的思維,這方面的軟體開發也基本上屬於工業生產範疇,不屬於it技術。
至於哪個更難要看個人興趣。低階的語言程式設計屬於it技術,它主要用來為高階語言構建開發和執行環境,高階語言則主要是針對實際應用的。it技術的研究跟it技術的應用哪個更難,是見仁見智的。
-
5 # 千鋒武漢
開發者經濟分析公司SlashData曾釋出了《2018年第2季度各國開發者狀況》調查報告,共有167個國家的20500多名開發者參與其中。
報告面向全球所有型別的程式設計師,對使用每種主要程式語言的活躍開發者數量進行了最新的估計。其中,Java仍是最流行的程式語言,Python流行程度接近Java。
哪種語言最難學呢?每個人也許都有著自己的想法,衡量標準各不相同。
現在我從一個全新的,無可反駁的角度來分析一下各個程式語言難學程度。
第十名、R語言頒獎詞
R語言一種自由軟體程式語言與操作環境,主要用於統計分析、繪圖、資料探勘。R基於S語言的一個GNU計劃專案,所以也可以當作S語言的一種實現,通常用S語言編寫的程式碼都可以不作修改的在R環境下執行。R的語法是來自Scheme。
提名詞
R語言作者,George Ross Ihaka:在奧克蘭大學統計系任副教授,是R語言的最初作者。
排名理由
作者頭髮濃密度:100%
第九名、Python頒獎詞
Python是一種廣泛使用的高階程式語言,屬於通用型程式語言。作為一種解釋型語言,Python的設計哲學強調程式碼的可讀性和簡潔的語法。相比於C++或Java,Python讓開發者能夠用更少的程式碼表達想法。不管是小型還是大型程式,該語言都試圖讓程式的結構清晰明瞭。
提名詞
Python語言作者,Guido van Rossum:生於荷蘭哈勒姆,計算機程式設計師,為Python程式設計語言的最初設計者及主要架構師。
排名理由
作者頭髮濃密度:95%
第八名、C語言頒獎詞
C是一種通用的程式語言,廣泛用於系統軟體與應用軟體的開發。C語言具有高效、靈活、功能豐富、表達力強和較高的可移植性等特點。C語言編譯器普遍存在於各種不同的作業系統中,例如Microsoft Windows、macOS、Linux、Unix等。C語言的設計影響了眾多後來的程式語言,例如C++、Objective-C、Java、C#等。
提名詞
C語言作者,Dennis MacAlistair Ritchie:美國計算機科學家。駭客圈子通常稱他為“dmr”。他是C語言的創造者、Unix作業系統的關鍵開發者,對計算機領域產生了深遠影響,並與肯·湯普遜同為1983年圖靈獎得主。
排名理由
作者頭髮濃密度:85%(+鬍鬚)
第七名、Go頒獎詞
Go(又稱Golang)是Google開發的一種靜態強型別、編譯型、併發型,並具有垃圾回收功能的程式語言。Go的語法接近C語言,但對於變數的宣告有所不同。Go支援垃圾回收功能。
提名詞
Go語言作者,Robert C. Pike:來自加拿大的程式設計師,曾經加入貝爾實驗室,為 UNIX小組的成員。他與肯·湯普遜共同開發了UTF-8。目前為 google的工程師,參與程式語言 Go與Sawzall的研發工作。
排名理由
作者頭髮濃密度:80%
第六名、JavaScript頒獎詞
JavaScript,通常縮寫為JS,是一種高階的,解釋執行的程式語言。是一門基於原型、函式先行的語言,是一門多正規化的語言,它支援面向物件程式設計,指令式程式設計,以及函數語言程式設計。它已經由ECMA(歐洲計算機制造商協會)透過ECMA實現語言的標準化。它被世界上的絕大多數網站所使用,也被世界主流瀏覽器(Chrome、IE、Firefox、Safari、Opera)支援。
提名詞
Java語言作者,Brendan Eich:美國程式設計師與企業家,Java主要創造者與架構師,曾任Mozilla公司的首席技術官,並曾短暫擔任執行長。
排名理由
作者頭髮濃密度:75%
第五名、Objective-C頒獎詞
Objective-C是一種通用、高階、面向物件的程式語言。它擴充套件了標準的ANSI C程式語言,將Smalltalk式的訊息傳遞機制加入到ANSI C中。目前主要支援的編譯器有GCC和Clang(採用LLVM作為後端)。
提名詞
Objective-C作者,Brad Cox:美國計算機科學家。於傅爾曼大學主修化學與數學,於芝加哥大學取得數學生物學博士學位。Objective-C主要作者。
排名理由
作者頭髮濃密度:70%
第四名、PHP頒獎詞
PHP(全稱:PHP:Hypertext Preprocessor,即“PHP:超文字預處理器”)是開源的通用計算機指令碼語言,尤其適用於網路開發並可嵌入HTML中使用。PHP的語法借鑑吸收C語言、Java和Perl等流行計算機語言的特點,易於一般程式設計師學習。PHP的主要目標是允許網路開發人員快速編寫動態頁面,但PHP也被用於其他很多領域。
提名詞
PHP語言作者,Rasmus Lerdorf:出生于格陵蘭島凱凱塔蘇瓦克,是一個丹麥程式設計師,他擁有加拿大國籍。他也是程式語言PHP的創始人,其中PHP的頭兩個版本是由他編寫的,後來他也參與PHP後續版本的開發。
排名理由
作者頭髮濃密度:60%
第三名、Java頒獎詞
Java是一種廣泛使用的計算機程式語言,擁有跨平臺、面向物件、泛型程式設計的特性,廣泛應用於企業級Web應用開發和移動應用開發。Java程式語言是個簡單、面向物件、分散式、解釋性、健壯、安全與系統無關、可移植、高效能、多執行緒和動態的語言。
提名詞
Java語言作者,James Gosling:出生於加拿大,軟體專家,Java程式語言的共同創始人之一,一般公認他為“Java之父”。
排名理由
作者頭髮濃密度:50%
第二名、C++頒獎詞
C++是一種使用廣泛的計算機程式設計語言。它是一種通用程式設計語言,支援多重程式設計模式,例如過程化程式設計、資料抽象、面向物件程式設計、泛型程式設計和設計模式等。
提名詞
C++語言作者,Bjarne Stroustrup:生於丹麥奧胡斯郡,計算機科學家。他以創造C++程式語言而聞名,被稱為“C++之父”。
排名理由
作者頭髮濃密度:40%
第一名、Visual Basic .NET頒獎詞
Visual Basic .NET(VB.NET)是.NET Framework框架下的一種多重程式設計正規化高階語言。Visual Basic .NET屬Basic系語言,其語法特點是以極具親和力的英文單詞為基礎標識,以及與自然語言極其相近的邏輯表達,有時候你會覺得寫VB.NET程式碼就好像在寫英文句子一樣,從這個角度來說,VB.NET似乎是最高階的一門程式語言,當然在Basic系語言中VB.NET也確實是迄今為止最強大的一門程式語言。
提名詞
Visual Basic .NET作者,Alan Cooper:互動設計的提倡者。庫珀有些時候被叫做 Visual Basic 之父,雖然大多數的工作是由微軟的內部開發團隊完成的,但是對於Windows視覺化設計工具的創意是來源於庫珀的。
排名理由
作者頭髮濃密度:0%
以上就是我總結的世界上最難學的程式語言前十名。我認為,作者的頭髮越稀少,說明這種語言在學習過程中要掉越多的頭髮,所以,推匯出這種語言越難學。
希望我分析的各個程式語言難學程度能幫到大家!
回覆列表
組合語言,在我看來,彙編絕對是最難學習的一門語言。組合語言為什麼難,得從它的特點說起,彙編是一門直接操縱處理器的低階語言,這裡說它低階,是相對於高階語言(如C++/Python/Kotlin)之類程式語言而言。學習彙編可以讓人更加清楚的瞭解到計算機底層硬體(主要是CPU)是如何進行資料計算的,對計算機的工作原理也會有更加清晰的認識。下面介紹一下組合語言的一些應用範圍。
開發硬體驅動。由於彙編是直接面向底層硬體的語言,它可以直接對各個硬體進行直接操作。透過使用匯編,可以把底層硬體諸多繁瑣的操作隱藏起來,只把有用的操作介面預留出來,這就是驅動程式的開發。大到pc巨型伺服器,小到各種微電子晶片,所有的驅動程式都可以由彙編完成開發,是不是很厲害。
逆向軟體開發。現實開發中,要了解其他軟體的工作原理是一件很困難的事情。特別對於一些病毒程式,如果不瞭解它的工作原理,更笨就沒法對百度進行有效攔截和查殺。這時透過使用匯編語言可以完成這一目標,透過反彙編技術,可以看到程式編譯後的彙編程式碼(這時不一定能復原原程式),只要能夠一定程度上理清被逆向程式的內部資料或指令訊號的流動方向,就能大致知道其工作原理,從而開發出破解之術。
開發高效能程式。許多嵌入式裝置的運算能力極為有限,有限到什麼地步呢?強大如C/C++這樣的高效能程式語言寫出的程式都無法滿足運算需求,這時候如果要最大限度的榨乾其運算能力,就必須派上彙編了。彙編由於其可以直接操縱處理器的特性,能夠充分的呼叫處理器的每一處快取及暫存器,所以用匯編可以讓裝置的運算能力得到充分的釋放。