Merge pull request #32 from LCTT/master

更新至2015年10月20日
This commit is contained in:
struggling 2015-10-20 10:23:10 +08:00
commit 70a00456a4
4 changed files with 355 additions and 126 deletions

View File

@ -0,0 +1,132 @@
Larry Wall 专访——语言学、Perl 6 的设计和发布
================================================================================
> 经历了15年的打造Perl 6 终将在年底与大家见面。我们预先采访了它的作者了解一下新特性。
Larry Wall 是个相当有趣的人。他是编程语言 Perl 的创造者这种语言被广泛的誉为将互联网粘在一起的胶水也由于大量地在各种地方使用非字母的符号被嘲笑为只写语言——以难以阅读著称。Larry 本人具有语言学背景,以其介绍 Perl 未来发展的演讲“[洋葱的状态][1]State of the Onion”而闻名。LCTT 译注:“洋葱的状态”是 Larry Wall 的年度演讲的主题,洋葱也是 Perl 基金会的标志。)
在2015年布鲁塞尔的 FOSDEM 上,我们赶上了 Larry问了问他为什么 Perl 6 花了如此长的时间Perl 5 的发布时间是1994年了解当项目中的每个人都各执己见时是多么的难以管理以及他的语言学背景自始至终究竟给 Perl 带来了怎样的影响。做好准备,让我们来领略其中的奥妙……
![](http://www.linuxvoice.com/wp-content/uploads/2015/07/wall1.jpg)
**Linux Voice你曾经有过计划去寻找世界上某个地方的某种不见经传的语言然后为它创造书写的文字但你从未有机会去实现它。如果你能回到过去你会去做么**
Larry Wall你首先得是个年轻人才能搞得定做这些事需要投入很大的努力和人力以至于已经不适合那些上了年纪的人了。健康、活力是其中的一部分同样也因为人们在年轻的时候更容易学习一门新的语言只有在你学会了语言之后你才能写呀。
我自学了日语十年,由于我的音系学和语音学的训练我能说的比较流利——但要理解别人的意思对我来说还十分困难。所以到了日本我会问路,但我听不懂他们的回答!
通常需要一门语言学习得足够好才能开发一个文字体系,并可以使用这种语言进行少量的交流。在你能够实际推广它和用本土人自己的文化教育他们前,那还需要一些年。最后才可以教授本土人如何以他们的文明书写。
当然如果在语言方面你有帮手 —— 经过别人的提醒我们不再使用“语言线人”来称呼他们了,那样显得我们像是在 CIA 工作的一样!—— 你可以通过他们的帮助来学习外语。他们不是老师,但他们会以另一种方式来启发你学习 —— 当然他们也能教你如何说。他们会拿着一根棍子,指着它说“这是一根棍子”,然后丢掉同时说“棒子掉下去了”。然后,你就可以记下一些东西并将其系统化。
大多数让人们有这样做的动力是翻译圣经。但是这只是其中的一方面;另一方面也是为了文化保护。传教士在这方面臭名昭著,因为人类学家认为人们应该基于自己的文明来做这件事。但有些人注定会改变他们的文化——他们可能是军队、或是商业侵入,如可口可乐或者缝纫机,或传教士。在这三者之间,传教士相对来讲伤害最小的了,如果他们恪守本职的话。
**LV许多文字系统有本可依相较而言你的发明就像是格林兰语…**
印第安人照搬字母就发明了他们自己的语言而且没有在这些字母上施加太多我们给这些字母赋予的涵义这种做法相当随性。它们只要能够表达出人们的所思所想使交流顺畅就行。经常是有些声调语言Tonal language使用的是西方文字拼写并尽可能的使用拉丁文的字符变化然后用重音符或数字标注出音调。
在你开始学习如何使用语音和语调表示之后,你也开始变得迷糊——或者你的书写就不如从前准确。或者你对话的时候像在讲英文,但发音开始无法匹配拼写。
**LV当你在开发 Perl 的时候,你的语言学背景会不会使你认为:“这对程序设计语言真的非常重要”?**
LW我在人们是如何使用语言上想了很多。在现实的语言中你有一套名词、动词和形容词的体系并且你知道这些单词的词性。在现实的自然语言中你时常将一个单词放到不同的位置。我所学的语言学理论也被称为法位学phoenetic它解释了这些在自然语言中工作的原理 —— 也就是有些你当做名词的东西,有时候你可以将它用作动词,并且人们总是这样做。
你能很好的将任何单词放在任何位置而进行沟通。我比较喜欢的例子是将一个整句用作为一个形容词。这句话会是这样的:“我不喜欢你的[我可以用任何东西来取代这个形容词的]态度”!
所以自然语言非常灵活,因为聆听者非常聪明 —— 至少,相对于电脑而言 —— 你相信他们会理解你最想表达的意思,即使存在歧义。当然对电脑而言,你必须保证歧义不大。
> “在 Perl 6 中,我们试图让电脑更准确的了解我们。”
可以说在 Perl 1到5上我们针对歧义方面处理做得还不够。有时电脑会在不应该的时候迷惑。在 Perl 6上我们找了许多方法使得电脑对你所说的话能更准确的理解就算用户并不清楚这底是字符串还是数字电脑也能准确的知道它的类型。我们找到了内部以强类型存储而仍然可以无视类型的“以此即彼”的方法。
![](http://www.linuxvoice.com/wp-content/uploads/2015/07/wall2.jpg)
**LVPerl 被视作互联网上的“胶水glue”语言已久能将点点滴滴组合在一起。在你看来 Perl 6 的发布是否符合当前用户的需要,或者旨在招揽更多新用户,能使它重获新生吗?**
LW最初的设想是为 Perl 程序员带来更好的 Perl。但在看到了 Perl 5 上的不足后,很明显改掉这些不足会使 Perl 6更易用就像我在讨论中提到过 —— 类似于 [托尔金J. R. R. Tolkien 在《指环王》前言中谈到的适用性一样][2]。
重点是“简单的东西应该简单,而困难的东西应该可以实现”。让我们回顾一下,在 Perl 2和3之间的那段时间。在 Perl 2上我们不能处理二进制数据或嵌入的 null 值 —— 只支持 C 语言风格的字符串。我曾说过“Perl 只是文本处理语言 —— 在文本处理语言里你并不需要这些功能”。
但当时发生了一大堆的问题,因为大多数的文本中会包含少量的二进制数据 —— 如网络地址network addresses及类似的东西。你使用二进制数据打开套接字然后处理文本。所以通过支持二进制数据语言的适用性applicability翻了一倍。
这让我们开始探讨在语言中什么应该简单。现在的 Perl 中有一条原则是我们偷师了哈夫曼编码Huffman coding的做法它在位编码系统中为字符采取了不同的尺寸常用的字符占用的位数较少不常用的字符占用的位数更多。
我们偷师了这种想法并将它作为 Perl 的一般原则,针对常用的或者说常输入的 —— 这些常用的东西必须简单或简洁。不过另一方面也显得更加的不规则irregular。在自然语言中也是这样的最常用的动词实际上往往是最不规则的。
所以在这样的情况下需要更多的差异存在。我很喜欢一本书是 Umberto Eco 写的的《探寻完美的语言The Search for the Perfect Language说的并不是计算机语言而是哲学语言大体的意思是古代的语言也许是完美的我们应该将它们带回来。
所有的这类语言错误的认为类似的事物其编码也应该总是类似的。但这并不是我们沟通的方式。如果你的农场中有许多动物,他们都有相近的名字,当你想杀一只鸡的时候说“走,去把 Blerfoo 宰了”,你的真实想法是宰了 Blerfee但有可能最后死的是一头牛LCTT 译注:这是杀鸡用牛刀的意思吗?哈哈)。
所以在这种时候我们其实更需要好好的将单词区分开使沟通信道的冗余增加。常用的单词应该有更多的差异。为了达到更有效的通讯还有一种自足LCTT 译注self-clocking ,自同步,[概念][3]来自电信和电子行业,此处译为“自足”更能体现涵义)编码。如果你在一个货物上看到过 UPC 标签(条形码),它就是一个自足编码,每对“条”和“空”总是以七个列宽为单位,据此你就知道“条”的宽度加起来总是这么宽。这就是自足。
在电子产品中还有另一种自足编码。在老式的串行传输协议中有停止和启动位来保持同步。自然语言中也会包含这些。比如说在写日语时不用使用空格。由于书写方式的原因他们会在每个词组的开头使用中文中的汉字字符然后用音节表syllabary中的字符来结尾。
**LV是平假名对吗**
LW: 是的平假名。所以在这一系统每个词组的开头就自然就很重要了。同样的在古希腊大多数的动词都是搭配好的declined 或 conjugated所以它们的标准结尾是一种自足机制。在他们的书写体系中空格也是可有可无的 —— 引入空格是更近代的发明。
所以在计算机语言上也要如此,有的值也可以自足编码。在 Perl 上我们重度依赖这种方法,而且在 Perl 6 上相较于前几代这种依赖更重。当你使用表达式时你要么得到的是一个词要么得到的是插值infix操作符。当你想要得到一个词你有可能得到的是一个前缀操作符它也在相同的位置同样当你想要得到一个插值操作符你也可能得到的是前一个词的后缀。
但是反过来。如果编译器准确的知道它想要什么你可以稍微重载overload它们其它的让 Perl 来完成。所以在斜线“/”后面是单词时它会当成正则表达式,而斜线“/”在字串中时视作除法。而我们并不会重载所有东西,因为那只会使你失去自足冗余。
多数情况下我们提示的比较好的语法错误消息,是出于发现了一行中出现了两个关键词,然后我们尝试找出为什么一行会出现两个关键字 —— “哦,你一定漏掉了上一行的分号”,所以我们相较于很多其他的按步照班的解析器可以生成更好的错误消息。
![](http://www.linuxvoice.com/wp-content/uploads/2015/07/wall3.jpg)
**LV为什么 Perl 6 花了15年当每个人对事物有不同看法时一定十分难于管理而且正确和错误并不是绝对的。**
LW这必须要非常小心地平衡。刚开始会有许多的好的想法 —— 好吧我并不是说那些全是好的想法。也有很多令人烦恼的地方就像有361条 RFC [功能建议文件]而我也许只想要20条。我们需要坐下来将它们全部看完并忽略其中的解决方案因为它们通常流于表象、视野狭隘。几乎每一条只针对一样事物如若我们将它们全部拼凑起来那简直是一堆垃圾。
> “掌握平衡时需要格外小心。毕竟在刚开始的时候总会有许多的好主意。”
所以我们必须基于人们在使用 Perl 5 时的真实感受重新整理,寻找统一、深层的解决方案。这些 RFC 文档许多都提到了一个事实,就是类型系统的不足。通过引入更条理分明的类型系统,我们可以解决很多问题并且即聪明又紧凑。
同时我们开始关注其他方面如何统一特征集并开始重用不同领域的想法这并不需要它们在下层相同。我们有一种标准的书写配对pair的方式——好吧在 Perl 里面有两种但使用冒号书写配对的方法同样可以用于基数计数法或是任何进制的文本编号。同样也可以用于其他形式的引用quoting。在 Perl 里我们称它为“奇妙的一致”。
> “做了 Perl 6 的早期实现的朋友们,握着我的手说:“我们真的很需要一位语言的设计者。””
同样的想法涌现出来,你说“我已经熟悉了语法如何运作,但是我看见它也被用在别处”,所以说视角相同才能找出这种一致。那些提出各种想法和做了 Perl 6 的早期实现的人们回来看我,握着我的手说:“我们真的需要一位语言的设计者。您能作为我们的[仁慈独裁者][4]benevolent dictatorLCTT 译注Benevolent Dictator For Life或 BDFL指开源领袖通常指对社区争议拥有最终裁决权的领袖典故来自 Python 创始人 Guido van Rossum 具体参考维基条目[解释][4]
所以我是语言的设计者但总是听到“不要管具体实现implementation我们目睹了你对 Perl 5 做的那些,我们不想历史重演!”真是让我忍俊不禁,因为他们作为起步的核心和原先 Perl 5 的内部结构上几乎别无二致,也许这就是为什么一些早期的实现做的并不好的原因。
因为我们仍然在摸索我们的整个设计,其实现在做了许多 VM (虚拟机)该做什么和不该做什么的假设,所以最终这个东西就像面向对象的汇编语言一样。类似的问题在伊始阶段无处不在。然后 Pugs 这家伙走过来说:“用用看 Haskell 吧它能让你们清醒的认识自己正在干什么让我们用它来弄清楚下层的语义模型semantic model。”
因此我们明确了其中的一些语义模型但更重要的是我们开始建立符合那些语义模型的测试套件。在这之后Parrot VM 继续进行开发,并且出现了另一个实现 Niecza ,它基于 .Net是由一个年轻的家伙搞出来的。他很聪明实现了 Perl 6 的一个很大的子集。不过他还是一个人干,并没有找到什么好方法让别人介入他的项目。
同时 Parrot 项目变得过于庞大,以至于任何人都不能真正的深入掌控它,并且很难重构。同时,开发 Rakudo 的人们觉得我们可能需要在更多平台上运行它,而不只是在 Parrot VM 上。 于是他们发明了所谓的可移植层 NQP ,即 “Not Quite Perl”。他们一开始将它移植到 JVMJava虚拟机上运行与此同时他们还秘密的开发了一个叫做 MoarVM 的 VM ,它去年才刚刚为人知晓。
无论 MoarVM 还是 JVM 在回归测试regression test中表现得十分接近 —— 在许多方面 Parrot 算是尾随其后。这样不挑剔 VM 真的很棒,我们也能开始考虑将 NQP 发扬光大。谷歌夏季编码大赛Google Summer of Code project的目标就是针对 JavaScript 的 NQP这应该靠谱因为 MoarVM 也同样使用 Node.js 作为日常处理。
我们可能要将今年余下的时光投在 MoarVM 上,直到 6.0 发布,方可休息片刻。
**LV去年英国政府开展编程年活动Year of Code来激发年轻人对编程的兴趣。针对活动的建议五花八门——类似为了让人们准确的认识到内存的使用你是否应该从低阶语言开始讲授或是一门高阶语言。你对此作何看法**
LW到现在为止Python 社区在低阶方面的教学工作做得比我们要好。我们也很想在这一方面做点什么,这也是我们有蝴蝶 logo 的部分原因,以此来吸引七岁大小的女孩子!
![Perl 6 : Camelia](https://upload.wikimedia.org/wikipedia/commons/thumb/8/85/Camelia.svg/640px-Camelia.svg.png)
> “到现在为止Python 社区在低阶方面的教学工作做得比我们要好。”
我们认为将 Perl 6 作为第一门语言来学习是可行的。一大堆的将 Perl 5 作为第一门语言学习的人让我们吃惊。你知道,在 Perl 5 中有许多相当大的概念,如闭包,词法范围,和一些你通常在函数式编程中见到的特性。甚至在 Perl 6 中更是如此。
Perl 6 花了这么长时间的部分原因是我们尝试去坚持将近 50 种互不相同的原则,在设计语言的最后对于“哪点是最重要的规则”这个问题还是悬而未决。有太多的问题需要讨论。有时我们做出了决定,并已经工作了一段时间,才发现这个决定并不很正确。
之前我们并未针对并发程序设计或指定很多东西,直到 Jonathan Worthington 的出现,他非常巧妙的权衡了各个方面。他结合了一些其他语言诸如 Go 和 C# 的想法将并发原语写的非常好。可组合性Composability是一个语言至关重要的一部分。
有很多的程序设计系统的并发和并行写的并不好 —— 比如线程和锁,不良的操作方式有很多。所以在我看来,额外花点时间看一下 Go 或者 C# 这种高阶原语的开发是很值得的 —— 那是一种关键字上的矛盾 —— 写的相当棒。
--------------------------------------------------------------------------------
via: http://www.linuxvoice.com/interview-larry-wall/
作者:[Mike Saunders][a]
译者:[martin2011qi](https://github.com/martin2011qi)
校对:[wxy](https://github.com/wxy)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://www.linuxvoice.com/author/mike/
[1]:https://en.wikipedia.org/wiki/Perl#State_of_the_Onion
[2]:http://tinyurl.com/nhpr8g2
[3]:http://en.wikipedia.org/wiki/Self-clocking_signal
[4]:https://en.wikipedia.org/wiki/Benevolent_dictator_for_life

View File

@ -0,0 +1,220 @@
19 Years of KDE History: Step by Step
================================================================================
youtube 视频
<iframe width="660" height="371" src="https://www.youtube.com/embed/1UG4lQOMBC4?feature=oembed" frameborder="0" allowfullscreen></iframe>
### Introduction ###
KDE one of most functional desktop environment ever. Its open source and free for use. 19 years ago, 14 october 1996 german programmer Matthias Ettrich has started a development of this beautiful environment. KDE provides the shell and many applications for everyday using. Today KDE uses the hundred thousand peoples over the world on Unix and Windows operating system. 19 years serious age for software projects. Time to return and see how it begin.
K Desktop Environment has some new aspects: new design, good look & feel, consistency, easy to use, powerful applications for typical desktop work and special use cases. Name “KDE” is an easy word hack with “Common Desktop Environment”, “K” “Cool”. The first KDE version used proprietary Trolltechs Qt framework (parent of Qt) with dual licensing: open source QPL(Q public license) and proprietary commercial license. In 2000 Trolltech released some Qt libraries under GPL; Qt 4.5 was released in LGPL 2.1. Since 2009 KDE is compiled for three products: Plasma Workspaces (Shell), KDE Applications, KDE Platform as KDE Software compilation.
### Releases ###
#### Pre-Release 14 October 1996 ####
![](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/0b3.png)
Kool Desktop Environment. Word “Kool” will be dropped in future. In the beginning, all components were released to the developer community separately without any coordinated timeframe throughout the overall project. First communication of KDE via mailing list, that was called kde@fiwi02.wiwi.uni-Tubingen.de.
#### KDE 1.0 July 12, 1998 ####
![](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/10.png)
This version received mixed reception. Many criticized the use of the Qt software framework back then under the FreeQt license which was claimed to not be compatible with free software and advised the use of Motif or LessTif instead. Despite that criticism, KDE was well received by many users and made its way into the first Linux distributions.
![28 January 1999](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/11.png)
28 January 1999
An update, **K Desktop Environment 1.1**, was faster, more stable and included many small improvements. It also included a new set of icons, backgrounds and textures. Among this overhauled artwork was a new KDE logo by Torsten Rahn consisting of the letter K in front of a gear which is used in revised form to this day.
#### KDE 2.0 October 23, 2000 ####
![](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/20.png)
Major updates: * DCOP (Desktop COmmunication Protocol), a client-to-client communications protocol * KIO, an application I/O library. * KParts, a component object model * KHTML, an HTML 4.0 compliant rendering and drawing engine
![26 February 2001](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/21.png)
26 February 2001
**K Desktop Environment 2.1** release inaugurated the media player noatun, which used a modular, plugin design. For development, K Desktop Environment 2.1 was bundled with KDevelop.
![15 August 2001](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/22.png)
15 August 2001
The **KDE 2.2** release featured up to a 50% improvement in application startup time on GNU/Linux systems and increased stability and capabilities for HTML rendering and JavaScript; some new features in KMail.
#### KDE 3.0 April 3, 2002 ####
![](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/30.png)
K Desktop Environment 3.0 introduced better support for restricted usage, a feature demanded by certain environments such as kiosks, Internet cafes and enterprise deployments, which disallows the user from having full access to all capabilities of a piece of software.
![28 January 2003](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/31.png)
28 January 2003
**K Desktop Environment 3.1** introduced new default window (Keramik) and icon (Crystal) styles as well as several feature enhancements.
![3 February 2004](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/32.png)
3 February 2004
**K Desktop Environment 3.2** included new features, such as inline spell checking for web forms and emails, improved e-mail and calendaring support, tabs in Konqueror and support for Microsoft Windows desktop sharing protocol (RDP).
![19 August 2004](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/33.png)
19 August 2004
**K Desktop Environment 3.3** focused on integrating different desktop components. Kontact was integrated with Kolab, a groupware application, and Kpilot. Konqueror was given better support for instant messaging contacts, with the capability to send files to IM contacts and support for IM protocols (e.g., IRC).
![16 March 2005](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/34.png)
16 March 2005
**K Desktop Environment 3.4** focused on improving accessibility. The update added a text-to-speech system with support for Konqueror, Kate, KPDF, the standalone application KSayIt and text-to-speech synthesis on the desktop.
![29 November 2005](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/35.png)
29 November 2005
**The K Desktop Environment 3.5** release added SuperKaramba, which provides integrated and simple-to-install widgets to the desktop. Konqueror was given an ad-block feature and became the second web browser to pass the Acid2 CSS test.
#### KDE SC 4.0 January 11, 2008 ####
![](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/400.png)
The majority of development went into implementing most of the new technologies and frameworks of KDE 4. Plasma and the Oxygen style were two of the biggest user-facing changes. Dolphin replaces Konqueror as file manager, Okular default document viewer.
![29 July 2008](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/401.png)
29 July 2008
**KDE 4.1** includes a shared emoticon theming system which is used in PIM and Kopete, and DXS, a service that lets applications download and install data from the Internet with one click. Also introduced are GStreamer, QuickTime 7, and DirectShow 9 Phonon backends. New applications: * Dragon Player * Kontact * Skanlite software for scanners * Step physics simulator * New games: Kdiamond, Kollision, KBreakout and others
![27 January 2009](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/402.png)
27 January 2009
**KDE 4.2** is considered a significant improvement beyond KDE 4.1 in nearly all aspects, and a suitable replacement for KDE 3.5 for most users.
![4 August 2009](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/403.png)
4 August 2009
**KDE 4.3** fixed over 10,000 bugs and implemented almost 2,000 feature requests. Integration with other technologies, such as PolicyKit, NetworkManager & Geolocation services, was another focus of this release.
![9 February 2010](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/404.png)
9 February 2010
**KDE SC 4.4** is based on version 4.6 of the Qt 4 toolkit. New application KAddressBook, first release of Kopete.
![10 August 2010](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/405.png)
10 August 2010
**KDE SC 4.5** has some new features: integration of the WebKit library, an open-source web browser engine, which is used in major browsers such as Apple Safari and Google Chrome. KPackageKit replaced Kpackage.
![26 January 2011](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/406.png)
26 January 2011
**KDE SC 4.6** has better OpenGL compositing along with the usual myriad of fixes and features.
![27 July 2011](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/407.png)
27 July 2011
**KDE SC 4.7** has updated KWin with OpenGL ES 2.0 compatible, Qt Quick, Plasma Desktop with many enhancements and a lot of new functions in general applications. 12k bugs if fixed.
![25 January 2012](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/408.png)
25 January 2012
**KDE SC 4.8**: better KWin performance and Wayland support, new design of Doplhin.
![1 August 2012](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/409.png)
1 August 2012
**KDE SC 4.9**: several improvements to the Dolphin file manager, including the reintroduction of in-line file renaming, back and forward mouse buttons, improvement of the places panel and better usage of file metadata.
![6 February 2013](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/410.png)
6 February 2013
**KDE SC 4.10**: many of the default Plasma widgets were rewritten in QML, and Nepomuk, Kontact and Okular received significant speed improvements.
![14 August 2013](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/411.png)
14 August 2013
**KDE SC 4.11**: Kontact and Nepomuk received many optimizations. The first generation Plasma Workspaces entered maintenance-only development mode.
![18 December 2013](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/412.png)
18 December 2013
**KDE SC 4.12**: Kontact received substantial improvements, many small improvements.
![16 April 2014](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/413.png)
18 December 2013
**KDE SC 4.13**: Nepomuk semantic desktop search was replaced with KDEs in house Baloo. KDE SC 4.13 was released in 53 different translations.
![20 August 2014](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/414.png)
18 December 2013
**KDE SC 4.14**: he release primarily focused on stability, with numerous bugs fixed and few new features added. This was the final KDE SC 4 release.
#### KDE Plasma 5.0 July 15, 2014 ####
![](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/500.png)
KDE Plasma 5 5th generation of KDE. Massive impovements in design and system, new default theme Breeze, complete migration to QML, better performance with OpenGL, better HiDPI displays support.
![11 November 2014](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/501.png)
11 November 2014
**KDE Plasma 5.1**: Ported missing features from Plasma 4.
![27 January 2015](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/502.png)
27 January 2015
**KDE Plasma 5.2**: New components: BlueDevil, KSSHAskPass, Muon, SDDM theme configuration, KScreen, GTK+ style configuration and KDecoration.
![28 April 2015](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/503.png)
28 April 2015
**KDE Plasma 5.3**: Tech preview of Plasma Media Center. New Bluetooth and touchpad applets. Enhanced power management.
![25 August 2015](https://github.com/paulcarroty/Articles/raw/master/KDE_History/im/504.png)
25 August 2015
**KDE Plasma 5.4**: Initial Wayland session, new QML-based audio volume applet, and alternative full-screen application launcher.
Big thanks to the [KDE][1] developers and community, Wikipedia for [descriptions][2] and all my readers. Be free and use the open source software like a KDE.
--------------------------------------------------------------------------------
via: https://tlhp.cf/kde-history/
作者:[Pavlo RudyiCategories][a]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:https://tlhp.cf/author/paul/
[1]:https://www.kde.org/
[2]:https://en.wikipedia.org/wiki/KDE_Plasma_5

View File

@ -1,3 +1,5 @@
translating---geekpi
Linux FAQs with Answers--How to install Ubuntu desktop behind a proxy
================================================================================
> **Question:** My computer is connected to a corporate network sitting behind an HTTP proxy. When I try to install Ubuntu desktop on the computer from a CD-ROM drive, the installation hangs and never finishes while trying to retrieve files, which is presumably due to the proxy. However, the problem is that Ubuntu installer never asks me to configure proxy during installation procedure. Then how can I install Ubuntu desktop behind a proxy?
@ -58,4 +60,4 @@ via: http://ask.xmodulo.com/install-ubuntu-desktop-behind-proxy.html
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://ask.xmodulo.com/author/nanni
[a]:http://ask.xmodulo.com/author/nanni

View File

@ -1,125 +0,0 @@
专访: Larry Wall
================================================================================
> 经历了15年的打造,Perl 6终将在年底与大家见面。我们预先采访了她的作者了解一下新特性。
Larry Wall是个相当有趣的人。他即编程语言Perl的创造者这种语言被广泛的誉为将互联网粘在一起的胶水也因为对非字母使用的密度和宽容度被嘲笑是只写语言。Larry本人具有语言学背景曾风趣的使用“洋葱的状态”来介绍Perl特性为人津道。
在2015年布鲁塞尔的FOSDEM上我们赶上Larry问了问他为什么Perl 6花了如此长的时间Perl 5的发布时间是1994年了解当项目中的每个人都各执己见时是多么的难以管理以及他的语言学背景自始至终究竟给Perl带来了怎样的影响。做好准备让我们来领略其中的奥妙……
![](http://www.linuxvoice.com/wp-content/uploads/2015/07/wall1.jpg)
**Linux Voice你有计划寻找世界某处某种不知名的语言来写脚本但你还未曾有机会去实现它。现在呢**
Larry Wall那需要多么青春才能承担得起呀做这些事需要投入很大的努力和人力以至于已经不适合那些上了年纪的人了。健康、活力是其中的一部分同样也因为人们在年轻的时候更容易学习一门新的语言只有在你学会了语言之后你才能写脚本呀。
我自学了日语十年,由于语音和发声联系我能说的比流利——但要理解别人的意思对我来说还十分困难。所以到了日本我会问路,但我听不懂他们的回答!
> “在Perl 6中我们试图让电脑更准确的了解我们。”
通常需要学习一门语言直到能开发一个书写系统,并且可以使用这种语言进行少量的交流,经过日积月累直到,你能用它学习研究、教书育人,最后达到可以教授本土人如何以他们的文明书写。
当然如果在语言方面你有帮手 —— 经过别人的提醒我们不再使用“语言线人”来称呼他们了那样显得我们像是在CIA工作的一样—— 你可以通过他们的帮助来学习外语。他们不是老师,但他们会以另一种方式来激发你学习 —— 当然他们也能叫你如何说。他们会拿着一根棍子,指着它说“这是一根棍子”,然后丢掉同时说“棒子掉下去了”。你开始记下一些东西并将其系统化。
大多数迫使人们站出来的原因是翻译圣经。但是这只是其中的一方面;另一方面也是为了保护自己的文明。传教士在这方面臭名昭著,应为人类学家认为人们应该基于自己的文明来做这件事。但注定有些有些人会改变他们的文明——他们可能是军队、或是商人,如可口可乐或者缝纫机器,或传教士。在这三者之间,传教士式相对来讲伤害最小的了,如果他们恪守本职的话。
**LV许多文字系统有本可依相较而言你的发明就像是格林兰语…**
切诺基人照搬字母就发明了他们自己的语言,并没有在这些字母上施加任何他们的想法,这种做法相当任性。它们必须要能够表达出人们所想,才能使交流更顺畅。经常是有些声调语言使用的是西方文字拼写,并尽可能的使用拉丁文的字符变化。然后用重音符或数字标注出音调。
在你开始学习如何使用语音和语调表示之后,你也开始变得迷糊——或者你书写就不如从前准确。或者你对话的时候像在讲英文,但发音开始无法匹配拼写。
**LV当你在维护Perl的时候你的语言学背景会不会使你认为“这对程序设计语言真的非常重要”**
LW我在人们是如何使用语言上想了很多。在现实的语言中你有一套名词、动词和形容词的体系并且你知道这些单词的词性。在现实的自然语言中你时常将一个单词放到不同的位置。我所学的语言学理论也被称为法位学他会解释这些在自然语言中工作的原理 —— 也就是有些东西你考虑的时候是名词,但你可以将它用作动词,并且人们总是这样做。
你能很好的将任何单词放在任何位置,然后你就能沟通了。我比较喜欢的例子是将一整句话用作为一个形容词。这句话会是这样的:“我不喜欢你[我可以用任何东西来取代这个形容词的]态度”!
所以自然语言非常灵活,因为聆听者非常聪明 —— 至少,相对于电脑而言 —— 你相信他们会理解你最想表达的意思,即使存在歧义。当然对电脑而言,你必须保证歧义不大。
可以说在Perl 1到5上我们针对这方面的管理做得还不够。有时电脑会在不应该的时候抽风。在Perl 6上我们找了许多方法使得电脑对你所说的话能更准确的理解就算用户并不清楚这底是字符串还是数字。电脑准确的知道它的类型。
![](http://www.linuxvoice.com/wp-content/uploads/2015/07/wall2.jpg)
**LVPerl被视作互联网上的“胶水”语言已久能将点点滴滴组合在一起。在你看来Perl 6的发布是否符合当前用户的需要或者旨在招揽更多新用户能使她重获新生吗**
LW最初的设想是为Perl程序员带来更好的Perl。但在看到了Perl 5上的不足后很明显改掉这些不足会使Perl 6更易用就像我在讨论中提到过 —— 类似于在J. R. R. Tolkien上对易用性的讨论一样[see http://tinyurl.com/nhpr8g2]。
重点是“简单的东西应该简单而难得东西应该可以实现”。让我们回顾一下在Perl 2和3之间的那段时间。在Perl 2上我们不能处理二进制数据或嵌入的空值 —— 只有C语言风格的字符串。我曾说过“Perl只是文本执行语言 —— 你并不需要有这些功能的文本执行语言”。
但当时发生了一大对的问题,因为大多数的文本中会包含少量的二进制数据 —— 类似的例如网址。你使用二进制数据打开套接字,然后文本处理它。所以语言的可用性两倍于处理二进制的可能性。
那我们开始探讨在语言中什么应该简单。现在的Perl中有一条原则我们偷师了哈夫曼编码在位编码系统中为字符采取了不同的尺寸。常用的字符占用的位数较少不常用的字符占用的位数更多。
> “掌握平衡时需要格外小心。毕竟在刚开始的时候总会有许多的好主意。”
我们偷师了这种想法并将它作为Perl的原则针对常用的或者说常输入的 —— 这些常用的东西必须简单或简洁。另一方面,也显得更加的不规则。在自然语言中也是这样的,由诸多的常用的动词趋于诸多的不规律。
所以在这样的情况下需要更多的差异存在。我很喜欢一本书是Umberto Eco写的的《探寻完美的语言》说的并不是计算机语言而是哲学语言大体的意思是古代的语言也许是完美的我们应该将她们带回来。
所有的这类语言错误的认为同样的事物其编码也应该一直是相同的。但这并不是我们沟通的方式。如果你的农场中有许多动物他们都有对应的名字当你想杀一只鸡的时候说“走去把Blerfoo宰了”你的真实想法是宰了Blerfee但有可能最后死的是一头牛。
所以在这种时候我们其实更需要好好的将单词区分开,使沟通的信道的冗余增加。
在电子学中还有另一种自时钟码。在从前的串行传输协议中有停止和启动位,来保持同步。自然语言中也会包含这些。比如说,在写日语时,你不用空格。由于书写方式的原因,他们会在每个词组的开头使用中文中的汉字字符,然后用音节表中的字符来结尾。
**LV平假名对吗**
LW: 是的,平假名。所以使用这一系统,每个词组的开头就自然而然的脱颖而出了。同样的,在古老的希腊,大多数的动词都是搭配好的。所以它们拥有时钟排序机制的标准结尾。在他们的书写体系中空格也是可有可无的 —— 引入空格是更现代的一大发明。
所以在计算机语言上也要如此将值包含于自时钟码中。在Perl上我们重度依赖此道而且在Perl 6上相较于前几代这种依赖更重。当你使用表达式时你要么想得到一个词要么想到得到插入操作符。当你想要得到一个词你有可能同时得到一个前缀操作符同样当你想要得到一个插入符你也可能同时得到前一个词的后缀。
但是反过来。如果编译器准确的知道它想要什么你只用多写那么一丢丢其他的让Perl来完成。所以在切断的时候它会根据需要推荐常规表达式分割处也会如你所愿。而我们并不需要操心任何事因为那只会使你失去自时钟冗余。
大多数我们最好的语法错误消息,源于对一行中出现两个词的观察。然后我们尝试找出原因 —— “哦,你一定漏掉了上一行的分号”。所以我们相较于很多其他特殊解析器可以生成更加好的错误消息。
![](http://www.linuxvoice.com/wp-content/uploads/2015/07/wall3.jpg)
**LV为什么Perl 6花了15年当每个人对她有不同看法时一定十分难管理而且正确和错误并不是绝对的。**
LW这其中必定会有非常微妙的平衡。刚开始会有许多的想法 —— 当然我并不是想说那些是好想法。也有很多令人烦恼的地方就像有361条RFC[功能建议文件]而我想要实现的可能只有其中的20条。我们需要坐下来将它们全部看完并忽略其中的解决方案因为它们通常流于表象、视野狭隘。几乎每一条只针对一样事物如若我们将它们全部拼凑起来那简直是一堆垃圾。
所以我们必须基于人们在使用Perl 5时的真实感受重新整理。寻找统一、深层的解决方案。许多的RFC文档都提到了一个事实就是类型系统的不足。通过引入更条理分明的类型系统我们可以解决很多问题并且即聪明又紧凑。
同时我们开始关注其他面如何统一特征集并开始重用不同领域的想法。并不需要他们在下层相同。我们有一种标准的书写配对方式——好的吧Perl的话有两种但使用冒号书写配对的方法同样可以被基数计数法或是任何文字编号所重用。同样也可以用于其他形式的引用。在Perl里我们称它为“奇妙的一致”。
> “早先组建Perl 6实施小组的朋友挽着我的手说“我们真的很需要一位语言的设计者。””
同样的想法涌现出来你说“我已经熟悉了语法如何运作但是我实在别处看到的”。所以说视角相同才能找出这种一致。那些早期将Perl 6呈现在我面前的人们握着我的手说“我们真的需要一位语言的设计者。您能作为我们的精神领袖吗
所以我是语言的设计者但总是听到“离实施小组远点我们目睹了你对Perl 5做的那些我们不想历史重演”真是让我忍俊不禁因为他们作为起步的核心和原先Perl 5的内部结构上几乎别无二致也许就只因为这个原因实施小组早期的工作并不顺利。
因为我们始终坚持我们的整体设计方法所以在是否应该使用VM上讨论良久最后解决的方式很像面向对象的汇编语言。类似的问题在伊始阶段无处不在。然后Pugs这家伙走过来说“用用看Haskell吧它能让你们清醒的认识自己正在干什么。让我们用它来弄清自己的言下之意。”
因此我们明确了其中的一些语义模型的但更重要的是我们开始建立符合哪些语义模型的测试套件。在这时候持续的对Parrot VM进行开发以及另一个实施项目Niecza的到来它基于.Net是由一个年轻的家伙搞出来的。他很聪明且实施了一大部分的Perl 6。不过他还是一个人干并没有找到什么好方法让别人介入他的项目。
同时Parrot项目变得过于庞大以至于任何人都不能真正的由内而外的管理它并且很难重构。负责这方面工作的Rakudo觉得我们可能需要在更多平台上运行不止Parrot VM。于是他们发明了所谓的可移植层“Not Quite Perl”简写成NQP。他们一开始将它移植到JVMJava虚拟机上运行与此同时他们还秘密的在一个新的VM上工作。这个叫做MoarVM的VM这去年刚刚为人知晓。
无论MoarVM还是JVM在回归测试中表现得十分接近 —— 在许多方面Parrot算是紧随其后。这样不挑剔VM真的很棒我们也能开始考虑将NQP发扬光大。谷歌夏季编码大赛的目标就是针对JavaScript的NQP这应该靠谱因为MoarVM平时处理也同样使用Node.js。
我们可能要将今年余下的时光投在MoarVM上直到6.0发布,方可休息片刻。
**LV去年英国政府开展编程年来激发年轻人对编程的兴趣。针对活动的建议五花八门——类似为了让人们准确的认识到内存的使用你是否应该从低阶语言开授或是一门高阶语言。你对此作和看法**
LW到现在为止Python社区在低阶方面的教学工作做得比我们要好。我们也很想在这一方面做点什么这也是我们有蝴蝶logo的部分原因以此来吸引七岁大小的女孩子
我们认为将Perl 6作为第一门语言来学习是可行的。一大堆的将Perl 5作为第一门语言学习的人让我们吃惊。你知道在Perl 5中有许多相当大的概念如闭包范围操作符和一些你通常在函数式编程中学到的特性。这才Perl 6中同样有很多。
> “到现在为止Python社区在低阶方面的教学工作做得比我们要好。”
Perl 6花了这么长时间的部分原因是我们尝试去坚持将近50种互不相同的原则在设计语言的最后对于“哪点是最重要的规则”这个问题还是悬而未决。有太多的问题需要讨论。优势我们做出了决定并已经工作了一段时间才发现这个决定并不正确。
之前我们并未针对并发程序设计设计或指定些什么直到Jonathan Worthington的出现他非常巧妙的权衡了各个方面。他结合了一些其他语言诸如Go和C#的想法,将并发原语写的非常好。可组合性是一个语言至关重要的一部分。
很滑稽的是很多程序设计系统的并发和并行写的并不好 —— 就像线程和锁不良的操作方式有很多。所以在我看来额外花点时间看一下Go或者C#这种高阶原语的开发是很值得的 —— 他们在条目中列出了矛盾 —— 写的相当棒。
--------------------------------------------------------------------------------
via: http://www.linuxvoice.com/interview-larry-wall/
作者:[Mike Saunders][a]
译者:[译者ID](https://github.com/译者ID)
校对:[校对者ID](https://github.com/校对者ID)
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创翻译,[Linux中国](https://linux.cn/) 荣誉推出
[a]:http://www.linuxvoice.com/author/mike/