既然已经存在数百种编程语言,为什么要投入大量精力来创建一种新的语言呢?对于使用三种新的开放源码语言——椰子、水晶和Oden——的开发人员来说,答案很简单,在编程中,总有新的利基需要填补,新的需求需要满足。
刮伤众所周知痒,不愿满足于现有的工具,他们认为有所欠缺,这些开发商着手建立他们自己的语言,通过具体的目标驱动。对于椰子,其编译为Python的,它是所有有关使函数式编程Python语言。Crystal致力于结合多种编程能力。和背后的驱动力奥登的发展是否填补某些功能缺失谷歌流行的围棋语言。
我们与每种语言背后的开发人员和团队进行了交谈,以更好地了解这些新兴语言的起源和实用性——以及是什么激励开发人员去构建一种新的编程语言。
椰子:扩大Python的范围
“我喜欢函数式编程。我认为,功能模式提供了一个更自然的方式去思考问题,并产生更优雅,简洁,可读的代码,结果,”椰子开发商埃文Hubinger说。“但是,如果你看一下20种最流行的编程语言,没有一个是功能性的。但也有很多人的功能的替代品。Java有斯卡拉。c#有F#。Python已经... 没有。”
(注意:Java在2014年增加了功能功能但最初并不是作为函数式语言开发的。)
Hubinger说,Python是他的第一语言。他说,虽然Python在命令式编程方面很优雅,但试图将其用于函数式编程则是困难而笨拙的。椰子是他的第二次尝试为Python函数式编程。哈宾格放弃了他之前在这方面的努力兔子在他对它感到不满之后,他就离开了。Hubinger是一名大学生,在Yelp做软件开发实习生。
克里斯托:关注现有语言的特性
水晶微软的主要开发人员Borenszweig不仅承认现有编程语言的丰富,他还在这些语言的最佳特性上进行开发。
“是的,世界上有很多语言。然而,水晶混合一些功能以其他语言没有的方式出现在其他语言中,”Borenszweig说。
语言有静态类型检查,而不指定类型的方法参数或局部变量。这实现了更快的原型,更简洁的代码,更通用的代码,Borenszweig应力。
水晶还具有自动内存管理和本地编译SAN中的一个虚拟机。
它使用宏来避免样板代码。它可以很容易地使用现有的C库,”在Manas工作的Borenszweig说,Manas是一家构建技术和科学软件的公司。
奥登:捎带上围棋的成功
奥登与此同时,它是由一位围棋迷开发的,他对这种前途无量的编程语言有一些问题。
“我一直很喜欢Go中的工具和部署故事。学习曲线是温和的,工具工作真的很好。然而,Go语言有一些特点,我认为是有问题的,”Oden开发人员Oskar Wickstrom说。
他列举了泛型的缺乏以及抽象控制流、错误处理和nl检查的困难。
“奥登的想法是取消这些限制,并提供更灵活的类型系统,同时还通过强调功能编程,”Wickström,自2011年谁一直是一个程序员(和音乐涉足)说。他的作品在启动Empear,其开发项目的分析工具。
“另一个主要目标是提供与Go的简单互操作性,让早期采用者不必编写绑定就可以使用他们的标准Go库,”Wickstrom说。
新兴语言的新兴用途
这是一个物质创造的语言;它的另一个,以确保它是利用别人谁可能都撞在类似的问题。每一个这些三个新兴语言的开发人员看到使用情况已经在发展。
奥登,Wickström说,善于Go的驾驶室中的任务:Web服务器,后端服务,以及命令行工具,仅举几例。这也有利于构建提供通用的用户定义的数据结构,泛型算法和控制流抽象库,他说。
与此同时,Crystal适合于web服务,因为它具有非阻塞I/O和轻量级进程,Borenszweig说。现有的应用程序包括命令行应用程序,仿真器,网站和IRC机器人。
“它也可以在竞争的方案,你需要原型快,但达到较好的性能,” Borenszweig说。“最后,它可以用来构建编译器,如水晶。”
椰子适合Python应用程序一样,Hubinger说。这是一个“非常宽松的标准,考虑到Python最近的流行,”他说。“因为椰子可以编译成Python,所以没有什么是Python能做的而椰子做不到的。”
当Crystal和Oden仍处于早期开发阶段时,Coconut在6月达到了1.0发行里程碑,随后在7月发布了1.1发行版。
水晶最初是用Ruby写的,虽然编译器在晶体本身被改写。椰子的编译器是用Python编写的。奥登的第一个编译器是写在拍,而其类型inferencer使用开发MiniKanren,一种嵌入Scheme中的关系编程语言。然后使用Haskell重写编译器。
相关文章
- 下载:InfoWorld的开发者职业发展指南
- 下载:专业程序员的商业生存指南
- 下载:29个提示成功作为一个独立的开发者
- 7种编程语言让我们又爱又恨
- 我们暗地里喜欢的9个编程习惯
- 21个热门节目趋势——21个正在变冷
- 7个有效的糟糕编程想法
- 编程“老人”的5个永恒教训
- 没有开发人员想听到的22个侮辱
- 9对编程的未来的预测
- 你现在需要掌握的13项开发技能
- 为世界编程:你现在需要知道的12项技术
- 攻击单字母编程语言
这个故事,“3种新的编程语言:它们的创造者说什么”,最初是由信息世界 。