说明

周末刷了一下视频 – 编程的未来,1942年出生的Bob大叔,1个小时20分钟全程手舞足蹈的讲解了编程的历史和未来。讲述了程序员的历史1945年第一台计算机开始,只有一位程序员,到目前为止全球程序员数无胜数。新语言如雨后春笋般爆发,以后的未来是增强版的敏捷开发 + 重拾极客专业精神。整场演讲解析:程序员为啥是从以前的高门槛数学家,到编程没有门槛的年轻人;为啥需要敏捷开发;为啥敏捷开发失效,重拾极客精神。

Bob大叔原名Robert C. Martin 。1970年开始从事编程工作(18岁),敏捷的鼻祖,著著名书籍有《敏捷软件开发 原则、模式与实践》、《架构整洁之道》。

youtube视频链接如下:
“Uncle” Bob Martin - “The Future of Programming”

刀跟火种的年代

1945第一台计算机,1位数程序员

毫无疑问这就是计算机之父Turing图灵。他是数学家,科学家。那个时候程序员要求可真高。

  1. 用二进制编程
  2. 操作整数的加,和逻辑否操作
  3. 发明子函数
  4. 发明栈
  5. 发明浮点数

1953年发明Fortran语言,那个时代都是手写在纸上。程序员写好程序,交给计算机硬件厂商去给硬件编码,程序员是不能碰到计算机的。有时候仅仅是因为一个标点符号,程序就败下阵来。

函数式编程的鼻祖Lisp,经过几十年的风风雨雨,发现函数式编程正在流行。

1965年,计算机设备租用一个月$2,500 (相对于现在$20k).

1965年,程序员的数量在数十万(100, 000)。

1945年只有一位程序员图灵,到1965年有数十万程序员。Bob大叔那个时候13岁。

1965年的程序员不一定是数学家,TA们是经验丰富的行业专家,非常自律,专业。所以,基本上都是30多岁到50多数的多年工作者。

上帝说要有光 – 面向对象

1966年Ole-Johan Dahl, Kristen Dygard 发明了面向对象。

1968年Edsger Dijkstra 发明Goto跳转逻辑

Unix之父Ken Thompson(坐着的科学家),C语言之父Dennis Ritchie(站着的科学家,也是Unix开发者)

1970年销售的计算机PDP8s, 售价$50, 000

1970年程序员数量达到百万级别

1970年以后,成千上万的年轻程序员加入,TA们的特点是特别年轻,并且基本上都是男性。比如Bob大叔,那个时候18岁,一个月的工资都可以买车,当然美国汽车也就几千块钱。

程序媛从1985年以后,就像程序猿那么增长,反而往下走的趋势。

1985年的程序员还是比较专业,自律,不需要项目经理去监督。程序员知道怎么管理时间,沟通,一起工作。程序员知道截止时间,和按时教父。

门槛降低,机器性能快速发展

IBM开发出虚拟内存系统,NASA Apollo登月,数据结构,函数,面向对象普及。Unix系统出现,高级语言普及。

大量的雄性程序员已经失控,需要项目经理贴身安排进度。

2001年敏捷宣言

敏捷开发宣言,背景中有Bob大叔。

敏捷开发纪律

极限编程

没有敏捷开发,程序会越来越难维护。没有可追溯机制,所以持续集成CI, CD持续发布出现。

图灵,自律才能创新。

2010年以后 – 程序员失控

Scrum的美好愿望

过渡的流程化,程序员的技能受限。

程序员反叛。

一个高效的有纪律的商业,加上没有纪律的程序员团队,会快速产生垃圾。

项目经理的真实场景

敏捷的未来2016

敏捷开发如果少了技术的最佳实践,那就是假的敏捷。

解决之道:敏捷必须成长,重拾极客精神,最佳实践。

文化依赖于我们,需要有同理心。

程序是不可控的,人是可控的

Objective-C的兴起-- 完全是意外

Objective-C 在80年代都处于无人问津的语言,那个时候乔布斯创建了Nextstep电脑公司(销售基本无人问津),就收购了Objective-C。最后乔布斯又被请回Apple,Apple收购了Nextstep,才把Objective-C摆正了位置。

所以语言是哪个会流行,完全是意外。

编程的未来 Java, C, Go, Swift, Dart? Uncle Bob Martin - The Future of Programming相关推荐

  1. 从Java/Android到Swift iOS开发:语言与框架对比

    今天分享的主题是Java/Android开发人员如何快速上手Swift iOS开发.主要内容如下: WhyFrom Java/Android to Swift Swift语言为什么值得学习? Java ...

  2. jar java classpath_win7中java编程工具安装 java环境变量设置

    win7中java编程工具安装 java环境变量设置 Question:编译是显示'javac'不是内部或外部命令,也不是可运行的程序或批处理文件 解决: 在[系统变量]里编辑java_home.cl ...

  3. 《编程导论(Java)#183;1.4.1 范式》

    这个楼主,是我的学生么?2013年写的! 嗯."编程范式或许是学习不论什么一门编程语言时要理解的最重要的术语".这句话早在2005年出版<Java程序设计>(宋中山,严 ...

  4. java方法重载编程_学java教程之普通方法重载

    学编程吧学java教程之普通方法重载发布了,欢迎通过xuebiancheng8.com来访问 先来看什么是普通方法重载呢,先来看一个例子 public class Person{ String use ...

  5. socket编程报异常java.io.EOFException

    socket编程报异常java.io.EOFException 参考文章: (1)socket编程报异常java.io.EOFException (2)https://www.cnblogs.com/ ...

  6. 《快乐编程大本营》java语言训练班-第4课:java流程控制

    <快乐编程大本营>java语言训练班-第4课:java流程控制 第1节. 顺序执行语句 第2节. 条件分支语句:if条件语句 第3节. 条件分支语句:switch 条件语句 第4节. 条件 ...

  7. 怎么才能学好Java编程写好Java代码?

    动力节点Java培训最新上线Java实验班,等你来测试自己适不适合学习Java编程哦! 刚刚接触Java编程的朋友总会遇到一些情况,比如:跟着Java基础教程看过一遍后,自己写代码的时候却无从下手:写 ...

  8. formatter java_Java编程中的Java Formatter是什么?

    Java编程中的Java Formatter是什么? 作者:admin 分类:PHP, JAVA, .NET文章 时间:2017-03-30 21:13:02 点击量:1428 Java Format ...

  9. 《编程导论(Java)·9.3.1回调·3》回调的实现

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/yqj2065/article/details/31441221 接<9.3.1Java回调 · ...

  10. Wolfram 语言之父 Stephen Wolfram :编程的未来

    以后说到编程,我们想到的不单单是程序员了.未来的生活与计算机紧密相连,编程的未来与我们息息相关.用计算机完成我们所有感兴趣的事可能成为现实. 作者 |Nick Heath 译者 |弯月,责编 | ma ...

最新文章

  1. iOS日常工作之常用宏定义大全
  2. Flex开发中遇到未整理资源
  3. c语言使用求余方式的转化为二进制程序,C语言第三讲 程序结构 (下).ppt
  4. js实现代码类似w3School演示效果
  5. python的作用域分别有几种_python中作用域与函数嵌套
  6. HTTP缓存与Spring示例
  7. C ++ 的 背 影
  8. python生成白噪声与纯随机检验——Ljung-Box检验
  9. k8s中yaml文件pod的语法(转)
  10. 嵌入式系统开发快速体验
  11. 我用 Python 集齐了支付宝五福!
  12. 《Javascript秘密花园》学习笔记(下)
  13. [更新设计]跨平台物联网通讯框架ServerSuperIO 2.0 ,功能、BUG、细节说明,以及升级思考过程!...
  14. 华为、H3C、锐捷、思科四大厂商交换机配置命令,网工人不得不知
  15. Excel·VBA自定义函数判断单元格元素相同/重复
  16. java foreach循环语句_Javaforeach语句
  17. Ubuntu20详细安装步骤
  18. unraid应用_套娃自动备份unraid系统u盘_NAS存储
  19. 第九章:项目资源管理-0316
  20. VS2022 MAUI Hello World——Windows平台及Android平台效果

热门文章

  1. ribbon基于接口配置超时_Spring Cloud Ribbon配置详解
  2. 简述计算机的四代发展阶段 以及电子器件,2014计算机作业1答案
  3. Android游戏SQL注入,关于Android contentprovider sql注入问题
  4. pymysql数据库使用教程_小白进阶之路,如何使用pymysql直连数据库?
  5. 利用iis服务器创建站点,如何使用iis建立一个网站
  6. JavaScript内置的Math对象(附实例)
  7. ASP.NET MVC中Area的另一种用法
  8. 用策略屏蔽135 139 445 3389端口+网络端口安全防护技 .
  9. [笔记] 线段树的兄弟姐妹们
  10. LeetCode 144. Binary Tree Preorder Traversal 20170706