关于编程语言的选择与体会

  版权信息:
● 本博客使用CC 3.0协议,转载请保留该信息。
● 原文作者: 戴晓天 @ 云飞机器人实验室
● 原文地址: 关于编程语言的选择与体会

从我最早接触编程至今已有近10年时间,当时是在初中时,通过文曲星编写了几款基于文字和简单图形的游戏。高中时因没有相关条件与指导,慢慢就荒废了下来,中途曾经因为计算机考试学过一段时间VB,但就当时的知识能力,并没有学习的很深入。上大学以后,学校开设了C语言和VB的相关课程,加之之后对单片机和嵌入式系统的狂热,让我更加深入的接触了计算机编程的原则与方法。

我虽然不是计算机专业出生,但在学习、工作中还是经常会接触到程序编程。我主要使用的依然是C语言,但是因为涉猎较广,还是接触了很多其他的编程语言。这里,我想把所有使用过的编程语言的优缺点罗列、整理一下,作为一次回顾。

BASIC:较为古老的编程语言,开发环境是基于命令行的,条件、跳转很不方便,现在已经很难见到。

VB:可视化BASIC,在BASIC上作了大量拓展,可以快速构建一个图形用户界面,但是能实现的功能比较简单。在工控上经常能见到,老工程师都会。

C:C语言作为基础性语言,广泛用于单片机与Linux编程中,其直接操作内存和硬件的特性,使其非常适合编写系统底层程序。C语言可以很好的完成单一任务,如一个算法的验证,但无法完成框架复杂性高、以及需要图形界面的场合。

C++:面向对象,结构化的语言,相比C语言可以实现更加清晰的程序框架。一般使用Visual C++作为开发环境,配合MFC程序框架可以实现功能复杂、通用性好的Windows程序。网上很多源代码都是基于VC的,但是其开发效率有点低下,并且实现复杂的图形界面比较困难。

C#:新一代的编程语言,结合了C++的面向对象以及VB的可视化开发的优点,又可以说是一种类JAVA语言。C#的开发效率高,图形绘制,数据库的功能强大,但目前对我来说的阻碍是很多开源软件对其的支持还不够,就如Win7一样兼容性还不够,随着时间的推移这个矛盾应该会逐步化解,我也准备逐步由C++转向C#开发。

Java:我接触Java并不多,初步感觉其对象化实现的很好。Java之所以生命力顽强,是因为其基于虚拟机的特性。虽然这降低了系统的运行效率,但是却实现了跨平台支持。目前由于Android开发的火热,很多人都在从事Java开发,我最近也有打算了解一下Android开发,届时也可以更深入的了解Java语言。

Lua:强大的脚本语言,初步体验了一下,感觉其扩展性、灵活性非常好,但是脚本语言与一般编程语言在设计思路上有一些不同,对我来说有一些难用。

Shell:Linux下的脚本语言,可以实现BATCH批量操作,甚至很多复杂的程序也可以通过Shell实现。

Matlab:擅长矩阵运算,建模能力强大,主要实现算法验证。但不适合用于设计大型程序,与一些上位机有接口,其作为一个组件使用可能更合适。

Python (修订于: 2017-05-12):目前最主流的科学计算脚本语言。相对MATLAB,Python有强大的开源社区支持,通过NumPy + SciPy + Matplotlib可以实现近似Matlab的科学运算编程。而DeepLearning的相关库 (TensorFlow, Theano, Keras) 也都有Python的对应版本。

%d bloggers like this: