3 ms·
I certainly mean no disrespect to the author (since ingenuity driven by nothing other than curiosity should never be frowned upon), but the data seem suspect.
by mattlanger 17y ago
I certainly mean no disrespect to the author (since ingenuity driven by nothing other than curiosity should never be frowned upon), but the data seem suspect.
There are numerous small factors: anecdotally speaking I write code but don't use Twitter to discuss code (nor do any of my coworkers); I spend most of my day in Python and Java but if I were to Tweet it would likely be in anger about JavaScript or CSS or any of a host of other languages I must deal with that weren't included in the sample.
But more importantly, languages that enjoy vast market penetration are going to differ significantly in terms of public acclaim from those with small, dedicated, passionate user bases. And so for example it comes as absolutely no surprise to me that Haskell would rate higher than Visual Basic.
- derefr 17y agoIf I did this study, I'd grab a few days' worth of conversation from the mailing lists and IRC channels of each language, and analyze the tones there (perhaps only each first on-topic line per person per login—further lines would be biased by the conversants' attitude toward each-other, more than their attitude toward the language.) Alternately, if I wanted a truly controlled experiment, I would grab a bunch of high-schoolers or college freshmen, filter out any that either already knew how to program, or didn't already know how to use a computer well, and then divide them into groups and teach each group a separate language with a pre-planned lesson (which would teach the writing of the same algorithm in each different language), recording the students' responses in much the same way as one would record people's reactions to a UI for HCI analysis.
- philwelch 17y agoControlling for the same algorithm seems unbiased but isn't. Since different languages are suited to different tasks, all you'd get was a measure of how easily an untrained teenager could implement that particular algorithm in a given language. You could control for that by using multiple algorithms, though.
- derefr 17y agoRight, whoops—I noticed that but forgot to correct. There should be an array of programming tasks, with each language having one task that is considered the "easiest" to do in that language (thus N tasks for N languages.) Each student should either attempt all tasks in a random order, or only a single, randomly selected task.