簡介
哈囉,歡迎。希望你一切都好。 希望你在 Jurasic July 期間玩得開心,也盡情探索了幾門歷史悠久、深具影響力的語言。 現在來到 2023 年的第 8 個月,也是我們第 7 個主題月:Appy August。
所謂的應用程式,指的是什麼呢?
嗯,它可以指很多東西:
- 網頁應用程式,現在我們很多人每天工作都少不了它
- 原生應用程式,例如直接在手機或平板上執行的那些
- 桌面應用程式,直接在你的 Windows、Mac 或 Linux 作業系統上執行
- 特定領域的應用程式
- 商業應用程式
- 還有更多!
那有哪些語言呢?
我們要看的語言多達 14 種:ABAP、CoffeeScript、Dart、Delphi、Elm、Java、JavaScript、Kotlin、Objective-C、PHP、PureScript、ReasonML、Swift 和 TypeScript。
徽章
在這個月,用上述其中一種語言完成 5 個練習,就能獲得這枚徽章。 至於整年度的徽章,你需要完成:
- 變位詞:給定一個單字和幾個可能的候選字,找出它的變位詞
- 電話號碼:清理一個電話號碼
- 三角形:分類一個三角形
- RNA 轉錄:把一段 DNA 序列轉換成它的 RNA 互補序列
- Scrabble 分數:給定一個單字,算出它的 Scrabble 分數
概觀
ABAP
- 由 SAP SE 在 1980 年代開發,只要看看這個縮寫代表什麼,就能明白它的設計目標:Allgemeiner Berichts-Aufbereitungs-Prozessor,這是德文,意思是「一般報表處理器」。後來 ABAP 變得更為通用,縮寫也更新為 Advanced Business Application Programming,以反映這一點
- 強型別且靜態型別的語言
- 多範式:支援指令式和物件導向程式設計
- 編譯成位元組碼。有趣的是,原始碼是存放在資料庫裡的
- 所有程式碼都在 SAP 系統的環境中執行,而 SAP 系統由一個關聯式資料庫和一個或多個應用程式伺服器組成
- 專有技術且封閉原始碼,不過我們其中一位維護者打造了一個很棒的開源重新實作
- 用於商業應用程式,例如財務、物料管理、會計與管理。客戶遍及世界各地,包括 Apple、Amazon 和 Walmart 等許多知名企業
為什麼它很棒
- 持續演進,新功能定期加入
- 可靠:功能穩定,背後有數十年的經驗
- 龐大的標準函式庫
亮眼特色
- 與 SAP 系統和資料庫無縫整合,也能與許多其他系統整合
- ABAP 字典包含 SAP 系統中所有資料的中繼資料,其中包括資料表、檢視表和結構。這個字典裡的型別可以用來為變數加上靜態型別,即使該型別是一張資料表也一樣
- ABAP Workbench 是 ABAP 系統的一部分,內含一整套編輯程式的工具,也包括設計畫面
CoffeeScript
- 這門語言在 2009 年由 Jeremy Ashkenas 提交了第一批 commit,第一則 commit 訊息寫著「神秘語言的初次提交」。
- 動態型別且多範式(物件導向、指令式、函式式、原型式)
- 編譯成 JavaScript(這種過程稱為_轉譯_)。CoffeeScript 的黃金法則是:「它就只是 JavaScript。」是最早成功「轉譯成 JS」的語言之一
- 之所以流行,是因為 CoffeeScript 避開了一些當時寫 JS 的人所苦惱的問題(例如「
this綁定」的行為不同,或是不支援類別)。從 3.1 版起被納入 Ruby on Rails。 - 2017 年,這門語言發布了 2.0 版,目標是讓它跟上最新的 JavaScript 標準。這門語言大約每年更新一次。
- 這門語言的編譯器最初用 Ruby 撰寫,但在 2010 年被一個用 CoffeeScript 寫成的自舉編譯器取代(這個編譯器不依賴 NodeJS,可以直接在瀏覽器中執行)
- CoffeeScript 很有影響力,它啟發了 JavaScript 採用某些功能(lambda 箭頭語法、類別)
- 曾被 Dropbox 和 Rails 使用
為什麼它很棒
- 語法乾淨、簡潔,靈感來自 Python、Ruby 和 Haskell。比 JavaScript 更精簡,去掉了許多小括號和大括號,部分原因是採用了有意義的縮排(空白字元很重要)
- 語意簡化,例如不會因為 let、var、const 而感到困惑,因為它們並不存在;== 會被轉譯成 ===(嚴格相等),而函式綁定則能避免常見的「
this」錯誤 - 以運算式為基礎,意思是你可以把一個 if 運算式的結果指定給變數
- 大量語法糖,例如用 @ 取代 this、可以用 yes/on 取代 true、用 // 做整數除法、用 @ 取代 this,還有更多
亮眼特色
- 編譯成乾淨、人類可讀的 JavaScript,原始碼與產生的程式碼之間有一對一的對應關係。
- 與 JavaScript 的互通性極佳:你可以輕鬆地從 CoffeeScript 使用以 JS 寫成的程式碼(反之亦然)。任何寫好的 JS 函式庫都能用
- 加入 JavaScript 目前或過去缺少的功能:陣列推導、字串內插、存在運算子(?)、鏈式比較
- 語言本身很小,編譯器大約 500 KB(壓縮後 100 KB)
Dart
- 由 Google 的 Lars Bak 和 Kasper Lund 設計
- 2011 年首次發布
- 目標是打造一門快速、高生產力的語言,特別適合用來打造使用者介面
- 靜態型別
- 多範式:以物件導向為主,也支援函式式和指令式
- 可以直譯,也可以即時編譯
- 主要用來打造應用程式,但也能用來打造後端
為什麼它很棒
- 語法熟悉,容易學習
- 現代化的型別系統:型別推論、模式比對、async/await
- 出色的文件
- 透過完善的空值安全系統帶來安全性:不再有空指標例外
- 工具完善,支援多種 IDE。針對短回饋循環最佳化,例如透過快速的熱重載
- 生態系持續成長,有許多可用的函式庫
亮眼特色
- 可以編譯成 JS、原生碼,也能編譯成 Swift 和 Kotlin,對行動應用程式來說很棒。
- Flutter 函式庫可以用來快速打造行動、網頁、桌面或嵌入式應用程式。寫一次,就能在不同平台上執行
- 出色的並行支援,包括 async/await、isolate(輕量級的並行執行單位)、future 等等
Delphi
- Delphi 由 Borland 開發,於 1995 年發布。
- 它是一門 Object Pascal 程式語言,由 Anders Hejlsberg 開發,他也是 C# 的主要架構師之一
- 強型別且靜態型別
- 編譯成原生碼
- 多範式:以物件導向為主,也支援指令式、宣告式和事件驅動
- 用於商業應用程式、圖形介面和學校(用來教程式設計)
為什麼它很棒
- 容易學習。Object Pascal 結合了 Pascal 的簡單與清晰,以及物件導向程式設計的特性,讓程式碼更容易撰寫和維護
- 整合開發環境(IDE):Delphi IDE 提供友善且功能豐富的環境,能簡化開發流程。它提供程式碼導覽、除錯工具、程式碼自動完成,以及其他能提升開發效率的生產力功能。
- 穩定性:自 1990 年代初問世以來,一直是可靠且穩定的開發工具與語言,並有很強的回溯相容性。用較早版本 Delphi 寫成的程式碼,只要做極少的調整,仍然可以在較新的版本中編譯和執行。
- 跨平台支援:Delphi 已將能力拓展到 Windows 之外,提供跨平台開發支援,讓開發者能針對 macOS、iOS、Android 等多種作業系統。這讓應用程式能觸及更廣大的使用者,也擴大了專案的影響範圍。
- 強大的社群與支援:Delphi 有一個專注而活躍的開發者社群,持續為生態系貢獻函式庫、工具和資源。
亮眼特色
- 高效能的執行檔:Delphi 應用程式以速度和效能著稱。Delphi 編譯器會產生高度最佳化的原生執行檔,這對某些類型的應用程式來說至關重要,例如需要即時處理或大量運算工作的程式。
- 快速應用程式開發(RAD)環境:視覺化的拖放設計工具讓開發者能用最少的力氣建立使用者介面並連接功能,加快開發流程。
- 元件式架構:採用元件式架構,先打造可重複使用的元件,再用來建構應用程式。這讓程式碼更容易重複使用,也縮短了開發時間。
- 事件處理:Delphi 採用內建的事件模型,讓開發者能輕鬆回應使用者操作和其他事件。事件處理簡化了擷取使用者輸入或系統事件並做出適當回應的流程。
- 資料庫連結:Delphi 提供原生的資料庫存取元件,能與各種資料庫系統無縫整合。這項內建支援簡化了資料庫驅動應用程式的開發。
Elm
- 這門語言由 Evan Czaplicki 為了他的畢業論文而創造,並於 2012 年發布
- 最初處理的是圖形介面的函式反應式程式設計(FRP,使用 signal 的 FRP),但在 2017 年,FRP 被捨棄,改採用 TEA(The Elm Architecture)
- 靜態且強型別的函式語言
- 語法靈感來自 Haskell
- 開源語言,但非常有主見,其開發風格是 Evan 會先長時間深入工作,之後才公開成果。所以 PR 可能很久都不會被合併,專案看起來也可能停滯不前,但這只是 Evan 的工作風格。
- 用於網站,例如 NoRedInk、Vendr、Rakuten、Brilliant
為什麼它很棒
- 這是一門非常小的語言,是 ML 系靜態型別函式語言中最容易學習的之一。這幾乎讓它成為教授函式式程式設計的絕佳選擇。
- 編譯器錯誤訊息是你找得到最親切、最有幫助的。
- 穩定的語言:最近一次發布是 2019 年
- 生態系中的套件不多,但品質很高。
- 強大的 lint 生態系,有 elm-review(也是 Exercism Elm 賽道分析器的基礎)。
亮眼特色
- The Elm Architecture(TEA)是所有 Elm 應用程式的基礎,因此要檢視陌生的 Elm 應用程式非常容易。
- 沒有執行階段例外!只有極少數的例外情況。
- 更新相依套件時不會造成破壞,語意化版本由編譯器強制執行。
- 只要能編譯,它就能運作(邏輯錯誤除外)。而且一旦你習慣了,就很難再回去用其他語言。
- Matthew Griffith 的「elm-ui」讓「能編譯就能運作」也適用於樣式和版面,你不需要 CSS。
- 全端網頁應用程式:Lamdera 是衍生的專案,用 Elm 打造全端網頁應用程式,前端與後端之間完全不需要額外的黏合程式碼。
Java
- 由 Sun Microsystems 的 James Gosling 開發,於 1995 年發布。
- 最初的五個目標:
- 簡單、物件導向且熟悉。
- 強健且安全。
- 架構中立且可攜。
- 高效能。
- 直譯、多執行緒且動態。
- 強型別且靜態型別
- 編譯成位元組碼(原生碼的部分正在開發中)
- 多範式:指令式、物件導向和函式式
- 這門語言和虛擬機器都有官方規格,因此也有多種實作(例如 OpenJDK JVM 和 Oracle 的 Hotspot VM)
- 用於大量軟體,從網站到嵌入式系統,從應用程式到資料庫都有
為什麼它很棒
- (幾乎)到處都能執行(Java 更新程式會很樂意提醒你 ;))
- 通用:幾乎可以用於任何工作負載,包括應用程式、網站和嵌入式系統
- 能與其他 JVM 語言互通,例如 Kotlin、Groovy、Scala 和 Clojure
- 工具完善,無論是 IDE 還是建置系統等其他工具
亮眼特色
- JVM 是成熟、穩定且效能極高的虛擬機器,而且持續在改進
- 龐大的生態系,有數量驚人的可用函式庫。這些函式庫和 Java 一樣成熟、穩定且功能完整
- 持續演進:語言和執行階段仍在演進,語言會定期更新,讓它更現代化,並解決人們的抱怨(例如減少樣板程式碼和冗長程度)。在執行階段方面,也經常啟動新專案來進一步演進(例如為輕量級並行結構而生的 Project Loom,以及透過 GraalVM 進行原生編譯)
JavaScript
- Brendan Eich 在 1995 年被 Netscape 聘用,要為網頁提供一門讓頁面動態化的語言。第一個原型據說只花了 10 天就完成,相當出名
- 1997 年標準化為 ECMAScript
- 動態且弱型別
- 以前只能直譯,但現在通常是即時編譯
- 多範式:原型式(相當少見),也支援物件導向、指令式和函式式
- 對今日網路的成功有極大的影響。例如 AJAX 對增添互動性很有幫助。它是網頁開發的實質標準,因為它是唯一內建於瀏覽器支援的程式語言
- 大概是當今最多人使用的語言
- 用於後端、前端、指令稿和命令列工具
為什麼它很棒
- 通用:能用於許多工作負載:後端、前端、指令稿、命令列工具。許多網頁用的工具都是用 JavaScript 寫的(並在 nodejs 上執行)
- 執行階段(如 V8)經過大量最佳化,效能可以非常好,即使這門語言高度動態也一樣
- 語言相對小巧,因此相對容易學習。能在瀏覽器中執行更是它的一大優點,因為你可以在學習時獲得視覺化的回饋
- 規格更新頻繁,會引入像是 async/await、字串內插等新功能。工具方面也有很多創新,像是 deno、esbuild 和 bun.js 等較新的工具,都是為了協助處理 JavaScript 程式碼庫而開發的
- JSON 支援一流,從 JSON 代表 JavaScript Object Notation 這點就能看出來
- 設計上適合事件驅動、非阻斷的程式碼
亮眼特色
- 龐大的生態系。有數量驚人的函式庫可用(2022 年 9 月有 210 萬個套件),而且還有許多其他以 JavaScript 為目標的語言
- 能在大多數平台和硬體上執行,從 Windows 到 Apple,從 Raspberry Pi 到手機,從網頁伺服器到無伺服器平台。網頁瀏覽器內建原生支援,所以不需要安裝執行階段。
- 非常適合網頁開發,有許多框架可選(React、Vue、Angular),也有大量協助打造網頁應用程式的工具(例如 eslint、parcel)
- 可以同構地使用,意思是同一門語言(和同一份程式碼庫)能同時用於後端和前端。這讓維護更容易,也讓前端與後端之間能重複使用程式碼
- 極高的人氣意味著:有大量可以學習的資源(影片、部落格、課程),以及龐大的社群可以互動
Kotlin
- 由 JetBrains 於 2010 年開發,這家公司以自家的 IDE 聞名(例如 IntelliJ、CLion、GoLand 和 Rider)
- JetBrains 大部分的產品都是用 Java 寫的,但他們想要一門能減少樣板程式碼、加快開發速度,並支援一些他們缺少的功能的 JVM 語言。Scala 有這些功能,但他們發現編譯起來太慢。於是 Kotlin 專案就此展開。
- 強型別且靜態型別
- 多範式:指令式、物件導向、函式式、宣告式
- 預設編譯成 JVM 位元組碼,但也能編譯成 JS 和原生碼(對於無法或不適合使用虛擬機器的平台很有用,例如 iOS 裝置)
- 2019 年被 Google 標示為撰寫 Android 應用程式的首選語言
- 用於打造網站、應用程式(多為 Android),甚至整個 IDE(就是前面提到的那些 IDE)
為什麼它很棒
- 通用:幾乎能用於任何工作負載,包括應用程式和網站。Google 在 2019 年認定 Kotlin 是開發 Android 應用程式的首選語言
- 由於執行在 JVM 上,它的所有優點都適用:成熟、效能極高的虛擬機器,以及數量龐大的可用函式庫
- 減輕了人們對 Java 可能有的許多不滿,例如受檢例外、空值安全和冗長
- 現代化的語言:進階型別推論、以運算式為基礎、不可變性、模式比對、協程、通道
- 出色的工具(當 IDE 本身就是用這門語言寫的,這也不意外 :))
亮眼特色
- 高生產力:Kotlin 採納其他語言最優秀的部分,把它們揉合成一門一致、高生產力的語言,有時甚至進一步改良原始設計(例如區域擴充方法)
- 協程:在許多語言中,async/await 是內建於語言的,但在 Kotlin 裡,它是用這門語言的協程特性,以函式庫的形式實作。協程是處理暫停函式的方式,為非同步操作提供了比 future 和 promise 更安全、更不易出錯的抽象。
- 出色的並行能力:async/await、通道、不可變性都有助於達成優異的並行效果
- Compose Multiplatform 讓你能用宣告式語法,從同一份程式碼庫打造共用的使用者介面
Objective-C
- 最初由 Brad Cox 和 Tom Love 在 1980 年代初期開發,後來被 NeXT 選為其 NeXTSTEP 作業系統的語言。由於 Apple 的 macOS 直接承襲自 NeXTSTEP,它便成為 Apple 軟體的語言首選
- 設計上結合了 SmallTalk 的物件導向概念與 C,並以訊息傳遞作為核心的物件導向結構
- 是 C 的超集,所以任何 C 程式碼都是合法的 Objective-C 程式碼,兩者也能在同一份程式碼庫中混用
- 靜態與動態型別
- 編譯式
- 在 2014 年 Swift 出現之前,是撰寫 macOS 和 iOS 應用程式的標準語言
- 用於 macOS 和 iOS 應用程式
為什麼它很棒
- C 結合物件導向特性,可以非常強大
- 輕薄的執行階段,資源效率高
- 輕量的類別語法
- 快速列舉讓
for迴圈比 C 更容易寫 - 強大的回溯相容性
亮眼特色
- 支援自動引用計數(ARC),當物件不再被引用時會自動釋放記憶體,讓記憶體管理更容易
- 動態執行階段支援方法交換(動態改變 selector 的行為,類似 monkey patching)、反射和訊息轉送(很適合觀察者或代理模式)
- 協定和介面把介面功能帶進 C,category 介面甚至能讓你擴充既有的型別
PHP
- 由 Rasmus Lerdorf 在 1993 年開發並實作,1995 年首次發布
- 名稱是遞迴縮寫 PHP:Hypertext Preprocessor
- 動態且弱型別,也可以選擇逐步加入執行階段的強型別斷言
- 多範式:指令式、函式式、物件導向、程序式、反射式
- 直譯或即時編譯
- 最早的伺服器端渲染平台
- 用於網站(Facebook、Wikipedia 等不勝枚舉),也用於許多內容管理系統(Wordpress、JOOMLA)。
為什麼它很棒
- 它無所不在:77.4% 的網站都在使用 PHP^1,與特定平台無關
- 語法簡單,與其他成熟程式語言(java、javascript、c)相似,因此容易學習
- 通用。用途廣泛,從建立小型網頁指令稿,到建立企業運行的大型伺服器端應用程式都行。
- 非常成熟且廣受採用。有許多學習資源、框架和函式庫。
- 強大的資料庫支援
- 仍在積極開發,持續推出現代化功能
- 跨平台。什麼都能跑:Windows、Mac、Linux、Unix
- 開源且免費
亮眼特色
- 執行和部署都很簡單。沒有建置流程。不需要編譯器。
- 漸進式型別系統。在需要的地方加入型別,用動態型別簡化部分開發工作。
- 快速原型開發。建立一個網頁來測試你的想法,並在自己的機器上執行。
PureScript
- 由 Phil Freeman 設計,2013 年發布第一版
- 他開始著手 PureScript,是因為他不滿意其他把 Haskell 轉譯成 JavaScript 的嘗試
- 強型別且靜態型別
- 編譯成 JS
- 純函式語言
- 語法和功能靈感來自 Haskell
- 用於打造網頁應用程式,但也能透過 Electron 打造伺服器端應用程式或桌面應用程式
為什麼它很棒
- 共享了許多讓 Haskell 出色的特點:
- 強大有力的型別系統:代數資料型別、型別類別、高階種類型別
- 具表達力:模式比對、型別推論
- 安全:沒有 null、不可變型別
- 純函式:副作用被編碼進型別系統中
- 輕鬆且型別安全地把 JSON 解碼/編碼成型別
- 編譯成人類可讀的 JavaScript
- 工具完善
亮眼特色
- 函式式的核心非常適合打造沒有執行階段錯誤的型別安全網頁應用程式
- 出色的 JS 互通性
- 編譯成高效的 JS
ReasonML
- 由 Facebook 的 Jordan Walke 創造,2016 年發布第一版
- 以 OCaml 為基礎,但移除了它的怪癖,並針對 JS 互通性而設計
- 靜態型別的函式語言
- 編譯式
- 用於打造網站(例如 Facebook 內部)
為什麼它很棒
- OCaml 的所有優點,但在網頁環境中:
- 強大的型別系統:所有值都使用較簡單的型別(例如 record、variant 和 option)來標註型別,偏好簡單型別勝過複雜型別。不再有 undefined 錯誤,提升了可靠性
- 具表達力:模式比對、型別推論、解構
- 安全:沒有 null、預設不可變
- 編譯成人類可讀的 JavaScript
- 可以編譯成 OCaml(反之亦然),意味著它能使用整個 OCaml 生態系(例如編譯成原生執行檔)
亮眼特色
- ReasonML 的編譯速度超級快,意味著快速的疊代週期。
- 出色的 JS 互通性,無論是從 ReasonML 程式碼使用 JS,還是把 ReasonML 匯出成 JS。它甚至能產生 TS 型別。也能與 C 互通。甚至支援類似 JSX 的語法
Swift
- Swift 的開發由 Chris Lattner 於 2010 年展開,並在 2014 年的 WWDC 活動上向全世界發表。
- 目標是用一門嶄新、現代化的語言,取代 Apple 自 1980 年代初以來就沒有重大改變的舊程式語言 Objective-C。設計上能與大部分的 Objective-C 互通。
- 強型別且靜態型別
- 編譯式,使用 LLVM 處理到機器碼的編譯(例如 Rust 也是這樣)
- 多範式:函式式、物件導向、指令式、宣告式
- 最初是專有軟體,但在 2015 年開源
- 主要用於行動和桌面應用程式,但也用於後端和無伺服器情境
為什麼它很棒
- 現代化的語言:型別推論、模式比對、代數資料型別、Unicode 字串
- 高生產力:Swift 採納其他語言最優秀的部分(例如 Rust、Python、C# 和 Ruby),把它們揉合成一門一致、高生產力的語言
- 安全:不直接暴露指標、用 optional 型別防止空指標例外、明確的錯誤處理,以及透過 ARC(自動引用計數)自動管理記憶體
- 定期更新。早期 Apple 不怕針對那些被證明行不通的地方做出破壞性變更。這能避免「包袱」不斷累積。通常也會提供工具協助遷移程式碼。從 Swift 5 起,應用程式二進位介面(ABI)已經穩定
- 與 Objective-C 不同,Swift 能在所有主要平台上執行:macOS、Windows 和 Linux
亮眼特色
- 快速。編譯成高效的機器碼,因此執行得快
- 與 Objective-C 無縫互通,也能與 C 和 C++ 良好互通
- 社群龐大,有許多優秀資源可用
TypeScript
- 在 Microsoft 誕生,起因是用 JS 開發大型應用程式時令人挫折。設計者之一是 Anders Hejlsberg,他是 C# 的主要架構師,也是 Delphi 和 Turbo Pascal 的創造者
- 第一版於 2012 年發布
- 多範式:函式式、原型式、指令式、物件導向和泛型
- 採用漸進式型別和鴨子型別
- 編譯式(編譯成 JS)
- 用於網站,包括前端和後端、指令稿和命令列工具
為什麼它很棒
- 強大且靈活的型別系統:聯合型別、字面值型別、tuple。基本上,任何能用於 JS 程式碼的模式,都能在 TS 中以型別安全的方式描述。這個型別系統強大到甚至具有圖靈完備性
- 由於是 JS 的超集,因此可以在 JS 程式碼庫中逐步導入
- 結合兩者的優點:動態型別與靜態型別
- 人氣快速成長,許多工具不是提供 TypeScript 型別,就是被轉換成 TypeScript。也有許多資源可用
- 語言定期更新,會提早採用即將到來的 ECMAScript 功能
亮眼特色
- 提升安全性與正確性:靜態型別能消除許多寫 JS 時常犯的錯誤類型
- 與 JS 無縫互通。可以加入自訂型別定義,以型別安全的方式搭配 JS 程式碼。大量的套件都有現成的自訂型別定義可用
- 工具/IDE 支援出色。型別標註、程式碼自動完成,甚至安全的大規模重構,在許多 IDE 中都能使用
- 享有在 JS 生態系中執行的所有好處:數量龐大的套件、豐富的工具、龐大的社群等等
該試哪一個?
- 如果你想打造原生應用程式,Dart、Delphi、Java、Kotlin 和 Swift 都是很好的選擇。話雖如此,其他任何能編譯成 JS 的語言,也都能用來打造原生應用程式。值得一提的是,打造 iOS/macOS 應用程式的官方語言是 Swift,而 Android 應用程式則是 Kotlin
- 如果你想打造網頁應用程式,CoffeeScript、Dart、Elm、Java、JavaScript、Kotlin、PHP、PureScript、ReasonML 和 TypeScript 都很棒
- 如果你對函式式程式設計感興趣,Elm、PureScript 和 ReasonML 是自然的選擇,而 CoffeeScript、Dart、Java、JavaScript、Kotlin、Swift 和 TypeScript 也支援函式式程式設計
- 就物件導向程式設計而言,ABAP、Dart、Delphi、Java、Kotlin、Objective-C、PHP 和 Swift 是合理的選擇,而 CoffeeScript、JavaScript 和 TypeScript 也支援這個範式
- 如果你對撰寫商業應用程式感興趣,ABAP 和 Delphi 再適合不過了
2023年08月01日
·
覺得有幫助嗎?
發佈者
Erik Schierboom