About Us

Code Farms Inc is one of the oldest class-library companies in business. It was founded in 1988 with a mission to deliver simpler and more efficient data structures which would be also automatically persistent. In general, we are interested in better ways to design software. With our tools, software designers are routinely 3-5x more efficient, and the memory resident databases designed with our libraries still run order of magnitude faster than any of the expensive, commercial OODB systems.


We always have been a small, private, financially independent company, and we want to remain so. It gives us more control about our destiny, while you get better service. Since the purpose of our tools is to improve software reliability, the tools themselves must be absolutely solid. We were the first company shipping full regression tests for our products; our new products also have them. If you need any help we respond immediately to emails or phone calls.

We also provide consulting, usually related to the design (or redesign) of large, complex systems, or helping customers to introduce our tools. Even though this is not our prime interest, our revenue from the consulting exceeds our sales in the ratio of about 2:1

We understand that if you decide to use our software, your entire project will depend on us, and you need security that we will not go out of business, which is the usual reason why people hesitate to deal with small companies. This is also the reason why we provide full source. With full source, you are not only safe, but you can also customize the software to fit your particular application.

Over 500 companies already use our tools world-wide, many of them betting their entire development on us. Some of them like our software so much that they don't want their names to be released - they don't want their competition to have the same advantage.


In 1989, when C++ was relatively new and had neither multiple inheritance nor templates, our C-library called Organized C (orgC) was the most extensive data structure library on the market. It already had intrusive data structures with collections, hash tables, graphs, trees, many-to-many relations, labelled properties, and disk paging - all with a fully automatic persistency.

The library was successfully used on many large, industrial projects, and proved equally useful for rapid development of fast memory-resident databases or when designing any software that required complex data structers. Typical exemples of such projects are VLCI CAD systems, programs for processing of stock-exchange data, or compiler design. Later, under the name of Data Object Library (DOL) the library was converted to C++, and numerous features were added, including "memory blasting" - a method of storing data to disk which is still an order of magnitude faster than the commonly used serialization.

DOL uses a code generator and, in mid 1990's, C++ purists considered this unacceptable. In order to prove that the same approach (intrusive data structures, data structures as objects) can be implemented in 'pure' C++ (without any code generator), we designed the Pattern Template Library (PTL) based on C++ templates. This library has two unique features: (a) It allows to treat structural design patterns (e.g. Composite) as data structures and, (b) it includes a generic, dynamically reconfigurable Finite State Machine, a class not available from any other library.

The next addition to our tool suite was the Persistent Pointer Factory (PPF), a simple, lightweight persistence that can be added to any program. It does not need a code generator - it uses a smart pointer class, PersistPtr<T>. If you replace, in your existing code, all pointers to T by this smart pointer, your data automatically becomes persistent. Compared to DOL, where the primary data storage is in virtual memory, the PPF's primary storage is on disk. Data is paged to memory only when needed as in the tranactional model. PPF ideally suits to problems such as warehouse monitoring, and hotel or airline reservation. PPF persistence is elegant, light, and fast. All the source involves only three files with total binaries of 170kB (yes kilobytes!).

Our INCODE Modelling which was introduced in 2004 is a result of years of research aimed at new, more efficient ways of designing software. It is a form of Model Driven Architecture (MDA) in which the central model drives the architecture from within the code. This central model, just like a database schema, controls all the data structures, their implementation as associations and, fully automatically, it produces theUML class diagram. This completely solves the problem of possible mismatch between the code and the diagram. All this works in both C++ and Java.



  • Based on the two-decade experience with our new approach to designing data structure libraries and persistence, we know that this approach must eventually lead to the next software revolution, because it eliminate many problems that haunts the software development today.  Structured programming eliminated "goto" statements from our code. The next software revolution will eliminate explicit pointers or reference stored in objects. In both situations, we eliminate  a network of reference references which is hard to manage and is a potential source of hard-to-find errors. 
  • Our proposal for tall the object-oriented languages to include keyword "insert" has been published as Chap.8 in the Soukup/Macháček book.For patent reasons, the key players in the language communitydid not want to consider this proposal until it has been published. Now when this obstacle has been removed, we plan to promote the idea aggressively.
  • During the past decade, we developed what we believe is a novel approach to the Natural Language Processing (NPL). It includes a new computer vacabulary which expands itself by repeated reading of an unprocessed text with only simple and infrequent hints from a live tutor. This closely relates to the Model Of the World recently reported as being under development in Google.


Key Personel


Dr. Jiri Soukup is the Founder and President of Code Farms, and was one of the key contributors to several state-of-the-art CAD projects: director and a founding member of Cadence Design Systems, manager of AT&T's VLSI layout system, and one of the key developers of a printed board layout system for many years sold by IBM. Jiri is the prime author of all our products. For his other interests, click here.




Mike Heffernan is a software architect, programmer, marketer and experienced manager. He focuses on training software development leaders, and has spoken at conferences throughout Canada, the U.S. and internationally. Formerly Director of Applied Technology Leadership at Nortel, he is now the President of OpusEdge, a seminar and coaching firm in Ottawa.

Petr Macháček is a software developer and architect, currently President of ImageCode, our partner in the E.U. which provides additional technical support for Code Farms libraries, especially in the Czech Republic. Petr is co-author of the Soukup/Macháček book, and his prime interest at the moment is image processing for medical and biological application, e.g monitoring the growth of embryos in a Petri dish. He was involved in the project where the DOL library was used to process the output of mass spectrometer in biochemical applications (South Bohemia University, Nove Hrady).