再谈asp、asp.net、jsp、php(资源占用率、建站成本)
再谈asp、asp.net、jsp、php(资源占用率、建站成本)
当初没事就看几种建站技术对比的网页,那时人们普遍有一种认识,asp程序质量最烂,php多在国外运行,jsp那是高端技术(性能高、学习成本高、服务器费用高),asp.net和jsp很像但最不适合做网站。
多年后、这几种语言都用过之后再做一个客观的评价。首先说的是asp和php,这两类脚本语言很像,都是通过解释方式执行的。所以效率不是很高,冒似php比asp好一点。这两种语言都是html和脚本混合,写法很随意,想怎么写就怎么写。另外学习难度也不大,在中国自会写点程序就能写来asp程序。另外在微软统制时代,中国人一向青睐asp的。所以asp的资料漫天气。但入门底造就了很多asp的程序质量很低。另外asp用微软的思想就是一个纯脚本语言,是个com组合起来用的,几乎除了数据库和输出几乎什么功能都没有。连最基本的一个上传功能都不行。想要成为asp高手,用组件。com的学习成本太高了,高的让人仰视。所以微软造就了一大群傻瓜式和程序员和顶级程序员。
再说php,我是最后接触的,也是最推荐的网页语言(虽然我一直以来用的asp和jsp),先说php和asp是同一类型的,原理很像,但又不是同一个级别的。asp已经消亡了,但php有越来越猛的趋势。asp只适合做小型网站,但php可以做中型网站,jsp可以做大型网站。但是现在小、中、大型网站都是php做的,小到个人网站,大到百度、新浪这些门户、引擎级的网站。为何,php除了完成传统网站的任务,自身还带了绝大部分的网站组件,数据库就不用说了,上传、图片处理、email都可以轻松完成,属一站式解决方案。世界上有70%的网站是php的,从中你可以看到他的流行程度。
下面说jsp,在从asp到jsp转型的过程中(本人有c++基础),看了两个月的书,实践了两个月。当初感觉jsp里的东西太多了,知识太分散了,安装服务器、学习serverlet、jsp标签、写配置文件。到后来的struts、hibetnate等等,那是一个头大。不过学完了忽然开朗,jsp是干大东西的,所以他的内容非常多,视野非常开阔。java本身就是开发程序的,他几乎能做所有的事情。jsp服务器tomcat就是java写的。开发jsp最大的好处就是他的框架(mvc),程序特别清楚,要说asp和php一百个人可以有一千种写法,但jsp一千个人只有一种写法,框架,所以,无论谁写的jsp程序只要看框架一目了然。非常适于团队开发。我的一个朋友说移动的平台就是jsp开发的,光代码就有几百M。别外jsp非常安全,第三方程序又多(开源),还在不断的发展中,非常适于商业开发和安全性高的应用开发。所有jsp人员薪金特高。
最后说下asp.net.这个东西和jsp很像,都是编译型语言。但是微软一惯的作风是傻瓜式开发,你用微软的平台,不用考虑css、js、html只用拖控件就行。微软的想法是好的,但是实践证明是错的。我就见过好学.net的。做出来的东西很快,但字体又大又难看。根本就和网页的美观背道而驰。甚至有一次一个页面打了半天才动,我把网页源码保存下来,好家伙,源码就有好几兆,打得开才怪了。这个网页也没什么就是几十个列表。但是asp.net服务器控件生成的代码和stateview一大篇看上去都发麻。以目前网站的带宽,那是无稽之谈。所以很多写网页的做企业开发去了。另外asp.net可以用美工美化的,但是难度太大。后来.net经过发展也回归传统了,也开源了。但是网站这方面还是没太多的出路,好在.net一才多用。开发系统倒是很不错的选择。
最后从占用资源和价格方面说一下,先说asp和.net这两个都是要windows server做服务器,windows是要钱的,所以选择asp和.net时就选择了高成本。但asp的价格相对便宜,一会儿再说。jsp和php都可以运行在linux上,linux免费开源。所以php价格不高,但jsp高的吓人。这又是为什么呢?除却asp要用windows操作系统不说,asp和php对系统的资源占用量不大,都是解释性的,页面载入时解释,解释完成释放资源。而.net和jsp都是编译性的。他们都是常驻内存的,也就是说不管你用不用,有没有页面请求。内存都是要占用的,并且在系统中占用的还非常之高。所以一台服务器上可以放几百个asp站点和php站点。但绝对没法放上几十个.net或jsp站点。尤其是jsp站点。如果请求量大的时候内存更是耗的惊人。所以高能耗决定了他们的高价格。asp和php的低能耗决定了他们的低价格。当然是按个人站点来说。大型的应用就用自己的服务器,那就无所谓了。