我目前正在研究编程语言和翻译设计这一主题。我已经创建了几种编程语言但到目前为止无法实现我的目标:
创建一种编程语言,专注于在编写代码时为程序员提供良好感觉。它应该是有趣和/或有趣的,并且在任何情况下都不会在其中写东西。
在Python中编写代码时我有这种感觉。我有时会得到与PHP相反的情况,在极少数情况下,我不得不重新发明一些C ++中的轮子。
所以我试图找出一些语法功能,让我的新语言编程变得有趣,但我找不到任何语法。
示例:
我觉得用Ruby编程很有趣,因为它使用了代码块。
我这样做是因为当我喜欢用我喜欢的语言(因为特殊功能)编程时,我的生产力经历了极大的提升。
答案 0 :(得分:4)
你在问题中提到了Ruby。 AFAIK,Ruby是唯一的编程语言, Joy 是一个实际的,陈述的,明确的设计目标。 (事实上,这是唯一的设计目标。)
Yukihiro Matsumoto能够以这种方式设计Ruby的原因是他已经知道并使用吨编程语言之前他开始设计Ruby并学习了更多为了设计Ruby。 (有趣的是,他不了解Python,并且说他可能不会创建Ruby,如果他这样做的话。)
这里只是matz自己使用过的语言的一小部分,或者是为了寻找灵感(或者在某些情况下为 做什么的灵感):
我相信这是设计优秀编程语言的一种方式(Larry Wall称之为后现代主义语言设计):扔掉过去不起作用的一切,把所有东西都拿走工作和结合有品味。
当然,这要求你实际上知道你想要“窃取”的所有语言,特别是,它要求你知道许多不同的语言具有不同的范例,不同的概念和不同的“感觉”,否则你窃取的想法池相当小而且是近亲。
答案 1 :(得分:2)
一致性。
当您使用以前从未使用过的API或功能时,您已经知道某些事情。它还可以提高你的工作效率,因为你不必为了它而学习新东西。
我认为这也是Ruby'喜欢'之一,因为如果你遵循命名约定,事情开始“正常工作”而没有绑定和粘合等等。
例如,在C ++中使用STL,许多算法对于所有容器都是相同的 - 甚至是字符串。这样可以很好地使用...除了那些不遵循相同API的部分(例如bool矢量)之外,差异更明显。
答案 2 :(得分:2)
答案 3 :(得分:1)
编程语言应该可以轻松编写正确的程序,并且很难(如果不是不可能)编写错误的程序。例如,在Java中
long x = 2000000000 + 2000000000;
溢出,而
long x = 2000000000L + 2000000000;
没有。这显而易见吗?我不这么认为。有没有人希望某些东西溢出?我不这么认为。
答案 4 :(得分:1)
答案 5 :(得分:0)
答案 6 :(得分:0)
一种看似简单易学的语言功能令程序员意想不到的力量令人惊喜。我提名Haskell类型类: - )