SunnyD, the focus of my post, indicated in the title,
is the sociology, culture and adoption of programming languages.
I'm untrained in these domains, so if you have interesting or original
thoughts on how to improve the quality, adoption and culture of a programming language,
we'd love to hear them!
Some ideas to get you started:
- Reinvention. From sociology, we've learnt that laws can be improved when reinvented as they enter new domains; a reinvention may be an improvement because it fixes past mistakes (social learning) or generalizes for new scenarios (adaptation). How to balance this with the risks in the software world of the Second-system effect?
Update: Part of language design is perturbing the proposed feature in various directions to see how it might generalize in the future - Larry Wall (cited here).
- Feedback. For example, language mis-features we wish we could remove (update: this just provoked a poll suggestion :). Interested to hear which features you wish you could remove from Perl! ;-) Faster feedback should help the language designer avoid putting mis-features into a language in the first place. Can we apply feedback ideas and tools from software development and elsewhere to accelerate and improve the quality of user feedback to the language designer?
- User Interface. Improve programming language user interface (e.g. with ideas from cognitive psychology). Damian Conway's "Evolve by subtraction" and "Declarative trumps imperative" spring to mind.