最近我发现我的一个朋友共同拥有的公司使用 4D,这是我以前从未听说过的。他们对此发誓,但他们是非技术性的,他们所说的听起来像是记忆中的营销宣传。不幸的是,4D 网站似乎也没有任何实际信息,而是充满了诸如“全面”、“解决方案”、“平台”和“集成”之类的词。
由于那东西相当昂贵,并且使用一种我没有太多意愿只为一个项目学习的自定义语言,所以我对此持谨慎态度,我想知道是否有人对此有任何经验?你会推荐它吗?到底有什么好处呢?作为程序员学习它或将它用作公司,我将获得什么竞争优势?
最近我发现我的一个朋友共同拥有的公司使用 4D,这是我以前从未听说过的。他们对此发誓,但他们是非技术性的,他们所说的听起来像是记忆中的营销宣传。不幸的是,4D 网站似乎也没有任何实际信息,而是充满了诸如“全面”、“解决方案”、“平台”和“集成”之类的词。
由于那东西相当昂贵,并且使用一种我没有太多意愿只为一个项目学习的自定义语言,所以我对此持谨慎态度,我想知道是否有人对此有任何经验?你会推荐它吗?到底有什么好处呢?作为程序员学习它或将它用作公司,我将获得什么竞争优势?
4D 已经存在了很长时间(约 25 年),因此它比 MySQL 等老得多。将其视为 Microsoft Access 的专业版本:它拥有自己的受 Pascal 启发的宿主语言、自己的关系数据库引擎、用于快速 GUI 开发的非常成熟的 IDE 和允许真正“一次编写,随处运行”的自定义运行时(就是 Mac OS (X) 和 Windows)。如今,它也能理解 SQL,有服务器版本,甚至还有集成的 Web 服务器。它相当强大,因此与 Access 的比较可能并不公平。
今天,我相信它主要用于与 4D 一样古老的遗留应用程序。我认为我今天不会再学习它了,更不用说用它开始新项目了,因为你可以获得相同的功能,然后通过堆叠开源组件来获得一些功能。
我曾经做过一些非常严肃的 4D 工作,我编写的其中一个系统在大约 16 年后仍然作为企业系统使用。我很沮丧,因为他们花了数年时间才推出新的面向对象版本的语言,而且我编写了数千行代码来使用第三方表格控件。
4D 使用专有服务器提供跨平台、非常高性能的客户端-服务器系统。数据库模型比 SQL 更面向集合,并将集合一直拉到核心语言中。它在向客户端交付代码方面做得很好,因为它将所有过程编译为本地代码,这些代码在本地缓存并在过期时按需更新。
语言和 GUI 环境有其怪癖,但另一方面是支持它作为一个遗留平台可能会过上好日子。如果您可以让其他人选择工具选项卡,这可能是您咨询工具箱的有用补充。您必须考虑有多少特定于业务的代码将用于具有如此悠久历史的独特产品!
一位我非常尊重的工程师最近被 4D 聘用,这充分说明了他们对未来的承诺,聘用了这样的人。
我最近一直在使用遗留系统,将旧 Mac 的东西移植到 WPF,Visual Studio 和旧 Mac 工具的大部分未使用的复杂性之间的对比让我想起了 4D。我还将我的 OOFILE C++ 数据库和报告框架移植到 REALbasic - OOFILE 面向集合的操作直接来自我对 4D 的喜爱,这也让我觉得我最初在这个答案中过于苛刻。
关于 4D 需要记住的一点是,它从一开始就是面向集合的(由一位数学家编写),并且在很多事情上比 SQL 更容易使用。4D Server 的部署模型是桌面应用程序和网络配置的完美结合——编译的组件缓存在服务器上,并在需要时自动发送到客户端。无需关闭或主动推送或部署更新。4D 的 GUI 模型令人沮丧,但看看今天的网站,他们已经解决了我多年前不得不使用第三方解决方案的大部分问题。
像瘟疫一样避免它。我的公司使用它,它只是一种不断的挫折练习。它的表现远没有你相信的销售宣传那么好,而且文档要么不存在,要么没有帮助。
在我看来,没有理由开始学习 4D,除非你想要一个简单的数据库应用程序并且无法或不愿意学习如何用更大的语言创建 GUI。4D 的主要优势是 UI 和数据库之间的内置功能可以处理大部分需要的内容。如果你想要一些快速、小型和内部的东西,你可以使用 4D,但如果你需要开发一个强大的商业应用程序,你会遇到一些困难。如果您需要 4D 无法自动提供的东西,那么很难让它发挥作用。
我认为这种语言完全过时。它适用于它的工作,但我们的产品已受到语言和数据库本身的限制。我们不断遇到奇怪的怪癖,不得不用我们的方式来解决它们。
我有 4D 2003 和 2004 的经验,但由于成本原因,我们还没有升级到最新版本。它非常昂贵。每个客户都需要为每台需要运行该软件的计算机购买许可证。由于许可证,我们的产品成本超过 1000 美元用于新办公室。当新版本的 4D 发布时,每个客户都必须付费升级他们的许可证。
在查看https://www.4duk.com/products/ataglance.html之后,我建议您保持清醒 - 它看起来像是那些无处可去的产品之一。
这让我想起了我被要求使用一个名为Witango的开发平台的时候——使用起来绝对是一场噩梦,不久之后所有的应用程序都必须用 .NET 重写。
花时间学习一些更主流/更实用的东西。
不惜一切代价避免。20 年前,4D 曾经是一个很好的 Mac 数据库,但今天已经过时了。部署成本极高且支持不佳。我已经使用它很多年了,后来我转向 Real Studio 进行跨平台数据库开发,它拥有更现代的语言和更活跃的开发者社区。
我会警惕在这样的事情上投资太多。从好的方面来说,如果这就是你的公司使用的学习方式,它将带来回报。但是你学到的技能将很难在其他地方使用。
我认为这里有一半以上的回复是不准确的。我知道有超过 1000 名用户的 20 多家公司。我相信还有更多。
使用 4D v12.1 (www.4d.com),您只需单击按钮即可轻松部署单用户、客户端服务器、Mac、Win。并且有易于设置的插件与 Flex、iPhone 和 Android 操作系统集成。他们的知识库和文档非常简洁和全面。
他们拥有一支优秀的工程团队,4D 和在线社区的支持非常棒。我使用 4D 已经好几年了,我没有任何抱怨。
正如其他人指出的那样,4D 为您提供了一个完全集成的后端数据库和前端。客户端服务器连接是有状态的,因此您无需担心记录处理和客户端服务器会话处理。
每年不到 1000 美元,它并不昂贵,您可以部署无限的单用户应用程序。哪个其他专有开发平台可以为您提供?
我确信 Real Software 也有其优点和缺点。现在有很多选择,给猫剥皮的方法也很多。