美文网首页
从历史看编程

从历史看编程

作者: 翻身小白菜 | 来源:发表于2020-06-17 15:03 被阅读0次

    不是因为有了计算机才有了编程。而是,因为有的编程,才创造了计算机。

    编程早于计算机


    当你想到编程是不是想到的是密密麻麻的代码,或者不管变化的数字?其实编程的目的是通过逻辑计算解决现实的问题,而写代码是实现目的的方式。
    在计算机软件编程出现之前,就已经有了对编程的探索。1700年代,莱布尼兹(对,就是发明微积分和二进制的莱布尼兹)尝试用逻辑语言描述各种事物,计算出事物的结果。但是,莱布尼兹只是提出了构想,随后,布尔把它进行了体系化,但是编程计算机的梦想依旧没有实现。
    到19世纪中叶,英国人Ada利用打孔纸袋写出人类第一个软件程序,这个程序还包含循环和子程序。因此,Ada被认为是第一个程序员/媛。这时距离计算机的发明还有100年。


    Ada

    什么是计算机


    真正的计算机是40~50年代诞生。
    最早的计算机编程需要程序员将电线编来编去,以控制计算机的执行(所以,才叫编程?)。不过,很快就有了机器指令编程。
    但是,机器语言是面向机器的,对人来讲,太难写、太难读、太难改!为了解决机器语言编写、阅读、修改复杂的问题,汇编语言应运而生。
    但是,无论是机器语言,还是汇编语言都是面向机器编程的。而人更习惯按照自己的逻辑去编程。因此,出现了各种结构化的语言,以及高级语言,强调的是逻辑,实现了莱布尼兹最初的编程思想。

    从面向过程到面向对象


    高级语言解放的程序员,使程序员可以面向逻辑去编程。早期程序员是单打独斗的,或2~3人开发一个系统,高级语言可以满足需要。
    但是随着开发的系统越来越大,越来越复杂,原来的编程方式无法组织更多的程序员协作,失败的项目越来越多,软件质量也得不到保障。
    究其原因,编程的方式如果按照逻辑,每个人的理解不同,多人无法协作编程。
    在这个背景下,人们思考尝试,产生了经典书籍《人月神话》,产生了结构化程序设计方法,产生了面向对象的思想
    编程的目的是,用计算机解决现实世界中的问题。编程的过程就变为,将现实世界中的问题,包括问题相关的实物和概念(领域问题)分析抽象出模型,并由此设计出软件系统。


    而面向对象的程序设计,直接表达问题空间内的元素。但是现实世界和对象模型又很多不一致,使面向对象有困难,合作还是很多面向过程。如,现实世界用户创建了订单,但是编程时很少写User创建Order。
    因此,面向对象又进一步发展。典型的,如,领域驱动设计(DDD)可以认为是面向对象的一种落地实践方式。

    PS:正在学习《架构师训练营》,学习思考汇总,如有不完善,欢迎探讨

    相关文章

      网友评论

          本文标题:从历史看编程

          本文链接:https://www.haomeiwen.com/subject/ljfsxktx.html