代码之家  ›  专栏  ›  技术社区  ›  Patrick McElhaney

为什么不使用PHP作为桌面编程语言呢?

  •  8
  • Patrick McElhaney  · 技术社区  · 6 年前

    响应 this question 我相信很多人会反对PHP不是桌面编程的最佳选择,而是推荐Ruby或Python之类的东西。我想讨论一下为什么会很有趣。

    除了讨论PHP是否是一种好的语言之外,您对一种好的桌面编程语言(而不是Web开发)的标准是什么?

    13 回复  |  直到 11 年前
        1
  •  23
  •   Daniel Pryden    15 年前

    你说“除了关于PHP是否是一门好语言的争论之外”,但我认为这是问题的关键所在。PHP之所以成为Web开发语言,是因为它与现有的Web工具栈(内联HTML、良好的Apache集成、内置的MySQL支持等)很好地集成在一起。-- 因为它是设计良好的语言,很容易使用。(顺便说一下,不是。)

    如果您将Web带走并使用PHP进行桌面开发,您还剩下什么?一种弱类型、功能不一致的语言,不支持桌面uis,标准库混乱不堪。人们不会那样使用PHP,因为 这是不合理的 .

        2
  •  20
  •   Ricky    15 年前

    PHP专门设计用于创建Web应用程序。虽然它是 技术上 可以使用它创建桌面应用程序,你真的是打磨掉角落,以适应在圆孔方钉。

    有那么多的编程语言是以桌面为目标而设计的,尝试将PHP推送到一个它不适合的世界是没有意义的。

    透视图:PHP是我的工作

        3
  •  11
  •   Wouter van Nifterick    15 年前

    桌面应用程序的PHP:

    通过Web应用程序的性能使桌面应用程序的分发变得容易。

        4
  •  6
  •   Ryan Brunner    15 年前

    这听起来很老套,但我认为大多数人不使用PHP作为桌面编程语言的原因是因为人们不使用PHP作为桌面编程语言。

    也就是说,在使用PHP的图形用户界面桌面应用程序周围没有一个非常强大的社区——这将影响开发人员可用的工具、他可以寻求帮助的资源,以及对于公司或商业活动来说,将有必要的技能来使用一套非常利基的工具。

        5
  •  6
  •   Paul Nathan    15 年前

    $language_under_consideration 做我想要的工作比 $other_language 是吗?

    例如,我发现MySQL的PHP接口非常适合快速数据库工作。不过,我不想在Windows上为GUI应用程序编写PHP……

        6
  •  4
  •   meder omuraliev    15 年前

    因为它完全是面向Web编程的,虽然它可能拥有桌面编程所需的工具,但也有其他语言更为强大,效率更高。

    就我个人而言,我不喜欢很多语言原则,所以我只能在被迫的时候使用。

        7
  •  2
  •   jldupont    15 年前

    它默认安装在目标平台上吗?因为如果不是这样,那么在采用上就会有更多的摩擦。

        8
  •  2
  •   postfuturist    15 年前

    我很惊讶没人这么说。作为一个Web开发人员,我只使用PHP,因为这是客户通常要求的。他们想部署在任何他们能找到的主机上,所有的Web主机共享一个共同点:php。此外,我们还做了很多救援任务风格的编码,其中我们必须修复已经用PHP编写的站点。作为一个诚实的开发人员,不能出于良心的考虑推荐PHP作为一个严肃的Web开发平台。我永远不会选择php 任何 项目、Web或桌面。python非常适合桌面应用程序。它比PHP更动态,更理智,更高效。

        9
  •  1
  •   SilentSteel    11 年前
    1. 如果您正在开发一个GUI应用程序,那么PHP不太适合。考虑(1).net/mono或(2)pyside(qt)的python。见下文。
    2. 如果您要制作大型的后端企业应用程序,则不适合使用PHP。你需要一个结构化的语言,如C语言或Java,它更习惯于繁重的团队合作。这里没有python或php。但是要谨防Java的沉重前端GUI和C/莫诺河的Windows依赖性质。(高效的团队规划本身就是一门完整的科学。)

    然而。。 对于中小型桌面脚本或引擎, 没有GUI (例如,自动化脚本等)然后 PHP实际上非常强大 .

    使用PHP进行桌面脚本编写的主要原因是:培训IT部门的脚本编写工作是成功的一半。除非您也是IT部门(希望您不是IT部门),否则如果您使用诸如.NET之类的常用桌面语言,那么很难在任何Windows和Linux计算机上运行此脚本。其他语言所需的库和依赖性使它们在具有不同操作系统的大型计算机集中使用时出现问题。

    这是主要的实际原因。以下是详细信息:

    • 易于访问mysql和dbs:php非常适合快速的数据库脚本。
    • 方便、可移植地访问许多用于HTTP、FTP、MD5等的Web库。
    • 令人惊讶的是,跨平台和易于分发:它不仅可以在所有操作系统上运行,而且非常容易打包脚本。您甚至可以复制php文件夹本身。 为什么这很关键? 记住 程序员不是吗 . 如果IT人员在凌晨2点迁移服务器,而您在2005年在.NET 2.0中编写的代码由于某些缺少的依赖项或缺少的DLL而崩溃,会发生什么情况?就我个人而言,我觉得这很常见。PHP是为数不多的“封装良好”的语言之一,因为它缺少更好的短语。
    • 当涉及到脚本编写时,开发速度非常快。
    • PHP的执行速度很慢,但除非处理大量数据,否则很难注意到这一点。如果脚本每天运行一次以处理某种数据,没有人会错过通过写入C++而保存的400毫秒。但是,如果您每年使用PHP来编写和维护这个脚本节省5个小时的时间,并因此有更多的时间向代码添加注释,那么imho更好。
    • 虽然php是松散类型,但可以设置 error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE); 找到未初始化的变量。python也是松散类型的,它有很多用途(dropbox是用python创建的),所以这里我看不到参数。这更多的是PHP语言的不一致性。
    • 大多数外部PHP库都是高度可移植的,而且也是跨平台的。
    • 寻找程序员来帮助你的成本很低。PHP程序员很容易找到,雇用成本相对较低。无论是个人项目还是工作场所,这都会产生影响。在工作中,我经常雇佣一些人来制作PHP自动化工具,并为自己节省时间。在其他语言中可能更昂贵。

    除了讨论PHP是否是一种好的语言之外,还有 你的标准是一个好的桌面编程语言(相反 到Web开发? spoiler:使用.net/mono(mono是.net语言的跨平台版本)并在monodevelopment ide中进行编码,以确保您的应用程序从第一天起保持跨平台。对于Mac,通常需要调整,因为它有点不同,但您可以使用Xamarin Mac(基于Mono,但允许使用MacOS接口组件)与.NET配合使用: http://xamarin.com/mac

    如果mono/c由于依赖开销而不够瘦,请使用pyside查看python。如果Python太慢(尽管许多像Dropbox这样流行的应用程序),那么使用C++和QT框架(Skype和其他许多人使用)。我记得德尔福可能是另一个很好的选择,如果它仍然存在的话。

    要记住的事情:

    • 50%的时间,您最终需要作为服务或命令行工具运行。因此,如果是这样的话,请尽早将您的GUI逻辑与后端分离。它还允许您生成自动化的测试用例。
    • 如果这是一个大规模分布的程序(如notepad++、dropbox、gtalk),那么最主要的就是良好的跨平台用户体验。Mac和Windows用户是否会有一个让他们感到舒适的快速加载应用程序?或者启动应用程序会让你感觉像把卡车推上山一样吗?
    • 注意:由于大多数人都使用Windows,所以使用C或VB.NET并使其成为Windows应用程序通常是有意义的。
    • 编程速度。大多数项目失败是因为时间太长。拥有快乐的Windows用户比没有用户要好。事实是,C或vb.net会让你成为一个伟大的应用程序,能在一半时间内为大多数人工作。你可以用单声道把大部分连接到其他操作系统。也许在性能方面或最好的总体上不是1快,但是C++中的编码可能花费太长时间。
    • 分发/安装人员是战斗的一半。你会惊讶于一个应用程序在64位Win7上完成了多少次,结果却发现它在没有古怪库的情况下会在XP上崩溃。与Web不同,您需要确保您的应用程序能够与所有操作系统和服务包一起工作。大痛!提示:使用像gogrid这样的云服务来测试新安装,它可以让您剥离新的Windows安装。

    我已经用所有这些语言制作了完整的应用程序,供内部使用和大量分发,这就是我的想法。

        10
  •  0
  •   Cesar    15 年前

    性能是我对桌面软件的标准。但我相信桌面软件终有一天会死掉。

        11
  •  0
  •   BrandonCS    15 年前

    我非常支持使用PHP快速开发Web应用程序。它很容易学习,有一个庞大的用户社区,已经解决了大多数问题。

    但是,除了其他用户提到的以外,您可能还需要考虑PHP已经存在的大量漏洞。( http://www.securityfocus.com/vulnerabilities )。

    如果这些东西中的一些被解决了,并且可能被打包成类似于我们在AdobeAir中看到的东西,那么桌面应用程序的生产就有了一个很好的基础。

        12
  •  0
  •   SynackSA    15 年前

    如果要将PHP用作Web环境之外的编程语言,那么它是新的Perl。如果我要写应用程序,我希望有一个决策环境。如果没有第三方应用程序,调试PHP程序可能会很麻烦。

        13
  •  0
  •   ntd    15 年前

    我看不出在Web或桌面应用程序中使用PHP有什么不同,只是不同的库。qt和gtk+对php都是可用的,如果有人花时间编写这样的绑定,这意味着比有人在桌面上使用它还多。

    在我看来,php在网络上的成功是因为没有有效的选择:换句话说,php越差。在桌面世界里,它不是那么幸运,它应该与更强大的竞争者竞争……我个人会在PHP之前选择大量其他语言。