`
jackle_liu
  • 浏览: 149244 次
文章分类
社区版块
存档分类
最新评论

网站开发采用语言的考量

阅读更多
   一直在考虑假如让我开发网站我会选择什么语言? j2ee?.net?还是ruby,python,php? 现在每一种语言都是一套完整的体系和平台,有很多的支撑点(服务器软件,框架,开源API,官方API,文档),不可否认哪种语言用好了都会开发出完美的网站。因为上面这五种都是很适合网站开发的语言。

   不过我还是想找出一个我心目中的选择。所以我先列了一个表,把几个比较知名的网站罗列了以下,看看人家都在用什么?不过后来发现也是百花齐放。
 

当当网 .net
赶集网 .net
卓越 java?
淘宝 java
MYSPACE .net
FACEBOOK php
豆瓣 python
Youtube python
Twitter ruby
javaeye ruby


     据我所知,java和.net应该是迄今为止最为完善的两种企业级开发“平台”,它们包括了一整套可以解决问题的方案,而不仅仅是单纯的语言。如果采用它们来开发网站,那么上至页面展示,下至数据映射,乃至远程访问,集群等都有数种解决方案可以让人选择,尤其是java有无数的开源项目可以充当 demo.

     从页面展示来说,java有JSF,Tapestry,Webwork,Struts等集大成的框架(包括页面组件,页面跳转,缓存,URL自定义等等),也有sitemesh,velocity等一系列模板框架;.net也有asp的组件库(跟tapestry类似)和template功能。应该说不相上下,但是易用性上.net 胜出,因为IDE集成了拖拽组件和对组件属性进行修改功能。只是.net世界少了些选择的乐趣。   

     从中间层来说,java有spring和EJB(session bean),这两种解决方案都是杀手级的,要效率有效率,要简单有简单,而且EJB的分布式解决方案几乎是perfect,真是大型应用的必要选择。众所周知EJB3.0之后的开发越来越轻松了。不过现在也冒出了spring.net,但是.net世界的分布式解决方案还没听到,也许WCF就是为了这一目的而产生的?总之感觉.net世界总是追着java的屁股走。今年是个关键时刻,看看oracle收购sun之后java是不是还能推陈出新,不断前进。

    持久化层不用说了,hibernate,EJB(JPA)对Nhibernate,LinQ,个人感觉还是java纯正一些, Linq的语言写出来感觉怪怪的。

    异步处理方面也是如此,java的解决方案要远远多于.net.

    如果这个世界上只有java和.net两种开发语言,我会选择java。虽然.net有良好的开发工具(visual studio)可以显著加快页面的开发速度,但是要用.net作出一个典型的MVC应用你就会知道有多别扭了(不能成功的分层,代表不适合协作开发),而且用了.net就等于放弃了 unix/linux。另外java世界充斥着N多成功的开源项目,要开发任何东西都有前车之鉴。

    问题在于并不是只有.net和java两种选择。事实上很多专家都在预测动态语言(ruby,python,php)将会超过静态语言(java , .net)的流行程度。这与动态语言开发的敏捷性是分不开的,选择动态语言开发网站会大大节省开发时间。我们肯定不应该忽略专家的意见,况且sun被收购,微软被google在互联网领域压得抬不起头来是客观事实。
    
    三者选其一php会被我首先排除掉,当然可能是我的偏见。php分层,php面向对象都很弱,程序员用php开发本身就会降低程序员的竞争力。不过php发展多年,有很多的经验和成果可以借鉴,这是ruby和python所欠缺的。
    
   ruby近几年的流行势头极其迅猛,这与它的杀手级框架ruby on rails是分不开的,据javaeye的创始人之一robbin宣称javaeye网站开发,三个人只用了2个月左右的时间,真是不得不惊叹,而且"截止目前,JavaEye网站仅仅使用了总价格2.6万人民币的两台低端PC服务器,就支撑了网站每天高达140多万动态请求的访问量"。不过ruby on rails开发起来真是一个人一个写法,非常不适合团队开发(或者说还没找到方法去团队协作)。而且ruby on rails大企业和开源的支持都比较少,这是不得不考虑的问题,背靠大树好乘凉,没有大树自然就晒得很疼。

   说到最后只剩下一个python了,总得来说它没有那么多出人意料的亮点,但是它的开发速度也很快,曾经让两个高手做实验,两个人分别用ruby on rails和用python的django开发同一个东西,用django居然比ruby on rails还要快。python也足够面向对象,而且python有google的支持,发展时间也比ruby要长,因此积累的资源就要更加丰富。用django开发出来的东西可以足够规范,让每个人都能读懂其他人的代码,适合团队开发。说到这里我的选择就很清楚了,如果让我现在做一个网站,我会选择 python。

  
   当然由于经历和积累的原因,我的见解可能是很片面的,有什么问题,大家可以帮我提出来,非常感谢。
   
2
3
分享到:
评论
6 楼 jackle_liu 2009-05-28  
richyzhang 写道

卓越用的是asp,干java什么事情?

以前有个做java的朋友在卓越供职,所以我就想当然的写了java,不过还是打了个问号的,呵呵。

richyzhang 写道

淘宝只能说用了一部分java,很多还是php的.

可以看一下这篇文章http://tech.sina.com.cn/s/s/2008-06-18/0751697637.shtml.淘宝的架构核心是java.

5 楼 jackle_liu 2009-05-28  
richyzhang 写道

java程序员和python(ruby)程序员获得的成本和容易程度都是不一样的,所以手头的资源对选择很重要.


确实很重要,现在java的程序员太多了。可是让我们想想c++(1983)和java(1995)交替的历史,现在java发展也10几年了,是不是另一个更替即将到来,现在许多专家都在讲 “超越java”,“静态语言与动态语言配合开发”,我们可不能当成空穴来风。另外作为java程序员本身应该深有感触,用java写一个应用真是极其漫长而痛苦的事情,在现在社会节奏这么快的情况下我们真应该敏捷起来。
4 楼 richyzhang 2009-05-27  
引用

当当网 .net
赶集网 .net
卓越 java?
淘宝 java
MYSPACE .net
FACEBOOK php
豆瓣 python
Youtube python
Twitter ruby
javaeye ruby


卓越用的是asp,干java什么事情?
淘宝只能说用了一部分java,很多还是php的.
php是现实中网站开发的王者,sina yahoo 猫扑的主体都是php,真正已经帮人实现梦想的语言,瞧不起php只能说没有实事求是.
当今海内第一大java站点估计是校内,不应该漏了.不过话说回来,asp 或者.net在现实中取得的成果也比java来的成功. java应用的场合一般是政府网站,大国企等业务服务选型的首选,不过这些东西按网站的使用量衡量,基本没多少人访问.

另外,java程序员和python(ruby)程序员获得的成本和容易程度都是不一样的,所以手头的资源对选择很重要.
3 楼 jackle_liu 2009-05-26  
jamesqiu 写道

架构师或者主程序员熟悉那个, 就用那个;别人用得好, 你不一定用得好; 别人用不好, 你也可能弄出成功案例来.

是我的错,没有把思考的环境交代出来。
当前不存在团队成员,但是在框架搭好后逐渐会增加进来,届时可以选择增加java的程序员或者python的程序员,而这都是基于上述思考的结果。
另外我不认为架构师或者主程序员自己熟悉哪个就用哪个,身在江湖,必须多去了解业界的动态,努力的去学习,熟悉都是由不熟悉走过来的。
2 楼 xwkp2008 2009-05-26  
比较赞同敏捷开发用python
1 楼 jamesqiu 2009-05-26  
架构师或者主程序员熟悉那个, 就用那个;

别人用得好, 你不一定用得好; 别人用不好, 你也可能弄出成功案例来.

相关推荐

    基于HTML语言的影院网站设计源码

    本项目提出的影院网站设计,采用了基础且广泛使用的HTML语言,并辅以Python编程语言,实现了影院网站的前端和后端开发。 HTML(超文本标记语言)是构建网页的骨架,它通过各种标签来定义网页的结构和内容,让浏览器...

    购物网站开发毕业设计.doc

    【摘要】 本文主要探讨了购物网站的开发设计,特别是在毕业设计的背景下,...综上所述,本文通过对购物网站开发的深入研究,不仅提供了理论知识,还展示了实际操作过程,为从事相关领域工作的人士提供了有价值的参考。

    基于Java、Vue、JavaScript、HTML、CSS、Shell的甘肃省红色旅游网站开发设计源码

    综合以上内容,甘肃省红色旅游网站开发设计源码的结构和组成体现了现代化网站开发的多方面考量,不仅涵盖了前后端的开发技术,也体现了在用户体验、性能优化、内容管理以及自动化部署等多方面的努力。通过这样的综合...

    基于Java的findu网站全栈开发设计源码

    项目采用Java作为核心开发语言,这不仅因为Java具有跨平台、面向对象、安全性高等特点,而且其成熟的生态系统和广泛的社区支持,使其成为构建大型企业级应用的首选语言。除了Java,项目还融合了JavaScript、CSS、...

    基于asp.net房地产网站开发

    【基于ASP.NET的房地产网站开发】是一个典型的Web应用程序项目,主要使用了Microsoft的.NET框架,具体为ASP.NET技术,这是用于构建动态网站、web应用和web服务的强大平台。在这个项目中,开发人员选择了Visual ...

    研究生第二个课程设计作业,设计并开发一个类似于“Instagram”的图片分享网站

    安全性是社交网站开发中不可忽视的方面。网站应该实现安全的数据传输协议(如HTTPS),并采用加密技术保护用户密码和敏感信息,避免数据泄露风险。同时,要设计有效的数据备份和恢复策略,防止数据丢失。 用户体验...

    基于asp.net的音乐网站的设计与实现.docx

    了解ASP.NET在音乐网站开发中的应用,及其如何通过数据库和后端开发环境进行综合开发,从而构建一个功能完备、界面友好的音乐网站平台。本设计不仅适用于音乐网站,也为其他类型的网站提供了开发参考。 本项目的...

    基于Java语言的购物网站设计源码

    本文档为一份基于Java语言开发的购物网站设计源码。Java语言以其跨平台、面向对象、安全性高等特性,广泛应用于大型系统开发中,尤其适合需要高并发处理、事务管理和数据持久化的复杂应用场景。该购物网站项目充分...

    基于java的求职招聘网站,java+springboot+vue开发的求职招聘管理系统_-_毕业设_java_job.zip

    标题中明确指出,这是一个基于Java语言开发的求职招聘网站项目,该项目采用了Java作为后端开发语言,并结合了Spring Boot框架以及Vue.js前端框架。这种技术栈的选择在现代Web开发中相当常见,尤其是对于需要快速开发...

    springboot相亲网站(源码).rar

    首先,从技术角度来说,该相亲网站采用Java作为主要开发语言,Java是一种广泛应用于企业级开发的编程语言,以其跨平台、面向对象等特性著称。在开发相亲网站时,使用Java能够保证程序的稳定性和扩展性,同时也利于...

    ASP论坛网站实例开发源码——丽物论坛 lisvbbs实例开发.rar

    通过对"丽物论坛 lisvbbs"实例的学习,开发者可以深入理解ASP开发论坛的基本原理和实践技巧,同时也可以掌握到网站开发中的通用知识,如数据库设计、用户体验优化、安全性考量等。通过实际操作,可以提升自己的编程...

    客至上自助建站手机网CMS系统.rar

    1.采用Java语言开发 2.支持Android 2.1版本以上   IIS站点需要添加HTML映射,操作步骤: 1.站点属性-》主目录-》配置-》映射-》添加 2.可执行文件与.aspx一致,扩展名.html,确认文件是否存在不选

    PHP实例开发源码—TCMS简易php个人网站系统[正式版].zip

    此外,安全性是PHP开发的重要考量。TCMS可能包含了防止SQL注入、XSS攻击的安全措施。例如,使用预处理语句来防止SQL注入,对用户输入进行过滤和转义来防止跨站脚本攻击。 文件管理和上传也是PHP网站系统常见的功能...

    漂亮的音乐网站模板

    音乐网站开发涉及多个方面,首先需要考虑的是用户体验,包括界面设计的美观度、操作的便捷性以及音乐播放的流畅性。音乐播放器的设计至关重要,需要有播放、暂停、前进、后退、随机播放、循环播放等功能,同时还要有...

    基于java的视频网站系统的设计与实现.docx

    4. B/S模式的应用:选择B/S模式(浏览器/服务器模式)进行视频网站系统开发是出于其高效性考量。该模式允许用户通过网络浏览器访问和使用网站,极大地提高了系统的灵活性和易用性。 5. Java语言在系统开发中的应用...

    渐飞网站管理系统_C#门户网站cms程序.rar

    渐飞网站管理系统很可能采用了MVC(Model-View-Controller)模式,这是一种广泛用于Web开发的设计模式,它将业务逻辑、数据和用户界面分离,提高了代码的可读性和可维护性。C#与ASP.NET MVC框架的结合,使得开发者...

    环球贸易官方网站_jk-global-website.zip

    在网站开发中,“主干”通常包含了网站的主体结构和基础功能,但可能不包括特定环境下的配置文件、用户上传的内容等。这表明了“jk-global-website”项目可能是一个由团队合作开发的网站,使用了版本控制系统如Git,...

    毕业设计论文Java+SSM摄影约拍网站.doc

    3. 技术架构和开发语言选择:该网站采用了SSM框架(Spring、SpringMVC、MyBatis),使用Java语言进行开发,并利用Mysql数据库存储数据。这些技术的选择保证了网站的跨平台性和大型商业网站的开发能力。 4. 网站功能...

    如何做好一个网站(利用开源项目)

    在网站开发初期,选择合适的框架和编程语言至关重要。Django和Python是备受推崇的选择之一,尤其是对于那些希望构建稳定、安全且功能丰富的网站的开发者来说。Django框架提供了强大的ORM(对象关系映射)、模板系统...

Global site tag (gtag.js) - Google Analytics