从历史上看,HLL类似于C,Fortran或Pascal,而VHLL则类似于Ruby或Python。我熟悉术语4GL,5GL,DSL和LOP,那些不熟悉的人应阅读Wikipedia的定义。我正在寻找UHLL。
我的问题是:是否有计算机语言可以提高生产力另一个数量级,有人在使用它们吗?
更高的生产力意味着更少的编写代码和更少的程序员获得结果,更少的错误和更少的调试,更紧密的代码和需求之间的概念联系,更少的修改和维护工作。
我感兴趣的主要领域是通用业务和消费者应用程序,具有GUI或浏览器前端,数据持久性以及与其他系统(如打印和电子邮件)的连接。其他人可能会专注于其他地方。
我认识到,其中某些语言可能是特定于域的,它们可能仅比大型且功能强大的应用程序的配置功能多。Excel电子表格属于此类别。
我认识到其中一些语言可能看起来很笼统,但范围可能仍然狭窄,不适合许多问题。例如,对于主要处理用户交互和文本数据的程序,Matlab可能不是一个好的选择。
类似于VHLL,我知道UHLL中可能包含的一些功能。我希望找到以下一个或多个(并随时添加到列表中):
- GUI表单的图形是用于GUI表单的程序
- 包含行,列和标题的表是数据库中表的程序
- 声明式逻辑表示在没有IF语句的情况下应该执行的操作以及何时执行
- 对数据集进行操作,无FOR循环
- 非顺序执行,例如数据驱动,模式匹配,树遍历
这个问题的动机是,我越来越厌倦了将相对简单的业务需求转换为大量代码来满足计算机需求的艰巨的工作。问题的实质是找到其他与我分担痛苦并致力于提高语言水平并让计算机完成更多艰苦工作的人。这是1970年代至80年代的主要关注点,但是它还在发生吗?
这些是对我的问题的一些建议答案,在此提供它们是为了总结或枚举我所知道的语言,而我认为这是不足的。
有许多语言是HLL或VHLL,并且包含属于较高级别的单个功能。我用了大多数(通常很糟)。它们包括
- Lisp,具有其宏和自我修改的能力
- Haskell,具有数据依赖性和模式匹配
- SQL,处理行和表
- Rebol,看起来很聪明,但我真的不明白
- APL(和J)及其多维数组和超紧凑运算符
- C#与LINQ
- AWK / Perl / Python / Ruby内置了出色的集合和正则表达式
这些语言具有太多的低级功能,无法成为UHLL。程序员仍然必须为任何有用的程序编写许多底层构造。
有RAD / 4GL软件包。我用过一些:
- dBase / Foxpro
- Dataflex / Powerflex(我的产品)
- 访问
- PowerBuilder的
还有很多我没用过的。通常,语言充其量是HLL,但该软件包包含框架和语言与软件包之间的特权连接,因此可以快速构建应用程序。我不确定为什么这种方法没有用尽,但是无论如何不是这样。
有原始框架/库。我用了一些:
- 滑轨
- Java AWT和Swing
- .NET Windows窗体,WPF和ASP.NET。
这些是当前的技术水平。它们使程序员牢牢地陷在实现语言的泥潭中,动turn处理复杂性。这不是UHLL,但可以想象在其中之一之上构建UHLL。
有一些我不太了解的设计工具,例如UML和Rational的工具集。据我所知,它们可以帮助阐明业务需求,但永远不能取代编程步骤。我不想消灭程序员,只是每单位时间和精力要做更多的事情。
因此,我消除了所有可以想到的竞争者,希望其他人可以提供更好的候选人。
后期编辑:我想我有一个答案:Wolfram语言。http://www.wolfram.com/wolfram-language/