16 Jul 2005

open source, freeware, widgets and macs.

so why did i open source my widget and the underlying code?

1. freeware vs open source.

my philosophy is that if you not planning to sell your software, why would you hide the source code? maybe it is because i am a programmer, so i believe that everyone should open source code that they are not planning to sell!

the only reason why you don't open source the code is because you are worried that people see you pitiful code. because i am shameless, i don't care about that!

by open sourcing your code, other budding coders can learn from your source code, people who are capable can dive in an add features that they like, fix bugs and do all sorts of crazy stuff. the code is sitting around rotting on your computer, so why not put it on the internet and let the world see! its just like blogging, only slightly more useful!

2. widgets/javascript are ultimately open anyway

if you look inside the widget, you can pretty much see all the code there is. most of the ones that don't use cocoa plugins you can edit and play with as much as you like. so, if the javascript is open already, why not release the whole thing. don't just hide bits and pieces of it, that just frustrates people.

3. widget development is tedious

widgets are not hard to write, but very tedious to debug and maintain. mac os x 10.4.2 isn't helping much either with its insistence on copying the widget into ~/Library/Widgets. the first time that happened, i panicked thinking what the hell happened to my widget went. maybe there's a way to switch that off, but i haven't found that yet.

anyway, the best way to start a widget is not from apple's programming guide, but to modify the code of another one. so what better than to make as much code available as possible so there can be more people can try writing it.

widgets = creative apps?

mac people are (mostly) creative people. popular apps like imovie, garageband and comic life. exploits people's creativity. i see dashboard fall into the same category as applescript and automator. these apps are trying to entice people's creativity in gluing things together, just like garageband lets you glue musical instruments together, and imovie lets you glue movies, photos and music together. dashboard allows you to glue small functional parts of the web on to your desktop (like amazon browsers, google maps, weather, etc). you control what you want to glue into there. just like automator is about gluing small functions in a large range of apps into your own (albeit less pretty) app of your own.

you don't need to know about memory allocation and pointers to write your first widget. these are things normal people cannot come to grips with. javascript isn't the ideal language (if i designed it i would of used python :), but it is half way there.

the computer is not there for you to use and browse information. it should be there for you to create things. i think that is what separates macs and windows pcs. there aren't many creative applications on windows, but in apple's world, they want to you create as much as possible, from music, to movies, to photos and to even programs (eg. xcode is free, script editor is free, automator is free, etc.)

if you don't believe that macs are all about creating, check out quartz composer -- this is a perfect example of letting users harness the raw graphics power of their macs without writing a single line of code.

You can reply to me about this on Twitter: