Home > OCaml, Scheme, Technology > Writing Windows GUI apps in languages other than C/C++

Writing Windows GUI apps in languages other than C/C++

Currently I’m looking for a new programming language to learn, with hope it will become my next language of choice. Since I’m mostly developing two kinds of software: Windows GUI apps and Unix network apps, so I’m looking for language which is capable to do both. Currently I see no alternative to C/C++ in this area.

Java is quite suitable for server-side, but not very suitable for client-side apps. It’s not convenient to ask users to install JRE, look-and-feel is different, application starts slowly. Yes, I know about SWT, but SWT is not a pleasure to work with for me (I can’t bear manual resource disposal in Java), and it fixes only look-and-feel. So, on client side Java is suitable only for small tools which will be run by Java people only (they already have JVM installed). If you are Java programmer, then making Swing front-end to your library is a good thing, but I doubt that it will be sold well. I know only two commercial Swing applications: Intellij IDEA and MagicDraw UML, both intended for Java developers, not for general public.

Scheme is one candidate for my new language of choice. I simply like Lisp syntax. But sockets and threading is implementation-specific, no good binding to Win32 API.

OCaml is another candidate. They strongly advertise performance, and it appeals to me. OCaml has sockets and threading, but problems with Win32API.

With Scheme and OCaml my main consern is that they are very Unix-biased. They can work with standard input and standard output out-of-box, so you can make console applications with those languages. However, for client-side applications Windows dominates the landscape. OCaml provides bindings for GTK+, but such apps don’t look “native”.

It seems that for client-side I need to stick with C/C++. These are languages used in writing Windows itself, so Win32API bindings for them are natural. And now, at last, there are powerfull UI libraries, such as SmartWin++. If I will find a good way to combine Scheme or OCaml with C/C++, then probably my client-side programs will be written in two languages: internal logic in Scheme or OCaml, and UI in C/C++. I don’t see any trouble in writing applications in several languages.

I don’t like GTK+. I don’t like WxWidgets. I don’t like Tk. I don’t like cross-platform widget toolkits.

SDL is a good library, but not a widget toolkit. I don’t see any use for it outside computer games

I don’t like CygWin/MSYS.

Update: I was wrong about OCaml. It’s fully usefull for development of GUI programs for Win32. That’s explained in this article

Categories: OCaml, Scheme, Technology
  1. No comments yet.
  1. June 15, 2007 at 3:30 pm

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: