GNOME Decadence

Great to see Wingo publicly confronting the hard questions that have been troubling me for years, and for which I’ve created several projects to attempt to fight:

There is no way there from here, if “there” is universal use of free software, and “here” is our existing GNOME software stack.

Andy is reaching similar conclusions to the ones I tried to convey during my last year’s GUADEC keynote about Crafting 3.0 and Pyro. But he asserts what I would not, that the existing GNOME community just won’t buy it:

The evolutionary thing to do would be to do something web-like, because that’s where all of the programmers are these days. But that’s not part of our culture.

If you think that what Andy is talking about isn’t relevant, or is just negative ranting, think again. Whereas he is sidling on to this year’s GUADEC in Istanbul, I’ve withdrawn. Finding no answers to these questions (and worse, few other people asking) is why I won’t be attending this year.

The other reason is that I have a new family member due to arrive on July 8th :-)

13 comments

  1. Adam Tauno Williams’s avatar

    Ah, yes, the Web is the future of everything (aside from the fact that every Web desktop/appliance from he gOS on down fails in the market-place and devices like the EEE which offer local applications and functionality succeed). If GNOME becomes the Web desktop I’ll just switch to Windows. And websites aren’t free – they only have the perception of free – I can run a “desktop” without [expensive!] infrastructure, I cannot run a Website without a data-center.

    On the other hand things like Silverlight will do much of what he wants anyway by providing apps that run locally [not slow!] but with excellent web integration.

    Also, much of this kind of debate is, IMO, spoiled by the fact that many of these developers live in Tier 1 markets or on/near universities where wireless is pervasive and connectivity is very fast. That just is not true for most people, even in the United States.

  2. orph’s avatar

    @Adam: Hey, at least I’m trying something new. No one before Pyro (that I know) of has tried driving a desktop with native apps via a Web browser’s CSS/JavaScript software stack.

  3. fvdsn’s avatar

    The problem of focusing on the client aspect of the web is that the current web is not free software, you have no control of your data, no control over the code, you cannot fork, etc.

    What would instead be nice is to put back the creative aspect of the web in the hand of the users. Let the user create his own blog / forum / email / jabber server, share his files as easily as Application->Web->Wordpress Blog Creator.

    With the high bandwidth and CPU power available today, it is no longer mandatory to have a dedicated server to run a Blog. And even if it were a problem, it could be solved by integrating p2p technologies.

    All the underlying technology is there, what is needed is a simple GUI to hide the technical details.

    Only when every user can create his website on his own then the web would be truly free software and it would make sense to integrate it deeply on a client level.

  4. Chris Lord’s avatar

    Let’s not undervalue the value of maintainers and the work they do. Just because people aren’t thinking of new ideas doesn’t make what they are doing any less valuable. Also, it’s debatable how valuable (or indeed, destructive) a new idea is if it’s not driven far enough before its left to others to develop.

  5. Mike Hearn’s avatar

    Good posts from you and Wingo.

    I, personally, am not that excited by the web as a platform. It’s stagnant and virtually impossible to improve. Where improvements do happen, they tend to be in server-side tools …. being able to make a database driven app better, faster, more scalable, whatever. Not interesting.

    If somebody wanted to build a new desktop platform that excited ME, then I’d want them to look at what makes the web work as a platform, take those bits, merge them with the best parts of desktop development and let me quickly distribute that platform to my users.

    What works about the web? I wrote about it before. I’ll do it again.

    Zero installation. This actually means “zero wait time”. Don’t confuse the two. The web works because I can sit down at a random computer, log onto GMail and it’ll load in two seconds. I don’t have to wait.

    Few security hassles. When the web has security issues, it’s somebody elses responsibility to fix. All I have to do is ensure my browser updates itself, and these days, they all do. Apt-get really isn’t the same, because it’s centralised and imposes random individuals between upstream and myself.

    Instant upgrades. I don’t want to be asked about upgrades, especially not small ones. The most annoying habit of apps on the Mac is asking me whether I want to upgrade. How should I know? You gonna dump a ChangeLog on me and ask me to decide? It’s not worth my time. Yes yes just upgrade already.

    Developer flexibility. Other than a small amount of magic in HTML and JavaScript, the smarts of an app can be written in any language you like, on any platform.

    Most apps are free. Of course how many of them are sustainably free is another question.

    No piracy.

    What works about client side development? You already nailed it in your slides – speed. Hardware access. Ability to charge per sale. Access huge datasets near instantly (important for video games).

    How do you combine these? I want:

    Streaming, native speed apps. Gzipped JavaScript can be pretty small, so pay attention to code size. Dalvik bytecode is optimized for size. LLVM IR less so. If your solution isn’t competitive with compressed JavaScript, go back and rethink (eg, make it higher level). I want to be able to construct an UI as complex as GMails with a smaller code download.

    Great network integration. I want async RPC to the server (any language) to be as natural as breathing. I want to stream images into progressive decoders with a flick of my keyboard.

    Language flexibility. Give me a choice, but if you can’t, make it a backwards compatible extended Java so I can use Eclipse, FindBugs and code libraries, but without being frustrated by Javas limitations.

    A small runtime for my users. Ideally 2-3mb or less, installable as a Firefox extension as well as natively. The runtime installer should not ask any questions.

    Native OS integration. I want access to the start menu, the system tray, file associations and so on.

    It has to be secure. It has to be secure because it has to be fast, and that means minimal interaction. No security prompts for the user. No months-long signing processes for the developer. Don’t let apps do harmful things. Exclude certain classes of apps if necessary (eg, block outbound port 25, don’t allow them to read/write outside of their own directory). Make signing lightweight and revocation even lighter. Look at the Android security model for inspiration.

    Give me a slick canvas I can use for the GUI (hell, give me Flash).

    Give me nice APIs.

    Give me cross platform.

    Finally of course, give me a killer app that will drive penetration of the runtime so that my users are less likely to need to think or do anything before using my app.

    Next time I want to write a blogging program, if I want to write it on this platform, you have won.

  6. aguafuertes’s avatar

    Well, trying something new is not a merit itself – even though it seems that today more than ever “new” equals “better”.

    As a GNOME user for three years now (thanks to Ubuntu) I’m not missing a big innovative step at all. I want to work with my data on my computer – I do not belong to the relatively small but online-overrepresented group of web-enthusiast, although (or maybe because) I’m daily working on the web.

    So I’m way more concerned with missing basic functionality (like good copy&paste (!!) or an integrated backup mechanism) instead of possibly not using the most bleeding edge software concepts.

    I understand your perspective as a developer might differ (especially after reading your post “Maintainer woes”) – but then again you might never find “peace” in a project. But maybe your users will ;)

  7. orph’s avatar

    @Mike: Dude. Post this on your blog so we can have a discussion about it!

  8. zakydal’s avatar

    why dont you work on pyro, tomboy or gimmie anymore? what happened?

  9. Ethan Osten’s avatar

    I don’t think that the current movement of the GNOME desktop is necessarily sustainable, no. But I don’t view the web as a panacea.

    I think it’s great for desktop apps to be able to integrate with the web – the more seamlessly, the better. But I don’t see any reason why those applications need to be written in HTML and JavaScript. The main advantage of the web isn’t its development technology; it’s its omnipresence. The ability to access my email everywhere is why I use GMail; but I don’t use GMail everywhere because I can. On my laptop, for example, I use Evolution.

    This is why I never got that excited about Pyro. The technology is cool, certainly; it’s interesting as a technology demo, among other things. But it doesn’t provide any value to me. The web is great for storing data, but not necessarily for accessing it. For that, I simply prefer desktop apps. Making web apps sorta feel like desktop apps doesn’t change that fact; they remain web applications, with all the flaws thereof.

  10. orph’s avatar

    @zakydal: A bunch of things. Firstly, VMware IPO’d, which made working my real job a much more valuable part of my life than stressing about free software until late at night.

    Secondly, the difficulty of writing Linux software still gets to me. It perpetually makes me stop and avoid touching code, because it’s too hard to support over time, and requires constant fixing just to have software that RUNS, let alone adding new features. See the Linux Hater’s Blog for someone else who feels similarly.

    Thirdly, I got sick of being one of the few people I know still doing experimental software development on the Linux desktop. Most of my friends and former Ximian coworkers have moved on.

    It’s hard living in a bubble, one where I have to constantly rationalize my free-time pet projects to all the negative non-coders that don’t like what I’m doing, yet don’t work on alternatives.

    There’s a bunch of other reasons, but I think those are some of the big ones.

  11. Jeff’s avatar

    Orph: I’m still here, bro ;-)

    But yea, writing software on Linux is a much bigger PITA than it should be which is the main reason I’m seeing the light with Mono (not that there aren’t other alternatives people could use as well, but I want to avoid C if at all possible from now on).

  12. Mike Hearn’s avatar

    Dude, why not just discuss it here? I don’t think it’ll get mixed up with other discussions. What do you think about that anyway?

  13. pinky’s avatar

    I have to agree with “aguafuertes”. GNOME should focus on the Desktop. Not everyone has high-speed internet and not everyone has 24h and 316days internet access. I think this “do everyting in the net” is a hype which will never become reallity.

    On the desktop we have enough things we can improve:
    - integrated backup mechanism
    - general integration (IM, email, and all sort of application)
    - i like the “folder view” of KDE4. So you can e.g. use different virtual desktops for different tasks and display on every desktop the appropriate folder.
    - drag and drop improvements between all different apps
    - better and modular email client (i like the kontact approach, it’s like the good old unix philosophy. You have single apps for every task (kmail, kalendar, kadressbook,…) and if you really want all in one than start kontact which connect them in one GUI all together)
    - You can probably thing of many more “core” application which could be improved.

    And than the most important point:
    Make sure that the development platform is ready for the future. I’m not an expert about the pros and cons about Gtk+2 but the discussion i have read shows that many experts think that a Gtk+3 is necessary. So go on and do it.
    That the basic libs like Gtk+ are in C is probably a good decision. But GNOME (which is part of the application stack about Gtk+) should move (evolutionary) to a higher language. I know i can’t tell people to stop using C. But i think the position of Jeff is a growing one. And probably most of the new developers which come to the free software community today don’t are the C gurus which want to do everything by their own. Most of them want a good and easy development system like Java, C++, Python, C# etc.
    I think that’s also the reason why KDE has so much development power and moves that fast. Qt/C++ is just sexy and easy to use.

    I think their are many areas where GNOME can improve and maybe some of the changes will need and API/ABI break so that Gtk+3 and GNOME3 is necessary. But it’s not that we habe to reinvent the whole desktop or move everything to the web.

Comments are now closed.