在小编的前面两篇文章中介绍了学java和python需不需要学习linux。各位细心的读者会发现,好像学习linux跟编程没有啥关系啊,那学linux有啥用?去做一个管服务器的运维吗?非也,小编的这篇文章会让你发现,部分语言,还真的是需要学linux的。

首先我们回忆一下java和python不需要学习linux的一个重要的因素:它们都有一个特性——跨平台可移植性。这个特性主要是跟谁区分的呢。没错,是跟一众跨平台需要分别编译的语言(主要是C/C++这一类语言)。以C++为例,首先不同的操作系统的运行时环境就有所区别,代码也有可能因此产生区别。因为使用的编译器可能有所不同,所以最后编译出来的结果也会有所区别。一个很典型的例子,在visual C++6.0版本中允许 ​void main()​ 的存在,而且在很多国内的c语言的教材中都有所出现,但是这样的代码不能在GCC编译器下通过。而且最新的C++语言规范中也不允许这样的写法(微软的规范与C++规范大致方向相同但还是有一定区别)。而Linux系统使用的是GCC编译器(也有可能使用别的编译器,但GCC是linux自家的编译器(GCC和linux同属GNU,GCC出现的最初目的就是为linux提供C语言的编译支持))。所以一个项目,使用linux和Windows,不仅最后编译的文件不同,甚至连编译前的代码也可能有所不同。这就导致了Windows和linux的代码之间不能互通。

我们知道,最终项目部署在服务器上,而服务器很大可能是linux,所以,最终编译的代码,肯定是要能在linux上运行的。那么作为开发而言,最好的解决方式就是使用linux进行编程,编译完代码后再放到Linux服务器上,这样就不会出现不兼容的问题了。

当然,针对这个问题,微软也作出了很大的努力,visual studio作为地表最强IDE,它其实是完全支持C++规范的,之所以会出现略微区别是因为微软为了兼容以前因为标准不健全而设计的产品遗留下来的问题(还是那个​void main()​,这就是典型的不规范的c++写法,但规范的c++写法vs也是完全支持的,你会发现只要GCC能跑的代码,visual studio都能跑)。不过尽管如此,visual studio也没有办法完全抹去Linux的影响,最终还是需要Linux进行整合。

以上这种情况如果用一句简短的话概括,就是,编程语言是跨平台的,但是它们的系统底层(编译器和运行时环境等)并不是跨平台的,所以这种语言不能跨平台运行,有这种问题的不止c/c++,还有Pascal(Delph) 等语言。

所以,在使用这些不能跨平台运行的语言的时候,考虑到最终部署的服务器是linux,最好用linux进行编程,而不会使用linux,无疑会对编程产生很大的影响。当然了如果使用的是可以跨平台的语言的话,编程就可以采用Windows编程了。虽然最后部署还是需要linux支持,但是因为有专门的运维负责linux的操作,所以使用跨平台编程语言的小伙伴可以不学习使用linux。

以上就是小编对“学编程需要学linux吗”的全部介绍。如果需要学习linux,linux微课是一个不错的选择,可以帮助各位读者在较短的时间内掌握linux的基本使用,恰逢618编程狮年中大促,还不抓紧时间赶紧上车?