我為什么開發新語言


為什么有這么多的編程語言

1 改革換代,適應時代發展需求

2 特定的領域需要特定的語言

3 沒有一個語言可以完美適配各種場景

4 個人習慣

 

所有語言都有一個發明初衷

Lisp - 一切抽象為數學符號,利用公式自動計算結果

C - 匯編太繁瑣,我能更簡潔地寫邏輯

C++ - C 只能寫普通邏輯,我能用面向對象編程

Java - C++ 兼容性差,代碼復雜,還容易出錯,我能做更穩定的服務

C# - Java 你說的對,但咱爹有錢不想認干兒子,所以我就誕生了,我在 C++ 和 Java 基礎上做了一些改進,理論上應該是最強大的語言了

Python - 我只想做一個運維的小工具,你還讓我寫個類先?寫你妹啊,我能飛速的寫好代碼下班走人,而你還在等編譯結果...另外,這么多括號看得我眼花...能不能讓我少敲幾個字...很累的

Ruby - 一切都是對象,一切都能點,是不是很爽

JavaScript - 領導讓我做個腳本引擎,那我就參考 Java 做一個好了,時間有限,先做一個湊合吧,至少能用,咦,居然還挺好用

Swift -  你們谷歌認領了 Java,微軟養活了 C#,而相比我的兒子 Object C 好像確實搓了些,算了,我生個二胎吧,肯定比你們簡單很多

Kotlin - 我給這么多語言做了 IDE,不想終生為人服務,就沖着我閱人無數的優勢,我把你們的優點集中一下...發明個新語言,功能我一頂仨

 

雖然語言種類繁多,但還是可以分為以下幾類

1 以 C 為代表,適於性能要求非常高,不常更新的系統編程,同分類還有 C++,匯編

2 以 Java 為代表,適於性能有一定要求,穩定,適合大型企業項目開發,同分類還有 C#,Swift,Kotlin

3 以 JavaScript 為代表,適合頻繁更新,沒有性能要求的中小項目開發,同分類還有 PHP,Python,Ruby,Lua

4 以 Lisp 為代表,適於特定領域的,同分類還有 ML,SQL,CSS

 

為什么開發者熱衷於某個語言后就不想看別的

1 學習需要精力,有這時間還不如來一盤王者榮耀

2 我已經習慣現有語言了,有些不一樣的地方改改也就算了,但完全一樣的東西也要改就太不習慣了,比如以前一直用 null,你告訴我要用 nil,憑啥不用 null,大家都用 null 不好嗎,有區別嗎?

3 別的語言確實有一些先進的功能,但沒有這些功能也可以接受,就像我現在已經掌握的語言一樣

4 學別的語言好找工作嗎?工資高嗎?

 

在知道以上這些道理的同時,我為什么想做新語言

1 我精通 C++,C#,JavaScript/TypeScript,排名前 10 的語言也都會寫,更習慣於 C 風格的代碼,和大部分人,特別是一線碼農習慣差不多。所以新出的一些和 JavaScript 風格上有明顯區別的語言都不怎么喜歡,比如 Kotlin,Groovy。所以我希望做一個盡量和 JavaScript 相似的語言,畢竟 JavaScript 是目前所有程序員都會接觸到的交集

2 我喜歡 JavaScript 的簡潔,但也希望擁有接近 C++ 的性能,畢竟寫的代碼如果慢的要死,和剛畢業的實習生有啥區別。所以我希望語言的性能可以有保證

3 JavaScript 雖然好,但是坑也挺多的,這可不利於在大型項目中使用,所以我希望語言可以規避掉其中的坑,畢竟語言是工具,工具最重要的是穩定。

4 我希望一門語言可以做前后端,手機和桌面端。

 

綜上,我決定開發這樣一個新語言

1 總體類似 JavaScript,原來會寫 Java/C# 的人也可以很快習慣。

2 性能好,但又不能讓用戶寫和 C++ 一樣復雜的代碼,所以怎么辦:利用高智能算法自動優化性能,比如可以自動類型推算,合並循環,刪除用不到的代碼,自動尋找合適的數據結構和算法

3 穩定為首,去坑,在保證功能前提下盡量簡單

4 實用,畢竟是沖着實際項目去的,一定要更好滿足項目需求。還需要很強大的 IDE 和社區支持

5 一期主要考慮生成能在瀏覽器跑的 Javascript,二期考慮生成 JVM 等其它環境。

 

開發語言是一個大工程,如果你有興趣參與這個開源項目,共創國產編程語言品牌,請留言

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM