对于有经验的C++开发人员来说,学习哪种Web技术比较好?

5

朋友们,

我已经有一些C++的经验,现在开始学习J2EE(为了生存:))。同时,我计划自己冒险开发一个Web门户网站。但是由于我在Web技术方面的经验很少,我需要从头开始。我对该选择哪种语言感到有些困惑,所以来问问这里的大家。 考虑到我无论如何都要在工作中学习J2EE,那么学习PHP、Python或JSP,哪种更值得呢?如果一切顺利,我希望这个门户网站每天能获得80-100K次点击,“如果”这样,学习PHP或Python来开发它是否值得,或者仅使用JSP就足够了?

非常感谢。


2
这并不是那么简单——如果只有“我预计80-100k次点击”,我们怎么能帮你做出决策呢?点击量并不代表什么——你需要考虑解决方案的复杂性(例如数据库结构)和你将要提供的内容。深入规划,你提到的所有Web技术都可以轻松承载那么多的流量,几乎不需要配置。 - Kieran Allen
你可能想看一下以下链接:http://stackoverflow.com/questions/1032245/application-developers-wanting-to-start-web-development https://dev59.com/knRC5IYBdhLWcg3wVvjL https://dev59.com/iXI-5IYBdhLWcg3wpaF1 - Jeff
7个回答

13
在学习这两个之前,花些时间深入学习HTML和CSS。还要学习Javascript和JQuery(或你最喜欢的客户端库)。在此主张是因为我认为对于大多数现代网站而言,许多丰富内容正在向客户端移动,远离服务器端。按照这种模式,你在PHP或JSP中的代码可能看起来相似(即从数据库获取数据并将其提供给视图或转换为JSON以供客户端使用)。

1

考虑到您已经熟悉C++,建议您学习ASPx和C#,这些语言可能更接近您目前的经验。

话虽如此,PHP也很简单,不应该有任何难点。请记住,如果您想充分利用这种语言,您必须学习一些关于配置Apache和框架(如Cake、CodeIgniter、Zend等)的知识。


1

如果您从性能和扩展的角度设计网站,那么您列出的所有服务器端技术都足以应对您预期的流量,而且还有许多其他未提及的技术,例如其他基于Java的方法、C#方法以及(最后但并非最不重要的)Ruby(可能使用Rails,尽管像其他语言一样,它也有几个框架供您选择)。

正如大多数人所说,客户端方面的考虑更为重要——除非您想尝试使用“客户端代码生成器”(例如gwt,我听说后者效果很好,但个人总是对代码生成器持谨慎态度,特别是在没有理解其为您生成的“代码”(在这种情况下是HTML、CSS和具有自己框架的Javascript)的情况下使用代码生成器)。除了GWT和类似的方法(如果这是您选择的方式),真正学习HTML、CSS和Javascript确实是必须的——然后您可以再次在许多框架中进行选择(jQuery、Dojo、closure等等)。

针对性能问题,您真的需要学习 Steve Souders 的 网站(以及他的书籍等)-- Steve 曾是一位服务器端大师,直到测量结果显示瓶颈实际上在客户端,然后他将自己变成了客户端性能专家;-)。但要充分利用这些书籍,您需要先了解 HTTP、HTML 等等。


1

每天点击次数并不是用于估计性能的真正有用的指标,您需要考虑峰值负载和可接受的响应时间。

每天80-100k个点击量平均为每秒1个点击。这些点击不会平均分布,所以对于正常流量,您可能预期每秒最多10个点击的峰值负载。

如果您要通过通讯或广告来推广网站,请预期峰值每秒达到数百个点击。

如果您销售价值1美元的机票,请预期峰值每秒达到数千个点击。

现在,您选择的语言并不像选择数据库(不一定是关系型)和在数据库中存储数据的方式那样重要。

扩展前端相对较容易,因此拥有非常快速高效的HTML生成不应是主要关注点。选择一个对开发时间高效的平台。


0

我预计这个问题会被关闭,因为它是主观的。但是,我想发表我的意见。

JSP 可能与 J2EE 很搭配。(我听说它可能有点死板,但我没有任何经验来提供任何见解。)

PHP 是一个很好的选择,因为它很受欢迎。你可以在网上找到很多信息。

Python 在 Web 开发中不太流行,所以找到示例不会那么容易。

我也赞同 Dave Markle 的观点。如果你想学习 Web 开发,HTML、CSS 和 JavaScript 也是至关重要的。你可能永远不想成为前端开发人员,但你无法避免在某个时候处理这些技术。


0

有很多选项。

  1. 既然你已经了解(并正在学习)Java,那么一种选择是使用GWT来处理服务器和客户端。这可以帮助你,因为你不需要学习另一种语言(JS/HTML/Python/PHP等)。如果你的门户网站将会很大,使用Java可以帮助你更好地组织应用程序——通常基于JS/HTML的应用程序即使使用像jQuery或YUI这样的好的JS库也不太适合进行适当的组织。良好的组织可以在以后的更新和修改中帮助很多。

  2. 如果你计划的风险投资是一个单人/两人的风险投资,或者如果它是时间限制的——其中时间对市场至关重要——那么我不建议采用前面的方法——特别是如果你的服务器端部分预计会很大。

    Java是一种编写代码较慢的语言。你在Python中需要6个月才能完成的项目,在Java中需要接近1年以上的时间。在这种情况下,我更喜欢Python——它是一种正式的语言——不像PHP,并且你也可以在那里创建具有良好组织的代码——尽管比使用Java稍微不那么有组织。

    请注意,如果你的客户端代码比服务器端代码复杂得多,那么使用GWT不会对你造成任何伤害。但是如果你的服务器端代码与客户端相比非常复杂,那么我建议使用Python。

  3. 另一个要点是使用现有的Web框架来简化你的工作。对于Python来说,Django是一个很好的选择。这本身就可以将你的工作时间减少50%或更多,同时使你的代码更加安全和可扩展。


忘记补充以下内容:如果你担心需要学习Python会花费时间等问题 - 我所面临的情况是,它确实是一门非常容易学习的语言 - 只需大约3周左右的学习即可。 - Koran
当你以组织作为选择编程语言的基础时,我就跟不上了。让我们归咎于工具,而不是开发者的经验不足... - Kieran Allen
对于一个新手来说,组织确实是一个重要的方面——如果工具提供更好的组织机制,那么最好使用它。根据我的经验,我真的觉得JS对于新手来说提供了很少的组织空间,而像Java这样的语言确实有很大的改进。如果需要,我们甚至可以在汇编中编写非常有组织的代码,但这需要极大的耐心和丰富的经验。既不是这种情况,因为OP想要尽快开始一个他几乎没有经验的领域的风险投资,我仍然认为我在这里是正确的。 - Koran

0

它真的不太像C ++,但我会推荐PHP。你真的不能期望服务器端脚本语言与编译语言(如C ++)相似。就个人而言,我认为PHP是一种丑陋、混乱的语言,但一旦你进入其中,它就非常有回报。其他语言有太多缺点。ASP.Net过于微软中心化,Python和Ruby on Rails过于晦涩,也是非花括号语言,这意味着需要进行很多调整才能转换到它们。希望这可以帮助到你。


1
称Python和Ruby为晦涩难懂有点牵强。 - Vitor Py

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接