三大最佳web开发语言的较量1——优势

时间:2024-03-02 20:35:51

有幸横跨三大web平台语言进行开发,最后我来总结一下最近对asp.net和java web还有LAMP的使用体验

周三花了一天熟悉了jsp基本开发流程,周四周五折腾了一份作业,因为老师要求检查同源码作废,所以我决定用struts框架重写一份相同功能的网站,然后又折腾了两天, 但是收获颇丰呐,能力再次飞跃。

javaee

优势:

1.java运行速度相当优秀(java是极快,php和asp.net是快),甚至能明显感觉出来比php的快感(也许是心里因素~),但不管怎么样,编译型语言先天的优势就是更加接近计算机底层二进制(虽然是跑在JVM虚拟机上的也算半个二进制),所以抗并发,高速度是他相对php和python,ruby这样解释型语言的绝对优势!

2.多线程(以下是百度到关于多线程的优势,我不是很了解,长期开发脚本呢,大部分都是单线程工作)

(1)多线程技术使程序的响应速度更快 ,因为用户界面可以在进行其它工作的同时一直处于活动状态;

(2)当前没有进行处理的任务时可以将处理器时间让给其它任务;

(3)占用大量处理时间的任务可以定期将处理器时间让给其它任务;

(4)可以随时停止任务;

(5)可以分别设置各个任务的优先级以优化性能。

3. 数据高安全性:尤其是在数据类型控制上,强类型语言java有着得天独厚的数据安全控制,任何不符合方法的输入值的数据类型都可以使用throw进行异常 抛出而不会像php那样自动转化,连null和0,0和false都有着区别,绝对不能混用,一个不小心就抛出异常了,导致“500”无法访问,我是既爱又恨,每次一个form请求都得搞得所有post都必须存在,才能进行数据操作,否则都是null,null还不会转化,全都在servlet中throw 出来,所以代码要么就是抛出给用户异常,要么想方法转化掉,另外字符串作为对象,所有的==都必须用equals对象方法代替,数据之间比较不会自动转化,也是安全可靠的,在php和js中使用===进行强制类型比较,但是还是没那么可靠,因为大部分脚本都是想尽一切办法尽可能进行数据转化,而 java是反其道而行,尽一切可能判断不同的数据类型!

4. 移植容易:java与各大主流数据库兼容性高,传统的oracle,大众的mysql,支持性都相当的高,这就使他移植简单,我从windows移植到 linux,只需要一个环境的搭建,连服务器都不需要多的配置,然后复制源码到eclipse之中,dump数据库即可,相比asp.net,几乎无法移 植到UNIX家族,sqlserver数据库更加不幸,甚至在windows的不同版本的vs和不同版本的server不同版本的asp.net互相都不 好移植;php,移植性还可以,但是需要对服务器做一定的配置,而且大部分程序员并不熟悉linux服务器高大上的配置,在windows下又发挥不出 php的优势(速度),所以造成了移植修改配置文件的麻烦。java就是一处编译处处运行!

 

php:

优势:

1. 开发速度极快,有敏捷开发的效果,几乎一站成型只要一个月的事情,这是大部分语言无法做到的,这多亏了php先天的能力就是为了网站而生,当初开发php 语言的人不就说是“personal home page”吗?哈哈哈,所以php就为快速开发网站而来的!当然,快主要体现在:第一,脚本语言不需要编译,改完直接跑,刷新看到效果,省去编译时间,开 发时候消耗的性能也相对少,第二,小巧的框架,利用vim,emacs这样的文本编辑器即可整合,不需要借助强大而笨重的IDE,要知道vim在书写代码 时候的速度是远远超越IDE的!但java和C#网站做不到,因为需要借助IDE进行大量自动补全和编译工作!第三,大部分php的配置文件不像java 是xml文件,而是php本身,数组或者对象,这样的优势是我不需要担心xml配置错误导致网站无法跳转和访问,而是报php的错误,更加严谨,反复查看 xml文件错误很麻烦的,也不需要程序员对xml这门糟糕的传输协议语言作多大文章,让开发者更专注于php本身。第四:提供了大量的web开发函数,这是php先天的优势。

2. 同样高的移植性,开源大法好,当初开发者选择开源是正确的,php以讯雷不及掩耳盗铃之势横扫了web开发平台,70%的网站运行着php,几乎已经成为中小企业的第一选择,甚至还有facebook这样的超级大公司,虽然是使用hhvm虚拟机的!

Linux上php效果更佳,传统的LAMP,抗并发的 LNMP,还有诸如wampserver,appserv这样的windows一键安装包,处处体现了他的移植性如此好,可以让大家喜欢上他。

3. 相对高速:php7的发布,让php再次提升了一个高度,从草根语言,升级成为脚本界的神级语言,据说这次重大升级,速度提升了两倍,安全性和oop思想也明显被重视以及升华,可以说已经对asp.net平台windows本身的劣质安全性和性能一记响亮的耳光!但是比起java的速度,我想作为脚本应该知足了!

4. 低门槛:便宜主要体现在两个方面,第一,语言本身以及其环境的便宜:mysql免费开源,nginx和apache也是可以免费的,尤其是 apache,php可以不用windows,所以服务器系统也可以使用免费的Linux,所以开发环境成本已经很低了。

第二,人工成本,如果不需要像 facebook那样做的神出鬼没还搞出C++编译php为本地码,HHVM虚拟机等等(PHP7单独运行的性能已经高于HHVM+php5),那么入门级的php开发简直简单到爆了,如同c语言一样的函数式语法,门槛之低,让小白很快就能上手开发自己的小型网站,所以把人工的成本也降低了(提示:php精通很难的)。低门槛非常建议小型公司创业公司使用LAMP环境开发。

5.升级速度快:php语言专一于web开发又开源了,所以提交补丁和更新升级的速度相当之快,就拿php7来说,最少的时候只有一个人在github上维护,但是照样能在4年之内开发出来,这些孤独的开发者可谓十分伟大,这也造就了php的安全稳定性提升飞快!

 

asp.net with C#

.net是微软提供的一个相当强大的web开发环境,功能强大而且可以做到多种语言整合互相兼容,我之前学的时候甚至说可以从C#调用VB的的函数方法,到底是自家的东西用着就是爽啊

优势:

只要记住一点,大公司后盾:microsoft,世界第一的软件制造商,开发了.net这个强大的web开发平台,作为微软一贯优秀的后期服务和技术支持特性,微软自然为整个asp.net开发环境提供了整套的强有力的后盾,从强大的IDE visual studio,到自家的企业级数据库sqlserver,真的可以用一家独大来形容微软的强大*,“我有钱,我有技术,我自己来,不需要你们帮忙,只需要程序员们膜拜吧!”

后盾的具体力量可以看看以下几点我的开发体验:

第一,对于基础级别的asp.net开发,可以直接通过vs的各种强大功能提供代码,相信一些慵懒的程序员们会喜欢拖拽控件这一功能,几乎所有可用的html前端配合上asp控件都只需要你在图形界面下进行操作,这就充分体现了微软先天的优势:“无敌的图形界面,无敌的桌面”,而不像linux下晦涩的代码编辑器,既要配置又要自己逐个书写代码了,但是对于我来说这是非常令我讨厌和不解的事情,我之前大部分时间都花在vim php代码上,反而不熟悉这种完全的图形界面操作,如果你是个linux程序员,你并不会喜欢vs,甚至充满了鄙视,失去了那种书写代码的快感了,比如在asp.net开发中,要实现ajax只需要找到ajax的控件,然后把一块叫做"updatepanel"的空间托放到aspx文件中,便会自动生成js,html,还有asp和C#代码,再比如一个“button”控件拖动到aspx中,按下F7自动切换并创建C#触发事件,所以我们不需要花大量时间去书写代码,可以安心构想框架和逻辑业务。但是对于一个大神级别的asp.net开发者必须非常熟练的开发各种控件。(注:linux下开发asp.net可以使用monodeveloper)

第二,微软为sqlserver提供了SqlserverMangeStudio这一款强大的数据库管理工具,无论是导入导出sql还是自己构建数据结构都相当的方便,还是因为微软周到的图形界面操作功能,数据库的可视化操作发挥到极致。不必为一款数据库管理工具发愁。

第三,windows自带的IIS服务器,同样使用了微软自家的服务管理器软件,通过右击计算机-》管理就能看到管理页面了,最多就是通过服务开启一下.net framework,asp.net的相关服务,而且也是图形界面的,不必像linux那样配置etc下的各种文件,安装各种http软件然后调试了,在linux下要配置好一台服务器你至少必须熟悉bash,vim这些软件,当然还有文件系统布置,否则你连apache的配置文件都找不到,我最早学lamp服务器的时候多半是通过google百度的,而且除了错误除了打不开还是打不开,简直心累死了(怒摔电脑系列)。而你用了windows只需要一个”internet信息服务iis管理器“便可后患无忧,通过它添加网站,修改配置,开关服务器都只要动一动你强大的右手~

总结下来,用微软家的东西编程就像是用windows的电脑一样,傻瓜化,充分发挥了微软强大的图形截面优势。连写代码都可以用鼠标拖动了,还有什么不能图形化呢,微软爹爹,O(∩_∩)O哈哈~

asp.net平台的网站除了相当完善“微软自家开发体系”之外,作为编译型语言速度也是相当优秀的,C#的.net运行时,速度和java的JVM本来就不相上下,早已成为两家程序员争吵的一个大梗了,不管谁更优秀,必须承认java是更早的,C#算是抄袭的,但是C#的技术后盾更加优秀更加官方更像是正规军,JAVA平台的类库开源和*程度更高,从而产生了JAVA框架百家争鸣的火热景象。