This post was inspired by comments I received in my last article about DataSnap. DHR has made some interesting questions and I’ll try to answer them.
What framework did you eventually choose and why did you choose it?
My choice is the mORMot framework, for several reasons. First of all, I do not have the option to change the programming language. mORMot is not only a component for HTTP Servers or an extension of DBExpress. Ok, DataSnap is a bit more than that, but mORMot is much greater than that.
It has an amazing documentation.
The forum is great, has many good discussions. Is very active.
The support (from Arnaud Bouchez) is simply exceptional.
A brief summary (Taken from the project site):
The main two features of mORMot are therefore:
Client-Server ORM: objects persistence and remote access;
Client-Server Services: remote call of high-level data process.
Due to its modular design, switch from such a Client-Server architecture over HTTP, named pipes or GDI messages into a stand-alone application is just a matter of mORMot classes initialization. For instance, the very same executable can even be running stand-alone, as a server, or a client, depending on some run-time parameters!
Emphasizing simplicity, speed and versatility, mORMot is a incredibly well documented Open Source project easy enough to add basic ORM or Client-Server features to simple applications for hobbyists, or let experienced users develop scaling and strong service-based projects for their customers, with the advantages of native code and easy-to-deploy solutions, reducing deployment cost and increasing ROI.
It provides an Open Source self-sufficient set of units (even Delphi starter edition is enough) for creating any application, from a stand-alone solution up to the most complex Domain-Driven design:
Presentation layer featuring MVC UI generation with i18n and reporting for rich Delphi clients, or rich AJAX clients;
Application layer implementing Service Oriented Architecture via interface-based services (like WCF) and Client-Server ORM – following a RESTful model using JSON over several communication protocols (including HTTP/1.1);
Domain Model layer handling all the needed business logic in plain Delphi objects, including high-level managed types like dynamic arrays or records for Value Objects, or dedicated classes for Entities or Aggregates;
Data persistence infrastructure layer with ORM persistence over Oracle, MS SQL, OleDB, ODBC, with a powerful SQLite3 kernel, and direct SQL access if needed – with amazing performance;
Cross-Cutting infrastructure layers for handling data filtering and validation, security (even Windows authentication), caching, logging and testing (framework uses test-driven approach and includes interface stubbing and mocking).
If you do not know this framework, please take a look.
Are you going to code the client and mobile in Delphi? Would other choices be reasonable?
I think not, but it’s hard to say. Actually I see no reason to develop applications for mobile clients in delphi. Other technologies seem more advanced and mature in this environment. But I have no experience with developing for mobile. Anyway let’s wait the Embarcadero releases before saying anything. I’ve been looking at the Smart Mobile Studio, seems promising, but it is difficult to say right now if is going to have a great acceptance.
Will you be using FMX in the future?
The company where I work invested a lot of money in CLX. In 2008 I participated in the project which converted all softwares to VCL. I can guarantee that was not an easy job. I am absolutely sure that the directors of the company do not want to go through that again. So if I’m going to use FMX? No.
Can you blog about your experiences with Delphi and why you decided to leave it?
Let’s get one thing clear. I will not abandon Delphi. We have over 300 projects developed in Delphi and many of them are giants. Changing the language is not my decision. We have reasons to want to do this but is not so easy.
Can I ask about Delphi in Brazil? How are things there?
With respect to jobs. Brazil is very large and very different in each region. Probably the situation is not the same within the whole country.
In my region a few universities still teach Delphi. I do not know for how long.
The point is that we have jobs for Delphi developers everywhere here. There are many companies that invested in Delphi years ago and now have legacy software that must be maintained and evolved. In my view there are more jobs than qualified staff.
Many companies are in this situation because they can not afford to rewrite the software in another language. When you have a large amount of software developed in Delphi, has a large team of Delphi developers, the decision to abandon Delphi is very difficult.
How is IntraWeb usage in Brazil?
I have no idea. Does anyone actually use it?
If anyone has information about it, please leave a comment.
Is Delphi the problem?
Danijel Tkalcec wrote in comments “Delphi is not the problem”. After that I started asking myself, is Delphi the problem?
I work with Delphi on a large project. Okay, this project was poorly designed, is not modularized, has millions of lines of code, etc.
Error insight does not work;
Code complete does not work;
Insight ToolTip does not work;
Sometimes the IDE mess the DFM’s and cause errors at runtime (QC111920);
The IDE crashes QC111923);
and so on…
Most of these problems are caused by the size of the project, and not by failure of IDE, according to the Embarcadero, but we have to agree that Delphi has serious problems.
And what about the Quality Central?
A phrase of Jolyon Smith summarizes what I think about the QC:
“Every time someone tells me to “put it in QC” I want to pick them up by the scruff of the neck and give them a damned good shake”. Jolyon Smith
About QC, this text of Larry Hengen is excellent, take a look.
Still, I do not think Delphi is the main problem. Maybe Embarcadero is the main problem. What do you think?.
I think the language Object Pascal has its merits. The Delphi IDE is not all bad. The Delphi community is very good. It is small but has a lot of good people.
If the embarcadero would support the community, it would be good for everyone. But they do not seem very concerned about it.
Why Delphi is not compatible with FPC? This war against the open-source does not seem very healthy thing for the community. Look at this post FPC and Delphi: toward a “fratricidal war”?
Where’s the support for open-source projects?
So, I do not think Delphi is the main problem. Just look at the mORMot. Is an amazing framework, like some other open-source projects. You can make good products using Delphi, but you have to accept the policies of the embarcadero. Maybe this is the main problem.