LinuxTag 2010 WrapUp

Hello everyone,

I have the urge to write a quick wrap up over the just finished LinuxTag 2010: All in all, I had a good time. Really, imo it was better than last time (granted though, last LinuxTag sucked pretty badly).

Anyhow, this time was my first shot at being a speaker. Boy was I nervous… I trembled quite badly at the beginning but got confident after a few minutes. Too many “ähm“‘s and “äh“‘s though ;-) Anyhow, I apparently did my job well enough: My talk was about KDevelop 4 - Faster C++ Programming. But yeah, I did it in German (it was my first talk on such a convention, and I was already nervous enough :P), but still - since I did a live presentation I was apparently able to impress even non-German speaking attendees by the sheer amount of visual coolness I could present :)

Really, the C++ features in KDevelop I showed are so nuts and awesome, I have to thank David and friends for implementing them in KDevelop. Great job everyone! It made my life as a speaker quite easy :)

If anyone is interested in the German talk (audio is good, visuals not really…), you can download a 23min part of the talk on rapidshare: (Thanks to Adrian for recording and uploading it!)

What this talk showed me in retrospect, esp. combined with the feedback I got afterwards and the recurring nags in #kdevelop on freenode, is that we are in dire need of writing documentation for KDevelop. Since we devels don’t have much time for that (and it’s boring…) I think/hope to write at least a short blog series about “hidden” features, i.e. the stuff I showed in my talk. Starting with that, I hope that one of you, dear readers, steps up and creates a proper Docbook documentation out of that :)

Oh and yeah, I had quite a few chats with the friends from QtCreator developers over at the Qt/Nokia booth. They do a quite good job at catching up with us apparently :P Well, that’s what they have their payed developers for after all ;-) One real “advantage” KDevelop has though, is that it’s inherently language agnostic. The Qt guys have of course no intention to support e.g. PHP. We otoh want that - and already do so. I had a few chats with (sometimes future) users of our PHP plugin and got quite good feedback, which I want to implement eventually. Even so, I actually started implementing the first features for PHP 5.3 support: Namespaces. If someone wants a good laugh, look at how that is designed for PHP 5.3, it must have been a drunken Windows guy that never used Namespaces in any other language before… sigh.

Anyways, back to LinuxTag in general: It was of course nice again to see so many fellow KDE developers and supporters. Also seeing the good old Ubuntu Berlin and LinuxTag crowd I “know” now after four years here, was a good thing. What I have to say is that attending a conference and actually taking the time to visit a few talks is much nicer than staying at the booth all time. Yes, sorry Eckhart for even doing some hacking on the booth, but we should all take that time for ourselves. We’ve been a large crowd at the booth nevertheless, esp. since we had the combined manpower (and women!) of Amarok, Kubuntu and KDE! And attending conferences and having some quiet time makes booth-work much more bearable. It’s not like I didn’t talk to people though, quite the contrary. But as always (esp. at events like LinuxTag), you get to talk to at least one insane person every day ;-) And after the second you kind of start to loose your faith in humanity… :P

Nice as always were the social events surrounding the fair-hours, most notably of course the “friends of Qt/Nokia” dinner that served us awesome food once again. The social event of the LinuxTag at Thursday was much better than last year (even though / because?) it was sponsored by Microsoft this year. Good job that we == KDE rocked the dance floor of course ;-) Tonight we wrapped it up with the usual Ubuntu BBQ at cbase, a nice end to an imo good event. If they can improve it some more next year by pushing the community aspect more once again, I’m confident that LinuxTag in Berlin could become as good as it was a few years ago!

Anyhow, now I really have to do some more catch-up for Quanta GSOC ;-) Good night!


Want to comment? Send me an email!

Comment by Benedict (not verified) (2010-06-13 14:52:00)

Hi Milian,

Again, thank you for your hard work on KDevelop and the PHP plugin. It is very appreciated! As I said on LinuxTag, I will try to start using the PHP plugin sometime next week for our PHP5.3 based project and hopefully I will have lots and lots of feedback for you soon-ish. If you ever need some specific information and/or just a beer, send me an e-mail. :-)


Comment by Zergin (not verified) (2010-06-13 12:50:00)

Hi Milian, It’s great to hear that you’ve started some work on PHP5.3 support ;-)

On another note however, as a somewhat sober linux guy that used, little but still, some other namespace implementations, I was wondering what’s your main laugh about PHP’s implementation? Don’t get me wrong - I have my concerns but I wonder what are those of people coming from languages where namespaces are much older concept.

Keeping in mind that PHP’s namespaces aren’t packages (as in Java) and thus you can not import (use) all classes in a namespace (which is quite annoying) I can’t find many differences. One granted is the flexibility of use where C++ using is much more powerful (one cannot use only one construct from another namespace importing it to local scope) but apart from that what are others drawbacks?

Comment by Milian Wolff (2010-06-13 14:34:00)

Ok, lets start:

  1. The syntax is completely uncommon, I don’t know a single language where backslashes are used, except for escaping stuff. And only Windows uses that in paths. If someone is so dumb in designing his code to use namespaces and classes with the same name he should get punished… Not the other way around by forcing people to use a second separator to the common double colon…
  2. You cannot nest namespaces in this manner:
namespace foo {
  namespace bar {
} ```

Instead you have to use this crude syntax:

namespace foo {
namespace foo\bar {
} ```

This is totally uncommon again and very unintuitive imo.

  1. You cannot mix non-namespaced code with namespaced code. This is again totally arbitrary and looking at other languages you see that there is zero reason for why it should be done. Example:
namespace foo {
function globalFunc() {} ```

Instead you have to use that (again imo badly designed) global namespace:

namespace foo {
namespace {
  function globalFunc() {}
} ```

If you come from a C++ background you’d expect the latter to be an anonymous namespace…

  1. You have multiple ways to define namespaces:
namespace foo;
// inside namespace foo
namespace bar;
// inside namespace bar ```

Why the hell can’t they even decide on a single syntax? And the latter syntax sucks quite much imo since it’s not clear that you are in a namespace if you didn’t notice the first line…

I really hate it, passionately. I don’t get why they decided against copying the C++ namespace syntax that is sane , proved and one that people know… sigh. Esp. considering that PHP is inheritly similar to C-style languages…

Comment by Zergin (not verified) (2010-06-13 23:47:00)

True - should have expected that ;-) Although I thought that maybe some other functionality is missing from PHP’s implementation. Not defending PHP here, but as for:

1) Well - syntax is weird however one gets used to surprisingly quickly. I don’t know how closely you follow PHP development but the backslash syntax was introduced quiet some time after the initial namespace implementation (1st one used classic double colon). It however provided clashes between static class methods and namespaced functions. See if you want to know more how the decision was reached.

2) A matter of opinion i guess. I don’t like nesting of C++ namespaces and really dig the possibility to jump into a nested namespace directly, whether be it A\B\C or A::B::C. It’s more of a dynamic language thing I guess. Also having more indentation just for the sake (of sometimes deep) nesting is evil and don’t make me even start on writing initial namespaces in one line or w/o indenting ;-)

3) I do agree here although personally I don’t find it a problem - I wouldn’t mix namespaces in one file anyway just for the sake of readability (just as I wouldn’t put two classes in one file). The globlal (unnamed) namespace I even didn’t know worked. I see the confusion with anonymous namespaces but it is going to be a problem only when doing C++ to PHP transition - is there such a concept in other languages? I don’t think Java has it. Not sure about others.

4) Well.. would that be Perl one would call it a feature ;-)

As for why - see the link I provided and some more that are mentioned in “see also” near the end of that document. I hate to say but PHP devs are kind of right here: “PHP is not ” - whether be it good or bad is subject to context.

Needless to say that more ambiguity in syntax is a Bad Thing (tm) and namespaces are no different in that regard to other PHP inconsistencies.

Comment by Milian Wolff (2010-06-14 03:12:00)

I don’t get it why people actually want Classes and Namespaces with the same name sigh.

Published on June 14, 2010.