朋友们,
我已经有一些C++的经验,现在开始学习J2EE(为了生存:))。同时,我计划自己冒险开发一个Web门户网站。但是由于我在Web技术方面的经验很少,我需要从头开始。我对该选择哪种语言感到有些困惑,所以来问问这里的大家。 考虑到我无论如何都要在工作中学习J2EE,那么学习PHP、Python或JSP,哪种更值得呢?如果一切顺利,我希望这个门户网站每天能获得80-100K次点击,“如果”这样,学习PHP或Python来开发它是否值得,或者仅使用JSP就足够了?
非常感谢。
朋友们,
我已经有一些C++的经验,现在开始学习J2EE(为了生存:))。同时,我计划自己冒险开发一个Web门户网站。但是由于我在Web技术方面的经验很少,我需要从头开始。我对该选择哪种语言感到有些困惑,所以来问问这里的大家。 考虑到我无论如何都要在工作中学习J2EE,那么学习PHP、Python或JSP,哪种更值得呢?如果一切顺利,我希望这个门户网站每天能获得80-100K次点击,“如果”这样,学习PHP或Python来开发它是否值得,或者仅使用JSP就足够了?
非常感谢。
考虑到您已经熟悉C++,建议您学习ASPx和C#,这些语言可能更接近您目前的经验。
话虽如此,PHP也很简单,不应该有任何难点。请记住,如果您想充分利用这种语言,您必须学习一些关于配置Apache和框架(如Cake、CodeIgniter、Zend等)的知识。
如果您从性能和扩展的角度设计网站,那么您列出的所有服务器端技术都足以应对您预期的流量,而且还有许多其他未提及的技术,例如其他基于Java的方法、C#方法以及(最后但并非最不重要的)Ruby(可能使用Rails,尽管像其他语言一样,它也有几个框架供您选择)。
正如大多数人所说,客户端方面的考虑更为重要——除非您想尝试使用“客户端代码生成器”(例如gwt,我听说后者效果很好,但个人总是对代码生成器持谨慎态度,特别是在没有理解其为您生成的“代码”(在这种情况下是HTML、CSS和具有自己框架的Javascript)的情况下使用代码生成器)。除了GWT和类似的方法(如果这是您选择的方式),真正学习HTML、CSS和Javascript确实是必须的——然后您可以再次在许多框架中进行选择(jQuery、Dojo、closure等等)。
针对性能问题,您真的需要学习 Steve Souders 的 网站(以及他的书籍等)-- Steve 曾是一位服务器端大师,直到测量结果显示瓶颈实际上在客户端,然后他将自己变成了客户端性能专家;-)。但要充分利用这些书籍,您需要先了解 HTTP、HTML 等等。
每天点击次数并不是用于估计性能的真正有用的指标,您需要考虑峰值负载和可接受的响应时间。
每天80-100k个点击量平均为每秒1个点击。这些点击不会平均分布,所以对于正常流量,您可能预期每秒最多10个点击的峰值负载。
如果您要通过通讯或广告来推广网站,请预期峰值每秒达到数百个点击。
如果您销售价值1美元的机票,请预期峰值每秒达到数千个点击。
现在,您选择的语言并不像选择数据库(不一定是关系型)和在数据库中存储数据的方式那样重要。
扩展前端相对较容易,因此拥有非常快速高效的HTML生成不应是主要关注点。选择一个对开发时间高效的平台。
我预计这个问题会被关闭,因为它是主观的。但是,我想发表我的意见。
JSP 可能与 J2EE 很搭配。(我听说它可能有点死板,但我没有任何经验来提供任何见解。)
PHP 是一个很好的选择,因为它很受欢迎。你可以在网上找到很多信息。
Python 在 Web 开发中不太流行,所以找到示例不会那么容易。
我也赞同 Dave Markle 的观点。如果你想学习 Web 开发,HTML、CSS 和 JavaScript 也是至关重要的。你可能永远不想成为前端开发人员,但你无法避免在某个时候处理这些技术。
有很多选项。
既然你已经了解(并正在学习)Java,那么一种选择是使用GWT来处理服务器和客户端。这可以帮助你,因为你不需要学习另一种语言(JS/HTML/Python/PHP等)。如果你的门户网站将会很大,使用Java可以帮助你更好地组织应用程序——通常基于JS/HTML的应用程序即使使用像jQuery或YUI这样的好的JS库也不太适合进行适当的组织。良好的组织可以在以后的更新和修改中帮助很多。
如果你计划的风险投资是一个单人/两人的风险投资,或者如果它是时间限制的——其中时间对市场至关重要——那么我不建议采用前面的方法——特别是如果你的服务器端部分预计会很大。
Java是一种编写代码较慢的语言。你在Python中需要6个月才能完成的项目,在Java中需要接近1年以上的时间。在这种情况下,我更喜欢Python——它是一种正式的语言——不像PHP,并且你也可以在那里创建具有良好组织的代码——尽管比使用Java稍微不那么有组织。
请注意,如果你的客户端代码比服务器端代码复杂得多,那么使用GWT不会对你造成任何伤害。但是如果你的服务器端代码与客户端相比非常复杂,那么我建议使用Python。
另一个要点是使用现有的Web框架来简化你的工作。对于Python来说,Django是一个很好的选择。这本身就可以将你的工作时间减少50%或更多,同时使你的代码更加安全和可扩展。
它真的不太像C ++,但我会推荐PHP。你真的不能期望服务器端脚本语言与编译语言(如C ++)相似。就个人而言,我认为PHP是一种丑陋、混乱的语言,但一旦你进入其中,它就非常有回报。其他语言有太多缺点。ASP.Net过于微软中心化,Python和Ruby on Rails过于晦涩,也是非花括号语言,这意味着需要进行很多调整才能转换到它们。希望这可以帮助到你。