国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

框架成為新的編程語言的7種理由

譯文
開發 架構
感謝強大的工具、對速度的需求、和編程本身的變遷,下一次乏味的戰爭將終結于框架 API、而非語法。

在 1980 年代,掀起一場乏味戰爭的最簡單方法,就是贊揚你鐘愛的編程語言是最棒的。C、Pascal、Lisp、Fortran?程序員們花費數個小時來詳細解釋關于精巧制作一條 if-then-else 語句的特定方式為什么優于你的方式。

[[131310]]

那是過去的事情了。今天,涉及語法和結構的戰爭基本結束了,因為世界已經匯總了一些簡單標準。在 C、JavaJavaScript 里,分號、花括號等之間的差異不大。關于類型和閉包的有趣爭論仍然存在,但是大部分是毫無意義的,因為自動化在縮小差距。如果你不想定義數據類型,那么有一種可能,計算機將能準確推斷出你的意思。如果你的老板想用 JavaScript、而你喜歡 Java,那么交叉編譯器【注1】將把所有靜態類型的 Java 代碼轉化成可以在瀏覽器運行的最小化的 JavaScript。當技術做后盾時,為什么還有戰爭呢?

今天,有趣的戰斗發生在框架上。當我在約翰·霍普金斯大學和其他院系成員規劃一門新課程時,框架成了討論的重點。Angular 優于 Ember?Node.js 就是一切嗎?

我們設計了一份調查課程,將探索最重要的軟件包的架構,這是互聯網的基礎。這是行動的中心,這份調查課程的價值在于探索圍繞著當今互聯網的、最重要的軟件包的架構。

從這個意義上說,框架就是新的編程語言。它們就是當代代碼被建立起來的最新思想、哲學和實用性。有些曇花一現,不過大部分成為了編程的、新的基本構成要素。下面是助長這種框架趨勢的七個方面,使得框架成為滋生乏味戰爭的新的最愛。

大部分代碼正和 API 串在了一起

過去編寫軟件,意味著調用你對編程語言的所有技能,以最大化壓榨代碼。掌握指針、函數和作用域是講得通的——代碼質量取決于做正確的事情。如今自動化處理了這方面的大多數事情。如果你在代碼里遺留了無用的語句,不要擔心,編譯器會去掉無用代碼。如果你讓指針吊著,垃圾回收器可能會找到它。

還 有,如今編碼實踐也不同了。大部分代碼現在都是一長串 API 調用。偶爾有一些 API 調用之間的數據重組,但是,甚至這些工作通常也有其它 API 來完成。幸運的一些人在為我們機器的核心編寫更聰明的、位拆裂【注2】、指針雜耍之類的代碼,但是我們大部分人工作于更高的層次。我們在 API 之間簡單地運行管道。

鑒于此,理解 API 的表現以及能做什么,就顯得更加重要。它接受哪種數據結構?當數據集增長較大時,算法表現如何?類似這樣的問題,與關于語法或語言的問題比起來,更加集中在今天的編程里。的確,有大量工具簡化了某種語言從另一種語言調用一個程序。比如,把 C 資源庫鏈接到 Java 代碼,變得相應簡單了。理解 API 才是重要的。

站在巨人的肩膀上,是值得的

假設你已經成為了 Erlang 或另一種新語言的信徒。你認為,它為編寫文檔、沒有 bug 的應用提供了最好的平臺。這是優秀的觀點,但是你要花費數年才能把可獲得的 Java 或 PHP 重寫為你最新選擇的語言。你的代碼最終可以顯著變得更好,但是值得花這些額外的時間嗎?

框 架讓我們對來到我們面前的那些艱難工作做出了改變。我們或許不喜歡他們選擇的架構,我們或許爭論于實現細節,但是停止抱怨、找到和差異共存的方式才是更有 效的。繼承框架代碼庫里的所有精華和糟粕,是如此地容易。用你喜歡的新語言、自己編寫所有東西,而不采用某種更受歡迎的框架,這種強悍的方式和簡單地遵循 框架作者及其 API 比起來,不會讓你快速享受到新選擇的樂趣。

理解架構是做什么的,而非語法

由 于大部分編碼都是串起 API 調用,因此沒有太多優勢去學習語言的特質了。當然,你可以成為關于 Java 是如何初始化對象內的靜態字段的專家,但是如果能夠搞清楚如何發揮 Lucence、JavaDB 或其它一堆代碼的威力,那才是更好的。為了深入理解 Objective-C 編譯器的優化程序,你要花費數月,但是學習最新的 Apple 核心資源庫的來龍去脈,你將真正讓代碼優秀。你將更深入地學習框架吹毛求疵的細節,而不是框架所依托的語言的語法。

我們的大部分代碼在資源庫的內部循環中花費了大量時間。搞清楚語言細節的正確性可以起到幫助,但是了解資源庫內部發生了什么可以獲得顯著的回報。

算法主導

學習一門語言有助于你應付隱藏在變量里的數據,不過只是把你帶到了更遠的地方。真正要克服的是,確保算法正確,它們通常被框架定義和實現了。

很 多程序員明白,重新實現標準算法和數據結構是危險的,也是浪費時間的。你可能讓它更符合需求,但是你要冒著犯微妙錯誤的風險。框架已經廣泛測試過多年了。 它們代表了軟件基礎設施的集體投資。當弄明白“go off the grid”【注3】是什么意思時,將其他人的辛苦勞動扔在一邊,用你自己的雙手搭建一個算法小屋——其實,沒有太多這種例子。

正確的做法是學習框架,學習如何使用它們來發揮你的最大優勢。如果你選擇了錯誤的數據結構,那么你就把一個線性工作變成了耗時的、輸入大小的二次函數。一旦你這樣做了,將是一個大麻煩。

糾正語法的編譯器和聰明的 IDE

我 應該在代碼塊的最后一個語句后面加上分號嗎?分號是“分隔符”,還是“終止符”?語言設計者們花了大量時間來制作實施這些規則的分析器——猜猜怎樣——我 不關心。我關心的時候大概是在 10 年前,但是現在的 IDE 為我做了這部分工作。它們一直在身后看著我,當我搞砸的時候就告訴我。我讓它們替我去考慮,把時間花在考慮關于代碼方面的大問題。IDE 是苦力、是處理這些瑣碎細節的編程助理。

自動化已經把我們從編程語法的單調乏味中拯救了。當然,它們不能為我們做所有工作。我們仍然需要具備部署那種標點符號的模糊思維。但是大部分時候,語言的這種細節已經不重要了。

IDE 不僅對框架有幫助,還有一些小細節。它們提醒我們函數調用的參數,它們甚至檢查數據是否為正確的類型。然后,我們應該知道使用哪種函數、如何將它們組合在 一起。當語法不是太緊要時,這就是我們精力需要集中的地方——更高級的方法和函數,將有助于更方便地找到解決方案。

語法和視覺化語言一起消失

雖然已經預言很多年了,但是它在某些代碼——盡管不是全部——仍在緩慢地發生著。某些編程繼續著非常文字式,但是有些正變得更加視覺化【注4】,這意味著潛在的計算機語言不是太重要。

GUI 構建器是最容易看到這個現象的地方。你可以整日整夜地拖拉用戶界面部件,而不用擔心它是 C、Java 或其它語言。細節在視覺化盒子里被編碼。

AndroidBuilder 使得拖拉更多的布局成為可能,它將忠實地編寫 XML 以及需要讓代碼運行的 Java 小代碼。很難討論視覺化語言未來會成為什么樣子,尤其是在它們多次未能意識到該預言之后,但是當它們成長時,工具將增加更多視覺化。這意味著語言沒那么強 大或重要了。

代碼即法律(code is law)

計算機語言有著極大的不可知論者。它 們被設計為開放、接受和幾乎無限延展的。它們意欲做你想要的任何事情。當然,有時候由于語法,你需要使用一些額外的字符,但是這些是很少的擊鍵。之后,它 主要是 if-then-else,再加上偶爾的聰明約束。所有這些語言將幫助你用想得到它們的方式、得到你想要的結果。如果有一些苛責的話,那么它們應該被設計 為盡可能保持你的代碼沒有 bug,不要限制你能做的事情。

框架的威力就在這里,這就是設計師可以決定什么被允許、什么本質上要禁止。如果 設計師不想讓某些東西發生,那么神奇的函數調用將從 API 中消失。如果設計師喜歡這種想法,那么通常會有多個函數調用以及許多支持工具。這就是哈弗法學院教授 Larry Lessig 【注5】為什么喜歡說“代碼即法律”的原因。

框架為它們所處的互聯網角落建立規則,一旦你選擇它們,就必須生活在規則之下。一些博客平臺鼓勵通過 Ajax 調用與其它博客鏈接。這就是你必須謹慎調查、聰明選擇的原因。這就是框架最終主導我們生活方方面面的原因,甚至包括我們不在編程的那些短暫時光。

  • 注1:交叉編譯器(英語:Cross compiler)是指一個在某個系統平臺下可以產生另一個系統平臺的可執行文件的編譯器。交叉編譯器在目標系統平臺(開發出來的應用程序序所運行的平臺)難以或不容易編譯時非常有用。http://zh.wikipedia.org/wiki/%E4%BA%A4%E5%8F%89%E7%B7%A8%E8%AD%AF%E5%99%A8

  • 注2:位拆裂 (Bit Banging):一種利用微控制器的通用端口仿真串行接口標準(I²C、SPI 等)的技術。

  • 注3:off the grid:不使用水、電、信用卡,不上社交網絡,以避免留下記錄;愿意用自己做的東西而愿使用現成的。http://www.urbandictionary.com/define.php?term=off+the+grid

  • 注 4:視覺化程式設計語言(Visual programming language,以下簡稱 VPL),又稱‘圖形化編程語言’、‘視覺化程式編成語言’。系使用者利用圖形化元素進行程式設計;相異于文字式程式設計。VPL 以視覺表達為基礎,利用‘文法’或是某種‘輔助標記’進行圖形與文字的排列。許多 VPL 建基于‘方塊與箭頭’的概念之上,以方塊或屏幕上的物件為本體,以箭頭相連接,以直線段與弧線段代表相互之間的關系。http://zh.wikipedia.org/wiki/%E8%A6%96%E8%A6%BA%E5%8C%96%E7%A8%8B%E5%BC%8F%E8%A8%AD%E8%A8%88%E8%AA%9E%E8%A8%80

  • 注5:http://en.wikipedia.org/wiki/Lawrence_Lessig#.22Code_is_law.22

 

責任編輯:王雪燕 來源: 51CTO
相關推薦

2010-03-19 09:39:17

Python編程語言

2011-04-28 08:59:20

項目框架

2015-12-22 09:38:39

2014-11-03 09:36:22

2019-12-06 17:40:39

程序員編程語言JavaScript

2024-05-24 14:16:11

2013-03-12 14:07:06

Java編程

2018-02-08 13:53:25

新零售

2020-02-20 20:30:16

編程語言框架

2018-11-26 12:24:52

AI 語言 人工智能

2020-02-05 17:09:28

編程語言代碼Ruby

2015-01-04 13:42:15

編程語言

2018-11-21 09:33:01

2015-03-20 16:40:40

Spark大數據分析大數據

2017-12-29 16:51:44

2011-07-21 14:17:15

Ceylon

2022-08-11 11:43:01

CISO首席信息安全官

2020-12-24 14:47:16

編程語言開發Web

2013-08-26 14:36:25

開發框架響應式

2010-02-12 09:26:28

XP系統更新
點贊
收藏

51CTO技術棧公眾號

欧美激情四色| 26uuu国产电影一区二区| 中文字幕国产亚洲2019| 国产69精品久久app免费版| 成人97人人超碰人人99| 中文字幕久久综合| 久久久国产亚洲精品| 99久热re在线精品996热视频| 欧美三级自拍| 久久久爽爽爽美女图片| 久久在线观看| 欧美成人四级hd版| 亚洲狼人在线| 欧美另类第一页| 99亚洲男女激情在线观看| 日韩亚洲一区二区| 亚洲男男av| 欧美国产日本高清在线| 国产精品毛片av| 91成人福利在线| 亚洲影院天堂中文av色| 日本人成精品视频在线| 精品视频97| 18成人免费观看网站下载| 国产精品a级| 国产在线资源一区| 老司机一区二区三区| 视频一区二区在线观看| 精品伊人久久久久7777人| www国产无套内射com| 粉嫩av一区二区三区在线播放 | 五月天国产在线| 日韩国产精品亚洲а∨天堂免| www成人免费观看| 少妇精69xxtheporn| 欧美午夜网站| 国产成人涩涩涩视频在线观看| 香蕉精品视频在线观看| 久久福利电影| 国产麻豆成人精品| 污版视频在线观看| 欧美日韩国产激情| 黄色污污视频在线观看| 久久久精品网站| 老牛精品亚洲成av人片| 成人免费淫片视频软件| 日韩福利视频导航| 欧美电影免费网站| 水蜜桃色314在线观看| 理论电影国产精品| 免费cad大片在线观看| 久久一二三国产| 国产三级免费观看| 激情久久av一区av二区av三区| av在线中文| 亚洲第一视频网| va天堂va亚洲va影视| 欧洲精品在线视频| 激情国产一区| 精品人妻大屁股白浆无码| 国产精品丝袜在线| 欧美成人免费| 国产视频精品久久久| 97se亚洲| 九9re精品视频在线观看re6| 懂色av一区二区三区免费观看 | 激情亚洲影院在线观看| 国语自产精品视频在线看| 91av精品| 久草免费福利在线| 亚洲成人www| 日韩精品美女| 国产福利精品视频| 狠狠狠色丁香婷婷综合激情| 成人影院一区二区三区| 精品91自产拍在线观看一区| 日韩激情啪啪| 天天爽天天狠久久久| 成人免费在线视频| 菠萝蜜视频在线观看www入口| 欧美日韩国产成人高清视频| 亚洲免费黄色| 亚洲国产精品三区| 欧美v亚洲v综合ⅴ国产v| 一呦二呦三呦国产精品| 久久久国产精华液999999| 午夜不卡av在线| 日韩一区二区三免费高清在线观看| 成人精品视频久久久久| 99re8在线精品视频免费播放| 精品亚洲综合| 欧美激情女人20p| 免费一级片91| 欧美孕妇孕交| 欧美麻豆久久久久久中文| 久久国产精品亚洲77777| 久久综合色播| 深夜精品寂寞黄网站在线观看| 激情五月***国产精品| 成人短剧在线观看| 在线观看国产成人av片| 久久国产精品毛片| 亚洲成人男人天堂| 欧美夫妻性视频| 国产成人一区在线| 黄色成人影院| 亚洲aaaaaa| 亚洲美女一区二区三区| 全球最大av网站久久| 免费在线观看一区二区| 精品欧美aⅴ在线网站| 国产伦乱精品| 热99这里只有精品| 亚洲天堂开心观看| 六月丁香综合在线视频| 精品自拍一区| 国产综合第一页| 色综合久久九月婷婷色综合| 欧美韩一区二区| a在线视频观看| 亚洲天堂第二页| 久久99国产精品成人| 尤物在线网址| 欧美极品色图| 欧美精品久久一区| 性欧美长视频| 亚洲欧美国产精品久久久久久久 | www.日本视频| 蜜臀久久99精品久久久无需会员| 精品中文字幕一区二区小辣椒| 黄色视屏网站在线免费观看| 国产精品露脸av在线| 亚洲女爱视频在线| 免费毛片在线不卡| 精产国产伦理一二三区| 97国产在线视频| 国产精品电影一区二区| 欧美福利在线播放网址导航| 国产免费黄视频在线观看| 91极品女神在线| 亚洲嫩草精品久久| 区一区二视频| 宅男视频免费在线观看视频| 成人久久精品视频| 欧美优质美女网站| 亚洲看片免费| 羞羞电影在线观看www| 亚洲一区二区自拍偷拍| 亚洲视频在线观看视频| aaa国产一区| 美女av一区| 在线国产小视频| 久久96国产精品久久99软件| 日韩欧美不卡在线观看视频| 精品一二三四区| 国产91在线播放精品| 91蝌蚪视频在线观看| 欧美中在线观看| 婷婷中文字幕一区三区| 国产亚洲亚洲| 深夜在线视频| 亚欧在线免费观看| 国产欧美久久一区二区| 欧美日韩精品专区| 久久精品国产成人一区二区三区| 国产精欧美一区二区三区蓝颜男同| 三上悠亚久久精品| 欧美最近摘花xxxx摘花| 欧美专区亚洲专区| 国产麻豆精品久久一二三| www国产精品| 香蕉影院在线| 在线视频不卡一区二区| 久久久综合免费视频| 欧美午夜精品久久久久久人妖| 奇米一区二区三区| 亚洲一区二区免费在线观看| 午夜亚洲成人| 欧美精品一区二区性色a+v| 高清欧美性猛交xxxx| 欧美无乱码久久久免费午夜一区| 麻豆精品视频在线| 国产精品片aa在线观看| 美女网站视频在线| 99re99| 久久狠狠久久综合桃花| 欧美成人在线影院| 欧美日韩中文精品| 91亚洲精品久久久蜜桃| 黄页网站一区| 黄页免费欧美| 天天综合视频在线观看| 孩娇小videos精品| 蜜桃av色综合| 国模视频一区二区三区| 亚洲国内高清视频| 偷拍与自拍一区| 337p粉嫩大胆色噜噜噜噜亚洲| 欧美一区免费| 影音先锋欧美激情|