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

Web应用程序框架:C++;vs Python 我对Python和C++都很熟悉,程序员。我正在考虑编写自己的简单web应用程序,我想知道哪种语言更适合服务器端web开发,c++,python,wt,C++,Python,Wt,我在寻找一些东西: 它必须是直观的。我认识到Wt的存在,它遵循Qt模型。我讨厌Qt的一点是,它们通过模糊的方式(例如“公共插槽:”成语)鼓励使用奇怪的语法。如果我要编写C++,我需要它是标准的、可识别的、干净的代码。没有Qt提供的花哨的愚蠢 我必须编写的非C++或Python代码越少越好。Django(PythonWeb框架)的一点是,它几乎要求您手工编写HTML。我认为,如果HTML表单更多地采用wxWidgets方法,那就太好了。Wt与此接近,但遵循Qt模型,而不是wxWidgets 我

我在寻找一些东西:

  • 它必须是直观的。我认识到Wt的存在,它遵循Qt模型。我讨厌Qt的一点是,它们通过模糊的方式(例如“公共插槽:”成语)鼓励使用奇怪的语法。如果我要编写C++,我需要它是标准的、可识别的、干净的代码。没有Qt提供的花哨的愚蠢
  • 我必须编写的非C++或Python代码越少越好。Django(PythonWeb框架)的一点是,它几乎要求您手工编写HTML。我认为,如果HTML表单更多地采用wxWidgets方法,那就太好了。Wt与此接近,但遵循Qt模型,而不是wxWidgets
我通常用C++编写视频游戏,我没有在网页开发方面的经验。我想写一个好的网站有很多原因。我希望它成为一种学习体验,我希望它有趣,我希望能够轻松地专注于“有趣的东西”(例如,减少样板文件,增加应用程序的内容)


对于一个网络开发新手有什么建议吗?我猜web应用程序框架是一个不错的选择,但这只是选择一个框架的问题。

如果你想避免编写HTML,你可以试试。然而,根据我的经验,使用中间框架来生成HTML和ECMAScript从来没有像手工编写页面那样有效

[编辑]nikow在评论中提到了GWT到Python的一个端口


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

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

如果这将是您的第一个web应用程序,您可能只使用Python就可以了,并且您的开发速度将比使用CPP好几个数量级

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

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

以下是一些数据:

  • Django是一个很好的web开发起点,它是一个很好的框架
  • 如果你寻找C++,它就更接近Django,它不像WT那样模仿QT.

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

我认为您最好先使用python,同时可以扩展CppCMS的功能并围绕它编写自己的框架


wt是一个好主意,但不知何故并不合适。

如果您正在探索Python框架(基于例外的答案,我想您是),我想您真的应该亲自检查一下。当您编写CherryPy应用程序时,您实际上只是在编写Python应用程序。框架很快就会脱离您的视线。你可以自由选择你自己的模板,ORM(如果你选择使用ORM),等等。认真地说,花10到20分钟看看。

看了几个,比如django、pylos、web2py、wt。我的推荐是web2py。它是“RubyonRails”的python版本,易于学习

我会选择Wt,因为:

  • 你已经知道C了++
  • 它有一个很好的,所以你不需要知道很多HTML
  • 这本书写得很好,很高兴能用它来编写代码
  • 您部署的应用程序将在更少的硬件上处理python应用程序50倍的负载(根据pylons应用程序的经验,是plone应用程序10000倍的负载:P)
  • 它有第一个问题中的人说它没有的所有库,还有更多
    • 打开id和用户+密码
    • 才华横溢的
  • Web2.0不是事后才想到的;它不是像所有python框架那样基于请求+响应模型设计的(据我所知),而是基于事件驱动的交互模型。
    • 如果可用,它将使用
    • 如果不是,则会优雅地返回到正常的ajax
    • 对于像linx这样的浏览器,返回http
  • 这更像是编写gui应用程序,而不是web应用程序,这可能是您已经习惯的
  • 它是静态类型的,因此不容易出错。
    def delete(id):
    接受整数还是字符串
  • 单元测试(至少在我的应用程序上)比python应用程序单元测试的运行时间(包括编译时间)少10-100倍
  • 它有一个强大而友好的社区。我所有的帖子都会在0-3天内回复

不能用Django(默认)模板语言编写纯Python代码。(我不认为这是一个限制,但是)“你可能想在Python上使用C++的唯一原因是速度最重要。”另一个原因:避免创建你的公司中的每个小项目都用不同的编程语言实现的情况,而这又是一个不同的IDE,标准库,自定义编写的库、编程语言的怪癖和限制、库怪癖、分析器等等……我不会轻视手工编写HTML。HTML是web工作方式的基础,也是为您的第一个应用手工编写的基础(前提是它不是