2010-02-13 71 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。所以這可能會影響你的選擇。