我们应该如何选择我们的编程语言呢?
本页教程专门供给还没有学会任何一门编程语言的编程小白所看。如果你已经学会了市面上任意一款编程语言且完全了解导论中的前置版本中的必须支持部分对于此语言的语法规则,那么你可以跳过本页不观看。但我依旧强烈的建议你还是看看比较好。
编程语言的选择:
- Java:推荐指数:【⭐⭐⭐⭐】
- 其为Minecraft原生语言,有着众多的第三方库,例如swing GUI、网络请求、服务端、Json解析、XML解析等众多的模块。
- 其语言生态也非常良好【tiobe排行老三】
- 语法简单,流畅,清晰度高,如果开源的话非常容易让别人一目了然。
- 唯一缺点:对于GUI生态不太好,需要javafx或者swing。而且swing太丑。javafx有点小小的复杂。
- Python:推荐指数:【⭐⭐⭐⭐】
- 如果我说这是在编程语言界较为简单的语言,这么说不过分吧。
- 内部有众多的第三方库,如tkinter、requests、json等众多模块。
- 语法也非常简单,但是如果开源不一定让人看得懂【按照缩进来执行,很容易搞蒙人。】
- 语法生态良好,tiobe排行老大
- 唯一缺点:解释性语言,运行速度过慢。
- C#:推荐指数:【⭐⭐⭐⭐⭐】
- 这门语言为微软官方语言,其内部的Nuget包管理器能够使人轻松下载到众多的第三方库,例如Newtonsoft.JSON等模块。
- 语法类似Java,且能直接编译成exe,高效简洁,但是对于跨平台有些许的不太支持【听说最近的.NET 7.0支持了跨平台,但是没尝试过。】
- 语言生态良好。有着WPF这种易于写GUI的配方。
- 不足之处:做好的软件发布到MCBBS上如果不开源很容易被别人认为成又是用启动模块写的,如KMCCC等。
- C++:推荐指数:【⭐⭐⭐】
- 在编程语言界算是鼻祖,内部生态良好,有着Qt大公司支持,目前的C++23更是引领了众多人走向成功。
- 语法较为困难,但只要基本掌握,还是可以实现很多功能的。
- 有很多第三方库,例如Qt自带的QWidget-GUI等。
- 用此种语言制作的MC启动器建议不要开源。
- VB.NET:推荐指数:【⭐⭐⭐】
- 众所不是那么的周知,PCL2启动器就是拿这门语言开发的,因此可见这门语言的优势所在。
- 语法不算很优雅,较为冗杂,也不算很出色,为什么叫VB呢,因为其为可视化基础语言。
- 生态比较良好,但是用此种语言制作的MC启动器建议不要开源。
- 易语言:推荐指数:【⭐⭐⭐】
- 为什么推荐易语言?因为这个语言是面向中国人的,对于中国人来说语法较为简单易懂。且有着著名的Module-Launcher启动模块支撑。
- 语法较清晰,较简单,但是生态非常不好,且需要钱,很贵。没钱的只能去网上找破解版的咯!
- 通过ec后缀模块以及易语言IDE作为包管理工具,其最为出色的第三方库【精易模块】已成为许多易语言编程者必选的模块之一。
- 不足之处:做好的软件发布到MCBBS上如果不开源很容易被别人认为成又是用启动模块写的。
- 但是此项与第四项相悖,用此种语言制作的MC启动器建议不要开源。
- Go:推荐指数:【⭐⭐】
- Go语言是面向服务器高并发式开发的,因此对后端程序不算太友好。但网上也有比较成熟的GUI库,例如walk库。
- Go语言内置了Json解析、网络请求功能,第三方库可以用Go Mod管理。总体上手难度不算高。
- 生态良好、语言清晰度一般,但是一般不会有人拿这个去做MC启动器【GMCL是命令行式的,如果你可以做出一款用Go语言开发的GUI启动器,那可称为MCBBS第一人。】
- Rust:推荐指数:【⭐⭐】
- 给你们个建议,如果不是非得使用冷门语言创作一款大软件,我是不太建议大家用这门语言的。因为这门语言上手难度较高。
- 有crate.io作为包管理器,非常轻松便能导入导出第三方库,如简单的GUI库:Druid。
- SCL启动器的作者Steve-XMH就是用这个语言写的启动器,其内部的bug多的数不胜数。自己去看看吧。
- 这门语言主要是面向底层,面向操作系统的,当然也可以开发后端程序。但我不太建议使用这门语言。
- TypeScript+Electron:推荐指数:【⭐】
- 人送外号电子垃圾,制作出来的软件体积较大【少则几百兆,多则几个G】。
- 语法困难、不清晰、上手难度高,我直到现在都不懂怎么安装它的环境。
- 生态不怎么好,但是依旧有人拿这个框架制作MC启动器【如XMCL】。
总结
好了,以上就是我给大家尽量推荐的语言,但是其中没有打星星符号的,要么就是太冷门,要么就是别的语言的孪生兄弟【如C和C++、Java和Kotlin等】。还有一些语言由于我自己都没尝试过书写Hello World。
但是,有部分语言我没有列举在上面,例如Ruby语言,这一类的语言在MCBBS上从未有过启动器应用。因此我在这里不做过多的评价。当然了,我所给的都只是一个建议,如果你实在是精通Rust、Ruby、甚至是COBOL,这都取决于你。
大家可以不按照我上面所说的语言建议,大家完全可以按照自己喜欢哪门语言,然后开始制作。总体来说大家必须要根据自身的实际情况来学习,比如说你只会用Python,但是我建议用C#的多,因此你就硬生生从Python转成了C#,我不太建议这么做哦!
本篇教程所使用的编程语言
如果大家看过我的主页,看过了我的Little Limbo Launcher启动器,就说明了我是一个用Delphi/Object Pascal语言最熟悉的人了。就好比如说我熟悉Delphi,但是不太熟悉C#一样的。
我在本篇教程里使用的是【Python语言】,将更好的切合我们人类的思维方式。大家完全可以用自己的语言进行开发!本篇教程只是提供一个思路而已!主要目的就是提供一个编程思维。
其次,为什么我上面并没有出现Delphi/Object Pascal语言呢?原因是这门语言是需要付费才能下载的,而我使用网上的破解版来编程【嘻嘻】,不同于免费的语言,因此我没有将其列举在上面。不过这门语言的内容也挺简洁高效的,语法规则也同样较类似于C#。而且这个语言生成的exe无需.NET FrameWork运行时框架即可运行。因此我制作LLL启动器时才会选择这个语言!
但是本文选取的语言是Python 3.10版本及以上,主要是为了照顾各位能够使得各位更好理解文章内容噢!如果你还有什么不懂得,欢迎来主页找到Little Limbo Launcher开源网址,找到交流群,然后加群随时来询问我噢!
如果各位对本文代码有任何优化建议,也可以进入gitee里的issue或者github的issue进行提议噢!本文也仅仅是给各位一个小小的思路,各位完全可以只看本文的思路部分,然后进行代码编辑。没必要完全只字不改的敲。我当然知道有部分启动器作者的代码比我简洁太多了,因此我才说看个逻辑而已,不要全部照抄。比如minecraft-launcher-lib这个类库的逻辑就比我的简单……
然后本文使用的GUI类库是delphivcl。各位可以通过以下命令安装。或者各位用PyQT也不是不行(都可以嘛!
pip install delphivcl
我们除了这个类库,很可能还会用到另一个类库:pywin32!该库包含了调用Windows API的几乎所有功能。
pip install pywin32