自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

想罵人!為什么有這么多開發(fā)語言?

開發(fā) 后端 開發(fā)工具
有時(shí)候,寫 TypeScript 寫多了,寫 Java 的時(shí)候就老容易出錯(cuò)。而當(dāng)陷入某個(gè)項(xiàng)目一段時(shí)間之后,自我感覺老熟悉的 Python 和 Golang,會(huì)變得非常的陌生。

 [[418379]]

圖片來自 包圖網(wǎng)

而某段時(shí)間寫起來行云流水的 Bash 腳本,每次重新拿起,都會(huì)進(jìn)入看文檔寫代碼的境地。

因?yàn)楣ぷ骱蛡€(gè)人興趣的原因,需要在多種語言中進(jìn)行切換,這種感覺尤為強(qiáng)烈。

個(gè)人精力有限,不可能每天都照顧到這些刁鉆的,五花八門的語言,所以最后干脆放棄了掙扎,讓語言的圈子漸漸的將開發(fā)人員隔離開來。

為什么不能統(tǒng)一成一種開發(fā)語言呢?下面這張圖或許可以說明一下。

每種語言在出現(xiàn)的時(shí)候,都覺得自己吊的不行,尤其是 Golang,覺得自己是個(gè)另類,是終極目標(biāo)。而事實(shí)上,它也是發(fā)展路線上的一枚棋子罷了。

別的不說,就連函數(shù)聲明,各門語言都 TM 統(tǒng)一不起來。在這上面做文章,不是閑的蛋疼么?

我們來看一下。

Golang 的函數(shù)聲明關(guān)鍵字是 func:

  1. func test(x int,y intint
  2.  

java 的函數(shù)聲明,沒有關(guān)鍵字:

  1. public int test(int x,int y){ 
  2.  

typescript 的函數(shù)聲明:

  1. function test(x: number,y: number):int
  2.  

python 的函數(shù)聲明:

  1. def test(x,y): 

kotlin 函數(shù)聲明:

  1. fun test(x: Int,y:Int): Int
  2.  

rust 函數(shù)聲明:

  1. fn test(x: i32,y:i32){ 
  2.  

如此種種,僅僅定義函數(shù)的關(guān)鍵字就有多種。func,function,fun,fn,def...,且不說參數(shù)的聲明方式和定義方式。

我時(shí)常在想,創(chuàng)造這門語言的這些人,腦子是不是有病?關(guān)鍵字是一門語言的根本競爭優(yōu)勢嗎?

沒辦法,有時(shí)候只能按照開發(fā)語言將開發(fā)人員進(jìn)行區(qū)分。比如招聘 Golang 程序員,招聘 Java 程序員。

雖然說語言在軟件開發(fā)中,只是占了很小一部分,但在實(shí)際落地的時(shí)候,卻往往又影響重大。

不同的語言,細(xì)節(jié)差異多,編碼規(guī)范不同,對程序的影響就比較大。這些差異,往往需要開發(fā)人員在日積月累之間,不斷的積累經(jīng)驗(yàn)。

在語言之上,建立的類庫和生態(tài),更是龐大。這些差異是無法消除的,只能隔離。

我是常年搞 Java 的,對待 Java 自然是親切而熟悉,也早已經(jīng)能夠忍受它的冗長和復(fù)雜。但在其他語言眼里,Java 是個(gè)不折不扣的魔鬼。

就拿常見的 Lambda 語法來說,在其他語言中,都是 e=>{} 使用 => 這種語法。只有 Java 另類,使用 -> 來表示。我就經(jīng)常在寫完 TypeScript 之后,回到 Java 中會(huì)腦子抽筋。

Java 的泛型也是一般,一個(gè) int[] 數(shù)組,并不能直接使用 Arrays.sort() 進(jìn)行自定義的排序,還得把它轉(zhuǎn)成 Integer[] 才行。

這些問題有,但都是有限的。問題是,別人覺得有問題,就會(huì)推倒重來,比如 groovy,scala,比如 kotlin,代碼可以更簡潔,但你 TM 別改關(guān)鍵字啊。

目前,已經(jīng)有 700 多種編程語言,它們風(fēng)格迥異,標(biāo)稱著能夠解決特定行業(yè)的問題,但大多數(shù)都是同質(zhì)化的萬能語言。

在 Tiobe 排行榜上,C、Python、Java、JavaScript、Php、SQL 等,常年存在于排行榜前 10。

可以說,語言的格局已經(jīng)大體形成,剩下的就是你爭我奪的搶奪戰(zhàn)。比如 Java 和 C#,在一定程度上來說,就是一個(gè)東西,但現(xiàn)在它們的生態(tài)卻完全不同。語言有什么復(fù)雜的?復(fù)雜的是邏輯還有代碼組織方式,不是語言。

它們的發(fā)展,就像是中國的互聯(lián)網(wǎng),雖然標(biāo)榜著自己哪里哪里不一樣,到最后還是一樣的同質(zhì)化,該牛x的地方一樣牛x,該垃圾的地方一樣少不了。

語言也是,你參考我的,我參考你的,只要道理上說的通,那就可以安排上。比如 Java 的 record 關(guān)鍵字,真正的 Javaer 真的不在乎多一點(diǎn) getset 方法的。

未來,有哪個(gè)語言標(biāo)稱統(tǒng)一了所有的語言,你就笑一笑看看罷了,它不過是第 n+1 種語言而已。

另外,偷偷的告訴你,使用 f 關(guān)鍵字進(jìn)行函數(shù)定義的語言,到現(xiàn)在還沒有出現(xiàn),如果你想造一個(gè)的話,考慮一下啊。

作者:小姐姐味道

編輯:陶家龍

出處:轉(zhuǎn)載自公眾號(hào)小姐姐味道(ID:xjjdog)

 

責(zé)任編輯:武曉燕 來源: 小姐姐味道
相關(guān)推薦

2022-07-26 23:43:29

編程語言開發(fā)Java

2013-01-15 09:41:45

編程語言

2015-05-18 15:08:08

多種程序設(shè)計(jì)語言程序設(shè)計(jì)語言

2017-12-21 19:38:50

潤乾中間表

2013-01-24 09:44:44

數(shù)據(jù)庫

2022-01-12 20:04:09

網(wǎng)絡(luò)故障斷網(wǎng)事件網(wǎng)絡(luò)安全

2020-10-15 13:19:24

為什么會(huì)存在亂碼

2021-04-27 15:13:20

Java開發(fā)語言

2020-01-02 10:06:16

Java 8Java 14

2021-05-31 22:26:20

5G技術(shù)通信

2024-02-04 10:29:58

線程通信

2022-08-04 23:32:38

比特幣以太坊代幣

2017-06-16 16:16:36

庫存扣減查詢

2018-06-26 15:00:24

Docker安全風(fēng)險(xiǎn)

2023-11-13 08:49:54

2021-01-14 05:08:44

編譯鏈接

2024-02-20 08:09:51

Java 8DateUtilsDate工具類

2021-10-27 15:23:10

語言PHP開源

2020-07-02 14:12:52

C++語言編程

2015-01-14 14:27:18

Docker容器鏡像
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)