文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

软件开发的门槛是如何降低的?

2024-12-02 05:56

关注

机器指令集互不兼容,程序不可移植,只能重写。

IBM决定改变这种状况,推出了有着相同体系结构和指令集的机器家族System/360。

计算机厂商众多,硬件和指令集是难以统一的,那就在上面加一个抽象层吧:操作系统。

70年代,AT&T的Ken Thompson 和Dennis Ritchie发明了一个优秀的操作系统:Unix, Dennis Ritchie还发明的伟大的C语言。

Unix用C语言重写以后,变成了一个可移植的操作系统,屏蔽了底层硬件的差异,其上的应用程序也就可以移植了。

但让人没有想到的是,各大厂商和高校推出了自己的Unix版本,最后居然发展出了100多种Unix变体。

为了维护操作系统之间的兼容性,IEEE牵头定义了系统级和用户级的API,Portable Operating System Interface(简称POSIX)。

POSIX标准形成了标准,吸引了后来者入局。

有了POSIX,在不同操作系统间移植软件就轻松了很多。

除了统一操作系统统的API,还有些大神决定对编程语言开刀,在操作系统之上再增加一个抽象层:虚拟机。

虚拟机的出现,彻底隐藏了硬件和操作系统的细节,从此以后,绝大多数程序员只需要考虑业务逻辑就可以了,软件开发门槛再次被降低。

2007年,移动互联网时代来临,新的开发平台出现了。

(注:乔布斯当年从Apple出走,创立NeXT公司,推出了NeXTSTEP操作系统,这个系统的原生语言就是Objective-C,而macOS和iOS都源于NeXTSTEP,所以iPhone选择Objective-C也算一脉相承)

Java 没有在iPhone中安家落户,但是却进入了Android手机。

Android和iOS成为两大手机操作系统,互不兼容。

应用开发再次分裂,变得不可移植。

一个公司要开发原生App,必定要维持两套班子:iOS程序员和Android程序员。

iOS和Android差异巨大,很难像POSIX那样统一接口,也很难再通过虚拟机来屏蔽掉差异(Android本来就运行在虚拟机之上)。

这该怎么办?

Facebook推出了一个方案:用JS写App,通过React Native来“翻译”成原生的界面。

Reactive Native 是用JSX语法写界面和逻辑,可以实现热更新,但是毕竟它毕竟和原生API直接隔了一层,有一个“翻译”的成本,还是比不上原生的效率。

Google则走了另外一条路,推出了Flutter。

但是,这两套方案都有着这样那样的缺点,手机端应用的可移植性还任重而道远。

在未来,也许会出现一个新的技术或者平台,彻底解决手机应用可移植性的问题。

即使统一以后,新的平台(物联网?)很可能还会造成新的分裂。

纵观软件这几十年的发展,就会发现一个特点:

为了弥合各个技术平台的差异,实现软件开发大一统,抽象的层次越来越多、越来越高。

但是每一次统一以后,新的技术平台很快出现,再次分裂。

真是应了中国的古话:天下大势,分久必合,合久必分。

来源:码农翻身内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯