动态web开发语言项目 驳“ASP低能论”

  很多人错误地认为ASP是简单、低效的代名词,认为ASP是低能的,不足挂齿的,也很简单,一学就会,一琢磨就精通。

  有人讲ASP不安全,写ASP的程序的时候如果严格按照书写安全的代码的规范去写,写出来的程序也没有什么理由不安全。那些人说ASP不安全,好像PHP、JSP的程序就不会出现SQL Injection似的。

  有人讲ASP不高效,真的想要高效的话你可以结合COM,在Win32平台下COM的效率Java是永远追不上的。单纯讲速度有什么意义呢?Java的速度绝对算不上高,论速度的话好多技术方案的速度都比Java高,这一点学Java的人最清楚了,可是谁在乎过这一点了?Java的胜出绝对不是因为它的速度。抛开具体的应用环境单纯地讲速度是不理性的。

  有人讲ASP这个不能做,那个做不了,功能很局限。其实只要你明白Web的原理的话你就会明白,写ASP程序表面看是在玩一种脚本语言,但你指挥的是Web Server,有很多复杂的功能ASP也照样能完成的很好,有些功能ASP假如因为Web应用的先天局限做不了,你不要以为JSP、PHP就能做到。

  再提到功能。要说功能的话ASP+SQL Server肯定比PHP+MySQL强百倍,MySQL不支持事务处理,就这一条让PHP开发者吃了多少亏,没有视图,没有存储过程和触发器,没有数据库端的用户自定义函数,不能完全使用标准的SQL语法,这都是MySQL的缺点。可是PHP程序员在乎这一点了吗?没有!因为他们最在乎的是MySQL很快。(注意,是MySQL很快,不是PHP很快。同样,是MySQL不支持事务处理,而不是PHP的过错。)在面对PHP+MySQL的时候,人们就如此的理性。面对ASP的时候很多人就缺乏这种理性的认识。

  还有人提到MVC,是的我知道JSP可以把MVC发挥得很好。但是MVC这种编程思想不是Java或某种方案的专利,只要掌握了MVC的程序构架思想,你一样能写出这样的ASP程序、PHP程序。

  许多人单纯地做一些语言本身的比较,有什么意义呢?就好像你谈JSP的时候不谈JavaBeans,不谈EJB,那么你谈JSP有什么意义呢?同理谈ASP的时候你不谈COM,有什么意义呢?不要忘了ASP的核心就是COM。谈PHP的时候如果不谈它强大的平台——Unix/Linx,PHP照样什么也不是。

  不过有一点是可以肯定的,那就是:ASP的入门门槛最低。这按理说应该算ASP的优点,它秉承了微软技术一贯的作风——简单,入门门槛低。也正是因为这一点,使得大量的Web开发领域的新手能够很快地开发网站。但也正因为这一点,使许多掌握了ASP的一点皮毛知识的人自认为对ASP很懂,结果写出很垃圾的程序,让别人看了ASP的笑话。其实我接触过的一些JSP程序员也很垃圾,他们处理数据库操作的时候低级错误百出,但是因为他们是用Java开发的,所以给别人的感觉好像就高人一等。其实真的优秀的程序员如果明白了ASP的一些原理的话也能把ASP驾驭得很好。有些人玩不转ASP,你不能因此说这是ASP的问题。玩不转ASP的人大多是没有正确理解Web,而不是没有正确理解ASP中的语法。

  ASP的语法很简单,Java的语法也复杂不到哪里去,C++和C虽然复杂但是只要是一个智力正常的人也没有理由学不会。

  问题是语法本身很简单,但是Web很复杂。我们不是在这里浅尝辄止地玩弄一下某种脚本语言,我们是在做Web开发。

  Web开发虽然有不同的解决方案,但是基本的原理是相通的。如果你清楚Web端程序的一些运行原理,你就会明白你使用的开发技术的语法难度只不过是一种入门级的难度,真正的难度不在于你用什么技术方案去开发Web应用程序,真正的难度在于错综复杂的Web应用自身。

《驳“ASP低能论”》后记

作者:Xinsoft

我写的《驳“ASP低能论”》一文在ASP程序员社区引起了很多人浓厚的兴趣,大家的评论也比较活跃,从各个角度表达了在这个问题上的看法。

其实当时写那篇文章时,在论述时是带了一定的倾向性的。不过观点我认为还是没有错的。我驳斥了很多人认为ASP功能差的错误观点。但是我有意避开了ASP 在项目管理和开源项目、共享资源方面的危机。当然了,这些危机公正地说,不是ASP本身的问题,有很多是平台之争和程序员社群理念导致的问题。这方面我曾经和博客中国前PHP研发经理覃老师激烈讨论过,讨论到最后,哈哈,原来双方心中的想法是非常接近的。

有一篇很著名的文章,叫做《使你免于失业的10项技术》,文章里说只要你掌握了这10项技术(不一定要全会),你就能永远免于失业。真有这么神奇的技术吗?看看文章就明白了,里面说的都是一些非常重要但又非常基础的知识。而且你对这些技术的掌握不应该只限于会,不是浮在面上,而是扎下根去弄懂弄透彻。现在的许多新技术里面,你经常会发现那些基础知识的影子。

我不否认现在很多ASP程序员因为种种原因需要转型到PHP、J2EE中去,于此同时也有很多据哦程序员仍然坚守在ASP开发领域,更有很多程序员加入到这一队伍中来。我们看到,ASP在许多Web项目中仍然在散发着青春活力。

如果你是一个浮躁的人,即使掌握了J2EE或者.NET也一样会有重重危机。无论你在做哪方面的编程,请做一个扎实稳重的人。这就是我要表达的思想。我也曾经是一个肤浅的人,或许现在仍然是,但在这几年程序开发的日子里,我能够获得更多的能力,抛开外在因素不表,单说内在因素,无外乎是从肤浅逐渐向扎实稳重转变。

动态web开发语言项目 驳“ASP低能论”》有8个想法

  1. 躐人

    写程序都写疯忒了
    public class 写程序
    {
    public 写程序()
    {
    if(开发方式=asp)
    {
    cancle();
    }
    else
    {

    }
    }
    }

发表回复