[FoRK] Top general purpose languages: Practical choices for app logic / presentation & web / server apps

Damien Morton 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
the market.

For me the languages of choice are: Python, C#, and C/C++, in order of
speed.

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).
>
> For web development, Javascript via various libraries (Node.js, etc.) and
> 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
> to Java and Python.  Javascript has been getting some server play too.  And
> 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 [1], web2py for instance
> PHP - Web: Various frameworks [2], 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.
>
> [1] http://wiki.python.org/moin/WebFrameworks
> [2]
> https://secure.wikimedia.org/wikipedia/en/wiki/Comparison_of_web_application_frameworks
>
> sdw
> --
> 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
> twitter.com/scienteer
>
> _______________________________________________
> FoRK mailing list
> http://xent.com/mailman/listinfo/fork
>


More information about the FoRK mailing list