[Estimated Reading Time: 3 minutes]

This post is one of those classic double-entendres for which us Brits are (in)famous, involving as it does both an actual Pain In The Butt and a euphemistic one.

I have been incapacitated recently by a sudden onset of sciatica caused – so my physio seems to think – by “Piriformis Syndrome“. Basically a result (he thinks – without an MRI it is impossible to be sure) of the way my sciatic nerve is routed under or possibly through a muscle in my butt, click here to read more about this wonderful condition. Nope, so rather than the “classic” spinal injury normally associated with sciatica (herniated disc etc).

Certainly I know I pulled something in my butt a couple of months ago (just moving some not very heavy boxes and over-extending slightly) and had been hobbling around with a sore hip which got variously better and worse ever since. I then woke up almost two weeks ago in deblitating agony – literally unable to stand, let alone walk.

This actually had me in hospital on IV morphine for a couple of days, but thankfully recovery is proving quite rapid, and I am gradually resuming my normal activities.

On that score I decided to pick up the CFFTPSample porting project I embarked on a few weeks ago, specifically with a view to tackling the step of getting an iOS environment up and running with Delphi XE2.

Quite simply, I gave up.

I have had quite enough actual pain in my butt in recent weeks – I don’t need any more, euphemistic or otherwise.

[Actually in the interests of medical accuracy, although the cause of my recent actual pain was located in my butt, the symptoms were actually felt primarily in my lower leg – constant, excruciating severe cramping of the muscles in my leg from the knee down to my toes.]

I only got as far as trying to install the FireMonkey for iOS libraries and when it refused because I didn’t have the right versions of iOS (demanding 4.2 or 4.3 – I have the latest Xcode and iOS 5.1 SDK) this was enough for me.

If it doesn’t “just work” then it might as well not work at all.

Delphi – in the form currently delivered in XE2 – is in my view simply unusable for serious iOS development.

Knowing from others how much trouble they had getting things up and running in this area (without, as far as I know having run in to such early hurdles), quite simply I have too many other things of interest to waste my time fighting with Embarcadero’s hacks and work-arounds trying to get something up and running that will no doubt fall over at the very next Delphi, Xcode or iOS update.

If they deliver something which is less of a hack, more stable and much easier to get up and running in XE3 then I might revisit it, but at the moment I feel my time in these areas is better spent learning Objective-C.

Embarcadero seriously dropped the ball on this one. No matter how “clever” they thought they were being (riding in to town on the coat-tails of the efforts of the FPC community!!) and shoe-horning their rushed FireMonkey solution onto iOS, it certainly isn’t very smart.

XE3 will have to demonstrate some vast improvements in this area, but I find it worrying that with the anniversary of the launch last year in Auckland of XE2 just 4 days away and the usual release window for the next version of Delphi rapidly approaching, we have heard nothing (to my knowledge) significant about the forthcoming release.

Maybe the new “Delphi Evangelists” know something about what is coming.

It’s a bit of a shame that Embarcadero don’t have a “Critical Friend” program. Clearly my evangelism isn’t of the sort they appreciate.

Upon further consideration this post might even represent, therefore, a triple entendre, as “A Pain In The Butt” might reasonably be how Embarcadero perceive me right now. πŸ™‚

103 thoughts on “A Pain In The Butt”

  1. I put huge efforts into FireMonkey this year. Now I am disappointed. Lazarus and Qt are the only real working cross platform GUI solutions at the moment. FireMonkey is alpha software. The functionality of FMX is 10% of Qt.

  2. The wholesale firing just after XE2 was indeed not exactly encouraging (euphemism). FMX started with issues, and the lack of progress on them was also quite depressing, the relatively few updates (compared to what was hinted at) only nibbled at peripheral problems.

    1. “Wholesale firing” – what? And since XE2 shipped we have updated FMX 4 times (and one hotfix) to improve the quality and architecture. Of course there is more to come in future releases (anyone remember how good Java v1, .net v1, VCL v1, Android v1 were?). What other problems and features are you looking for in FMX?

      1. In the last FMX update, glaring issues like the font blurry-ness still haven’t been fixed, and structurally (at the scene graph level), it still has the same original flaws as pointed one year ago.
        And then there are all the “coding horrors” that pepper the source code, that one stumbles upon every time one tries to fix a bug or performance issue FMX…

  3. I’ve given up on Delphi, except for the occasional recreational tweak I make to the ORM I’m writing. I won’t accept any job offers for Delphi and it is doubtful that I’ll bother with the next version at all. Delphi can’t work if there are no real resources devoted to it and judging from what I’ve seen from Embarcadero, they are just your typical bleed-em-dry corporation, that wouldn’t know how to maximize economic profit if their lives depended on it. They only know how to minimize cost, just like Borland before them. I seriously expect Delphi to see only one or two more releases before it is secretly shelved, at which point it will take a few months for third-party vendors and enthusiasts to realize what happened, just like when Kylix was shelved by Borland.

    In a year or two it will just be Nick Hodges and Dr Bob sitting by themselves at a hotel wondering where all the rest of the Delphi faithful are.

      1. “Feel free to pass those jobs onto me!”

        What jobs? I didn’t get a single useable lead on a Delphi job last time I was in the market.

    1. And they’ll be at the hotel attending a seminar by Marco Cantu! Seriously, he’s such a great guy you’d think he’d be diversifying his income a bit and not riding the Delphi train until it’s really down to two developers left.

      I’ve walked away from Delphi as well and I’ve discovered something that has me excited about programming again: Python. Not only is it readable like Delphi, it contains an amazing number of features to reduce development time and it has thousands of libraries – think the good old days when there were thousands of components for Delphi. There are a number of great IDEs (Eric, Spyder, etc.), there are interfaces for Qt so you gain a comprehensive application and GUI framework as well. It runs on essentially every platform and with Qt that means you get a full cross-platform program solution today. For working with numbers you have fantastic libraries like numpy and scipy that almost turn it into a mini-Matlab, pandas which gives the user an amazing data frame that can import from multiple file formats with one line of code, filter, sort, add/delete/hide columns, apply functions to rows or columns, time series data features with moving window functions, etc. SQLAlchemy gives a fantastic higher-level database access that can speak to many database backends and an optional, powerful orm. You can call C or C++ libraries, call R code from python, profile your program and maybe replace the critical parts with FPC-compiled code, etc. Unlike Delphi, used nowhere else, python can be used as a procedural language in the PostgreSQL database, scripting LibreOffice, interfacing with GnuCash accounting software, controlling VirtualBox VM program, and SAGE is a mathematical tour de force that combines almost a hundred open source math-related libraries and uses a python interface to control them all. Oh, and you can access Java libraries and compile to the JVM by using Jython and use the .Net/Mono framework with IronPython. Python is also available on Android.

      While there are commercial IDEs, libraries, etc. the reality is that for most needs one can simply obtain the IDE, python, all of the major python libraries and Qt for free! On Linux it’s as simple as clicking a few checkboxes… in that case you get the OS for free as well. πŸ™‚ In my mind Python is the new Delphi in being a simple to learn, powerful language which can act as the “glue” for thousands of available plug-ins (libraries) to speed up development. It’s also more popular that Delphi was while being cross-platform as well. It’s great to be able to walk into a bookstore and actually find books on the shelves for your computer language of choice again; magazine articles and tutorials about it, *employment opportunities outside the former Soviet Republics*, etc. It’s also controlled by we the community so there’s no company to screw it up, tell us we don’t need 64bit, no Nick Hodges, and the users shape the direction and new features of the language. One can also examine/change the complete code for oneself. I almost feel like a young teenager again when I first discovered Pascal. πŸ™‚

  4. Jolyon, I wish you speed recovery!
    As for features which are not developed quite right I’d like to point out Remote debugger: I couldn’t set it right for breakpoints to work, only exceptions are coming from the remote end. Deploying iterative builds to remote by hand also sucks, if not count possibility of configuring post build actions. Come on Embarcadero devs, how do you think we should test and debug x64 and OS X projects? Please, dog food your own software.
    P.S. I was also trying to figure out how to install FireMonkey for iOS during the eLearning course but gave up doing both.

    1. “Come on Embarcadero devs, how do you think we should test and debug x64 and OS X projects?”. Here are a few answers to help you test and debug your projects:

      1) Unit testing
      2) the Debugger – yes it really works across platforms
      3) Eureka Log
      4) CodeSite
      5) AQTime
      6) Writeln πŸ™‚
      7) Windows Dr Watson

      1. Thank you, unit testing for x64 and OS X platform might be very useful!
        EurekaLog 7 supports x64, not OS X.
        CodeSite supports Win32/Win64/.NET, not OS X.
        AQTime supports Win32/Win64/.NET/Java.
        Yep, Writeln/DebugView, but the latter works on Windows only. Remote debugger server itself would be much more useful if it Writeln something in its console window, would it not?
        Sorry, but I wasn’t able to do step-by-step or breakpoint debugging in Delphi XE even with remote symbols copied to remote computer.

        1. netcat and tail – works on Linux at least and I think on Mac too.

          Had no time to install XE2, wondering how the debugger works over SSH, but I will investigate one day.

          I had a certain success with gdb and SSH with FPC. Just a test.

          1. That’s great, but you both are missing my point entirely πŸ™‚ I meant that there are inconveniences using remote debugging in Delphi:
            1) deploying and running remote debug session
            2) PAServer in its current state is just a blank console window. It would be useful if it shows some information about debug sessions: start, stop, statistics and so on.

  5. Like Inside Embarcadero, I tried to be a “Critical Friend”, in the betas and TeamB private groups but nobody wanted to listen. Their minds were made up on “FireMonkey” (sheesh, what a name) and there was np turnign back.

    When I started agreeing with the adverse comments of users in their public newsgroups, I was promptly evicted from TeamB (phew!)

    Just like with Kylix, they are trying to offer an expensive cross-platform solution for a platform that offers free developer tools.

    What is more, as with their offering for Linux, they are already several versions behind the current Apple SDKs and that is not to mention the latest iOS6 version that Apple-registered devlopers are already playing with and enjoying.

    My advice – stick with Xcode for iOS development πŸ™‚

    1. Hi Joanna. I wish you all the best with XCode. I am still wondering why you spend time on Delphi areas when you clearly don’t care about Delphi? At the same time – all comments are appreciated.

      1. Joanna is very special person πŸ™‚

        Even though she is not a Delphi fan, I very much appreciate her participation in Delphi forums (even when we disagree), giving insights in OSX and iOS development, as well as different POV on cross-platform development.

      2. David, if you and some of the engineers spent more time in the forums helping people get to grips with all the new stuff you are expecting people to use with little to no documentation…

        And, by the way, I put my life and soul into supporting and promoting Delphi, even though I was selected for TeamB for my knowledge of OO design and to support C#Builder – a product that flopped at the first hurdle.

        Believe it or not, EMBT are claiming that they want to see “Delphi everywhere”, which is very hard to imagine when you don’t have people from “everywhere” being allowed to say where other tools are better and what Delphi needs to do to compete.

        I remember you coming over to the UK many years ago for a DevCon conference; you started a conversation with me and, when I started to raise interesting ideas that could benefit Delphi, you blanked me and walked off in the middle of the discussion to talk to someone else.

        Are you really interested in what we, as developers, want or do you simply want us to pay up and shut up?

        1. “I put my life and soul into supporting and promoting Delphi”

          I never saw you promoting Delphi. Not even Delphi.net. Delphi and Object Pascal have their own weaknesses, but you’ve always advocated that iOS/Mac OS tasks should be done in native xCode tools. Not sure how Delphi or EMBT can take any benefit from this “interesting idea”.

          1. Farshad, I was using, supporting and promoting Delphi from D1 through to D7; it was at the time that Delphi.NET came out that the client I was working with could no longer stay with Delphi as they needed a .NET solution. Unlike others who can find work in Delphi, I have to go where the money is and, for the last 7+ years, that money has been in .NET and then Objective-C.

            So far, I have seen nothing in the latest versions of Delphi that gives me reason to switch away from Xcode for OS X and iOS development.

      3. > I am still wondering why you spend time on Delphi areas when you
        >clearly don’t care about Delphi?

        WOW – she only gave a decade of her life to helping support and promote the product for almost nothing in return. Mr. Intersimone, have you been studying at the Nick Hodges school of charm?

        She cares about Delphi because she’s willing to face up to its problems. Senator Franken once wrote that some people love their country like children love their parents – they believe it’s immortal, invincible and perfect. Others love it like adults love their parents – acknowledging their faults and flaws, but loving them in spite of or because or them.

        Simply never saying anything critical about Delphi is simplistic and child-like behavior. When I used to be the main developer of a commercial product, my job was to HATE the product. There were times the CEO had me pretend to be our competition and attempt to come up with the most scathing sales pitch/attack I could dream up, including being allowed to fudge or tell any lie I thought a salesman could get away with. Given his volatile temper, one time I did this so well he forgot what we were doing and began screaming at me! πŸ™‚ But this is how we were able to grab a major client from a firm eight times our size.

        When you refuse to acknowledge any shortcomings, flatly deny any wrong moves ever by Embarcadero, spin the license issue, and take out the cat claws with the beloved (honest) Joanna, you’re not acting professionally, you’re losing all credibility and beginning to sound like the Baghdad Bob of the tech world.

        Joanna’s not the one constantly acting to alienate users, raise prices, deny problems, screw 3rd parties (InstallAware) or say everything’s fine as Delphi continues its slow, agonizing decent into becoming the next COBOL. She cared enough to speak the truth.

    2. Joanna, why don’t you go to apple forums and remain there forever?

  6. Qt has 230+ employees and over 14 years of dev. I guess, FM has 10 employees and 1 year of dev. πŸ™

    1. We used Qt in CLX but back then we had major problems. We looked at and considered using more recent Qt versions when we started the Win/Mac platform development but stopped in favor of merging work done in R&D and KSDev acquisition to create and grow FireMonkey building on top of the native graphics engines of the OS, the GPUs and OpenGL/OpenGLES. If you are happy using Qt – go for it.

    2. You are so wrong, FireMonkey is the evolution of an old product, VGScene, so inform yourself first, I’m agree about still a lot of work and Embarcadero has made many mistakes, but i believe that it will como up with a more roboust FireMonkey.You’ll see.

      1. Felipe – I am not wrong. FireMonkey is a combination of internal work and the IP we acquired from KSDev. We don’t deny that KSDev technology is included in FireMonkey – we appreciate the fact.

        There were many architectural changes, refactorings and additions that go beyond what VGScene shipped from KSDev. Eugene joined as a an engineer and is working with a whole team on FireMonkey. I was here when KSDev was a technology partner. I was there when we brought Eugene on board. I was here for the other work that was being done long before we acquired KSDev technology.

        Regardless of the past and your assessment (you can do a source code diff of KSDev products and FireMonkey v1.4.1 and see the differences if you want).

        In any case – what is most important is that the FireMonkey Team continues to fix issues, improve architecture and to evolve and extend FireMonkey not just through the 4 updates and one hot fix but in generations of FireMonkey to come.

        Guy Kawasaki in his book “Rules for Revolutionaries” covers 10 rules that are appropriate to software platform vendors like Microsoft, Oracle/Sun, Google, Embarcadero, Nokia, etc http://www.garage.com/files/speeches/RFR.pdf

        1. Rule #9 – eat like a bird, poop like an elephant

          Translating into Embarcadero, “The size of the crap made ​​by Embarcadero is so big as a elephant poop”

          1. Yes, I have to say that then I looked at those 10 rules I had to wonder whether David I was attempting to be funny or simply hadn’t fully thought through the way that those rules would come across to customers of Embarcadero if he was suggesting that these were “good rules” for Embarcadero to follow. #9 in particular had me scratching my head…

            David I thinks it’s a GOOD thing that Embarcadero produces a lot of crap …? Really …?

            That would explain a lot, but I’m pretty sure it’s not what he meant. πŸ˜‰

          2. Elephant and Joylon – you definitely took what I said way out of context, but I know that is what can happen when I talk about something in the context. If you read the book you will understand what Guy was talking about in the context of the early Macintosh.

            Now look at Apple computer – they are the highest valued company ever (based on stock/market cap). Apple also keeps many secrets and staunchly protects their NDAs. Yet, they also present new capabilities in previews at the Apple WWDC and then deliver the release in a few months time after the conference.

            1. Are you – or anyone at Embarcadero – even signed up as an Apple Developer ? I can only assume not otherwise you would “get it”, yet you clearly don’t.

              I am not looking at “Apple Computer Inc” – as I think you well know. I am looking at “my experience as a developer products customer of Apple”. You know, the same sort of customer that I am of Embarcadero. Ditto the comparison with Microsoft (except in that case I get a taste of the experience without even actually having to be a customer).

        2. Guy Kawasaki has no background in software development and he’s been exposed as a complete fraud who invented his entire “Rich Dad, Poor Dad” story and only made his money by his book being peddled by Amway. He allows his name/image to be used to endorse many products of questionable value. I hope he’s not steering Embarcadero strategy, although that might explain a lot…

    3. Possible news about Qt future – found on a public newsgroup – http://lists.qt-project.org/pipermail/development/2012-August/005478.html

      “A source I consider reliable has whispered in my ear that in the aftermath of Nokia recently shooting Meltemi dead*, Sebastian NystrΓΆm (the Nokia Senior VP in charge of Qt) has been given explicit direction to sell-off the Qt asset. Nokia’s great experiment in frameworks (mobile and otherwise) is over.”

      * After having previously shot Symbian and Maemo/MeeGo dead

      1. This speaks to the competency of Nokia, not Qt. Digia bought it, is bringing it to Android and iOS (we’ll see who gets there first), runs on more OSes than FireMonkey ever will (including embedded and real time), and has over 200 developers working full time on it, including the 89 Digia brought on with the acquisition, which from what I’ve heard dwarfs the entire Delphi and related products team. Qt is also open source done right, so it’s not going anywhere no matter who bought the commercial rights. Qt also has over 450,000 users worldwide, including Google.

    4. So what? Firemonkey is a revolutionary beast. Just let it grow up and nobody will be dissapointed. BTW, QT is dying slowly, don’t you read the news?

      Firemonkey can be a great cross devices library, i have a lot of faith in it. Go EBT!
      GO David!

  7. I don’t believe that Embarcadero is killing Delphi. Quite the opposite for me. I’ve never felt better about the future of Delphi. Sure Firemonkey needs a ton of work and third parties are starting to fill the void… My NakeyMonkey Project at Kickstarter promises to do a lot in that area, but we only have 9 days left to find $13k for it. But as Firemonkey grows up a bit and when the new iOS compiler comes out, I think things will start to get very happy for the future of Delphi. If the above commenter really is from “the inside” I hope he is not correct about EMB shelving the iOS compiler. I can’t see them doing it indefinitely as it’s such a marketing point for the product.

    1. Whilst I applaud the ambition of NakeyMonkey, I seriously doubt it’s premise.

      FireMonkey is not what enables cross-platform development, that is simply a feature of the multi-platform compiler architecture. Wrapping native controls inside FireMonkey simply makes exposing those native controls harder as you have to reduce the native control frameworks of each platform “FireMonkeyish”.

      For Windows controls your problem will be that FireMonkey specifically avoids messaging as the basis of communications in it’s framework, and of course Windows controls very much rely on this.

      For OS X/iOS your problem will be that the compiler has not been extended to allow for “first class” participation in the runtime frameworks of which the UI controls form a part.

      A better approach imho is to have separate platform specific control frameworks and to extend the compiler as required for those platforms – just as was achieved with the FPC compiler, for example.

      But good luck. πŸ™‚

      1. I’m aware of the problems as I’ve already overcome most of them. I have a functioning demo of a Rich Edit that wraps the native Rich Edit 2 on windows and NSTextView on OS X. it’s functional, works in the firemonkey framework and feels very native on each platform (because it is). Firemonkey forms are native forms. They have handles on windows and a NSView container on OS X. Native controls will work fine in and with Firemonkey.

        But if we don’t raise another 13k in the next 9 days, I guess we’ll never know for sure. πŸ˜‰

        1. That’s encouraging. Are you providing separate control classes for RichEdit2 and NSTextView or a single control that wraps the appropriate “inner” native control on each platform ?

          If the latter then surely the approach risks becoming a “lowest common denominator” factor ? i.e. your “native” control wrapper can only expose what it common to all of the possible wrapped native controls.

          How do you feel about the fact that Embarcadero appear to be working toward the same goal ?

          1. Rather strange.

            It is like SWT vs Swing in Java.

            FMX is like Swing, all self-hosted and self-drawing.
            Native controls + hack-arounds over differencies are SWT idea.

            Will Delphi manage to fuse both strategies in same library without making it “Jack of all trades” remains to be seen, yet highly doubtful.

        2. Those who have not been part of the XE2 beta and have no insight experience the response to the beta testers wishes for a different integration of the FMX – topic ‘reimplementation’ of the FMX form. Accompanied by useless discussions about FMX + VCL combined … and similar. There was a certain believe from those who did not know XXScene that they could simply combine …

          In the end a one time shift of about maybe 2-3 months and I think the resync will happen in XE3. That’s all. The ‘delay’ is not a repetitive one, but it was wise to change at the earliest point in time.

          The only reason imo why the Delphi XE2 especially FMX timing went out of sync with the marketing communication prepared.

          The difference between the XXScene stuff and the FMX is a huge one, especially concerning IDE integration, this is out of doubt. Without it would have been a solution limited to a few developers.

          One year is a short period. Tactical shifts are limited. That’s all. I personally take a specific Delphi Version one year after release in general. At this point in time the patches are applied and I have good impression about the next release. If we look back 2010 was a major improvement worked in fall, XE worked in fall too. Ok, now we had a release with lots of changes, fundamental ones too and the only thing that remained is the short period of 3 months that shifted FMXs inofficial release date beyond the official. No one at EMB did pick the nose, the decision had been taken according to wishes from developers for developers … Don’t worry.

      2. The team is working to surface native controls for FireMonkey on each platform. Then developers will have the choice to use vector drawn components in their projects across all platforms – or to choose to have native controls on each specific platform. More to come when additional FireMonkey capabilities are completed.

        1. What about language extensions to eliminate the need for wrapper/bridging classes for other supported platforms ? i.e. as per the FPC compiler and indeed as per the DELPHI compiler with the introduction of the “procedure WMXXX(); message WM_XXXX” and other language changes made for the WINDOWS platform ?

          1. Language extensions are being worked on for the next generation Delphi compiler – which is still in development.

        2. WOW, I think this is the first time you are releasing this news!!! πŸ™‚

          We all know how hard you all at embarcadero is working to bring Delphi again to top, but how long it will take to do so

          1. Developing for new platforms and existing platform changes is a never ending engineering process.
            “Delphi again to top” – with everyone’s help we will continue to move Delphi forward.

        3. Hey, that’s news!

          It’ll be interesting to see how the two worlds (native+vector) can really cooperate in the wild (in terms of layering and full capability of the native controls).

          Will there be a way to have full native forms? (no vector at all)
          Will there be a way to have vector embedded in native forms rather than the current FMX reverse? (and like can be done in VCL or Lazarus, and what is possible with GLScene or DirectX components)

        4. “surface native controls for FireMonkey” , did you mean Microsoft Surface ™…..

          oh i am just kiddding

        5. It si very good decision. But, please, make possibility to extend Objective-C controls/classes by delphi code! We all are waiting LLVM-based compiler that is able to closely communicate with Apple’s OSX/iOS ones.

  8. Weird, a link to this blog was posted in the Embarcadero non tech forum and the thread was removed. The Embarcadero police wants to hide your viewpoints.

    1. I do not believe that it is my viewpoints they wish to hide, but rather the information contained in the comment posted by “Inside Embarcadero” which they have subsequently asked me to remove.

      I have reluctantly decided to comply with this request even tho I believe it is a) too late – the information is already “out there” (and in Google’s cache, presumably) and b) I don’t think that suppression is the right response to embarrassing information.

    2. Not hide viewpoints – these are always appreciated. We just needed to remove information that violated confidentiality agreements. If anyone needs any information to make future decisions, they can always request NDA briefings on what we are doing. Developers can also request to be added to test versions of our products when those take place to see what is being done and also help us drive to quality releases.

      1. Do you not see the contradiction in witholding information but then saying that that information will gladly be given out to anyone that asks, subject to an NDA ?

        Is a secret still a secret if everyone knows but simply doesn’t know who else knows ?

        Also, I consider a payment for “Support and Maintenance” to contain an implicit request for this information since it is an explicit purchase of a future product. It only makes sense that someone expecting and entitled to receive something be informed about what it is they shall be receiving.

        At the very least, why not simply give us ALL a properly updated roadmap ? Or is that subject to an NDA as well ?

        1. The decision for SA is independent from the the decision to use Delphi. We don’t need to discuss, why, Delphi is for little later adopters in a positive sense. You are better off with SA. From the timing ‘little’ is relative. EMB is keeping up and they ship results over the year on a regular basis. The SA pays with the RAD Studio. Get a discounted upgrade and SA. Let me say, 3 of 4 products everyone can use in general very likely and 2,75 already work. Steady flow of improvements – holistic approach;) The tendency is improving after major changes and what worked before worked at the time of release. Of course Delphi 64-bit was priority and now improvements focus on FMX.

          If you prefer VS C# you can use XCode too. Assuming you need something for C++ and are going to experience the pure spirit – Code Blocks a good entry option, dependent on what you want to do.

          My focus is on something different. I don’t advertise for something different commercial on a Delphi related blog.

          My experience over 2 decades with Apple – they want to stay in isolation. This will not change. Apple’s orginal idea – we provide everything from Hardware to Software – Apple finally reached their goal – Appstores are here. Linux and Windows are still more open from the application developers perspective and the users. Android and iOS very much the same. Isolation on the IOs side …

      2. @David I:
        since I was one of those who read the “Inside Embarcadero” comment in time (before it was removed), I do know what it said.
        David, now you’re saying it had to be removed because it contained confidential information – but basically that means: it contained the truth (because otherwise it couldn’t be confidential).

        And if that really is so, then I’m going to have a lot of troubled nights, because Delphi is taking a direction that I do absolutely NOT like!

        1. My issue with the post is that it contained a mix of personal opinion – always appreciated – and inside information (regardless of what the information was). Some of the information was related to internal confidential discussions. Some of the confidential information was inaccurate and/or incomplete. All will be told in good time when products and technologies are ready.

          If the post had personal opinion only – that would have been no problem for me.

        2. “And if that really is so, then I’m going to have a lot of troubled nights, because Delphi is taking a direction that I do absolutely NOT like!”

          What directions do you want Delphi to take?

        3. There you go:
          [
          -link removed-

          Sorry, but whatever David I and/or Embarcadero think of me, I am not out simply to “get” them – they asked me to remove the comment from my blog and though I disagreed with their reasoning I agreed to do as they asked. If I were to allow your screenshot link I would effectively be going back on my word.

          For what it’s worth, I don’t like doing this. Besides, the information it contained has been reproduced elsewhere already, demonstrating the futility of trying to censor the internet. Embarcadero management seem to be clinging on to a pre-internet era management mindset]

          – Jolyon
          ]

          Learned to screen-shot stuff some time ago πŸ™‚

          1. Jolyon,

            You don’t need screenshot, just look at your blog trash and the comment should be there if you didn’t clean.

            1. cc, I have the post stored. But I told David I that would agree to remove it from the blog and I have done. if people wish to comment on what was said then that’s fine too. If they want to link to other sites that have chosen to reproduce it, or parts of it, then the responsibility for that information remaining up lies with where-ever those links lead.

              But a direct link to an actual screenshot of the post I was asked to remove… I ummed and I ahhed over the link with the screen shot and in the end decided to leave the comment but redact the link itself. “There You Go” went to the trouble of posting the screenshot and if “There You Go” wants to publicise it’s availability elsewhere then that’s his prerogative.

              As I said, I do not like the way Embarcadero have handled this, nor do I think it the most helpful or productive approach, but I told David I that I would remove the post and I as I explained, I felt that subsequently hosting a direct link to a screen shot of the actual post was tantamount to going back on my word.

              I am not “sucking up” to Embarcadero but equally I do wish them to appreciate that I am NOT out to “get them” for the sake of having a go, so when I say I will do something for them then I will do that.

              Of course, it doesn’t mean I have to like it. πŸ™‚

        4. I did read what “Inside Embarcadero” said as well and I agree with Peter, Delphi is really going on the wrong direction.

          I was ready to start new projects with firemonkey this year, expecting the real version 1, stable, fast, without memory leaks, ready for iOS with unified language and compiler, and of course android support.

          Disappointed

  9. “shoe-horning their rushed FireMonkey solution onto iOS”

    It was already shoe-horned on when EMBT bought VGScene/FMX. As I suggested elsewhere back last August (*), surely the decision a year ago was whether to keep iOS ‘support’ in, not add it. I thought it in a bad idea then (for various reasons), even while assuming (rather erroneously it turned out!) that FMX itself was well written…

    As an aside, someone is rather twitchy about the whole topic, since a thread on non-tech leading off from your post has been deleted. Makes me tempted to post myself!

    (*) http://www.itwriting.com/blog/4739-delphi-for-windows-mac-and-ios.html/comment-page-1#comment-725606

  10. All development continues on compilers, FireMonkey, VCL, tool chains and more. We will reveal everything for everyone when technologies are ready to ship. The most recent John Thomas article containing future plans for C++Builder can also be for Delphi plans.

    Thanks for all of the feedback and questions. We are always watching and listening.

    David I.

    1. One thing I would really like to see is one fixed place with Delphi Roadmap that will get updated frequently (twice a year would be nice).
      Scavenging for information and having to go to all kinds of trouble (like signing NDA) is not something I prefer.
      If you want to have customers on SA you’ll just have to give something back.

      1. We are delivering as much technology and information as we “can”. Can here is defined as meaning:

        1) what we know – which is a lot
        2) what we can say – which sometimes is constrained by several factors – a) revenue impact positively and negatively, b) software patent work (now, let’s not get started with the discussion about software patents), c) uncertainty about the delivery dates/features of releases and updates, d) business decisions.

        Being on Maintenance (Software Assurance, Subscription) and under NDA allows to deliver much more to those who need those assurances and longer term planning. Others prefer to focus on their current work and wait for the next release.

        NDA and SA are simple processes – if there is a trouble in signing your name to an NDA or buying Maintenance when you purchase our products – let me know and I will help guide you.

        1. Thank you for your offer, but I currently don’t need any help. I already have SA and cannot complain on the renewal process. Signing NDA to get more information is something I am aware of, but I am here talking about principles (and how I think some communication about future development should be done) and not my immediate needs.

          I can split roadmap problem in two parts.

          First, I think there should be single fixed web page on your site that will have most current roadmap available. Such page should be linked from your Product page. I know that information on new roadmaps is published on Embarcadero blogs, Facebook and Twitter, but that information expires very fast, and it is very hard to find roadmap information, because it is usually scattered in blogs and articles.

          Second part is about content. Last roadmap I find usable was the one published by Mike Rozlog in 2010. I want to know what is your general direction, what are major features you work on and some other features that might be interesting, but have lower priority. In my opinion roadmap should cover not onla next release, but also things that are being worked on and will not be completed in single release cycle.

        2. Something I forgot to add. I don’t expect very detailed information or timelines in roadmap, the one by MikeRozlog I mentioned before was just fine.

          But I must say that I was very dissapointed by JT’s roadmap for Delphi (I don’t think it even qualifies as roadmap). All information about Delphi development (after XE2) was very short blog post last year promising more detailed roadmap later on. But new roadmap was never published. Even though, I can draw some conclusions from C++ roadmap that was published recently, it is a different product and I don’t like guessing.

  11. Get well.

    Jolyon – Slipstream surfing – Have Macs on the Website and problem solved … Nothing new. You should have known. Learning XCode and Objective C is not so hard.

    @Inside – Thank you for the info.
    A cry for help:) Stir-crazy? Finally the ones who can improve the situation are the employees on their own. See it relaxed, EMB is forming the company and you are part of something great and new. Be happy that you have young colleagues. Everyone starts one day.

    IT is anything else but sexy, it was sexy during the last 15 years because lots of money has been invested into the IT world.

    “Evangelism program??? this is a joke, Embarcadero just wanna have people working for them for free”
    – You have defined the role evangelist. Borland I think have been very effective in this point too. This is normal. You will never have a relaxed environment and a high salary in general. Only you can make it less strenuous.

    Why should EMB raise your salary – look at the result of your work. You ‘complained’ about it on your own;) Kidding. It’s you who can improve things.

    EMB does not kill Delphi – Delphi is simply a mature product and it will not last forever.

    The cost structure of a shop that does maintain products that found their place in the market is a lot different from an innovative startup or company that needs to innovate in order to compete.

    In the end EMB builds tools for legacy maintenance and evolution. At the time when young developers join a customers site – see a commercial text editor and say – Boss your development process is over tooled and you did not remove the last commercial dependency from your development process – it is not easy to impress via tools. Sometimes business is hard. There will always be legacy …

    1. “EMB does not kill Delphi – Delphi is simply a mature product and it will not last forever.” “In the end EMB builds tools for legacy maintenance and evolution.”

      Not sure what your definition of “mature” or “legacy” is. Some take the words to mean old, stagnate, unchanging, stuck on old versions of hardware and OS, etc.

      None of these are anywhere closely related to Delphi unless you are using Delphi v1.0.

      Michael et al – maybe I am missing what characterizations you are using and what you are comparing Delphi to – Java, C, C++, C#, Python, JavaScript, Objective-C? Please me more specific if you are connecting Delphi to these words and what you are comparing with. Will make it easier to understand the words.

      1. Legacy does mean existing in maintenance in our area. I use the web peoples wording. Windows, Oracle, SAP, DB2, Informix, Java, .net and myself are already legacy too or products/technologies show a strong tendency to move towards this state, imo + if there is strong tendency in the ECO system to find good reasons to stay on the proven path vs. moving towards something new which finally limits the vendors moves or does make those a lot more challenging.

        Leo Apother faced such an issue in the early days of the Netweaver when SAP wanted to move towards Java Stack but the developer base and their managements insisted on the ABAP stack. This caused tremendous work and delays I think, because SAP finally had to reimplement the RFC layer (which is an evolution of CPI-C) in order to handle higher volumes of requests in order to support calls between the Java stack and the ABAP stack. They had to stop the evolution of the ERP system and had to undo changes, because the situation changed with Java and Oracle and 2007. Imo this is the reason, why they still have to rely on the calls between the different stacks. Finally they had to provide the Next Generation ABAP stack … for the Cloud solutions. History would have been different if the ECO system would not have been this resistant in early last decade. This is legacy, imo.

        For me the moment consultancy firms convinced to a certain technology tend to look for something new … maybe someone convinced to Java for a long time is seeking projects that maybe focus on meta programming in JRuby, because of the bigger challenge. – then the strong tendency starts

        Mature does mean – adult. Delphi is in version close to 18 I think. I know the word has other meanings too, but this word is commonly used. To be more precise – mature = no shift in paradigm expected. Delphi as well as FMX will stay RAD in the way Delphi is designed from this very top level view – you can build the same kind of application more or less but the same way, independent from the platform. An app on iOS is very much the same as an Application on Windows at a comparable point in time when looking back at the history of Windows from the perspective of complexity. Delphi will not turn into a web tool supporting the creation of data driven web applications … – adult.

        For me Delphi is Delphi + VCL compared to Delphi + FMX is FMX.

        The argument with legacy does come from the view to Windows and Desktop application in traditional C/c++ native fashion – most of them are in maintenance and or evolution. FMX is something different, it does give a different answer than VCL.

        The difference to the past in general is that this maintenance period will last long, the same will happen in the area of relational databases too. I don’t expect someone to think – I have installed Oracle and I will leave a dent in the new world, whatever this new world will bring. The challenge maintenance has never been a bigger one.

        I think for a long period there will be no huge change in people relying on C/S as well as relational DBs. But EMBs tools are focusing on handling complex existing code bases too, especially in the area of DB tools. This is the difference between the tools and those provided by other companies.

  12. @Michael Thuma
    “A cry for help:) Stir-crazy? Finally the ones who can improve the situation are the employees on their own. See it relaxed, EMB is forming the company and you are part of something great and new.”
    Not sure were you made you experiance, but an employee (=developer) can’t change anything. As employee, you have two choises: Close your eyes and swallow the pain or leave the company. That’s a fact in most big companies.

    “Be happy that you have young colleagues. Everyone starts one day.”
    In general, young developers doesn’t have the experiance to see the whole picture. When I started, I was full of enthusiasm and tried to make everything “better”, but often seniors stopped me. That was disappointed, but years later I understood why.
    The right mixture of young an experianced developers is essential. Young developers need to learn from the seniors. It’s not enough to know the language.
    It’s also bad for knowledge transfer, if the dev team is scattered all over the world.

    The project I worked for in my former company failed, because of the same decision made as “inside EMB” wrote. “Expensive” senior developers where fired or upgraded to managers, and the actual work was done in disdributed countries, where cheap and young developers where hired. These developers had good knowledge in the language itself, but didn’t understand what the user expects.
    “We old developers” also tried to change things, but at the end, most of us left the company.
    Not sure how much software companies or projects need to fail, until managers understand, what software development realy means.

    1. I am not sure I understand what “inside EMB” is talking about when he or she stated β€œExpensive” senior developers where fired or upgraded to managers, and the actual work was done in disdributed countries, where cheap and young developers where hired.”

      At EMB we have all kinds and ages of software engineers, quality engineers, documentation specialists, etc. We employee all of the latest software development best practices. We use SCRUM for all of our projects. We use huge build farms, loads of automated tests and real human testers and customer beta testers. And more.

      Who is this “inside EMB” person anyway? Do you wonder what his or her real issues are? Or maybe “inside EMB” is an amalgam?

      In any case – if you have any worries or questions – just let me know.

      1. It’s really interesting to see how far people can go. David I should shut up or at least think twice before any post. We as customers deserve at least some consideration.

        “Documentation specialist” at Embarcadero? Really? Why Firemonkey was released without documentation? Why the overall Delphi documentation still crap and incomplete? There are so many erros and poor examples, should a specialist catch that or at least know how to write good code.

        What matter if you use SCRUM, but you can’t deliver a stable and finished product.

        “loads of automated test” – YOU ARE LYING and your QA process is crap, just one example, Firemonkey is vector based and Embarcadero don’t have one single vector base test tool, in other words Firemonkey was NEVER tested and released Firemonkey with lots of bugs, simple reason for the 4 updates which didn’t fix 50% of the problems. I won’t buy XE3 to get bug fixes, at least we should receive all the Firemonkey fixes for XE3 as update on XE2.

        1. “at least we should receive all the Firemonkey fixes for XE3 as update on XE2”

          Keep dreaming! LOL!

          Seriously, the user experience change between people. I find FMX very stable and usable, sure it have a lot of field to grow up. But is almost a new framework, let give the needed time to enhance.

        2. Documentation is being updated all the time. Help file updates appear periodically. The DocWiki always contains all of the latest information and updates in real time.

  13. my few cents,

    I really like Delphi, it’s cool for fast GUI development.
    The sad part is no one consider it as serious tool for other tasks.
    Mostly it’s considered as some scripting language. But Delphi is much better in performance as it produces native code.

    Latest changes are good, such as Unicode, Generics, x64.

    I think:
    – Delphi needs more classes, like TSet… Maybe even mirroring C# classes would be nice.
    – Delphi must be modernized cardinally to have flexibility of C and speed of Delphi. I’m not evangelist, but I trust EMB in this. I have many ideas on this, but I’m not sure EMB shares my opinion.

    I’m really excited to hear there will come LLVM and next-gen compiler. As for me it will give many code optimizations. Waiting to try it.

  14. What shall I say. I don’t believe in hierarchies. Hierarchies and pressure belong together – the advantage for those who are in the hierarchy forcing protectionism is 5:1 in case of a team lead and 1:12 in case of a department lead in a bigger company – from a materialistic perspective using competitive wording. Have a look at the evolution of the Scrum, same decease similar to every methodology introduced – the moment the human moves out the focus a good idea is transformed into something weak having nothing to do with the original positive intention – to create a little more agile environment from sleepy Enterprise ITs with experienced developers. The Scrum is successful because older IT people feel familar … it’s abused by the businesses.

    Concerning salary – no company is happy about high salaries in general.

    So what does EMB do – they take over products raise them and sell them on their own by pieces or as a whole if required. So it is not important to know Delphi on a long term, it is important to maintain the existing and get to know other peoples code fast, even if it is complex. It’s a consultants work more or less, the developer as a job role is a dying concept – it is too expensive, does have a limited vision. It’s simply not attractive for young people after the first years of enthusiasm

    Don’t get me wrong – it’s just my opinion. I tend to agree with your experience, it’s mine too. The single human cannot change anything in a hierarchy, what you can do is make it better. Others tend to copy … you cannot battle a hierarchy from inside. This does not make sense in general.

  15. Basically EMB massively dropped the ball on XE2. I was so excited about XE2, I was caught up in the hype. However, within weeks of having purchased copies of XE2 the cracks were evident. iOS development was almost impossible. Fighting with FMX, my MacBook, Apple and the iPad it just wasn’t going to work. No worries I thought EMB will fix that and in the meantime FMX still showed promise for Mac development and PC. I went ahead and sunk a lot of time building a cross platform application. End result is that it just wasn’t useable enough, the interface the speed everything about it screamed second rate. In the end we had to shelve the cross platform idea. What a waste of tiem and effort.

    I have now decided to leave Delphi as it is. Delphi 2007 is the version I use on a daily basis. For cross platform we have decided Smart Mobile Studio (http://op4js.optimalesystemer.no/) will provide the path forward. That and switching to HTML5 development.

    EMB have not moved with the times. They are still stuck in the old days of closed development don’t get your users involved. Bad bad decisions.

    I so wanted XE2 to be the salvation of Delphi to get the product back up there where it deserves to be. Instead, the lack of engagement and communcication by EMB has been dissapointing. I am now left with expensive licenses for something that will never work as intended. You can forget XE3 – fix XE2 first. It has been a debacle.

    All in all I am still a fan of Delphi, as it was, but the current state of things leaves me cold. The business model of having to purchase each year in order to get a version that works better than the previous one is flawed and wrong.

    1. I m sure easiest fix for XE2 is to allow native controls on OSX/iOS, and possibility of communication with ObjC classes (extend them, pass delegates etc).

      I can not wait until EMBT will adopt LLVM))

  16. Wow, some seriously passionate comments on this blog. Firstly I hope (as with everyone else) that Jolyon returns to full health quickly. I think your comments about iOS development are well founded. The lack of a Mac on my part has somewhat prevented me from experimenting in this area, but from what I’ve seen the whole process of producing iOS applications from Delphi is way more complex than it needs to be – hopefully XE3 will improve on this. FireMonkey itself still requires much work and I have been procrastinating about learning it properly because of this, but it looks like this is what Embarcadero are focused on – so I guess I should pull finger and get stuck in. Sometimes the focus should be on what can be done, rather than what can’t.

    1. Thanks for the well wishes Alister, and good luck with your logo selection! πŸ™‚

      w.r.t the passionate comments, we should at least be grateful that there is still some passion out there, eh ? πŸ™‚

  17. Dude…..I know ALL about pain in butt ! I had to have a herniated disc fixed – again 8 years after initial surgery, then when in recovery I had a very uncomfortable BURNING sensation in my leg! Somehow between haveing teh operation and waking upin recovery, what was left of my disk slipped into my spinal column again Long story short, a month later, I was have the same operation again to have it sort out again. But this time, the nerve had got damaged! Added to that…..I was in hospital on Feb 22 2011 – yip the day of the quake in CHCH !!! That didnt help my recovery πŸ˜‰
    If you want to know what helps, get in a pool. It takes all the weight off you back. Its good……however get some Tramadol from your doc. It helps too πŸ™‚

    1. Youch! Sorry to hear of your experience Jeremy. Yours sounds like a traumatic experience – far worse than I had to go through, thankfully.

      The pain meds I’m prescribed (paracetemol, ibuprofen, codeine + diazepam and amitriptyline at night – both of the latter in very low doses) and the physio, combined with the loving care and attention being lavished on me by my fiancΓ©e, are working wonders! πŸ™‚

  18. Ah, I’m getting over it – rather learning to live with it. I think the good thing is I have a sedentary job πŸ™‚ I am not out digging liquefaction or anything πŸ™‚

  19. I’m a little late here, but can anyone say what inside embarcadero posted here?

    1. if it was already deleted – then someone’s repost would be just deleted the same way

  20. I haven’t a Mac or iPad here as well as 90% of East Europeans, so I have nothing to blame here. πŸ™‚ Actually I think Delphi for OS X and iOS is just a waste of time and money (the 80/20 rule). It would be better to improve Delphi for Windows, create a modular compiler with pluggable backends and frontends, fix FireMonley etc.

    1. Different markets need different things. Here, in Russia, our parlament and state government have ipads for their daily usage, so ios dev is in favor))

  21. Embarcadero could learn a thing or two from the spectacular “Microsoft Flight” failure.
    This project was shutdown just five months after its release.
    Microsoft decided that to increase the number of Flight Simulator customers (which is a niche market) it had to address a market that actually didn’t exist with a product – Flight – that disgruntled actual loyal (and paying) customers while bringing in very few new ones. In the meantime they had fired most of the old development group…
    There are some that are trying to put the blame on the “vocal minority of hard core simmers” for not having supported the product and posted negative comments about it (of course – why should we pay for a product that doesn’t address our needs? And why should we not say what we think about it? And if we are a minority, what’s the problem?), and not to those who made really bad decision about the product and aimed it at a non-existent market. They heavily censored any negative comments as far as they could, but it didn’t save the product because it was doomed since its inception.
    Doesn’t all that resemble some behaviours and decision made lately by Embarcadero?

  22. I decided to leverage both sides of the coin. So i use Delphi server side, and for desktop clients – but smart mobile for iOS, Android and Berries. I managed to get delphi working on the mac, but decided the gain was not worth it. With Smart i got everything i need client-side (throw in phonegap for better file access, camera etc.) and delphi is king server-side and on the desktop.

  23. I should also add, in case i come over as trying to sell my own ideas, that before we made smart, i used C# and prism. Remobjects have a ready to go package that you just copy to the mac – punch in the serial – and off you go.

    Many of the problems that people experience on the mac (comming from a windows centric env) I had to deal with almost a year ago. It was quite a setback having to resort to C# (prism did not work very well in the beginning).

    As for firemonkey i have mixed feelings. The concept is good, i mean using the 3d processor to handle the display etc.. It also makes sense to protect the delphi user from the marked changes by sandboxing them — but that also has the downside of being a “visual basic” esq makeover for a community that is far to advanced to settle for a sandbox.

    Having said that, i never expected the next delphi to be the delphi we know and love. It goes against the rules of evolution. There will be a period of waves before the product “snap-to” the next working model.

    My suggestion is to have a look at C#, because the missing bits of information needed to really work with delphi under iOS is better expressed there. Once you learn them, you can go back and work comfortably with delphi or prism. Sad but true.

  24. I think Delphi is a great product generally and the VCL is all I need for Windows desktop and database apps but my latest attempt to rewrite an app in Firemonkey even as a Win32 project was halted by bugs in printing bugs. The printers can not be detected, and the app crashes. I contacted EMB but got no replay after three weeks. Without printing support, FireMonkey is useless to me. I never got to try to deploy on OSX. EMB – please fix this printing bug now. I can not believe FM was released when something as fundamental as printing didn’t work.

    Martin

    1. The same for me. I’ve tried Firemonkey. But it was not yet as complete as VCL.
      Well it’s normal as Firemonkey is young yet. Hope guys will improve it fast. Waiting for XE3 to see changes.

  25. Lazarus is actually really nice people. Take a look a the 1.0 release candidate.
    I am doing all my new projects if I can with Lazarus and only using Delphi if a particular component or lib is not available for Lazarus.

    Synpase works with Lazarus, Super Object, PGDac from devart plus lots more.

    Lazarus even has begin and end matching in the IDE which Delphi does not have unless you buy a third party IDE plugin.

    I even cross compile Linux exes on my windows 7 PC with no issue.

Comments are closed.