大学里做不出好软件

软件正在吞噬这个世界。尽管年景不好,Facebook还是创造了650亿美元的市值。这样一个仅仅2000名开发人员的小公司竟能抵得上一个汽车制造公司。

  • 大部分的教授很少编程。因为他们不编程,他们就不会特别强调像代码审查或单元测试这样的好的开发方法。不相信我说的吗?那去GitHub上找找你最喜欢的教授的作品吧。他能充满自豪的在上面展示他开发的代码吗?
  • 因为很少有教授编程,所以你也应该不会吃惊于学校里很少有软件发布途径来供那些想展示自己软件作品的人使用。于是,这也就意味着,即使你开发出高质量的软件,也难有同行来欣赏。
  • 大多数学院里的软件都是由学生写成,他们缺乏经验,缺乏写出好软件的动机。你也许会认为,在学校里花了4年时间,上了无数堂课,做了无数的编程作 业后,大多数计算机科学/工程的学生都应该成为不错的程序员了。但这不是我看到的。部分的原因是学校教育是一个模仿老师的过程。我相信,如果大学四年你是 跟着李纳斯·托沃兹(Linus Torvalds)上课,你一定会成为一个相当不错的操作系统内核编程高手。然而,Linus 不会、也不喜欢当一名大学教授。大学教授不花很多时间去编程,他的学生也会这样。

所以,学校里的软件很烂,是因为学校里的人不善于编程。但这其中还有一些其它因素:

  • 编程可以像煎鸡蛋或建一个鸟窝那么简单。你也知道,写一个PHP脚本把数据库的内容展示到浏览器里并不是那么的难。但要开发出一个不凡的软件则需要程序员表现的像一个创造者。然而,你们的编程课程也许会教如何去煎一个鸡蛋(比喻),但他们不会教你如何设计一个给四星级饭店用的菜肴。创造出新奇软件的门槛也许比你想象的要低。根据一个论文里的算法,我们可以有十几种实现方法,但大部分都是低效率的。即使是已经有原型伪代码提供了, 你仍然需要大量的工作经验在身,才能给出正确的设计。判断如何能正确的实现一个算法也许比你们想象的要难的多。理论家很少有认可这点的,他们通常相信最困 难的部分是用缜密的理论知识设计出算法。他们不知道在两个相同计算复杂度的算法会在软件实现上产生成几个数量级的速度差别。事实上,假设有人告诉你了作家 Stephen King的下一部小说的大纲,你就能写出一部能和King写的一样好的小说吗?很值得怀疑。软件开发也类似。执行是一切。再好的策划也无效。
  • 大多数的学院里的研究者是为自己写软件。 就像烹饪一样:“只给自己写软件的人不知道给别人写软件时有多少工作要做。”相比起在饭店里当一个厨师,给自己做饭要简单容易的多。这两者之间的难度差异 如果说有两个数量级太大,那至少也不在一个数量级上。学术界里很少有人会认可这些。他们基本上写的都是写完即丢的代码:写好程序,使用它,然后忘了它。诸 如维护和文档之类的问题,虽然在一些课堂上也讨论过,但在学院里,鲜有用于实践的。

那么,将来会如何?我对学校里的软件保持悲观态度。也许会有例外,但看总体情况,我不抱太大希望。因此,当我审查一个学生的研究报告或论文时,我会 先假定实现这个理论的软件做的不怎么样。我希望招聘那些新程序员的人也要这样想。鉴于我这样的悲观论调,实际是有一些事情可以做的:如果你想在 Facebook找到一份软件工程师的工作,你就应该多花一些时间在GitHub上,少花一些时间在课堂上。如果你幸运的话,你可以说服学校就你的开源作品给你一些学分。

[本文英文原文链接:On the quality of academic software ]

Google 宣布 iGoogle 从2013年11月开始停止使用

来自 Google 官方博客的消息称:Google’s 个性定制主页 将从 2013 年的十一月开始停止使用。官方对此的解释是一些基于 Chrome 和 Android 的更先进的应用会替代它。

似乎 Google 将使用 Google+ 来替换 iGoogle,尽管 Google+ 的还缺失很多功能,但 Google+ 的应用、主题以及一个类似面板的界面或许刚好填补 iGoogle 的不足。

诺基亚 CEO:我后悔了 但会改善

随着iOS平台和Android平台的兴起,众多老牌手机巨人的日子都变得不太好过。芬兰手机巨头诺基亚的境况可谓是风雨飘摇,塞班系统早已没落,而其孤注一掷的WP系统也前途未卜。近日,诺基亚CEO对公司近期所做的决定表示遗憾和后悔。 美国市场研究机构Asymco的分析师Horace Dediu称,诺基亚首席执行官Stephen Elop近日在接受媒体访问时曾经表示,如果有机会的话,他会改变之前的很多决定。

Stephen Elop表示:“在过去的一年半时间里,如果我们能预料到市场的变化是如此迅速,我们所做的事情将会有很大不同。安卓手机的价格在中国市场急速下降,出乎 我们的意料。市场变幻如此快速,使得诺基亚的情况在短期内变得更加糟糕,但是我们将会继续改善我们的策略。未来是难以预测的,情况非常艰难。”

App Store 将于7月8日新增食物和饮品类别板块

一些iOS开发者已经得到苹果的消息,App Store将新增介绍食物会为饮品的新类别。新版块将于本月8日正式上线,将会影响到目前所有涉及食物和饮品的应用。同时管理菜谱和帮助用户预定餐馆的应用也会被重新归类为食物和饮品类别。

目前App Store并没有食物类别,所有与食物相关的应用被归类为生活方式(Lifestyle)中。节食、购物、优惠码和与食物有关的游戏并不会纳入新类别中。

文/MacX.cn

微软承认 Windows Phone 7 被抛弃是注定的

当微软宣布的Windows Phone 8两个星期前,它确实有一个明显的警告:新的移动操作系统将不能来当前的Windows Phone设备。据到一个新的采访,该公司知道,早在Windows Phone 7开发,当前的Windows Phone设备寿命短。

已知的Windows Phone 8的发展是与Windows Phone 7的并行,因为微软希望合并其移动内核与NT内核的Windows,但没有足够的时间。虽然Windows Phone7 将全面改变启动页面,但它不会与8为Windows Phone开发的应用程序兼容。为Windows Phone高级产品经理格雷格·沙利文,告诉媒体CNET UK,微软的Windows Phone 7最终会被抛弃,并选择不告诉其用户从一开始知道。

甚至发展为Windows Phone 8开始之前,Windows Phone 7的发布,在某些方面,Sullivan说:“团队开发7.5版本实际上是在并行工作已开始与核心团队的Windows Phone 8。”沙利文说的技术网站。“事实上,一些工作已经启动之前的Windows Phone 7甚至可用 – 所以这可以追溯到一点点。”

沙利文告诉媒体CNET UK统一微软的Windows内核的WindowsPhone是“永远的计划”和名为“世代交替之间的兼容性的Windows Phone 7和Windows Phone 8缺乏。” 他接着补充说,微软并不期望在可预见的未来,因为类似的“世代交替”的新架构的设计。Windows Phone 7设备将继续得到支持与微软的在线服务,如SkyDrive和Xbox Live的工作,即使他们不会是微软即将推出的Windows 8作业系统的Windows Phone 8个设备将紧密集成。

据沙利文,微软选择,因为它知道它的有限的时间内推出Windows Phone 7必须立即对Android和iOS竞争。“重要的是我们建立这种用户体验的新方法,并开始建立的开发者生态系统,”沙利文说。“这些都是必要的,但没有 足够的步骤,以建立一个新的平台,我们不想等到[我们能够推出的Windows Phone 8]开始,因为我们维护平台的核心特征。”

英文原文微锋网