标签 语言 下的文章

上古电子表格 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

当你运行之前的命令,你应该在终端看到下面的页面:

sudo dpkg reconfigure locales

在这里,你应该使用向上和向下的箭头移动直到你到达所需的语言。在我的例子中,我想要西班牙语,更具体地说,是墨西哥西班牙语,因为我是墨西哥人。

不是所有的语言都有这个选项,但如果你的语言有,请选择 UTF-8

找到你的语言后,按空格键来标记,然后回车

Selecting your language

最后,在最后一个窗口中,通过使用箭头键移动到该语言并按下回车键,选择该新语言作为你的默认语言。

Setting new language as default

完成后,你应该在你的终端看到这样的信息:

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

learn programming language

毫无疑问, Python 现在已经统治着编程市场。它发起于 1991 年,自从 YouTube 开始使用它之后,Python 已经真正的成为著名编程语言。Python 可以被用于各类领域,比如,Web 开发、游戏开发、脚本、科学研究、以及大多数你能想到的领域。它是跨平台的,并且运行在一个解释程序中。Python 的语法非常简单,因为它使用缩进代替花括号来对代码块进行分组,因此,代码非常清晰。

示例:

print("Hello world!")

Kotlin

kotlin programming language

虽然 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 programming language

关于 PHP 即将消亡的话题,因特网上正在疯传,但是,我没有看到一个为什么不去学习 PHP 的理由,它是服务器端脚本语言中比较优秀的一个,它的语法结构非常简单。一半以上的因特网都运行在 PHP 上。Wordpress,这个最流行的内容管理系统是用 PHP 写的。因为,这个语言流行的时间已经超过 20 年了,它已经有了足够多的库。在这些库中,你总能找到一个是适合你的工作的。

示例

echo "Hello world!";

Javascript

javascript programming language for web

关于 Javascript,我说些什么呢?这是目前最为需要的语言。Javascript 主要用于网站动态生成页面。但是,现在 JavaScript 已经演进到可以做更多的事情。整个前后端框架都可以用 JavaScript 构建。Hybrid 应用是用 HTML+JS 写的,它被用于构建任何移动端的平台。使用 Javascript 的 nodejs 甚至被用于服务器端的脚本。

示例

document.write("Hello world!");

SQL

sql database language

SQL 是关系型数据库管理系统(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中国 荣誉推出