[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.
Kelley
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
>[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
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