我在Quora上看到了这个问题,并开始编写答案。 但是答案太大了,所以我把它变成了这篇文章。
以下是我在过去20年中在编程中发现的一些随机变化:
- 20年前只是理论上的许多概念如今在实践中得到了广泛使用。 例如,功能性范式,例如对象的不变性,尾部递归,惰性集合,模式匹配,一流的功能,以及对那些不使用所有这些功能的人的鄙视。
- “桌面应用程序”使很多人嘲笑带有默认页面且没有地址栏的打包浏览器。
- 尽管面向对象编程(OOP)仍然比其他任何一种方法流行得多,但它已经失去了基础。 Go,Rust和Swift等年轻语言越来越多地使用特质 。 普遍认为,组合优于继承。
- 由于多核处理器的普及,与20年前对操作系统的原始调用的支持相比,如今对语言并行编程的支持更容易找到。 因此,牢牢使用了异步原语(例如async / await),Go中的“协程”或D中的通道等并行协程,以及反应式编程中“可观察性”机制之类的可组合性语义(“可组合性语义”)。
- 像素不再是合适的单位。
- 垃圾回收已成为安全编程的常用方法,但是它紧随年轻的替代方案(如语义)之后,即在Rust中指示对象的生命周期以及代码审查时的笑话。
- 30亿个设备使用Java 。 没错,这个数字十年没有变。
- 依赖管理系统已成为任何语言的重要组成部分。 没有人愿意手动下载或安装任何东西。 20年前,在下载zip归档文件并将其解压缩到项目文件夹之后,我们更新了配置文件,并祈祷一切都不会中断。
- 成为开发团队现在意味着需要执行一项神秘的仪式:上午15分钟一起在贴纸上绘制神秘的符号 。
- 使用该语言时,工具集更为广泛。 以前只有一个编译器,幸运的是有一个调试器。 如今,他们通常会附带一个lint,代码格式化工具,模板引擎,自我更新选项以及使用针对竞争语言的工具的原因列表。
- 甚至编程语言也参与了“制表符或空格”的辩论。
- 幸运的是,Adobe Flash是实现普通Web界面的唯一可行方法,现在它已经死了。 的确,一个单一的标准被三个完全不同的模型的不同框架所取代。
- IDE和编程语言相互删除。 20年前,有一种语言和专门为其设计的IDE,例如Eclipse for Java,Visual Basic,Delphi等。 现在我们有了通用的编辑器,例如VS Code,能够支持许多不同的语言和功能。
- 通常在三层虚拟化之后执行代码。 至少是这样。 在裸机上运行的代码? 不,那会过分生产。
- 跨平台开发是一个标准,因为有许多架构,移动设备,云服务器和嵌入式IoT系统。 20年前,开发工作几乎完全是针对PC进行的。
- 代码开始很少在本地运行。
- 该文档现在仅在线,称为Google。 几乎没有脱机文档。 当她在的时候,没人知道她在哪里。
- 除非是视频,否则许多人认为这些教程没有用。 即使阅读时间比阅读文本花费的时间更长。
- 他们说在发明StackOverflow之前,人们不得不问问题。
- 人们正在Mac OS上进行开发。
- 互联网连接是规则,离线是例外。 过去恰恰相反。
- 黑客保护是您现在在创建程序时必须考虑的问题。
- 移动设备能够显示常规页面,因此对于子域上的网站的移动版本,不再需要WAP页面。 相反,我们为子域上的网站的移动版本创建常规页面。
- 我们很高兴在开放源代码中发布我们的代码。 当然,除了我们感到羞耻的代码。
- 该行业拥有更多才华横溢的女性,非欧洲风貌的人以及LGBT社区的代表,这要归功于每个反对歧视的人。 我认为尚未实现完全平等,但情况比20年前要好得多。 (不要忘记这是翻译-大约翻译)。
- 用户数据泄漏-典型事件。 在这种情况下,会在公司博客中写一篇帖子,建议您紧急更改密码。 通常不要求宽恕。
- 现在,以远程方式进行程序员工作比以往任何时候都容易。 为此,得益于视频会议技术,无处不在的Internet访问和家用咖啡机。
- 我们不再使用IRC进行通讯。 如果我们不必手动驱动服务器地址,那么我们选择了一个更肿的替代方案,称为Slack。
- 我们在视频卡上运行程序。
- 如果您不依赖区块链和AI,那么您的产品就不值钱。 是的,即使集中化和算法驱动的版本更简单,更高效,也更快。
- 1 GB是不够的。
- 由于通过第三方渠道的攻击,我们甚至无法信任物理处理器。
- 现在,编程的重要部分发生在桌上足球比赛期间。
- 由于我们拥有更快的CPU,因此我们开始使用Python而不是Fortran进行复杂的计算。 因此,计算所需的时间大约与20年前相同。
- 创建新的编程语言甚至创建新的设备是一种正常的,正常的爱好。
- 单元测试,就像炒作所能理解的任何其他有用的东西一样,甚至在不需要它的地方也开始使用,最终变成了一种宗教。
- 同事发现您以明文形式存储用户密码时,他们皱着眉头。 但是他们什么也没说:他们自己做。