查看原文
其他

基础软件到底是什么?普奥创始人陈德基以个人经历深入浅出告诉你!

陈德基 计世研究院
2024-11-11


基础软件是啥?我也不清楚,如果人们使用的软件叫做应用软件,那基础软件应该是用来实现应用软件的软件。举例如操作系统、数据库、代码管理软件、编译软件、通信协议软件等,它们是软件世界中最底层最基础的。


开发软件当然要用编程语言。编程语言包括最原始的机器语言,往上是汇编语言、结构化语言如C、面向目标的语言如C++、以及后来的Java、然后是基于Java的如Python、然后有逻辑编程语言如Lisp、最后是接近自然语言的如自动代码生成工具。还有一种图形化编程语言,你设计你想要的,设计的结果就可以翻译成执行软件。早期有个词描述这个叫做WYSIWYG(What You See Is What You Get)。


把编程语言写的代码翻译成机器代码的软件叫编译软件。编译软件是基础软件。我本科的一个课程实习就是写一个小的数据库软件,支持几条基本的数据库查询语言,把用户的查询编译成可执行代码。编译软件其实已经很完备了,不再需要太多的研发。互联网时代各种眼花缭乱的语言如Python、Ruby、PHP等等,都是用Java搭起来了。它们的编译可以先翻译成Java,再用Java的编译器。而Java编译器基本上是翻译成C再用C编译器。C++编译器基本上是翻译成C再用C编译器。我留学时,从清华来的一个学霸说他曾经用C创造了一个类似C++的程序语言。他没有发明C++的Stroustrup有运气;人家是图灵奖级的贡献。


编程语言越来越高级。我女儿10岁时就用Roblox编小游戏了。这其实是一个进步,就好比开车的人不再需要有汽车专业背景。我认识的一位Java程序员,对C语言嗤之以鼻,不会也不想学。当然最优秀的驾驶员往往是汽车专家。


实时操作系统也是基础软件,如华为推出的LiteOS和阿里推出的AliOS。嵌入式编程一般都用实时操作系统。PC上的操作系统基本上统一到了Windows和Unix。我个人认为实时操作系统也最好统一到一个版本,同时最好是开源的。


很多非计算机专业的人事也加入了软件开发的大军,他们有时只需要学会Java。基础软件的开发人员一定要有计算机专业背景,要熟悉各种专业基础知识如数据结构、数据库、操作系统、通信协议等。


计算机专业的程序员还是有必要的,他们开发的软件往往更优秀。基础软件是他们的用武之地。实时系统还很难由非专业人士用Java这类高级程序语言来开发,因为时间参数来自最底层的物理世界。时间参数很难抽象到高级编程语言里,很难被编译软件保真到机器代码。计算机专业的人很清楚一个程序必须有代码针对任何一个可能性,哪怕概率几乎为零。否则程序就可能宕掉,或者被骇客攻击。编程太投入后,我们这种人生活得也很累,做任何事情前都要穷举所有的可能性。


免 费 资 料 下 载






往 期 精 彩阅 读




专家观点 ▏普奥创始人 陈德基谈工业互联网

陈德基谈工业互联网:满天繁星VS月朗星稀!

工业互联网为何被称为实时物联网?

解读1997年火星探测器背后的工业互联网

CPS名词的故事,你知道多少?

为什么说 IT 与 OT 的矛盾是工业互联网发展的关键?

工业互联网站上“新基建”的高地!你了解它背后的标准吗?

互联网给工业互联网带来的跨界打击有多厉害?

【收藏】工业互联网的供应商都在做什么?如何“上云”?

是否可能出现通用性的工业互联网平台产品?从艾默生的DeltaV产品解读这一疑问!

产品?还是项目?工业互联网的供应商到底应该专注做哪个?

普奥创始人陈德基:解读工业互联网平台架构

陈德基谈工业互联网:IIC的测试床

为什么互联互通成为未来工业互联网高楼群的关键

陈德基谈工业互联网:艾默生的早期IIoT工作

工业互联网平台供应商们为什么要合作?

陈德基谈工业互联网:普奥的ProudThink

设备远程运维如何实现互通有无?来看普奥怎么做!

陈德基谈工业互联网:工业3.0如何平稳过渡到工业4.0?

普奥创始人陈德基:工业互联网安全你了解多少?

【解读】普奥创始人陈德基:工业软件该如何定义?

.........


扫码关注我们小助手微信:jsxzs2020(添加时请注明事由!)


更多此类文章,点在看~
修改于
继续滑动看下一个
计世研究院
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存