我熟悉Python和C++作为程序员.我正在考虑编写自己的简单Web应用程序,我想知道哪种语言更适合服务器端Web开发.
我正在寻找的一些东西:
它必须是直观的.我认识到Wt存在并且它遵循Qt的模型.我讨厌Qt的一件事是它们通过混淆的手段鼓励奇怪的语法(例如"公共插槽:"成语).如果我要编写C++,我需要它是标准的,可识别的,干净的代码.Qt提供的没有花哨的狡猾愚蠢.
我必须编写的非C++或Python代码越少越好.关于Django(Python Web框架)的事情是,它需要您手动编写HTML.我认为如果HTML表单采用更多的wxWidgets方法会很棒.Wt接近于此但遵循Qt模型而不是wxWidgets.
我通常用C++编写视频游戏,我没有网络开发经验.我想写一个很好的网站有很多原因.我希望它是一种学习体验,我希望它变得有趣,我希望能够轻松地专注于"有趣的东西"(例如,更少的样板,更多应用程序的肉).
新手网络开发者的任何提示?我猜测Web应用程序框架是要走的路,但这只是挑选一个.
我会和Wt一起去,因为:
你已经了解C++
它有一个很好的布局系统,所以你不需要知道很多HTML
它编写得非常好,很乐意编写代码
您部署的应用程序将在较少的硬件上处理python应用程序的50倍负载(来自pylons应用程序的经验,是plone应用程序负载的10,000倍:P)
它有所有的库,第一个问题中的人说它没有和更多
在构建的开发webserver中
模板语言
ORM
单元测试帮助
open-id和用户+密码验证
精彩的小部件库
Web 2.0不是一个想法; 它不是像所有python框架(据我所知)在Request + Response模型上设计的,而是在事件驱动的交互模型上设计的.
它使用WebSockets(如果可用)
如果不是,优雅地回到正常的ajax
对于像linx这样的浏览器,可以回到http
它更像是编写一个gui应用程序,而不是一个Web应用程序,这可能是你习惯的
它是静态类型的,因此不容易出错.是否def delete(id):
需要一个int或字符串?
单元测试(至少在我的应用程序上)比我的python app单元测试运行时间少10-100倍(包括编译时间)
它有一个强大而友好的社区.我的所有电子邮件列表帖子都会在0-3天内得到解答.
如果您想避免编写HTML,可以试试GWT.但是,根据我的经验,使用中间框架生成HTML和ECMAScript永远不会在任何地方工作,也不能手工编写页面.
[编辑] nikow在评论中提到,睡衣是GWT到Python的端口.
关于语言,如果在C++和Python之间做出选择,我会100%选择Python.即使忽略这些语言之间抽象的明显差异,Python也只是拥有比C++更有用的库.您不必编写自己的面向开发的Web服务器 - Django附带一个.您不需要编写自定义模板库 - Python具有Genshi.Django带有一个功能强大的ORM层,或者为了更多的控制,你可以使用SQLAlchemy.这几乎不是一场比赛.
Django是开始Web开发的好点,它是很棒的框架
如果你看C++看看CppCMS,它更接近Django,它不像Wt那样模仿Qt.
无论如何,这实际上取决于您的需求.C++可用于嵌入式或高性能Web应用程序,但对于中等范围的Web站点,Django会更好.(我是CppCMS的开发人员)