Preferred Programming Languages

Date Arrow  March 9, 2007

There are basically 5 languages that I really like. For several reasons. 2 of them are proprietary, while 3 are open-source. 2 are statically typed, and 3 are dynamically typed. All are fully object-oriented. 3 can be used for web development, 4 for desktop apps. And none is Java.

169172137_5c078a3a1f.jpg

My preferred compiled language? C++. You get the full-power of many operating systems, from the same source code, without compromises; OK, it takes time to get used to the lack of memory management, but it is highly portable, extremely fast, and there are a couple of extremely good libraries around the corner that fully justify getting into it: POCO, Juce, Boost, wxWidgets, Qt, CppUnit, Doxygen… Once you get some habits and good practices you can very quickly put some complex code together. What are the best books you can read about it? Stroustrup’s to start, Meyer’s to go deeper, and O’Reilly’s to go faster.

My preferred scripting language? Ruby. As someone said, “elegant as Smalltalk, simple as Python, and pragmatic as Perl”. A pleasure to use; you can very quickly create complex applications in just a couple of lines of code. And with Rails, well, I got the impression that finally someone got web development right. It’s got the best of PHP, the best of WebObjects, the best of Ruby.

My preferred web language? JavaScript. It might be the most misunderstood programming language, it is one of the nicest too. Dynamic, extensible, flexible as rubber. OK, not the fastest, but does it always matter?

My preferred Apple language? Objective-C. A mix between Smalltalk and C? A static scripting language? Or a dynamic language with a compiler? Objective-C is OOP as it should have always been done. And Cocoa is in my opinion the most comprehensive, extensible, advanced and stable foundation ever created for application development.

My preferred Microsoft language? C#. Even if I left my Microsoftie life behind, I think that .NET and C# are probably the best products ever done by this company. Ever. .NET is a strong and complete foundation, and it does not surprise me that companies choose it for their Windows-based development. There’s simply no better way to do Windows development. I said Windows: for web development, I think that ASP.NET sucks. Rails rules.

Similar Posts:

Tagged   Code · Opinion

5 Comments

  • #1.   she
    12.19.2007

    very interesting

    i am also curious how your opinion changes, let’s say, the next 3 years :)

  • #2.   adrian
    12.19.2007

    who knows! rendez-vous in 2010 ;)

  • #3.   Lee
    11.21.2009

    It’s also 2010… care to share any changes that may have surfaced over the past 3 years?

    I love your style… rarely is there someone who can evaluate languages and frameworks pragmatically without turning into a cheerleader for the either the Apple or Microsoft camp… you seem to have a ‘use what works’ attitude, and that’s exactly my own!

    My current peev is that I build most everything in PHP (using symfony), and whilst this suits for general web development, I *hate* that the entire framework has to re-load on every page hit.

    It just doesn’t seem natural.

    What I’d love is something compiled, that sits in memory, loads settings and preferences once, and waits for page hits which it serves directly from memory without loading 100 different files, class schemas, DB init objects/connections, every time one of the 50,000 a day visitors hits the server.

    It just seems to… wasteful?

    Is there a better option? Even if no new languages have caught your attention these past few years, would you recommend, say, Objective-C or C++ for web dev?

    Thanks! -Lee

  • #4.   Adrian
    11.21.2009

    Hi Lee,

    Thanks for your insightful comment! Rails does what you request, for example when using Mongrel, the app is loaded in memory once, and then every request is handled with that code. I don’t know exactly the internals of Symfony (which I’ve also used and enjoyed, actually). I suppose you have the same problems with other PHP frameworks, but I can’t tell for sure.

    AFAIK there’s no ObjC web framework (WebObjects used to be in ObjC but was migrated to Java in the late 90s), but here’s one based on C++: http://www.webtoolkit.eu/wt

  • #5.   Lee
    11.22.2009

    Thanks Adrian, I didn’t know about Mongrel ‘caching’ the app in memory, so I’ll definitely check that out.

    I’m also looking at memcached and some other ways of building a ’smarter’ framework that pulls variables from memory instead of re-loading a ton of settings files… what I’m looking for more than anything is a stateful PHP implementation that allows class definitions and functions to remain resident so when they’re invoked, there’s no interpretation cycle… it just works…

    Trying to get those native C speeds as close as possible!