Hans Oischinger talks about how he found it hard to learn about programming the Qt/KDE api.
All of his comments apply to ruby Korundum programming; in ruby you can use slots/signals, KConfig XT .kcfg files, Qt Designer .ui files, KXMLGUI .rc files, DCOP, KDE::Parts (KParts) or subclass KDE::Command (KCommand). But the problem with total ruby/KDE integration is that the docs, if they exist at all, are for the C++ api.
I really think that KDE is the best application programming framework since NeXTStep 15 years ago or so, but it does concern me that you can't actually walk into a bookshop or download a PDF about learning the api.
Maybe as well as 'Usability, usability, usability' as a top priority for KDE users, we need 'developer docs, developer docs, developer docs' as the equivalent priority for making KDE popular as a development platform..

3 years on
Ok, its been three years since this thread was active and I was wondering what the status is on the apparent push some guys were making to create some quality documentation?
I'd be really interested in buying a book on the subject and if there is no book/wiki yet, then I would be happy to help out in whatever way I can.
Newbie tryng to start learning KDE
For quite some time now I'm trying to help KDE by testing beta versions and reporting bugs. I am also part of Slovenian translation team. But this year I decided to try to do even more for KDE by trying to learn about programming for KDE. I'm quite new to all C++, Qt and KDE programming, so I was also searching for information for newbies like me on KDE.org home page. The page where I found some usefull information to get me started is: KDE Quality Team - Programming Guide. I think this is quite a good start for new programmers. And if anyone is going to start writing some HOWTO for new KDE developers, maybe it would be the best to use this page as a start and try to expand it by adding some examples and step by step guides and tutorials by topic and links to some information on specific topics and on all possibilites you can use in KDE.
So I hope this summer when I will have more time I will be able to learn enough to start helping more. Currently I'm still slowly learning C++ and will then start with Qt. I hope someone will decide to start working on some KDE Programming for Newbies HOWTO that will later help us newbies. If someone starts working on this he or she may freely contact me if some complete newbie views/questions are needed to better write the HOWTO.
--
Live long and prosper!
Developer documentation...
I've tried to get into KDE programming many times, each time I became frustrated and figured my spare time programming should be a stress relief. It always ends up turning into having to build up lots of foundation stuff that one expects to already be there.
I've only heard by name a lot of the things that are talked about, in the recent string of blogs, rarely do I see some decent documentation.
Aaron Seigo recent pithy comments on developers, developers, developers need to be heeded. KDE, if it wishes to continue to exist and be relevant needs amazing developer docs. They're more important than new applications, bug fixes and optimizations of any sort. This will increase, nearly across the board, developer talent, passive recruitment, reduce turnover and so on.
The first set of docs should be for the complete noob. There are many passionate young ones who feel perfectly at home chasing down bugs, code tiny apps and plugins or maintaining small pieces of code. They need to be appealed, eased in, in other words training. Their attention spans aren't necessarily long and their time isn't limitless, so we can't have them run around everywhere chasing down docs or reading exceptionally long ones just to do some mundane tasks.
These docs should cover how to setup your environment, dive a bit into configuration and appropriate use of tools like kdevelop, subversion and so on. This has two consequences. First, you get more productive people, bluster all you want but a few terminals and vi/emacs sessions are NOT good for most people. IDEs have powerful features that are just plain great, KDevelop is good. Second, it'll teach them the KDE philosophy rather quickly, integration, reuse and intercommunication. This does require redundancy, svn has svn docs, kdevelop, gcc, and so on, ..., that one could learn from. But that's not quite a reasonable answer if you want people to be able to hit the ground running. You need small getting-started and how-to KDE flavoured guides. Even though, there would be redundancy with the more general documentation, KDE is a behemoth and reading page after page of general documentation for a rather large set of tools (which one assumes the noob knows about) is not a good way to go.
Large tutorials that take you through building a program isn't the right way to go either. Task oriented stuff is far more useful. Which is exactly why google is popular. Developers are EXACTLY like users, "give me the answer to what I'm stumbling over now and I'll see if I wish to learn more later".
It's not even a matter of said noobs needing to start off simple, even that documentation is weak. Moreover, with powerful tools under their belt, they can concentrate purely on code and come up with some very creative ideas brought to life.
Re: Developer documentation...
I think a lot of the info you seek is out there on the Internet, although some isn't, but it's very difficult to connect together in a coherent picture of what the KDE api is all about. If you have a book, at least you know where you are, and the limits of the subject you're trying to study - you have a base to start.
Programming languages have usability features, and ruby was most certainly designed with usability in mind, whereas C++ was not
. But I have found that people can program the Qt/KDE api in ruby even if they can't program in C++, and they can do it from studying the C++ docs. You only need to have a minimal understanding of C++ to understand the docs well enough to use from ruby, perl, python or java. Germain Garand wrote an excellent doc for PerlQt, explaining C++ types to perl programmers - I sent that to a ruby programmer to help him going, and he said it was really helpful. Even a small amount of documentation can make a big difference.
True...
But the question is how much time am I going to invest in that. Not to mention, everyone before me had to do this, currently, the me's are doing it too and the ones after are going to have to do it. That's a huge overhead. Not to mention, this presupposes, that I can spend significant time on this matter.
Now, I'm not merely voicing criticism, if KDE developers, with significant tacit knowledge are willing to start putting together a few links even and notes even in point form, I would be willing to help further that. At least, that's productive, from a community stand point.
Yes, I completely agree Ruby is very user friendly, took me 3 hours and I had written quite a few scripts with it. I'm fairly adept with C++, unless we're talking excessive macros and fringe functionality.
The idea is to build a very usable knowledge base. So when things like new language bindings appear, creating docs for that is simpler, and with little reinvention.
It should be accessible
It should also be in most bookstores and easy to read and learn from, kind of like this one http://www.amazon.com/exec/obidos/ASIN/1593270305/qid=1108234725/sr=2-2/ref=pd_ka_b_2_2/103-9396984-9716662 "The Official GNOME 2 Developer's Guide"
The last KDE book on programming were KDE 2, at least for 4.0 we should have a good one available.
Your definitely right
I'm still waiting for a KDE developer's book to learn KDE programming. Hopefully, with KDE 4 we will see one.
I thought one was under development anyway, it was mentioned last year.
yeah...
after trying to beg details about KService and KServiceType for the last week, I am frustrated enough to write my own book... There is way too much knowledge wrapped up in the secret brains of a few.
At least the KDE 2.0 book was there, sure it was wrong in most places but it was at least there.
I agree w/you & the other pos
I agree w/you & the other posters; my only book on KDE is 2.1 in 24 hours from Sams Publishing--very out of date, no coding/dev info. In fact, all the programming I'm required to learn for school is Win-based, & I hate it. I'd much rather learn how to prog for linux, but can't find any real good, up to date info, books, or workshops on programming--at least GUI-specific for KDE, Gnome, or X.org. Given this lack of basic gui programming info (compared to Win32 .Net, which is everywhere), I'd like to start a Linux GUI programming workshop or weekend conference (those don't seem to exist either, at least in the US). Any takers? I'm thinking Minneapolis, MN as a location.
reviewer
I don't have the secret knowledge ... nevertheless acquiring such could be worthwhile. If you are going to dig it out, I'd volunteer to review the text, to create and/or test examples/figures/tables/whatever - just let me know