Opportunistic opportunity

Opportunistic (very recommended to follow this link) programmers, as we are, here at Ubuntu, the Kubuntu developer branch recently came to wonder about the miracle of opportunity.

Now first of I want to make clear that programming based on opportunity is not the same as programming based on freedom.

For that you should first read the free dictionary entry on opportunity and try to understand it.
So let me give two examples, one for programming based on freedom and one for programming based on opportunity.

You do not like that GNOME is using a closed source toolkit, so you create another desktop environment based on a free toolkit.
This is programming based on freedom. You have the freedom to find it bad that a closed source toolkit is used, and you have the freedom to create a new desktop environment. Just like you have the freedom to use Windows and not give a mushroom about whether the software you are using is free software or not.

Users are getting more and more unsatisfied with the software in Debian stable, so you fork it and advertise a new distribution with more recent software versions.
Here we have the opportunity to get a vast user base with minimum effort. Of course you also have the freedom to do this, no doubt, everything includes freedom at some level, but you do not have the freedom to get a ready to go system with minimum effort, you get the opportunity to.

This was rather theoretical, so let me give you some real life examples, from a recent IRC conversation:

<apachelogger> game of the day
<apachelogger> go to planet.ubuntu.com
<apachelogger> and search for “opportuni”
<apachelogger> I get 28 hits
<apachelogger> must be new record
<apachelogger> KOpportunistic, doesn’t look that bad, maybe we should rename
<Quintasan> OpportunistiK
<Quintasan> I fixed it for you 🙂
<nixternal> apachelogger: hahahaha, someone else did the same thing you did the other day…I think you won with 28 though
You see, I had the opportunity to propose this (btw, rather awesome game) because there is a lot of coverage on the word opportuni[stic,ty], and Quintasan had the opportunity to fix my distro name, because it was broken. nixternal had the opportunity to respond to me because I had made that statement, if I hadn’t said anything he would have had the freedom to start a conversation with me that might have lead to that statement. From this we can learn that any type of conversation is filled with opportunities, so if you are entering a command on a shell you are indeed doing opportunistic programming! The shell, or the executed command, gives you a reply, and you again have the opportunity to enter some more, or exit.

<ScottK> I do opportunistic programming all the time, but it’s not going to get entered into any contests because it’s for $WORK.

This is an interesting rule. Contested opportunistic programming must not be $WORK!
-*- Quintasan might not understand
<Quintasan> what it exacly means?
Quintasan: The idea is that opportunistic programmers ares doing normal application development like most people think of it.  It’s small, one off, scripts or small apps to solve local needs.
Having such things be FOSS is almost irrelevant because it really is a local need.

And in this part I want to be serious. This is indeed a very true statement. See. If you are creating a shell script that sets your MAC address to different one, whenever you exceed your traffic limit on some by-MAC-restricted-internet-service, then that is opportunistic programming. However, that local need might indeed be growing beyond that scope and you create a generic MAC changer script that works on all Linux based systems, in which case, I for one, would not call it opportunistic anymore.

Now for some random wisdom:
<apachelogger> ScottK: it is all about opportunity of not understanding it! [trying to explain why it easy to not know what opportunistic programming means]
<apachelogger> you see, you have the opportunity to understand it
<apachelogger> but that implies you also have the opportunity to not understand it
<apachelogger> that is worht a blog post!
<apachelogger> And apparently it was worth a typo too. Oh my!
<ScottK> apachelogger: If it’s worth doing, it’s worth doing wrong.

And finally I had the opportunity to write a serious blog post, but then again I do not particularly care about python and neither do I care about the fact that apparently opportunistic programming == python programming.

But please, pretty please, join me and break my “opportuni”-search-on-planet.ubuntu.com-highscore, you could for example post your score on identi.ca and tag it with #opportunistic 😉

(all links are sponsored by Microsoft Bing search … allegedly)

7 thoughts on “Opportunistic opportunity

  1. I do not understand your intention here.Canonical is trying to attract those hobby people who may be starting to code or code very infrequently and give them a chance to build interesting stuff with minimal effort.It is done in Python which is not my language of choice but certainly it is easy to learn and relies on GTK. You do not have to fiddle with details of package building, generating projects on launchpad, uploading PPAs etc. This gives people an easy opportunity to do interesting stuff. Thus, I find the name "opportunistic development" quite nice for this.

  2. I also don't quite get it. So I and others are socializing the concept of opportunistic development on Ubuntu (or Kubuntu or anywhere else).I don't deny that the word opportunistic has been used a lot, but surely encouraging a culture in which everyone feels inspired and enabled to write Free Software is a good thing?

  3. Jono:Hmm your last sentence confuses me a little.Is there anything inherent to the opportunistic development stack you are pushing that mandates resulting software that are churned through the opportunistic stack be Free software?Or is the choice of licensing just another opportunistic opportunity?More seriously… does quickly do anything about ensuring licensing conformance? Or is it quickly a way to quickly get into a licensing quagmire when using snippets under different licensing terms? It seems Acire is GPL, does that mean that anyone who pulls a python snippet from Acire is then forced to license their resulting application under the GPL. If so how are users of acire/quickly informed of that licensing opportunity?

  4. While I don't like Python apps on my desktop I think that lowering the hassle level of developing Qt applications would be a good thing.C++ is too complicated. Something like Vala would be better.And all the LP/bzr/etc integration with Quickly/Groundcontrol etc is simply just nice.PS: What closed source toolkit are you talking about? I don't get it.

  5. Jef,AFAIK with the entire stack you could write a non-free app if you like – I just said free software because that is what I am personally keen to see as I suspect others are too. But yes, if someone wants to opportunistically scratch an itch and make it non-free, that is possible.As for licensing and quickly: Quickly is actually really good on this front in that you specify the license in the setup file and running 'quickly license' applies the license boilerplate to the code files.In terms of pasting different licensed snippets into an app, well no system can protect against that: that is the responsibility of the developer.Acire does support various licenses (I didn't want to mandate a free software license on people), but the reason I include a license tag is so people know the license of a snippet and can use the code where suitable.——————-Tom,Agreed, opportunistic development is not bound to a specific technology: the same ethos of lowering the bar to enable creative minds to write software can be equally applied to Qt. KDE is an incredible framework, and the KDE team have done a stunning job, and it would be great to see this wonderful platform harnessed in an opportunistic way too.Also, Quickly supports multiple templates, so I wonder if a Qt or KDE template would make sense?As for the closed-source toolkit: I have no idea what you are referring to. Everything we ship in Ubuntu is free software.

  6. Jono,I was asking Harald about the toolkit he mentioned. Like you I don't have the slightest idea what he is talking about.And I am all for lowering the bar to get new FOSS projects started and I think a Qt template would be great.

  7. Jono/Tom: if you are wondering about the example harald gives about a proprietary toolkit gnome uses, I'm pretty sure he just gave an example and gave it a funny spin by reversing the situation in 1996 😀

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s