编程世界发展史(1)——从Simula 67到UNIX战争

------来自《什么塑造了今天的编程世界》

1967年,Simula 67在挪威面世,引入了面向对象编程中最重要的一些概念(类、对象、继承、虚函数等),它对C++,java,C#的设计都有影响。

高德纳 (Donald Knuth,《The Art of Computer Programming》的作者) 在审阅出版社样书时觉得书中的数学公式排得太难看,所以发明了数学排版软件Tex和定义矢量字体的编程语言METAFONT。太强了**...O_O...**

传奇计算机科学家迪杰斯特拉( Edsger W.Dijkstra) 在1968年发表了*《Go To Statement Harmful》(Go To语句有害论),"数年来我观察到,程序员的素养是一个递减函数,其中的变量是他们写的程序中出现Go To 语句的密度。"*🤣

1969年10月29日,阿帕网 (ARPANET)问世------人类在互联网上发出第一条信息:LOGIN(后面三个字母没发出去)

1970!

计算机系统中最常见的纪年就是UNIX纪年:1970-01-01 00:00:00 开始,每秒递增。也因为此,到2038-01-19 03:14:07,时间就会累积到32位的存储空间的最大值2147483647---------当跳完2147483647那惊心动魄的最后一秒后,所有用到这种"标准时间库"的C语言程序都会碰到时间计算上的麻烦。

1970年,尼克劳斯·沃斯 (Niklaus Wirth) 开发的Pascal 问世了,简洁优美、编译速度快都让这门语言广受欢迎。他还还提出了"结构化编程"的概念,并凭借那句***"** Algorithms+Data Structures=Programs**"***拿下了图灵奖。

1970年,埃德加·科德(Edgar F.Codd )发表论文*《A Relational Model of Data for Large Shared Data Banks》* ,也就是关系数据库的提出,Oracle就是根据科德的理论实现的。

贝尔实验室的肯·汤普森和丹尼斯·里奇在他们的论文里说:"Unix is very simple, it just needs a genius to understand its simplicity." (有被点到**...(⊙_⊙;)...**?

事实上,Unix的这次公开露面也为后面的Unix战争埋下了导火索。

1972年,艾伦·凯 (Alan Kay) 和团队开发出来第二门面向对象语言------Smalltalk ,采用了动态信息传递机制(关注object还是Messaging?),在它的影响下,1984年Objective-C诞生了,直到2014年Swift诞生前,它都是评估公司软件生态中最重要的开发语言。

IBM在20实际60年代进行System/360大型机研发,被视为"计算机发展史上的一次豪赌",赌得很成功,尽管其中OS/360操作系统的开发用了5000人年------"有史以来最可怕的软件开发泥潭" 。这个项目的负责人或许被这个项目的开发过程启发,在1975年出版了*《人月神话》* ,探讨 "The Mythical Man-Month(人月迷思)"

70年代后期IDE出现了,但是直到现在,还有不少人坚持不用IDE,IDE好不好的争论还是进行时。

20世纪80年代到90年代初Unix的各种商业化版本和非商业化版本混战开始,也就是Unix战争。这场没有硝烟的战争涉及商业、法律、专利、诉讼等诸多主题,几乎所有的知名企业都没能幸免,唯一的正面影响是,诞生了POSIX标准。

相关推荐
暴走约伯13 小时前
【VFX工具链源码拆解 09】终极工业化闭环:基于 ID 规则驱动的全自动场景建档、骨骼挂载与男转女场景迁移
unity·c#·游戏引擎·材质
布莱克60515 小时前
Swift 条件语句详解:从 if 到 switch 的完整指南
开发语言·ssh·swift·switch·条件语句·guard·if
用户788477316341 天前
WinForms 迁移 WPF:Upgrade Assistant 覆盖 30%,剩下 70% 我手写了六周
c#
寂寞的船2 天前
【Unity知识速递】第13期 Unity 内存泄漏排查实战:从 Memory Profiler 到 Lua 引用泄漏的生产级全链路诊断
unity·junit·c#·游戏引擎·lua
用户3721574261352 天前
C# 提取 PDF 附件:包括文档附件和页面注释附件
c#
寂寞的船2 天前
【Unity Bug挑战】第12期 Awaitable 二次 await 死锁之谜 —— 为什么同一个异步操作等两次就卡死?
unity·c#·游戏引擎·bug
布莱克6052 天前
Swift 常量详解:从 let 到编译期优化
服务器·开发语言·ssh·swift·常量·let
布莱克6052 天前
Swift 可选类型(Optionals)详解:从原理到实战
开发语言·安全·ssh·swift·optional·可选类型
huaqianzkh4 天前
WinForm C#:循环修改控件UI闪烁卡顿?SuspendLayout / ResumeLayout 与 BeginUpdate 优化
开发语言·ui·c#
fthux4 天前
总想着“忙完再休息”?让 Tick Rest 提醒你,先歇一会儿
开源·github·mac·swift·提醒·消息提醒·tick rest·tick rest for mac·消息提醒app