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

kelley kelley at inkworkswell.com
Wed Jan 19 17:19:45 PST 2011

Loved this - though I found the focus on Java irritating. It's a bazooka 
for Web development. But I can see the point in so far as, being a compiled 
language, you can hide a lot more. Not sure I agree that you can't scale 
with PHP. It's a matter of coding properly. Much more flexible and the 
frameworks (e.g., Zend) are making it that much easier.

If you can, send me a copy of the paper you're presenting. Love to read it 
and share with our team.


At 10:20 PM 1/17/2011, Stephen Williams 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
>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

When you need to communicate, Ink Works!
Web site: http://www.inkworkswell.com
Linkedin: http://www.linkedin.com/in/kelleywalker
Phone:    (757) 717-9969 

More information about the FoRK mailing list