程式語言領域的專家和市場的對決?
為什麼每個人都討厭GO語言?一文明顯地暴露了這種衝突,Go語言受到市場的歡迎,但是專家們卻認為它拋棄了40年的程式語言研究成果。
更有甚者,拋棄這種手工程式碼編寫,兩位開發者一週內沒有寫一行程式碼開發出一個應用,他們使用圖形化虛擬開發工具,如同當初Delphi一樣能夠快速拖曳開發出一個應用,他們認為這會讓開發者更加關注業務需求。
抑或現在程式語言的複雜得以至於讓人們失去了方向,魔鬼是在細節中,因為魔鬼會讓人過於沉湎於細節,以至於沒有精力搞清楚我們使用這些工具到底是為了做什麼?
物件導向分析的概念模型和實現細節的不匹配一文提出了當前語言並不能很好實現針對需求分析的概念模型。
文中列出了八大不匹配,其中提出分析領域的“類”的概念和程式語言如Java的“類”其實是不同的,概念模型中的物件不只是可以屬於一個類,也可以遷移到屬於其他類。而在Java等語言中,一個物件是類的一個例項,這個例項一旦生成就不能更改為其他類,針對這種情況有兩種解決辦法,首先是使用繼承,讓一個類事先繼承很多種類,然後這個類生產例項時,確保有很大的記憶體這個物件例項能夠將其繼承的所有類欄位都載入到記憶體,很顯然這個辦法比較笨重,實踐中很少使用,還有一種辦法是::語言能提供物件屬性的動態獲取和刪除,在這個模式中,所有物件實現將是動態的資料結構,我們透過對資料結構的成員的動態組合實現一個物件是任何幾個類的成員這一目標。Scala等語言的trait和Go語言是徹底的面向組合的併發語言也許是這一目標的兩種嘗試。
該文還將實現內部併發和分散式通訊的活動物件也是概念模型的一個要求,而與之對應的Java等語言中,物件都是被動的,所謂被動也就是物件自己沒有行為(貧血模型),都是作為資料DTO被動地被服務等傳來傳去,而分析領域的概念模型要求物件是一種可以自行活動的物件,可以有自己內部併發機制。這方面Scala的Actor模型和Go語言的CSP模型應該都是一種探索。
該文指出,軟體開發的未來是分散式、併發、持久、活動物件系統。這其實對程式語言的未來指出一個方向,也許等到那天,業務和程式語言能夠和諧統一在一起,人們不再會為業務快速變化與程式語言不斷複雜變化而頭疼。
相關文章
- 各種不同領域的程式語言一覽表
- 領域本體與DDD的UL語言
- python語言的應用場景有哪些?六大領域!Python
- 領域特定語言筆記筆記
- 開發者需要了解的領域特定語言(DSL)
- 幽默:儘量用領域語言編寫程式碼
- 2011年IT領域最大的贏家和輸家
- 對女性友好的程式語言
- PHP領域的術語對照(英中繁簡)PHP
- 領域知識增強的預訓練語言模型在藥電商搜尋領域的實踐模型
- 開源領袖Eric Raymond對主流程式語言的評價
- 基於函數語言程式設計的領域驅動設計 - Scott Wlaschin函數程式設計
- Kotlin 程式語言詳解:特點、應用領域及語法教程Kotlin
- 軟體開發領域的10場有意思的對抗
- 對話專家:Go是DevOps時代最好的程式語言Godev
- 對學習程式語言的的小感想
- 使用函式式語言來建立領域模型函式模型
- 2014年各種程式語言的薪資和市場需求
- 什麼是DDD領域驅動設計的統一語言?
- 不安分的 Go 語言開始入侵 Web 前端領域了GoWeb前端
- 聊一聊對領域驅動設計中“領域”這個詞語的理解與分析方法
- 探索專有領域的端到端ASR解決之道
- 資料領域最強程式語言Python和R要合作了!Python
- NLP領域的ImageNet時代:詞嵌入已死,語言模型當立模型
- 劉思喆:R 語言在電子商務領域的應用
- C語言應用領域及前景怎麼樣?C語言
- 千“垂”百鍊:垂直領域與語言模型(1)模型
- Python vs PHP vs Ruby — 程式語言大對決PythonPHP
- 如何設計一門語言(十)——正規表示式與領域特定語言(DSL)
- 各個程式語言及其應用領域
- 如何從業務程式碼中提升技術:使用領域特定語言消除重複程式碼
- Strategy Analytics:美國智慧手機換機市場的贏家和輸家
- 語言對比的地方
- 最‘乾淨’的程式語言——空白程式語言
- Nancy Macintyre:談移動領域教育類遊戲市場動向NaNMac遊戲
- 我對函數語言程式設計的理解函數程式設計
- 對函數語言程式設計的誤解函數程式設計
- 滲透測試領域常用的專業術語,你知道多少個?