开发语言的选择对于很多想从事软件研发的工程师来说,是第一道门槛,类似“哪种开发语言最有前途”这种问题在知乎上随处可见。
先说结论,如果想在某个行业内深耕,C/C ,Java二选一。
对于任何一门语言来说,语法 功能都大同小异,决定一门语言前途的是它的用户群,行业应用,以及生态链。语言就好比是花拳绣腿,内力才是真功夫核心。
以工业软件为例,几何内核,网格划分,Boost库,Poco库,图形渲染,HPC,分布式计算,GUI组件等等清一色全部是C/C 开发,而线性方程组求解库,开源数值计算库也绝大部分C/C 开发。简单讲,要想在任意一个方向发展或成为系统架构师,C/C 都是必备的技能。
系统工程需要考虑现有功能的开发,还要考虑第三方库的替代,软件的移植性,扩展性,平台性等,综合考量C/C 是最佳选择。
至于流行的语言Python,C#,go等都是上层应用的存在,可替代性很强,隔几年都会有新语言出来。另外需要说的是Fortran,虽然早年很多数值计算开发都是Fortran语言,包括CodeAster,但无论是从功能还是从系统工程角度看,都已经无法适应软件快速迭代开发。
所以,学好C/C !
从技术角度聊聊“系统工程”