OCT
29
2007

Quickies: Radio Amarok, 12 KDE Tips, Asus' KDE Laptop, PyQt4 Book

The Radio Amarok Team is looking for a new design, and they have decided to leave it up to you on how it should look. *** Bruce Byfield, of Datamation has written a several page article titled, 12 Tips for KDE Users. Bruce covers the KDE Printer Dialogue to using Klipper and configuring virtual desktops. *** Asustek Computer Inc's KDE based low-cost laptop, the Eee PC, nearly sold out its first day on sale in Taipei according to the article Eee PC posts hot sales on first day in Taipei. *** Need a new book for the holidays? Look no further than Rapid GUI Programming with Python and Qt: The Definitive Guide to PyQt Programming, by Mark Summerfield. This book is aimed at a much broader audience than the author's C++/Qt books and is also a great introduction to GUI programming and the Qt 4 libraries in general. This book is now available on Amazon. *** Rudd-O looks at KDE 4 Beta 3 and has a cursory look into Dolphin.

Comments

Let's hope we get a Qt4Ruby book soon too :)


By patcito at Mon, 2007/10/29 - 5:00am

and perl bindings for Qt4...


By korpenkraxar at Mon, 2007/10/29 - 5:00am

and Haskell ones too...


By LHS at Mon, 2007/10/29 - 5:00am

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.

http://urchin.earth.li/pipermail/debian-haskell/2006-May/000169.html

Anyone knows of any news regarding that?


By LHS at Mon, 2007/10/29 - 5:00am

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.


By Richard Dale at Mon, 2007/10/29 - 5:00am

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.


By LHS at Mon, 2007/10/29 - 5:00am

>> The Haskell community is very strong in the academia world though.

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.


By Leo S at Tue, 2007/10/30 - 5:00am

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.


By LHS at Tue, 2007/10/30 - 5:00am

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.

Okay, maybe FORTRAN77 bindings would deserve a *few* giggles... ;)


By Evan "JabberWok... at Tue, 2007/11/13 - 6:00am

Object Oriented Languages for programming not Object Oriented Operating Systems?
What OS is OOL writen?

Linux depends on python too much. If you need to delete a program with a python lib you may loose the entire system because you may break the package management system database.

A Linux Distro is some programs under a Package Management System.
Take a look at GoboLinux.org and check it out: we do not really need a Package Management System.
Who does?

I think the language the OS is writen on should not interfere with other programs.
Shoud exist a python for OS and ANOTHER version of python to programmers to do their stuff.

The language one uses to write the OS shoud NEVER be used by others.
I think we may consider to start a new version of Linux writen with an OOL, like OCaml, Haskell, MOZart, Ruby, Standard ML, etc...

Check it out: ttp://www.ffconsultancy.com/languages/ray_tracer/index.html.

The problem is the compiler.
Does Haskell compiles and is it comparative to GCC?

From http://linux.softpedia.com/get/Programming/Compilers/The-Glasgow-Haskell....

"The Glasgow Haskell Compiler description

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."

And from here, at http://www.mozart-oz.org/papers/abstracts/Diss-Henz.html:

"Doctoral Dissertation, May 1997, Universität des Saarlandes.

The programming language Oz integrates the paradigms of imperative, functional and concurrent constraint programming in a computational framework of unprecedented breadth, featuring stateful programming through cells, lexically scoped higher-order programming, and explicit concurrency synchronized by logic variables.

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"

And how about comparing them all? http://shootout.alioth.debian.org/gp4/benchmark.php?test=message&lang=all.
Try others tests.

From here http://www.ffconsultancy.com/languages/ray_tracer/verbosity.html I get this segment:
"Summary

OCaml is the most concise language, followed by Standard ML and then C++, Java and Scheme. Finally, Lisp is the most verbose language."

And from "http://www.ffconsultancy.com/languages/ray_tracer/performance.html
we have:
"Fastest implementations

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."

From http://www.ffconsultancy.com/languages/ray_tracer/conclusions.html:

"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!"

About that?

Comparing: take a look at the table with the comparison.

And if OCaml is being used on OS virtualization?
Take a look at http://ocamlnews.blogspot.com/2007/09/xensource-sell-for-500m.html:

"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."

How to choose the BEST language?
And to do what with it?

I have doubts about what language to choose. Is FreePascal so old it could not be a good choice? See it here:
1 - http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=ghc&la...
2 - http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=oz&lan...
3 - http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=ruby&l...
4 - http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=mlton&...
5 - http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=ocaml&...
6 - http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=python...
7 - http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=gcc&la...
8 - http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=gpp&la...

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?

I am in great doubts about choosing a language to base my work on.

... and about clipper ...

What do you think about having Object Oriented Clipper?
http://www.harbour-project.org/
http://www.xharbour.org/
http://www.itk.ru/english/index.shtml

What kind of problem do I have to have to get THE RIGHT choice?

Why is OOPL so important at all if OO is not a http://www.m-w.com/dictionary/panacea? Or is it?


By Marcio Carneiro at Sat, 2007/11/03 - 5:00am

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.


By Richard Dale at Mon, 2007/10/29 - 5:00am

I wonder if the KDE (?) "simplified interface" Xandros/ASUS are providing is/will be available for other distros (yes, I know, ought to, but ...)
Looks as a nice interface for computer-shy users


By asshur at Mon, 2007/10/29 - 5:00am

You can go to the other dot and gloat over the disintegration of the dark side.
The feces have hit the fan.
http://slashdot.org/comments.pl?sid=342519&threshold=1&commentsort=0&mod...

Ach Shadenfreude, mon amour.


By reihal at Mon, 2007/10/29 - 5:00am

you need to click through 4 pages with only a couple of paragraphs, come on!
don't submit such things!


By not a cow at Mon, 2007/10/29 - 5:00am

You can always middle click the links labeled 1 2 3 4 (page) at the bottom of the post to have them load in parallel. Gotta pay for the bandwidth, don't I?

:-)


By Rudd-O at Mon, 2007/10/29 - 5:00am

I think no-cow was talking about Bruce's article, not yours. Yours is much better informed anyway.


By Leo S at Mon, 2007/10/29 - 5:00am

http://aseigo.blogspot.com/2007/10/kde4-krush-days-saturday.html
triaging and fixing day on saturday, november 3rd on irc in #kde4-krush.


By Dolphin-fanatic :) at Mon, 2007/10/29 - 5:00am

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.


By Evan "JabberWok... at Tue, 2007/11/13 - 6:00am