大家好,我是IT技术爱好者,高中毕业生,今日有幸第一次来CSDN发博文!
高二时在网上看到国产操作系统deepin,于是按照教程一步一步地装在了我的HP笔记本上,且成功实现了与Windows双启动。
后来了解到deepin是基于GNU/Linux内核开发的。我很快就爱上了深度终端,学会使用apt安装软件,还学会了写最简单的shell脚本。
再后来,deepin升级后不能连WiFi,于是换了许多GNU/Linux发行版本。这时我了解到,很多开源与自由软件社区,是来自全世界的千千万万志愿者共同组成的,他们常常在论坛中积极交流,提交代码,为世界做贡献。
受到开源与自由软件精神的洗礼,我决定未来加入他们。我自学了一些编程语言,其中包括C语言、Java、Python、Ruby等等。
以下内容是给同是编程小白的读者观看的,不喜勿喷。
优势: 著名的企业级编程语言,许多解决方案由它编写而成。它跨平台(Write Once, Run Everywhere),安卓软件就用它编写。代码可读性强,有强大的标准库支撑,框架丰富,支持先进的编程理念如泛型、Lambda、面向对象编程等等。JVM在运行时对Java字节码进行优化,使得程序能以接近原生软件的速度运行。
劣势: 占用内存空间较多(别的咱不说,JVM本身是要占一定空间的),并发性不够强(在GC时可能发生阻塞),代码冗长臃肿。
我现在用的是CSDN手机版,想知道CSDN能不能支持Markdown造型的内嵌代码。以下我用三反引号打出Java代码,长得丑勿喷。Okay,上Hello World。
```java
public class HelloWorld{
public static void main(String[] Args){
System.out.println("Hello World!");
}
}
```
优势: 作为客户端脚本,它编写方便,功能强大,能借助Web API干惊天动地的大事。作为服务端脚本,能更好的发挥异步处理能力,并发性较强。常常用于网页开发与软件设计。其衍生语言JSON是数据处理的极佳工具。
劣势: 运行速度慢,且对多线程支持不够。
优势: 最好的编程语言(当然这是一个梗),编写方便,可读性强,支持面向对象,是优秀的服务端脚本,被誉为“胶水语言”。PHP的包管理器composer挺好用的。
劣势: 运行速度慢。
优势: 堪称上古神器,应用广泛,可以从操作系统做到上层软件,很多其他语言都是由C/C++造出来的。属于中层语言,对底层的掌控能力仅次于汇编语言。C++在图形学,游戏开发等领域有着巨大成就,且拥有大量先进成熟的编程理念与框架。通过编译成WebAssembly字节码,可以让其接轨Web编程。
劣势: 需要手动GC,容易发生内存安全问题(想想漫天飞的野指针,那酸爽~)。过于底层,编码很累(想想Windows API各种晦涩难懂的调用,想想Qt/GTK+数以千计的类和函数)。
优势: 堪称万能语言,有庞大的第三方库(PyPi了解一下),也可以作为控制台的shell。其在科学运算、GUI编程、网络爬虫、自动化办公、云计算、大数据、人工智能等领域应用广泛。可读性强,编写简易。
劣势: 在大多数情况下仅当做工具使用,并非用作主力(这是事实,仅仅靠学好Python就能当个月入过万的程序猿是不可能的)。极少用于移动开发。
前者是某日本人打造的纯面向对象语言——“面向对象”到骨子里去了,几乎啥都是对象,操作符是语法糖,方法是对象,类也是对象,一切方法均为虚方法,可以随意重载覆盖(你甚至可以把加运算符“+”弄成减法运算或者其他操作),用名称来决定是否为常量,还支持元编程。这种疯狂的操作是C#/Java所不可想象的。带来方便的同时也带来一定的风险,不知不觉就会给运行环境打了个“猴子补丁”。RubyOnRails是著名的Web框架,听说GitHub就在用哦,据说很多人就是为这个而学Ruby的。
后者是一群Ruby爱好者打造的基于LLVM的编程语言,据说它的第一个编译器就是用Ruby写的。两者语法几乎完全相同,而前者是脚本,后者是静态语言可以编译成高效率的可执行文件,非常神奇。如今它的生态还不够完善,很多框架在编写中,不过它的Web框架Lucky挺好用的。