Monday, April 15, 2013

The Road Not Well Traveled: Two Developers Think Outside the Box

by Dietrich Schmitz

Prevailing wisdom has it that the road well traveled is safest.  That may pertain when traveling cross-country in your car, but, it may not necessarily yield benefits in the computer industry.

You see, we have several forks in the road that are presenting as choices and very quickly developers are want to choose the path well-traveled thinking that such a path will offer the least amount of effort and resistance.  That might make sense initially when short-sighted objectives are being met, as in reduced cost of labor input, but ignoring good design practices by taking shortcuts with direct hard coupling of apis can produce long-term inflexibilities that will make future coding brittle and prone to breakage.  (Image credit: Wikipedia.org)

Adding abstractions for apis is a good way to isolate hard coded system dependencies and using object encapsulation with abstract methods can allow polymorphic behaviors to be applied at a later date and thereby offering extensibility.

The shortest distance between two points is a straight line.  Simply coupling an api (systemd) to a gui (Gnome) is an invitation for future disaster and in-built limitations.  A GUI framework should be loosely coupled to the underlying system and choosing to included hard-coded system dependencies is a recipe for disaster.

But that is the current situation faced by developers who need to make a choice for how to deal with the newest Linux infrastructure changes now being phased in with systemd.

CinnArch is no more as the work necessary to move to systemd was simply prohibitive and an announcement was made to close their doors.

[Edit 4/16/2013 9:00am I stand corrected.  I misunderstood the dynamic with CinnArch and good fellow pointed the error of my ways out here:


Michael Dinon  43 minutes ago
Dietrich what is your source that supports that Cinnarch is no more because of systemd? Cinnarch is no more because of how Cinnamon lags GNOME development. Since Cinnarch was based on Arch and Arch has shipped systemd for sometime I don't think that was the factor.

]


Today, in similar fashion, Fuduntu announced they would also be closing their doors due to their inability to allocate needed resources to address refactoring their code in Gnome 2.34.

Others seeing the writing on the wall include Ikey Doherty, founder of SolusOS, who had his own issues with upstream developers, very recently made the decision to rebase his Distro on a new PiSi package management system in conjunction with a decision to fork Gnome3 to a new GUI called 'Consort'.

Today, +Aaron Seigo  and +Ikey Doherty had a 'public' chat on Google Plus about the latest happenings.  It was in response to +Katherine Noyes  PCWorld story Fuduntu Linux is Closing its Doors.  I have taken to calling Aaron 'The Thinker' lately and I find most of what he says intriguing and quite insightful.  Here's his starting thread in reply to the Noyes story:

The Thinker
A comment +Aaron Seigo wrote on +Dietrich Schmitz's reshare of the original post:
It is interesting that two of the reasons stated were Gtk+ 2 maintenance and systemd dependencies. It demonstrates two things: a) how important it is to pick the horse you bet on carefully (in this case Gtk+ 2) with a good understanding of its future (which mainly lies with the developers who maintain it .. or don't) and b) the impact that Linux middleware churn has on smaller shops.
Personally, I think that if a few of these smaller distributions set aside differences and worked together, they would stand a better chance of creating something with a solid future. Diversity is great, but there's a limit to what the ecosystem can sustain.
The above is the starting comment from Aaron and here is what followed:


Ikey Doherty5:23 PM
+
1
2
1
OK but different projects have different aims. What interest is there in all of these individuals dropping their goals to satisfy a dream that isn't theirs? That's quite a selfish viewpoint, as it takes the joy out of it for the developers

Aaron Seigo5:52 PM
+
1
2
1
+Ikey Doherty In my experience being part of as well as managing projects and teams of wildly, wonderfully independent and brilliant people ... the idea that "we have wildly different goals" is often overstated. Moreover, the idea that "we have different goals, and therefore need to work separately" is often also unfounded.

What I find is that many engineers / software developers struggle to identify issues that don't really matter and spend a lot of time focusing on differences rather than commonalities.

This results in a lot of discussion and division over matters of little consequence and a lot of missed opportunities due to massive duplication of effort and lack of coordination on the common 95% to spare the perceived purity of the 5% in differences.

It's one of the things that drew me to Mer. They understood this pretty deeply, and when we got involved with it we were able to help broaden that mindset even further .. because they were open to it.

Jolla, Nemo and Plasma Active all have unique and divergent goals. We've identified those and marked them out as "not to be tread upon" ground and gotten to work on sharing the remaining 95%. Turns out, we keep finding new opportunities to share now that these doors are open: libhybris, maliit, device adaptations ...

It's one of the things that has drawn me to SDDM. The main developer of SDDM also groks this, and SDDM is now used by a small handful of projects .. with Plasma likely to join when we release Plasma Workspaces 2. This will mean dropping "our own" KDM and even letting go of significant work done with LightDM, but it will ultimately be worth it if it lets us share the 95% that is common so we can all focus on the 5% we care about.

So I'd suggest that the idea that one must either hold onto their dreams and goals or cooperate is a false dichotomy. You can almost always find a group with goals similar enough to your own that you can share the 95% with them. The 5% is yours.
Collapse this comment

Ikey Doherty5:55 PM
+
1
2
1
I don't disagree with people sharing, just when there is room to share something. Sometimes projects differ too much. Take SolusOS 2 for example. Its totally independent and using the PiSi package manager, there's not an awful lot of room for sharing there, and no sense in us joining forces with other projects. However with the Consort Desktop, we intend to bring as many projects together as we can to collaborate, especially in light of the recent dropping of Cinnamon from various projects. It'd be nice for cross-project collaboration on that front.

BTW, SDDM is hot.
Collapse this comment

Aaron Seigo6:26 PM
+Ikey Doherty Ultimately, you're The Source(tm) for where the 95%-5% line is drawn for SolusOS.

I do find it's always good to require a non-self-flattering defense to one's self (or one's team) as to where the value in a project's differences are. As developers, we're often able to sell ourselves on our own ideas very well ... sometimes a little too well ... and are often really bad at playing devil's advocate. Cost/benefit is not always easy to map out, and at times we're not even clear as to which of our plans hold the true value for us. Anyways ...

Bringing people together around Consort Desktop sounds like a very good idea. Desktop environments are a huge amount of work to maintain, and Linux middleware churn does not make that any easier.

To be utterly blunt, I honestly don't think any of the newer desktop env projects have any realistic long term prospects unless they pull together a greater developer audience. Even XFCE is suffering from developer retention right now. Unity has a well-funded and stubborn company backing it which is its possible saving grace. Even if none of them succeed, however, I do expect that at least some of them will push the envelope and in doing so advance the state of the art for Free software desktops.

Compiz is a great example of a star that shone brightly and pushed things forward in important ways even if it eventually has subsided in its importance.

p.s. I don't want to hijack this thread to go off on desktop environment design, but I think there's a strong case to be made for why KDE's Plasma is the best available starting point for a "GNOME 2 like env". If that's at all intriguing to you as a topic of conversation, you know where to find me :)
Collapse this comment

Ikey Doherty6:33 PM
+
1
2
1
Jumping ship to Plasma/Qt + co would cause more problems for me than I'm willing to deal with if I'm perfectly honest. I'll start a PM with you about it if thats ok ?

Aaron Seigo6:38 PM
+
1
2
1
+Ikey Doherty absolutely cool with me; looking forward to the discussion ..

Gonzalo Velasco C.6:48 PM
SystemD I don't know, but from GTK2 to 3 is a smaller change, isn't it? Is it the same to say changing everything related to Gnome 2 for something related to Gnome 3, or is there more?


So, while this road well-traveled may appear to be a good choice beware of major roadwork, detours, and potholes going down that road.  It may be a seemingly good ride right now but alternate routes may be advised. ;)

-- Dietrich


Enhanced by Zemanta

10 comments:

  1. On a side note, I hate how the first thing KDE lovers do is shove Qt at people. I like Qt, honestly, but it can be annoying when it's pushed as the answer to every problem.

    ReplyDelete
  2. Im hoping all is not lost as yet obapps,obmenu,obkey,lxappearance,obtheme,obconf,Arandr,drun,tint2,nitrogen, these 10 small packages give a wonderful GUI, (scrot can be added to obmenu for screencapturing) i spose a launcher piedock or idock should be added too. Not everyone is going to like it but for those who liked the Gnome2, lxde,xfce stay out of my way look ^ can be made to look and perform similar (if not better), of course thats just the GUI on top of X11, what goes underneath i don't know, but i do know dependecies of above are very minimal as i've installed a few bare bones arch systems and OB is GUI of choice (xmonad not quite for the mainstream). Screenshots of Crunchbang or Archbang will give a general idea of the layout. Ive been saying for some time window managers should be the way forward i hope im right. Best of luck to Ikey & Aaron in their endevours.

    ReplyDelete
  3. Dietrich what is your source that supports that Cinnarch is no more because of systemd? Cinnarch is no more because of how Cinnamon lags GNOME development. Since Cinnarch was based on Arch and Arch has shipped systemd for sometime I don't think that was the factor.

    ReplyDelete
  4. I stand corrected then. My misunderstanding. Will update the story with your comment. Thank you.

    ReplyDelete
  5. Did I miss something? It took a while but MATE was born. Is the general consensus that MATE has no future so none of the distros who committed Harakiri because of GNOME 2 are interested in it and must make something independent of it?

    I'd say the easiest thing for Fuduntu to do would be to remix Fedora 18 (or the upcoming 19) with MATE as the default and then customize it how they see fit. It seems to work fine in a systemd-based environment even along side all of the other desktop environments (including GNOME 3, Cinnamon, KDE, XFCE, and LXDE) on the same system.

    If not that, then how about GNOME 3.8.x and the gnome-classic extensions?

    As for me, I'm a long time KDE user but I do use other environments frequently under different situations.

    ReplyDelete
  6. Interesting. Thanks! And yes KDE is, as far as I am concerned, the best Desktop GUI, bar none.

    ReplyDelete
  7. Enjoying Aaron Seigo's input here too. Though I have a different perspective to offer in regards to Xfce. It may suffer from "developer retention", but one thing I really like about Xfce (and the reason why I use it as the base desktop environment for my company's desktop solutions -> http://www.microlinux.fr/desktop_linux.php) is the fact that development is slow and perennial and only happens in small incremental steps. I do have a sandbox PC here (running Slackware like all machines) where I install the latest and greatest KDE (4.8.5, 4.9.5, 4.10.0, 4.10.1, etc.) out of curiosity, but more often than not I want to yell at the KDE developers: a) "Slow down, please!" b) "Please fix some basic bugs! My users don't want to have to hit F5 to be able to see a new file on their desktop!"

    ReplyDelete
  8. There is no "easy" thing to do, and Fedora 18 is a mess. I spent some time evaluating the possibility of re-basing on F18 a few months ago, and decided against it.

    ReplyDelete
  9. Perhaps you can at some refine and elaborate as to why you feel F18 is 'a mess'. Thanks for all that you have done Andrew.

    ReplyDelete
  10. This does a good job of it: http://www.dedoimedo.com/computers/fedora-18-kde.html No need to go any deeper than that.

    ReplyDelete