通过Smalltalk回到未来

这正在损害我们的生产力。 随着软件变得越来越大和越来越复杂,它需要花费更长的时间和更多的精力来编写软件。 我们需要更好的工具。 我们需要摆脱过去。

具有讽刺意味的是,40多年来,软件开发的未来一直盯着我们。 叫做Smalltalk。

艾伦·凯(Alan Kay)的“ Smalltalk的早期历史 ”(?1993 ACM)提供了更多的见解:

Smalltalk是计算机本身概念的递归。 每个Smalltalk对象不是将“计算机的东西”划分为每个整体都不如整体强的东西(如数据结构,过程和函数,它们通常是编程语言的附属工具),而是递归了计算机的所有可能性。 因此,它的语义有点像通过快速的 络将成千上万的计算机连接在一起。

Smalltalk的贡献是一种新的设计范式-我称之为面向对象的 -用于攻击专业程序员的大问题,并使新手用户可以解决小问题。 面向对象的设计是成功地定性提高建模效率的成功尝试,而这种效率越来越高的动态系统和用户关系因硅爆炸而成为可能。

Smalltalk是一种历史悠久的杰出语言。 这是它最大的成就:

  • Smalltalk还向世界介绍了语言虚拟机 ,它也是Java和Ruby所基于的语言
  • Smalltalk开创了JIT(即时)编译的先河。
  • Smalltalk是第一个支持实时编程和高级调试技术的图形语言工具,例如以非常用户友好的格式执行过程中的即时检查和代码更改。
  • 自从Smalltalk-80(在1980年)以来,它具有一流的功能和闭包,奇怪的是,它使Smalltalk非常适合函数式编程。
  • Smalltalk引入了软件架构模式MVC(模型-视图-控制器)。
  • 在很大程度上,Smalltalk负责为我们提供测试驱动开发(TDD)和极限编程(XP),它们在当今的标准敏捷实践中都非常有影响力。
  • Smalltalk使“鸭子打字”成为家喻户晓的单词。
  • Smalltalk率先开发了对象数据库,其中GemStone / S是一个很好的例子。
  • Smalltalk为我们提供了第一个重构浏览器。
  • Smalltalk在开发图形用户界面(GUI)和“所见即所得”(WYSIWYG)用户界面方面发挥了重要作用。
  • 史蒂夫·乔布斯(Steve Jobs)受到施乐PARC的GUI和WIMP(窗口,图标,菜单,指针)的启发,以完全调整苹果的战略。 GUI是Smalltalk工作的直接流出。

从那时起,Smalltalk直接启发了许多其他OOP语言,包括Objective-C,Python,Ruby,PHP,Perl,Erlang,CLOS,Dart,Java,Groovy和Scala。 苹果甚至为Macintosh创建了Smalltalk。

特别是,Objective-C在IT行业产生了巨大的影响。 它的语法本质上是C和Smalltalk之间的交叉。

使用Objective-C为Steve Jobs的NeXT计算机公司编写NeXTStep操作系统。 NeXTStep最终演变为macOS,并且从那时起,Objective-C已被用于编写大量的iOS应用程序。

Smalltalk非常适合企业使用,因此在1990年代,IBM选择Smalltalk作为VisualAge企业计划的核心,以取代COBOL:

救赎:海边的故事

Smalltalk通过Seaside Web框架在Web空间中赎回了自己,这在如何编写Web应用程序方面开辟了新天地。

在Seaside的 站上 ,以下是框架的主要卖点:

  • 程序化HTML生成。 很多标记都是样板:列表,链接,表单和表格的相同模式在页面之间逐页显示。 Seaside具有用于生成HTML的丰富API,使您可以将这些模式抽象为方便的方法,而不必每次都将相同的标签序列粘贴到模板中。
  • 基于回调的请求处理。 为什么要为页面上的每个链接和表单输入都想出唯一的名称,而只是从URL中提取它们并稍后再请求字段Seaside使您可以将块(而非名称)与输入和链接相关联,从而自动执行此过程,因此您可以考虑对象和方法,而不是ID和字符串。
  • 嵌入式组件。 不要一次思考整个页面; Seaside使您可以将UI构建为单个有状态组件对象的树,每个对象封装页面的一小部分。 通常,它们可以在应用程序内或应用程序之间反复使用—例如,几乎每个应用程序都需要一种方法来显示搜索结果的批处理列表或带有可排序列的表,而Seaside包含这些组件。框。
  • 模态会话管理。 如果您可以用一种方法表示复杂的多页工作流程,该怎么办与需要为每个页面或请求使用单独的处理程序的servlet模型不同,Seaside用自然的线性控制流将整个用户会话建模为连续的代码段。 在Seaside中,组件可以像子例程一样相互调用和返回。 将这些调用中的一些调用组合到一个方法中,就像您正在使用控制台I / O或打开模式对话框一样,并且您具有工作流程。 是的,后退按钮仍然可以使用。

Teapot是秉承Python的Flask和Ruby的Sinatra精神的新的微型Web框架。

可以使用Amber Smalltalk和PharoJS进行前端Web开发。

TechBeacon:通过 交媒体进行宣传

Smalltalk的数字营销始于2015年,当时有一个名为“ Smalltalk Renaissance”的WordPress博客和一个名为“ Smalltalk Talk”的中型博客。 通过 交媒体发布和推广了数十篇文章。

2016年7月18日,TechBeacon发表了一篇题为“ 如何学习Smalltalk可以使您成为更好的开发人员 ”的文章,该文章启动了第二次大型营销活动。

此后,包括重新出版在内,全球超过7万人阅读了该文章。

它产生了数十篇Smalltalk文章,包括一些教程,这些文章通过Medium,Hacker News,Reddit,Twitter,Facebook,Google +,LinkedIn,Flipboard和Quora推广。

该活动已在诸如The New Stack和Slashdot之类的媒体上 道。

在Quora,成千上万的人问他们应该使用哪种编程语言来学习编程,他们得到了基本的答案:他们应该从Smalltalk开始!

Smalltalk是最好的教学语言,因为:

  1. 它是最简单,最容易学习的语言之一。 它具有六个保留字! 完整的语法适合明信片。
  2. 它是纯粹面向对象的,并且在这方面的清晰性和一致性使学习面向对象的编程极其容易。

面向对象的编程是IT行业中使用最广泛的编程范例。 熟悉OOP至关重要。

这是明信片:

结论

艾伦·凯(Alan Kay)著名地说道:“预测未来的最好方法是发明它。” 而且,的确,他在40年前通过创建Smalltalk以及他对面向对象编程的愿景的体现来做到这一点。

如今,Pharo像灯塔一样闪耀,指示着软件开发的未来。 现在该早该给Smalltalk了。

通过Smalltalk回到未来

From: https://hackernoon.com/back-to-the-future-with-smalltalk-57c68fab583a

文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览92156 人正在系统学习中 相关资源:凯歌软件安装管理器1.0-其它文档类资源-CSDN文库

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2018年2月5日
下一篇 2018年2月5日

相关推荐