精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

熱愛著并痛恨著:談談編程改革

開發 開發工具
軟件編程出問題了。出大問題了。如今的這種編程方式讓人如此不堪忍受,以至于讓人想吐。數年來我一直在說我痛恨編程。過去的20年,我一直是個全職的軟件開發者,目前也是,我沒后悔過,我仍然熱愛著我可以用編程來做的事情。可仍然,我痛恨編程。

本文的作者Jon Beltran是一個西班牙程序員,作家,企業家,大學時輟學專職做游戲開發,他目前主要經營Symnum Systems公司,開發 ViEmu
和 Codekana 這兩個開發工具。

[[60516]]

軟件編程出問題了。出大問題了。如今的這種編程方式讓人如此不堪忍受,以至于讓人想吐。數年來我一直在說我痛恨編程。過去的20年,我一直是個全職的軟件開發者,目前也是,我沒后悔過,我仍然熱愛著我可以用編程來做的事情??扇匀?,我痛恨編程。

現在的編碼方式是一種讓大腦自殘的方式。編寫過程中的每一步,你都可能使程序崩潰——耗盡了內存,訪問了錯誤的指針或引用,或進入了死循環。毫無疑問,編程給人的感覺就像赤腳走在到處是碎玻璃的地板上。一小寸誤差的落腳距離,喀嚓,你就損失了半個腳趾頭。

這種編程方式的每一步,在每一個語句里,每一行代碼里,函數調用或過程里,如果你想寫出能用的代碼,你必須要考慮整個程序中所有的不同的、可能的狀態。這些狀態是不可見的,你不可能給它們明確的定義。事實就是這樣。一直是這樣。包括現存的所有的語言。這就是為什么100%的代碼測試覆蓋率也不能保證代碼里沒有bug,永遠也不可能。這也是為什么差程序員不能變好的原因:根本沒有一個結構化的方式讓他們考慮到所有這些可能的情況。

(順便提一下,當遇到了多線程程序時,這種情況會惡化1000倍——不是變得更好,而是更壞。)

問題的原因就在于,代碼被寫出來的基本方式就是錯誤的。完全是錯誤的。你寫出了一行行的指令,一步一步,看起來你把程序驅動到了一個想要的狀態。但每一步都是相互獨立的,只有編譯器/解釋器能獨自的理解它們,你基本上是很容易把事情做錯,而不是做對。

函數式編程也許是一種解決方案,我思考了很長時間,做了認真的研究。Lisp,Haskell。Lambda計算。函數式的編程方式確實給常規的命令式或面向對象的編程方法帶來了不少改進。但這仍不能根本解決問題。它仍然是由很多無聯系的簡單步驟組成,痛苦的計算出輸出結果。

這種編碼方式關鍵是什么地方出了問題?關鍵地方就在于,你不是在表達你想要什么。你表達的是需要采用什么步驟。試想一下,你讓朋友從冰箱里拿出一瓶啤酒,一步一步來,每一步都如機器人般的刻板,每一步都不關系到下一步做什么。這是在折磨一個人。極有可能造成災難性的失敗。這跟現在的編程方式是完全一樣的。

程序庫(lib)能帶來有用的幫助,但它們只是為應付上層特定需求的快捷方式。它們解決不了真正的問題。

最近出現了一篇非常有趣的John Carmack所寫的文章,講的是靜態代碼檢查,他引用了一條說的非常正確的微博,是Dave Revell寫的關于代碼檢查的:

“我越用靜態代碼分析來檢查代碼,我越發現計算機的強大之處。”

一種觀點

那么,應該如何編程?讓我們來舉個簡單的例子:排序。假設你有一個輸入序列,讓我們稱它,呃哼,輸入值。假設它有幾個元素?,F在我們要計算出一個新的序列,稱它為輸出值,里面要包含有相同的元素,但元素是經過升序排序過的。我們如何去做?

傳統的方法有冒泡排序,快速排序,shell排序,插入排序,等。這些都是能夠讓我們對一個序列進行排序的方法。例如,冒泡排序:

  1. def bubble_sort( input, output ):
  2. output = input # start with the unsorted list
  3. swapped = True
  4. while swapped:
  5. swapped = False
  6. for i = 1 to length(output) - 1:
  7. if output[i+1] > output[i]:
  8. swap( output[i+1], output[i] )
  9. swapped = True

非常的直接。但如果打算去寫出這種排序的代碼,你仍然會犯錯誤!你可能會在交換兩個元素時忘記了把“swapped”參數設置成true,或者更典型的,你可能在循環計數時犯下忘記減一的錯誤。

這就是我為什么要說這種編程方式有問題的原因:排序是一種很簡單的可以掌握和描述清楚的概念,可是,用代碼去實現它卻是復雜的,充滿了陷阱,隨時造成程序的崩潰,或輸出錯誤的結果。一件難事!

有人可能會寫出一種函數式的上面的算法,但相似之處會是非常明顯的:沒有副作用,可仍然包含完成這個任務所需的很多步驟。遞歸也許會比迭代更優雅(呃哼),但它并不是本質上更好。

那么,對于一個排序操作,它真正的代碼應該是什么樣的呢?這多年來,我慢慢總結出,它應該是一種類似這樣的東西(請原諒,這些是只是一些偽代碼,一種不存在的編程方式):

  1. def sort(input[]) = output[]:  
  2.   one_to_one_equal(input, output)  
  3.   foreach i, j in 1..len(output):  
  4.     where i < j:  
  5.       output[i] <= output[j] 

讓我對它做一些解釋:這第一行對sort的定義是說,在輸出序列和輸入序列之間已經存在一種1對1的“關系”。我們下文中會介紹在one_to_one_equal的定義中如何實現這個。這樣一來輸入和輸出序列中確保了相同的元素。它在空間上定義出來可能的答案。

第二,關鍵點,這下面的行指明,對于輸出序列中的每一對元素,當第一個的索引低于第二個的索引時,它的值也是較小或相等。這本質上就指明了輸出序列上排序過了。它定義了解決方案中的一種可能的答案。

這是如此的簡單。排序函數只是說明排序的結果,而不是如何做。它描述了輸出數據,以及相關的輸入數據的特征,它把如何能達到這個結果的任務交給了編譯器。

無庸置疑,這存在兩個關鍵問題:

  • 首先,編譯器如何能完成這個任務?真的有這種可能嗎?在將來的文章里,我將會告訴你這是可能的,真的可能,編譯器甚至能知道采用什么樣的算法來獲得這樣的結果。
  • 第二個問題是,如果把它應用到更復雜的情況中?我還是能向你展示,這種方式完全可以應用到任何的所有的編程和計算任務中,它只是一種更簡單,更有效,更能避免錯誤的編程方式!

我曾經想不公開這種技術,將來成立一個公司來實現這種思想,但多種環境因素使我重新思考這個計劃?,F在我向大家分享了我的認識,想看看事情會如何發展。請關注本系列中的下幾篇文章。

尾  注

在本系列的后續文章中我會做深入講解,這里只稍微提一點。這個one_to_one_equal函數在這種理想化的語言中將會是一個“標準庫函數”,它多少看起來應該像這個樣子,像下面這個基本邏輯:

  1. def one_to_one_equal(output[], input[]) = c:  
  2.   c = relations(input[i], output[j])  
  3.   foreach x = input[i]:  len(c(x,)) = 1 
  4.   foreach x = output[i]: len(c(,x)) = 1 
  5.   foreach x(a,b)=c[i]: a == b 

讓我來解釋一下:這第一行的定義是說,在輸入和輸出序列中的元素間有一個1對1的“關系”集合。

這第二和第三行指明,對于每一個輸入和輸出序列的元素,在集合“c”中都有一個單一的關系從屬于它們,確保了它們的關系是一對一的。這最后的一行指明每個關系上的兩個元素都是相等的,確保這兩個序列是相同的,只是排序過。

英文鏈接:I want to fix programming

原文鏈接:http://www.aqee.net/i-want-to-fix-programming/

【編輯推薦】

  1. 引入新編程語言的經驗教訓
  2. 再談JavaScript面向對象編程
  3. 編程語言新寵兒:Julia誕生記
  4. 流行的編程語言之戰
  5. 提高軟件開發團隊編程水平
責任編輯:林師授 來源: 外刊IT評論
相關推薦

2012-11-03 09:51:45

微軟Build 2012大Windows 8

2012-03-21 09:12:24

編程

2015-09-24 08:50:56

2017-12-07 11:27:30

編程開發代碼

2019-03-01 17:20:56

Oracle云業務上云

2009-03-10 15:09:42

IT女性健康職場

2009-07-16 17:22:56

JDBC數據庫編程

2015-10-12 17:06:37

Wi-Fi

2009-06-15 13:08:35

軟件測試編程

2018-08-21 10:45:00

柏譜自由M3

2015-12-30 10:33:12

2021-01-11 13:35:14

996職場互聯網

2010-01-11 10:08:47

VB.NET事件通道

2021-07-29 16:09:48

碼農編程開發

2009-09-23 18:26:56

影音下載機華碩

2015-06-29 14:55:37

2024-11-22 08:00:00

編程語言軟件開發

2019-05-09 15:00:04

機器學習深度學習人工智能

2015-11-04 13:56:06

SDN可編程性企業

2016-07-25 18:03:35

小企業大數據
點贊
收藏

51CTO技術棧公眾號

久久综合狠狠综合| 国产精品论坛| 性欧美69xoxoxoxo| 精品国产一区二区三区忘忧草| 日韩精品一区二区免费| 日本激情视频网站| 蜜桃在线一区二区三区| 欧美精品一区二区免费| 亚洲国产精品无码久久久久高潮| 精品欧美日韩精品| 亚洲午夜在线电影| 亚洲电影网站| 色欲av永久无码精品无码蜜桃| 日韩精品福利网| 九色精品免费永久在线| 国产伦精品一区二区三区视频女| 18国产精品| 欧美亚洲尤物久久| 成人一区二区免费视频| 天堂а√在线资源在线| 91亚洲精华国产精华精华液| 国产综合色香蕉精品| 免费观看一区二区三区毛片| 欧美在线亚洲| 中文字幕国内精品| 午夜一区二区三区免费| 日韩成人在线观看视频| 欧美中文字幕久久| 国产91xxx| 大片免费在线观看| 日本一区二区在线不卡| 国产一区二区久久久| 91精品视频免费在线观看| 久久久成人网| 97在线免费视频| 免费在线观看黄视频| 天天久久综合| 中文字幕亚洲无线码a| 91精品人妻一区二区| 99re91这里只有精品| 91精品在线免费| 久久久久久久高清| 欧洲午夜精品| 欧美日韩www| 我看黄色一级片| 性欧美videohd高精| 欧美午夜激情视频| av之家在线观看| 国产免费拔擦拔擦8x高清在线人 | 欧美日韩国产欧| 最近中文字幕日韩精品| 免费网站在线高清观看| 国产调教一区二区三区| 亚洲四色影视在线观看| 精品成人av一区二区三区| 亚洲精品白浆高清| 亚洲欧美一区二区精品久久久| 国产麻豆剧传媒精品国产av| 福利欧美精品在线| 欧美精品一区二区三区蜜桃视频 | 正在播放亚洲精品| 葵司免费一区二区三区四区五区| 欧洲精品久久久| 91精品国产综合久久久蜜臀九色| 国产亚洲在线| 日韩av电影国产| 午夜精品久久久久久久蜜桃| 日韩国产在线观看一区| 国产乱人伦真实精品视频| 在线视频播放大全| 国产一区亚洲一区| 99国产盗摄| 少妇精品视频一区二区| 2021中文字幕一区亚洲| 日韩欧美一区二区三区久久婷婷| 在线视频三区| 亚洲欧美日韩国产另类专区| 隔壁人妻偷人bd中字| sm捆绑调教国产免费网站在线观看 | 欧美精品一二三四| 在线成人免费av| 久久丝袜视频| 尤物九九久久国产精品的特点 | 国产精品欧美激情在线播放| 亚洲中文一区二区三区| 国产麻豆精品视频| 精品日本一区二区| 浮生影视网在线观看免费| 中文字幕在线观看一区| 4444亚洲人成无码网在线观看| а√天堂中文在线资源8| 日本久久电影网| 伊人精品视频在线观看| 久久aimee| 中文字幕av一区中文字幕天堂| 在线看的片片片免费| 亚洲第一网站| 国产精品免费久久久久久| 国产白浆在线观看| 26uuu精品一区二区三区四区在线| 亚洲v国产v| 国产精品一区hongkong| 在线观看视频一区二区| 久久av一区二区三| 成人激情视频| 国外成人免费在线播放| 中文字幕日产av| 波波电影院一区二区三区| 亚欧洲精品在线视频免费观看| 日本色护士高潮视频在线观看| 欧洲一区二区av| 久久国产免费视频| 日韩dvd碟片| 91国内揄拍国内精品对白| 亚洲综合精品在线| 久久免费精品国产久精品久久久久| 在线看无码的免费网站| 樱花草涩涩www在线播放| 欧美一二三区在线观看| jizz18女人高潮| 亚洲一区网站| 国产麻豆一区二区三区在线观看| 丝袜美腿美女被狂躁在线观看| 欧美色视频日本版| 最新版天堂资源在线| 亚欧美无遮挡hd高清在线视频| 日韩av观看网址| 日韩专区第一页| 亚洲另类春色国产| 亚洲精品手机在线观看| 久操成人av| 91po在线观看91精品国产性色| а√天堂资源在线| 国产精品久久久久久久久动漫 | 一区二区三区视频免费在线观看 | 在线欧美日韩精品| 波多野结衣视频播放| 午夜亚洲福利| 91中文字幕一区| 麻豆网站在线免费观看| 欧美日韩精品是欧美日韩精品| 欧美性猛交xxxx乱| 久久婷婷麻豆| 女同一区二区| xx欧美xxx| 国产偷国产偷亚洲清高网站| 国产手机在线视频| 成年人午夜久久久| 亚洲国产精品无码观看久久| 国产成人在线中文字幕| 欧美激情国产日韩精品一区18| 国产叼嘿视频在线观看| 中文字幕亚洲一区二区av在线| 日本在线一二三区| 99精品视频在线观看免费播放| 国产欧美精品在线| 欧洲日本在线| 欧美一区二区三区小说| 欧美黑人猛猛猛| 丁香亚洲综合激情啪啪综合| 免费高清一区二区三区| 欧美自拍视频| 日本道色综合久久影院| wwwww在线观看免费视频| 欧美午夜精品久久久久久超碰| 国产精久久一区二区三区| 日本亚洲欧美天堂免费| 中文字幕一区二区三区有限公司 | 在线观看精品自拍私拍| 中文字幕人妻互换av久久| 亚洲丝袜美腿综合| 中文字幕99页| 性伦欧美刺激片在线观看| 日本一区免费看| 午夜不卡一区| 欧美福利视频在线观看| 色综合成人av| 欧美日韩久久久久久| 欧美成人三级在线观看| 91小视频在线观看| 亚洲免费成人在线视频| 国产精品国码视频| 欧美污视频久久久| 亚州欧美在线| 91精品国产高清自在线看超| 北岛玲一区二区三区| 欧美一级国产精品| 久久久精品福利| 日韩一区欧美小说| 韩国无码一区二区三区精品| 蜜桃精品在线观看| bt天堂新版中文在线地址| 亚洲欧美日本伦理| 亚洲最大av在线| 欧美大胆成人| 欧美国产日韩一区二区三区| 日本五码在线| 欧美一区二区三区人| 男人天堂2024| 亚洲综合在线观看视频| 亚洲天堂岛国片| 成人性生交大合| 婷婷免费在线观看| 国产精品普通话对白| 天堂v在线视频| 九一亚洲精品| 国产精品区一区二区三在线播放| 99久久亚洲国产日韩美女| 午夜免费日韩视频| а天堂中文在线官网| 亚洲欧美日韩在线高清直播| 亚洲AV无码成人片在线观看 | 成人av一区二区三区在线观看| 狠狠躁天天躁日日躁欧美| 五月天激情丁香| 国产三级欧美三级日产三级99| 人妻激情偷乱频一区二区三区| 精品一区二区日韩| av视屏在线播放| 最新亚洲一区| 在线观看污视频| 欧美电影免费播放| 日韩妆和欧美的一区二区| 好吊妞视频这里有精品 | 欧美日韩国产第一页| 91在线不卡| 亚洲日本中文字幕| 日韩porn| 亚洲精品久久久久久下一站| 精品久久久久久亚洲综合网站| 精品污污网站免费看| 无码人妻精品一区二区三区9厂| 亚洲电影在线播放| 久久久全国免费视频| 自拍偷拍欧美精品| 成人18视频免费69| 国产精品国产三级国产普通话三级 | 欧美电影完整版在线观看| ts人妖另类在线| 深夜福利一区| 97神马电影| 91欧美日韩在线| 粉嫩av四季av绯色av第一区| 视频一区国产| 成人一区二区在线| 2020最新国产精品| 国产精品免费一区二区三区在线观看 | 男女性色大片免费观看一区二区 | 国产精品99久久免费| 成人黄色av播放免费| 欧美一级做a| 成人黄色av网| 日本99精品| 成人黄动漫网站免费| 北条麻妃一区二区三区在线| 国产精品久久国产精品| 国产无遮挡裸体免费久久| 国产麻豆日韩| 国产一区二区区别| 亚洲高清在线观看一区| 日韩欧美高清在线播放| 久久精品国产精品亚洲精品色| 久久精品青草| youjizz.com在线观看| 亚洲黄色天堂| 麻豆av免费在线| 美女视频免费一区| 中文字幕欧美视频| 99久久综合狠狠综合久久| 极品粉嫩小仙女高潮喷水久久| 国产亚洲欧美一级| 国产在线免费看| 一区二区三区美女视频| 精品国产乱码一区二区| 欧美日韩在线播放| www.av导航| 精品无人国产偷自产在线| 丁香婷婷在线观看| 久久午夜a级毛片| caoporn视频在线| 国产精品高潮呻吟久久av黑人| 成人在线视频区| 韩国精品一区二区三区六区色诱| 欧美精选一区二区三区| 99精品视频网站| 一区二区三区国产在线| 国产91色在线观看| 成人精品免费网站| 色欲狠狠躁天天躁无码中文字幕 | 免费在线不卡视频| 欧美日韩一级视频| 欧美少妇bbw| 中文国产亚洲喷潮| 9999热视频在线观看| 91精品久久久久久久久中文字幕| 国产另类在线| 亚洲在线色站| 亚洲综合国产| 不许穿内裤随时挨c调教h苏绵| 国产日韩欧美综合在线| 久久久久无码国产精品不卡| 欧美中文字幕一区二区三区 | 亚洲欧美一区二区三区在线观看 | 国产精品视频大全| 国内精品免费| 亚洲小视频在线播放| 日韩精品一区第一页| 天堂www中文在线资源| 中文字幕在线播放不卡一区| 国产精品男女视频| 精品日产卡一卡二卡麻豆| av在线天堂| 欧美有码在线观看| 成人午夜大片| 日韩第一页在线观看| 久久精品导航| 性欧美丰满熟妇xxxx性久久久| 亚洲久本草在线中文字幕| 五月婷婷丁香在线| 日韩电影中文 亚洲精品乱码| 一二三四区在线观看| 成人国产精品一区| 日韩理论在线| www.久久久精品| 久久久久久久久久久久久夜| 日韩毛片在线视频| 精品国产污污免费网站入口| 精精国产xxxx视频在线| 国产精品日日摸夜夜添夜夜av| 你微笑时很美电视剧整集高清不卡| 日韩 欧美 视频| 国产精品一卡二| 成人免费视频网站入口::| 91精品国产综合久久香蕉的特点| h视频在线观看免费| 国产精品久久久久久超碰| 奇米色欧美一区二区三区| 日本毛片在线免费观看| www.日韩大片| 国产免费av一区二区| 日韩av网址在线观看| 牛牛精品一区二区| 免费看成人午夜电影| 久久国产成人| 亚洲精品色午夜无码专区日韩| 一本大道综合伊人精品热热 | 欧美 日韩 国产 激情| 久久久亚洲精品石原莉奈| 中文字幕精品无码一区二区| 亚洲老板91色精品久久| 欧美黑人巨大xxxxx| 日本一区高清不卡| 久久国产生活片100| 91 在线视频| 日韩欧美一级二级三级久久久 | 日本韩国在线不卡| 国产91精品对白在线播放| 熟女少妇精品一区二区| 国产精品久久一卡二卡| 国产精品高潮呻吟av| 欧美另类在线观看| 成人香蕉社区| av免费中文字幕| 中文字幕乱码久久午夜不卡 | 一区二区三区 在线观看视| 成人毛片免费| 精品免费久久久久久久| 99久久伊人精品| 日本三级一区二区三区| 久久久国产影院| 国内精品麻豆美女在线播放视频| 国产美女三级视频| 国产精品人人做人人爽人人添| 国产区精品在线| 国内精品久久久久伊人av| 亚洲婷婷伊人| 黑森林精品导航| 伊人夜夜躁av伊人久久| 五月激情婷婷网| 国产精品美女久久久免费| 欧美天堂亚洲电影院在线观看| av网页在线观看| 欧美日韩高清在线播放| 欧美videosex性欧美黑吊| 欧美视频观看一区| 国产精品一二三| 亚洲第一网站在线观看| 久久手机免费视频| 伊人精品一区| 又黄又爽又色的视频| 色视频成人在线观看免| av免费在线免费| 日韩精品av一区二区三区| 国产精品亚洲午夜一区二区三区 | 欧美一区二区免费观在线| 亚洲第一av| 少妇久久久久久被弄到高潮| 国产午夜精品一区二区三区视频| 精品久久久久中文慕人妻| 国产精品黄视频|