In case anyone thinks it's silly to mention Haskell bindings, you might want to know that the Linspire guys were actually planning on doing it, as they standardized on Haskell as their preferred language for core OS development.

Interesting link, but no I haven't heard anything about Haskell bindings. The problem is that to justify all the large amount of work involved in creating a new binding, you need to have a potential critical mass of community, and I'm not sure that Haskell is mainstream enough yet.

Recently people have been working on new Ada and Lua Qt bindings. And work on PHP, Python, Ruby, C#, Java and JavaScript bindings for Qt (and KDE too for some of them) continues.

Yes it is understandable. The Haskell community is very strong in the academia world though. Nice Qt/KDE bindings for Haskell would have the potential to get an enormous amount of functional programmers contributing to KDE. Now that's something that shouldn't be underestimated.

Not around here they aren't. I'm doing my masters of computer engineering in Canada and I've never heard of anyone using Haskell for anything.
And if these masses of academics using haskell do exist, what makes you think they will want to contribute to KDE? Academics tend to be very busy, in my experience.

At least in Europe, nowadays Haskell is probably the functional language of choice. Just check any Functional Language conferences, summer schools or whatever and you'll see how much of it is Haskell related material. It is widely used, mostly among computer science students around here.

Of course academics are busy, many of them are busy programming in haskell and quite a few would be keen on having nice Qt/KDE libraries to build GUIs for their programs, display graphical stuff etc.

Different fields in academia, different languages. My wife actually commented (as a pure flight of fancy) that she'd like FORTAN77 bindings. Seriously. She's a computational chemist doing simulations of the molecular dynamics of proteins. It would be handy to have a same language GUI, as right now it is a Java GUI with FORTRAN code actually running the data, and she has given up on maintaining the (poorly written) GUI, hand coding her data tables in vi.

>> what makes you think they will want to contribute to KDE?

I don't think it matters if they contribute back... the point is that they can *use* it, no matter how niche it is. Or are you of the opinion that somebody using KOffice should be kicking back code? Plenty of people just use KDE apps, and the same would apply to bindings for some of the more obscure languages that have specialized userbases. It makes their work easier, and their computing experience better. Which is a fair summation of what KDE is for.

I'm not saying it will or should happen (somebody would have to step up and do it), I'm just saying that it's not laughable that it would be very useful to have bindings for some of the more esoteric languages.

The Glasgow Haskell Compiler is a state-of-the-art, open source, compiler and interactive environment for the functional language Haskell.

Here are some key features of "The Glasgow Haskell Compiler":

· GHC supports the entire Haskell 98 language plus a wide variety of extensions.
· GHC works on several platforms including Windows and most varieties of Unix, and several different processor architectures. There are detailed instructions for porting GHC to a new platform.
· GHC has extensive optimisation capabilities, including inter-module optimisation.
· GHC compiles Haskell code either by using an intermediate C compiler (GCC), or by generating native code on some platforms. The interactive environment compiles Haskell to bytecode, and supports execution of mixed bytecode/compiled programs.
· Profiling is supported, both by time/allocation and various kinds of heap profiling.
· GHC comes with a wide range of libraries.

GHC is heavily dependent on its users and contributors. Please come and join the mailing lists and send us your comments, suggestions, bug reports and contributions!"

From here: http://programming.reddit.com/info/o96l/comments, I chose the next text:
"f you're looking for a tool you won't be able to code without once you've learn it, choose ocaml. If you're into getting your mind [over]stretched, pick haskell.

Haskell is extremely clean; if you write your programs in a functionnal style, they'll feel neat in a very rewarding way. If you don't write them in a 100% functional way, well... they won't compile at all.

OCaml encourages functionnal style, but doesn't force it down your throat when inappropriate. Since the real world, with which you might plan to interface, is rather stateful, you'll often be happy to put a couple of "!" and "mutable" here and there, in the crucial 10% of your project which are intrinsically imperative.

In Haskell, be prepared to put loads of monads everywhere. As an interesting example, consider template haskell: it's a conceptually neat and powerfull meta-programming framework for Haskell, but for every constructor you need a basic type, a monadic type, a basic constructor and a monadic constructor wrapper... what for? All this kludge only because the gensym() operator, which creates a new variable name, can't be written easily in a functional style! And that's code written by world-class haskell coders! in OCaml, you'd just have written: let gensym = let count = ref 0 in fun () -> incr count; "$" ^ stringofint !count

and that's it, no boilerplate all around the program because of very anal attitude towards imperative stuff."

Object-oriented programming is another paradigm that provides a set of concepts useful in software practice. In this thesis we address the question how object-oriented programming can be suitably supported in Oz. As a lexically scoped higher-order language, Oz can express a wide range of object-oriented concepts. We present a simple yet expressive object system, demonstrate its usability and outline an efficient implementation. A central aspect of Oz is its support for concurrent computation. We examine the impact of concurrency on the design of an object system and explore the use of objects in concurrent programming.

A revised version of this dissertation is available in book form from Kluwer Academic Publishers. Full bibliographic reference is available in the BibTeX entry.

The Kluwer International Series in Engineering and Computer Science, 1997, Kluwer Academic Publishers"

It is not this what everybody is talking about?

"The programming language Oz integrates the paradigms of imperative, functional and concurrent constraint programming in a computational framework"

C++ is the fastest language in both 32-bit and 64-bit. However, the higher-level Scheme and OCaml languages are not much slower. Stalin-compiled Scheme is only 30% slower than C++ in 32-bit. The fastest OCaml is only 9% slower than C++ in 64-bit."

"OCaml provides two compilers, one byte-code (ocamlc) and one native-code (ocamlopt). The ocamlc compiler is 5× faster at compiling these ray tracers than the ocamlopt compiler but native-code executables produced by ocamlopt run much faster. The ocamlopt compiler combines one of the fastest compilation times with one of the fastest running times. OCaml also provides an interactive top-level (ocaml) that is useful for testing program fragments."

Conclusions

"Fast development time, succinct code, fast compile time and fast run time make both OCaml and Standard ML very desirable languages for serious software development. Efficiency makes these languages suitable for performance critical work. Rapid development and brevity makes them ideal for prototyping. Static type checking makes them ideal for intrinsically complicated programs."

"Many programmers are currently migrating from C++ to Java because of the increase in program stability offered by Java (e.g. no pointer arithmetic, garbage collection). For precisely those reasons, we certainly concur that Java is preferable to C++ for serious programming. However, given our results, we believe that these programmers would do well to learn either Standard ML or OCaml as well. These languages are smaller, simpler and more expressive, faster and easier to develop in and produce faster executables. Above all, they're more fun!"

"XenSource, one of the world's most prominent players in virtualization and a customer of Flying Frog Consultancy, recently announced their sale to Citrix for $500M. The core value-add of XenSource's product line over the open source Xen virtualization package is a sophisticated management tool stack written almost entirely in OCaml."

This is great: at http://wagerlabs.com/archives/92.html:
"I found the One-Day compilers presentation quite fascinating and so I started with OCaml. Three months have gone by and I now have two fully developed versions of the translator, one written in OCaml and another in Haskell. After briefly deploying the Haskell version I decided to throw it away and move on with OCaml.

Why Ocaml? Why not Haskell? I'll list the pros and contras below, in no particular order. I'll write up a summary first, for those of you not interested in reading the whole post.

--- Summary ---

There's an elephant in the room. It's there, it's huge, it's something that nobody talks about. OCaml is the practical Haskell. It's functional, statically typed and blazing fast. Performance of OCaml programs is well defined. With OCaml you go from asking why your code is spending 70% of its time collecting garbage to actually trying to polish your code.

I cannot emphasize this enough. GHC takes 2-3-4 minutes to rebuild my project whenever I touch the parser. Ocaml takes 1-2-3 seconds. I use a 2Ghz Core Duo MacBook Pro and Topdog is decidedly not a large project which makes the difference all the more glaring. With Haskell I was loath to touch the parser or my syntax tree definition, with OCaml I look forward to tweaking things to my hearts content. Normal recompilation time of Topdog is so far as to be almost unnoticeable."

And do not forget Eiffel.

FreePascal is BETTER than almost all other languages on those tests!
Nobody speaks about FreePascal.
Why is that? It is not academically correct?
Technical?

Well QtRuby for Qt4 is based on the PerlQt code, and so the Smoke library that they both use has already been ported to Qt4. Also a lot of the code for the Qt4 changes in QtRuby like slots/signals could be ported back to a Qt4 version of PerlQt. Germain Garand (one of the main Qt3 PerlQt developers) mentioned in an email recently how he would really like to do a Qt4 PerlQt if only he could get some serious help.

Additionally, a guy has started on some Perl Qt bindings from scratch, and he occasionally writes to the kde-bindings@kde.org mailing list about his progress.

It should probably be mentioned that the "Dolphin review" is actually a review of D3lphin, not Dolphin. Kubuntu Gutsy does not have Dolphin installed, but rather the (neat but incomplete) backported D3lphin. Probably worth a review, but it's liable to confuse people a bit.

Do an ls -l `which dolphin` ("dolphin" is a symlink to "d3lphin"). Well, that plus Dolphin is a KDE4 app, and Gutsy doesn't yet have KDE4 by default.