12

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

我正在寻找的一些东西:

  • 它必须是直观的。我承认 Wt 存在并且它遵循 Qt 的模型。我讨厌 Qt 的一件事是它们通过混淆的方式鼓励奇怪的语法(例如“公共插槽:”成语)。如果我要编写 C++,我需要它是标准的、可识别的、干净的代码。Qt 没有提供花哨的愚蠢。
  • 我必须编写的非 C++ 或 Python 代码越少越好。关于 Django(Python Web 框架)的问题在于它需要您手动编写 HTML。我认为如果 HTML 表单采用更多的 wxWidgets 方法会很棒。Wt 与此接近,但遵循 Qt 模型而不是 wxWidgets。

我通常使用 C++ 编写视频游戏,但我没有 Web 开发经验。我想写一个不错的网站有很多原因。我希望它成为一种学习体验,我希望它很有趣,并且我希望能够轻松地专注于“有趣的东西”(例如,更少的样板,更多的应用程序)。

给新手 Web 开发人员的任何提示?我猜网络应用程序框架是要走的路,但这只是选择一个的问题。

4

7 回答 7

12

我会选择 Wt,因为:

  • 你已经知道 C++
  • 它有一个很好的布局系统,所以你不需要知道很多 HTML
  • 它写得很好,很高兴在里面编码
  • 您部署的应用程序将在更少的硬件上处理 50 倍于 python 应用程序的负载(根据使用 pylons 应用程序的经验,是 plone 应用程序负载的 10,000 倍:P)
  • 它拥有第一个问题中的人说没有的所有库,还有更多
  • Web 2.0 不是事后的想法。它不是像所有 python 框架(据我所知)那样在请求+响应模型上设计的,而是在事件驱动的交互模型上设计的。
    • 如果可用,它使用WebSockets
    • 如果不是,则优雅地回退到正常的 ajax
    • 对于像 linx 这样的浏览器,回退到 http
  • 它更像是编写一个 gui 应用程序而不是一个 Web 应用程序,这可能是你习惯的
  • 它是静态类型的,因此不易出错。def delete(id):需要一个 int 还是一个 string ?
  • 单元测试(至少在我的应用程序上)比我的 python 应用程序单元测试运行时间少 10-100 倍(包括编译时间)
  • 它有一个强大而友好的社区。我所有的电子邮件列表帖子都会在 0-3 天内得到答复。
于 2012-07-02T20:14:47.370 回答
9

如果您想避免编写 HTML,可以尝试GWT。然而,根据我的经验,使用中间框架生成 HTML 和 ECMAScript 永远不会像手写页面那样有效。

[编辑] nikow 在评论中提到睡衣是 GWT 到 Python 的一个端口。

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

于 2009-08-17T19:40:27.833 回答
8
  • Django 是开始 Web 开发的好点,它是一个很棒的框架
  • 如果你找 C++ 看看CppCMS,它更接近于 Django,它不像 Wt 那样模仿 Qt。

无论如何,这实际上取决于您的需求。C++ 可用于嵌入式或高性能 Web 应用程序,但对于中等范围的网站,Django 会更好。(我是 CppCMS 的开发者)

于 2009-08-17T19:54:21.657 回答
1

I think you better go firt python in your case, meanwhile you can extend cppCMS functionalities and write your own framework arround it.

wt was a good idea design, but somehow not that suitable.

于 2009-08-17T21:40:03.503 回答
1

If you are exploring Python frameworks (based on the excepted answer I think you are) I think you really owe it to yourself to check out CherryPy. When you write CherryPy apps, you really are just writing Python apps. The framework gets out of your way in a real hurry. Your free to choose your own templating, ORM (if you choose to use ORM), etc. Seriously, take 10 or 20 minutes and give it a look.

于 2009-08-17T21:40:57.310 回答
0

您可能希望在 Python 上使用 C++ 的唯一原因是速度至关重要。

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

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

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

这里有一些数据: Is there a HAML implementation for use with Python and Django

于 2009-08-17T19:46:48.180 回答
0

看过几个,比如 django、pylos、web2py、wt。我的推荐是 web2py。这是“ruby on rails”的python版本,易于学习。

于 2009-09-25T02:39:51.020 回答