Tuesday, September 04, 2012

Moving On

An update: I've left Embarcadero Technologies.

There's a lot of reasons. I was in the same position for more than six years, but I didn't necessarily want to be pigeonholed as a compiler guy. I was working remotely from London, with all the downsides that remote working entails: relative lack of camaraderie, out of sight / out of mind, disconnection from the actually quite vibrant local tech scene (I live about 3 miles from Old Street roundabout). But more than anything else, I'd fallen out of love with Delphi, and could no longer motivate myself to try and make it better - the gap I'd try to bridge would be a gap too far for the market to bear.

I'm currently taking stock, thinking about what I want to do next. No specific plans, but it's going to be fairly different than what went before!

55 comments:

  1. I wish you well, Barry. Your contributions to the community were many and valued.

    ReplyDelete
  2. Was a pleasure to work with you, thanks for everything you did for Delphi and for all of the great conversations we had, I learned a lot with you.

    ReplyDelete
  3. Best of luck for the future, Barry. The Delphi community is much richer for having you at the helm of compiler development.

    ReplyDelete
  4. Colin3:34 am

    Thanks Barry for adding and improving the language features to Delphi over the last few years. It's a shame you are moving on but you've got to do what makes you happy. You'll be a great loss to the Delphi community. Best of luck to you.

    On another note, would you be able to elaborate as to the "gap" you were trying to fill and can you explain why you feel that the market would not be able to bear it? All the best.

    ReplyDelete
  5. Sad to know fhat "they" let u go! Wish u all the best in the new journey!!

    ReplyDelete
  6. Colin: by gap, I mean the distance between the established product of Delphi, and a language I'd be happy and proud to continue working on.

    It's a fact that Delphi has been around for long enough that changing it significantly isn't really an option. You have to give people a path forward with their existing codebase. And it's not just customers; the product itself has lots of code doing a lot of stuff, and if the language is too different, the result would be an IDE and compiler and a few basic libraries, and that's it. Not a great business move.

    Delphi is very procedural. It grew out of Pascal, a language designed in an era when memory was very expensive. So most of its core runtime is based around mutation and destructive updates.

    But the longer I've been coding, the greater and greater benefit I see to more functional approaches - which pretty much require garbage collection - and persistent data structures like you see in Clojure.

    I've also lost some of the object orientation religion I first picked up when I was in my teenage bedroom, figuring out how virtual method calls worked in my copy of Turbo Pascal 6. I remember the epiphanies of those days. But these days, I see the bureaucracy and busywork involved in creating class hierarchies, how it can fool you into thinking you're doing productive work when you're filling out various idioms and "patterns". Some problems - like GUI widgets - work really really well with OO. But others work far better with the functional approach, where the set of data structures is closed but the set of methods is open. Shoehorning these into OO results in ugly architectures with extra indirections.

    Suffice it to say, if I was creating a language I was truly in love with, it would look quite different to Delphi.

    ReplyDelete
  7. V1C Fernandes: Just to put the record straight, "they" didn't let me go; I left.

    ReplyDelete
  8. Jarrod Hollingworth4:42 am

    Nooooo! A huge loss for Delphi. Best of luck with your future plans.

    ReplyDelete
  9. Good luck with whatever you choose as you new endeavour.

    ReplyDelete
  10. This comment has been removed by the author.

    ReplyDelete
  11. Thanks Barry for clarifying the gap. Not being a compiler whiz, I've read that it is possible to do functional programming in C#. Apart from the barriers you mentioned such as GC and mutable values. Can you still follow a functional programming approach in Delphi with some discipline?

    ReplyDelete
  12. Barry,

    many thanks for your great work.

    You'll be a great loss for the Delphi community.

    I hope that you can motivate yourself again to work on for the Delphi community.

    ReplyDelete
  13. There goes my hope of delphi ever getting garbage collection..

    ReplyDelete
  14. Many thanks and best wishes.

    ReplyDelete
  15. Barry,

    Thanks for all your insight. I'm sure every direction you take is going to be a success.

    Jordi

    ReplyDelete
  16. dangi8:35 am

    Thank you Barry for all the good things. I wish you the best for your next moves

    ReplyDelete
  17. Good luck Barry, thanks for improving Delphi. Good to see Clojure mentioned in there!

    ReplyDelete
  18. Thanks for all the Delphi work you did, and thanks for teaching me lots of new things.

    I hope your break brings you lots of new and interesting things!

    ReplyDelete
  19. Anonymous9:24 am

    Barry, my best wishes in all you work from now on. I think you're very talented and smart, so no need for luck, but in any case, good luck. :)

    ReplyDelete
  20. You will be missed, and in particular, I will miss your enlightening posts! I hope you'll keep on posting on the matters that interest you!

    So long, and thanks for all the 0xf154 !
    (ok, not really an H, but #pragma 4=h;)

    ReplyDelete
  21. From reading your blog over the years I suspect you'll find something awesome to channel that big brain of yours towards :)

    I know what it's like to get to that point in your career/life/code.verse and regardless of the loss you will be to the Delphi community you are making the right decision.

    Onwards, upwards and beyond, best of luck, D.

    ReplyDelete
  22. Thanks for all the Delphi work you did. Have fun you your new job

    ReplyDelete
  23. Anonymous10:01 am

    Good luck, Barry!

    BTW I don't now who has expanded the record helpers on the simple data types, is it you?
    https://forums.embarcadero.com/thread.jspa?threadID=76400&tstart=0

    It was a really nice surprise in Delphi XE3. Now we can use the build-in types in the functional way.

    Kryvich

    ReplyDelete
  24. All the best to your future endeavors, the Delphi compiler will miss you, as we will your great work in the community of Delphi. It was a great honor meeting you a few years ago at the EKON in Frankfurt. I wish you all the best and hope to meet you some time again.

    ReplyDelete
  25. Hope you find something great to do, Barry!

    Thanks for the years you put in - I can sympathize with the issues of working remotely.

    The virtual-dispatch epiphany thing rang a bell .

    /Hallvard

    ReplyDelete
  26. Anonymous12:32 pm

    Barry,
    thanks a lot for the Delphi compiler and the cleanup work on the code base...and the 64 bit Delphi compiler of course.

    ReplyDelete
  27. Barry, I wish you the best of luck in what I am sure will be a very fulfilling career. Your departure is Delphi's loss, but I can certainly understand your wish to work on a language you can love.

    ReplyDelete
  28. Good luck Barry! All the best in your next career move.

    Warren Postma

    ReplyDelete
  29. Thanks for everything you've done Barry, and best of luck with whatever path you choose to follow!

    ReplyDelete
  30. If you want to be with Pascal you can try to work on FPC ;) We are open for new ideas and new developers.

    ReplyDelete
  31. Anonymous3:50 pm

    Thank you Barry for all your work on Delphi's compiler and good luck to you!

    Let's see who left EMBT recently: Andreano Lanusse, Alex Ciobanu, Barry Kelly. So, I wonder: who is the next one?

    ReplyDelete
  32. Thank you for your contribution to bringing DCC forward into the 21st century, and thanks for all the insightful blog posts. I understand why you are moving on; and a lot of great opportunities are yet to come. I wish you all the best!

    ReplyDelete
  33. Anonymous4:38 pm

    Good Luck
    Another brick lost from delphi wall..
    D4A!

    ReplyDelete
  34. This comment has been removed by the author.

    ReplyDelete
  35. Hi Barry,

    only one word: THANKS!

    Best of luck for the future!

    Claudio

    ReplyDelete
  36. Sorry to see you go, happy to know you are doing so to follow your heart and your dreams. Best of luck and and I hope you will find something fun and worthwhile to spend your time on.

    ReplyDelete
  37. Thank you, Barry,

    for anonymous methods,
    bounded polymorphism support,
    rich reflection support and many
    other RTL stuff.

    ReplyDelete
  38. I see that you let them go ... ;-)
    Good luck with your new adventures.
    I know I'll enjoy reading more of those posts of yours (and I'm sure I'm not alone).

    ReplyDelete
  39. dataprime12:15 am

    Good luck, embarcadero cracked in half when you left. The Brazilians want you to be happy. You happy, means that good things will come to us mere mortals!

    ReplyDelete
  40. @Pavel you say so, but when i re-surrected the topic about closures ("anonymous methods") in FPC, i saw that every one of core community saw closures having no value for Pascal at best or explicitly destructing the language at worse. So, i don't expect FPC to move that way, be it good or bad. However there still are Nemerle and Scala to blend OOP anf FP together :-)

    ReplyDelete
  41. @0xffff, "anonymous methods" in Delphi are admirably beautiful in documentation, are so natively pascalish... But they are hardly usably. Closures should be very short and concise. Delphi closures are nothing but boilerplate. They can only be usable for complex 5-15 lines procedures, but that scope is where it is time to just make a normal routine and give it a name. C++ closures are ugly to look, but they are practical more or less. Delphi closures are beautiful but impractical.

    ReplyDelete
  42. @Arioch.
    It is yours IMHO only.




    ReplyDelete
  43. @0xfff Sure, we all speak out our IMHOs here.
    But writing somthing like DataStream.Filter( > 10 ) is absolutely impractical in Delphi. And complex functions make it exponentially worse to debug.

    ReplyDelete
  44. some 1D collection.
    IEnumerable for example.

    for collection of records that could be like
    DataSet.Filter(_.FieldName > 10)

    ReplyDelete
  45. This comment has been removed by the author.

    ReplyDelete
  46. Damn! IEnumerable<Integer>

    ReplyDelete
  47. Best luck, Barry!
    Thank you for all the things and posts you did for Delphi community.

    ReplyDelete
  48. Anonymous9:46 pm

    Life goes on. Good luck and many thanks for your work.

    "I've also lost some of the object orientation religion I first picked up when I was in my teenage bedroom, figuring out how virtual method calls worked in my copy of Turbo Pascal 6. I remember the epiphanies of those days. But these days, I see the bureaucracy and busywork involved in creating class hierarchies, how it can fool you into thinking you're doing productive work when you're filling out various idioms and "patterns". Some problems - like GUI widgets - work really really well with OO. But others work far better with the functional approach, where the set of data structures is closed but the set of methods is open. Shoehorning these into OO results in ugly architectures with extra indirections."

    I have a similar feeling. I don't about your new favourite language but maybe Google Go is worth a look. The concept is really appealing and IMO their willingness to keep things simple but effective is rarely seen today.

    Michael

    ReplyDelete
  49. Anonymous4:51 pm

    I wasn't know that you were working with Delphi team, but I know you from experts-exchange, when you was number 1 in Delphi area.
    I remembered that when I come to London in 2001 or 2002 I put a post in experts-exchange containing my telephone number in London, but unfortunately we didn't met.
    Motaz Abdel Azeem
    http://www.code.sd/eng/products.html

    ReplyDelete
  50. Barry,

    Sorry to see you go. Your thoughful and knowledgeable answers to my questions at StackOverflow helped me more than you'll ever know.

    Louis Kessler
    Winnipeg, Manitoba, Canada

    ReplyDelete
  51. Sofiane Chiheb9:11 am

    Good luck man, micro$oft is waiting ...

    ReplyDelete
  52. Thank you, Barry, for your good job! Best wishes from Russia.

    ReplyDelete
  53. Thank you for infomation

    ReplyDelete