古早的一本書名『大家來學BASIC』, 『培基語言』莫不耳熟能詳, 而且小學就會教, 被號稱是最容易學的一種高階程式語言 上次 Quick Basic 再生筆記 記錄下把以前Quick Basic程式碼重新拉出來執行的狀況 這次則使用 QB64 來試試看(目標是讓以前DOS下的QBX程式碼復活變成Windows版), 官網首頁的下標 QB64 is a modern extended BASIC programming language that retains QBasic/QuickBASIC 4.5 compatibility and compiles native binaries for Windows, Linux, and macOS. 看了就覺得很帥, 非常值得一試, Windows平台有分 x86 和 x64 的版本 qb64_1.4_win_x64.zip - 只能於64位元的Windows上執行, 編譯64位元執行檔當然只能於64位元的Windows上執行 qb64_1.4_win_x86.zip - 可於32/64位元的Windows上執行, 編譯32位元執行檔同樣可於32/64位元的Windows上執行 下載壓縮包解壓後就能用, 無需安裝, 支援 Windows NT (XP), Windows Vista, Windows 7, 8 or 10 跟 Python 3.4.4 相同的道理, 可以選擇x86的版 從XP到Win10不論x86/x64都能用最為方便 解壓縮後 x86的版約 590MB, x64的版則約 604MB, 有開RamDisk又夠大的話放RamDisk跑就好了, 那麼大的原因是因為它包含了整套mingw32 這mingw是用於C/C++程式語言的GCC編譯器(QB64裏x86版約占499MB而x64版約占513MB) 所以不僅程式碼可跨平台, 也很明顯的可以判斷QB64與Python最大的不同, QB64編譯出來的EXE是獨立執行檔, 也就是QB64產出的程式作品, 可複製單一EXE檔在其他機器上執行無需另外準備執行環境或包裝, 這比Python方便太多了! 不過相對就有缺點, 編譯出來的執行檔有點大, 基本就要2MB起跳, 雖然也可用執行檔壓縮程式壓小到500KB為基礎, 然後與DOS的QBX(QB45)不同, 寫程式階段QB64的執行功能必須編譯成執行檔然後跑執行檔, 不像QBX的執行是無需編譯就能模擬執行, 而QB64的編譯確實感覺比較久(畢竟要產出2MB以上的二進位檔), 然而瑕不掩瑜, 光是獨立執行檔可以便於複製使用的這一點上就完趴Python了! 畢竟程式有個最大的樂趣就是與別人分享或是提供予別人使用, 當然是能夠在任何地方輕鬆執行起來最重要啦~ 再來QB64不像Python常要依賴一堆外掛, 往往光是pip搞環境就搞掉一堆想學Python的人, 何況各種外掛基於不同版本的Python開發也常常有很多不相容的狀況, 但是Python如果不找外掛用還真不知道要它何用... 如果使用市面的一些套裝好的Python, 不僅龐大速度慢, 還可能受限顯卡的問題跑不動, 也可能無法安裝於VM裏運作, 不過要寫Python還是得先找個合適好用的編輯器(就是這緣故才會讓一些Python的套裝盛行), 如不然也會很困擾... 現在, 這個QB64不僅免除其他語言開發雜項的不便與困擾, 讓學程式的人更真正專注於學習程式上的邏輯與思考, 也就是QB64恰恰好有符合BASIC簡單好用易入門的理念, 展現了BASIC實不愧是高階程式語言之最的地位, 另外千萬不要和VB(Visual Basic)混為一談, 實在是因為VB太Windwos了, 完全搞砸了Basic的長處和美意, 過度強調GUI與OO的VB既然走偏當然走得不順, 進展到VB 6之後 進入到VB .NET, 然後被下了注腳 VB6是VB.NET至今仍無法完全取代的版本。 最後VB終究到了走不下去的地步 Going forward, we do not plan to evolve Visual Basic as a language. 不過喜歡VB的fu也有個怪胎 Rapid-Q 可以替代用用看, 這是個寫小程式發行很方便的工具, 不過它只提供32位元但是有跨平台支援 常常有想學程式語言的會拿C#和Python作比較, 何者容易學又實用? 遇到BASIC再看看QB64, 若比簡單BASIC比Python更簡單, 若比實用BASIC有結構概念比C#強又有效率, 看看QB64這樣的例子(指標/結構/記憶體) 倘若還要比年記, BASIC垂垂老矣, 從Apple電腦,中文的小教授到DOS的PC時代就有了...想當初是從第一台家用電腦VIC-20開始學的! 有注意到嗎? 是家用電腦不是個人電腦, 因為它是接電視看的, 人家畫面文字80*25它偏偏22*23, 人家記憶體64KB它卻只剩3583Bytes給用... 一直還記得一個叫步步驚魂的遊戲是父親還會半夜喝威士忌偷玩, 開機畫面我都沒印象了, 這個偉大的網路時代卻是找得到耶! (PS: 圖片聯結到Youtube視頻) 回到主題QB64的QB是Quick Basic而不是QBasic, 前者是可編譯執行檔後者則無, 也可以把QBasic視作是Quick Basic的閹割版, 是MicroSoft為了附加在MS-DOS磁碟片中的迷你版, Unlike traditional BASIC and QBasic code, QB64 gets compiled
automatically into machine code 以前用QB45設計了一套GM(Game Manager)的遊樂器卡匣遊戲複製程式, 一套一萬三賣到全省各遊樂器專賣店, 當然寫過不計其數的程式碼, 也建立許多有用的程式庫, 也就是QB的SUBS/FUNCTION, 所以現在的重點就是以前的程式碼能不能用? 看到前面引言QB64官網的說明當然很期待, 那麼就把上次 Quick Basic 再生筆記 提到的LIGHT.BAS丟進去試吧! 再由選單上 [Run] --> Start 就會編譯出 Untitled.exe 並執行如圖中的樣貌, 如果選單上 [Run] --> Make EXE Only 就會編譯出LIGHT.exe (x86版 2029KB, x64版 2460KB), 複製到其他電腦直接就能跑了 QB64以能直接執行舊的QB 4.5所用的程式碼為設計主軸, 雖然有些陳述式牽扯到硬體IO的部分還未支援, 但是QB64也增加了許多甚有幫助的新功能足可替代未支援的部分(代表要改程式碼), 如DLL的應用 考慮可能遇到的狀況提供以下幫助 1. 載入的BAS程式碼檔是亂碼 2. 載入BAS程式碼時出現檔案不存在的訊息, 或者新寫程式存檔後找不到檔案 3. QB64編譯的程式, 為初學者貼心預設添加了結束時的等待按鍵與訊息"Press any key to continue..." 這是為了方便剛練習寫簡單程式時, 例如只有 PRINT 秀個訊息而已, 常有因為程式跑完視窗立刻消失來不及看到結果的困擾, 但若是已經設計有特定需求不想有此等待動作的話, 可以於程式中改用 SYSTEM 作為程式結束時的動作指令, 可參考END的說明 4. 可 快速上手/易於設計/便於生產 確實相當優異, 若論缺點大概就是不能直接顯示UNICODE, 對於某些情形與用途或許有所不便, 但如果想要運用OS下的多種字型也可以從 _LOADFONT 這個指令開始摸索, 充分運用Windows資源則從 DLL_Libraries 入門, 只要能開發與Windows用法相同的DLL, 參考 Windows_Libraries 就能瞭解大部分的用法與規則 最後, 提供LIGHT.BAS各執行檔版本供下載測試, 看看是否自己的環境是否都能運行以便評估此一方案是否合用可行 LIGHT-EXE.RAR檔案位於Dropbox上, 網址為 相關文章: |