开发者应该了解的五种全新编程语言

从全面并发到可执行文件部署,这些新型语言绝对值得大家加以关注。为什么要创造一种新语言?这倒并不是说我们就一定需要这种语言。

但新的编程语言确实会从新的角度审视开发者、IT管理员以及其他相关人员所面临的问题。因此,我们也有必要关注那些希望以新的视角解决固有障碍的新型语言。

另外,新语言的诞生也未必只关注语言本身,有时候其关注重点在于语言所提供的环境。谷歌的Go与Mozilla的Rust语言并不提供新语法,但却带来了新的工作链与项目管理策略。

下面来看编程语言领域的五位后起之秀,它们都在以创造性的方式试图解决实际或者理论层面中的难题。

Stanza 0.8.22

要点: 亦被称为L.B. Stanza,此项目由加州大学伯克利分校开发,在语言当中高度强烈拆分这一理念。

Stanza可编译为本地代码,但并不要求特定类型。在添加之后,该语言能够自动执行极为强大的代码检查机制。另外,它还利用一套不涉及类的对象系统——其实际使用方法与函数——并能够显著降低协同例程的并发难度。

类似语言: Python、Ruby且在某种程度上类似于函数语言

当前平台: Linux, Mac, Windows

Nim 0.13

要点:  Nim继承了Python的设计思路——简洁的语法、便捷性、访问该语言自己的语法树——并使其可在静态类型语言中起效,同时可以执行自己的垃圾回收与内存管理方案。其它出色特性还包括:手动定义运算符(大家无需重载现有运算符)、宏并将Nim应用编译为无依赖性的独立二进制文件。

类似语言: Modula 3, Delphi, Ada, C++, Python, Lisp, Oberon (该语言的设计师们自己也承认这一点)

当前平台: 在理论上支持任何具备C编译器的平台,但二进制文件目前仅适用于Windows。

Crystal 0.17.4

要点: 其语法与Ruby属同一模式——因此Ruby开发者能够快速上手。但与Ruby不同,Crystal能够编译为本地代码。它还拥有静态类型检查机制,而不需要在变量或者方法参数中进行类型指定。另外,它能够直接绑定至C代码。Crystal语言目前尚不支持并发——所有任务都在单一线程内执行——不过其拥有并发控制机制,而且并发与软件包管理器都已经被纳入开发议程。

类似语言: Ruby

当前平台: Linux, OS X

Nit 0.8

要点: 作为另一款脱胎于Python的语言,Nit的开发初衷在于更为简单地同现有C/C++、Java以及Objective-C代码协作与接入。同样耐人寻味的是,尽管尚处于早期开发阶段,但Nit语言已经将Android作为受支持编译目标,因此其很有可能成为Android平台上的应用开发语言。

类似语言: Python, Pascal, Ruby

当前平台: Linux, OS X,可通过Cygwin运行在Windows上,但性能表现较差。

Pony 0.2.1

要点:  Pony的目标是解决软件开发中经常出现的一项难题:如何在不影响竞争状况、内存安全或者造成死锁问题的情况下,对对象等抽象机制进行处理。Pony尝试使用静态类型与“actor”对象类型解决该问题,这样我们就能更轻松地了解各条目究竟是什么、其以何种顺序执行。

类似语言: Python (语法类似), Erlang (强大的并发系统)

当前平台: Linux, OS X, Windows

时间: 2024-11-13 11:08:11

开发者应该了解的五种全新编程语言的相关文章

五种编程语言解释数据结构与算法—链式栈

目录 五种编程语言解释数据结构与算法-链式栈 1.栈的链式存储结构介绍 1.1.逻辑结构示意图 2.栈的应用 2.1.括号匹配问题 2.2.表达式求值问题 3.栈和递归的关系 4.C语言实现链式栈 4.1.LinkStack.h文件的内容 4.2.LinkStack.c文件中的内容 4.3.main.c文件中的内容 4.4.输出结果 5.C++语言来实现链式栈 5.1.LinkStack.h文件中的内容 5.2.LinkStack.cpp文件中的内容 5.3.main.cpp文件中的内容 5.4

接下来的两年你可能需要这五种语言(转载)

对于处在编程世界的我们来说,现在已经走到了一个转折点.十年前,程序员们对动态语言趋之若鹜.对我们中的大部分人来说, 动态语言不仅使编程变得更加简单,同时也意味着一种时尚.时至今日,动态语言不再享有特别的青睐,现在的程序员使用新语言和旧语言的搭配来开发项目.我不 禁要问,为了保持自身的竞争力,哪些编程语言是程序员们最需要永久掌握的? 在我们讨论哪些编程语言在未来会吃香这个问题之前,先来看看不同编程语言之间的的异同. 静态语言 vs. 动态语言 当我们说到动态语言时,这个“动态”实际上说的是变量类型

五种常见的 PHP 设计模式

内容 设计模式 一书将设计模式引入软件社区,该书的作者是 Erich Gamma.Richard Helm.Ralph Johnson 和 John Vlissides Design(俗称 "四人帮").所介绍的设计模式背后的核心概念非常简单.经过多年的软件开发实践,Gamma 等人发现了某些具有固定设计的模式,就像建筑师设计房子和建筑物一样,可以为浴室的位置或厨房的构造方式开发模板.使用这些模板或者说设计模式 意味着可以更快地设计更好的建筑物.同样的概念也适用于软件. 设计模式不仅代

【转】从框架看PHP的五种境界及各自的薪资待遇

无意中看到这篇文章,有些触动,作为博客开篇,用来激励自己. 原文地址:点击打开 在撰写此文前首先必须申明的是本人不鄙视任何一种框架,也无意于挑起PHP框架间的战争,更没有贬低某个框架使用者的用意,本文纯粹个人的看法.你可以认为我无知也好,或者装逼也好,请不要试着在任何情况下,随便发起言语的攻击,这只是我个人的一些经验而已,你可以选择赞成或不赞成,也可以选择看与不看. 还有本人基本对这些框架中的大部分都用的时间比较长,绝对不是随便出个Hello World!就在这里评论,曾任某某底层本土公司的技术

Windows Socket五种I/O模型——代码全攻略(转)

Winsock 的I/O操作: 1. 两种I/O模式 阻塞模式:执行I/O操作完成前会一直进行等待,不会将控制权交给程序.套接字 默认为阻塞模式.可以通过多线程技术进行处理. 非阻塞模式:执行I/O操作时,Winsock函数会返回并交出控制权.这种模式使用 起来比较复杂,因为函数在没有运行完成就进行返回,会不断地返回 WSAEWOULDBLOCK错误.但功能强大.为了解决这个问题,提出了进行I/O操作的一些I/O模型,下面介绍最常见的三种: Windows Socket五种I/O模型——代码全攻

PHP V5 的五种常用设计模式

设计模式 一书将设计模式引入软件社区,该书的作者是 Erich Gamma.Richard Helm.Ralph Johnson 和 John Vlissides Design(俗称 "四人帮").所介绍的设计模式背后的核心概念非常简单.经过多年的软件开发实践,Gamma 等人发现了某些具有固定设计的模式,就像建筑师设计房子和建筑物一样,可以为浴室的位置或厨房的构造方式开发模板.使用这些模板或者说设计模式 意味着可以更快地设计更好的建筑物.同样的概念也适用于软件. 设计模式不仅代表着更

聊聊 Linux 中的五种 IO 模型

本文转载自: http://mp.weixin.qq.com/s?__biz=MzAxODI5ODMwOA==&mid=2666538919&idx=1&sn=6013c451b5f14bf809aec77dd5df6cff&scene=21#wechat_redirect 上一篇<聊聊同步.异步.阻塞与非阻塞>已经通俗的讲解了,要理解同步.异步.阻塞与非阻塞重要的两个概念点了,没有看过的,建议先看这篇博文理解这两个概念点.在认知上,建立统一的模型.这样,大家在

Android数据存储五种方式总结

本文介绍Android平台进行数据存储的五大方式,分别如下: 1 使用SharedPreferences存储数据     2 文件存储数据       3 SQLite数据库存储数据 4 使用ContentProvider存储数据 5 网络存储数据 下面详细讲解这五种方式的特点 第一种: 使用SharedPreferences存储数据     适用范围:保存少量的数据,且这些数据的格式非常简单:字符串型.基本类型的值.比如应用程序的各种配置信息(如是否打开音效.是否使用震动效果.小游戏的玩家积分

安卓五种数据存储的方式

本文介绍Android平台进行数据存储的五大方式,分别如下: 1 使用SharedPreferences存储数据     2 文件存储数据       3 SQLite数据库存储数据 4 使用ContentProvider存储数据 5 网络存储数据 下面详细讲解这五种方式的特点 第一种: 使用SharedPreferences存储数据     适用范围:保存少量的数据,且这些数据的格式非常简单:字符串型.基本类型的值.比如应用程序的各种配置信息(如是否打开音效.是否使用震动效果.小游戏的玩家积分