About the wonders of Stack Overflow

I am in love with Stack Overflow. Like many other programmers the world around, I guess. Indeed, whatever your doubts or troubles about some programming topic, it is highly likely that someone on Stack Overflow has already answered a question similar to yours, or, even more impressive, that someone will quickly give you some hints, or even a full solution with code, if you ever decide to ask your question there.

The fact is, one must recognize, that Stack Overflow has managed to build a community of developers that care about the quality of the answers they give, and a clever system that highlights the best answers, those that really do provide a solution. Stack Overflow is, in my view, the perfect model to build a community where each member’s contribution is measured and rewarded according to its real value for the community. I know this may sound radical, but this is what it looks like to me, and I am stressing it here so to express clearly how much I consider this an important experiment.

Still, the more I use and contribute to Stack Overflow, the more puzzled I am at the fact that the answers that get most up votes, or that more easily get many up votes, are those to really basic questions. Take my case. The most up voted answer I have is to the question “What does Objective-C actually do when you declare an object?”. This required explaining the basic concept of pointer and assignment of a dynamically allocated object to a pointer. Or take this one: “Division in C++ not working as expected”. It got 6 up votes for explaining that in C the expression “5/6” evaluates to zero, while what the asker wanted was “5.0/6.0”. And my answer was not the most up voted in this case, another one got 22 up votes and is, at the time I write, practically the second most up voted answer for his writer! Or take this: “Use autorelease when setting a retain property using dot syntax?”; 6 up votes to explain the basic mechanism of autorelease in Objective-C.

Of course, I also got up votes for more complex answers, that some times also helped clarifying my own doubts, and for which I had to actually try some code out. Pretty hard-to-earn up votes.
And of course, this does not happen to me exclusively, as my second example attest and as I continuously observe.

I understand perfectly how this possible in many ways. On the one hand it does say something on the public of readers of Stack Overflow. If basic questions are more likely to attract the interest of many contributors, this could be a hint at the fact that many, possibly the majority of them are unexperienced programmers. On the other hand, a more complex question is bounded to have a more limited public of interested readers, since it will highly possibly refer to a specific topic, or technique, or library, etc.

So this is how it is. It is not a critique, I still think that Stack Overflow is a brilliant endeavor and a hugely useful sources of questions and answers, and that its up votes based rewarding mechanism is sufficiently accurate in reflecting the overall contribution to the site by each one. Only, it would be really nice to find a way to also measure the effort it took to write an answer, aside from its usefulness.

Moving to github

I am following the trend.

Using Clojure for iOS apps

Clojure is a dynamic programming language, specifically a dialect of Lisp, targeted at the Java Virtual Machine. In other words, you have a compiler that outputs java bytecode. No more need to write Java, if you want.

cocos2d and memory warnings

I have been suffering from sudden crashes in one app I am currently developing for the iPad using cocos2d. To make things worse, those crashes were intermittent, depending on some timing constraints.

iPhone or Android?

I am not really interested in the fight between iPhone’s and Android’s aficionados, I believe that they are two different platforms generating products with different specifications and targets. Anyway, I would like to share the following bit by Nick Farina (via Daring Fireball) on a difference in how iPhone and Android handle animations: