46亿年前
太阳系诞生,地球诞生
地球环境的化学反应(火山海洋闪电等)产生有机物(氨基酸等),基因逐渐形成…
各类生命开始起源,并在地球环境作用下(生存空间等),生命开始优胜略汰…
群居生命占据优势…
6亿年前
各类生命出现大脑结构…
…
500万年前
古人类形成…
20万年前
古人类最近一次迁徙出非洲(由于生存原因),随后逐渐占据全世界…
4万年前
智人形成,大脑抽象思维能力占据优势…
7000年前
人类产生文明(社会分工、阶级、高级生产工具、文字)…
…
古印度人发明10进制计算方法
…
1645年
布莱斯·帕斯卡(法国人,数学家) 为减轻其父亲作为税务官的工作负担,发明机械计算器,可进行加减法
1674年
莱布尼茨(德国人,哲学家/数学家) 受帕斯卡影响,发明机械计算器,可进行四则运算
1679年
莱布尼茨 发现2进制计算方法,
1684年
莱布尼茨 发现微积分
…
1834年
巴贝奇(英国人,数学家/发明家) 发明分析机,由蒸汽机驱动,使用10进制,输入输出采用打孔方式,最终没能真正造出来
…
1921年
冯·诺依曼(匈牙利犹太人,数学家) 进入德国柏林大学开始学习
193?年
冯·诺依曼大胆的提出,抛弃10进制,采用2进制作为数字计算机的数制基础
1938年
同样受莱布尼茨2进制启发,康拉德·楚泽(德国日耳曼人,工程师) 独自研制出人类史上第一台计算机模型(目的:制造飞机):使用继电器的可编程计算机Z-1
1939年
人类二战开始
1944年
冯·诺依曼 参加美国人原子弹的研制工作,工作计算量巨大,费时费力
1944年夏天
冯·诺依曼 巧遇 美国弹道实验室负责人,并加入研制ENIAC机
1946年
ENIAC机投入运行,ENIAC机被认为人类史上第一台电子计算机
…
1955年
德国的应用数学和力学学会(GAMM) 设立 通用但与计算机无关的算法语言的开发委员会
1950年代末期
大量的新增计算机语言涌现
1956年
约翰·巴克斯(美国人,计算机科学家) 发明世界上第一款高级语言FORTRAN(和普通语言表达式接近)
1958年
GAMM发明算法语言ALGOL(高级语言)
1960年代
软件危机:由软件错误引起的各种错误。为此,面向过程编程(OPP)思想诞生(自顶向下,把复杂任务拆分,逐层细化,最终形成由若干独立模块组成的树状层次结构),标志: 发明Pascal语言
1960年代末期
应用计算机的领域不断扩大,而且需求越来越高,业务逻辑越来越复杂,此时,使用面向过程编程(OPP)的思想开发程序,开发效率低下。
1968年
挪威科学家Ole-Johan Dahl和Kristen Nygaard发明了编程语言Simula 67正式版,引入了面向对象编程(OOP)的概念(以人类认识客观世界的角度):对象(Object),类(Class),子类(Subclasses),虚拟方法(Virtual Methods),垃圾收集(Garbage Collection)等… 极大地提高了开发效率
…面向对象编程持续影响中(因为这个编程思想能更自然地表现现实世界)…
面向过程
特性 :功能模块化,代码流程化
优点 :性能高,适合资源紧张、实时性强的场合
缺点 :没有面向对象易维护、易复用、易扩展
面向对象
特性 :抽象、继承、封装、多态
优点 :易维护、易复用、易扩展、低耦合
缺点 :性能比面向过程低
…
1990年
Xerox公司的Palo Alto研究中心发现了面向对象编程(OOP)的一些弊端,以其为基础,改进发明了面向切面编程(AOP)的思想(更好地对业务逻辑进行隔离,降低耦合度,提高程序的可重用性,同时提高开发的效率)
1994年
詹姆斯·高斯林(加拿大人,计算机科学家) 展示发明的Java语言,基于面向对象编程(OOP)
1994年
书籍《Design Patterns - Elements of Reusable Object-Oriented Software》首次提到了开发中使用设计模式
作者指出,设计模式主要是基于以下的面向对象编程(OOP)的设计原则:
对接口编程而不是对实现编程。
优先使用对象组合而不是继承。
2000年
微软公司发布C#语言,设计者Anders Hejlsberg(丹麦人,计算机科学家),与java一样,也是基于面向对象编程(OOP)
2004年
Rod Johnson等人发布了java环境下的Spring框架,该框架以面向对象思想为基础,核心编程思想:控制反转(IOC),依赖注入(DI),面向切面编程(AOP)
2016年
微软公司发布C#语言下的 .NET Core框架,使代码能够跨平台运行。
03-26
1716
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
07-17
4427
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
08-17
08-17