哪种Web开发语言最适合C程序员?

时间:2009-04-07 02:00:04

标签: php c

问题

我定期在* n * x环境中使用C(ANSI C89 / ISO C90)编程。我现在处于一个学习网络开发语言对我有益的位置。特别是,我希望学习一种语言:

  1. ...利用我作为C程序员的背景。
  2. ...可以产生像stackoverflow.com这样的网站的互动水平。
  3. 我听到很多关于PHP的好东西。你们中有人有其他建议吗?

    备注

    1. 我熟悉的其他语言:Java,Perl,Tcsh和Scheme。
    2. 我忘了提到我有兴趣学习一种能够在客户端做事的网络开发语言。如果不清楚,我很抱歉。
    3. 我打算利用我对该语言的了解来开发一个与stackoverflow.com风格相似的网站(当然,这个网站的概念非常不同)。

13 个答案:

答案 0 :(得分:21)

如果您已经熟悉C,Perl和Java,那么您已经完全了解PHP,您还不知道它。合理?也许不是。但是一旦你开始玩它就会。

您没有说明为什么您正在学习Web开发语言或它的用途。这是提供此类推荐的关键信息。如果没有这些信息,我会建议PHP有几个原因:

  • 以网络为中心;
  • 非常受欢迎。找到问题的答案非常容易;
  • 这很容易学习(你已经知道C,Perl和Java了,但即使你没有,也很容易)
  • 正如Cal Henderson在主题演讲中"Why I Hate Django"(在DjangoCon 2008上一样)“PHP是一种严肃的语言”。它为互联网上排名前20的网站中的4个提供支持(维基百科,Flickr,Facebook和其他一个我忘了;
  • 它与Perl并没有太大不同,尽管Perl确实有一些不同的打字系统,而正则表达式在Perl中更为一流。加上PHP没有$ _运算符,但尽管存在许多相似之处;
  • 作为一种动态脚本语言,它将帮助您摆脱强类型模式,这应该会带来一些变化和有用的体验;
  • 尽管PHP支持对象(我订阅了PHP is not object-oriented的视图),但大多数PHP都是以程序方式编写的,这使得C程序员更熟悉;
  • 它有一套非常丰富的库;
  • 只需要Apache,它非常轻量级,因此,与Java或ASP.NET托管相比,托管非常便宜;和
  • 只需保存文本文件并在浏览器上单击重新加载即可看到会发生什么,而不是单独进行编译,构建和部署步骤。

答案 1 :(得分:5)

PHP的语法与C非常相似。但是,它有其不同之处,你无法管理指针和内存(至少,不是我所知道的)。这也很容易。

PHP是一种服务器端语言,因此浏览器与它没有任何关系。他们都会获得相同的HTML / CSS信息,并且它们之间存在差异。

如果你想拥有像这个网站这样的互动水平,你应该看看Javascript(和它的框架(即:jQuery)。这种语言负责网络开发中的客户端。

答案 2 :(得分:5)

我喜欢前面提到的所有选项。只想添加一下,如果您已经了解PERL,那么您可以使用它来生成您能想到的所有网站。

答案 3 :(得分:4)

这里很多人都在谈论PHP,.NET,java等等。

但我要提出一个新论点:

对于网络而言,服务器端正在迅速变得无关紧要,特别是当您考虑您的标准(SO.COM的交互性)时。您想学习4项核心技术。如果你认为你了解它们或者可以在没有学习的情况下解决它们,那么你可能错了。这些标准已经发展了太长时间,如果你只是想通过死记硬背来学习“应该怎么做”的阴影,这太容易了。

1)现代,标准(x)HTML。知道HTML / xHTML中的内容和内容是什么4.想想你知道吗?你知道块级元素和内联元素之间的区别吗?你知道哪些元素被允许在哪些元素中?

2)CSS 2.1或更高版本。我推荐O'Reilly的“CSS:The Definitive Guide”。了解内部和外部的CSS选择器。技术#4你需要它们。你会惊讶于在CSS中可以完成的任务,你认为你只能用HTML中的大量标签。

3)Javascript。不,我不是在开玩笑。它不再是一种不起作用的笑话语言。有用。这是运行响应最快,最具互动性和最有趣的网站(谷歌地图,SO.COM)。

4)JQuery。它是如此光荣,我发现自己甚至无法说出来。也许这些评论者不会因为它的光辉光环而被克服,并且能够呼出它的名字。

由于所有真正令人印象深刻的东西,IMO,现在都在客户端,服务器端语言并不意味着那么多。我喜欢.NET的LINQ语法。我一开始对它表示怀疑,但这些天我正在喝加仑的加仑。但如果您选择PHP或RoR或Java或其他什么,那很好。但这应该是次要决定。首先学习上面的4种技术 - 无论你在服务器上做什么,都需要它们。

答案 4 :(得分:2)

您需要同时考虑语言和平台。 C#中的ASP.NET MVC将是我的推荐。语法将非常熟悉。 MVC是一个很好的模式,支持jQuery烘焙,为您提供良好的跨浏览器支持javascript。 MVC还为您提供了对生成的HTML的更多控制。事实上,它是SO所依据的平台。

答案 5 :(得分:2)

这取决于你想要做的事情的复杂性。

几乎每张海报都提到PHP,对于服务器端Web开发来说非常棒, 简单的东西很简单,复杂的处理得相当好。 PHP语法就像C一样 并且逻辑上一致 - 您几乎不需要参考优秀文档的语法部分。

然而,php只提供页面,你需要学习HTML,CSS和一些 Javascript放在那些页面中。

我个人犯了一个错误,认为Javascript只是另一种基本的脚本语言而错过了权力,优雅和 JavaScript可以带来多年的可能性。您在gmail和stackoverflow等网站中看到的几乎所有交互式好东西都归结为Javascript。

同样,这些网站上几乎所有“酷”的视觉演示都归结为CSS。

对于极其复杂的后端内容(特别是如果你需要在页面之间保持状态)你可能会更好地使用Java和各种框架(Tomcat或Jetty,加上带有Freemarker模板的Spring,以及IBATIS是我个人的获胜组合!) 。 这里的问题是这里有一个陡峭的学习曲线,如果你真的需要Java后端的强大功能,你只想去那里。

答案 6 :(得分:1)

如果您想在客户端工作,那么选择Javascript是必须的。所有主流浏览器都支持它,并且有各种丰富的框架可用(jQuery,dojo,ASP.net)。有些人仍在使用Java applet,但整体applet非常奄奄一息。

答案 7 :(得分:0)

如果你坚持使用PHP,请帮助你理智并使用一个体面的框架。我强烈推荐CakePHP,但我不想开始任何神圣的战争。

你提到了Java的经验 - 为什么不应用它?或者,作为C程序员,C#和.NET怎么样?

世界是你的软体动物,朋友。

答案 8 :(得分:0)

使用Perl和C后台我会认为PHP会很容易。了解框架和那类事物。

答案 9 :(得分:0)

我非常严格地说是C程序员。它不是我有一个狭窄的范围或害怕其他语言,它只是我的工作所要求的语言。我所做的大部分工作都是虚拟化,云计算等的后端自动化。

偶尔,我必须将某种网络前端放在一起,将所有内容捆绑在一起。当我这样做时,我真的很喜欢使用PHP。事实上,我发现大多数使用具有强大C背景的PHP的人都可以非常高效和富有创造力。

这就是我喜欢PHP的原因,以及为什么在熟悉C语言的情况下加入PHP很酷:

PHP非常容易扩展。虽然PHP确实附带了一组非常丰富的库,但您经常会发现(至少我这样做)您需要它来与其他库一起工作本身。一个很好的例子就是libvirt。您可以将libvirt中所需的函数转换为PHP函数,而不是调用和抓取一堆shell分支。

PHP不会推动OO概念正如其他人所说,PHP作为面向对象的语言做得很好。但是,它的语法不会推送 OO方法。换句话说,您的代码看起来不像是在程序上使用OO语言的人。它读起来就像是C。

PHP解释自己如果在php.net上的大量文档中找不到函数引用和示例,请抓取PHP的源代码并自行查找。 Zend核心相当神秘,但扩展并不难以阅读。

简而言之,直到你习惯了带有垃圾收集器的动态类型语言......你会觉得你没有系安全带就开车了。但是,我认为你会很快接受它并对你的工作效率感到满意。

答案 10 :(得分:0)

如果你是一名优秀的C程序员,为什么不继续简单地用C代码?使用不同的编程语言是有正当理由的,但仅仅因为您要编写Web代码并不是其中之一。有两种流行的方法可以使用C进行Web开发:

  • (F)CGI,其中数据在环境中和命令行上传递
  • 编写自己的迷你网络服务器,与端口80或更高端口对话并使用mod_proxy或nginx

答案 11 :(得分:0)

我和几位在C和/或JAVA之后学过PHP的同事一起工作过。 他们真的很高兴。 如果你想成为一个.net人并且对这些环境有所了解,你会发现C#很熟悉,但对我而言,它充满了艺术性的艺术品。

答案 12 :(得分:-1)

到目前为止,我会推荐C#。其中的OOP非常棒,您可以轻松地使用Design Patterns。它从头开始构建为OOP。它也是一种{}语言。