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

网站开发采用语言的考量

阅读更多
   一直在考虑假如让我开发网站我会选择什么语言? 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  
架构师或者主程序员熟悉那个, 就用那个;

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

相关推荐

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

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

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

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

    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网站系统常见的功能...

    漂亮的音乐网站模板

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

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

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

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

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

    C语言教学网站的研究与开发.pdf

    其次,先进性体现在充分利用现有的计算机技术、网络技术以及软件开发技术,采用高性能的系统,如运用B/S结构和***开发平台,配合SQLServer2005后台数据库,以方便师生教与学的需求。此外,高可靠性、高安全性、遵循...

    C#开发的加密图片文本网站录入的记事本

    本文将深入探讨以C#编程语言开发的加密图片文本网页录入记事本,它不仅提供了便捷的文字录入功能,还支持图片、字体、颜色、背景等多种元素的记录,并具备网站链接的保存能力,更重要的是,其强大的加密机制确保了...

    物流网站建设及实现技术

    例如,项目可能明确了要建立一个门户性的网站,采用ASP(Active Server Pages)作为主要的开发语言,这是因为ASP在动态网页开发中具有较好的灵活性和可扩展性,适合构建交互性强的网站。 系统设计部分深入到具体的...

    为什么大多数大型网站不是用Java写的.rar

    尽管Java是一种功能强大、广泛使用的编程语言,但事实是,很多大型网站并没有选择Java作为主要开发语言。这个问题涉及到多种因素,包括性能、可扩展性、开发效率、生态系统、成本以及特定业务需求等。下面我们将详细...

    基于PHP的优客365网站导航开源版源码.zip

    优客365网站导航系统选择PHP作为开发语言,体现了其对性能和可扩展性的考量。 该开源版源码包含的核心功能可能包括: 1. **网站分类管理**:允许管理员创建、编辑和删除不同的网站类别,方便用户按照主题查找网站...

    无障碍网页设计与开发规范

    原则三:网页开发和输出入装置相关技术处理的可访问性全球信息网相关技术的进步日新月异,随时会出现许多新的技术,包括新的输出和输入装置、 Script 语言、网页内的程序对象、网页排版语言、以及特殊媒体技术等。...

    基于php家居家具沙发类网站.zip

    2. **MVC架构**:许多PHP网站开发采用Model-View-Controller(模型-视图-控制器)架构,将业务逻辑、数据和用户界面分离,提高代码的可维护性和可扩展性。在家居家具网站中,模型负责数据处理,视图呈现用户界面,...

    PHP网站模板,网站源码,带PHP后台:风车发电科技企业网站模板是一款适合手机APP设计公司网站模板.zip

    “风车发电科技企业网站模板”特别强调其适应手机APP设计公司的特性,这意味着它采用了响应式设计。响应式设计是指网站能够自动适应不同设备的屏幕尺寸,无论是桌面电脑、平板还是智能手机,都能提供良好的用户体验...

    旅游景点大全网站源码

    对于学习ASP、网站开发或者想要搭建旅游信息平台的人来说,这是一个有价值的资源,可以深入研究其架构、交互逻辑以及数据处理方式,提升自己的技能。同时,对于实际运营者而言,可以根据业务需求调整和优化源码,...

    小米网站源码包

    总之,小米网站源码包是一个宝贵的教育资源,涵盖了LNMP环境下的网站开发多个核心方面,无论是初学者还是有经验的开发者,都能从中受益匪浅。但同时,使用者也应遵循道德规范,不得用于非法用途。

    JSP 音乐网站

    下面将详细介绍JSP技术及其在音乐网站开发中的应用。 JSP(JavaServer Pages)是Java平台上的一种服务器端脚本语言,它允许开发者将HTML代码与Java代码混合编写,以创建动态网页。JSP的核心优势在于它的可移植性,...

Global site tag (gtag.js) - Google Analytics