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

程序員的未來

移動開發(fā)
偉大的程序員既透徹了解他們編程的平臺,又深刻理解問題域。創(chuàng)新迸發(fā)在域和技術(shù)甜美的交集中。這就是為什么(除其他事項外)如果讓程序員(GitHub、Visual Studio、AWS等)去做大型產(chǎn)品和政府產(chǎn)品(Healthcare.gov,F(xiàn)BI’s Sentinel,等等)時,軟件往往會變得糟糕又昂貴。

程序員是注定滅絕的一個物種。

在一個來自于CGP Grey很精彩的視頻中,他提出說,在不久的將來,大多數(shù)工作將會由機器替代。許多行業(yè),從卡車司機到醫(yī)生,在不久的將來將會消失或發(fā)生巨大的變化,創(chuàng)造出一種全新的社會體制。但是,這樣一來似乎有點說不通——既然未來的計算機程序?qū)蠓殴獠?,那么勢必需要更多的程序員。畢竟,創(chuàng)建自動汽車、自動化的醫(yī)療診斷系統(tǒng)、小販機器人等等,都需要程序員的參與,不是嗎?

大錯特錯。

編程是什么?

編程是將理念(業(yè)務(wù)、法律、游戲、數(shù)學問題等)翻譯成機器可以執(zhí)行,其他人可以讀取的代碼的學科。歸根結(jié)底,程序員不過是中間人而已,一個既能明白問題又能理解機器的中間人,因此,可將兩者進行轉(zhuǎn)換。僅僅如此而已。

[[150306]]

偉大的程序員既透徹了解他們編程的平臺,又深刻理解問題域。創(chuàng)新迸發(fā)在域和技術(shù)甜美的交集中。這就是為什么(除其他事項外)如果讓程序員(GitHub、Visual Studio、AWS等)去做大型產(chǎn)品和政府產(chǎn)品(Healthcare.gov,F(xiàn)BI’s Sentinel,等等)時,軟件往往會變得糟糕又昂貴。

每個人都在編程

中間人最終會被淘汰。

編程在過去幾十年間已經(jīng)發(fā)展到了相當高的程度。高級編程語言和可用的在線信息將進入編程的門檻幾乎降至為零。Scratch,一款來自于MIT有著數(shù)百萬用戶和上千萬項目的兒童友好型的編程平臺,已經(jīng)可以媲美GitHub?,F(xiàn)在,一個普通的程序員相較于20年前他的同行,需要理解的計算機體系結(jié)構(gòu)和算法要少很多。

然而,這場革命近期似乎停滯不前了。我們最重要的工具——編程語言最近并沒有發(fā)生太大的改變。大多數(shù)新的和流行的語言(如GO和Rust),只是逐漸改進了現(xiàn)有的范式,缺乏革命性的功能。目前***的編程語言是Java(1995年),C(1973)和C ++(1983年),年紀都已經(jīng)不小。這個行業(yè)卻反而開始專注于開發(fā)支持工具和方法,來提高生產(chǎn)效率。我們已經(jīng)太久沒有創(chuàng)新了,所以,我強烈推薦大家看看Bret Victor的演講《The Future of Programming》。

這是什么意思?

S曲線

科技的發(fā)展是這樣的:SSSSSSSSSSSSSS

如果要描述地更清楚點的話,它是這樣的:

[[150307]]

例如,IBM的***個文字處理器程序(FORMAT)使用繁瑣的穿孔卡片作為輸入。在同一時間,***進的打字機附帶可替換字體、自動字符重復(fù)以及打印數(shù)學公式的能力。然而,卻沒有人使用打字機。本來位于打字機下方的文字處理器的曲線很快趕上并超越了打字機,打字機變成了過去時。

我相信,我們正處在一個類似的語言技術(shù)曲線上,正在等待一個新的時代的到來。

不需要程序員的編程語言

為了從系統(tǒng)中徹底淘汰程序員(中間人),我們需要讓編程平臺自身去“理解”問題,而不再需要編寫代碼。

這個想法并不是我首創(chuàng)的。 1963年,Ivan Sutherland在《Sketchpad》中就描述了這樣一個系統(tǒng),它可以解決給定的若干已定義約束的問題。Prolog(1972年),一種聲明性編程語言就是為了解決給定的一系列邏輯規(guī)則問題而創(chuàng)建的。它雖然依然是一種需要程序員的編程語言,并且并沒有被廣泛使用,但是它沒有完全消失。比如,它以及其他語言一起成就了IBM著名的超級計算機沃森(Watson)。

對于不需要程序員的編程語言,最偉大的例子是自然語言,如英語。從二進制代碼到匯編,從C到Python,編程語言趨向于越來越類似自然語言。并且作為現(xiàn)在一種推崇的方式,越來越多的程序員正在試圖讓他們的代碼盡可能地接近于白話英文,以便于其他程序員和未來自己的理解。那么這個融合的限制是什么?

NLP

現(xiàn)在的自然語言處理(natural language processing,NLP)系統(tǒng)能夠理解文本中的單詞角色以及它們之間的相互關(guān)系。下面是來自斯坦福大學CoreNLP輸出的一個例子:

我們可以發(fā)現(xiàn),僅通過分析文本,該程序就能夠識別同一個人的聯(lián)合引用,并識別單詞的角色。

下面說一個更有趣的,例如,此簡單的業(yè)務(wù)規(guī)則:

注意CoreNLP是如何識別條件(if – buy)和對象(buy – iPhones)的。那么現(xiàn)在將這些翻譯成計算機程序還有什么難的嗎?

有越來越多的新聞文章是由機器人寫的。最近如Apple、Google、Microsoft和亞馬遜等公司已經(jīng)相繼開發(fā)出基于語音識別和自然語言處理的客戶產(chǎn)品。這進一步加快了這一領(lǐng)域的研究。

如果你想親自體驗自然語言處理,那么我強烈建議Python的NLTK。

遺傳編程

另一個有趣的研究領(lǐng)域是遺傳算法。使用類似于自然選擇的進程,遺傳算法通過生產(chǎn)***的解決方案來解決問題。從設(shè)計噴氣發(fā)動機到玩超級瑪麗都是它的應(yīng)用范圍。

但是,遺傳算法肯定不能生成程序代碼,是吧?再好好想想。

一個名叫Kory Becker的開發(fā)人員,編寫了一個可以生成Brainfuck代碼來解決簡單問題的程序。當然,這款軟件的實用性非常有限,但這僅僅是個開始。正如他所說,更復(fù)雜的問題需要更多的計算能力,來找出最適合的解決方案。

例如,下面的代碼,完全是由程序?qū)懙?,可打印hello。

 
  1. +-+-+>-<[++++>+++++<+<>++]>[-[---.--[[-.++++[+++..].+]],]<-+<+,.+>[[.,],+<.+-<,--+.]],+] 
  2. [[[.+.,,+].- 

該字段稱為遺傳編程,并且也不是什么新生事物:

對遺傳和進化的研究需要結(jié)合查找的基因和生存價值標準。(Alan Turing,《Intelligent Machinery》,1948年)

結(jié)合NLP和GP,我們就可以建立能理解用自然語言寫的約束的系統(tǒng),并實施可解決這些帶有約束的問題的程序。

享受這段美好時光吧

我相信不是所有的編程工作都會被機器人取代,至少不會很快。比如說,那些需要高度優(yōu)化的代碼或使用高級算法的編程任務(wù)。其他的還有領(lǐng)域過于復(fù)雜的情況。不過,我也相信,大量的程序員將會在未來幾年被取代。我的預(yù)測是,這將急劇減少對程序員的需求,抵消對軟件創(chuàng)造的不斷增加的需求,并最終結(jié)束程序員的高薪時代。

這是否令你很難過?享受這段美好時光吧,至少我們比貨車司機和醫(yī)生要幸運得多,并且有機會參與到這場革***。

責任編輯:倪明 來源: 碼農(nóng)網(wǎng)
相關(guān)推薦

2014-07-31 09:50:41

程序員

2015-08-12 09:02:03

程序員大齡未來

2018-10-15 09:50:07

程序員高薪淘汰

2016-11-01 07:32:35

Java

2015-04-09 13:36:13

程序員大齡程序員出路

2015-05-11 10:44:04

程序員缺程序員

2019-05-15 09:59:24

程序員技能開發(fā)者

2013-08-20 09:33:59

程序員

2017-11-07 20:02:47

程序員未來

2011-05-13 14:34:02

程序員

2010-05-06 10:17:58

混合編程Java程序員

2011-07-05 11:28:14

程序員

2016-03-11 09:36:52

程序員頂級職業(yè)建議

2013-11-12 10:29:15

程序員職業(yè)規(guī)劃

2012-03-06 09:22:46

程序員

2017-11-14 21:30:15

2012-11-22 14:00:26

程序員

2021-01-06 10:24:46

程序員技術(shù)開發(fā)

2012-06-23 17:21:18

程序員

2017-10-16 14:56:35

程序員
點贊
收藏

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