关于Django,Java,Python,HTML和网站开发的大图片问题

Mar*_*ark 6 html python java django mobile

我试图了解有关网站开发的最新技术,并提出了几个问题.也许我最终会找到自己的大部分答案.我来自C++和Windows开发的背景,通常我对Web开发的特殊性质感到困惑.

在对它进行在线研究和Ruby(在Rails上)之后,我专注于Django.从我读到的内容来看,ROR试图在幕后为你做所有事情,因此是缓慢且不可扩展的(并且过度使用并且没有为黄金时间做好准备).所以我已经进入了Django - 下载了Python和Django,来自一个完整的Django站点的源代码,让它运行,等等.

关于Django的第一件令我惊讶的事情是,关于实际演示似乎没有任何创新.所有创新都涉及数据库问题,业务逻辑,代码的可重用性等 - 但实际上并不是关于网站的创新视觉控制或图形的任何新内容.当你构建一个Django视图或模板时,它仍然会从我能看到的内容中广泛引用html(并且可能也是Javascript - 但我实际上还没有在Django模板中看到任何Javascript.)

我以前认为html可能与汇编程序类似,所以过去几年的传统应用程序开发人员可能知道甚至偶尔使用一个小的汇编程序,但通常几乎不会使用它,而从我所看到的,html(和还有CSS和javascript)仍然必须由每个Web开发人员持续掌握和编写,无论他们是使用Django还是其他任何东西.这是真实的陈述吗?

特别是有一个网站对我来说作为最终用户代表了网站的最新技术水平,我很想知道这样一个网站的基础是什么.该网站是chess.com,并且有各种各样的设施可以与其他用户在线下棋,用户可以通过各种图形效果自定义帐户等等.它们最有可能是用于这样的网站的Java小程序吗?Django与这样一个网站的相关性如何.Django会与Flash甚至Java applets一起使用吗?此外,当像chess.com这样的网站被移植到移动设备上时,用什么来编写它 - 与桌面相同的开发工具或完全不同的东西(是的,我有很多事要做.)

实际上是否有完全用Java编写的网站,也许使用非常高级的Java API?为什么有人会说(因为我在某处读到)他们鄙视Java,这就是他们进入Ruby on Rails和Django的原因.

关于Python(以及PHP),它们存在的理由是什么?首先,Python比解释C++慢得多.为什么用Python或PHP编写的网站 - 平台独立性是这里唯一的问题.我不相信Python中的应用程序开发比C++快得多(除了垃圾收集问题 - Python的主要原因是 - 垃圾收集.)

所以无论如何,一堆新手问题 - 如果他们在这里没有回答的话,可能最终会自己回答大部分问题.也许他们与其他人有关.

Tag*_*ith 12

嗯,你在这里问过一个问题清单.我会选几个重要的并回答.

至于像Python这样的语言的基本原理......事实是许多Web应用程序要么是I/O绑定的,要么是数据库绑定的.如果是这种情况,如果您使用的语言没有C++那么快,则无关紧要 - 瓶颈在其他地方.除此之外,很多核心Python例程和数据结构都是用C语言编写的.Python用于驱动最高级别的逻辑,但大部分工作都发生在快速本机代码中.您可能会惊讶地发现,在我目前的工作中,我使用Python编写3D动画软件.当然,幕后发生的很多事情都是用C++编写的.有一个名字:"替代硬和软层." 我们使用Python的原因非常简单 - 由于我们编写的API,我们的选择是Python或C++,而我们在Python中的效率要高出几倍.

至于视觉呈现的问题......传统上出现了一个应用程序的服务器端逻辑和在浏览器的逻辑之间存在相当明显的分隔,部分原因是因为你可以在浏览器中被计数的唯一语言是JavaScript(和即使如此,你不能真正指望它处于打开状态,撇开像山猫,浏览器)的存在,所以你在某种像Django框架的写你的服务器逻辑,然后你用一些JavaScript框架,做您的前端东西,(在过去的几年里)你使用像AJAX这样的东西让它们更顺畅地互操作.

这仍然是主导范式,但事情已经开始发生变化.许多服务器端框架已经开始包括以某种方式生成Javascript的工具.人们已经开始编写从其他语言翻译成Javascript的编译器.一个突出的例子是谷歌的GWT,它从Java转换为Javascript:http://code.google.com/webtoolkit/虽然有这种方法的其他例子.我(做了很多节目在Common Lisp的库调用parenscript http://common-lisp.net/project/parenscript/)几年前,并有一个的Clojure的开始(http://clojure.org /用于做类似事情的库.此外,最有趣的一组框架的一个解决办法是海滨/马格利特(http://www.seaside.st/http://www.lukas-renggli.ch/smalltalk/magritte)的使用延续到管理状态小部件.方案和常见的lisp有类似的框架.

至于html就像汇编程序一样,我倾向于同意我编写html的情况.在这些情况下,我倾向于使用某种抽象层来生成html.但是世界上很多html都是由设计师制作的.其中一些使用GUI应用程序生成html,而更好的应用程序使用文本编辑器.但是大多数人都不想处理比html中的简单模板更复杂的事情,这是他们所知道的.

关于网络发展,你必须要了解的一件事是,http和html最初并没有被设计用来做他们今天所使用的各种事情.最重要的是,主流浏览器经常被打破.最重要的是,你无法控制用户可以使用的设施 - 他们可以使用任何浏览器,有或没有Java,Javascript,Flash等,以及任何bug集的排列,取决于浏览器.因此,只有在过去的几年中,事情已经足够稳定,人们对他们在客户端使用的设施保守一点.在可能的情况下,确保页面优雅地降级仍然是一个好主意.通用网页应该可以在文本浏览器中使用,

HTML 5将会动摇很多这样的事情.但是,要安全地假设每个人都在使用能够从HTML 5做任何事情的浏览器,并且在可以安全地假设每个人都在使用实现所有HTML 5的浏览器之前,还需要很长时间.无论如何,我建议你环顾一些不太明显的项目,例如Seaside.有很多实验正在进行中.但网络一直是这种事情的艰难环境.


Ned*_*der 10

  1. Django没有尝试创新网站在浏览器中的显示方式.他们的目标是简化构建网站的过程.他们本可以采用新的方式在浏览器中创建小部件作为该目标的一部分,但他们没有.在经典的网站建设中有很多痛苦可以缓解.

  2. 如果您正在构建网站,那么您将处理HTML.你对汇编程序的比喻很有意思,但在这个类比中,没有出现过流行的高级语言.这可能是因为每种更高级别的语言都必​​然会对可以表达的内容施加一些约束,并且网络不会像这样需要整合.

  3. Python是一种比C++更易于使用的语言,你真的可以更快地开发它.你应该试试看.自动内存管理是一个原因,但其他的是易于使用的数据结构,不必请求编译器的许可来做你想要的,广泛的第三方库来构建,以及一个无杂乱的语言,其中表达你自己.关于速度:网站不受计算限制,它们受I/O限制,因此语言的速度很少有所不同.

  4. 关于Web开发的临时性质.您来自Windows开发背景,其中一家供应商定义了整个环境,并且做得很好.Web开发是临时的,因为Web本身是临时的.没有一个团体定义它,它是由许多人的贡献有机地增长的.


S.L*_*ott 7

所有创新都涉及数据库问题,业务逻辑,代码的可重用性等 - 但实际上并不是关于网站的创新视觉控制或图形的任何新内容

正确.好的评估.那是问题吗?

html可能与汇编程序类似,因此过去几年的传统应用程序开发人员可能知道甚至偶尔会使用一点汇编程序,但通常几乎不会使用它

假.的确,甚至没有接近.所有浏览器都使用HTML.这不容易改变.

chess.com ...它们最有可能是Java applet用于这样的网站吗?

view source在浏览器中使用自己回答这个问题.通常,您应该为您访问的每个网站执行此操作.您将学习很多关于Web和Web开发的知识.

Django会与Flash甚至Java applet一起使用吗?

是.我们使用FLEX和Django.

此外,当像chess.com这样的网站被移植到移动设备上时,用什么来编写它 - 与桌面相同的开发工具或完全不同的东西(是的,我有很多事要做.)

是.

实际上是否有完全用Java编写的网站,也许使用非常高级的Java API?

是.

为什么有人会说(因为我在某处读到)他们鄙视Java,这就是他们进入Ruby on Rails和Django的原因.

有些人喜欢鄙视Java.他们的论点几乎没有技术价值.

在使用Java和Python之后,你会发现Python不那么罗嗦了.您可以通过减少打字来完成更多工作

他们的[Python PHP]存在的理由是什么?

他们比替代品更好.对于人们需要做的具体事情,Python(或PHP)比替代品更好.对于"一切"甚至是一类广泛的事物,它可能并不十分清楚.

我们做了很多临时数据处理.Python的灵活性绝对优于其他选择.

首先,Python比解释C++慢得多.

事实证明,这几乎不相关.网站不受架构中一个元素的原始速度的控制.

为什么网站是用Python或PHP编写的

它比替代品更容易.

平台独立是这里唯一的问题.

没有.

我不相信Python中的应用程序开发比C++快得多

你用Python做了多少?你应该试试一年左右.通过比较,它使C++相当繁琐且容易出错.

这就是Python的主要原因 - 垃圾收集.

没有.