就在刚才,我们发现 Mozilla 将最终版本的 Firefox 46.0 上传到了他们的 FTP 服务器上,不过目前官方还没有正式更新下载链接。

被一直期待的 Firefox 46.0 定于今天发布,这次他们终于完成了承诺,在 GNU/Linux 平台上集成了 GTK3!集成 GTK3 这个事情可是从 Firefox 42.0 就开始给 Linux 用户们许诺了,而在 2015 年 11 月 42.0 发布时显然并没完成承诺,期间屡次许诺完成又屡次失信,直到现在才算真正实现。

除了 GTK3 之外,此次新版本还改进了 JavaScript JIT(Just In Time)编译器的安全,支持使用内容解密模块Content Decryption Module(CDN)作为解码未加密的 H.264 和 AAC 流的回退解码器。

Mozilla Firefox 46.0 看起来是一个小的发布版本,应该是我们所见过的最小的一个发布版本了,至少从之前的 Beta 版本的变更日志来看是这样的。从变更日志中可以看到,它改进了 WebRTC API 的稳定性和性能、支持 HTML5 的 document.elementsFromPoint 、增加了 Web Crypto API 的 HKDF 支持。

对于开发者来说,Mozilla Firefox 46.0 现在可以在内存工具中显示 dominator trees,在性能面板中增加了分配和垃圾回收的暂停分析,此外还支持在样式编辑器中直接启动响应模式。

软件产业是国民经济和社会信息化的基础性、战略性产业。在信息化迅猛发展的今天,各行各业几乎都离不开软件的研发与应用。自2001年以来,国务院发布和实施一系列推进使用正版软件工作的政策措施,建立了“推进使用正版软件工作部际联席会议”制度,特别是随着我国政府机关和大型国有企业完成软件正版化任务、建立起使用正版软件长效机制,我国推进使用正版软件工作已进入新常态。

在政策利好的刺激下,我国软件产业也呈现出持续增长的势头。据统计,2015年我国软件著作权登记量达到29.24万件,同比增长33.63%;软件和信息技术服务业收入达到4.3万亿元,同比增长16.6%。去年我国各级政府机关共采购操作系统、办公和杀毒软件95.19万套,采购金额4.92亿元。在采购的办公软件中,国产软件套数占73.01%,可以自豪地说,国产办公软件和国产杀毒软件已达到国际先进水平。值得注意的是,近年来我国企业自主研发的操作系统软件也在不断优化的软件市场环境中,以超高的性价比和良好的售后服务欲突破国外操作系统软件一统天下的重围,抢占市场一席之地,其中一铭软件、麒麟软件等就是其中的代表。“让中国人用上自己研发的国产软件”几乎成了国内软件公司的中国梦。

用惯了国外操作系统的人也许会问:国产操作系统能用吗?好用吗?售后服务好吗?能够不断升级满足用户的多样需求吗?为了找寻答案,今年3月底,《中国新闻出版广电报》记者走进贵州省毕节市的黔西县和织金县,实地探访了国产操作系统软件在两地的实际应用情况,不仅了解了用户的真实体验,还采集到用户对于国产操作系统软件在使用中存在的问题和改进建议。记者发现,当前横亘于国产操作系统软件面前的“大山”,其实是人们的惯性思维和兼容问题。

面临三大难题:解放思想大胆试用

“软件企业有句行话:‘软件是用出来的’。没有用户的广泛应用,软件的研发根本不可能实现升级优化。”中国软件联盟副秘书长李丽雅对记者说,“令人欣慰的是,贵州省目前有四个县的政府机关正在大范围地使用一铭国产操作系统软件,且用户通过自己的使用体验把信息及时反馈给研发单位,这种用户与研发单位信息往返的不断轮回,对于国产操作系统的不断优化升级极为重要。”听此,记者又产生了疑问:为什么贵州省会选择做国产操作系统软件的“试验田”呢?

  “2013年政府机关软件正版化工作推进到县级阶段的时候,我们做了大量的调研,结论是我们不得不面临着三个难题,如果要解决这些问题就要勇于担责、敢于尝鲜的勇气。”贵州省新闻出版广电局巡视员胡德怀感慨道。

贵州省版权局版权处调研员陈平对记者坦言道,之所以首先选择毕节市作为试点,就是因为我们在与毕节市文体广电新闻出版局副局长薛占润在讨论国产操作系统运行可能性时,是本着科学的解放思想的态度。陈平介绍说,选择试点也是因为面临三个难题,即是绝大多数县级政府在软件正版化工作中遇到了瓶颈,其中最大的难题就是资金问题。陈平说:“2013年在县级政府机关软件正版化工作启动不久,微软就宣布对WindowsXP、Windows7等低版本的操作系统停止销售或停止服务,并且推出了Windows8,而Windows8的售价比Windows7高出了近一倍。即使在政府采购的价格中,一套Windows8的操作系统也要1580元。而省内规模小一点的县政府办公电脑约有3000台左右,大一点的县会超过6000台,如果购买国外操作系统软件就会动用上千万元的资金,这对于贵州财政资金相对紧缺的省份来说几乎是天文数字。”

“贵州省面对的第二个难题是不平等的买卖关系。”陈平坦言。2013年通过他们的调研发现,当时国外操作系统软件主导着卖方市场,其售后服务却令用户并不满意,甚至在贵州发生了其代理商向政府机关销售盗版软件的案件。除此之外,由于县级政府财政相对困难,政府办公电脑硬件更新非常缓慢,使用8年以上的电脑占到绝大多数,低配置的电脑几乎无法带动Windows7以上的软件,这是贵州省县级政府机关软件正版化工作遇到第三大难题。 

“面临三大难题我们提出了解决办法,即购买和使用国产操作系统,当然,这需要承担责任的勇气。”陈平说。为此,贵州省版权局从公务员队伍办公需求、软件采购成本、安装技术服务等多角度,在全省做了大量的实地调研并形成了可行性报告。另一方面,通过对比和试用,他们认为,一铭软件公司研发的国产操作系统不论从性价比、硬件需求、功能需求还是安全性需求上都符合贵州省县级政府机关的实际需求。而一铭软件公司也愿意将贵州省作为推广“试点田”,不惜成本地为毕节市黔西县、织金县、威宁县和百里杜鹃管委会四个试点县(区)安装了一铭国产操作系统软件。此后,一铭软件公司为了做好国产操作系统的平滑迁移,以及系统替换后的技术支持服务,还专门在贵州省成立了十人的技术团队,随时与试点县(区)相关单位的网络管理技术人员进行面对面交流和培训,使政府机关公务人员很快掌握了系统软件的安装、维护和操作。而这四个县(区)以非常经济的方式实现了县级政府机关软件正版化。这种解放思想大胆试用的做法还受到了推进使用正版软件工作部际联席会议办公室的通报表扬。

克服心理障碍:以科学态度改变使用习惯

在记者实地走访黔西县和织金县的多个政府部门时,询问用户的最多的问题就是:国产操作系统使用方便吗?能否满足政务工作需求?

3月29日下午,记者在黔西县政府政务大厅里看到前来办事的群众还真不少,整个政府政务大厅在国产操作系统上运行着“贵州省行政审批系统”。记者在市场监管局窗口观察到,工作人员徐亚龙正在汇总申请人办理证照的资料。只见他在电脑上非常流畅地进行操作着。他告诉记者在政务大厅工作两年多,一上班就开始使用一铭操作系统。“刚开始使用时确实觉得有些不习惯,比如以前用Windows操作系统时在文件夹中‘向上’和‘返回’的命令图标一般会习惯性地往左上角移动鼠标,但在一铭操作系统下,这两个命令图标都在右上角,但随着使用越来越多我也就习惯了。”他还向记者介绍了他的发现:“我在使用中体验到国产操作系统有其特别的好处,比如压缩文件不用单独解压,可直接双击就能读出文件包里的内容。这一小小的便利对于我们政务大厅工作人员来说却是一个非常实用、贴心的设计,不仅节省了时间还简化了操作步骤,因为一般情况下办证人发来的资料都是压缩文件,这个事例说明国产操作系统软件很接地气。”在文广窗口工作人员罗学忠告诉记者,“一铭操作系统很好用,日常的工作需求都能满足,桌面不仅简洁且操作起来比较便捷,且没有遇到什么卡顿或报错现象,上网浏览网页速度也很快。”

黔西县政务中心网络主管赵小楷在接受记者采访时说,使用国产操作系统不光让中心所有电脑实现了正版化,还省去了每年数千元安装杀毒软件的费用,“因为国产操作系统都是基于Linux系统开发的,而现在很少有针对这种系统代码的病毒程序。”记者还发现,在赵小楷随身携带的笔记本上密密麻麻地记录着中心员工在使用过程中发现的各种问题。他说,“我会把这些问题及时跟一铭软件售后人员反馈,他们会在24小时之内处理完毕,即使现场解决不了的技术人员也会把问题反映到公司的研发部门,以便在新一轮的研发过程中进行改进。”赵小楷还向记者提出了一个特别问题:由于一些专业行业软件只针对Windows系统进行研发,所以该政务中心有一半电脑不得不安装了双系统,他坦言,这其实耗费了不少购置资金。他呼吁国家应该自上而下地强制要求第三方应用软件开发单位,在开发专业软件时应该开发出针对Windows系统和Linux系统两个版本,以适应国外和国产操作系统软件的应用。

在采访中赵小楷的观点其实非常具有代表性。刚刚起步的国产操作系统与几乎占全球垄断地位的国外操作系统软件相比在技术水平上确实存在较大的差距,但这些差距并不是不可逾越的鸿沟。毕节市织金县副县长罗丰坦言,打开自己的电脑往往就进入了一个定式思维与自主选择的博弈中。国产操作系统并不是不好用、不够用,而是没有一种自上而下的强有力的推动。

记者在采访中了解到,除了个人的使用习惯,阻碍国产操作系统软件在政府办公环境中使用的最大问题就是对第三方应用软件的兼容问题。李丽雅介绍说,任何软件都要在某种操作系统上进行开发,也要在这种操作系统上运行,目前国产操作系统都是基于Linux源代码进行的二次开发,如果一个应用软件在开发初期,没有考虑兼容Linux系统,那么未来其在国产操作系统上运行可能要多花一些时间来调整代码,重新编译。贵州省版权局的调研结果显示,目前政府机关使用的计算机系统分为三类:一类是进入政府OA办公平台的计算机;二是安装行业应用软件的计算机;三是一般性公文处理计算机。前两类电脑上的软件都是在Windows操作系统下开发的,只能支持在Windows操作系统上的运行,而其数量占到总量的一半以上。 

对此,一铭软件股份有限技术服务部总监牛战争分析说,“我们一直希望能得到一个公平的竞争环境,如果行业内专业软件商在开发时能考虑兼容Linux系统,对于国产操作系统生态环境的完善会有重大意义。而在一般应用软件方面,一铭也在积极采用多种方式提供能够支持国产操作系统的软件,比如现在一铭软件已经与金山达成战略合作协议,共同打造Linux操作系统上的办公生态环境。同时也积极与国际开源社区及软件开发商合作,将更多用户习惯使用的应用软件平滑地迁移到一铭国产操作系统下,这样用户在其他系统上已经购买的软件也能在国产操作系统上使用。”牛战争还透露,一铭软件将在近期发布一铭国产操作系统软件4.0版本,其中会为用户提供经过一铭软件检测和认证的应用软件集成的软件商店,并实现一键安装,就像用户安装手机软件一样便捷。

据外媒报道,看起来谷歌很快就要打破Chrome OS跟Android之间的屏障了,也就是说,Chrome OS将能登录从Google Play Store上下载下来的Android软件。日前,一位Reddit用户在运行Chrome OS v51的Chromebook中发现了这条线索。据他披露,系统设置菜单中有一个写着”Enable Android apps to run on your Chromebook让你的Chromebook能运行Android应用“的复选框。

不过没过多久这个选择就不见了,但Chrome OS源代码似乎预示了这个可能性。

目前出现这项功能提示只发生在Developer Channel中,并且据开发者透露,当他们启动这项功能后系统仅提供了一个教程,并且很快就会自动关闭。也许这是谷歌正在为下个月的I/O大会而正在准备的一项功能。

2014年,谷歌首次让一批Android软件(其中包括了Vive、Evernote、Duolingo)在Chrome OS上运行。次年4月,谷歌发布ARC(App Runtime for Chrome) Welder应用以此扩大支持范围。

倘若谷歌此番真的能推出这项功能,想必其系统一定能为更多的用户所欢迎。

最近这几年在世界各地突然吹起了一股全民写程序的风潮,连美国总统奥巴马都在写 JavaScript 了,但是身为一介靠写程序(以及在上班时间胡乱上网)来谋生的 developer(所谓的 developer 就是「软件工程师」的比较潮的说法),想要提醒那些想学习写程序的人一件重要的事:慎选你的第一个程序语言。

在软件工程师(中国叫做「程序员」或「码农」)的圈子里,文人相轻的现象可是非常严重的,在程序设计的各个领域里都有着错综复杂的「鄙视链」。从程序语言、编辑器、平台到 { 是写在 if 的同一行还是下一行,不同阵营的人都习惯鄙视来鄙视去。而其中「你用什么程序语言?」更是大家最热衷的一条鄙视链,所以对于刚踏入程序设计领域的初学者来说,万一程序语言选得不好,可是会一开始就落入鄙视链的底层啊。

软件工程师的鄙视链到底有多惨烈、多残酷呢?

程序语言篇

懂 Functional Programming 的工程师鄙视老是把设计模式挂在嘴边的工程师,老是把设计模式挂在嘴边的工程师鄙视会说「你这样写就不 OO 了啊」的工程师,会说「你这样写就不 OO 了啊」的工程师鄙视会说「哈?什么面向对象?不是把重复的 code 写成一个 function 就好了吗?」的工程师,会说「哈?什么面向对象?不是把重复的 code 写成一个 function 就好了吗?」的工程师鄙视把同一段 code 到处复制贴上的工程师,把同一段 code 到处复制贴上的工程师鄙视 PM。

写静态语言的工程师鄙视写动态语言的工程师。

写汇编语言的工程师鄙视写 C 语言的工程师,C 语言工程师鄙视 C++ 工程师,C++ 工程师鄙视 Java 和 C# 工程师,Java 工程师和 C# 工程师则互相鄙视,而 C# 工程师又鄙视 Visual Basic 工程师和会把 C# 念成「C 井」的工程师,会把 C# 念成「C 井」的工程师则鄙视认为 HTML 是一种程序语言的设计师。

用 Python 3 的工程师鄙视还在用 Python 2 的工程师,用 Python 2 的工程师鄙视遇到 UnicodeEncodeError 的工程师。

写 iOS 的工程师鄙视写 Android 的工程师,写 Android 的工程师鄙视写 Windows Phone 的工程师。

有 Swift 一年经验的工程师鄙视有 Objective-C 五年经验的工程师,写 Objective-C 的工程师鄙视用 PhoneGap 包装成 native app 的工程师。

用 React.js 的工程师鄙视用 AngularJS 的工程师,用 AngularJS 的工程师鄙视用 jQuery 的工程师,用 jQuery 的工程师鄙视用 Vanilla JavaScript 的工程师,用 Vanilla JavaScript 的工程师鄙视 IE 的使用者。

会用 debugger 的工程师鄙视用 assert 的工程师,用 assert 的工程师鄙视只会 print () 的工程师;用 console.log () 来 debug 的工程师鄙视用 alert () 来 debug 的工程师。

写 Ruby on Rails 的工程师鄙视所有使用其他语言的工程师。

什么?你说 Ruby?Ruby 只是 Ruby on Rails 的一套框架,才不是什么程序语言呢!

所有的工程师都鄙视 PHP 工程师。

工具篇

用 text editor 的工程师鄙视用 IDE 的工程师。

用 Vim 的工程师鄙视用 Emacs 的工程师,用 Emacs 的工程师鄙视用 Vim 的工程师,无论是用 Vim 或 Emacs 的工程师都鄙视所有用其他编辑器的工程师;用 Atom、Notepadd++、Sublime Text 的工程师鄙视用 Windows 记事本的工程师。

用 Android Studio 或 IntelliJ IDEA 的工程师鄙视用 Eclipse 的工程师,用 Eclipse 的工程师鄙视用 NetBeans 的工程师。

用 Git 或 Mercurial 的工程师鄙视用 Subversion 的工程师,用 Subversion 的工程师鄙视用 Dropbox 来做版本控制的工程师,用 Dropbox 来做版本控制的工程师鄙视根本不知道什么叫做版本控制的工程师。

用 Zsh 的工程师鄙视用 Bash 的工程师,用 Bash 的工程师鄙视用 Cygwin 的工程师,用 Cygwin 的工程师鄙视用DOS 窗口的工程师,用 DOS 窗口的工程师鄙视用 GUI 介面的工程师。

用 IRC 的工程师鄙视用 HipChat 的工程师,用 HipChat 的工程师鄙视用 Slack 的设计师。

用 reStructuredText 写文件的工程师鄙视用 Markdown 写文件的工程师,用 Markdown 写文件的工程师鄙视用 HTML 写文件的工程师,用 HTML 写文件的工程师鄙视不写文件的工程师,然后用 LaTeX 写文件的工程师鄙视所有工程师。

用 Docker 来部署 server 的工程师鄙视用 Ansible 或 Puppet 来部署 server 的工程师,用 Ansible 或 Puppet 来部署 server 的工程师鄙视用 Fabric 来部署 server 的工程师,用 Fabric 来部署 server 的工程师鄙视手动 SSH 的工程师。

OS 篇

用 Mac OS X 的工程师鄙视用 Linux 的工程师,用 Linux 的工程师鄙视用 Windows 的工程师。

用 Debian 的工程师瞧不起用 Ubuntu 的工程师,用 Ubuntu 的工程师瞧不起用非 LTS 版本的 Ubuntu 的工程师。

硬件篇

用 MacBook Pro Retina 的工程师鄙视用 MacBook Air 的工程师,用 MacBook Air 的工程师鄙视用 ThinkPad 的工程师,然后用 Raspberry Pi 的工程师鄙视用 MacBook Pro Retina 的工程师。

用 Dvorak 键盘的工程师鄙视用 Mac 键盘的工程师,用 Mac 键盘的工程师鄙视用 QWERTY 键盘的工程师,用 QWERTY 键盘的工程师鄙视用手写板的设计师。

坐 Aeron 椅子的工程师鄙视坐普通办公椅的工程师,坐普通办公椅的工程师鄙视跟他一样做普通办公椅的 PM,然后站着写程序的工程师鄙视坐 Aeron 椅子的工程师。

职场篇

搞硬件的工程师鄙视搞软件的工程师。

写 OS 的工程师鄙视写 Web 的工程师,写 Web 的工程师鄙视写 desktop application 的工程师。

后端工程师鄙视前端工程师。

工程师跟设计师互相鄙视。

信奉 Test-Driven Development 的工程师鄙视先写 code 再补 tests 的工程师,先写 code 再补 tests 的工程师鄙视不写 tests 的工程师,不写 tests 的工程师鄙视又他妈乱改需求的 PM。

没有证照的工程师鄙视考了一堆证照的工程师。

上班穿休闲服的工程师鄙视上班穿西装的工程师,上班穿西装的工程师鄙视上班穿校服的工程师。

结束语

如果你看了以上这些惨绝人寰的鄙视链之后,仍然没有击倒你想要学习 coding 的心,那我必须提醒你一件最重要的事:先去交一个女朋友,再来学写程序;因为一旦你成为软件工程师之后,就交不到女朋友了。

看来,Ubuntu 16.04 LTS 发布的余波还没有结束,作为 LTS 发布,Canonical 相当重视这次发布,因此其各个分支版本的充斥了这几天的开源新闻。让我们继续介绍一下,这一波发布还有哪些消息。

Lubuntu 16.04 LTS 上周发布的时候,我们提到了它同时发布了支持 PPC 的镜像,而今天它又更新了支持树莓派2的镜像

而随着 Ubuntu 16.04 LTS 的发布,很多基于它的发行版也纷纷更新,比如 Mythbuntu 就发布了 16.04 LTS,这是一个以 MythTV 为中心的媒体版,采用的是 MythTV 0.28 ;但是也有的衍生版则不理会新的 LTS,而继续在老的 LTS 上死磕,比如 Black Lab Linux 刚刚发布了 7.6 版,它是基于 Ubuntu 14.04 LTS 的,采用的内核依旧是 3.X 系列内核:3.19.0-58。

紧接着 Ubuntu 16.04 LTS 发布之后, Canonical 和往常一样,紧锣密鼓的启动了下一个版本 16.10 的开发——感觉版本更迭的好累啊。下一个版本 16.10 不是 LTS 版本,其代码代号是 Yakkety Yak,预计在今年的10月20日发布。根据计划,期间要经过多个 Alpha 版本、 Beta 版本和 RC 版本,事实上,现在就已经可以下载每日构建镜像了。

除了 Ubuntu 系列的新闻外,还有两则多媒体类的新闻:花费了两个月时间,经历了两个 RC 版本,Kodi 媒体中心发布了 16.1 版本,对 DirectX 渲染有多处改进;MKVToolNix 发布了 9.1.0 版本,这是一个广泛使用的跨平台的 MKV 操作工具,初步支持了 WebVTT 字幕。

Linus Torvalds 先生在上个周日做了其常规的周日发布,宣布了 Linux 内核的 4.6 的 RC5 版本。如果 Torvalds 先生不准备发布 RC7 的话,看起来 Linux 内核 4.6 会在下个月中旬到来。

最后,但是并不是不重要,Cinnamon 发布了 3.0.0 版本!它会出现在即将发布的 Linux Mint 18 “Sarah” 中。Cinnamon 3.0 带来了许多新功能,包括:可以让用户在菜单中隐藏或显示 favbox;重新用 Python 开发了声音设置;可以一次性全部静音所有音源等等。