是时候总结一下我们关于区分“网络应用程序”和“网站”是否实用的上次投票了。
确切的问题是
区分“网络应用程序”和“网站”是否有用?
首先,数据
- 28% 的人投票:不,它们都只是网页。
- 72% 的人投票:是的,它们是不同的东西,有不同的问题。
视觉分解
查看 Chris Coyier (@chriscoyier) 在 CodePen 上制作的 带有动画和工具提示的 SVG 环形图。
绝大多数人认为区分两者很有价值。
让我们通过收集一些来自网络的意见来开始一些“纸上谈兵”的分析。 Jeremy Keith 最近写了一篇关于这个问题的文章。 他认为这种区分没有价值。
为什么?
为什么要区分? 通过随意将整个网络划分为两个类别,您能获得什么好处?
他认为,这种区分不仅没有用(只是因为它很流行而被用作一个术语),而且实际上是有害的(例如,假设某些技术/建议/方法不适用于你,因为存在这种标签)。
有些人认为这种区分确实有一些价值。 Billy Brown说,区分可能有助于思考未来,虽然他没有具体说明如何。 “Armstrongest”说,区分是有用的,仅仅因为人类天生需要对事物进行分类,以便理解世界,并且这种分类的有用属性会随之显现。
定义差异
撇开关于区分是否有用或没有用的争论不谈,我们如何定义这种区分?
以下是人们的一些想法。
- Kory说,区分可能与范围有关。“五页网站”与“具有动态数据和用户输入”的应用程序。 Kevin 同意并说,网络应用程序“需要围绕用户交互编写大量的代码”。
- Russel Heimlich说,“如果需要 JavaScript 才能运行,那么它就是网络应用程序,否则它就是一个网站。” Mat Marquis说,它就是借口。
- Ginestra说,区分与用户如何访问它以及他们的预期有关。
- Paul Wallas说,区分与花费的时间有关。 少于 5 分钟,网站。 超过 5 分钟,网络应用程序。
- Ben S说,区分在于前端和后端之间。 更多前端,网站。 更多后端,网络应用程序。
- Covarr说,区分与用途有关。“执行任务”,网络应用程序。 “提供信息”,网站。
- Joshua 说,搜索机器人是区分的一部分。“可爬取的资源”,网站。 “根据你的消费定制”,网络应用程序。
- Steve说,区分与导航有关。 像后退按钮这样的正常操作,网站。 自定义在屏幕之间移动的方法,网络应用程序。
- Jeremy Worboys说,网络应用程序的内容是由用户创建的,而网站的内容是由网站工作人员创建的。 Jeremy Castelli同意。
- ernO说,如果页面从不滚动,那么它就是一个网络应用程序。
- Colin Léger说,如果你可以打印页面并获得相同的内容,那么它就是一个网站。
- Sean说,区分与成本有关。 网络应用程序 simply 更贵。
- Michael Chang说,区分与公开与私有有关。 网站是公开的,而网络应用程序存在于私有空间中。
我听到的其他内容
- 内容策略只对网站很重要。
- 网站有 RSS 提要;网络应用程序有 API。
- 它对投资者很重要(即网络应用程序 == 赚钱)。
- 它对招聘人员很重要(即开发网络应用程序的人与开发网站的人不同)。
- 它是“获取东西”与“做东西”。
- 您需要登录网络应用程序。
上述几乎没有一点对我来说是正确的。 我只看到例外情况和灰色地带。
我原本希望我们能够在这些分类之间找到一个接近确切的区分,但我认为这不会发生。 几乎没有共识,却充斥着观点。
这让我觉得,“网络应用程序”这个名称(当然,这是较新的名称)可能只是一个流行的术语。 我们喜欢它的声音,所以我们使用它,无论它是否真正有意义。
在讨论这个问题时,有一点几乎令我信服,那就是招聘方面。 如果将世界上所有网络工作者作为一个整体来看,我觉得有一组人会在网站上做短期工作,然后转到其他工作。 代理机构和自由职业者是其中很大一部分。 然后还有另一组人在网站上做长期工作。 他们在 LinkedIn 或类似的网站工作,并且已经在那里工作了 4 年。 很容易让人认为短期工作更多是网站,而长期工作更多是网络应用程序。 因此,如果你要招聘其中一个或另一个,你可能会查看某人的工作经历,并询问他们倾向于哪种工作,这可能会影响招聘情况,因为有些人更适合其中一个或另一个。
不过,我越想就越觉得这是不对的。 我认为长期与短期的区别比网站的“种类”更重要。
灰色,灰色,灰色
一个只有照片和菜单的餐厅网站只是一个网站,对吧? 如果它嵌入了一个 Google 地图呢? 突然之间,你就可以四处滚动、平移、缩放并获取路线。 餐厅网站现在是一个网络应用程序吗? 它是一个带有网络应用程序的网站吗? 像这样进行组件化还有用吗?
如果您可以在这个网站上发表评论呢? 现在它就是一个网络应用程序了,因为有用户生成的内容,对吧? 或者评论太普遍了,无法进行区分。 如果您必须先创建一个帐户才能发表评论呢? 如果菜单项上显示了聚合评级星级呢? 还是太简单了? Twitter 不就是评论、帐户和元数据吗?
但是 Twitter 有 API,所以它绝对是一个网络应用程序。 并且登录后的体验会根据您进行定制。 但是您也可以在其中搜索内容,我认为网站上也可以这样做。
如果餐厅网站实际上主要是博客,厨师在那里发布食谱和烹饪技巧,并写关于餐厅业务的文章呢? 那是一个网站,对吧? 如果有一个付费墙来阅读这些内容,因为它们对其他餐厅老板来说非常有价值呢? 一家代理机构被聘用来自定义开发该付费墙,并且有带有访问级别、管理员和 Stripe 集成的用户帐户等等。 这肯定是一个网络应用程序。 如果他们使用的是 WordPress 和一个插件呢? 那么它是什么? 谈到 WordPress,管理员区域是一个网络应用程序,对吧? 但是您构建的是网站? 网站可以两者兼备吗?
只有问题、例外情况和灰色地带。
如果我们能够确定一个我们都同意的超级准确的定义,即使如此,它也可能没有用。 由于我们无法确定,我认为它更没有用。
然而,投票结果表明事实并非如此。 我们大多数人都相信区分这些东西很重要且有用。 我想我们需要做更多调查。
共同的重要性
再说一次,即使我们能够在网络应用程序和网站之间画出一条完美的界线,这些事情难道仍然不是真的吗?
- 它们应该快速。
- 它们应该安全,并保护其存储的任何数据。
- 它们应该易于访问。
- 它们应该提供良好的用户体验。
- 它们应该具有吸引人的设计。
- 它们应该满足网站所有者的目标。
- 拥有优秀的人才对团队来说非常有价值。
- 它们是用支持网络且浏览器能够理解的基础技术构建的。
如果网络(事物)的许多基本部分是共享的,那么这种区分是否没有用?
总结
我知道我花了大部分时间不同意这里的数据。 也许更多对话会有所帮助。 让我们听听您的想法。
新的投票即将开始。
我认为对我来说最大的区别在于网络应用程序实际上不需要对登录页面或信息页面以外的任何内容进行 SEO 优化,这意味着极具动态性的视图的可能性要高得多,因为不需要担心像机器人可以理解的 HTML 快照这样的问题。
标签,即使它们很模糊,而且有很多灰色区域,也能帮助所有者制定开发策略。你可以同时拥有静态内容和互动内容,但通常只有一个是重点。如果你早早就决定要强调什么,最终会得到一个知道自己是什么的产品。
看看像 MySpace 这样的东西。它无法决定想要成为什么。因此,它变得有些漫无目的,用户也能看出来。
我同意网站不应该被标签束缚;任何理智的人都不会说“好吧,我做的是一个应用程序,而不是一个网站,所以我最好不要在我的在线商店中添加产品描述,因为那是非交互式的”。但了解你的核心功能对于制作出色的应用程序或网站至关重要,标签作为指南还是很有帮助的,即使没有严格遵守。
我想说的是,存在灰色区域是可以的。虽然许多人主张标签是一件好事,而不是一个硬性规定,但他们中没有一个人认为标签需要是硬性的。同时,它们可以提供关于网站目的的简短信息,而且无害,因此没有必要完全取消它们。
对我来说,一个很大的区别是,在我参与过的所有 Web 应用程序(金融服务)中,安全是一个非常重要的关注点,而 SEO 和可搜索性完全无关紧要(没有人可以通过点击 Google 搜索结果链接进入应用程序)。显然,基础技术都是一样的,交互设计和信息架构也类似,但 Web 应用程序专注于处理持久信息并使事情在现实世界中发生,这似乎与不做这些事情的网站有所区别。(我认为电子商务“购物”网站涵盖了两种区分的双方;但你的网上银行应用程序与商务应用程序或新闻聚合器在很多方面并不相似。)
Web 应用程序(通常,或者至少在我的经验中)不销售任何东西(除了升级);如果用户正在使用 Web 应用程序,那么产品已经被购买了。
不过,我确实同情你的观点,即,当关注设计和工程工作时,一个应用程序/网站的內容特征之间的差异可能并不意味着什么。
你似乎给了我们一个既成事实:想出网站和 Web 应用程序的具体、不相交的定义,如果我们做不到,那就意味着这些术语没有用。我认为你忽略了关于分类的要点,即类别可以是思考和交流的重要而有用的简写,即使在数学之外,它们也从不绝对。
处理现实世界中的复杂性意味着要接受人类认知和话语的模糊性和矛盾性。试图将抽象的概念归结为精确而普遍的定义,并将所有无法做到这一点的定义抛弃,这在我看来是一种毫无乐趣、注定失败的练习。模糊性是语言的乐趣之一,尤其是英语,它总是存在各种同义词来表达任何概念,每个同义词都有微妙的、重叠的含义差异。
如果我能对某人说“我正在构建一个网站”或“我正在构建一个 Web 应用程序”,并且你的选择传达了一些含义,我认为它确实做到了,那么它们是有用的,即使你和你与之交谈的人无法产生关于两者之间差异的无可争辩的界限。
克里斯,我同意你的观点。我认为这一切都太模糊了。对我们来说,我们有“网站”,它们充满了动态数据和用户生成的内容,我们一直在为客户开发和迭代这些内容多年,然后我们做了一些六周或更短的项目,这些项目拥有大量的信息和互动,从各个方面来说都是一个“Web 应用程序”。事实是,我们所做的工作大部分都处于中间位置。你甚至可以说,任何基于 CMS 的网站实际上都是一个 Web 应用程序,因为它的构建方式。
我的一点想法:标签不值得你打印它们的纸张。当你和你的阿姨或你孩子的足球教练交谈时,你就是在构建网站。当你与你想推销的客户的 CTO 交谈时,要具体说明你做了什么以及你如何做。在你的作品集网站上标注它没有任何用处,它只是一堆行话,让已经缺乏教育的客户和招聘经理更加困惑。
我认为 Coyier 先生可能说对了,这一切都很模糊。
浏览了人们认为的差异之后,我想知道是不是一个使用更现代工具和方法开发的网站符合“Web 应用程序”的模式,而更旧、更传统的网站开发更像是人们所说的“网站”。
虽然这可能只是我的想法,因为我最近升级了不少,从大量的静态 HTML/CSS/JS/陈旧的第 1 代 CMS 开发,到 Sass/SUSY Grids/Drupal 主题和模块/Compass/Vagrant/Git,所以我感觉我的日常工作更符合 Web 应用程序的模式,但我实际上只是在支持一个内容驱动的网站。
当我 1 岁的孩子看到带有页面的平面物体时,她说“书”,当我用 iPad 给她读书时,她说“书”,当她看到报纸时,她说“书”——在所有情况下,她都是对的——她指的是“很多有趣的单词和图片,可以看和玩”,但这对于更成熟的思考者来说是有用的区别。
她的绘本与我的小说有着根本的不同,这两种书都与报纸或 iPad 不同。对婴儿来说,它们都是“书”。
当然,这里聚集在一起的思想家们远比我的孩子成熟,我绝不希望有其他意思。但我认为在谈论网络上的东西时,拥有更丰富的词汇并无害处。我在 WebGL 中构建的 3D 游戏与我的博客不同,我的博客与 Facebook 和 Netflix 也不同。为什么我们需要一个词来描述所有这些呢?
也许网站和 Web 应用程序都是不好的术语,或者也许 Web 应用程序只是营销噱头,但无论如何,拥有更细致入微的语言只能帮助我们传达我们所做的事情。
都是内容。我们只是对它做了一些事情。讨论起来仍然很有趣 ;)
如果你在这里待了足够长的时间,你会发现总有一些营销/开发/CIO 创造的词语或首字母缩略词来描述你对内容所做的事情。最好期待下一个牛津词典和韦氏词典会扭曲的词语。
你们继续制作吧。总会有人消费它。我知道我可能会。
这是谷歌认为“网站”的含义
根据这个定义,Web 应用程序只是网站的一个子集。我同意这一点。
那么是什么让网站也成为一个 Web 应用程序呢?这样微妙的区分可能本质上是主观的。我发现我使用“Web 应用程序”这个术语来描述为我执行任务(而不是向我)的网站。
例如,我认为CSS-Tricks和CodePen是网站。但 CSS-Tricks 的主要功能是作为信息库。它对我有很大帮助,它影响着我编写代码的方式,但它不会为我编写任何代码。相比之下,CodePen 会接收我的代码,注入依赖项,进行语法高亮显示,预览和自动刷新我的输入,并将结果与我想分享的任何人共享。
这种区别是否任意?绝对!Web 应用程序是否天生优于“仅仅”的网站?当然不是!但我认为这个术语是这些丰富、类似应用程序的体验相对于整个网络而言是多么新的自然产物。说 Google Docs 本质上与任何给定的
index.html
相同,感觉很奇怪,即使实际上确实如此。我们可能也因为我们行业最近对原生应用程序的痴迷而感到力不从心。术语“Web 应用程序”可以是一条分界线,意思是“这应该能够与任何原生应用程序抗衡”。有些人甚至走得更远,完全拒绝“Web”这个词.
啊,语义学……
语言充满了“模糊性”。但这并不意味着它没有用。例如,“少数”什么时候变成“一些”?或者“许多”?要精确,并选择每个人都同意的数字。
然而,“少数”、“一些”和“许多”这些概念在我们的日常生活中仍然很有用。
人类语言的大部分内容都不涉及准确性或精确性。然而,我们仍然可以交流。用模糊的术语来定义模糊的概念是有用的,因为现实世界没有明确的边界。
这在 90 年代很容易回答。如果它只是有内容(“只读”或“静态”),它就是一个网站。如果它与数据库交互(“读写”或“动态”),它就是一个 Web 应用程序。创建这种数据库交互所需的编码技能与创建 HTML 内容网站大相径庭。
我认为这个一般性的想法今天仍然适用,尽管由于带有评论系统的博客(在 90 年代根本不存在!)、在 WordPress 上构建的内容网站(这意味着内容存储在数据库中,即使公众只有对该内容的“只读”交互)等的激增,在两者之间又出现了一个非常模糊的灰色区域。
此外,考虑一下构建网站所需的语言。你是否只使用 HTML/CSS/图片来构建静态内容?网站。我不在乎它是否在 WP 上运行——如果没有涉及脚本的定制,它就是一个网站。你是否使用脚本或面向对象编程语言来构建动态交互?应用程序。如果只有一点脚本或一次性使用 API,那么它就属于中间的灰色/混合区域。拥有第三个选项来反映现代的复杂性并无不妥。:^)
网页应用是可以动态扩展的,无需更改任何代码。因此,虽然公司的网站可能使用 Node、HTML5 属性等等,但如果您无法从现有界面添加额外内容(例如图片、页面、媒体),它仍然只是一个应用。但是,如果您能够以某种方式将数据添加到数据库,并且在浏览器关闭时数据仍然存在,那么它就是一个应用……想法?
从某种程度上来说,我不敢相信这竟然是一个问题。尽管我最近听到人们把网站、网页应用和本地文件都称为同一件事。当我试图帮助他们解决问题时,这立刻让人感到困惑。网站和网页应用之间绝对有区别。
我认为网站可以是以下三种事物之一,或者它们的组合:
一个网页应用集合。
一组静态文件(HTML、CSS 等)。
网页应用的接口。
而我认为网页应用是程序、脚本或应用程序,由网站使用/提供。
如果你告诉一个不熟悉开发和设计的人你做“网站”,他们会立刻想到“哦,就像 GeoCities 一样,对吧?”如果你告诉别人你做“网页应用”,他们会立刻想到“哦,哇,就像 Facebook 一样?”唯一的真正区别(不幸的是)是你找新工作时,每年能多拿 2 万美元左右。
应用听起来很像工程师做的事。网站听起来像脚本一样。
我想也许值得一提的是……有些东西(比如 Facebook、Twitter、Netflix、Pandora、Google 地图、Basecamp,仅举几例)似乎认为网页应用是台式电脑上很棒的解决方案,但在移动设备上是糟糕的解决方案。
因此,他们在移动设备上有原生应用,在台式电脑上有网页应用。为什么这样?如果原生应用在移动设备上值得开发(为了获得更好的体验,我猜),为什么在台式电脑上就不值得开发呢?这是一个严肃的问题——大多数大型服务似乎都同意这样做。
什么具体因素导致了这种现状?
大多数功能齐全的网页应用不会比台式应用更好吗?
区分网站和网页应用确实有道理。我以 Evernote 公司为例(除了作为一名快乐的客户之外,我与他们没有任何关联)。
Evernote 是一家拥有众多数字实体的公司,这些实体遍布多个平台。其中两个平台是在网上。如果您浏览他们的网站,您会发现有关 Evernote(公司)及其提供的产品的的信息。这些信息可以在网站上的各种资源中找到,例如产品页面和博客。
另一方面,网页应用是在您点击登录按钮后看到的。它模仿了您在电脑、手机和平板电脑上看到的 Evernote 应用(在功能上,即使在视觉上不是)。它包含的信息仅与登录的用户相关——而不是所有人。虽然这并非“应用”的定义。
网页“网站”与网页“应用”令人困惑的一点是,它们都基于相同的 Web 技术:HTML、CSS 和 JavaScript(主要)。这也是网页应用的优点。它们让学过网站开发的开发者也能开发应用。
显然,网站(您查看的东西)和应用(您与之交互的东西)之间存在许多灰色区域。但在像上述例子这样拥有多样化产品的公司中,进行区分是有用的。如果这种区分导致人们做出糟糕的招聘决定,那是他们自己的问题,是招聘者的问题,而不是对“网站”和“应用”的规范分类。相反,假设因为有人开发过许多网站,所以他们就能开发网页应用也是错误的,因为它们在复杂性和思维模式上通常有所不同,可能需要不同的技能集。
我认为两者之间存在很大差异……在我任教的地方,我们实际上有两个独立的项目,一个侧重于网站设计,另一个侧重于网页应用开发……
我喜欢 Covarr 的区分……“执行任务”,网页应用。“提供信息”,网站。
确实就这么简单……现在网站可以包含应用程序,但如果它的主要目的是提供信息,那么它就是一个网站……因此,带有 Google 地图的披萨店是一个包含网页应用的网站……
网页应用开发者可能会更加注重使功能变得出色……在编程上花费大量时间,并使用 Bootstrap 等框架来快速完成网页应用的前端……
网站设计师/开发人员可能会花更多时间处理 UX 和网站的自定义设计,而花在功能上的时间则更少……
这些只是我的个人观点……但我确实相信网站和网页应用之间存在很大差异……无论是在使用的技术还是所涉及的技能方面……
网页应用只是 Web 2.0 的一个更现代、更吸引人的术语。看看维基百科对 Web 2.0 的定义:
http://en.wikipedia.org/wiki/Web_2.0
正如您所见,它包含了文章中引述的网页应用的许多“要求”,但也只是一个毫无意义的术语。
但是,Web 2.0 更合理一些,因为它的标题暗示它是对原始网络的改进或升级,而不是完全不同的东西。另一方面,网页应用这个术语暗示网站在某种程度上不是网站。Web 2.0 指出,网站仍然是网站,但它比用户以前认为的网站包含更多内容。网页应用可以用类似的方式来描述,即一个比我们以前认为的标准网站更注重功能的网站。这并不意味着网站不是网站,只是意味着它与以前不同了。
正如其他人所说,我们人类喜欢分类,但类别应该有定义或达成某种自然共识。根据文章中的引文,除了是一个包含更多内容的网站之外,没有其他共识。本质上与 Web 2.0 的定义相同。
随着时间的推移,我们放弃了 Web 2.0,恢复到把一切都称为网络。我们最终会对网页应用做同样的事情。
我们已经有了网络的类别,它们实际上是网站的子类别。社交网络、电子商务商店、维基、博客、SaaS 等等,等等。所有这些术语都可以很好地定义,即使它们包含一些灰色区域。所有这些类别也可能同时属于网站和网页应用。即使是博客也适用,很难说 blogger.com 只是一个网站。它难道不能也被定义为网页应用吗?
网页应用只是网站的另一个术语,它没有提供任何更多信息或澄清。它太模糊了,不同的意见证明它不是网络的一个可行的类别。它只是另一个流行的术语,几年后会被其他东西取代,因为它没有自然意义。
78% 的人说它走起来像鸭子,但你不认同?酷,你是所有反对者中应该有发言权的人之一 :)
对我来说,我喜欢“执行任务”与“获取信息”的路线。它仍然存在问题,但作为粗略的指南,这将是我的主要指南。
网页应用是一种网站吗?
或者
网站是一种网页应用吗?
答案:都是
我认为,无论您是否将前者称为网站,后者称为网页应用,提供静态内容与动态内容都是一个重要的区别。
我将要做的另一个区别是,网站往往更侧重于营销目的,而网页应用更像是一种工具。
我一直在想,区分网页应用和网站的一种方法是,谁决定了哪些平台支持该网站/应用。
我的意思是,网站的支持通常由公众定义——哪些浏览器仍在使用,该网站在 IE7 中是否可以正常降级,它是否可以使用任何移动设备访问?
相反,网页应用似乎可以摆脱“这在 IE10 及更高版本中受支持”的说法,只发布 iOS 应用等。
这绝对不是一个明确的答案,但它提供了另一种思考方式。
在过去 12 个月里,我一直都在全职开发移动网页应用[我们正在招聘]。
对我们来说,移动网页应用是某种能够模拟原生体验的东西,我们将所有触控事件都融入其中,利用本地存储、面向服务的架构,甚至有一个最终用户许可协议,他们必须在第一次使用我们的应用时接受,无论它是从各种应用商店下载的,还是通过登录首次在线访问的……
我们正在积极构建,以适应 BYOD[自带设备] 方法。
codepen.io 就是网页应用与网站的明显例子。
我更喜欢网站而不是应用。因为应用会占用一些磁盘空间,并且会使用更多空间来存储其数据。然后我必须安装另一个磁盘清理应用,对吧?因此,对我来说,网站更好,只需清除浏览器历史记录,就可以了。
我真的很喜欢餐厅的例子。对我来说,在这种情况下,网站会欢迎您,向您展示菜单,并提供您想要了解的关于餐厅的尽可能多或尽可能少的信息。网页应用会用您的名字问候您,询问您的孩子怎么样,给您带来您最喜欢的饮料——无需您要求,根据您的具体喜好为您烹饪牛排。网页应用了解您,并积极尝试根据您提供的信息改进与您的关系。网站通常可以提供模仿应用实践的功能和工具,但对我来说,两者之间的主要区别在于,网站——或者至少——宣传网站的最终目标是刺激用户与您的联系,而网页应用的目标是刺激持续的人机交互。
区别通常在于用户的期望。
对我来说,网络应用程序是在线找到的程序。除了在你的浏览器中运行之外,你很难分辨它与独立程序的区别。我可能完全错了,但这就是我的想法。
我同意克里斯的观点。两者之间没有区别。任何声称有区别的说法都只是个人选择。任何声称没有区别的说法也同样是个人选择。我们在这里寻找真理,而真理是一个相对的术语。没有真理。真理是相对的。
而且没有人能证明否定。没有人能证明蜘蛛侠不存在。所以反对别人的信念是徒劳的。所以我的真理是,这里没有真理。继续走,人们……这里没什么好看的。
我将网站定义为显示静态内容,将网络应用程序定义为具有动态内容。
网站可以集成网络应用程序,例如你提到的 Google 地图或评论。Google 地图是一个独立的网络应用程序,评论区(基本上是一个论坛)也是如此。
这种区分之所以出现,是因为它有用。对于自由职业者和代理商来说,它有助于定义其客户项目的范围,从而影响费用。对于初创公司来说,它有助于定义每个项目/产品的目的,例如,网站用于提供有关项目的详细信息,而网络应用程序则是项目本身。
这种区分类似于区分手机和智能手机。对于你 80 岁的祖母来说,这种区别毫无意义。但是,对于将移动应用程序作为其产品的初创公司来说,它将帮助他们决定不支付高昂的费用来为世界上数百万部笨拙的诺基亚手机开发应用程序,只需要知道有“手机”和“智能手机”就可以了。
我的看法是
静态网站是你能拥有的最基本的网络应用程序,因为它只是
获取你的 URL,将其“转换”,无需任何交互,即可显示你将看到的页面。
在你输入的基础上进行的处理越多,结果被
呈现给你之前,网站就越接近应用程序方面。
我认为,如果我们只有“只读”和“静态”的东西,那就是网站(可能略有不同!),但网络应用程序可以像“混合”或“几乎(像几乎扁平化设计)”或完整!
但总的来说,我认为如果我们在项目中使用 API、动态数据库或脚本等动态元素,并与用户进行动态交互,例如上传图片、发送评论、自动刷新等,那么这个项目就是“网络应用程序”。当我们构建“移动友好型网络应用程序”(例如构建“响应式网络应用程序”)时,我们可以称之为“移动网络应用程序”。
这就是我的想法 :)
此致敬礼 -
阿瑞安·塔什科尔
我完全同意你的观点,克里斯。在这个时代,网站的术语正在变得越来越像是简单的“网站”的子集。就像移动框架一样,它们不再被称为网站,而是被称为“应用程序”框架。以 Sencha 为例。不像 Python 或 Ruby。但是,Python/Ruby on Rails 的另一端,当用于网络开发时,仍然会得出与任何其他网站相同的结果。它们将代码渲染成 HTML。所以它仍然只是一个网站。Twitter 广为人知的是应用程序,主要是因为它在移动设备上很流行,但我强烈反对将桌面网站称为“应用程序”。
同样的经验法则适用于旅行社、酒店预订、租车等网站,这些网站都可以在线访问,但以移动形式(例如为移动设备专门构建的网站)和响应式网站,这些网站只是你在台式电脑上看到的相同网站。这些不是应用程序,在我看来,这些被称为网站。Google 是定义“应用程序”的一个很好的例子。Drive、Docs、Maps、API、Play、Apps、YouTube——你想到的,Google 都称之为“应用程序”。在我看来,这些仍然是网站。它们在移动设备/平板电脑上拥有的唯一应用程序状态是使用 Xcode、Android IDE、Windows Phone Dev 或 PC 软件(如 Windows 8 应用程序,即使是 W8 应用程序,也是使用 JavaScript、HTML 和 CSS 构建的)构建的。网站就是网站。无论它是基于 Backbone、Underscore 还是其他任何东西构建的。它仍然呈现出我原本可以用静态方式设计出来的相同画面,只是基于 JavaScript/PHP/Python/Ruby 构建的网站具有动态值。你上次将 WordPress 称为应用程序是什么时候?从来没有。它们最初只是一个博客平台,现在,“只是一个博客平台”的称号已经消失不见了。WordPress 现在已成为一个多功能的 CMS,几乎可以满足任何需求。但我们不会将基于 WordPress 构建的网站称为“应用程序”,对吧?“你下载的带有大量额外动态功能的餐厅主题,允许客户在线下订单……”——你还会将其定义为应用程序吗?
我认为,如果你向世界上不太了解网络开发的技术用户进行调查,你会得到截然相反的反应。调查结果中,有多少来自了解开发的人?我可能在这里咬了一口,但我会说,如果不到 99%,那么他们中的所有人的观点都是基于他们对开发的了解。
在我看来,网站就是网站。将网络定义为具有分裂人格只会让你自己更难。你将把它当作你需要一组特殊的组件来制作其中一个或另一个。残酷的真相是,你根本不需要。你使用 HTML、CSS、JavaScript——无论什么——无论你是构建静态网站还是动态网站,你都会使用这些东西。从你的个人博客到房地产网站,如果它在 HTML 中渲染,并且专门为在浏览器中查看而构建,那么它就是一个网站。不是应用程序。这只是我的两分钱。许多人可能会持有不同的看法。
我完全错过了“离线”方面。用于离线缓存的清单文件与作为功能强大的语言的 Javascript 相结合,可以创建不需要永久服务器访问的优质应用程序。
两年前,我为自己创建了一个离线 RSS 阅读器。它能够下载 feed 数据并将其存储在本地,这样我就可以在乘坐公共交通工具时离线阅读我的 feed。它使用纯 Web 标准,所以它是一个网站。它在离线状态下运行,所以它是一个应用程序,也就是 app。
这对于像“droids”和“iStuff”这样的封闭系统(你甚至可以称之为“残疾”)尤其值得注意。精心制作的网络应用程序提供了一种经常被忽视的方式,可以在你的设备上安装软件,而无需从某些“商店”下载。显然,通过发布网络应用程序赚钱比通过商店销售它们要困难得多。因此,截至今天,优质网络应用程序的世界是有限的。
难道每个人不能都对吗?差异可能很重要,但不是二元绝对的。可能存在无限的不同灰色阴影,但有时区分光明和黑暗仍然很重要。但是,我真的看不出在对任何人都不能就其含义达成一致的术语上吹毛求疵有什么好处。
我本能的理解是,“网络应用程序”一词应该只用于用户用来创建与网站创建者提供的内容不同或新的东西的“工具”。但这并不是一种非此即彼的区分,因为大多数现代网站都同时做这两件事。有时,它们通过提供交互式元素和提供的信息(如这些评论)来同时做这两件事。其他网站(博客平台和维基)对一小部分用户具有复杂的交互工具,但对大多数访问者来说只是信息页面。
从编码的角度来看,交互所需的编程与简单的标记和样式有很大不同。因此,有道理的是,你的调查结果中占主导地位的网络程序员认为这种区别很重要。但很少有项目只属于其中一个。
从不太精通技术的公众的角度来看,我怀疑你会发现一个不同的区别:网站是为电脑而设计的,应用程序是为移动设备而设计的。当我以前工作过的新闻网站推出了一个针对移动设备优化的网站时,他们的公告都是关于他们有一个新的“移动应用程序”。当然,然后他们不得不解释如何不需要下载,只需将你的浏览器指向app.thetyee.ca 即可。帮助部分甚至提供了在你的 iPhone 主页上添加书签的步骤,以便用户可以预期他们在智能手机上做的所有事情都需要一个单独的应用程序。
根据我上面使用的定义,这实际上不符合网络应用程序的资格;唯一的交互是简单的书签功能,你甚至不能留下评论。但随后,对于从每个人及其最喜欢的餐厅提供的无数可下载的移动设备应用程序来说,也是如此。作为熟悉编程和 Web 标准的人,我认为他们错失了一个真正教育人们了解更好方法的机会。当然,进行编程的技术人员似乎是从这个角度出发的(所有代码都在github 上,如果你好奇的话)。但我理解,当权者只是坚持他们认为用户能够理解的术语。
移动用户期望应用程序。企业想要提供应用程序。如果“网络应用程序”一词成功地让企业相信,一个交互式、可个性化、针对移动设备优化(或响应式)的网站比一套特定于设备的可下载应用程序更具优势,那么,请继续称之为网络应用程序。但我希望你不介意如果我继续称它们为交互式在线工具。
我认为大多数人都会同意,网络应用程序最明显的定义就像你在 Chrome 商店中下载的东西,或者用 Web 技术制作的原生应用程序。
大多数网络应用程序还有一个不为人知的秘密,那就是它们不是语义化的,也不遵循许多 Web 标准。进入任何网络应用程序,你都会看到到处都是
div
。有时你会看到一些 ARIA 属性,但大多数情况下,开发人员要么不关心,要么没有时间,要么他们 просто не могут сделать что-то, основанное на принципах и философии HTML5.对我来说,这取决于你如何与网站互动。如果你的操作会产生反馈(视觉/音频/物理),那么你很可能是在使用网络应用程序。这很像书和玩具的区别;网站的主要目的是通常为用户提供有用的信息,供用户消费,而网络应用程序通常允许你在探索的环境中改变条件,同时提供有用的信息并提供某种学习体验。
也就是说,我会站在“不”的阵营。我认为在两者之间划线没有真正的价值。无论你最初对用户体验的意图是什么,让用户决定他们是在看一个应用程序还是一个网页。
将网络应用程序和网站混淆是一个错误。我喜欢这里这个比较,它说明了为什么两者应该保持不同http://techbrush.org/never-make-same-website-for-pc-and-mobiles-read-why/
将网络应用程序和网站混淆是一个错误。我喜欢这里这个比较,它说明了为什么两者应该保持不同http://techbrush.org/never-make-same-website-for-pc-and-mobiles-read-why/
作为一名制作人,而不是设计师,两者之间存在很大差异。我经常可以缓存网站内容;无法对网络应用程序这样做,因此后端架构更加激进。网络应用程序通常处理非公开信息,因此在安全性和审计方面付出了巨大的努力。如前所述,SEO 对网站非常重要,并会影响网站的构建方式,但与网络应用程序无关。最后,展示的信息类型可能会有所不同(即网站 = 用于扫描或阅读的段落;网络应用程序 = 表单字段、表格和列表),因此展示方式也会有所不同。
有趣的是,像这样的讨论让我想起了这幅迪尔伯特的漫画
http://dilbert.com/strips/comic/2007-09-09/
在我看来,区别很明显,是基于用户的动机。
“网站”感觉很大程度上是消费性的,用户的目标是消费信息。
相反,“网络应用程序”是创造性的。用户的目标是创建内容。
提前了解你的最终目标会影响设计和架构决策。总的来说,这是一个非常灵活的概念,因为同一个网页对于不同的人来说可能会有很大的不同。
对我来说,网络应用程序是网站的一个子集,就像汽车是车辆的一个子集一样。
社交媒体网络应用程序也是一个子集,就像跑车一样……
我认为没有“是或否”,如果你的浏览器可以使用 HTTP 请求访问它,那么它就是一个网站,无论它是否是网络应用程序,这都是另一个分类层。
因此我投票反对 - 这不是一个有用的区分,因为至少对我来说,没有区分。哺乳动物是动物,它们不是哺乳动物或动物。
Chris,我看到了很多例外和灰色区域,我认为在不需要存在的地方做出严格的二分法是愚蠢的。网络上的大多数东西都是网站和网络应用程序的混合体。但是,我认为在语言上,网站和网络应用程序有很大不同。网站就是网站,一个你可以去的地方(你可能只是在那里看,或者做点什么,或者两者都有),但网络应用程序在语言上必须有一个实用的……等等……应用程序!
我认为区分并不总是必要的,但我认为“应用程序”意味着“做事情”,而不是像你说的那样“获取东西”。网站似乎更像是一个简单的信息来源,而应用程序意味着至少有一个特定功能,该功能很难或不可能在其他地方找到。
IMO
网站:SEO 友好,以营销为导向,在线手册,旨在推广想法、概念或人物。
网络应用程序:SEO 问题有限,非以营销为导向,旨在解决业务问题。
对我来说,这种区分很有帮助,尤其是在试图评估客户的需求时。术语“网络应用程序”更具分量,它有更强大的含义。许多网页设计师只是构建网站,但没有能力构建网络应用程序,因为他们不知道如何编写代码或他们的技能仅限于客户端技术。许多网页开发者可以编写代码,但不能构建成功的网站,因为他们将想法通过空间布局、颜色、排版和美学展现出来,能力 simply non-existent。
许多人似乎真的认为区分和分类是必要的。“网站”是一个很好的词,比应用程序更好,因为它与“应用程序”区分开来,我们用它来谈论安装在你的操作系统/设备上并运行的程序。现在对于我们这些网络人来说,网络应用程序听起来很酷,我们也明白,但随着苹果推出“应用程序商店”并真正确立了应用程序意味着你安装在设备上的东西,我不喜欢它作为网络的术语。我母亲不知道什么是“网络应用程序”,她最好的猜测是她可以从应用程序商店下载的浏览器,比如 Safari。即使在大多数维基百科页面上,从 Facebook、Twitter、YouTube 等所有东西都被称为“网站”。
从某种意义上说,已经存在类别,应用程序被安装并在你的设备上运行,网站使用网络浏览器导航,关键术语是“网站”,即某事物的职位或位置,例如 URL。
这些营销术语总是制造比任何清晰的区分更多的困惑。这几乎与“Web 2.0”这个词开始被抛来抛去时发生的事情完全一样。“Web 2.0 网站是具有 AJAX 的网站。”“不,Web 2.0 网站是拥有用户生成内容的网站。”我最喜欢的例子是,现在互联网上什么都没有了,都在“云端”。就像每个人都将他们的服务器移到天空中一个神奇的数据中心。
将互联网划分为这样的子类别没有任何好处。餐厅的小型 5 页网站和 Google Docs 之间有区别吗?当然,但它们仍然是网站。我们不会对桌面应用程序进行这种区分。例如,在 OS X 上,我使用一个应用程序,它只隐藏我的菜单栏上的额外图标。这与 Photoshop 相比非常简单,但它们都是应用程序。
我认为,我们正在走向一个未来,桌面应用程序和网站之间的界限将会变得模糊。但目前,这只是营销用语,说的是,“嘿,看,我们有大家一直在谈论的那个很酷的新东西。”
如果前端只加载一个页面(即 index.php)并且有一个路由器,那么它就是一个网络应用程序。如果它加载不同的页面,那么它就是一个网站。:D
绝对是一个很好的主题。网站和网络应用程序是基本的基础结构。虽然网络应用程序的主要功能是高效的功能,而不是灌输内容。
用户和创建者都感受到了同时进行协作的好处。
你能在你的评论区实现一个点赞系统吗,Chris?我想阅读这些评论,但只阅读最好的评论……这里有一些非常聪明的人在评论,我不想不得不筛选这些评论才能找到最好的观点。
第二。按 UPS/日期排序选项将很不错。还有回复。
根据我的经验,它们非常不同。网站更像是书籍或画廊;应用程序更像是工具或人。应用程序有更多的交互,而且类型很多。
阅读 Randy Hunt 的书,Product Design for the Web
他列出了产品设计和网站设计之间的许多区别。
如果服务器实时计算你大多数交互,比如玩游戏,搜索或生成电子邮件,添加待办事项,在同一个页面内,那么它就是一个应用程序。如果服务器计算主要用于展示目的,你大多数交互都与媒体消费相关,并且它被分成不同的页面,那么它就是一个网站。
这里有许多例外,但这个想法可以帮助我区分两者。
谁说这些术语是互斥的?没有人。那么这场辩论到底是为了什么?
人类语言不是哈希表。
“我们的新项目是一个餐厅网站”与“我们的新项目是一个餐厅网络应用程序”与“我们的新项目是一个餐厅手机应用程序”。
它们都没有真正说明项目是什么,但它们让我对进入对话时会有什么期待有所了解。
这里有一个关于该主题的有趣(半相关)观点
Tom Dale:停止破坏网络 - JSConf EU 2013 >>>
主要区别在于网站需要浏览器才能运行,而网络应用程序是独立的应用程序。内容方面,它们可能做同样的事情,例如显示信息,但网络应用程序几乎肯定更适合用户交互。导航和其他按钮定义更加清晰,而网站可能使用大量文本超链接。
我本来想说与 Nott 说的大致相同。我认为网络应用程序是一个单一功能的独立应用程序,也可以用作网站中的模块,而网站可能有多个页面和多个功能。谷歌的地图应用程序就是一个很好的例子,它是一个可以独立运行或插入网页的应用程序。
Chris,我过去一直欣赏你的内容。问题是区分这两者有什么用?
显然,大约 72% 有用 :)
所有语言都是任意的。它的用途来自共享意义。即使是看起来很具体的数字,也带有歧义。二进制、八进制、十进制系统改变了 10 的意义。它仍然具有足够的意义,可以在日常实践中使用。
网站和 PDF 之间有什么区别?区分 Photoshop 和基于网络的摄影编辑器有用吗?Eclipse IDE 和桌面纸牌游戏呢?它们都“存在”于处理和解释一堆东西的硬件中的能量比特。
如果目标是沟通,技术相对论就毫无帮助。
当人们过于执着于什么是“最佳”时,你们经常会回答,“只需要构建网站”。
我说,“只需要使用这种语言”,它对你的大部分受众都有一定的意义 :)
我已经在我的网站上写了一些关于此的额外想法。
简而言之,区分行为(交互)和信息(消费)在模式级别上很有意义。但是区分“网站”和“网络应用程序”毫无意义,因为它们不可避免地包含这两种模式的混合。
我认为网络应用程序是客户端更重的网页。像本地应用程序一样,在 JavaScript 中做更多工作。
让我想起以前讲的一个笑话,当时“Web 2.0”这个词刚出现
“网站和网络应用程序有什么区别?
“网络应用程序附带内置的借口,说明为什么它不需要可访问。”
网络应用程序和本地应用程序之间存在重大区别。