27

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?

Noctis Skytower
  • 21,433
  • 16
  • 79
  • 117
Michał Tatarynowicz
  • 1,294
  • 2
  • 15
  • 33
  • Check in the error code listings... looks like some kind of ORM + database product. They have a "Find a developer" link... might want to try asking them. – StingyJack Feb 23 '09 at 13:01
  • 13
    I hate that Stackoverflow considers these type of questions as not a good fit for their format. While I appreciate the concerns around the type of answers that it will solicit, it is still a valuable resource for developers who have never been exposed to a particular programming system. – ChronoFish Feb 12 '15 at 18:23

8 Answers8

26

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.

Simon
  • 12,018
  • 4
  • 34
  • 39
  • 2
    Are there really open source IDEs out there which let you create a database and hook up a GUI as fast as 4D? I don't know the open source tool scene that much - I'm not trolling! – Andy Dent Feb 23 '09 at 14:29
  • 1
    I don't know of any open-source IDE that would do that. I think comprehensive IDEs that do everything are a personal preference thing. I'd rather choose my own IDE than have to use the vendor-provided one. – Michał Tatarynowicz Feb 23 '09 at 14:51
  • @Pies: It's not the IDE per se but its Access-like ability to build application GUIs in a visual environment. Apple's XCode can do this as well, but only on/for Mac OS X. I'm not aware of any cross-plattform tool for this, however I never really looked for any options. – Simon Feb 23 '09 at 19:28
  • 1
    @Simon: Well, if you need that kind of functionality above everything else and are willing to pay a price in money, developer mindshare, versatility, etc. then you should probably check out 4D. – Michał Tatarynowicz Nov 20 '09 at 04:37
  • @Simon REALbasic is even better than 4D at putting together cross-platform GUI however they have removed their database bindings (part of a long-term cleanup of the core) and so for database apps it's not a rival - you have to map SQL results yourself. I'm working on a port of my OOFILE c++ frameworks to make that kind of thing trivial, started by getting the report-writer going. – Andy Dent Nov 21 '09 at 01:30
15

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.

Andy Dent
  • 17,578
  • 6
  • 88
  • 115
  • 5
    So basically you recommend learning it to either support legacy systems (how's that for a dream job) or to work for someone willing to spend many thousands of dollars for easily replaceable the software. I'm not convinced :) – Michał Tatarynowicz Feb 23 '09 at 14:37
  • 2
    But I guess it could be a nice job if I didn't like programming as much as I do :) – Michał Tatarynowicz Feb 23 '09 at 14:38
  • 1
    I think you're probably speaking from a position of ignorance when you say "easily replaceable"? I know that the quote to replace just part of the main system I wrote in 4D came in at about 4x what it cost to develop. – Andy Dent Feb 23 '09 at 16:50
  • 2
    I meant that it's easy to use other software stacks, which are more popular and often free, instead of 4D. – Michał Tatarynowicz Nov 20 '09 at 04:41
10

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.

Carl Manaster
  • 39,912
  • 17
  • 102
  • 155
Jason
  • 109
  • 1
  • 2
8

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.

MrHen
  • 2,420
  • 2
  • 25
  • 39
6

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.

Steve
  • 61
  • 1
  • 1
  • 1
    Ironically, RealBasic, now renamed Xojo, is renowned for bugginess and has lost many users including me in the last few years. – Andy Dent Jul 14 '16 at 09:48
  • And now more years later it got even worse with both companies. RealBasic and 4D – Lothar Mar 06 '19 at 20:06
6

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.

Galwegian
  • 41,475
  • 16
  • 112
  • 158
5

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.

Tundey
  • 2,926
  • 1
  • 23
  • 27
2

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.

sujit
  • 57
  • 1
  • 5
    Unlimited single user apps that only other people who pay $1000/yr can run? – Michał Tatarynowicz Mar 25 '11 at 12:32
  • 12
    You don't work for them by any chance? – The_Black_Smurf Oct 14 '11 at 01:01
  • 2
    4D includes the capability of producing a compiled file that can be run on a Mac or PC without purchasing a license. The single developer license is $399. – Jeff Jan 04 '12 at 02:22
  • v12.1 was a bug nightmare. Even when 4D came in town to present the new version of 4D, they didn't hide the major problems related to the v12.1. They also told us the v12.3 would be stabilzed. – The_Black_Smurf Mar 19 '12 at 10:50
  • 4
    "20 companies with over 1000 users"... well, our servers starts to struggles after 12 users. Are your 1000 users actually doing anything on the server? – The_Black_Smurf Mar 19 '12 at 10:54
  • "our servers starts to struggles after 12 users" sounds weird to me - I had more users 25 years ago! – Andy Dent Jul 14 '16 at 09:50
  • 1
    There is only one way to skin a cat: DON'T. Who the hell come up with such an animal cruel saying. And for 4D the answer is also DON'T. – Lothar Mar 06 '19 at 20:10