4D——有什么好处吗?
最近我发现我的一个朋友共同拥有的公司使用了4D,这是我以前从未听说过的。 他们对此发誓,但他们不懂技术,而且他们所说的听起来就像是熟记的营销宣传语。 不幸的是,4D 网站似乎也缺乏任何实际信息,并且充满了“全面”、“解决方案”等词语,用“平台”和“集成”来代替。
由于那东西相当昂贵并且使用一种自定义语言,我没有太多兴趣只为一个项目学习,所以我对此持谨慎态度,我想知道是否有人有过这方面的经验? 你会推荐它吗? 到底有什么好处呢? 作为一名程序员学习它,或者作为一家公司使用它,我会获得什么竞争优势?
Recently I found out that the company a friend of mine co-owns uses 4D, which I've never heard of before. They swear by it, but they're non-technical and what they say about it sounds like memorized marketing blurb. Unfortunately the 4D website also seems devoid of any actual information and is filled with words like "comprehensive", "solution", "platform" and "integrated" instead.
Since that thing is rather expensive and uses a custom language that I don't have much inclination to learn just for one project, I'm cautious about it and I'm wondering if anyone had any experience with it? Would you recommend it? What is it good for? What competitive advantage would I gain by learning it as a programmer, or using it as a company?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(8)
4D 已经存在很长时间了(大约 25 年),所以它比 MySQL 等要老得多。 将其视为 Microsoft Access 的专业版本:它拥有自己的受 Pascal 启发的主机语言、自己的关系数据库引擎、用于快速 GUI 开发的非常成熟的 IDE 以及允许真正的“一次编写,随处运行”的自定义运行时(即 Mac OS (X) 和 Windows 中的任何地方)。 如今,它还可以理解 SQL,有服务器版本,甚至还有集成的 Web 服务器。 它相当强大,因此与 Access 的比较可能不恰当。
如今,我相信它主要用于与 4D 一样古老的遗留应用程序。 我认为我今天不会再次学习它,更不用说用它开始新项目了,因为您可以获得相同的功能,然后通过堆叠开源组件获得一些功能。
4D has been around for a long time (~25 years), so it's much older than e.g. MySQL. Think of it as a professional version of Microsoft Access: It has its own Pascal-inspired host language, its own relational database engine, a very mature IDE for rapid GUI development and a custom runtime which allows for true "write once, run anywhere" (anywhere being Mac OS (X) and Windows, that is). Nowadays, it also understands SQL, there's a server version and even an integrated web server. It's fairly powerful, so the comparison to Access probably does not do it justice.
Today, I believe it's mostly used for legacy apps which are as old as 4D is. I don't think I would learn it again today, much less start new projects with it, since you can get the same functionality and then some by stacking up open source components.
我曾经做过一些非常严肃的 4D 工作,我编写的系统之一是大约 16 年后仍然作为企业系统使用。 我感到沮丧,因为他们花了数年时间才推出该语言的新版本,而我编写了数千行代码来使用第三方表控件。
4D 使用专有服务器提供跨平台、高性能的客户端-服务器系统。 数据库模型比 SQL 更加面向集合,并将集合一直引入到核心语言中。 它在向客户端交付代码方面做得很好,因为它将所有过程编译为本机代码,这些代码在本地缓存并在过期时按需更新。
语言和 GUI 环境有其怪癖,但另一方面是,通过支持它作为遗留平台可能会过得很好。 如果您可以让其他人选择这些工具的选项卡,那么它可能会成为您咨询工具箱的有用补充。 您必须考虑对于具有悠久历史的独特产品将有多少特定于业务的代码!
4D 最近雇用了一位我非常尊敬的工程师,这充分说明了他们对未来的承诺,雇用了这样的人。
最近,我一直在处理遗留系统,将旧的 Mac 东西移植到 WPF,Visual Studio 和旧 Mac 工具大部分未使用的复杂性之间的对比让我想起了 4D。 我还将我的 OOFILE C++ 数据库和报告框架移植到 REALbasic - OOFILE 集面向操作直接来自于我对 4D 的喜爱,这也让我觉得我最初的回答太苛刻了。
关于 4D 需要记住的一点是,它从一开始就是面向集合的(由数学家编写),并且比 SQL 更容易用于许多事情。 4D Server 的部署模型是桌面应用程序和网络配置的完美结合 - 编译的组件缓存在服务器上,并在需要时自动发送到客户端。 无需关闭或主动推送或部署更新。 4D 的 GUI 模型令人沮丧,但今天看看该网站,他们已经解决了我多年前不得不使用第三方解决方案的大部分问题。
I used to do some very serious 4D work, one of the systems I wrote is still in use as an enterprise system about 16 years later. I got frustrated because they were taking years to come out with the new object-oriented version of the language and I was writing thousands of lines of code to use a third-party table control.
4D delivers cross-platform, very high-performance client-server systems using a proprietary server. The database model is much more set-oriented than SQL and pulls the sets all the way into the core language. It does a nice job of delivering code to the clients because it compiles all procedures to native code which is cached locally and updated on-demand when it is out of date.
The language and GUI environment have their quirks but the flip-side is that there will probably be a good living to be made from supporting it as a legacy platform. if you can get someone else to pick up the tab for the tools, it may be a useful addition to your consulting toolbox. You have to consider how much business-specific code is gonna be out there for a unique product with that long a history!
An engineer for whom I have huge respect was recently hired by 4D which says a lot about their commitment to the future, hiring this kind of guy.
I've been working a lot with legacy systems recently, doing a port from old Mac stuff to WPF and the contrast between the mostly-unused complexity of Visual Studio and old Mac tools reminded me of 4D. I'm also porting my OOFILE C++ database and reporting frameworks to REALbasic - the OOFILE set-oriented operations came directly from what I loved about 4D and this too made me think I was too harsh in this answer originally.
The thing to remember about 4D is that it was set-oriented from the beginning (written by a mathematician) and much easier to use for many things than SQL. The deployment model of 4D Server is a superb combination of desktop app and network provision - compiled components are cached on the server and automatically sent to a client when needed. There's no need to shutdown or actively push or deploy updates. The GUI model of 4D was frustrating but looking at the site today, they have solved most of the issues that I had to use third party solutions for years ago.
像躲避瘟疫一样避开它。 我的公司使用它,但这只是一种不断的挫败感练习。 它的表现远没有你所相信的那么好,而且文档要么不存在,要么没有帮助。
Avoid it like the plague. My company uses it and it's just a constant exercise in frustration. It performs no where near as well as the sales pitch would have you believe, and documentation is either non-existent or not helpful.
在我看来,没有理由开始学习 4D,除非您想要一个简单的数据库应用程序并且无法或不愿意学习如何用更大的语言创建 GUI。 4D 的主要优点是 UI 和数据库之间的内置功能可以处理大部分所需的内容。 如果您想要快速、小型和内部的东西,您可以使用 4D,但如果您需要开发功能强大的商业应用程序,您将遇到一些障碍。 如果您需要 4D 无法自动提供的东西,那么让它工作将非常困难。
我认为这种语言完全过时了。 它可以发挥其作用,但我们的产品已受到语言和数据库本身的限制。 我们不断遇到奇怪的怪癖,并且必须编写代码来解决它们。
我有过 4D 2003 和 2004 的经验,但由于成本问题我们还没有升级到最新版本。 它非常昂贵。 每个客户都需要为每台需要运行该软件的计算机购买许可证。 由于许可证的原因,我们的产品对于新办公室的成本超过 1000 美元。 当 4D 的新版本发布时,每个客户都必须付费升级其许可证。
In my opinion, there is no reason to begin learning 4D unless you want a simple database app and are unable or unwilling to learn how to create GUIs in a bigger language. The main advantage that 4D has is that the built in functionality between the UI and the database can handle most of what is needed. If you want something quick, small, and inhouse, you can get by with 4D but if you need to develop a powerful commercial application you will run into a few walls. If you need something that 4D doesn't provide automatically it will be very difficult to get it working.
I consider the language completely archaic. It works for what it does but our product has become limited by the language and database itself. We keep running into weird quirks and have to code our way around them.
I have experience in 4D 2003 and 2004 but we haven't upgraded to the latest version because of the costs. It is extremely expensive. Each customer needs to buy licenses for each computer that needs to run the software. Our product costs over $1000 for a new office because of the licenses. When a new version of 4D is released every single customer has to pay to upgrade their licenses.
查看 https://www.4duk.com/products/ataglance.html 后,我建议你保持清醒——它看起来像是那些不会有任何进展的产品之一。
这让我想起了有一次我被迫使用一个名为 Witango 的开发平台 - 使用起来绝对是噩梦,而且所有应用程序都不久之后将在.NET 中重写。
投入时间学习一些更主流/更实用的东西。
After looking at https://www.4duk.com/products/ataglance.html, I'd recommend you stay clear - it looks like one of those products that's going nowhere.
It reminds me of the time I was made use a development platform called Witango - absolute nightmare to use, and all apps had to be rewritten in .NET very shortly afterwards.
Invest your time learning something more mainstream/employable.
不惜一切代价避免。 20 年前,4D 曾经是一个很好的 Mac 数据库,但今天已经过时了。 部署极其昂贵并且支持很差。 我已经使用它很多年了,后来转向 Real Studio 进行跨平台数据库开发,它拥有更现代的语言和更活跃的开发者社区。
Avoid at all cost. 4D used to be a good Mac database twenty years ago but is obsolete today. Extremely expensive to deploy and poorly supported. I have used it for many years and have since moved to Real Studio for cross-platform database development, which has a more modern language and a far more active developer community.
我会警惕在这样的事情上投入太多。 从好的方面来说,如果你的公司就是这样使用学习的,那么它将会带来红利。 但你学到的技能很难在其他地方使用。
I'll be wary of investing too much into something like this. On the good side, if that's what your company uses learning it will pay dividends. But the skills you learn will be hard to use in other places.
我认为这里一半以上的回复都是不准确的。 据我所知,有 20 多家公司拥有超过 1000 名用户。 我相信还有更多。
借助 4D v12.1 (www.4d.com),您只需单击一个按钮即可轻松部署单用户、客户端服务器、Mac、Win。 还有易于设置的插件,可与 Flex、iPhone 和 Android 操作系统集成。 他们的知识库和文档非常简洁和全面。
他们拥有一支出色的工程团队,4D 和在线社区的支持非常棒。 我已经使用 4D 好几年了,没有任何抱怨。
正如其他人指出的那样,4D 为您提供了完全集成的后端数据库和前端。 客户端服务器连接是有状态的,因此您无需担心记录处理和客户端服务器会话处理。
每年不到 1000 美元,并不昂贵,而且您可以部署无限的单用户应用程序。 哪个其他专有开发平台可以为您提供这一点?
我确信 Real Software 也有其优点和缺点。 现在有很多选择,给猫剥皮的方法也有很多。
I think more than half the replies over here are inaccurate. I know of more than 20 companies with over 1000 users. And I believe there are a lot more.
With 4D v12.1 (www.4d.com) you can easily deploy at the click of a button for single-user, client server, Mac, Win. And there are easy to setup plugins for integration with Flex, iPhone and Android OS. Their KB and documentation is very neat and comprehensive.
They have a great engineering team and the support from 4D and the online community is just fabulous. I have been using 4D for several years and I have no complaints.
4D as someone else pointed out gives you a fully integrated backend database and frontend. The client server connections are stateful so you dont need to worry about record handling and client server session handling.
At less than $1000 per year it is not expensive and you can deploy unlimited single user apps. Which other propreitory development platform gives you that?
I am sure Real Software has its Pros and Cons too. There are many choices nowadays and there are many ways to skin a cat.