EOF: development of late NeXT




In our case, this stands for Enterprise Objects Framework, this is one of the best developments of the late NeXT. Another transcript of EOF, end of file, had every chance of becoming a prophecy …

In the early 90’s, NeXT was interested in one problem, the solution of which could be made quite well. Outside the company, this problem was considered an inevitable evil, and it seems that they did not even try to fight it.

The databases became an increasingly important phenomenon. Who owns the information, he owns the world. Accordingly, the number of database management systems has increased. Almost each of them had its own programmer interface (API), its advantages and disadvantages.

The programs using the databases were a myriad – and over and over again they had the same trouble. They had to be processed to work with other APIs and other rules when connecting to a database management system (DBMS) from other vendors, and when switching to other (in the opinion of the management, more progressive or efficient) DBMS.

Entities (DBMS and programs using DBMS) multiplied, each connection to other DBMS turned out to be considerable financial and labor costs. I do not have statistics, but I happened to be a witness and participant in such “revolutions”. It was incredibly interesting: to learn something new, to try, to master – and to rewrite to it a new bunch of old programs, along the way improving them …

Programmers like children, to take such a toy from them cruelly – but almost a third of the world’s population is starving, and money could be spent to save the hungry, or at least to purchase another yacht and equip it with a missile defense system …

After several brainstorming sessions, and having thoroughly considered the problem, in 1991, in a building at 900 Chesapeake Drive in Redwood City, California, the problem was solved.

In 1992, another DBKit was added to the set of “whales” in the NeXTSTEP development environment.

The rows of tables in relational databases were digested by this whale into objects and arrays of objects. An object is properties (data) and actions (methods). DBKit took care of extracting data from the database, the programs using this data were almost independent of the nature of the database.

Almost, because the mechanism that extracts data from the database, needed to be configured to work with a specific database. The settings for the most important (popular) DBMSs were included in DBKit, the process of adapting new and less popular DBMS was documented.

If the data was stored in several databases of a different nature, there is no problem: if there are adapters to these databases, the end user (the program!) Is isolated from such low-level parts.

This whale was advertised by NeXT, and was considered one of its competitive advantages. He was such an advantage, but not everything with him was so good and simple.

I read reviews of users (who consider themselves advanced), among which there were many critical ones. People asked why DBKit does not have a panel for entering queries and a report generator, like in 4D or Paradox, and what they should do now.

Polite employees of the computer press politely explained to critics the difference between the set of Lego and the tools of this designer. In fact, critics should have been advised to hire a programmer. Or learn how to use Objective-C and C.

Critics have tried to create applications for working with DBMS using only Interface Builder – I would not even blame them for it. They were told that creating programs in NeXTSTEP should not be difficult, they believed.

The reaction of intelligent people was positive, but there was enough criticism. The whale was far from ideal, there were defects in it, including conceptual ones. He did his job, facilitated interaction with databases, solved many problems, adding their own instead.

DBKit can be considered a reconnaissance battle. Now it was clear what should be the mechanism of interaction with databases.


A new object-oriented interface with databases was created from scratch. Judging by the size of the terms of reference, it was a super-duper megaproject, for the implementation of which hundreds of people and a separate office, somewhere on the Pacific coast, where the breeze and fine soft sand and palm trees were required.

But there were only four developers of the first version of EOF. Here are their names: Jack Greenfield, Rich Williamson, Linus Upson and Dan Wilheit. They met all the requirements of TK, and in the spring of 1994, Enterprise Objects Framework 1.0 went on sale, for $ 299. Times of prohibitive prices have not yet come.

Data objects were now called Enterprise Objects (in modern slang is Business Objects), the process of linking DBMS of different nature with EO has been radically redesigned.

The first to peck banks, quickly assessing the advantages of the new framework. The next were representatives of big business and the US military aviation institute. EOF “sold” licenses for OPENSTEP, like Aldus PageMaker, 9 years before it, was selling Macs.

In the Enterprise Objects Framework, for the first time, the Foundation Kit was used, a framework that combined classes that are not related to the user interface, and a novelty in memory management, the autorelease command.

In fact, it is a semi-automatic “garbage collector”, with a manual drive. The biggest difficulty for beginners in the object-oriented environment NeXTSTEP / OPENSTEP / Cocoa, the subject of love and admiration for those who have mastered it. Usually this love came in a few months, filled with infernal agony and gnashing of teeth.

Current programmers in macOS, iOS, tvOS, watchOS and audioOS go through this is not necessary, but I do not envy them: it is easy to craft.

About autorelease and memory management in the descendants of NeXTSTEP, and about their evolution, I will write separately: a very instructive story. With a good end. In a sense, not even an end: it is still going on …

Naturally, in the first version of the product, shortcomings were revealed, developers could not fail to get new ideas, and at the end of 1995 NeXT Software released its second version.

The most important changes in it were related to the planned, in the near future, NeXT’s release on the Internet, with one very large and ambitious project, of which this framework should become an integral part.

In addition to the main ones, there were smaller ones.

Corrected bugs added (at the request of workers) functional, built-in support for the entire collection of databases.

EOF was one of the few, alas, NeXT products that brought money to the company. But the number of developers remained the same. Updated only the composition of the team. Of the previous four, only Dan Wilheit remained. The history of the new developers was preserved: they were Eric Noyon and Charlie Kleisner. And headed by Craig Federigi .

He was both a programmer, a manager, and an ideologist of the project. And this is the same Federigi, who is now part of the top management of Apple.

The fate of EOF

In 1996, the framework became one of the most important parts of WebObjects, which we’ll talk about in the next article, or in two.

EOF, in addition, could be purchased separately from WebObjects, for the same $ 299, until 2000 or 2001. In 2005, Cocoa included its descendant, Core Data.

In my opinion, EOF was cooler – but this is my personal opinion.


In: A Technology & Gadgets Asked By: [19503 Red Star Level]

Answer this Question

You must be Logged In to post an Answer.

Not a member yet? Sign Up Now »

Star Points Scale

Earn points for Asking and Answering Questions!

Grey Sta Levelr [1 - 25 Grey Star Level]
Green Star Level [26 - 50 Green Star Level]
Blue Star Level [51 - 500 Blue Star Level]
Orange Star Level [501 - 5000 Orange Star Level]
Red Star Level [5001 - 25000 Red Star Level]
Black Star Level [25001+ Black Star Level]