I'm looking for a recommendation for a programming language, specifically one that is good for writing GUIs. I do most of my development in Java so most of my GUIs are done in swing. You can make Swing sing and dance and do some really cool stuff but it's time-consuming, mind-numbing work. A lot of my project ideas revolve around visualisations and user interaction so I'm looking for an alternative to Swing. I have a list below of features I think are important and another of features that would be nice to have. I realise that a language that is great for user interfaces might not be the best for some of the background work. It would be really cool of there is something that can be easily hooked up to other technologies so I can use another language for the back end.
- Easily create complex resizable layouts
- Diverse selection of standard widgets
- Customisable Displays (e.g. list and table cell renderers)
- Powerful 2D graphics
- Free (or possibly cheap)
- Interoperable with other languages
- Can make desktop apps
Some of these are me not wanting to lose the features I like in Swing (widgets, customisable displays, 2D graphics, free) but the really important one is the ease of making layouts. Java's Layout managers tend to be overly simple and a lot of nesting has to be done to achieve good results. At the other extreme, setting pixel coordinates for each item is too fiddly. Perhaps HTML hits the sweet spot with sensible default rules for laying out elements, customisable with style sheets, and pixel placement available if necessary. I'm open to suggestion here.
Nice To Have
- Optional D&D form designer (sometimes all you really need is a window with some buttons in it)
- 3D graphics
- Native look and feel
- Cross platform
- Web applications
- Interoperable with Java
Ideally, my language would be all of the above, but I would be willing to drop any or all of the nice-to-haves for the sake of getting all the importants.