Choice Overload and Parallel Programming
I have been very quiet on this blog lately, mostly because my new job and the creation of our new house have kept me rather busy. Having to get up at 6 in the morning to be able to bring our son to kindergarden has not helped my productivity in the evenings either – and of course that’s the time when I am usually writing for this blog. But anyways, I will try to be more productive in the future. What I would like to write about today are two blog posts from Tim Mattson, the first one called Parallel programming environments: less is more and a follow up called Is anyone dumb enough to think yet another parallel language will solve our problems? I MIGHT be!. While I think Tim raises some very valid points, I still believe his conclusions are in need of some more discussion! 🙂 This post also includes a call to action at the bottom, so be sure to read it until the end!
But let’s start from the beginning. Tim cites a well-known study that shows, that too much choice will lead to customers buying less stuff. Jam in the example cited, but obviously the study can be applied to other things as well. Tim applies it to parallel programming systems and concludes:
But don’t waste my time with new languages. With hundreds of languages and API’s out there, is anyone really dumb enough to think “yet another one†will fix our parallel programming problems?
I do. Or at least I hope for another language that’s better than what we have now. Let me compare the situation today with the search-engine market before Google. There were more search-engines at that time than any single user could try out in a reasonable time frame. New ones were continuously created and funded. Yet, Larry Page and Sergey Brin did not worry about their competition back then, they went ahead and created the next big thing. And choice overload certainly did not stop their success story.
Another example: Linux and the amount of free software available for it. Nobody can try out all open-source programs out there for even a limited field like multimedia. Even the choices for a simple program to burn CDs with can be overwhelming. This used to be a real problem for distributions. Fortunately, the solution to choice overload there is easy as well, and distributions have been employing it from the very beginning: they are doing the selection for me. When I install a clean Kubuntu-system for example, it comes with K3B preinstalled, which does a very fine job of burning CDs for me. And if I don’t have very special needs, I will never worry about burning CDs again, because the preselected solution works fine for most needs. If I ever need a really special feature that K3B does not provide, I can go look for another piece of software that satisfies my needs and because I have a choice, I will most likely find one that fits.
Choice is good, experiments are good and we need all the experiments and new programming systems for parallelism we can get, because after all this is a hard problem. And even if some of those systems are reinventing the wheel, I could not care less because there are times when a reinvention will really kick off where the original version failed. There is no stronger force in the universe than an idea whose time has come. Or something like that. 😉
To make your choice of a parallel programming system a little more difficult, I have decided to do a little experiment. I frequently get requests to review a new idea for a parallel programming system, or even the system itself. Unfortunately, I rarely have the time to do so at the moment. But since I know you (my dear readers) have a strong interest in new parallel programming systems (or else you would most likely not be reading this blog), let’s try this out: If you have invented an exiting new parallel programming system and would like the world to know about it (or at least the tiny part of it that reads my blog :smile:), I am inviting you to write a guest post about it here. If you are really exited about a new parallel programming language you have recently used, feel free to post about it here. A few rules:
- The post must be original. I will not permit press-releases or the like, because my readers are not here to read duplicate content.
- The post must fit in here. Just read a couple of my posts in the past and you will see what I mean. No academic papers for example, there are other places for those. A little humor is appreciated and don’t take yourself to seriously :lol:.
- Of course, spelling and grammer must also be correct. I don’t claim I get those right all the time, but we should at least try hard
- And last but not least: I reserve the right to reject any post. That should be self-evident, but I thought I would mention it again.
I am very curious how this turns out and looking forward to your contributions!