[FoRK] Top general purpose languages: Practical choices for app logic / presentation & web / server apps
dmorton at bitfurnace.com
Tue Jan 18 01:37:43 PST 2011
Its worth reconsidering C#, both .NET and Mono. Its more than Java with a
few tweaks. I find it a much more pleasant experience than Java. In
particular, its worth familiarising yourself with the LINQ part of the
language, which is something extremely powerful and unique to C#. Its also
worth considering Visual Studio as a huge bonus, possibly the best IDE on
For me the languages of choice are: Python, C#, and C/C++, in order of
On Mon, Jan 17, 2011 at 11:20 PM, Stephen Williams <sdw at lig.net> wrote:
> Additions and comments on these points would be helpful. In the following,
> proprietary-ish choices are filtered out (Visual Basic, .Net, etc.) except
> when they have a very privileged spot in a hot market (Objective-C/Cocoa)
> and are at least mostly open. (And, no, Mono isn't going to make .Net
> attractive. It is just Java with a few tweaks and a different library. Not
> worth the headaches.)
> I'm working on building and documenting some architecture and coding
> techniques and examples. Due to recent activity, and also breadth of market
> footprint for at least certain kinds of apps, my main targets are
> Java/Android and Qt/C++, with Objective-C/Cocoa when I get time. These
> days, frameworks / libraries are so important and torque the design so much
> that I think of language/framework combinations as independent language
> points. For instance, C++/Qt is distinct from C++/STL/Boost which is miles
> away from C++/MS-whatever, even though generic C++ code would work with any
> of them.
> For desktop app development, the obvious choices are: C++/Qt (possibly with
> OpenFrameworks or OpenGL additions), Java (Swing or SWT or Processing), or
> Flash/Air/Flex. There doesn't seem to be a strong reason do go with
> Objective-C/Cocoa for desktop applications, unless you only want to target
> Mac OS and iOS/iPhone/iPod/iPad. PyQt is interesting as it leverages
> cross-platform Qt and Python in a powerful way. Mostly secondary to C++/Qt
> so far though.
> For mobile development, current front-runners in terms of market and/or
> technology: Android, iOS/Objective-C, and Qt (either directly for Nokia
> smartphones or as an emerging method for Android).
> with Java via GWT doing HTML5 seem tops currently, plus Flash as a separate
> strong option and Java applets as a weaker, but sometimes important option.
> For instance, I'm finishing a Java-based PC emulator that runs as an
> applet, similar to but better than JPC (JavaPC) which is uber cool.
> For server development, the top candidates are Java, Python, Ruby, and PHP.
> With current licensing, I wouldn't be surprised to see the rise of C++/Qt
> as a server development environment. A lot of server environments (Apache,
> etc.) are written in C or C++, but few applications. Qt provides a nice
> enough application environment (like effortless reference counted auto
> shallow/deep copy objects and templates along with one of the best
> thread-safe signaling mechanisms) that it would be a good alternate choice
> Perl is still there, but not growing or interesting anymore. I'm not too
> hot on Ruby: While there is great buzz, momentum, and fast-start frameworks,
> there seems to be a fatal shallowness that is a turnoff.
> I mostly count the j* (jython, jruby, scala, etc.) languages as part of
> Java, although few of them would work with Android/Dalvik.
> There are some interesting emerging languages: Go, etc. What are the best
> possibilities here?
> In order of interestingness for client/desktop:
> Java - Client: Android & Processing/SWT, Web: GWT, raw to JS libraries
> C++ - Client: C++/Qt, Web: C++/Wt (GPL/commercial) or similar for web
> Objective-C: Client: Objective-C/Cocoa
> Python - Client: PyQt, Web: various frameworks , web2py for instance
> PHP - Web: Various frameworks , Symfony for instance
> For web development, the order is:
> Java/GWT, possibly with a C++ layer
> Python/web2py et al, possibly with a C++ layer
> C++/Wt, possibly with a Java layer
> PHP, Symfony et al
> PHP, while popular, venerable, and having grown past the simple start, is
> still hard to take as seriously as Java/C++/Python/Objective-C for
> potentially large, complex, and/or scalable projects.
> Now that it is easy to do rich Java-C++ integration (I'm publishing /
> presenting soon!), the line is a little more blurred between Java/C++ both
> for Android and other client environments and for server apps, GWT for
> instance. However, Qt is a far better GUI framework than anything available
> for Java.
>  http://wiki.python.org/moin/WebFrameworks
> Stephen D. Williams sdw at lig.net stephendwilliams at gmail.com LinkedIn:
> http://sdw.st/in V:650-450-UNIX (8649) V:866.SDW.UNIX V:703.371.9362
> F:703.995.0407 AIM:sdw Skype:StephenDWilliams Yahoo:sdwlignet Resume:
> http://sdw.st/gres Personal: http://sdw.st facebook.com/sdwlig
> FoRK mailing list
More information about the FoRK