Home > Delphi, Language research, Object Pascal > Why do some people hate Delphi so much?

Why do some people hate Delphi so much?

I have to admit that all the rubbish snag comments about Delphi is really annoying. Why does seemingly intelligent, clever and open-minded individuals hold some grudge or negative judgement regarding Delphi?

Where in God’s name does this come from? And who in their right mind, being grown men in their 30’s, 40’s and 50’s, would start acting like little children like this?

I see it almost everywhere. Even in my last job where we had two teams working with C# and Delphi, joining forces to produce a top quality product. Yet behind closed doors there existed a kind of silly superiority complex amongst the C# users which I found disrespectful, superficial and outright stupid.

What is really a shame here is that almost everyone I have met holding such a dumbfounded attitude, which keeps on thrashing Delphi and object pascal in general, is that they demonstrate absolutely no idea what they are talking about! Some have tried Delphi in past and found it to complex, some never liked it — and all of that is ok of-course. We can’t all be expected to like the same music, food, art or colors – so different programming languages are no exception. But when individual after individual turns out to be just mindless parrots repeating what other parrots are repeating – I just have to set the record straight.

First things first

The first argument to fall flat on its face against Delphi is the one regarding age. “Oh it’s just old crap” I hear people say, “it’s not modern enough”, or even more humiliating (for them), it’s not cutting edge like C++, C# or Java!

The latter argument makes me want to throw up. Literally. Because what these sad individuals fail to recognize, is that C is about six years older than Pascal. Pascal was designed to replace C, because C was never intended to be in its present state to begin with. Like JavaScript the syntax was never finished but a result of old habits, deadlines and a moving market. C is a language made as they went along, it’s not planned or thought out like Pascal, C# or Java.

Back in the sixties and seventies programming languages were very crude; each command was just replaced by a fixed block of machine code, with various macro mechanisms to set parameters. So in the first pass the compiler made checked the syntax, the second replaced your “c” code with a blocks of assembly code, the third generated an entry-table for each sub-routine and it’s initializer (hidden routines for allocating static memory) and the fourth pass emitted the now pure assembly code text-file to disk. At the end of this horrible process which could take hours, an assembler was invoked to turn each .asm text-file into machine code .a files. And the last step was the linker gluing each piece together into a working program.

As such “C as a language” was never really finished. C was just a toolkit engineers used when creating operative systems, rom images and software for mainframes. Whenever they needed a new command they just extended the language as they saw fit.

So it was never cleaned up properly; the syntax was never renamed to be more understandable, the curly brackets { }, which were only used to save precious bytes of memory were not replaced with begin or end keywords, and the externalized header files were left as they were. An echo from the past when computers had so little memory that it made sense to parse line-by-line on disk rather than wasting ram. And when I write disk, I mean tape.

To make the chaos complete take into account that there were around 8 different “C” dialects on the market. Just like there are myriads of Basic compilers which all have their own take on what Basic really means.

Education, universities and engineering

So, with the state of the C language in mayhem, competing dialects, compilers, calling conventions and so on — a group of people got together to create “a better C” language. I can imagine that trying to tell X number of companies to do as they say was met with little success. Once people have mastered a language they tend to stick with it, it’s always hard to introduce change, especially if you have nothing but an idea on the menu.

So what the pascal group did was to grab the features C had to offer, humanizing the syntax, polling the header back into the unit file (so no external .h file are needed), decide on registry calling convention as standard (hence we have “pascal” calling convention today, even in C# and Java) — and the result was Pascal.

The purpose of humanizing the language (e.g replacing { } with “begin” and “end” keywords) was for good reasons:

  • To improve readability of complex low-level code
  • To make it easier to teach at universities for students with no computing background
  • Take height for the fact that the human brain recognizes words made up of letters, faster than non alphabetical characters  (*1)
  • To better be able to assemble a curriculum fit for tutoring, which was problematic with C due to the large differences in dialect, competing standards and complexity of operators.

[*1]: Actually the brain sees entire words as symbols and are able to recognize and look-up it’s relevance and meaning almost instantaneously. Whereas non characters like “{” or “}” require the brain to include the characters before and after in order to deduce it’s context before looking it up. In short: The brain reads human words faster than glyphs.

The result of many years of hard work was Pascal, designed to be a better C without the limitations which haunts C to this very day. The results should speak for itself: for 30 years Pascal code has outperformed C in almost every aspect of programming. During the 80’s and 90’s Pascal was the language of choice for game and system developers, especially since Pascal has always supported inline-assembler.

Just like C, Pascal has been uses to create operative systems from scratch. Recognized by all for its simplicity, its rigid structure, it’s efficiency and most importantly: it’s productivity!

Let’s go back to the beginning

Before we look at object pascal today, let’s go back to the early days. Back when there were at least 8 different C compilers (not to mention a few open-source, free compilers available as well) and there really was no control or standard at all.

So, in 1978 Dennis Richie and Brian Kernighan published a book called “The C programming language”. A lot of kids these days seem to believe that this book marks the beginning of C, and that it sort of defines the language from beginning to end. Sadly that is not true, I wish it had been true, but it’s not.

When Dennis and Brian wrote that book the C language was in mayhem. There was no standard at all, nothing to say what was C and what was Basic or BCPL. There was no organization which owned C and with all those different compilers on the market, each of them different, each of them unable or unwilling to support the other — something had to be done.

Hence the book “The C programming language” was released as an attempt to clean up the mess. That meant creating a standard or subset which all C compilers should support – regardless of their peculiarities. As long as every compiler supported the proposed sub-set, they could call themselves “ISO C compatible” and years later “Ansi C compatible”. Sadly this process took many, many years and the ISO standard was not effective until 1982 or thereabouts.

Object Pascal = C++

Like mentioned above Pascal was a project to create a better C. What people don’t seem to get is that pascal is, underneath the syntax, almost identical to C. Most of the improvements were not binary but rather superficial, a more thought out and easy to read syntax, no need for external header files, support for inline assembler, the use of $ rather than 0x for hexadecimal — essentially superficial changes.

So when people thrash talk Pascal or Object Pascal, they can’t possibly know what they are doing. It is a fact that C++ builder and Delphi shares a common core. This is why you can take .obj files compiled with C++ builder and link them straight into a Delphi project. And you can likewise take a Delphi compiled unit and use that in a C++ builder project.

This should give you some sense of what object pascal is capable of. If you have respect for languages like C/C++ then you should also recognize that Delphi and freepascal is equally worthy of the same respect. The only thing separating the two languages are superficial, syntactical differences. Naturally each language has evolved since the 80’s and 90’s and Delphi have many features which C/C++ lacks (and visa versa). But inside the heart of Delphi beats the same engine which powers C++.

Back it up with facts or be silent

“You cant use delphi, thats just .. you cant”

Why? I hear people utter these statements, but I have yet to hear a good reason as to why? Why can I use Visual C++, C++ builder and even Visual Basic (!!!) to write applications but not Delphi? Since I have outlined that Delphi and C++ builder share the same core, under what pretext should Delphi be banned while C++ is allowed? And who in their right mind would allow Visual Basic, which is a language for children, yet ban the most widely used language in the western hemisphere for the past 30 years? Is there an insanity virus going around?

Let’s be honest: all of these statements are of-course rubbish. Java and C# fan-boys will always tell you that their language is the best, and they fight like cats and dogs between themselves too. So when Borland lost the economic fight against Microsoft, they all had a chance to kick Delphi and C++ builder while they were down for the count. But what company  would really stand a chance against Microsoft?

Microsoft is a company so spiteful and egocentric that it created C# when Sun Microsystems refused to give up control over Java. And just look at the damage C# has done to Java in just a couple of years!

Does that mean that Java is “crap”? Does it mean that C# should be allowed while Java should be banned? Or should we allow Visual Basic but refuse to accept Java? Because that’s the kind of insane thinking we are dealing with here.

Of-course A doesnt exclude the use of B. And had Microsoft really gone after Sun with the intent of destroying them, you know just as well as I do that Sun would be dead and buried — and Java along with it.

So before you start thrash-talking Delphi and Borland and Embarcadero, please do yourself the favor of actually knowing what you talk about. Because to people who know several languages, people who were developers 20 and 30 years ago, you sound like a complete moron. Especially when you say that Delphi is old, or Delphi is just “this” or “that” like a child lobbying for his favorite soccer team. At least have the wits to add why you believe Delphi is crap, and then investigate if that notion is fact or fiction.

Did Borland get their asses kicked by Microsoft? Yes they did. Just like Netscape did and thousands of other companies over the years.

Is Delphi dead? Absolutely not! It’s used by thousands of high-end companies on a daily basis all around the world. In fact since Borland sold it’s R&D department to Embarcadero the language has once again caught up with C++, and the user base is growing! It goes without saying that when Microsoft stole the lead developer and inventor of the product, and essentially left Borland to the volves that development stopped for a while. But that was years ago and its ancient history.

And just like C++ compiled Delphi has no dependencies. You don’t need to install a truckload of DLL files to execute your programs. They are native assembly code so they run much faster than Java and C# (roughly 30% faster than C# JIT code). So what makes more sense? Ignoring Delphi and keep using C# for high-priority servers? Or be smart and use Delphi to get that extra speed boost. 30% means a lot when dealing with millions of records per day, yet I see companies falling for the hype and picking C#, only to be haunted by more problems than I care to list.

And you also get to use freepascal absolutely free. You can compile your programs for Linux, Macintosh, Windows — you can target Nintendo, XBox and Playstation. You can target iPhone and Android devices — and even a few novel operating systems like QNX, Embedded DOS, AROS, MorphOS and Amiga OS (although dont hold your breath if you plan to make money on Amiga these days).

And then there is experience and coverage. It goes without saying that a language which spans back to the early days of C++ has gone through some vigorous tests and stood the test of time! Delphi as a product comes with a broad background and public library of code for almost everything under the sun. And the Delphi codebase is still growing!  Why should your company pay millions to hire people to re-invent the wheel in Java or C# when you can get an experienced Delphi developer to deliver faster solutions using code which has been running successfully for a decade?

Think about that for a while before you give in to weak-minded mantra of “mine is better than yours”, because odds are your language of preference can quickly find itself in a similar state a few years from now. Besides — a programming language represents a school of thought, and just look at the hundreds of thousands of software titles created using Delphi. Look at the millions of software problems Delphi has helped solve! To deny that is to quite frankly be thoughtless. Wisdom and knowledge is valid, no matter what language is used to express it.

Advertisements
  1. May 23, 2015 at 1:37 am

    Three reasons Jon.

    1. Dumb Football Team Follower syndrome.

    “My team is the greatest team in the history of the universe, and we’re going to make mince meat out of all you other teams (some sunny day).

    2. Laziness and Greed.

    “I don’t really want to spend time learning new stuff. There are heaps of good jobs for C#. I can get a good job anywhere with my current skills. So shut up all you dudes who are advocating the benefits of some other tool chain.”

    3. Vendor track record.

    Borland started out brilliantly, but the stench from it’s rotting corpse still lingers in the nostrils of older developers to this very day. And from a marketing perspective, I don’t think Embarcadero exactly cover themselves in glory. Mostly I think we get mired by the “Football Follower” association ourselves (because there are so many Delphi proponents who are a lot less than objective, screaming “blahh, blahh Delphi is great” to every dude in earshot – including the Dude delivering the pizzas).

    Personally I think the only way to go is to keep the mouth shut, let the results speak for themselves, and hope that you have good managers who form opinions based on technical outcomes.

    • Jon Lennart Aasenden
      May 23, 2015 at 4:20 am

      Hi!

      >>”stench from it’s rotting corpse still lingers in the nostrils”

      Well, I have used Delphi since the beginning and to be honest I was never really affected by what happened to Borland. I guess if you like in the US and depend on every single new feature in order to make a living, then that would be different.

      So for me personally the death of Borland meant nothing except that two years later I noticed that less and less people were supporting it.

      I guess that really is the real reason here. People were so sure that Delphi’s owners were dead that they deserted it by the truckload. And now that they have abandoned it, it will probably take some time to get them back.

      But that part is really not the issue here. The real issue is what to do with all the false rumors. Because even if I had a grudge with Borland, that has nothing to do with object pascal as a language.

  2. May 23, 2015 at 9:35 am

    Swing Riots:) Ask a developer if 1000 men building a road with pickaxes and shovels is the better idea. The Delphi guy is the one with the digger. That’s the point.

    People will tell. Oh you can never care such a beautiful code in stone with a digger. The Delphi guy will think, we just build roads – it’s not our job to drive.

    If you think of humans it’s wise to think about emotions. Getting to know a technology is split into different phases. You arrive at the beach and have no idea but lots of fun. Then you walk into a dessert until you reach the end the of the desert and arrive at a big ocean and you start to dive into an amazingly huge pool of insight and awareness.

    The Delphi Ecosystem is an oasis in the middle of the desert. I call it the comfort zone. i will not elaborate that further. Imo overcoming the barren run binds the developer to the technology or brand

    Computer Science was not invented to lay the solid foundation for application development. Computer Science is about equality offered to everyone allowing the individual to benefit from information.

    Robert Horbury-Smith – Laziness and Greed
    One could complain that EMB are widening the comfort-zone. It’s not the Delphi programmers problem that technologies like Java, C# and C++ fairly do offer anything but a saloon while the developers who choose for that path does not experience any convenience. One day people will have to leave the comfort zone … It’s not wise to expect from EMB to expand the oasis of wisdom to the beach welcoming the developer to the ocean of insight and awareness.

    Imo people who started on a different platform should not judge on something they don’t know. C#, C++ and Java (somehow) are sink or swim in a desert.

    I am not sure if the majority of the developers who started on C# and Java do really experience a deep dive into the ocean of insight and awareness or simply do perceive the picture of a fata-morgana on the horizon of missing productivity experienced as architecture and design. Customers in general are infected by hypes … or strange dellusion. A programmer who can develop using the ‘complicated’ Facebook API must be clever. The ape biting the bigger banana is still knocking with a stick on a coconut in order to open it. There is no relation … Too many myths have been spread by vendors and developers participating their ECO systems accompanied by developers trying to position themselves as a star in a pyramid … In the end all those people end up here – watch?v=0KSOMA3QBU0

  3. May 23, 2015 at 12:46 pm

    It remembers the first slides of my presentation last year at BeDelphi.

    They did make the audience react, AFAIR. 😉

  4. May 23, 2015 at 4:12 pm

    I think the reason you hear this inside organizations is because there is a strong tendency to avoid ADDING any new implementation language to the List of Approved Languages for that organization.

    If you proposed starting a new project in ANY language other than the approved set, you will get lots of specious reasoning. The real reason that they have underneath it is:

    i. organization/individual doesn’t want to further stretch themselves out, requiring more tools to install, update, upgrade, or own, to learn, to troubleshoot, and to support.

    ii. existing tools and languages work fine for their purposes.

    Would you react any more rationally to someone who suggested that you should learn something new? If you went into a 100% Delphi shop, you would get slightly more traction if you suggested “lets’ move to C#” (because C# is such a huge 500 pound canary) but only slightly. Delphi shops tend to be of two flavors; Delphi 4 ever and “We can’t wait to dump this Legacy Stuff” shops. I think the latter are idiots, but there’s no denying there are shops that are trying to escape their legacy codebases. They believe the Grass is Greener somewhere else. The whole thing could kill their company or their product. Rewrites kill. But some people need to believe a convenient lie (if we could only escape our legacy codebase, all our problems will be over). Such teams tend to make a mess in ANY language. Blaming Delphi is an unfair phenomenon, not based on the facts. But it happens.

    Some of the blame for the “Delphi is legacy” issue came from some stupid selfish Borland salesmen who went around telling Delphi customers that Delphi was dead and they should move to Java. Why? Because they got paid for every JBuilder sale and got paid nothing for Delphi sales.

    Warren

  5. May 24, 2015 at 1:53 am

    I’ve read somewhere that a god figure Linus Torvalds wrote on the subject of Pascal being unsuitable as a modern language. Talking about linux and POV, something I still like is kylix, but I don’t understand is Why add such ridiculous pricetag to the IDE?

    Kylix IDE is 99.99% dead, but still usable with with crosskylix tool.

    a. Its compilation is instant – whereas FPC is long to compile.
    b. It is excellent for server side, are faster than FPC – based on the regression tests.
    c. It has still a better compiler than FPC, resulting executables size and memory use.
    d. If the code works with Delphi 7, it will certainly work with Kylix since it shares the same compiler and RTL, whereas FPC is compatible, but not the same.

    there is a Linux compiler in the official Embarcadero roadmap: so I hope that this one will should be closer to Kylix than FPC. This product should be a server oriented tool.

  6. May 24, 2015 at 3:42 am

    I learnt TP 7.0 when I was in university. Started using delphi since 1.0. I built my it business from delphi and runs quite well until now. It is a kiosk company with only 1delphi developer (it is me). Delphi is very good for kiosk application. I must say it is our secret weapon, I can get the job done quickly.

    Anyway, It is very hard to find other developers to join the team. Most of recent graduates like C#, Java, no one know delphi and don’t want to risk their career with it.

  7. Jon Lennart Aasenden
    May 24, 2015 at 12:13 pm

    What i find odd is that — who only knows one language? My favorite language is without a doubt object pascal. This is the language i prefer to build systems with. But I also have to do JavaScript, and sometimes I also need to get my hands dirty with C#.
    So it’s just such an infantile mentality to attack one language with tooth and claw like some people do.

    If you have a situation where you need the best performance, the faster the better, then using a language which provides that should be the first priority. I felt my stomach turn when I was asked to write a server in C# for a project a while back — knowing full well that this server no matter how you wrote it, would never run as fast as a Delphi based server. And then having to attend meeting where people debate how they can make it faster, where the bottleneck is, trying desperately to find someone to blame .. I just wanted to stand up and tell them the truth:

    “You utter nitwits. The problem is not the programmer, or the database, or the database guy or the network guy. The problem is that you insist on using a language which runs at 70% of the speed of real languages. You handle over a million records a day, yet you insist on turning led into gold, believing that some magic trick will help you out. If any blame is to be given, you can bend over and take it yourself, because it’s your own infantile view of reality which is at the root of this — and if you want to get the best product, then for fuck sake wake up and let me do what I’m good at!!!”

    Yet the very mention of Delphi or FPC, heck even nodeJS with Smart Mobile Studio would outperform their own stuff, but the very mention of object pascal was like pissing in church. I have never been more glad than when I asked to be transferred to the Delphi team, because the head of my department was a complete C# fan-boy ass hat.

    C# does have it’s positive sides. For me it’s a tool I keep in my toolbox.
    But no matter how little I needed that tool — I would never go out and treat it like a second rate citizen, or be negative to people who find it useful. Thats just lack of mental scope.

    A programming language represents a school of thought, a way of viewing and interacting with technical issues. A language is essentially a means to describe function and form. It goes without saying that in a world as complex and diverse as our reality is — that no single language is able to cover all aspects of it.

    It’s like that movie, “lost in translation”. There are subtle aspects of english for instance that I as a Norwegian dont pick up. There will likewise be aspects of norwegian which cannot be verbatim translated to english. This is because language as an expression is rooted in a way of being. A way of life. And programming languages are the same. They are rooted in a way to approach technical problems and describing technical solutions.

    The “Delphi” way is a way which includes inline assembly. This is there because to a delphi programmer, being able to interact with the CPU at that level is important. You wont find that in C# because the philosophy of C# is to abstract the programmer as much as possible from the hardware. So these are two diametrically opposed world-views which at some level is utterly incompatible.

    But by just looking at that, the regard for assembler, we already see that Delphi and object pascal in general, places emphasis on speed. Speed and efficiency all the way down to assembly is a part of object pascal’s armory and toolbox to solve problems. C# doesnt have this nor does Java. They emphasize portability as more important than efficiency. Yet no matter how you throw the dice, Java and C# will never be as fast as hand optimized machine code (for those that know that). Delphi will always outperform these languages in specialized solutions — although I must admit that the Delphi compiler could use with a good update in the code optimization department.

  8. Jon Lennart Aasenden
    May 24, 2015 at 12:26 pm

    And i also want to add to this, the importance of Embarcadero keeping their eyes on the ball. We need stuff like LLVM in our armory because (like I have described above) it is a natural aspect of speed. LLVM allows us to optimize the code which we dont hand-forge in assembler. It allows our programs to run as fast as non-humanly possible on the target platform. At the moment Java and C# is making use of this to catch up with native languages. You can only imagine how fast a native language will be when deploying the same technology. There will be no competition when it comes to speed at that point.

    A second point which is likewise important, perhaps even more so, is to start spreading the spores of our language. One of the cornerstone ideas regarding Smart Mobile Studio, is to get object pascal out there! You may not use Delphi but if you learn object pascal through Smart, Freepascal or whatnot — then moving to Delphi will be the next logical step.

    There are thousands of kids, if not hundreds of thousands, which have no clue how Visual Studio works. But they know C# through Unity-3d!
    This is exactly what I proposed to Embarcadero a few years back — help us! Support us financially to create products which helps us to spread object pascal. We have stuff like pascal script, DWScript (which we based smart mobile studio on) and god only knows how many side-products available.
    We have synedit and hundreds of pre-fabricated editors, from TMS to Elevate.
    I cannot underline how important it is for Embarcadero to push money into this – because the investment will come back a hundred fold.

    It’s perhaps odd, but InnoSetup has done more for object pascal as a third-party product, than any other product out there. Not even Smart Mobile can touch the influence innoSetup has helped created around the language.

  9. May 24, 2015 at 5:21 pm

    When we used Python 15 years ago people told us – you are nuts. Anyway the reason for putting the blame to anyone else in the cases you mentioned is simply a result from the idea of layered IT organizations. I have been hearing the complaints you mention too often.

    The major reason for people to move to Java and C#.net was that a great opportunity arose to move away from GUI towards server programming in order not have to cope with users and their support requests anymore. The strategy was and very likely still is to report the error where it occurred. That’s the GUI.

    The question is then – how well is the organization implemented.

    • May 24, 2015 at 5:26 pm

      I would never put the blame on the language or the technology in a first place.

      • Jon Lennart Aasenden
        May 25, 2015 at 1:14 pm

        Thats different, python is crap. LOL! Just kidding. You are 100% right. Language is just a means to an end. In many cases python is a better solution than say, c++. In other cases c++ or fpc is the optimal solution. And in other cases, more complex perhaps, both can be used in combination for better results.

  10. May 27, 2015 at 2:34 pm

    Well let’s see…

    I gave up with Delphi after the mess that was Kylix. It had so much promise but never delivered. CLX was buggy, I reported bugs and nada.

    I surface every now and then and try out Delphi XEn. Last one I bought was XE2. Ho hum.
    FMX was buggy. I’m trying out XE8 now but I’m dubious. Should I pay the high cost and try cross platform work for Android? I already have Xamarin for Android, so… why?

    You see, the sellers of Delphi left me with a rotten taste in my mouth.

    I was reluctant to use C# but I know a good language when I see one. Going back to Delphi feels like turning back the clock to a bygone age.

    Having said that, VCL was a masterpiece. I’m still finding WPF with C# can be problematic. A tree control without multiple selection? STILL not available in WPF. Sigh…

    • Jon Lennart Aasenden
      June 1, 2015 at 9:14 am

      I hear ya! I almost gave up myself. I jumped head-first into C# and found mono to be quite plesent to work with (still do). And I have worked as a professional C# developer for roughly 7 months now. But thankfully im looking for a Delphi job again, because .. well it depends on how you work perhaps, but for me Delphi is a better language. My work typically take place from low to medium level. Writing frameworks, automata, system drivers — all the way up to a nice GUI. And it’s this wide scope which for me makes Delphi (or FPC) such valuable tools. C# can be used to deliver the same, but the dependencies are just stupendous.
      Try coding low-level stuff for an embedded board with 512mb ram and you will quickly find out that C# has it’s limitations. But a FPC compiled program can thrive in such a small environment.

      The best way to think about these things, in my humble view, are like tools. In my toolbox I have C#, Delphi, a bit of C/C++, heck i even learned some python recently! So i’m not that fanatical any more 🙂

  11. May 28, 2015 at 5:06 am

    Actually Pascal was developed to teach programming and to force programmers to think systematically so to actually it was a toy language right from its conception. Period.

    • Jon Lennart Aasenden
      June 1, 2015 at 9:09 am

      That is partly true. On of it’s syntactical points was exactly that – to ensure that it could be easily adapted to education. But that was just one aspect of the creation

  12. May 28, 2015 at 7:04 am

    I had this problem in my workplace too – C programmers condemning Delphi which really irritates me. I’m the only one programming in Delphi (since version 3) – the rest in C/C++/C#/PHP/JAVA. We are doing R&D in ARM based hardware and testers for Electronics Manufacturing Sectors. I will write in C using Keil for my ARM hardware. I can also use MikroPascal which is another IDE which can compile codes for ARM microprocessors and as its name implied – YES, it is Pascal based. But that program has too many bugs in it which I have to avoid using it. Other than getting the firmware up for the hardware in C, almost all my programming are in Delphi. From user interface, controls, datalogging, data analysing, hardware control frontend, etc, etc.. My other colleagues who uses C always tried their best to condemn Delphi, at times will complain to my manager that Delphi programs will be hard to maintain if i were to resign from here and my manager warns me to do my next program using C#. They never even give Delphi a chance. They only condemn and highly praise their own C programs – which many of their C programs are just like small utility helper program which only has 1 or 2 functions – LOL. None has ever built a full feature rich tester software like what i have done for the company which features graphing, analysis and lots of functions just like what we have in a Digital Oscilloscope – all by myself using Delphi alone! Those C programmers only brags and at the end of the day, nothing worth seeing came out of their compilers. And the fact that before i join this company, I have heard from the other departments that our R&D department always delay in our projects (testers) and never once on time. Even once in a blue moon they are on time but still software not usable because of the many bugs. LOL. Till today which is my 3rd year in the company, I am still using Delphi for my projects and my manager never breathe another word about it because all my projects are delivered on time and most importantly I have always write software that exceeds our customers expectation!! And I have just heard from my manager that one of our France customer wants to buy one of the tester software that I wrote to be implement at their R&D over there. Till today, those C programmers still trying very hard to do their best to oust Delphi. But too bad, their luck are just not with them!
    Cheers 🙂

  13. July 27, 2016 at 10:34 pm

    People are mediocre,at least the vast majority of them,So they repeat what the gurus tell them to say.
    Who Said Gisele Bundchen was beautiful? She has a nose bigger than my foot.
    But here in Brazil ,She´s considered the most beautifull girl of the world,because the television says that.
    Also Java was free,So it became popular,and if its popular its better than anything else,because if 1.000 people tell a lie it becomes the truth.
    I´m switching to C# because now its free,and because in Brazil they pay better for C# programmers than to Delphi ones,Even though I don´t see any real technological advantage in doing so.

  14. October 18, 2016 at 11:59 am

    I have been coding Delphi for 21 years now, and some years before that i worked with Turbo/Borland Pascal. Delphi was the first RAD tool, and at the time the first version was released in 1995 all competitive programming languages looked like a hundred years old, instantly. Since then companies like Microsoft tried to keep up, and failed many times. Especially Microsoft played it dirty because their Visual Basic product was far inferior compared to Borland’s Delphi. It was even clear that Microsoft itself did not commit to its own product when they released an windows application on CD-rom in 1996 to illustrate a Roadmap to Visual Basic’s future. That application was written in Delphi (!)

    Microsoft bought/stole 32 of Borland’s employees and eventually hired the chief architect of Delphi so they could work on a new language (C#) that would pull developers back to Microsoft and lock them in. During the lawsuits that followed Microsoft was smart enough to offer a deal to Borland that included paying them millions of dollars and in turn an commitment from Borland to drop win32 Delphi and develop an dotnet Delphi variant. Delphi 8 was the turning point for Delphi and Borland, in a very negative way.

    There are still a lot of companies using Delphi today. As a contractor (specialized in Delphi) i was never a single day out of work. But almost every company that i have encountered the last 10 years is planing to drop Delphi and go for C#. And the reason is always the same. It it very difficult to find experienced Delphi developers these days. Delphi is very expensive and young people simply have no way to get in touch with it. Pascal / Delphi is no longer used to teach programming and no free (limited) version is available.

    So Delphi dies because the developers are getting old, not because Delphi is getting old. That’s a shame because Delphi is still one of the most productive and stable program languages in the world. I have seen companies with a product written in Delphi and maintained by only one developer, a product that encapsulates the whole business model and revenue. And at the same time they hire 5 to 15 C# developers to rewrite the software. With a failure rate of 5 out of 5 i can conclude that Delphi developers are so productive that rewriting all functionality in C# is nearly an impossible task. Certainly if you take application performance into account.

    Companies get big with solutions built with Delphi, and then waste millions in attempt to rewrite perfectly good code into C#. A client of mine has its core product maintained by one Delphi developer. It contains of roughly 7 millions lines of code. They intended to rewrite it with 3 C# developers within 2 years. That was 11 years ago. Today they have 15 C# developers working full-time, it supposed to be 70% ready but the performance of the application is so bad that it is unworkable and they still need the Delphi application to ensure business continuity. That is: the one Delphi developer is generating the revenue to keep the business and its C# developers running.

    Of course, in this company the C# engineers hate Delphi. They even blame it for their own failures. But the simple fact is that developers that only know C# are just not equipped enough to really understand Object Pascal code.

    C# is big because you need 5 times more developers to get the job done. That’s big business, for recruiters and managers. They push it like it’s the holy grail of software development. Personally i do not hate C# or any other language. It’s just another tool in the box, but i hardly ever find a reason to use it. Delphi has it all.

  15. December 1, 2016 at 4:46 am

    Almost all of the things you mention as a pro of delphi over C#/Java etc are valid or C++. C++ has a larger following so why would you use delphi over c++ ? What does it do better?

    • December 2, 2016 at 6:59 pm

      C/C++ and Delphi are the same. In fact, Delphi has the same codegen that C++ builder uses, its just the parser/lexer/syntax layer that is different. And naturally the standard library (or mini-rtl that is always present) for object pascal is more efficient than that of C/C++. But there can be no argument that C/C++ has seen far more work and has evolved more over the past couple of decades. This largely driven by the GNU foundation and financed by large corporations. Object Pascal delivers more or less the same but with only scraps in terms of financial motivation. So a 1:1 comparison language wise would be a stale-mate, but financially C/C++ is on another planet all together.

      It is not so much what Delphi is better at, as how a programmer interact with code, how you go about modeling a solution, and ultimately how the language expose its features. Each programming language can be regarded as a modus-operandi, a way of thinking and approaching a problem – and consequently how you go about describing the solution.
      The only thing C++ supports that object pascal does not, is multiple ancestor inheritance. But that is rarely used by C++ developers anyways, so no loss there.
      Having said that there are plenty of language features object pascal gives you that C++ does not have out of the box. Like sets and actions (which has only recently been added to C# and Windows Forms). Embarcadero C++ builder gives you these things naturally, but they are not defined in any ISO standard for C/C++ to my knowledge.

      There are only 3 archetypical languages in the world: assembly, C/C++ and object pascal. These are the only languages that are capable of compiling themselves and that generates machine code directly with no dependency on a runtime executable or similar (php, python, rust, C# and most languages cannot exist unless a small C bootstrap implements the fundamental methods/classes and dependencies). These languages are also archetypical because they target how a computer “actually work”, as opposed to behavior delivered by the operative system (read: man made environment, not how CPU’s work which is often not user-friendly).

      Object Pascal was designed to replace C/C++ and as such it is better implemented. C/C++ still have header and implementation separated (.h, .c files) which is a throwback to the 60’s and unix mainframes. Object pascal allows you to write both interface and implementation in the same file. Saving a lot of time.

      I use plenty of languages in my line of work, C being one of my favorites – but for rock solid applications and services, nothing beats Delphi or FreePascal in terms of productivity. So I guess I would define that as it’s best feature.

      • December 2, 2016 at 8:35 pm

        What about modern ui design. Does Delphi have libraries that allow you to build something as pretty as wpf? Does it have a modern ui designer?

        • December 3, 2016 at 12:16 am

          You have several. Delphi has two aspects now: The Windows only VCL framework which has theme support (and also plenty of libraries for more graphical bling). The second is FMX (Firemonkey) which is also style based and platform independent. So you can compile for Windows, OS X, Linux Server, iOS and Android. FMX uses the GPU to render graphics, but you are free to use whatever theme the operative system has active (which is good, some times skinning can look weird on Mac’s for instance).

          But there are also a ton of libraries that you can use, like MVC. And some pretty cool designers that is more or less identical to GTK on linux. Point is, if you need it, you can code it. Or just buy a package that delivers it.

          Like I said, its the same codegen and system that powers C++ builder. Its only the syntax that is different.
          You can even link C++ .lib /.obj files directly, and visa versa. Object Pascal and C++ is ultimately the same thing, the same codegen, the same linker — its just syntax that is different.
          You can write your own operative system if you like (check out http://www.ultibo.org for embedded work).
          Just go to Embarcadero’s website and read a bit about it: https://www.embarcadero.com/products/delphi

  16. February 9, 2017 at 1:49 pm

    I’ve used to make good fortune selling my software, written in Delphi like 10 or 15 years ago. Eventually, I’ve gave up. Had to wait for Unicode for years, had to way for somehow proper JSON serialization/deserialization for years, Had to wait for somehow stable IDE for even more years. Bugs not fixed for years, decades old and (really bad) memory manager, compiler producing highly stupid asm, Generics implementation was a joke, 3th party vendors shutting down, weak community, etc.

    I’ve no clear picture how it is evolving since XE2 so maybe things improved? I doubt though. And I’m failing to see how/where it can compete. On the mobile scene Xamarin is free, Android Studio is free. Plus both tools are years ahead. On the Windows Desktop/Store… VS is free, there is UWP now, with .NET native – write once, run it on everything Windows 10. On the server side… everything is free and open sourced – the whole MS stack is open sourced, fast moving forward, and with .NET Code runs on Windows Linux and Mac.

    Really, it is hard to find a niche/use case/business case where Delphi can fit nowadays.

  1. No trackbacks yet.

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: