Delphi and Productivity

If you haven’t seen Gabr’s latest post about Delphi language features, it’s worth looking at. I don’t agree with everything he posted, but he’s got some good points.

But he’s also got some annoying problems in the comments department.  Some obnoxious troll is spamming up almost half of the (extremely large) set of comments under the post with a bunch of preaching about how Python is soooo much better than Delphi because it’s less verbose.  His thesis seems to be that since you can write equivalent functionality with (as he claims) one-tenth the lines of code, that Python is ten times more productive than Delphi.

This is nonsense, of course, but it’s the most dangerous type of nonsense: the kind that not only looks true on the surface, but still looks true when you begin to dig a little, and doesn’t blow up in your face until you’re deep into the subject.  Don’t get me wrong, I like Python, and it’s good at what it does, but “what it does” is not building serious software.  There’s a reason why no one is writing big, complex programs in dynamically typed scripting languages.  There are several, actually, but one of the big ones is that they’re no good at handling high levels of complexity.

And I can prove it.  You see, I work for WideOrbit.  We do control and scheduling software for broadcast media, and we’re the market leader (by a huge margin) in the USA, and not doing too badly internationally either.  Our software runs ABC, NBC, Fox, DTV, and over 300 broadcasters with more than 3 letters.  If you listen to the radio or watch TV in the United States, there’s a very good chance that the station is running on software I helped write.  And we do it in Delphi.

WideOrbit has been around for about 13 years.  I’m on the team that develops and maintains our flagship product, WOTraffic.  It has less than 20 developers, and we’ve been growing.  Therefore, if Python is 10 times more productive than Delphi, a handful of Python developers ought to be able to create a product that’s on par with WOTraffic and able to start taking our clients away in a year and change.

It’s a very lucrative business.  Contracts for WOTraffic can cost a network millions or even tens of millions of dollars over a period of a few years, and we’ve got hundreds of those contracts.  If someone could take less than two years to bring to market a product that’s as good as WOTraffic and costs significantly less to develop, they’d be able to undercut our prices by a very attractive margin and still end up with a nice fat bank account.  It’s an excellent opportunity for some enterprising developer… right?

I’d like to see anyone try, though. 😉

The main reason we’ve come out of nowhere in the last decade and eaten the lunch of all the entrenched competitors is because we’re using Delphi.  We’re able to build out new features and respond to bug reports very quickly, and the clients love it.  It’s simply far more productive at large-scale, non-trivial tasks than anything anyone else is using–and some of our competitors are using the much-vaunted “more modern languages”–and anyone who would like to demonstrate otherwise is free to try.  See if you can win even one client away from us by Q3 2015.

On the other hand, if anyone’s interested in actually being successful in that area, WideOrbit is currently hiring Delphi developers.  Drop me an email if you’re looking, and I’ll see if I can get you an interview.

13 Comments

  1. meg says:

    So you’re saying because market leading product A is built with language B all other languages are not up to the task? Like Windows is best because it has the biggest market share? Then what about any other market leading product not built with Delphi? Wouldn’t all those products invalidate your point?
    I think this post isn’t dangerous nonsense because one doesn’t have to dig deep. Not sure if you’re trolling though. Sorry, if I sound like ranting. I really like Delphi. But providing one example doesn’t “prove” anything.

    • Arioch says:

      He’s not arguing “Delphi is best”. He’s arguing “Strong-typed languages are the best”

      So, to invalidate his point you’re to show that say at least 25% of large market-leading programs were written with untyped languages

  2. Jolyon Smith says:

    First up, I’ve not seen the Python trolling in the thread you mention and I’m not defending or making any other argument for or against Delphi, simply making an observation.

    Which is that I think you have reasoned yourself to a not quite a valid conclusion. Someone wishing to win customers from you would have to have a product at least as capable as yours. You have 13 years of development “in the can” which a competitor has to catch up with. Plus you have inertia – not to mention domain expertise – on your side. Any competitor not only has to be as good as or even better than you but *significantly* better by some measure (be that cheaper or more capable).

    One thing that history does teach us though is that very often companies that believe they hold an unassailable position in their field can come unstuck, and do, surprisingly regularly. Size and success only provides protection against complacency up to a point.

    You might find this an interesting read: http://www.amazon.com/The-Innovators-Dilemma-Revolutionary-Business/dp/0062060244

    • Mason Wheeler says:

      I know. That’s why I tried to be as realistic as I can while still taking the ridiculous claim at face value.

      I know how good our software is. One time, a prospective client was trying to decide between WOTraffic and the best of our competitors that they could find, so they organized a stress test: have both systems try to process a month’s worth of data as fast as possible. WOTraffic finished in about 45 minutes. The competitor churned at it for about 4 hours, and then crashed. Simply put, we’re light-years ahead of the competition, and yet our status is still “market leader” and not anywhere near “monopolist.”

      WideOrbit *is* one of those “revolutionary businesses” that’s eating all of the unassailable giants’ lunches. So I’m not saying that a successful competitor would have to duplicate our success in 2 years; just make something good enough that they could entice one single client away from us.

      I still don’t believe it’s possible.

  3. Yogi Yang says:

    This: “This is nonsense, of course, but it’s the most dangerous type of nonsense: the kind that not only looks true on the surface, but still looks true when you begin to dig a little, and doesn’t blow up in your face until you’re deep into the subject. Don’t get me wrong, I like Python, and it’s good at what it does, but “what it does” is not building serious software. There’s a reason why no one is writing big, complex programs in dynamically typed scripting languages. There are several, actually, but one of the big ones is that they’re no good at handling high levels of complexity.”

    IS A BOLD STATEMENT.

    And half true. It seems you are now aware about good software written in Python. I develop in Python off and on and am an expert at customizing OpenERP which is written totally in Python! In fact I can go to a length to say that OpenERP is the only software that supports RAD in the true sense. Building such a behemoth in Delphi would be a night mare at best.

    So the bottom line is that there are many, many serious (I don’t know as to what do you consider serious) software existing which are written in Python. And if we look at the amount of coding required to built serious complex software then it is always much, much less than that which is required in Delphi in spite of the fact that Delphi is a RAD tool.

    Please check before making such bold statements.

    Regards,

    Yogi Yang

  4. Joseph G. Mitzen says:

    >But he’s also got some annoying problems in the comments department. Some obnoxious troll is spamming up almost half
    >of the (extremely large) set of comments under the post with a bunch of preaching about how Python is soooo much better
    >than Delphi because it’s less verbose.

    First of all, you need to refer to me properly, as your Arch Nemesis. 😉 Second, I was discussing, not spamming, and the blog owner hasn’t categorized anything I wrote as such. And I never went on and on about Python being so much better, etc. In an earlier post you referred to Cadillac being a standard by which others are judged. In development languages, C is a segment leader against which execution speed of other languages are judged. And in productivity, Python is considered one of the most productive languages, so it served to illustrate where Delphi is behind.

    Unfortunately, people tend to invest their identity in their tools (moreso with Delphi as it’s an underdog) so people took this as some sort of attack and began trying to ignite a language war rather than staying focused on how we could improve Delphi. Contrast this attitude with Guido Van Rossum’s (creator of Python): when some Ruby people began showing off a bunch of “cool things” they could do and it was brought to his attention, he *agreed*, said it was really cool, Python couldn’t do that, and it would be great if it could. He then designed ways to incorporate the missing features in a way that was consistent with existing functions. Finally he announced that as the subject involved functional programming and iteration, he was going to spend some time with the language leader in that class, Haskell, and see if there were any other useful functions Python was missing and add them too. When this was all done the “itertools” module of Python’s standard library was born.

    It’s not about fighting; it’s about recognizing where we can be better. That means that some other products may be better than Delphi at certain things. Instead of saying “We don’t need that feature anyway” or attacking the other language, we should be a bit more like Guido and start thinking about how to improve our own product rather than throw rocks at someone else’s because we’re jealous. That’s what the blog article was about, before some people felt the need to defend Delphi no matter what and trot out the old dismissal of anything we can’t do as “fads”.

    > His thesis seems to be that since you can write equivalent functionality with (as he claims) one-tenth the lines of
    >code, that Python is ten times more productive than Delphi.
    >This is nonsense, of course,

    This should be good. By the way, were you the anonymous poster who did the completely off-topic attack on Python on the subject of multithreading which was never brought up by anyone? That sure sounded like the same stuff you pulled on the forum the last time we discussed this.

    >but it’s the most dangerous type of nonsense: the kind that not only looks true on the surface, but still looks true
    >when you begin to dig a little,

    And most dangerously of all, stays true unless you employ a logical fallacy to deal with your cognitive dissonance. 😉

    >but “what it does” is not building serious software. There’s a reason why no one is writing big, complex programs in
    >dynamically typed scripting languages.

    Except they are. And you’ve never researched this fact or even spent a second on Google double-checking your belief before posting this article. 🙁 Heck, even the Python.org page is filled with case studies that show just that. Python practically runs Lucasfilm. Reddit is Python. At least at one time, 100% of YouTube was Python. Mercurial is Python. Dropbox (client and server) is Python. New York Stock Exchange uses Python. CERN used it to help hunt for the Higgs Boson. The MMORPG Eve Online is built on Python (which I know I told you on the forum, so your belief did not update when new facts were presented).

    “Python enabled us to create EVE Online, a massive multiplayer game, in record time. The EVE Online server cluster runs over 25,000 simultaneous players in a shared space simulation, most of which is created in Python. The flexibilities of Python have enabled us to quickly improve the game experience based on player feedback,” said Hilmar Veigar Petursson of CCP Games.

    IronPort security systems has over a million lines of Python. OpenERP is written in Python – and ERPs are inarguably big and complex. NASA used it to streamline Space Shuttle missions. I could go on and on and on (and be accused of spamming!). Please don’t dismiss something I wrote as “nonsense” without actually having done any research on the subject. I’ve interviewed many people who have run successful “big, complex” systems with Python.

    >There are several, actually, but one of the big ones is that they’re no good at handling high levels of complexity.

    >And I can prove it.

    And you go on to do no such thing. You don’t discuss a single facet of dynamically typed languages that would justify your position. If you had tried to do that you would have discovered the dearth of hard computer scientific literature on the subject, as well as a handful of existing experiments that lead to the opposite of your conclusion. In fact, you’d learn that even after all this time we still don’t have objective evidence in the literature that object-oriented programming leads to significant levels of code reuse or productivity enhancements! What little is out there failed to find this at the small or medium level and no large level studies exist that I’ve seen.

    >Therefore, if Python is 10 times more productive than Delphi, a handful of Python developers ought to be able to create
    >a product that’s on par with WOTraffic and able to start taking our clients away in a year and change.

    Jolyon dealt with the logical flaw here. I knew a fantastic horse handicapper who wrote a program with his system in BASIC and the #($* thing still runs in DOS! Just because another language is more productive (as would almost any language be) doesn’t mean that random programmers could sit down and write better handicapping software; they would have no domain experts on their team.

    >The main reason we’ve come out of nowhere in the last decade and eaten the lunch of all the entrenched competitors is
    >because we’re using Delphi.

    Please actually prove this point by citing the specific features, unique to Delphi, that allow you to credit it with this success. Otherwise you could claim it’s because someone on the team is named “Mason”.

    >We’re able to build out new features and respond to bug reports very quickly, and the clients love it.

    And perhaps you’d be able to do so more quickly with Python. Do you see the problem with the logic here? You need to discuss this at a much lower level to make a case. You need to provide the why and how to justify the claim.

    >It’s simply far more productive at large-scale, non-trivial tasks than anything anyone else is using

    That’s a claim (unsupported in this essay). Please provide the actual mechanisms that make Delphi far more productive.

    Raymond Hettinger has an entire presentation in which he outlines features unique to Python and how they enhance productivity that he gives to CEOs and CIOs (and keynotes). You need to provide similar to support this.

    Your position is somewhat of an extraordinary claim though as it mandates that the product is the most productive tool in existence but few people have ever noticed this today and some of the biggest companies around such as Google, Amazon, Facebook, Twitter, etc. with some of the smartest people in computers have all missed this too. No one ever lists “Pascal” on lists of the top 3-5 most productive languages. Your claim would also mean that the market saw Delphi, saw its amazing productivity, but then eventually rejected it for C#, Java, etc. Academia also would have had to dump this most amazing language for others and not notice they’d downgraded. In fact, we’d have to claim that languages designed after Delphi have all been inferior to what came before. That would be an extraordinary claim which technically requires extraordinary evidence, but ANY evidence would be a good start. If you’ve truly discovered a statically typed language that’s more productive than dynamically typed languages, including those specifically designed with productivity as their core language feature, you’re guaranteed a paper in your choice of journals and maybe an award from the IEEE or ACM.

    As I’ve mentioned before, I chose the software for a seat-of-the-pants startup in 1995 (founder walked out the door of Company X, founded Company Y the next day with no plan or funding, brought me over a few months later). I used Delphi to quite some success until I left in 2003. We not only took away the biggest account of our former employer, but we went on to gain the business of the 16 other companies their parent owned, which was something our former employer could never do even at more than 6X the size. I called Delphi and Crystal Reports my “Access Killer”, and Delphi was used for internal software, data analysis and commercial software (which was never the intent of the company but eventually became an equal part of its business). I’ll argue at length at what made Delphi the best choice then, and I’ll talk about something the remaining users often seem to forget: that Delphi was sold and marketed as a RAD tool (so many today think it’s a low-level C substitute). After helping 2 other startups choose their software stack in 2012-13 though, I realized Delphi the language had fallen far behind the state of the art in language productivity and came to the conclusion that if I were to do it all over again in 2013 I wouldn’t choose Delphi today as my RAD tool. I’ve also written (very, very) extensively on the specific reasons on the forum, Reddit, some blogs and elsewhere. Right or wrong, I’ve supported my claims. I’ll discuss them again with you if you’re serious, but I don’t really want to play “language wars”. It’s a shame people started to do so and lost the whole point of the blog post in question. There are many, many ways we could improve the Delphi language if we’re willing to give it an honest look and willing to acknowledge the reality of Delphi as reduced to a niche player and be willing to look at its more successful competitors and ask what they’re doing better. If we want to pretend that they’re inferior in all respects to Delphi and any day now everyone else will see that and things will get better, then there’s no hope.

  5. Edn says:

    Mason, I have to say after reading this blog post I’ve just lost all respect for you and anything you say in the future. Any half decent programmer knows that each language has its advantages and disadvantages, you boosting about how Delphi is the de facto language and challenging everyone else to try and steal your clients using another language simply borderlines on retardation and childish behaviour, especially since you are not the sole author of your product( the product that you seem to be promoting here ). That much said I hope that your co-workers are not reading your blog because I would be embarrassed to have someone so short-minded working in the same company.

    After reading your other rant regarding you not receiving your SA Android support with Delphi XE5, I pretty much came to a conclusion that you aren’t a very smart person or at least you don’t read the contracts prior to signing them or get involved with, there-for I think you got what you deserved.

  6. Bruce McGee says:

    @Mason: I agree with you about productivity, but I think you’re stretching to make your point. Delphi is almost certainly a contributing factor to WideOrbit’s success, but not the only one.

    As for trolling, anyone who winds up being this ridiculously verbose to argue that Delphi has more characters than he likes (and some other stuff) is trying way too hard.

  7. Bill Meyer says:

    Mason,

    With all due respect–and I do have great respect for WideOrbit–as someone who has labored many years in the broadcast automation field (in Delphi), I have to say that besides the selection of a good tool, the issue of domain knowledge is a major hurdle for anyone who would attempt to compete. Years before WO started, I did some looking at that side of things, and most stations still had a “traffic lady” who was responsible for the department, was usually a spinster, spoke to almost no one, and if anyone suggested “change” she looked like a deer in the headlights. Hard to mine useful data from such folks.

    That said, I am in no way belittling WO’s accomplishments. And as someone who has used Delphi from the beginning, and TP before that, I stick with it through thick and thin because it does what I need, and is pretty well transparent to my thought processes. I have used C++, as well, but I tend to write C++ in much the same style I write Delphi, which is much more readable, IMHO, than most C++ i have seen elsewhere. So that may only be another argument in favor of Delphi.

    As to Python, I would find it a painful choice for a large system. But then, I would say the same of Java.

  8. David Heffernan says:

    You’ve not proved anything. There’s no evidence that your company’s success is down to dev language choice.

  9. Arioch says:

    They tell, MS Office is written as a VBA script gluing together C++-written COM-components.

    And i’d not say VBA is very string-typed.

    Perhaps the Python can take this niche as well, kind of uber-configuration subsystem.

    PS: btw did you got links to Android development ? perhaps they are left in spam section of your blog

Leave a Reply to meg