基于浏览器的应用还是独立GUI应用?

34 投票
12 回答
31247 浏览
提问于 2025-04-11 09:32

我知道这个问题之前肯定有人问过,但我找不到相关的内容。

使用浏览器界面来做一个独立应用程序有什么好处和限制?跟用普通的图形界面框架相比呢?

我现在在做一个Python程序,使用wxPython来做图形界面。这个应用程序主要是一些用户输入的表单和对话框。我在考虑换成PyQt,因为它有很多小部件可以用(方便将来扩展),然后我意识到其实我也可以用浏览器来做很多相似的事情。

目前这个应用程序不需要联网,虽然将来有可能会需要。我在考虑如果用浏览器的话,可以使用Karrigell这个框架。


补充说明 为了更清楚地说明,现在这个应用程序是基于浏览器的,而不是基于网络的。所有的信息都会存储在客户端的电脑上;不需要调用服务器,也不需要联网(不过将来可能会需要)。它只是用浏览器来做图形界面,而不是用wxPython或PyQt来做。希望这样说能让你明白。

12 个回答

5

说到简单的数据录入,比如用用户填写的表单,我觉得用浏览器来做会更简单、更快。

除非你的核心功能就是这个界面本身(“如果这是核心业务功能,就自己做,不管怎样。”,可以参考对不发明新东西的辩护,来自Joel on Software),我觉得浏览器在处理表单的显示和操作上会比从头开发一个图形界面要好得多。而且,写一个图形界面需要花费的时间远比生成HTML表单和处理浏览器提交的数据要长。

我过去的经历是,有个朋友让我写一个应用程序来录入调查结果。一开始,我打算写一个Java小程序来显示调查内容和所有的单选框,但后来我意识到,写一个简单的HTTP服务器来生成表单并处理它们会更好。

其实关键在于你是在开发:

  1. 用户界面
  2. 数据录入应用

如果你是在做数据录入的应用,那就把用户界面交给浏览器,专注于你的核心功能吧。

16

假设一下,开发、部署和维护的工作量和成本是一样的,我们从应用用户的角度来看这个问题:

用户会觉得哪个界面更有用呢?

主要考虑以下几点:

  • 使用的简单程度
  • 反应速度
  • 熟悉的导航和使用方式
  • 和平台上其他工具或应用程序(比如本地应用)最相似

我明白“有用”这个词是主观的。就我个人而言,如果可以的话,我绝对不会再使用网页界面(作为用户,而不是开发者)。我讨厌它们。

有些应用根本不适合做成浏览器应用。

从开发的角度来看:

  • 现在没有两个浏览器的表现是完全一样的。
  • 即使使用Ajax,JavaScript和动态、响应式界面也不是那么容易实现和调试。

确实有很多独立的图形用户界面(GUI)应用非常糟糕,这一点没有争议。开发、部署和维护一个跨平台的GUI是相当复杂的。

开发好的用户界面很难,这一点毋庸置疑。

实际上,在过去的10年里,我主要是开发基于网页的应用,因为它们开发速度快,部署简单,而且如果人们必须使用的话,它们提供的功能也足够好。

我不相信大多数用户在有其他选择的情况下会使用网页界面。

这是我的个人看法。

15

浏览器应用的明显优点有:

  • 无论在哪个平台上,你都可以展示相同的用户界面
  • 应用程序更新很简单,所有用户都能使用相同版本的应用
  • 你知道你的应用会运行在哪种环境下(服务器的硬件和操作系统),这让测试和支持变得更容易,因为图形用户界面应用可能会在各种不同的操作系统和硬件上运行。

而图形用户界面应用的优点有:

  • 某些应用(比如图像编辑)在本地图形用户界面应用中可能表现得更好
  • 不需要网络连接

另外,看看我在这个问题上的评论:

跨平台的图形用户界面一直是个老问题。Qt、GTK、wxWindows、Java AWT、Java Swing、XUL——它们都有一个共同的问题:最终的用户界面在每个平台上看起来都不够原生。更糟糕的是,每个平台的外观和感觉都有些不同,所以即使你能找到一个在每个平台上看起来都很原生的工具包,你还得想办法让你的应用在每个平台上都感觉原生。

这就变成了一个选择:你想减少开发工作量,但在每个平台上都让用户界面看起来和感觉不太对,还是想最大化用户体验?如果选择后者,你就需要为每个平台开发一个公共的后端和一个定制的用户界面。[编辑:或者使用一个网页应用。]

我刚想到的另一个问题是:你还需要考虑你的应用处理的数据类型、数据存储的位置,以及用户对此的感受。显然,人们对把他们的Facebook个人资料数据存储在网络服务器上是可以接受的,但如果你在开发一个像MYOB这样的财务应用,想把他们的个人财务信息存储在你的服务器上,他们可能会有不同的看法。虽然你可能能做到这一点,但需要付出很多努力来实现必要的安全措施,并向用户保证他们的数据是安全的。在这种情况下,你可能会觉得选择本地图形用户界面应用的整体工作量更低。

撰写回答