上古电子表格 Lotus 1-2-3 被移植到 Linux古老的电子表格程序 Lotus-1-2-3 问世于 1983 年，那时候甚至 Linux 都没有出现，它可以说是使得 IBM PC 获得成功的唯一应用。一位爱好者成功地将该程序移植到了 Linux 上。需要强调的是，这不是一个模拟的程序，而是原始的 1990 年的 Lotus 1-2-3，它原本运行在 x86 Unix 上，现在可以原生地运行在现代 x86 Linux 上。消息来源：theregister老王点评：真是极客的乐趣，不过，在 Linux 上试试上个世纪的字符界面的电子表格也挺有趣的。有没有用过 Lotus-1-2-3 的人？来举个手。谷歌悄悄禁止了 Colab 上的深度伪造训练项目谷歌的 Colab 是一个在线计算资源，允许研究人员直接通过浏览器运行 Python 代码，同时免费使用包括 GPU 在内的计算资源。因而它成为训练机器学习项目（如深度伪造模型）或进行数据分析的理想选择。深度伪造可以被训练成在视频片段上替换人脸，添加逼真的面部表情，使结果看起来很真实，但是，它们的使用缺乏道德限制，一直是争议和担忧的来源。消息来源：bleepingcomputer老王点评：不过我觉得重要的是，应该有一种可以快捷地识别深度伪造视频的工具。法国禁止英语的游戏术语以保护语言的纯洁性法国官员正在继续他们长达几个世纪的战斗，以保护语言的纯洁性，全面修改了关于使用英语电子游戏术语的规则。法国文化部说，电子游戏领域充斥着英语，可能成为非游戏玩家的“理解障碍”。新规则规定，政府官员必须用经批准的法语版本取代“e-sports”和“streaming”等词汇。有着数百年历史的语言监管机构法国学院在 2 月份曾警告称，“（语言）退化绝不能被视为不可避免”。消息来源：卫报老王点评：法国人对自己文字和文化重视得很，这让我想起了《最后一课》，而我们的互联网上到处混杂着中文和英语。回音前两天我们提及了 Perl 7 还遥遥无期，而事实上 Perl 并没有止步，在上个版本发布一年后，Perl 发布了 5.36.0 ，其中包含了 82 位作者的约 25 万行代码的变更。
这是一个快速教程，展示了在 Ubuntu 和其他 Linux 发行版上从命令行改变语言的步骤。事实上，我一直在写西班牙语的文章。如果你没有访问过它并且/或你是一个讲西班牙语的人，请访问 It's FOSS en Español 并查看所有西班牙语的 Linux 内容。你可能想知道我为什么要和你分享这件事，这是因为这篇文章以这个新页面为例。在新安装 你喜欢的 Linux 发行版 时，系统会要求你选择一种主语言。有些人，比如说我，后来会考虑把这个语言改成新的，尽管这并不频繁。你看，我必须同时用西班牙语和英语进行截屏。这就成了一个问题，因为我只有一台电脑，而更换用户对我来说不是一个快速的解决方案。这就是为什么我想和你分享这个快速技巧，我将告诉你如何在终端中用两行简单的文字改变你的主系统语言。让我们开始吧！从终端改变 Linux 系统语言假设你想把你的主语言从英语改为西班牙语。确认你将哪种语言设置为默认语言（主语言）。为此，让我们使用 locale 命令。locale 你应该看到像这样的东西：team@itsfoss:~$ locale LANG=en_US.UTF-8 LANGUAGE= LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL= 在这里你可以看到主语言是英语。现在要改变它，请按以下方式使用 dpkg 命令：sudo dpkg-reconfigure locales 当你运行之前的命令，你应该在终端看到下面的页面：在这里，你应该使用向上和向下的箭头移动直到你到达所需的语言。在我的例子中，我想要西班牙语，更具体地说，是墨西哥西班牙语，因为我是墨西哥人。不是所有的语言都有这个选项，但如果你的语言有，请选择 UTF-8。找到你的语言后，按空格键来标记，然后回车。最后，在最后一个窗口中，通过使用箭头键移动到该语言并按下回车键，选择该新语言作为你的默认语言。完成后，你应该在你的终端看到这样的信息：Generating locales (this might take a while)... en_US.UTF-8... done es_MX.UTF-8... done Generation complete. 这就完成了！现在你能够直接从终端改变你的默认语言，次数不限。如果你对这个话题有任何疑问，请在评论区告诉我们。via: https://itsfoss.com/change-locales-linux/作者：Marco Carmona 选题：lujun9972 译者：geekpi 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出
学习一门新的编程语言是在你的职业生涯中继续前进的好方法，但是应该学习哪一门呢？如果你想要开始你的编程生涯或继续前进，那么学习一门新语言是一个聪明的主意。但是，大量活跃使用的语言引发了一个问题：哪种编程语言是最好的？要回答这个问题，让我们从一个简单的问题开始：你想做什么样的程序？如果你想在客户端进行网络编程，那么特定语言 HTML、CSS 和 JavaScript（看似无穷无尽的方言之一）是必须要学习的。如果你想在服务器端进行 Web 编程，那么选择包括常见的通用语言：C++、Golang、Java、C#、 Node.js、Perl、Python、Ruby 等等。当然，服务器程序与数据存储（例如关系数据库和其他数据库）打交道，这意味着 SQL 等查询语言可能会发挥作用。如果你正在为移动设备编写原生应用程序，那么了解目标平台非常重要。对于 Apple 设备，Swift 已经取代 Objective C 成为首选语言。对于 Android 设备，Java（带有专用库和工具集）仍然是主要语言。有一些特殊语言，如与 C# 一起使用的 Xamarin，可以为 Apple、Android 和 Windows 设备生成特定于平台的代码。那么通用语言呢？通常有各种各样的选择。在动态或脚本语言（如 Perl、Python 和 Ruby）中，有一些新东西，如 Node.js。而 Java 和 C# 的相似之处比它们的粉丝愿意承认的还要多，仍然是针对虚拟机（分别是 JVM 和 CLR）的主要静态编译语言。在可以编译为原生可执行文件的语言中，C++ 仍在使用，还有后来出现的 Golang 和 Rust 等。通用的函数式语言比比皆是（如 Clojure、Haskell、Erlang、F#、Lisp 和 Scala），它们通常都有热情投入的社区。值得注意的是，面向对象语言（如 Java 和 C#）已经添加了函数式构造（特别是 lambdas），而动态语言从一开始就有函数式构造。让我以 C 语言结尾，它是一种小巧、优雅、可扩展的语言，不要与 C++ 混淆。现代操作系统主要用 C 语言编写，其余部分用汇编语言编写。任何平台上的标准库大多数都是用 C 语言编写的。例如，任何打印 Hello, world! 这种问候都是通过调用名为 write 的 C 库函数来实现的。C 作为一种可移植的汇编语言，公开了其他高级语言有意隐藏的底层系统的详细信息。因此，理解 C 可以更好地掌握程序如何竞争执行所需的共享系统资源（如处理器、内存和 I/O 设备）。C 语言既高级又接近硬件，因此在性能方面无与伦比，当然，汇编语言除外。最后，C 是编程语言中的通用语言，几乎所有通用语言都支持某种形式的 C 调用。有关现代 C 语言的介绍，参考我的书籍《C 语言编程：可移植的汇编器介绍》。无论你怎么做，学习 C 语言，你会学到比另一种编程语言多得多的东西。你认为学习哪些编程语言很重要？你是否同意这些建议？在评论告知我们！via: https://opensource.com/article/19/2/which-programming-languages-should-you-learn作者：Marty Kalin 选题：lujun9972 译者：MjSeven 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出
编程现在已经变成最受欢迎的职业之一，不像以前，编制软件只局限于少数几种编程语言。现在，我们有很多种编程语言可以选择。随着跨平台支持的增多，大多数编程语言都可以被用于多种任务。如果，你还没有学会编程，让我们看一下在 2018 年你可能会学习的编程语言有哪些。Python毫无疑问， Python 现在已经统治着编程市场。它发起于 1991 年，自从 YouTube 开始使用它之后，Python 已经真正的成为著名编程语言。Python 可以被用于各类领域，比如，Web 开发、游戏开发、脚本、科学研究、以及大多数你能想到的领域。它是跨平台的，并且运行在一个解释程序中。Python 的语法非常简单，因为它使用缩进代替花括号来对代码块进行分组，因此，代码非常清晰。示例：print("Hello world!") Kotlin虽然 Java 自它诞生以来从没有被超越过，但是，至少在 Android 编程方面，Kotlin 在正打破这种局面。Kotlin 是较新的一个编程语言，它被 Google 官方支持用于 Android 应用编程。它是 Java 的替代者，并且可以与 java 代码无缝衔接。代码大幅减少并且更加清晰。因此，在 2018 年，Kotlin 将是最值的去学习的编程语言。示例class Greeter(val name: String) { fun greet() { println("Hello, $name") } } // String Interpolation to cut down ceremony. fun main(args: Array) { Greeter(args[0]).greet() } C/C++这可能是他们在中学和大学里教的第一个编程语言。C 是比较老的编程语言之一，由于它的代码运行速度快而且简单，它到现在仍然一直被使用。虽然它的学习难度比较大，但是，一旦你掌握了它，你就可以做任何语言能做的事情。你可能不会用它去做高级的网站或者软件，但是，C 是嵌入式设备的首选编程语言。随着物联网的普及，C 将被再次广泛的使用，对于 C++，它被广泛用于一些大型软件。示例#include <stdio.h> Int main() { printf("Hello world"); return 0; } PHP关于 PHP 即将消亡的话题，因特网上正在疯传，但是，我没有看到一个为什么不去学习 PHP 的理由，它是服务器端脚本语言中比较优秀的一个，它的语法结构非常简单。一半以上的因特网都运行在 PHP 上。Wordpress，这个最流行的内容管理系统是用 PHP 写的。因为，这个语言流行的时间已经超过 20 年了，它已经有了足够多的库。在这些库中，你总能找到一个是适合你的工作的。示例echo "Hello world!"; Javascript关于 Javascript，我说些什么呢？这是目前最为需要的语言。Javascript 主要用于网站动态生成页面。但是，现在 JavaScript 已经演进到可以做更多的事情。整个前后端框架都可以用 JavaScript 构建。Hybrid 应用是用 HTML+JS 写的，它被用于构建任何移动端的平台。使用 Javascript 的 nodejs 甚至被用于服务器端的脚本。示例document.write("Hello world!"); SQLSQL 是关系型数据库管理系统（RDBMS）的查询语言，它用于从数据库中获取数据。SQL 的主要实现或多或少都是非常相似的。数据库用途非常广泛。你读的这篇文章它就保存在我们网站的数据库中。因此，学会它是非常有用的。示例SELECT * FROM TABLENAME 结论因为这些语言都是在 2018 年比较值得去学习的。我并没有包括像 asp.net 这样的 语言，因为，它要求你学习它们的整个平台。Java 也没有推荐，因为有大量的开发者已经开始迁到 Kotlin。所有提到的语言的市场需求都非常大，并且它们都很流行。它们也都有非常好的社区支持。我希望你喜欢这篇文章。如果你认为我遗漏了任何一个非常受人欢迎的语言，请在下面的评论区告诉我。via: http://www.linuxandubuntu.com/home/best-programming-languages-to-learn-in-2018作者：LinuxAndUbuntu 译者：qhwdw 校对：wxy本文由 LCTT 原创编译，Linux中国 荣誉推出
经常有人问哪个编程语言最流行？这问题很简单，但是回答起来可没那么简单。首先，我们要知道，为什么人们会问这样的问题？一般问这样的问题是人大多是学生，他们想知道这个问题的答案是因为他们想要找份工作，所以寻求一种可以增加面试成功率的技能。对于大多数人来说，进入一个新的领域时了解什么是最流行的，是很有意义的。而对于其他人来说，比如说已经掌握了一种或几种编程语言的程序员，他可能在想要掌握一门新的编程语言时，会考虑一下当前最流行的编程语言作为参考。而对于要开发一个产品的程序员来说，也希望了解当前最流行的编程语言是因为他们希望所开发的产品能够迎合客户的环境和需求，显然支持流行的语言的 API 会被更多人使用。甚至，就算是你想启动一个项目时，你也需要考虑是否选择一个流行的编程语言。虽然你首先要考虑的是这种语言能够满足你的需求，比如说如果用一个流行的编程语言你需要花费更多的时间和成本，而不那么流行的编程语言或许会更快捷和轻松，显然你还是会选择那个不太流行的——但是如果各个方面都差不多，不用说你会选择流行的那个，因为这样你可以找到更多的程序员，遇到问题也有更多的解决方案。怎么才算是流行？那么，哪个语言是最流行的？其实回答这个问题并没有你想象的那么简单。关键是，你该怎么定义这个“流行”？这个问题并没有固定的答案，不过在维基上有一篇文章提到了如何测量编程语言的流行度。在这篇文章中，列出了几个测量流行度的因素：该语言在搜索中提及的次数，比如在谷歌趋势中在招聘广告中提及该语言的次数传授和介绍该语言的书籍销售量以该语言编写的现存代码的行数，不流行的语言在公开搜索中可能根本就找不到在 GitHub、Freecode 上使用该语言的项目数量在论坛和新闻组中讨论该语言的帖子数量此外，你还可以考量如下指标：编程培训班里面该语言的培训课程销售数量编程培训班里面学生的数量视频网站里面关于该语言的视频数量Stack Overflow 和 Reddit 里面关于该语言的帖子数量甚至，你还可以增加一些其它的统计维度，比如根据国家和城市来统计，你知道在北京哪种编程语言最流行么？上海呢？所以，这个问题的回答并不是一个简单的答案。统计数据来源的不同即使我们知道了流行度取决于多种因素，但是人们还是希望能够了解到底哪个语言比较流行，以此来指导他们的培训和公司的决策。有一些网站依据不同的标准，公开发布了一些语言流行度指标。 IEEE Spectrum 对这些指标做了一个有趣的整合，它可以让你通过自行设置不同因子的权重来得到你自己的编程语言流行度排行榜。Coding Dojo 也有一个图表，聚合了工作搜索引擎 Indeed.com 的数据；而有名的 Tiobe 排行榜一直使用搜索引擎聚合来计算流行度； PyPl 则是根据谷歌来查看语言的流行度。 然而，这并没什么大用。如果你想知道你该学习那种语言，或者是你需要支持的语言，最困难的还是你并不知道这里的哪个图表才是适合你的。好吧，我明白了，那么到底那种编程语言是流行的？为了帮助你找到方向，我组合了上述提及的几种数据源，包括三种 IEEE 分类：“趋势”代表语言的增长度，“工作”代表 Dice.com 和 CareerBuilder 上的招聘量，“开源”代表开源项目数量。排名结果如下表： 但是问题是，上图并不能告诉我们重点所在。要解决这个问题，我们需要做一点数据分析。我聚合了这六个数据源中的五个（我去掉了 Coding Dojo 是因为它仅显示了前九），然后我根据编程语言出现在图表中的位置和次数进行加权，这样我得到了如下的前十排名。如你所见，这些语言分成了三大类。第一梯队包括 Java、C、Python 和 C++，毫无疑问，你肯定经常听到它们的名字。第二梯队包括 JavaScript、C#、PHP 和 Swift。剩下的两个是 Objective-C 和 R。这给我们带来什么启发？第一梯队的语言 Java、C、Python 和 C++ 都是非常通用的语言，它们并不局限于特定的编程平台或用途。最值得关注的是第二梯队，它包括 JavaScript、C#、PHP 和 Swift。JavaScript 和 PHP 是主要的 Web 开发语言。C# 是微软的编程语言，而 Swift 是苹果新推出的主力语言。基本上来说，第二梯队是平台相关的。那么这反映了什么？如果你懂一点现代编程，你就知道编程其实不仅仅是使用这种语言，而更重要的是开发一些什么，比如说嵌入式系统、iPhone 应用、Web 应用或者微软的服务器端应用等等。对语言的熟悉程度其实只是一小部分。举个例子说，不管你是多么的喜欢 Python 或者古老而常青的 C，但如果你要为 WordPress 开发插件或主题，你只能使用 JavaScript 和 PHP。这无关于哪个语言更流行。字里行间的发现或者你会注意到一些有趣的地方。首先，Coding Dojo 的编程语言排行榜的第一名是 SQL，只有它一家是这样。你很少会单独在 SQL 里面编程，通常都是在其它的语言里面使用它来管理数据。所以，学会 SQL 是很有用的，甚至是必要的。然而，去上一门 SQL 的培训课程并不能帮你找到一份工作，也不会多挣多少钱。其次，苹果特有的语言在排行榜中排名很低，这或许和你的预期不同，因为 iOS 的应用是如此的流行。不过确实是这样的，如果你不是要开发你自己的应用的话，那学它们其实不如学习别的语言，因为其实没有那么多的公司雇佣苹果应用开发人员。这就是 Swift 语言掉到了榜尾的原因，而 Objective-C 正在被 Swift 所替代，在前面也看到了它也处于榜单的后面。C 家族的语言仍然是主流。Java、C++、C、C#，甚至 Objective-C 都是基于 C 的语言。如果你只想学一门语言，你可以从其中选择一个。我推荐你选择 Java 或 C++，它们可以为你打开进入 C 语言家族的大门。以我的职业生涯的经验来看，不是特别复杂的场景的话，我大概能用 20 来种语言来编程，通常我只用几天就可以学会一门新的语言。这是因为我在学校的专业就是语言设计，我也教编程超过了 20 年了。掌握这么多的语言对我很有帮助，因为我总是根据我要做的事情选择一种语言，而不是专门去上课学习一种语言。这听起来好像有点难，但是其实你也能做到的。我的建议就是，如果你要编程，那么就去学习多种编程语言和各种框架吧。用编程语言去做点东西出来，编程不仅仅是一种智力锻炼，而且你可以实际用它做点什么出来。掌握多种语言和框架是重要的，因为计算机行业变得太快了。C 语言依然历久弥新，而 Swift 虽然出现才几年就登上了排行榜。你今天学习到的或许不够你整个职业生涯挥霍，所以“怎样学习语言”要比“学习语言”更重要，最好的办法就是多学几门。我的推荐非常简单，无论是 C++ 还是 Java，选一个学习就好了。然后是 JavaScript，越来越多的基于 Web 的应用需要良好的 JavaScript 技能。再然后是 PHP、Swift 或 Python 中选一个，这要看你的工作种类了。当你在这三个梯队中都学会一门后，你就可以根据你的情况学习更多的语言和框架了。好了，努力吧，学习一些编程语言，做点漂亮的成绩出来。如果你有什么想法，欢迎在下面和我们分享。
Go (也叫 "golang")是一款由Google最初开发的编程语言。它自诞生就有几个设计原则：简单性、安全性和速度。Go语言发行版拥有各种调试、测试、调优和代码审查工具。如今Go语言和它的工具链在大多数Linux发行版的基础仓库都可用，用默认的包管理器就可以安装。在Ubuntu、Debian 或者 Linux Mint上安装Go语言下面是在基于Debian的发行版上使用apt-get来安装Go语言和它的开发工具。$ sudo apt-get install golang 检查Go语言的版本来验证安装。$ go version go version go1.2.1 linux/amd64 根据你的需要，你或许想要使用apt-get安装额外的Go工具。$ sudo apt-cache search golang 在Fedora、CentOS/RHEL中安装Go语言下面的命令会在基于Red Hat的发行版中安装Go语言和它的工具。$ sudo yum install golang 检查Go语言的版本来验证安装。$ go version go version go1.3.3 linux/amd64 根据你的需要，你或许想要使用yum安装额外的Go工具。$ yum search golang 从官网安装Go语言有时发行版中的go语言版本并不是最新的。为了避免这种情况，你可以从官网安装最新的Go语言。下面是步骤。进入Go语言的官方源码，并下载预编译二进制代码。对于64位Linux:$ wget https://storage.googleapis.com/golang/go1.4.1.linux-amd64.tar.gz 对于32位Linux:$ wget https://storage.googleapis.com/golang/go1.4.1.linux-386.tar.gz 在/usr/local下安装程序$ sudo tar -xzf go1.4.1.linux-xxx.tar.gz -C /usr/local 在/etc/profile中添加系统范围的PATH环境变量。$ sudo vi /etc/profile export PATH=$PATH:/usr/local/go/bin 如果你在/usr/local之外的自定义位置中安装了Go，你同样需要设置GOROOT环境变量来指向自定义的安装位置。$ sudo vi /etc/profile export GOROOT=/path/to/custom/location 检查Go语言的版本$ go version go version go1.4.1 linux/amd64 via: http://ask.xmodulo.com/install-go-language-linux.html译者：geekpi 校对：Caroline本文由 LCTT 原创翻译，Linux中国 荣誉推出
[微博活动]那些年，我们追过的编程语言
作为开发人员的你们，还记得你学会的第一种编程语言吗？跟大家聊聊你最爱的编程语言，或者分享一下你在敲代码过程中遇到过的趣事儿。小编为大家准备了9本编程语言图书，转发微博参与互动（微博地址见活动详情），11月21-11月29每天从参与活动的用户中抽取一位中奖用户，赠送图书一本（图书按照图片顺序）活动详情：活动时间：2014年11月21日-2014年11月29日活动内容：在新浪微博转发微博参与互动，活动期间每天从参与活动的用户中抽取一位中奖用户，赠送图书一本（图书按照图片顺序）。微博地址：http://weibo.com/1772191555/Bxh8CkGac特此注意：微博用户参与活动，注意查看@LINUX中国 官方微博公布的中奖名单或留意您的微博私信。我们会通过微博私信的方式获取您的邮寄信息。1、《Go并发编程实战》试读地址：http://www.ituring.com.cn/book/15252、《Python基础教程（第2版•修订版）》试读地址：http://www.ituring.com.cn/book/13963、《Ruby基础教程（第4版）》试读地址：http://www.ituring.com.cn/book/12374、《Groovy程序设计》试读地址：http://www.ituring.com.cn/book/12945、《Swift开发指南（修订版）》试读地址：http://www.ituring.com.cn/book/15176、《嗨翻C语言》试读地址：http://www.ituring.com.cn/book/10047、《精通C#》试读地址：http://www.ituring.com.cn/book/10468、《学习R》试读地址：http://www.ituring.com.cn/book/11879、《C++程序设计：现代方法》试读地址：http://www.ituring.com.cn/book/1263更多图灵图书：请点击：http://jmall.jd.com/p151429.html
Ubuntu 是一个功能强大的现代化操作系统，并且它还允许你使用多种语言的桌面。在默认情况下，在你第一次安装 Ubuntu 的时候会预装几个语言包。但如果你想要你的 Ubuntu 能够支持更多语言的话，那你就必须安装额外的语言包。通常不是所有的语言都是支持的，但是大多数使用中的语言以及书面语言都能够被支持。下面是一个是简短教程，它将会展示如何去实现。在安装语言包之后，你可以根据你的语言重命名标准文件夹，例如音乐、图片和文档。你必须注销系统然后重新登录来使变更生效。当你重新登录之后，你会看到一个弹窗并且询问你是否愿意重命名这些标准文件夹，从而使得文件名满足你的所选择的语言要求。要想更改 Ubuntu 的使用语言，单击菜单栏右上角的 齿轮，并且选择 System Settings（系统设置）。在打开 System Settings（系统设置） 之后，选择 Language Support（语言支持）。如果提示要你安装额外的语言支持，那就直接安装。如果没有，那么就单击 Install / Remove （安装/删除）去安装新的语言包，然后，选择你想安装的语言来安装。最后，拖动新的语言到列表的顶端并且保存。这些更改只会应用在你的个人帐号上。如果你想应用在全局范围内，单击 Apply System-Wide（应用到全局设置） 。拖动新的语言到列表的顶端。之后单击 Close。关闭之后注销系统。然后重新登录，你就会看到更改生效了。同样，语言包的更改只是应用在你的个人帐号上。如果你想全局更改的话，你必须单击 Apply System-Wide。如果你选择了重命名标准文件夹，你必须重新登录才能看到变更。好好享受吧！via: http://www.liberiangeek.net/2013/10/daily-ubuntu-tipschange-the-language-you-use-in-ubuntu/译者：hyaocuk 校对：Caroline本文由 LCTT 原创翻译，Linux中国 荣誉推出
“高清无码大图”展示开源编程语言的20年历史
也许，很多人已经忘记，那时，Emacs Lisp还是最受欢迎的开源编程语言之一……现代计算机的逐渐流行可以追溯到上世纪80年代末、90年代初。个人电脑和后来的因特网相结合，创造出史无前例的信息爆炸，人们有能力在瞬间就连接上地球另一端的同胞。上图为开放可乐（Open Cola），一种开源软饮料，感谢维基百科供图。外行人看起来就像是魔法。但对于亲自建立这些系统的人们来说，使用编程语言操纵计算机、服务器、Web服务等等功能，却是如此平常自然。大多数编程语言都是开源的，这意味着任何人都可以使用并添加新的功能。因此，开发者们使用的编程语言不断在发展进化，就如同计算机20年来的显著发展变化一样。没有什么是一成不变的，永远不变的只有变化本身。举个例子来说，你知道在1993年的时候，Emacs Lisp是最受欢迎的开源编程语言之一吗？也许有读者从未听说过Emacs，这是一款在Linux开发者中非常流行的文本编辑器，由自由软件领袖Richard Stallman开发。由于当时在Linux下并没有多少成熟的集成开发环境（IDE），就算有，Linuxer们也不屑于使用，而同时Emacs具有良好的可扩展性，所以很多程序员都用它来写代码。Emacs Lisp就是早期Lisp编程语言的一款衍生品。同样在1993年的第一季度，C语言编写的代码在代码提交总量中占到了51%，位列最受欢迎的开源编程语言。Make——Unix开发者使用的一款工具，能够将源代码自动生成为可执行程序或库文件)，1993年它在开发者中的使用比例仅为6%。2013年第一季度，Java成为最受欢迎的开源编程语言，所占比例为12%。C++占比11%，而HTML为10%。所有这些开源编程语言都或多或少影响着新语言的诞生。比如C语言，一直深刻影响着编程语言的变革，像C++、Python、Javascript和Perl都是深受C语言的影响；再比如Java帮助形成了C#的基础，而Python则影响了Ruby。变革还将持续。1993年只有不到40种开源编程语言。到了2013年，语言数量几乎达到100种，而且每天都在诞生新的ideas。看一下移动云计算公司Kinvey提供的信息图，图中绘制了20年来开源编程语言的历史概况。图表数据来源于Ohloh.net 和 黑鸭子软件(Black Duck Software).Kinvey 注:我们将1993年以来，排名前16的编程语言在给定单季度的代码提交总量中所占的比例进行了可视化。希望你能和我们一样，发现这张图表的有趣之处——从“一家独大”到“群雄并起”，它真实展现了编程世界的活力。我们还将其他一些感兴趣的数据化成了几个小图：语言种类年度总量、各语言每次提交代码的平均行数、追踪哪些语言影响了其他语言的发展。 via: http://readwrite.com/2013/09/17/a-visual-history-of-the-last-20-years-of-open-source-code本文由 LCTT 原创翻译，Linux中国 荣誉推出译者：Mr小眼儿
TIOBE 2013 年 4 月编程语言排行榜：程序员很淡定
TIOBE 2013 年 4 月编程语言排行榜公布了。这次发布不但给出了当月的各个语言的排名，还同时对比了各个语言相对于去年 4 月份的排名情况，经过对比可以发现，排名前八的语言去年四月和今年四月的排名是一样的，看来在这一年的期间里，程序员们都很淡定的看待各个语言的发展，该用哪种还用哪种。而不管是退出不在使用某种语言的程序员还是新程序员学习某种语言的趋势维持稳定状态。这一年来程序员们很淡定。 在09年之前，Objective-C 对于大家来说了解的人实在是不多，不过由于 iPhone 到后来的 iPad 的成功，导致这种给它们开发应用的语言有了一个突飞猛进的发展，从而使 Objective-C 连续在 2011 年和 2012 年得到年度语言称号，不过到现在的发展势头缺有所减缓了，而且从上个月的第三位下降到第四位了，当然了，发展慢是发展到一定程度后的必然趋势，而一个名次的涨跌也关系不大。不过可以看到的是想撼动 C 和 JAVA 那是没有个十年八年估计撼不动的。下面就来看看详细的榜单： | 2013 年 4 月 | 2012 年 4 月 | 排名变化 | 编程语言名称 | 2013 年 4 月占有率 | 相对于 2012 年 4 月 | Status |11 C17.862%+0.31%A22 Java17.681%+0.65%A33 C++9.714%+0.82%A44 Objective-C9.598%+1.36%A55 C#6.150%-1.20%A66 PHP5.428%+0.14%A77 (Visual) Basic4.699%-0.26%A88 Python4.442%+0.78%A910 Perl2.335%-0.05%A1011 Ruby1.972%+0.46%A119 JavaScript1.509%-1.37%A1214 Visual Basic .NET1.095%+0.12%A1315 Lisp0.905%-0.05%A1416 Pascal0.887%+0.07%A1513 Delphi/Object Pascal0.840%-0.53%A1632 Bash0.840%+0.47%A1718 Transact-SQL0.723%-0.04%A1812 PL/SQL0.715%-0.66%A1924 Assembly0.710%+0.24%A--2021 Lua0.650%+0.08%B长期发展趋势图：排名 20 至 50 名编程语言：| Position | Programming Language | Ratings |21Ada0.642%22SAS0.634%23ABAP0.588%24MATLAB0.517%25COBOL0.491%26R0.484%27Scheme0.419%28Fortran0.407%29Scala0.336%30Prolog0.324%31Erlang0.323%32Haskell0.317%33Scratch0.317%34Logo0.316%35D0.314%36Forth0.240%37Smalltalk0.235%38ActionScript0.226%39APL0.222%40Common Lisp0.219%41Awk0.204%42ML0.199%43J0.187%44JScript.NET0.166%45(Visual) FoxPro0.158%46Tcl0.148%47PL/I0.148%48Ladder Logic0.144%49Algol0.137%50NXT-G0.137%来自：http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html