asp是java吗?asp jsp php 区别
这篇文章给大家聊聊关于asp是java吗,以及asp jsp php 区别对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。
java和asp.net
关于JAVA和C#的比较,从C#的诞生之日开始就没有停止过。其实比较JAVA和C#,有点不是Apple-to-Apple的比较。我认为更确切的说法是JAVA和.NET的比较,而C#是.NET阵营里的得力干将,和VB.NET一起成为微软.NET战略的左右手。 JAVA和C#比较的文章网上的不计其数。其中我看到.NET总设计师之一,C#之父Anders Hejlsberg的一次采访录最为有份量,他从设计的高度和实现的技术细节上阐述了两种技术的主要异同点,比如.NET的Exception handling策略为什么和Java不一样,.NET为什么采用了delegate而不是像Java那样广泛的使用Interface,.NET为什么采用了JIT而不是Java的Hotspot策略等等等等。 Anders是计算机界名动天下的超一流剑客级人物,他的话自然高屋建瓴,广博而且深刻。不过呢,对他的话,一部分我赞同,一部分不是非常熟悉,暂且不表态,而有的地方我还没有被说服,他对Java的一些看法我还持有保留意见。不过呢,如果真地对JAVA和C#很感兴趣,Anders老剑客的谈话我认为是最好的入门一课。从技术上讲,我不可能比Anders说的更好了,我也不想把这帖子业的写的太过严肃了,所以我就轻松的评述两句,主要是从我的角度来谈这个问题。就我个人的印象,JAVA和C#就好比武当之于少林。Java如武当,特色是一个“纯”字;.NET如少林,72般神技,精而且博。其实JAVA和C#算是同宗,都是C++派别衍生出来的。JAVA在前,为师兄,C#在后,为师弟。 JAVA的诞生其实比较偶然。当时SUN的一位软件工程师(James Gosling)负责搞一个小项目,为微波炉,洗衣机之类的电器开发一个小的环境,便以编写相应的程序。作为一个C++的老兵,James非常了解C++的问题,那就是太难编写,调试,测试和发布。C++就如一把没有护手的尖刀,高手们可以随心所欲,但是功力如果稍有不逮,那么往往会伤了自己。并且那时候Unix门派众多,一个C/C++程序要提供IBM, HP, SUN, Digital,SGI以及Windows等等不同flavor的版本,简直是pain to the ass。 Write once and run anywhere的念头开始在心中产生。他老人家于是大刀阔斧,在C++的基础上开始了Java的设计。他砍掉了C++中最危险的几个东西,如multiple inheritance,去掉了指针(pointer),不允许override operator等等。另外从OO的角度,他则将c++又提高了一步,所以从面向对象角度而言,JAVA算是青出于蓝了。不过呢,Java并没有追求所谓的“Pure OO”,它不是100%纯度的面向对象语言。Java开了一个后门,搞了一小撮“异类分子”,独立于Object之外,那就是所谓的Primitive data type。这是出于实际的需要,如果将这些最基础的数据类型(int, float, double, bool...)也搞成Object,那么性能会损失巨大,对GC的压力也太大。基于这些考虑,Java放弃了对所谓“Pure OO”的追求,形成了这种8个 primitive data type加其余Reference Type的一个Hybrid局面。对于Java的程序员来说,任务其实只有一个,那就是编写Class。就好比武当绝学太极神功,要做的就是画圆圈,大大小小,层层叠叠的圆圈... JAVA里面没有指针,没有结构,没有联合,没有枚举,没有Template,没有Macro...程序员只需要凝神静气,编写Class,以Class为纲创建Class的实例--Object.Java从1.0诞生之日起,就很“纯”,一直到1.4.X。之后Java受到了C#的强烈冲击,为了在市场宣传上不落下风,Java加入了很多七七八八的东西,其中大多是为了Language-wise match whatever C# provides。比如增强的foreach loop,蹩脚的autobox/auto-unbox,蒙人的Emum(枚举)。Java 5.0的Generics是个半成品,Annotation还算是一个出于需要而引进的东西。所以现在有人在大声疾呼,希望Java不要丧失了自己最可宝贵的东西--“纯”。Simple and Elegant,这才是Java的真谛。如果非要和别人比拼Feature,那么在一开始我们就直接使用C++好了,还何必创造Java呢?还好,在下一个Java的蓝图中,代号Mustang(野马)的Java 6.0,这个问题没有进一步的恶化,谢天谢地!!!如果说Java的诞生是出于技术上的需求,那么.NET以及C#的出现则是“政治斗争”的产物。当时Java推出后,好评如潮,Java受到了摇滚歌星级的追捧。Sun也自然是毫不客气,将Java上升到了“平台”高度,矛头直接指向微软。微软心中恼火,但又不便于发作,他们的策略是“downplay java”。那时候在多种重要的场合,Bill Gates兄都反复强调"Java只是一种编程语言,和其他上百种计算机语言一样,只是One of them"。嘴上这么说,手上微软可没迟缓。他们派出一少人马,由老剑客Anders担纲,搞微软自己的Virual J++。说实在的,Virual J++搞得很有特色。微软的Virual Machine速度和性能都不比当时Sun的逊色,Visual J++的IDE很流畅,可以像VB那样Drag-and-drop方便的设计界面,可以创建COM Component,可以调用已有的COM Component,可以通过J/Direct访问Win32 API。如果说你开发的程序只是想运行在Windows上,那么我认为当时Virual J++是最出色的Java环境。微软这么“乱搞”Java,Sun自然是大为光火。把COM,WFC安到Java头上那不是QJ Java吗?那样开发出来的东西还能算是Java程序吗?Java还能Write once and run anywhere吗?于是Sun把微软告上法庭,理由嘛说白了很简单,那就是微软在QJ Java,Sun要求微软立刻无条件停下来!不出大家所料,微软输了官司,没法再乱搞Java了。不过呢,在搞Virual J++的时候,微软的队伍已经形成了,概念已经开始清晰了,对Managed World有了切身体会,并且如何访问COM,如何Invoke API这些技术问题都有了答案。微软抛开Java的面具,完全另起炉灶的条件已经具备,于是.NET就开始在微软酝酿了。可以肯定的是,在微软内部关于搞不搞.NET一定有一场异常猛烈的大辩论。COM/COM+/VC++这些微软的硬脚色一定会玩命的抵抗.NET。因为搞.NET,等于放弃微软搞了多年的COM/DCOM,从某种意义上说,是向Java那种Managed Code认输服软了。虽然COM/DCOM有不少问题,比如著名的DLL Hell,但是COM还有改进和发展的余地,那些问题也不是不可以缓解或是解决,并且COM/DCOM当时在性能上还有突出的优势,尤其是用VC++开发出来的。不知道什么人在这场辩论中起了决定作用,最后微软还是下定了决心,Bill Gates拍了板,搞.NET。搞.NET,微软首要的问题有两个:1)如何保住VB程序员。VB是Bill Gates亲儿子,是微软发家的基石,拥有全世界最大的程序员群,如何把这些VB6程序员顺利带入到.NET"贼船"上是微软的头等大事。2)如何将Java程序员诏安到.NET阵营来,让他们来了以后立刻有一种“回家”的感觉,而不用重新学起dim obj as String这样的VB程序。这就是C#诞生的背景。.NET,以及VB.NET, C#都是全新的(当然还有其他的语言),在这一轮的设计中,微软全面借鉴了C++,Java以及他们自己搞的VJ++,应该说还是比较成功的。1.0/1.1有些仓促,在2.0中,微软则下了不少力气,.NET在总体上有了全面进步。大体说来有这么几点。1)第一流的Generics。彻头彻尾的全新设计,非常出色。2)全面优化的XML操作,这在Web Service中使得微软的.NET有很好的表现。3)ASP.NET 2.0的进步巨大,令人刮目相看。4)将.NET全面贯穿到微软的每一个产品中。SQL 2005,Office 11/12,下一代的Windows中都紧密集成了.NET。微软的.NET摊子很大,并且微软还要兼顾以前的COM世界,所以.NET不可避免的有些笨拙,有些不伦不类,比不得Java那么纯粹,那么简洁(抛开JNI不谈)。比若说,.NET要访问以前的COM,要访问以前的DLL,Win32 API,这不可避免的产生一些问题,.NET要利用COM+提供的服务,编写所谓的Serviced Component, Queue Component,这里也有一些问题。而让COM程序来使用.NET开发的Assembly也同样会带来不少问题,为了解决这些问题,微软左支右档,搞出来许多怪怪的东西。这也算是“微软特色”吧!详细文章见:
asp与php的优缺点
PHP比ASP更优秀:
1、速度、速度、速度
当我第一次运行PHP脚本程序时,我不禁对自己说:“太快了”,当时我是在仪态166MHZ的机器上运行我的程序的,但运行的速度仍然很快。
ASP是永远也不会象PHP这样快的,因为ASP是建立在COM体系结构之上的。当用VBScript写ASP脚本时,实际上实在使用COM的对象,当向用户浏览器发送信息时,它用的是Response对象的write方法,当它访问数据库和文件系统的时候,它用的是其他的COM对象。这些COM对象的使用使运行速度下降。
在PHP代码中,所有的工作都运行在PHP的内存空间中,也就是说PHP不是基于COM对象的,所以的他的运行速度会快一些。
下面是我们在MSSQL740次运行一个查询语句的执行时间统计:
PHP Querying MSSQL7时间(秒)
用 MSSQL extension 01.88
用 ODBC extension 09.54
用 ODBC via COM(ADO) 17.28
用OLEDB via COM 06.19
当我们使用PHP.ODBC,访问数据库用了9.54秒,而用COM接口去连接数据库需要比PHP所用的时间高80%。
OLEDB是微软的一种高速访问数据库的技术,他比ODBC要快。但当我们所PHP和OLEDB的效率实验时,结果是PHP的整体性能比OLEDB高200%,如此的出一个结论,如果不采用COM可以获得较快的执行速度。
当然PHP的执行速度还不是最快的,但我们才刚刚开始起步,我们会逐步的完善他,而且PHP是一种开放源代码编程语言,世界上许多程序员在不断的完善他的技术,相信他一定会比非开放源代码系统获得更高的执行速度的。
2、高级内存管理
在IIS4下,一个ASP脚本header.asp,如果被20个页面所包含,那么运行的时候,在内存当中会保留这20个header.asp的编译副本,IIS5解决了这个问题,但只有windows2000才支持IIS5,由于这种IIS5的不能向下兼容的原因,许多服务器仍然要使用IIS4下的低级的内存管理。
而在PHP中,不会存在这种问题,只有当require时,才会调用某个include文件。
3、没有后顾之忧
我非常憎恨的一件事情就是会买到一件不放心的产品,比如当你买了一辆汽车,但由于发动机是坏的,你需要更换他;当你买了一栋房子的时候,你要去修补漏雨的屋顶。
那么ASP旧乡这些产品一样,当你买了ASP之后,如果你需要加密技术,你就要买ASPEncrypt;当你需要Email管理时,你就要买ServerObjets Qmail;当你需要文件上传时,你还要买Artisans SA-FileUp.
4、MySQL使PHP更精彩
PHP与MySQL的组合既简单又精彩。PHP有许多管理和维护MySQL的工具,对MySQk的支持是最全面的。许多有用的函数如mysql_insert_id和mysql_affected_rows等,其他的数据库则没有。
ASP和PHP都是中型网站的较理想的解决方案,但PHP与MySQL的紧密结合使PHP更加优越。
MySQL的虚度比Microsoft Access速度快,Mssql和Oracle速度比MySQL要快,可是费用较高。
5、Java和C++的变成风格
这个优点只是一个看法。
我知道你不会相信一个Visual Basic程序员会因为PHP有Java和C++的编程风格而转向使用PHP,但你会相信有许多人还是喜欢Java和C++的,PHP是一种具有这两种语言的编程风格的较容易学习的语言。
PHP支持结构化编程,在VB因为他的继承性使用类还是较少的。而PHP的象Java和C++一样的继承性使一个大型的程序中到处都充满了类的影子。
6、Bug的处理。
你是否曾经要求Microsoft修改ASP的一些Bug呢?如果你不是一个象Boeing一样的组织,你无法获得迅速而恰当的修改,把么当你遇到Bug而停止工作时,如果这个Bug不修改,你将无法继续你的工作的。
PHP,当你发现Bug时,你可以修改他,如果你没有专家的水平,你可以请专家修改,并且你的修改会得到开放代码组织的接受和认可。
7、移植性
Microsoft经常修改ASP,下一版本叫ASP+,现在已经开始测试。我相信他们会修改许多我曾经提到过的问题。但也无庸质疑的,Microsoft会将你限制在他们的产品范围之内的。
我曾经是一个苹果机的程序员,当windows95问世后,我开始转变,但许多原来的代码都无法在windows95下运行,这些代码现在被放在一边,我非常的遗憾。所以我不希望在windows下再出现这样的悲剧。
不要忘记Novell曾经也象Microsoft的网络操作系统一样热及一时,但现在已经没有许多人用了,那么Microsoft也会这样的。
我找到了PHP,我仍旧在windows下工作,但我知道PHP代码可以运行在Solaris、Linux和许多其他的操作系统中,我的心里感到安慰。
asp和vb是一个东西吗 他们和asp.net有关系吗
asp和vb不是一个东西
不同的地方:
ASP是Active Server Page的缩写,意为“动态服务器页面”,是做网站的一种动态语言,其语法为VBScript语法,VBScript为VB语言的真子集。主要是用作B/S结构的网站开发
VB是Visual Basic的简称,是由美国微软公司于1991年开发的一种可视化的、面向对象和采用事件驱动方式的结构化高级程序设计语言,可用于开发 Windows环境下的各类应用程序。主要是用作C/S结构的软件开发
ASP.NET是.NET FrameWork的一部分,是一项微软公司的技术,是一种使嵌入网页中的脚本可由因特网服务器执行的服务器端脚本技术,它可以在通过HTTP请求文档时再在Web服务器上动态创建它们。指 Active Server Pages(动态服务器页面),运行于 IIS(Internet Information Server服务,是Windows开发的Web服务器)之中的程序。
关于asp是java吗到此分享完毕,希望能帮助到您。