aardio 是一個化繁為簡的開發(fā)工具,務(wù)實(shí)而不貪心,做減法而不做加法。aardio 所有可以實(shí)現(xiàn)的功能都有現(xiàn)成的范例,也用 17 年的時間精心編寫了大量教程和文檔。 我寫 aardio 的初衷是為了幫助桌面軟件開發(fā)者提升效率、節(jié)省時間、減少學(xué)習(xí)成本。aardio 也確實(shí)能做到了這一點(diǎn),相比那些需要三五年、甚至是十幾年才能熟練使用的桌面軟件開發(fā)工具,很多用戶都反饋 aardio 分分鐘就可以上手,幾小時就開發(fā)完成了自己需要的軟件。 如果您發(fā)現(xiàn)使用 aardio 不能為您帶來這些好處,反而會增加麻煩,就沒必要強(qiáng)求。 下面我們談一談新手對 aardio 的 12 個常見誤解: 01、聲稱 aardio 已停更多年 網(wǎng)上只要提到 aardio ,這句謠言就迅速趕過去復(fù)制粘貼。即使 “這語言太好了,可惜已經(jīng)倒閉了 …… ” 這樣例行鋪墊一些贊美之詞,也掩蓋不了這是完全子虛烏有、憑空捏造的一個事情。 aardio 17 年保持活躍更新,僅僅 aardio v10 到 v11 就經(jīng)歷了 168 個發(fā)行版本( 內(nèi)部提交版本更多 ),2016 ~ 2022 年,aardio 就累計更新了 4692 個內(nèi)部版本,發(fā)行大版本號更是自 v10 更新到了 v35。這些稍微看一下歷年的 aardio 更新日志與歷史文章就有數(shù)了。可參考:《 aardio 更新歷程回顧:現(xiàn)在活躍更新,以前更新更多更快。17 年不忘初心,一直向前!》 02、聲稱學(xué)習(xí) aardio 要先熟練掌握十幾種其他編程語言 這不是真的。 實(shí)際上大多數(shù) aardio 編寫的桌面軟件 —— 都是用純 aardio 開發(fā)的。 學(xué)習(xí) aardio 并不需要先會其他編程語言,aardio 支持其他編程語言 —— 只是可選項(xiàng)。 打個比方,例如 aardio 支持 PHP ,這是因?yàn)?aardio 幾句代碼就可以寫一個 HTTP 服務(wù)器 —— 這種能力其實(shí)跟 PHP 沒有太大的關(guān)系。 aardio 編寫程序本來就很方便,一些使用其他編程語言的用戶,在使用 aardio + 其他編程語言混合開發(fā)一段時間以后,會覺得有很多功能直接用純 aardio 代碼寫更方便,aardio 雖小,但庫真的非常多。 還有一些用戶把 aardio 理解為其他編程語言的集成開發(fā)環(huán)境 —— 這個也是完全理解錯了。 例如有些用戶過來問我怎樣才能脫離 Python 運(yùn)行 Python 程序,或者怎樣將 Python 程序編譯成 C 語言代碼,或者問我 Python 多按了一個空格就會出錯 —— 讓我趕緊把這個 "bug" 給修復(fù)了。 其實(shí) aardio 里的 Python 還是原來那個官方的 Python ,aardio 不會改變 Python 的任何東西。 03、批判 aardio 沒有完全照搬其他語言,或反過來批判 aardio 不該完全照搬其他語言。 這兩個一本正經(jīng)、被到處復(fù)制粘貼的觀點(diǎn) —— 本身就相互矛盾到有些可笑。 這兩者的共同點(diǎn)就是信口開河,亂帶節(jié)奏。 例如發(fā)現(xiàn) aardio 里有個語法或關(guān)鍵字在其他編程語言里也有 —— 就激動地到處宣揚(yáng) aardio 完全照搬了其他編程語言。 或者是發(fā)現(xiàn) aardio 里哪個語法沒有完全跟其他編程語言一樣 —— 就上綱上線無法接受國產(chǎn)編程語言有任何的發(fā)明和創(chuàng)新。 一個編程語言如果語法就沒有設(shè)計好,寫程序還能像 aardio 這樣輕松暢快 —— 這是不可能的事。 說實(shí)話,十幾年來,多數(shù)用戶都向我反饋 aardio 語言簡潔優(yōu)雅,可讀性好,上手容易,這才是真正用過 aardio 的多數(shù)用戶的真實(shí)反饋。 要了解這一點(diǎn)很容易,花幾分鐘看一下 《 aardio 編程語言快速入門 —— 語法速覽 》就明白了。 04、批評 aardio 不是腳本語言 —— 不能打開命令行手動調(diào)用 aardio.exe 運(yùn)行 aardio 代碼。或者批評 aardio 只能生成獨(dú)立 EXE 程序,不能生成腳本程序,不能在發(fā)布后用記事本查看、編輯源代碼。 aardio 生成的是不需要額外運(yùn)行環(huán)境的獨(dú)立 EXE 程序。 如果只是不想生成獨(dú)立 EXE 程序,希望程序依賴外部 Python.exe,Java.exe,Electron.exe 才能運(yùn)行,那直接換用這些語言或技術(shù)就行了。 至于有人要怪 “ aardio 不是腳本語言 ” —— 這你就不能怪我了,你要批評鹿不是馬,鹿也很無奈啊。 aardio 是一個專注于開發(fā)獨(dú)立桌面軟件的編程語言,為開發(fā)獨(dú)立 EXE 桌面程序而生。被編譯發(fā)布的 aardio 程序都是獨(dú)立 EXE 文件不再包含源代碼 —— 想看源代碼那就只能找 EXE 的作者單獨(dú)購買。 aardio 也不是像 Electron 那樣只是地把源代碼打包為 asar 包再通過外部 Electron.exe 調(diào)用 asar 運(yùn)行 —— 這種當(dāng)然可以用 WinAsar.exe 解包編輯 JavaScript 源代碼。 雖然 C語言也可以用來寫腳本( 使用 aardio 的 tcc 擴(kuò)展庫 ),aardio 也可以強(qiáng)行這樣做,例如我們可以用 aardio 開發(fā)一個 aardio_cgi. exe ,類似 php_cgi. exe ( 當(dāng)然,PHP 寫不了 php_cgi. exe ),就可以像 PHP 一樣用 aardio 寫網(wǎng)站。 但可以做一件事,不等于適合做一件事。 說到做腳本這件事,有很多更專業(yè)的腳本語言可以做得更好。 05、才看了 aardio 一下就聲稱 aardio 難學(xué) 其實(shí)大家只要網(wǎng)上隨便看一下更多 aardio 用戶的評論。就能看到非常多的用戶提到 aardio 只要分分鐘就可以上手,甚至是接觸了幾小時就開發(fā)完成自己需要的軟件。 而那些聲稱 aardio 難學(xué)的,你也看不到他學(xué)好用好其他編程語言。我們常犯的一個錯誤就是:能把編程學(xué)好的高手都沒說話,那些什么編程語言都學(xué)不會的新手 —— 到處教別人應(yīng)該怎么做好編程語言,應(yīng)該怎么寫好文檔寫好教程,高談闊論選擇哪個編程語言更好 …… 桌面軟件開發(fā)并不容易,很多桌面開發(fā)工具都需要三五年、甚至是十幾年的全職學(xué)習(xí)。相比起來 aardio 這樣簡單,容易上手的編程語言真的并不多見。 QT/C++ 用戶這樣說:“時隔四年,使用 aardio 重新開發(fā)二維碼識別與生成工具。舍棄了跨平臺特性。得到的是更高的開發(fā)效率,更小的軟件體積。原來使用 QT 和 C++ 語言開發(fā)項(xiàng)目在此,經(jīng)過了長期的學(xué)習(xí)才能寫出個像樣的東西。但是發(fā)布后軟件動輒 > 60MB,卻僅僅實(shí)現(xiàn)了一個小小的功能。讓人非常無語?!?/p> Delphi 用戶這樣說:"用了 N 年 Delphi , aardio 比 Delphi 用起來爽太多,方便太多。解析型自動釋放內(nèi)存,面向?qū)ο螅S富的類庫函數(shù),簡潔的語法,強(qiáng)大的 table,table 和 PHP 的 array 很像,用起來很方便,json 函數(shù)很方便地 json 字符串和 table 互換…… 方便的東西太多了,桌面軟件開發(fā)者有福音了,從此拋棄 Delphi "。 Python/PyQt 用戶這樣說:“…… 我是剛開始用 aardio 寫界面(實(shí)在不想用 PyQt 了),Python 寫數(shù)據(jù)處理業(yè)務(wù),感受到了 aardio 的強(qiáng)大和奇妙。我想把 Python 數(shù)據(jù)處理過程的信息反饋到前端界面中,《這回讓我們把 Python 玩出花來》看完后,用了幾分鐘搞定?。?!實(shí)在令人驚訝 aardio 的強(qiáng)大!?。 ?” 06、聲稱 aardio 教程少、資料少 每次我看到有人這么說,我就問他具體是遇到了什么問題在找什么資料。然后總是問不出來,要么就是被對方拉黑屏蔽,要不就是說他寫的是什么私密軟件不便細(xì)說,要不就就是吹牛他想用 aardio 寫個手機(jī) APP 。 一些人是先有了觀點(diǎn),然后才去找證據(jù),或者根本不關(guān)心有沒有證據(jù)。 國產(chǎn)編程語言就該教程少、資料少 —— 這的確是很多人先入為主的成見。學(xué)任何編程語言都不容易,有了一個這樣理想的借口,可以讓他在學(xué)習(xí)編程語言的遇到任何困難的時候找到替罪羊,不用找自己的原因,這也限制了他提升自己的空間。 上次有人留言說 aardio 真高效,下載 aardio 、學(xué)習(xí) aardio 、開發(fā)完成需要的桌面軟件一共就用了 2 小時。我回復(fù)說這并不是因?yàn)?aardio 高效,而是因?yàn)槭褂?aardio 的人高效。我們常常夸大開發(fā)工具的作用,而忽略了決定技藝高低的最主要因素是使用開發(fā)工具的人 —— 而非開發(fā)工具本身。 說實(shí)話,這么多年我都在積極地解答大家的問題。但是很遺憾的一點(diǎn)就是,我收到的大部分問題 —— 基本都是在回復(fù) aardio 中一抬手就能找到答案。 我舉個剛剛的例子吧: 最后他倒是說終于找到了,還不忘給我留言 :“找到了,在一個意想不到的地方 ……” 好吧,我們看看這個意想不到的地方:
而且這個范例里的注釋寫得非常詳細(xì),一句代碼寫了 100 句注釋你信嗎?大家可以找一找,還有哪個桌面開發(fā)工具動態(tài)創(chuàng)建控件比 aardio 方便,范例文檔寫得比 aardio 更詳細(xì)?! 類似上面的這樣的交流過程,幾乎是我每天都在重復(fù)做的事,我一遍又一遍耐心地解釋,其實(shí)答案就在你手邊,其實(shí)你點(diǎn)一下就可以,這種事我做了十幾年。 所以我真的忠告一些新手,別再自己欺騙自己了。浪費(fèi)我的時間是小事,浪費(fèi)了你自己的時間是大事。 07、迷信通過視頻教程可以學(xué)好 aardio 有個人去學(xué)自行車,學(xué)了 10 分鐘,生氣地說:“這個自行車真難學(xué),10 分鐘都學(xué)不好,網(wǎng)上也找不到視頻教程可以讓我 10 分鐘就學(xué)會騎自行車,不學(xué)了,還是鞋子方便,容易上手,沒有學(xué)習(xí)成本,走路也利索 ……”,您聽了這段話,覺得他傻嗎?! 我發(fā)現(xiàn)一些特別迷信視頻教程的用戶,他們以前大多學(xué)的是那種低幼化的開發(fā)工具( 確實(shí)挺適合視頻課 )。他們認(rèn)為自己曾經(jīng)學(xué)會了一種編程語言,可事實(shí)上他并沒有。他要寫軟件就只能買更多的視頻教程照葫蘆畫瓢 —— 離開低幼化的開發(fā)環(huán)境和視頻教程他就不會正常走路了,換任何一個編程語言他都會叫苦不迭。 任何編程課,首先要看一下講課的人有沒有用這個編程語言寫過一些優(yōu)秀的桌面軟件,否則不要浪費(fèi)時間去看這種課程。跟臭棋簍子下棋 —— 是不可能提升棋藝的,反之可能你會被一起拖進(jìn)臭棋簍子的世界永遠(yuǎn)都出不來。 aardio 是一個很簡單的開發(fā)工具,真正需要通過視頻去講解的可視化操作是非常少的。雖然我做過一些視頻,但說實(shí)話,學(xué)習(xí) aardio 不需要看任何視頻。如果你覺得你沒有視頻就學(xué)不會 aardio ,說實(shí)話給你再多視頻也不可能學(xué)好。 08、迷信 VS Code 我發(fā)現(xiàn)一些小白對 VS Code 有著某種近乎癡狂的崇拜。 我?guī)н^前端團(tuán)隊(duì)多年,在早年團(tuán)隊(duì)中還有很多前端不使用 VS Code 時就要求所有前端統(tǒng)一換到 VS Code。在 aardio 中我也多次推薦 VS Code,并且也寫了 VS Code 調(diào)用庫。 但是,如果你拿著 VS Code 的錘子,看到什么都是 VS Code 的釘子,我認(rèn)為你根本就不懂 VS Code。 您可以試試用 VS Code 寫一個 WubiLex,ImTip,Gif123 這樣的桌面軟件試試,我想您可能會累哭的。不要說用 VS Code ,你把 VS Code 他大爺 VS 請過來干這事都不一定比 aardio 方便。 有些人用過幾天 VS Code 就覺得自己很了不起,覺得在 VS Code 里會用個格式化插件就目空一切。其實(shí)他連 VS Code 里面是一個網(wǎng)頁估計都不知道,拿一個網(wǎng)頁窗口跟傳統(tǒng)桌面開發(fā)工具比界面風(fēng)格就是很奇怪的事。 雖然 aardio 也提供了很多 Web 界面的庫 —— 在這一方面 aardio 是做得不錯的,但是盲目迷信和崇拜 Web 界面這是不必要的。不信大家可以試試用網(wǎng)頁做個 Gif123,WubiLex,ImTip …… 看看會不會累趴下。 這么多年我不知道遇到多少次這樣的用戶,上來就說 aardio 這不行那不行,然后吹牛他自己寫了個更好的什么編輯器之類這好那好。結(jié)果大家知道了,牛皮吹了十幾年,具體能用的東西我是從來都都沒看到過。 09、迷信 C++ , C# 的調(diào)試方式 說實(shí)話如果寫 C++ , C# 可以像 aardio 這樣方便地調(diào)試,那是做夢都可以笑醒的事。請先閱讀「 aardio 范例程序 > 調(diào)試技術(shù) 」。aardio 語言本身就是調(diào)試工具。aardio 代碼可以方便地輸出對象與調(diào)試信息。aardio 的 debug 庫也提供了方便的、可編程的斷點(diǎn)調(diào)試功能。當(dāng)然 aardio 并不需要通過斷點(diǎn)調(diào)試查看調(diào)試信息,直接使用 aardio 代碼調(diào)試更簡單。 這就像學(xué)習(xí)騎自行車,您上去就騎,幾天就能找到感覺了。只是站在遠(yuǎn)處猶豫和觀望 —— 可能永遠(yuǎn)無法理解我在說什么,也永遠(yuǎn)無法理解其他 aardio 用戶為什么用得那么開心。 10、迷信跨平臺 其實(shí)非 Windows 系統(tǒng)在桌面系統(tǒng)的市場份額基本都小于已被遺忘的 Win8 。有些用戶過于迷信跨平臺的作用,卻忽視了跨平臺帶來的沉重負(fù)擔(dān)和代價。 有非常多的用戶,每天苦苦研究著跨平臺 —— 其實(shí)他根本就沒有幾個跨平臺的用戶。 我并不反對跨平臺,其實(shí) aardio 支持 Python , JavaScript 這些也都是在支持跨平臺的語言與技術(shù)。但支持跨平臺,不等于你就要拋棄 Windows 這個專有平臺的優(yōu)勢,就連 aardio 這樣生成 EXE 的工具你都要反對一下。 不讓生成 EXE 你跨啥平臺???! 為什么在桌面系統(tǒng)上 Windows 保持一家獨(dú)大,這正說明你要盡展桌面優(yōu)勢就只能針對 Windows 開發(fā)。 如果有些軟件并不需要盡展桌面優(yōu)勢,例如就是網(wǎng)頁套個殼子,任何操作系統(tǒng)上都能跑,那當(dāng)然可以考慮跨平臺。 這就好比你要設(shè)計一件衣服,又要適合男人穿,又要適合女人穿,還又要適合老人穿,又要適合小孩穿,那么這件衣服能好到哪里去?!這么簡單的道理都想不明白,還要學(xué)編程這真是很可怕的事。 11、希望 aardio 添加這樣那樣功能,這樣那樣修改編程語言以適合自己的需求 實(shí)際上任何一個編程語言的作者都難以逐一解答每一個用戶的提問,也很難保證每一個修改這個編程語言的建議都被采納。寫好一個軟件是復(fù)雜的,寫好一個軟件開發(fā)工具則更加復(fù)雜千萬倍,有很多艱難的取舍并不是簡單地 “看作者心情”就可以,也不是每次取舍都能跟每一個新手解釋得清楚,實(shí)際上很多的建議會被拒絕 —— 這并不是因?yàn)?aardio 容不得一點(diǎn)建議,您把相同的建議提交給其他編程語言作者,結(jié)果可能是一樣的。不然您也沒必要在 aardio 這里浪費(fèi)時間了,因?yàn)楸任矣芯?,比我有?shí)力,比我有時間的編程語言作者不計其數(shù)。 有些用戶如果他不知道 aardio 的名字他要怪你,如果他知道 aardio 的名字了問了下別人不知道 —— 他也會瞬間崩潰。先不說他大概就知道幾個明星編程語言的名字,不知道世上的編程語言不計其數(shù),更不知道每一個編程語言都有可能經(jīng)歷數(shù)十年的潛伏與積累是很正常的事。 而且你打拳擊還得比下公斤級呢,拿著幾 MB 的 aardio 成天跟幾千 MB 的開發(fā)工具比來比去 —— 這不是買了個自行車跟人家的豪華房車較勁嘛。 aardio 是一個化繁為簡的工具,aardio 經(jīng)過 17 年的開發(fā),功能不斷地增強(qiáng),但體積卻在不斷地減小,aardio 在不斷地做減法,不斷地變得更簡潔。 其他很多開發(fā)工具都在做加法,那么您為什么還會選擇和使用 aardio 呢?!這正是因?yàn)?aardio 愿意做著別人不愿意做的減法,這正是因?yàn)?aardio 在努力地化繁為簡。這個世界需要愿意做減法,愿意化繁為簡的 aardio 。 如果您的需求恰恰相反,您需要的是做加法,您需要添加這個,您需要添加那個,您需要更復(fù)雜更豪華的工具 —— 那么 aardio 可能并不符合您的需求,建議盡早更換。 12、自己的軟件誤報怪 aardio 這鍋 aardio 是真不背。 在 aardio 首頁就有教程,解決誤報是很容易的事。相比起來開發(fā)一個軟件多不容易,一個程序員為什么會在這種無意義的事上急著找個替罪羊,而不是去找解決問題的方法呢? 網(wǎng)上隨便搜一下,其他編程語言的誤報數(shù)量比起 aardio 只多不少( 這主要是因?yàn)橛?aardio 寫惡意軟件的少,動態(tài)語言干壞事確實(shí)是不方便 )。我相信大家估計看過 EXE 改幾個字節(jié)就出現(xiàn)誤報的討論,或者 EXE 文件不誤報,換個 zip 就誤報的現(xiàn)象。有些殺毒軟件自己就說得很直白 —— 不認(rèn)識你,你沒有社區(qū)信譽(yù)就給你高誤報率! 我自己用 C++ 開發(fā)的多個軟件都遇到過開發(fā)時沒有誤報,發(fā)布出去,用戶量一大,無一例外全部都發(fā)生了誤報。換個編程語言就不誤報還有這么好的事?您真的用其他編程語言做過桌面軟件嗎?沒做過去看一下其他軟件的用戶反饋頁面也可以啊,有幾個能完全避免這種事? 不說編程語言對誤報率完全沒有影響,但這種影響不是決定性的。我用 aardio 寫的很多軟件,在網(wǎng)上用戶討論都非常多呀,WubiLex 一個帖子的回貼就有 1200 回復(fù),罕見有人反饋說遇到誤報。 而且現(xiàn)在使用第三方殺毒軟件的普通用戶非常少。一般的軟件只要到系統(tǒng)自帶的 Windows Defender 官網(wǎng)去提交一下檢測就可以了,完全免費(fèi),通過的速度也非??臁6椅矣?aardio 寫的很多軟件,提交到 Defender 反饋都是根本就沒有誤報,不需要過白。 之前還看到有用戶說他用個啥他自認(rèn)為很牛逼的第三方殺毒軟件誤報了,我裝了這個所謂牛逼的第三方殺毒軟件測試了一下,彈了幾十個誤報,把我用的各種正常軟件殺得一塌糊涂,有些是很流行的知名軟件。你說說你拿這種胡亂誤報一氣、根本沒幾個人用的殺毒軟件強(qiáng)調(diào)誤報有意義嗎。你隨隨便便看一下你周圍的朋友,現(xiàn)在還有幾個人在用這些奇葩的殺毒軟件? 我只想說這種先有了觀點(diǎn),然后再去找證據(jù)的 —— 沒有任何意義。 |
|
來自: 風(fēng)聲之家 > 《電腦》