代码之家  ›  专栏  ›  技术社区  ›  void.pointer

Web应用框架:C++ vs Python

  •  9
  • void.pointer  · 技术社区  · 16 年前

    作为程序员,我对Python和C++都很熟悉。我正在考虑编写自己的简单Web应用程序,我想知道哪种语言更适合服务器端Web开发。

    我在找一些东西:

    • 它必须是直观的。我认识到wt存在,它遵循qt模型。我讨厌qt的一点是,它们通过模糊的方式(例如“公共槽:”习语)鼓励使用奇怪的语法。如果我要编写C++,我需要它是标准的、可识别的、干净的代码。没有夸脱提供的花式羞怯和愚蠢。
    • 我必须编写的非C++或Python代码越少越好。Django(python web framework)的特点是它需要您手工编写HTML。我认为,如果HTML表单采用更多的WXWidgets方法,那就太好了。wt与此接近,但遵循qt模型而不是wxwidgets。

    我通常用C++编写视频游戏,而且我没有在网页开发方面的经验。我想写一个好网站有很多原因。我希望它是一种学习体验,我希望它是有趣的,我希望能够很容易地集中在“有趣的东西”(例如,更少的样板,更多的肉的应用程序)。

    对于一个新来的网络开发者有什么建议吗?我想网络应用框架是可行的,但这只是一个选择问题。

    7 回复  |  直到 13 年前
        1
  •  7
  •   John Millikin    16 年前

    如果您想避免编写HTML,可以尝试 GWT .然而,根据我的经验,使用一个中间框架来生成HTML和ECMAScript在任何地方都不会像手工编写页面那样有效。

    [编辑]Nikow在评论中提到 Pyjamas 是GWT到Python的端口。

    关于语言,如果在C++和Python之间进行选择,我将选择Python 100%的时间。即使忽略了这些语言之间抽象的明显差异,Python只是比C++具有更有用的库。您不必编写自己的面向开发的Web服务器——Django附带了一个。您不需要编写自定义模板库——python有 Genshi . Django附带了一个功能强大的ORM层,或者用于更多的控制,您可以使用 SQLAlchemy . 这几乎不是一场比赛。

        2
  •  11
  •   matiu    13 年前

    我会选择WT,因为:

    • 你已经知道C++了
    • 它有一个很好的 layout system ,所以您不需要知道很多HTML
    • 它写得很好,很高兴输入代码
    • 您部署的应用程序将在更少的硬件上处理50倍于python应用程序的负载(从使用pylons应用程序的经验来看,是plone应用程序的10000倍负载:p)
    • 它有所有的图书馆,第一个问题的人说没有,而且更多。
    • Web2.0并不是一个事后诸葛亮的想法;它不是像所有的Python框架那样设计在一个请求+响应模型上(据我所知),而是在一个事件驱动的交互模型上。
      • 它使用 WebSockets 如果可用
      • 如果不是,则优雅地返回到正常的Ajax
      • 对于像linx这样的浏览器,返回到http
    • 它更像是对一个GUI应用程序进行编码,而不是一个Web应用程序,这可能是你习惯的。
    • 它是静态类型的,因此不容易出错。做 def delete(id): 取一个int还是一个字符串?
    • 单元测试(至少在我的应用程序上)运行的时间比我的python应用程序单元测试(包括编译时间)少10-100倍。
    • 它有一个强大而友好的社区。我所有 email list 在0-3天内回复帖子。
        3
  •  7
  •   Artyom    16 年前
    • django是启动Web开发的好地方,它是一个很好的框架。
    • 如果你找C++看看 CppCMS 更接近姜戈,不像wt模仿qt。

    无论如何,这取决于你的需要。C++可用于嵌入式或高性能的Web应用程序,但对于中等范围的Web站点Django则会更好。(我是CPPCMS的开发者)

        4
  •  1
  •   ZeroCool    16 年前

    我认为在您的案例中,最好使用firt python,同时您可以扩展CPPCMS功能并编写自己的框架。

    WT是一个好主意的设计,但不知何故并不适合。

        5
  •  1
  •   Shaun    16 年前

    如果您正在探索Python框架(基于我认为您是的例外答案),我认为您应该亲自检查一下 CherryPy . 当你写Cherrypy应用程序时,你真的只是在写python应用程序。这个框架很快就脱离了你的视线。你可以自由选择你自己的模板,ORM(如果你选择使用ORM)等认真的,花10或20分钟看看。

        6
  •  0
  •   Community CDub    8 年前

    在Python上使用C++的唯一原因是速度最重要。

    如果这将是您的第一个Web应用程序,您可能只使用python就可以了,而且您的开发速度将比cpp快几个数量级。

    Django的模板语言远不是无能为力的,对我来说,它实际上看起来很像蟒蛇。实际上,您可以在模板中编写纯Python(尽管通常不建议这样做)。

    更好的是,可以用您喜欢的模板系统替换Django的模板系统。 我个人最喜欢的语言是哈姆语。

    以下是一些相关数据: Is there a HAML implementation for use with Python and Django

        7
  •  0
  •   Frank    16 年前

    我看了好几本,比如Django,Pylos,Web2py,WT,我推荐的是Web2py。它是“RubyonRails”的Python版本,并且易于学习。