Post by Marcos Douglas B. Santos via Lazarus
I would like to propose a discussion about "What is the relevance of
Object Pascal nowadays".
I don't want waste your time. I just want to know if we are growing
and being more relevant or not.
I use Object Pascal (mostly FPC, some old Delphi) in production to
make real applications. But we are seeing more and more "new
frameworks", "new technologies" and new languages that are become more
What do you think?
We're working in the field of automatic machines. From textile machines
to printer post-processing equipments (mainly in the security printers
field), from coffee roasting machines to chain wear monitoring
equipment. We do not usually deploy software, but rather we sell control
equipments which are then integrated by the final manufacturer in the
Our equipments usually include custom embedded controllers and a
supervisor which may range from an industrial grade PC to a Raspberry
PI. It provides both the human interface and the real-time high-level
We're also frequently asked to integrate our supervisor into the factory
data network both to provide production data (for statistical purposes,
quality assurance, and security) and to fetch process information when
appropriate. This leads to supplying also small servers which do handle
network protocols, Data Base handling, creating Reports etc.
We found today's Object Pascal and Lazarus to be the most cost effective
solution, for a number of reasons. Mainly:
* Object pascal syntax makes it easier to detect programmer errors at
compile time, thus strongly reducing the debug time.
* Being most projects quite similar and with very short development
time allowed, we need readable and self documenting sources, making
it easy for anyone to modify project A into project B.
* For the same reason, re-usability of code for us is a must. Again
Object Pascal is a winner by this POV.
* Always for the same reason we need a RAD tool, and Lazarus IDE is
again a winner.
* We need to interface with our real-time framework with predictable
timing, and this rules out most of the "modern" languages.
* Given the relative stability of the Object Pascal language, we may
take advantage of a huge amount of code we have developed in the
past. I've just ported to Lazarus a program which was originally
developed in the 90's with Delphi 3!
Many of those reasons apply also to Delphi, but we dropped Delphi long
1. Primarily, we need Linux support, because of the real-time
requirements, which aren't achievable in Windows environment. OS-X
isn't an option because we need industrial grade PC's.
2. Secondarily, Lazarus IDE is light years better than Delphi IDE.
For sake of completeness, I must add that our real-time framework and
the real-time tasks are written in C. This was a must when it had to be
part of a patched Linux kernel, running in kernel space. Now that
RT_PREEMP has reached maturity and has made its way into the mainline
kernel we've been able to move the stuff to user space. Therefore we're
rewriting most of it in Object Pascal, to take advantage of a much lower
development and maintenance cost.