Help Required for Choosing Programming Language

Andy Dingley dingbat at codesmiths.com
Mon Feb 19 11:03:43 EST 2007


On 16 Feb, 21:22, ifti_cr... at yahoo.com wrote:
> I am VB6 programmer and wants to start new programming language

Why?  What is causing you to do this, and what do you need to achieve
by doing it?

> i want to go through with GUI based programming language like VB.net

"GUI-based" is fairly unimportant as it's just how you build your
programs, not what they do afterwards. VB is GUI-based, Python can be
GUI-based but is usually fairly text-based.

What's probably more significant here is whether the resulting program
runs in a GUI or not. VB obviously does, on the Windows desktop. Java
also has a sizable market for cross-platform GUI applications. In many
ways Java is more capable than VB, but also far less easy to work with
for rapid simple applications (I'd take 10 year old VB over GridBag
any time!).

GUI programs are less important now than they were a few years ago,
owing to the huge importance of the web and HTML. Although HTML can
still be seen as GUI, it really needs to be worked with at the raw
HTML source level (at least for quality work). This doesn't need any
sort of GUI built into the language, so Python (or Ruby or Perl) are
ideal.

With the rise of AJAX toolkits, we're finally seeing "HTML as a GUI"
turn into a workable choice for building sophisticated GUI apps in a
sensible amount of time. Finally!  The tools used here depend
significantly on the toolkits used and it's still early days to pick
winners.

If I had to write Windows-only desktop GUI apps, then I'd stick with
VB6 (which I wrote for years) or whatever M$oft decree to be its moral
successor. Actually I'd probably stick with VB6....

If I had to write cross-platform GUI desktop apps, then I'd be looking
at whatever the favoured toolkit for Java is this week. Maybe Swing,
if I wanted to get a paid job using it. Java Web Start needs looking
at too.

If I just had to make "a sophisiticated GUI app" appear on a lot of
corporate desktops, then it would probably be based on Java Server
Faces.


For nearly all of the choices above, the "language" part of the task
is minor in comparison to tiresome GUI building. That's just the way
commerce works, and why we don't all get to write everything in Scheme
or Haskell.


If I had a free hand in writing better shell scripts, or in writing
moderately complex algorithms with no visible UI, then I have chosen
Python. It beats the hell out of Perl and is (AFAICS) better than
Ruby.

For building web reporting apps that generate HTML, then I'm also
choosing to use my sparse Python knowledge rather than my substantial
Java / JSP knowledge. Seems to be working so far.

For web-hosted GUI apps, I don't know enough about Python to say.
Doesn't look like it beats JSF though.


There's also the question of what "OOP" means. For the "mainstream"
languages, then classic statically-typed OO is done best by writing in
Java. This has a cleaner OOP language design than C++, the benefit of
a decade's hindsight and a clean slate.

Dynamically or duck-typed languages like Python and Ruby are quite
different from this. It's still OOP, but not how your uncle Bjarne
knew it. Quite a culture shock too.




More information about the Python-list mailing list