
原創:小姐姐味道(微信公眾號ID:xjjdog),歡迎分享,轉載請保留出處,
有時候,寫TypeScript寫多了,寫Java的時候就老容易出錯,而當陷入某個專案一段時間之后,自我感覺老熟悉的Python和Golang,會變得非常的陌生,而某段時間寫起來行云流水的Bash腳本,每次重新拿起,都會進入看檔案寫代碼的境地,
因為作業和個人興趣的原因,需要在多種語言中進行切換,這種感覺尤為強烈,個人精力有限,不可能每天都照顧到這些刁鉆的,五花八門的語言,所以最后干脆放棄了掙扎,讓語言的圈子漸漸的將開發人員隔離開來,
為什么不能統一成一種開發語言呢?下面這張圖或許可以說明一下,

每種語言在出現的時候,都覺得自己吊的不行,尤其是golang,覺得自己是個另類,是終極目標,而事實上,它也是發展路線上的一枚棋子罷了,
別的不說,就連函式宣告,各門語言都TM統一不起來,在這上面做文章,不是閑的蛋疼么?
我們來看一下,
golang的函式宣告關鍵字是func,
func test(x int,y int) int{
}
java的函式宣告,沒有關鍵字,
public int test(int x,int y){
}
typescript的函式宣告,
function test(x: number,y: number):int{
}
python的函式宣告,
def test(x,y):
kotlin函式宣告,
fun test(x: Int,y:Int): Int{
}
rust函式宣告,
fn test(x: i32,y:i32){
}
...
如此種種,僅僅定義函式的關鍵字就有多種,func,function,fun,fn,def...,且不說引數的宣告方式和定義方式,
我時常在想,創造這門語言的這些人,腦子是不是有病?關鍵字是一門語言的根本競爭優勢嗎?
沒辦法,有時候只能按照開發語言將開發人員進行區分,比如招聘golang程式員,招聘java程式員,
雖然說語言在軟體開發中,只是占了很小一部分,但在實際落地的時候,卻往往又影響重大,不同的語言,細節差異多,編碼規范不同,對程式的影響就比較大,這些差異,往往需要開發人員在榷訓月累之間,不斷的積累經驗,在語言之上,建立的類別庫和生態,更是龐大,這些差異是無法消除的,只能隔離,
我是常年搞Java的,對待Java自然是親切而熟悉,也早已經能夠忍受它的冗長和復雜,但在其他語言眼里,Java是個不折不扣的魔鬼,
就拿常見的lambda語法來說,在其他語言中,都是e=>{}使用=>這種語法,只有Java另類,使用->來表示,我就經常在寫完TypeScript之后,回到Java中會腦子抽筋,
Java的泛型也是一般,一個int[]陣列,并不能直接使用Arrays.sort()進行自定義的排序,還得把它轉成Integer[]才行,
這些問題有,但都是有限的,問題是,別人覺得有問題,就會推倒重來,比如groovy,scala,比如kotlin,代碼可以更簡潔,但你TM別改關鍵字啊,
目前,已經有700多種編程語言,它們風格迥異,標稱著能夠解決特定行業的問題,但大多數都是同質化的萬能語言,
在Tiobe排行榜上,C、Python、Java、JavaScript、Php、SQL等,常年存在于排行榜前10,

可以說,語言的格局已經大體形成,剩下的就是你爭我奪的搶奪戰,比如Java和C#,在一定程度上來說,就是一個東西,但現在它們的生態卻完全不同,語言有什么復雜的?復雜的是邏輯還有代碼組織方式,不是語言,
它們的發展,就像是中國的互聯網,雖然標榜著自己哪里哪里不一樣,到最后還是一樣的同質化,該牛x的地方一樣牛x,該垃圾的地方一樣少不了,
語言也是,你參考我的,我參考你的,只要道理上說的通,那就可以安排上,比如Java的record關鍵字,真正的Javaer真的不在乎多一點getset方法的,
未來,有哪個語言標稱統一了所有的語言,你就笑一笑看看罷了,它不過是第n+1種語言而已,另外,偷偷的告訴你,使用f關鍵字進行函式定義的語言,到現在還沒有出現,如果你想造一個的話,考慮一下啊,
作者簡介:小姐姐味道 (xjjdog),一個不允許程式員走彎路的公眾號,聚焦基礎架構和Linux,十年架構,日百億流量,與你探討高并發世界,給你不一樣的味道,我的個人微信xjjdog0,歡迎添加好友,進一步交流,
推薦閱讀:
1. 玩轉Linux
2. 什么味道專輯
3. 藍牙如夢
4. 殺機!
5. 失聯的架構師,只留下一段腳本
6. 架構師寫的BUG,非比尋常
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/294466.html
標籤:java
