杂文笔记

    返回首页    发表留言
本文作者:李德强
          软件反摩尔定律
 
 

        摩尔定律是由戈登·摩尔提出来的。其内容为:当价格不变时,集成电路上可容纳的元器件的数目,约每隔十八到二十四个月便会增加一倍,性能也将提升一倍。

        然而我认为每过两年软件的性能则会降低一倍。我们购买硬件设备时,总是关心处理器的主频是多少,比几年前提升了多少倍,内存和外存的容量是几年前的几倍。通常情况下,我们每过几年都能买到性能和容量是原来两倍的电脑。计算机硬件发展是如此之快,然而我们的用户体验却没有提高多少。为什么这么说呢?当年的Windows98运行在64M或128M的内存中,而到了XP时,它所占用的内存大概要200M左右,而当Vista面世时,它占据了1G左右的内存空间,而稳定性与性能上并不比XP高出很多,而到了Win7、Win8和Win10之后,操作系统所占用的内存成倍增长。我的一台有着4G内存的电脑目前还可以勉强运行Windows7系统(此时已经升级过无数版本打过无数个补丁的Win7已经比它刚刚面市时的性能低了不知道多少倍),如果把它安装成Windows10系统,使用起来简直慢如老牛,就更别说在这个系统上安装其它的应用软件了。而对于苹果的MAC系统和Linux各个发行版来说,内存和CPU占用方面稍微好一点,但也是有这种逐渐变慢趋势。在这里我指的是操作系统的外壳程序,而不是指的系统内核程序。

        在应用软件上更是让人头疼,你可以看到打着各种“安全可靠”、“方便使用”、“优化系统”、“垃圾清理”……这些旗号所谓的管理软件占满了你电脑里所有的内存。各式各样的安全卫士、电脑管家、杀毒软件使你的电脑变得越来越慢,然而却打着“让你的电脑变快”的幌子继续招摇撞骗。举一个最简单的例子:系统中的缓存通常是为了增加用户对文件的访问速度而设计的,而那些管理软件竟然打着“为系统瘦身”的口号不断的清理掉这些所谓的“系统垃圾”,然而清理掉这些所谓的“系统垃圾”之后我们的系统就变快了吗?我看不见得,当你使用浏览器上网,打开本地照片时,这些缓存文件仍然会被创建,系统也一点也没有变快。其它的应用软件就更是无法容忍,为了增加一点点小功能,应用软件会用掉更多的CPU资源和内存空间。然而增加的这些功能简直小的可怜,甚至用户几乎感觉不到它们的存在。也就是说,这些应用软件所增加的这些功能从本质上并没有增加用户的体验,反而占用了更多的CPU资源和内存空间。就更别说每款软件都会无耻到让人恶心,没完没了的广告弹窗、没完没了的绑定安装、没完没了的垃圾信息……那些还有一点廉耻的软件开发者会在弹窗广告中加入一个“下次不再弹出”的选项,而那些毫无廉耻的开发者则只会用无穷无尽的广告来折磨用户。一旦用户不小心点到了弹窗上,好的结果就是弹出一个浏览器显示出一些网站广告。不好的结果可能是电脑被偷偷的安装上一些垃圾软件,或是垃圾游戏,甚至恶意病毒和木马。另外,还有一个包括操作系统在内的通病,为了让用户看起来这些软件很酷、很炫,软件往往是以牺牲更多的硬件资源来作为代价。其实,用户体验不仅仅是视觉上的,比美观更重要的是它的性能。为了达到酷炫效果,软件的响应速度一落千丈,占用的存储空间也同样越来越多。

        可以想象所有的软件(尤其是国产软件)在每次发布新版本时,它们所需要消耗的资源简直成倍增长,性能则是成倍的下降。如果把最新版本软件运行在几年前的电脑上,它们几乎无法运行,而为了能够运行这些软件,我们不得不去购买更高性能的电脑。现在的智能手机使用到二、三年之后,所有的APP都会变的非常慢。其实并不是你的手机硬件性能变差了,而是那些APP自动更新到最新版本之后会吃掉你手机更多的性能,让你不得不购买一款新手机。生产手机的商家会大肆宣传手机的硬件性能,它是如此之快,用户体验如此之好。然而当你使用了几个月之后,它依然会被这些垃圾软件吃掉绝大多数的硬件性能,从而使你的手机变的越来越慢。

        现在绝大多数的软件设计者只追求功能丰富、界面美观,而没有多少能真正在乎用户体验中最重要的一个因素——性能。为了实现某些功能和特效,软件设计者往往会向系统申请更多的内存,把更多原本在外存中的文件搬到内存中去,使用更多的CPU资源。很少有人在产品设计上会精益求精的提高性能,往往为了达到公司按时发布产品的需要,为了实现客户的需求,功能必须放在第一位,而没有人真正的在乎它的性能是否满足用户的体验。在他们眼里:软件执行用户的一个命令时,只要在三到五秒之内给出响应,用户就可以接受了。谁又会为了提高那三秒钟的时间而努力修改程序?公司从上到下没人认为性能是需要严格控制的,做性能上的优化往往对技术要求更高,经验要求更加丰富,然而很多公司可能没有这样优秀的技术人才。

        另外,在软件设计方面,很多人注重设计的灵活性与通用性,把软件结构设计的极其复杂,为了让软件更加灵活、通用、方便移植和升级,软件被设计到复杂难懂。冗肿的配置文件、大量的通用接口最终导致软件的过度设计,使软件的性能成为一个无法解决的技术瓶颈。面对性能问题,软件设计者不得不把所有性能方面的要求强行交给硬件来处理。现在非常流行软件设计模式和结构化程序设计,人们在多数情况下更关心设计本身的功能要求和灵活要求。开发制作一个软件的小功能都需要做到设计上的低耦合,以便适应后期随时变化的功能需求。另外,在研发时间上多数企业的领导并不关心技术上的实现,其实他们也不懂真正的技术,只对开发团队一个硬性的时间要求,比如为了比对手企业先推出同类产品,他会强行要求研发一个软件必须要在三个月内完成,这种时间上的打压会给开发团队带来非常负面的影响。然而他们并不明白,推出一款设垃圾产品并不会给他们带来多大的优势,反而会降低用户对这种产品的好感。苹果公司并没有率先占领手机市场,然而他们所研制出的苹果手机却是用户最受欢迎的。因为他们把精力放在产品质量和用户体验上,而不是用在快速开发出一个比对手还没推出的产品上。中国有句老话叫:“慢功出细活。”无论做什么事都不是那么简单,如果只注重产品上线的时间而不注重产品的质量,那么即使比对手领先起跑,也早晚会被对手超越,甚至被击败。因为自己穿的是一双简陋的草鞋;而对手却用了几年时间研发出了一款优秀的跑车。

        程序设计者和程序员数以万计,然而合格的、优秀的如同凤毛麟角。在国内,一个年青人做技术五、六年之后通常都会转到其它职位。或是做项目经理,或是做产品经理,或是做到公司的高级管理层,而真正能够踏踏实实做技术的人少之又少。这也说明了国内很多公司对待技术人员的态度,宁可使用一个能力较弱、经验较少的人,也不会使用一个能力强、经验丰富的人,处于最前线的技术工程师通常都没有丰富的经验。但多数企业还是乐意使用廉价的劳动力,因为雇佣后者通常成本很高。国内企业的发展通常靠的是勤劳而不是科技创新。很多企事业的领导者通常更关注于企业的商业模式而不是技术创新。引领技术革命的企业永远都是真正注重科学技术、放眼未来的。国内企业所做出的产品通常都是徒有其表,很难走出国门与世界级企业一争天下。他们靠的是国内巨大的市场,他们的产品通常做的都不精,只要在某一个别人尚未发现的领域率先起跑就会获得非常高的回报。所以也形成了中国这种“廉价劳动力”的风气,没人愿意在技术上投入,年轻人更是做了几年的技术就转入管理。在他们看来“创新”不过是国外科学家、技术人才才会做的东西,只需要跟随他们的脚印就可以了。殊不知一个没有技术创新的企业如同没有灵魂的躯壳,商业模式做的再好,收入再高也很难做到引领时代、跻身全球巨人的程度。放眼世界,AT&T、Intel、苹果、微软、Google这些无一不是重视技术创新、培养人才的高精尖企业,正因为他们在技术上不断的创新才会有这样的成就。而中国企业靠的是商业模式、全民市场、股市、房产。一个企业对待科学技术的重视程度决定了它能够走多远,一个民族对代科学技术的重视程度决定了它在世界中的位置。

  

    

 

    返回首页    返回顶部
  看不清?点击刷新

 

  Copyright © 2015-2018 问渠网 辽ICP备15013245号