Language agnostic 学习基于web的C+编程+;程序员

Language agnostic 学习基于web的C+编程+;程序员,language-agnostic,Language Agnostic,我想为我想了一段时间的项目创建一个web界面。在过去的五年中,我一直在C++编程(加上HLSL),并且在大学里学习了其他各种语言(java,VHDL,众多汇编语言)。p> 我正在寻找好的资源来比较web编程的不同可能性(javascript、php、python、ruby等)。性能和良好的API是我的两个主要要求。我希望我的项目能够扩大规模,而不必在规模变大时用另一种语言再次编写 我尝试寻找与我的项目相近的开源项目,并查看mozilla bespin(我发现最接近我的项目)的代码,该代码主要由j

我想为我想了一段时间的项目创建一个web界面。在过去的五年中,我一直在C++编程(加上HLSL),并且在大学里学习了其他各种语言(java,VHDL,众多汇编语言)。p> 我正在寻找好的资源来比较web编程的不同可能性(javascript、php、python、ruby等)。性能和良好的API是我的两个主要要求。我希望我的项目能够扩大规模,而不必在规模变大时用另一种语言再次编写


我尝试寻找与我的项目相近的开源项目,并查看mozilla bespin(我发现最接近我的项目)的代码,该代码主要由javascript完成。任何针对高级程序员的教程提示都将不胜感激。我不需要学习ifs和fors,但我需要学习特定于web编程的基础知识。

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

无论后端是用什么编写的,都必须执行后者

对于后端,所列出的几乎所有语言都具有足够的可扩展性,并且都有很好的库,因此选择哪种语言更适合您,哪种语言有更多的库对您的特定问题领域有帮助


作为C++,Perl的使用时间比较容易,因为C/C++用户很容易拾取,但是我对PHP/Ruby还不太熟悉,知道它们的缺点。

< P>除了DVK的优秀建议外,一种开始黑客应用程序的方法是PHP和ZEngRead框架(教程)。这里有一个关于开发博客应用程序的教程:

scala、asp.net、django、jsf、RubyonRails是其他很好的方法。。。我不确定该选择哪个,我想这取决于正在开发的应用程序。至于可伸缩性,你应该对任何主要的框架都很在行,比如facebook在php上运行,linkedin在scala上运行,twitter在应用程序的一部分使用ruby on rails,myspace asp.net就是一个例子


有一些富Internet应用程序使用附加技术来提供更动态的用户体验,例如Flash(Actionscript)、Silverlight和DHTML或JavaScript UI库,如ExtJs、YUI、Dojo和jQuery UI。

对于web开发,web框架的选择与语言一样重要。Ruby有,Python有,C#有。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
Twitter最初是一个Ruby商店(现在大部分仍然是),但现在他们已经用Scala(一种面向JVM的现代函数式语言)重新编写了web应用程序的关键性能部分

因此,您可以选择使用C#/.NET或面向JVM的语言,如Scala、JRuby或Jython

作为C++程序员,尽管你也可能对“go”感兴趣(参见:Gangang.org)。它是一种简单的现代编译语言,具有垃圾收集、对并发性的本机支持以及由Google(包括Unix创始人之一Rob Pike和Ken Thompson)发明的非常快的构建时间

您可能还想看看nodejs.org,这是一种全新的web技术,它完全异步、快速且高度可扩展,使用Java脚本,运行在谷歌非常快速的JavaScript引擎V8上(与chrome中使用的相同)

我不会太在意性能,因为它可以用更多的硬件来解决——它对于应用程序的扩展更为重要。谷歌使用大量Python和Java,而Facebook和雅虎使用PHP。堆栈溢出使用C#和ASP.NET/MVC(这也是我的首选)


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

不要忘记您将在何处托管此内容。我在工作中做了很多Java/SpringWeb服务/应用程序开发,这将是我的第一选择,只是我还没有找到一个可靠的Java web应用程序托管提供商(尽管现在谷歌的应用程序引擎允许一些,但还没有使用它)。如果您使用ASP.NET,我会推荐MaximumASP


不过,我多年来使用的每一个web托管服务都允许使用PHP。因此,这可能会成为您选择的一个因素。

虽然大多数web应用程序确实需要JavaScript,但也有一些解决方案,如Google web Toolkit()和Pyjamas()可以将其他语言编译成JS。