2010-02-13 39 views
3

我想为我想到的项目创建一个Web界面一段时间。过去五年来,我一直在C++(加上HLSL)专业编程,并且在大学学习了各种其他语言(Java,VHDL,众多汇编语言)。为C++程序员学习基于网络的编程

我在寻找很好的资源来比较网络编程(javascript,php,python,ruby等)的不同可能性。性能和良好的API是我的两个主要要求。我希望我的项目能够扩大规模,而不必再用另一种语言编写,因为它变得越来越大。

我尝试寻找接近我的开源项目,并看看mozilla bespin的代码(最接近我发现到我的项目),这主要是完成JavaScript。任何暗示针对高级程序员的教程暗示。我不需要学习ifs和fors,但我确实需要了解web编程特有的基本知识。

回答

0

您似乎在混合两种不同的概念 - 后端代码(可以是您列出的任何语言 - PHP,Ruby,Perl,Java)并生成要发送到Web浏览器的HTML/JavaScript - 有时与后端模板语言相结合,允许您构建简单的动态HTML页面(其中大多数这些语言都有 - 例如JSP for Java,PerlPerl等等);以及作为JavaScript的网页客户端编码(由浏览器执行)。

你必须做的,无论你的后端上写的是后者。

对于后端,几乎列出的任何语言就足够了可扩展性,具有良好的库,所以选择的是哪一个你感觉更舒适,哪一个有更多的图书馆有助于您的具体问题领域。作为C++,由于C/C++人员相当容易上手,因此使用Perl可能会比较容易,但是我不太熟悉PHP/Ruby来了解它们的优缺点。

+0

尽管大多数Web应用程序都需要JavaScript,但仍有诸如Google Web Toolkit(http://code.google.com/webtoolkit/)和睡衣(http://pyjs.org/)等解决方案。将其他语言编译为JS。 – 2010-02-13 22:34:14

0

除了DVK的出色建议之外,启动网络应用黑客攻击的一种方式是php和zend框架(quick start tutorial here)。有一个基于开发博客应用程序的教程在这里:A simple blog with Zend Framework 1.9

scala,asp.net,django,jsf,红宝石在rails上,是其他伟大的方式去...不知道该选择什么,我想要取决于正在开发的应用程序。至于可伸缩性,你应该对任何主要的框架都有好处,例如facebook在php上运行,在scala上使用linkedin,twitter在rails上使用ruby作为应用程序的一部分,myspace asp.net就是一个例子。

富互联网应用程序使用其他技术来呈现更动态的用户体验,例如Flash(Actionscript),Silverlight以及DHTML或JavaScript UI库(例如ExtJs,YUI,Dojo和jQuery UI)。

3

对于Web开发,Web框架的选择与语言一样重要。 Ruby有Rails,Python有Django,C#有ASP.NET MVC。 Java有Servlets/JSP/JSF/Struts,但我没有发现它们与以前的选项一样富有成效或吸引人。 PHP/Perl对于创建简单的CGI网页非常有用,但它们并没有真正具有领先的Web框架。

如果您关心的是性能,那么您可能不想使用解释型语言。这排除了直接的Ruby,Python,Perl,PHP。当然,您可以获得针对JVM或.NET运行时的这些语言的“编译”版本,例如:

  • 的Ruby:JRuby的,IronRuby.NET
  • 的Python:Jython的,IronPython.NET
  • PHP:Phalanger

微博开始了作为一个Ruby店(他们大多仍是)除了现在他们已经在Scala中重写了其Web应用程序的关键性能部分(一种现代功能,如针对JVM的语言)。

因此,您可以使用C#/ .NET或JVM目标语言(如Scala,JRuby或Jython)。

作为一名C++程序员,尽管您可能也对'Go'感兴趣(参见golang.org)。它是一种简单的现代编译语言,具有垃圾收集功能,本地支持并发性,并且由Google发明了非常快的构建时间(包括Rob Pike和Ken Thompson是Unix的父亲之一)。

您可能还想看看nodejs.org,这是一种闪亮而新颖的Web技术,它使用Java脚本完全异步,快速且高度可伸缩,并且运行在Google非常快的JavaScript引擎V8上(与Chrome中使用的相同) 。

我不会太在意性能,尽管它可以用更多的硬件来解决 - 对于您的应用程序来说更重要。 Google使用了很多Python和Java,而Facebook和Yahoo使用PHP。堆栈溢出使用C#和ASP.NET/MVC(这恰好也是我的首选)。

此外,如果您关心免费托管您的Web应用程序而不是检查Google App Engine,它将托管您使用Python或Java免费开发的应用程序。

1

不要忘记你将在哪里举办这件事。我在工作中做了很多Java/Spring Web服务/应用程序开发,并且将是我的第一选择,除了我还没有找到一个可靠的用于Java Web应用程序的托管提供程序(尽管现在有Google的应用程序引擎,它允许一些,但还没有使用它)。如果你使用ASP.NET,那么我会推荐MaximumASP。

几乎每一个多年来使用的网络托管服务,尽管允许PHP。所以这可能会影响你的选择。