python和kotlin(python什麼樣)

本文目錄一覽:

編程語言排行榜

01、Python

無論是安卓或iOS應用開發,還是構建桌面應用,企業如今會僱用專門使用Python的開發人員。這也是意料之中的,因為Python有許多優勢,而且它是一種頂級的通用語言。

Python最大的優勢在於它相對容易學習,而且還加快了開發時間,這也是為什麼企業機構如此喜歡Python的原因。同時對於作為開發人員來說,Python還具有開源的優勢,並且在線社區非常活躍,這意味着你可以隨時得到指導和支持。

正由於Python如此流行,該領域並不缺乏人才,但這並不意味着你不應該學習這種全堆棧語言。這裡要注意一下,Python可能比Kotlin等其他語言速度慢,而且它不是移動設備的原生語言,可能會導致應用程序內存消耗高。

02、Kotlin

學習Kotlin的一大亮點在於,谷歌很喜歡使用該語言。事實上,自2017年以來,Kotlin一直是谷歌的首選軟件開發語言。

谷歌優先考慮基於Kotlin的應用程序的創新特性和功能,開發者只需用這種易於使用的語言編寫代碼,就可以輕鬆地在競爭中保持領先。最重要的是,你可以使用Kotlin作為WordPress編程實踐,構建WP網站或開發android應用程序、服務器等。而且只要是使用Java的地方,你都可以使用Kotlin,因為它與這種流行的語言是互通的。

03、JavaScript

在頂尖的編程語言中,不得不提JavaScript,它已成為桌面軟件、基於web的應用程序甚至手機應用程序的標杆性語言。

你現在可能會想,為了成為一名優秀的的開發者,你需要學習本文中提到的所有語言,事實上你掌握的語言越多,這越有利於你的職業發展。

要知道,如今開發團隊和公司一般都傾向於招募具有多項技能的開發人員,JavaScript能讓你如虎添翼。JavaScript的優勢在於,你幾乎可以用這種語言編寫任何代碼。而且它在電子商務行業中特別流行,用於編寫運輸應用程序以及其他後端以客戶為中心的應用程序。

所有這些都表明,學習JavaScript是一項非常有價值的技能。它的優勢在於速度性、多功能性和可靠性。同時JavaScript流行度很高,由於有巨大的在線社區,這也讓其易於學習。

04、C++

經過多年的發展,C++已經成為一種用於分析和研究目的的編程語言,現在它是遊戲開發的主要語言之一。這是因為C++是世界上最流行的遊戲引擎——虛幻引擎(Unreal Engine)的主要腳本語言。

如果你想在2022年成為遊戲行業一個有競爭力的開發者,不妨學一學C++。該語言對於系統軟件開發,以及將項目管理方法集成到PM應用程序和企業專有軟件中非常有用。同時,C++還支持面向對象編程以及多種其他編程模式,這使C++具有高度的通用性,而且也比其他一些編程語言更容易學習。

在使用C++時,唯一麻煩的是沒有自動垃圾回收器,這意味着你需要手工清除無用數據。內置的friends函數和全局變量可能會帶來一些安全風險,你可以通過管理訪問點來避免這些風險。

05、Golang

Golang最早出現在2009年,但它被認為是一種相當新的語言。近年來,無論是在前端還是後端,Golang都在開發社區掀起了一波浪潮。

Golang是由谷歌推出的,主要目的是將推進函數式編程的發展,它具有許多C語言應有的功能,比如包括垃圾收集器、更好的內存安全性和管理、結構類型等等。

python可以寫軟件么怎麼寫?

22點24分準時推送,第一時間送達

編輯:技術君 | 來源:youerning

上一篇:

正文

前言

用 Python 寫安卓 APP 肯定不是最好的選擇,目前用Java和 kotlin 寫的居多,但是肯定也是一個很偷懶的選擇,而且實在不想學習 Java,再者,就編程而言已經會的就 Python與Golang(註:Python,Golang水平都一般),那麼久Google了一下Python 寫安卓的 APP 的可能性,還真行。

既然要寫個APP,那麼總得要有個想法吧。其實想做兩個APP來着,一個是自己寫着好玩的,一個是關於運維的。關於運維的APP,設計應該如下

可能長這樣

然後設計應該是這樣。

如果覺得可行的話,評論留言一下你覺得應該寫進這個APP的運維常用命令吧^_^,筆者暫時想到的是top,free -m,df –h,uptime,iftop,iotop,如果有什麼好的想法就狠狠的砸過來吧,筆者到時應該也會把這個寫成一個項目放到github上,大家一起用嘛,開源才是王道,哈哈。

開發安卓APP

我們使用kivy開發安卓APP,Kivy是一套專門用於跨平台快速應用開發的開源框架,使用Python和Cython編寫,對於多點觸控有着非常良好的支持,不僅能讓開發者快速完成簡潔的交互原型設計,還支持代碼重用和部署,絕對是一款頗讓人驚艷的NUI框架。

因為跨平台的,所以只寫一遍代碼,就可以同時生成安卓及IOS的APP,很酷吧。

本文會帶大家寫一個Hello world並瞧一瞧 Python 版的2048的代碼

kivy安裝

環境說明:筆者在用的是Python2.7.10

這裡僅介紹windows平台安裝

所有平台參考:

更新pip,setuptools

python -m pip install –upgrade pip wheel setuptools

然後是安裝所需要的依賴

python -m pip install docutils pygmentspypiwin32 kivy.deps.sdl2 kivy.deps.glew \

kivy.deps.gstreamer –extra-index-url

值得注意的是,上面的安卓需要訪問Google,所以請自備梯子,而且kivy.deps.gstreamer這個包比較大(95MB),可以單獨本地安裝,

然後就是安裝kivy了

python -m pip install kivy

至此,安裝就已經完畢了,值得注意的是64位系統沒有開啟虛擬化支持,在導入kivy的時候會報錯,如果是64位系統就設置一下機器的BIOS,開啟虛擬化支持吧。

註:這裡只是kivy的運行環境,這樣我就能直接在windows機器上直接調試了,怎麼將代碼編譯成APK文件我們會在後面講到。

如果kivy在python中應該就能導入了。

按照世界慣例,我們”hello”一下吧。

新建一個.py文件

from kivy.app import Appfrom kivy.uix.button importButton

class TestApp(App):

def build(self):

return Button(text=’Hello,kivy’)

TestApp().run()

運行

然後會彈出一個框,大概如下,點擊”hello,kivy”會變顏色

點擊窗口並按“F1”會這個窗口的一些屬性

然後我們回過頭看一看代碼。

##導入App,然後讓TestApp這個類繼承

from kivy.app import App##導入一個Button,運維有這個button,當你點擊的時候才會有所反應

from kivy.uix.button

importButton

###定義類,名字必須是xxxAppclass TestApp(App):

###build一個Button

def build(self):

###返回一個Button,文字內容是“Hello,kivy”

return Button(text=’Hello,kivy’)

##運行,因為繼承了App,所以才有的run這個方法TestApp().run()

上面就是我們的Hello了

在windows上運行當然沒有什麼太大的意義,怎麼在安卓手機上運行才是我們想要的,

這時我們需要一個編譯環境。

官方說明的環境,如下:

You’ll need:

A linux computer or a virtual machine

Java

Python 2.7 (not 2.6.)

Jinja2 (python module)

Apache ant

Android SDK

雖然官方提供了一個似乎還不錯的虛擬機鏡像,但是還是有很多內容需要翻出去,所以筆者在這裡提供相對而言更加完善的鏡像

下載地址:

注:virtualbox,vmware需自行下載

root密碼:kivy

默認使用賬戶kivy,密碼:kivy123

當然你也可以下載官方鏡像,因為第一次編譯需要去國外下一大堆東西,所以請自行去下載。

Virtual Machine

A Virtual Machine with Android SDK and NDK and all otherpre-requisites pre installed to ease apk generation:

Kivy Buildozer VM

Or select the Torrent

在筆者提供的鏡像里,桌面上有一個dev_and,只要將上面寫的代碼,放入這個文件夾即可(當然也可以在其他目錄,後面會講到)。

在公眾號Python人工智能技術後台回復“面試”,獲取騰訊Python面試題和答案。

cd Desktop/dev_and/

初始化會在當前目錄生成一個buildozer.spec文件 用於配置生成的apk相關信息

buildozer init

###修改buildozer.spec文件

vi buildozer.spec

至少修改下面三項

# (str) Title of your applicationtitle = helloworld

# (str) Package namepackage.name = helloapp

# (str) Package domain (needed for android/ios packaging)package.domain = youer.com

然後注釋

# (str) Application versioning (method 1)#version.regex = __version__ = [‘”](.*)[‘”]#version.filename = %(source.dir)s/main.py

下面這行改為非注釋

version = 1.2.0

最後我們生成我們需要的apk文件

buildozer -v android debug

buildozer.spec更詳細的相關參數配置參考:

buildozer命令會在當前文件夾創建一個bin,該文件夾裡面有我們想要的apk文件

helloapp-1.2.0-debug.apk

helloapp-1.2.0-debug.apk

安裝以後是這樣:

話說在編譯的時候可能出現空間不足的情況,根據虛擬機的不同(vmware或virtualbox)自行擴容吧。

最後我們來瞧瞧簡易版Python開發的2048這個遊戲的源代碼。

代碼:

先看效果圖:

試玩了一下,還是蠻流暢的,有興趣的可以下載玩一下

下載地址:

這個遊戲代碼雖然不長,但是還是蠻占篇幅的,所以簡要的說明一下流程。

主要由三部分組成,一是素材,圖片音頻之類的文件,二是Python代碼,三是kv文件,這個kv文件有點像 html 中的css。

Python代碼的文件名一般命名為 main.py

然後一定有一個叫做 XXXApp 的類,並繼承 App。

比如該類叫做GameApp,那麼該目錄下的kv文件則必須為Game,如上圖所示,如果不是,那麼kv文件中的一些設定就不會生效。

比如設定一個標籤

Label:

id: time

text: ‘xxxx’

font_size: 60

id為time,text文本內容為’xxxx’,然後字體為60

好吧,點到為止吧,不過似乎什麼都沒點到~~~

你還有什麼想要補充的嗎?

你在看嗎?一起成長

python和java,未來那個發展勁頭會更好一些?

我之前也是糾結學那個,後來還是去了黑馬學了Java,因為這個學科比較長盛:使用最多。

開發者最想學從編程語言來看,Java 是最多人使用的語言,而 JavaScript 和 SQL 分別是第二第三位。這三門語言,使用場景都很廣泛,Java 一方面後端開發最常使用,生態成熟度無人可比;另一方面,Java 依然是 Android 上最重要的開發語言,與之相比 ,新興的 Kotlin 只有 2% 的開發者在使用。而 JavaScript 不僅是前端開發的必備語言,還用在 Web 開發、小程序開發等場景下。

Java 和 Python 依然是開發者最希望學習的語言之一,只是相比之下,Python 的熱度有所降低,這可能和機器學習沒有去年那麼火熱有所關聯。

為什麼 Kotlin 是我下一門要使用的語言

為什麼說 Kotlin 是優秀的

本文不會像一般介紹語言的文章那樣,一開頭就羅列出語言那些酷炫的特性,我們稍後再來探討這些內容。

首先我將介紹一些其它的信息,因為2013 年一項研究顯示,當開發者評估一種編程語言時生態系統要比語言特性更重要。這符合我個人的經驗,下面就讓我開始介紹吧:

Kotlin 被編譯成 JVM 字節碼或者 JavaScript 代碼。Java 開發者將會是對它最感興趣的人,不過對於使用垃圾收集運行時語言的開發者而言它也具有一定的吸引力,比如 Scala、Go、Python、Ruby 和 JavaScript 等語言。

Kotlin 來自業界,而不是學術界。它解決了開發者現今面臨的實際問題。例如它的類型系統可以幫助你避免空指針異常。

切換到 Kotlin 無需成本!它是開源的但這不是重點,重點是它提供了一個高質量的一鍵從 Java 轉換到 Kotlin 的工具,並且十分關注 Java 二進制文件的兼容性。你可以將現有 Java 項目的一次性轉換成 Kotlin 項目,而該項目仍將可以正常編譯,即使這是一個包含上百萬行代碼的複雜程序。

顯然你可以從上文得知,Kotlin 程序能夠使用所有現存的 Java 框架和庫,甚至那些依賴註解處理的高級框架。它們之間的交互是無縫的,不需要包裝或者適配層。Kotlin 可以整合 Maven,Gradle 以及其它構建系統。

它十分平易近人,語法精鍊直觀,僅僅是閱讀語言參考文檔幾個小時就能學會使用。Kotlin 看起來十分像 Scala 但是更加簡潔並且兼顧了可讀性。

它不遵循特定的編程哲學,例如極度的函數式編程或者面向對象編程風格。

它不會增加運行時的開銷。Kotlin 的標準庫十分小巧緊湊:專註於擴展 Java 標準庫,編譯階段的大量內聯操作意味像 map/filter/reduce 等管道結構函數將被編譯成類似於命令式語言的代碼。

Anko 與 Kovenant 等框架的出現意味着在 Android 開發者中 Kotlin 開始變得流行起來。如果你正在從事 Android 相關的工作,相信你很快就會獲得好的工作。你可以閱讀這份 Square 公司開發者 JakeWharton 的報告,了解用 Kotlin 進行 Android 開發的體驗。

Kotlin 允許你繼續使用你的工作效率提升工具。IntelliJ 的 IDE 對 Kotlin 的支持十分完善:你可以對代碼進行重構、搜索、導航以及使用自動完成,而且 IDE 充分支持調試、單元測試、性能分析等等功能。

除了 Android,我認為 Kotlin 還非常適用於企業中 Java 的應用場景。如果你的工作是整天埋頭於大公司的代碼庫中,那麼當 Kotlin 1.0 版本正式發布時你應該儘快去了解一下:

由知名公司為它提供強大的商業支持。 JetBrains 這家公司 有一個高度稱職的大團隊致力於該項目,有穩定的商業模式甚至在自己的部分旗艦產品中使用 Kotlin,這表明短期內 Kotlin 不會被放棄。

使用 Kotlin 風險較低:可以由一兩個感興趣的團隊成員在項目中小範圍的試驗 Kotlin,這並不會擾亂你的項目,因為 Kotlin 的類對外提供的 Java API 看起來就與普通的 Java 代碼一樣。

因為 Kotlin 十分注重語法的可讀性,代碼審查不會成為問題,對 Kotlin 不熟悉的團隊成員仍然能夠完成該工作。

Kotlin 基於 Java 6,所以假如你難以在項目中升級使用新版本的 JVM,你可以使用 Kotlin。

今年早些時候我向 Swiss Re 這家瑞士再保險公司的團隊(他們使用 Java 和 .NET)展示了 Kotlin。首先我定義了一個簡單的 Java 類包含一些字段以及 toString、equals、hashCode 等方法,大概有 50 行代碼。然後我將它轉換成 Kotlin 代碼(大部分是自動完成的),結果僅剩 1 行代碼,接着我還演示了其它節省時間的特性。他們看過後對 Kotlin 充滿了熱情並且認為 Kotlin 是它們項目中 C# 語言的一個潛在競爭對手。

我認為 Kotlin 正中企業 Java 開發者的紅心,所以儘管 Kotlin 是免費的,JetBrains 還是能夠通過它增加商業版本 IDE 的銷售來賺大錢。這將激勵他們根據用戶的意願持續改進它。

與此相比,對於那些由不相關產品資助的語言開發者來說,當用戶需求與之前的設計理念衝突時,他們很少會因此作出調整。

特性

Kotlin 作為一門新的編程語言能夠脫穎而出,是因為它關注生態系統:JetBrains 懂得生產力的高低更多的取決於生態系統而不是便捷的語法。

儘快如此,Kotlin 還是有許多有用的特性能讓你編碼的過程變得愉快:

我們已經提過 null 安全(可選),它能夠讓編譯器系統的標記潛在的空指針引用。與一些語言不同的是它不涉及 option 類,因此是零開銷的,並且還有其它語言特性確保它不會造成不便。

精鍊的語法:無處不在的類型推斷、簡單的函數只需要一行、簡單的結構以及 JavaBeans 也只需要一行就能聲明、真正的屬性——可以在背後自動生成 getFoo/setFoo 方法用於與 Java 進行交互、函數可以獨立存在於類之外。

異常均為非檢查型。(譯者註:感興趣的可以閱讀一下Java 理論與實踐: 關於異常的爭論)

使用 data class 關鍵字創建數據類會自動生成通用方法,例如 equals、hashCode、toString 以及 copy 和 componentN(同時聲明多個變量時會調用該方法)。這將幫助你在不使用構建器的情況下便捷的獲得不變類(immutable classes)。

但如果你需要構造複雜的結構體,藉助類型安全的構建器這個特性可以簡潔的實現。如果你使用 Google Protocol Buffers 來存儲結構化數據, 通過 KBuilders 這個庫也能很輕易做到。

支持函數式編程以及零開銷的 lambda 表達式,能夠在 Java 的集合中做 Map、Filter、Folder 等處理。Kotlin 的類型系統能夠自動識別可變或者不可變的集合。

擴展函數特性能夠讓你在不改動源碼的情況下為類添加方法。乍眼一看以為是為了避免寫出像 FooUtils 這種風格工具類的語法糖,不過隨着使用的加深,你會認識到它不僅能幫你更加容易的通過自動完成使用方法,還能協助你集成現有的 Java API 以及藉助其它 Kotlin 特性構建功能強大的擴展。

支持運算符重載,但是不會像 Scala 或者 Perl 那樣出現難以理解的代碼。運算符被映射成相應名字的方法,通過重寫這些方法改變運算符的行為(包括函數調用),但是不能定義新的運算符。這使得程序能夠兼顧功能與可讀性。

Kotlin 沒有宏或者其它的方式來重定義語言,但是通過這些精心設計的特性能夠使第三方庫自由的對它進行擴展,官方對集合類進行的擴展也只是小試牛刀而已,請看以下例子。

想使用 fibers、actors 和 Go 風格的 channels?一個名為 Quasar 的庫已經為你實現了。

使用 Markdown 替代 HTML 來編寫 API 文檔,這樣編寫 JavaDocs 可比以前舒適多了。(譯者註:JetBrains 提供了相應的文檔生成器 Dokka)

更好用的泛型。如果你沒有完全掌握泛型參數中 super 以及 extends 的含義,別擔心,這不是你的錯。Java 的泛型的確令人費解,Kotlin 解決了這個問題。

委託是一個大家都知道的設計模式,Kotlin 原生支持它。

== 運算符的行為符合預期(譯者註:簡單來說 a == b 相當於 a.equals(b);新增了 === 運算符,用來判斷運算符兩邊是否指向同一個對象)

想快速便捷的進行異步編程嗎?當然!

字符串插值“可以使用這樣的寫法在字符創中直接引用變量 {this.example}”

函數中的參數可以指定默認值、使用可變長度以及通過參數名傳參。

還有許多的調整與優化。假如 Java 中有某些讓你覺得困擾的問題,我相信 Kotlin 一定已經把它處理好了。

現在就來試用一下!

跟很多現代編程語言一樣,Kotlin 可以通過網頁瀏覽器來進行體驗。不過跟其他語言不一樣的是,Kotlin 的實驗網站提供了一個成熟的 IDE,包括響應很快的自動完成,實時的後台編譯,甚至還有在線的靜態分析!

在線試用一下吧

好了,讓我們繼續接下來的內容

目前存在哪些問題?

生活中沒有什麼是完美的,包括 Kotlin。以下是我嘗試這門語言時遇到的一些問題。

最大的問題是不夠成熟,因為 Kotlin 目前還處於 Beta 階段,這意味着:

每更新一個版本,語法、ABI 以及標準庫就變一次。好消息是這些變化通常比較微小,可以藉助 IntelliJ IDE 來自動升級你的代碼,所以這個過程並不會太麻煩。

Java-to-Kotlin 的轉換工具(J2K)還沒有完成。它偶爾會大規模的破壞和默默地擦除 Java 8 中的 Lambdas(修改:2015 年 10 月:M13 版本的轉換工具已經可以正確地處理 Java 8 的特性了)。由它轉換而成的代碼並不總是最好的寫法,但是 JetBrains 為這個工具付出了大量努力,它已經是我用過的語言轉換工具中最好的了。所以我並不太擔心這個問題,這個轉換器正在迅速的改進中,變得越來越成熟。

你會遇到編譯器錯誤。儘管我的程序並不大,但還是會發生無法編譯的情況,甚至錯誤的編譯結果。診斷這些問題並不難,但終歸還是影響了開發的體驗。

你會遇到 IDE 內部錯誤。當這個錯誤發生時,IntelliJ IDE 會彈出一個懸浮窗口,附帶向 JetBrains 報告的選項。大部分錯誤無需理會,不過依然會使人厭煩。

偶爾會出現無法加載提示文檔的錯誤(修改:M14 版本發布後,這個問題已被修復)

目前 JetBrains 正致力於完善發布 1.0 版本而不是添加新的功能,期待這些問題能夠得到修復。

第二個我遇到的比較大的問題是,有時與 Java 的交互會受到局限。

一個典型的 Bug 是 Java 的類型系統無法防止你改變 Map 中 Key 的類型。按理來說,這樣操作應該導致編譯器報錯,例如使用類型錯誤的 Key 刪除元素。有些 JDK 中的集合使用了泛型,它們某些重要方法的泛型參數是 Obejct,所以編譯器不會提示。當在 IntelliJ IDE 中編寫 Java 代碼時會有靜態分析的警告,但是目前 Kotlin 環境還沒有這個功能。因為 Kotlin 使用的是 Java 的集合框架沒有自己實現,所以這導致了一些類型安全方面的問題,我已經遇到好幾次了。

(修改:1.0 Beta 版本中這個問題已經解決了,Java 中集合框架的類型安全缺陷在 Kotlin 已經不復存在。喲呵!)

另一個例子是,當調用或使用 Java 代碼時 Kotlin 的 Null 安全特性無法發揮作用(可以藉助註解彌補)。作為 Kotlin 的初學者,剛開始你可能會寫許多調用 Java 庫的代碼,但是因為以上的問題它們並沒有你想象中那麼好用。這種情況的改善只能等待 Kotlin 使用人數的增長。JetBrains 一直在嘗試使 Null 安全特性能體現在 Java 交互中,這種想法是好的,但有時考慮並太周全。(修改: 從 M13 版本開始,在 Java 代碼中將自動以 @NotNull @Nullable 等註解實現 Kotlin 的 Null 安全特性)

雖然有以上的問題存在,但同時也使得我們能更流暢的使用 Java API,我覺得這種權衡是值得的,只是在開發中要注意。

其它需要考慮的問題:

Kotlin 的社區還比較小。雖然目前沒有多少 Kotlin 的庫可以使用,但是憑藉優秀的 Java 交互能力,Kotlin 可以使用現有成熟的 Java 庫。

如果你喜歡看書來學習,那麼你需要等到今年晚些時候才能看到 Kotlin 開發者寫的書(譯者註:Kotlin in Action)

純粹的函數編程風格開發者可能會覺得類型系統中缺乏一些 Scala 或 Haskell 擁有的高級功能。如果你對類型系統一些功能比較看重,那麼 Kotlin 可能不適合你。

Kotlin 還能編譯成 Javascript 代碼,但是比較少用,所以可能會遇到更多的問題,這是我從論壇中得到的印象。(修改: 目前 Kotlin 的開發重心在於完成 1.0 版本並使其穩定運行在 JVM 中,Javascript 方面的問題將會在 1.0 發布後着手解決)

沒有標準的編程風格指南,目前 Kotlin 提供了多種語法可供選擇。不同人寫出來的 Kotlin 代碼很可能完全不一樣。這與 Go 嚴格的風格形成了鮮明的對比。(修改: Kotlin 1.0 版本開始,一些靈活的語法已經被移除了,例如現在重載運算符以及定義中綴函數時必須分別使用 operator 和 infix 關鍵字進行標記)

Kotlin 的編譯速度稍稍慢於 Java,以及 IntelliJ IDE 的智能提示反應有點緩慢,不算嚴重而且比 Scala 快多了。(修改:Kotlin 1.0 開始編譯速度有了明顯提升)

Kotlin 有一個 Eclipse 插件,但是很明顯沒有 IntelliJ 的好用。

Kotlin 在某些方面比 Java 要嚴格。它不會自動將 Int 轉換為 Long 類型,需要開發者顯示的轉換。這是因為 Kotlin 關注正確性和試圖解決《Java Puzzlers》一書中提出的問題。JetBrains 聲稱他們已經搞定一半了。

Kotlin 基於 Java 6,因此會受到它的局限。Kotlin 與 C# 在很多領域都很相似甚至比 C# 做得更好,但是它缺少一些功能,例如 Java 平台尚未支持的某些數據類型。

為什麼應該開始考慮使用 JVM

最近一段時間我遇到了很多使用動態腳本語言(JavaScript 或者 Go —— 譯者註:Go 應該是靜態編譯型語言)的創業公司。

我在 Bitcoin Space 工作的時候,使用動態語言是非常痛苦的事情。在這些語言里沒有安全性的類型,這已經導致了巨大的貨幣損失。Go 比較少出錯,但是在基礎層面上給人的體驗依然很差,比如說缺少好的調試工具,快速 GC 機制,穩健的管理器以及可靠的分析工具。

過去 15 年或者更長時間裡,Java 變得越來越健壯,越來越冗長,甚至有過度設計的跡象,這些變化很大程度上源於它的聲譽。企業級 Java 類的名字 PathVariableMapMethodArgumentResolver 就是例證。在很長一段時間裡我沒有考慮 JVM,我確信這種環境並不適合我。

最終我因為 Android 被迫回到 Java,發現 Java 的開發環境已經改變了。雖然 XML 仍然不合時宜的頻繁出現在各種場合,但是一些基礎功能十分完善,令人印象深刻。 IntelliJ 是比 Eclipse 更快並且更智能的 IDE。Maven 一出現就得到了迅速的發展,擁有許多原本我想要其它構建 / 依賴系統增加的功能。較新的 Web 框架像 Ninja 和 Play 從類似 Ruby on Rails 的框架中學到了輕量簡潔。有大量的庫可供使用。硬件性能變得更高以及 JVM 變得更有效率,等等轉變。

沒有真正改變的是語言本身,Java 代碼寫起來依然是令人不快的冗長。

現在有了 Kotlin,完全無需承受離開 Java 現有的生態系統的疼苦。你可以編寫更富有表現力的代碼,但是卻比腳本語言更簡潔,同時擁有更好的性能和更少的錯誤。

如果你喜歡 JavaScript,可以嘗試 Kotlin 的 JS 後端,或者在 Nashorn JS 引擎里運行你現有的代碼。

最後,如果你喜歡 Go 語言是因為它可以編譯獨立運行的程序,那麼試試 javapackager 工具。Kotlin 在本地為每個平台創建了捆綁包,這意味着在 linux 上不需要 JRE 的依賴就可以獨立自主的獲取 DEBs(linux 的安裝包)或者壓縮包。當然,它拆包之後不是單個文件而是單個目錄,從部署的角度來看並不難操作。

簡而言之:如果你之前因為看 Java 不順眼而忽略了 JVM 的生態系統,那麼你應該藉著 Kotlin 這門新語言進入這個世界瞧瞧。

kotlin與python的區別,哪個應用廣泛

kotlin 是做android開發的

python是做網頁開發的

暫時來說python應用更廣泛

原創文章,作者:GACF,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/139915.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
GACF的頭像GACF
上一篇 2024-10-04 00:23
下一篇 2024-10-04 00:23

相關推薦

  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • 蝴蝶優化算法Python版

    蝴蝶優化算法是一種基於仿生學的優化算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化算法Python版…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智能、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29

發表回復

登錄後才能評論