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:

Bruce McGee said...

Very best of luck.

Nick said...

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

Andreano Lanusse said...

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.

Dave said...

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

Colin said...

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.

V1C Fernandes said...

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

Barry Kelly said...

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.

Barry Kelly said...

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

Jarrod Hollingworth said...

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

Alister Christie said...

Good luck with whatever you choose as you new endeavour.

Colin said...
This comment has been removed by the author.
Colin said...

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?

Roman said...

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.

Wouter van Nifterick said...

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

Tom said...

Many thanks and best wishes.

Jordi Corbilla said...

Barry,

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

Jordi

dangi said...

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

Jamie said...

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

Unknown said...

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!

Anonymous said...

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. :)

Lars Fosdal said...

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;)

dazberry said...

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.

Unknown said...

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

Anonymous said...

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

Daniel Wischnewski said...

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.

Hallvards New Blog said...

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

Anonymous said...

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

William Meyer said...

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.

Warren said...

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

Warren Postma

Tony said...

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

Unknown said...

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

Anonymous said...

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?

Moritz Beutel said...

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!

Anonymous said...

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

Maciej Izak said...
This comment has been removed by the author.
Unknown said...

Hi Barry,

only one word: THANKS!

Best of luck for the future!

Claudio

Marjan said...

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.

Sergey Antonov aka oxffff said...

Thank you, Barry,

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

François said...

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).

dataprime said...

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!

Arioch, the said...

@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 :-)

Arioch, the said...

@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.

Sergey Antonov aka oxffff said...

@Arioch.
It is yours IMHO only.




Arioch, the said...

@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.

Sergey Antonov aka oxffff said...

@Arioch.
Datastream?

Arioch, the said...

some 1D collection.
IEnumerable for example.

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

Arioch, the said...
This comment has been removed by the author.
Arioch, the said...

Damn! IEnumerable<Integer>

Aleksey Timohin said...

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

Anonymous said...

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

Anonymous said...

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

Louis Kessler said...

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

Sofiane Chiheb said...

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

Anton Alisov said...

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

amixer said...

Thank you for infomation