1. The only one I can think of that matches his criteria is Cincom Smalltalk (http://smalltalk.cincom.com/index.ssp). I started to play around with it, and it wasn't bad, but I couldn't get my head around smalltalk. The GUIs are pretty, native looking (actually native? dunno), and easy to make.
      posted by Bill Mill at 06:58:06 PM on December 21, 2004  
  2. The "decent native Win32 GUI" issue drives me bonkers as well. I'm using C# + WinForms at work, but I'm mostly a fan of C# because it isn't C++, which isn't much of an endorsement.

    Does DrScheme have a decent GUI library?

      posted by Adam Vandenberg at 07:34:23 PM on December 21, 2004  
  3. I've only worked with it a little, but ruby-gtk seems to be mature and well-documented. GTK+ for Windows using the WIMP native theme engine is almost at the same level as wxWidgets, in my opinion. (This is a GTK theme engine that actually uses the native Windows theme DLL to draw the controls.) I use GIMP and Gaim under Windows and usually don't notice that they are GTK+ instead of native interfaces.

    Also, wxHaskell might be interesting...
      posted by Matt Brubeck at 07:46:20 PM on December 21, 2004  
  4. Maybe JRuby, because it sits on the JVM, gets around the problem with Ruby and your #2 point? Or one of the scheme implementations for JVM, though I don't think its syntax is very compact. I'd personally vote for Scala, since it gets all the JVM and/or .NET libraries, and does enough type inference to make Scala programs pretty concise while remaining nearly as readable as Python. It's not dynamic, but I'd sneak it past that one like with OCaml.

    Have a look at the alt.lang.jre series of articles on developerworks. Maybe one of those languages will fit.
      posted by Doug L. at 07:53:17 PM on December 21, 2004  
  5. You might want to check out REALbasic. It's about the best cross-platform development environment I've ever used.

      posted by Will Leshner at 08:29:54 PM on December 21, 2004  
  6. Why not Jython? This should be easy transition from Java to Python. Java skills won't be wasted.
      posted by Girts Kalnins at 07:35:45 AM on December 22, 2004  
  7. I'm confused - what lead to the "it can't be delphi or python" critereon? Not to say that Python's perfect, but for the other things he listed, it sounds like it's exactly what he wants...

    Once you've gotten rid of Python and Ruby, it is highly unlikely that any other language is going to meet the rest of his demands seriously. "Why don't you write your own tool, then" is what leaps to mind.
      posted by Glyph Lefkowitz at 10:31:45 AM on December 22, 2004  
  8. I'm sorry, my last post wasn't clear - I didn't want to get into a discussion (as you said you didn't want) of why Python wasn't appropriate - it was an expression of frustration with the way you phrased the question. What I meant was something closer to:

    Your critereon #6 rules out any potentially obscure new projects which meet all of your other criterea - your critereon #2 (allegedly) and #1 rule out all well-known established candidates.

    You can't have your cake and eat it too. You already know about the mature, established dynamic languages out there. If you're unwilling to try something new and exciting, why are you asking for pointers to new and exciting things? :)

    (FWIW: Cincom and Franz's products are very good technically speaking, but every project I've worked on in a proprietary environment has crashed and burned horribly when the vendor decided to hold some feature or information hostage in exchange for a lucrative "support contract" or hefty upgrade. (in terms of man-months of work AND of price) I don't know anything about either of those vendors specifically, but I suspect that it is unconsciously their business model to do the same thing.)
      posted by Glyph Lefkowitz at 10:42:20 AM on December 22, 2004  
  9. Jython meets all the criteria except possibly #1.

    1. Without knowing why Python is ruled out, I can't say if Jython is OK or not.

    2. Swing can build decent Windows GUIs

    3. Most databases are supported with JDBC

    4 & 5. Hey, it's Python!

    6. Maybe a little too stable - Jython 2.1 has been out for over a year. You can use pretty much any Java library. There is a fairly active and helpful mailing list.

      posted by Kent at 11:19:21 AM on December 22, 2004  
  10. Unfortunately, Jython (being a Python implementation) is not acceptable either. It's not CPython that's excluded, it's all Python implementations. :-/

    And yes, the exclusion of mainstream dynamic languages like Python, Perl and Ruby (for various reasons) makes it difficult to solve this "puzzle". :-(

    We are willing to try something new and exciting, but the existing user base shouldn't be *too* small, and the language shouldn't be too unstable. (Needless to say, it's hard to write production code if your language keeps changing under you.)

    There are tons of languages for .NET and the JVM, maybe we can find a few that don't do too bad in the #6 department...
      posted by Hans Nowak at 09:48:05 PM on December 22, 2004  
  11. Try a language that sits atop of the JVM. When you cant use jython or jruby then try jscheme or SISC.
      posted by fxj at 03:12:10 PM on December 23, 2004  
  12. Lua with wxLua is worth looking into.

    1. It's not Delphi or Python.
    2. It has wxLui bindings to wxWidgets.
    3. It has a number of database interfaces, e.g. LuaSQL, LuaBDB
    4. Yes, yes, yes. It's a compact language with support for goodies such as closures. Note that it doesn't support a particular Object-oriented model in syntax (the Lua book shows two different approaches).
    5. Probably similar to Python in productivity.
    6. Yes, not as popular as Python or Perl, but it is increasing in popularity. It's been around since 1993, and it's pretty stable now, and there is a book in print.

    Note that I haven't used Lua much yet (I've done a good amount of Python programming), but I am looking at using it for a microcontroller project.

      posted by Tony B at 04:50:08 PM on December 23, 2004  
  13. Well, since Python's off the table, I feel like there's some strange requirement that's not listed. Unless it's truly as simple as a person who just really dislikes Python and Delphi, but is otherwise open minded. Eh, as long as they're paying you, right?

    Anyway, Rebol seems interesting, and I believe it has decent GUI support. It's like a friendlier Lisp. There's several mature Smalltalk implementations out there, and probably several of them use nice native widgets. VisualWorks is one, but you should look at Dolphin and the others, with a mind to creating an encapsulized program (many Smalltalks target internal projects, and fold the GUI together with the IDE in ways that might be awkward for you). I doubt Glyph's concerns will be too much of a problem -- I don't think those companies do business in the style of Oracle or its ilk.
      posted by Ian Bicking at 10:33:06 PM on December 23, 2004  
  14. Does Erlang have a decent Windows GUI interface? Other than that possible hitch, it seems to meet all your other criteria.
      posted by John Eikenberry at 01:36:31 AM on December 25, 2004  
  15. Has anyone considered dynamic languages' forgotten cousin.

      posted by Chui Tey at 06:29:13 PM on December 29, 2004  
  16. notice that tk does look perfectly native on win(xp) if you use tile:
    The tile extension is included in tcl 8.5 and usable from ruby 1.8.2.
    I'd suggest going with tcl, it is mind blowing enough.

      posted by verbat at 09:06:46 AM on December 30, 2004