Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Back in the 80s colleges were teaching Pascal because it is easy to learn, while myself and many others like me were learning BASIC because it was not only easy to learn but accessible and also fashionable (for an extremely liberal definition of fashion)

It has just occurred to me that empirical data on the actual programming languages kids are choosing to use should be a good indicator of which language would be the ideal first choice for educators.

Please note that this question is not "what do you think is a good programming language for kids?"

share|improve this question

closed as off-topic by Ixrec, Snowman, Dan Pichelman, durron597, gnat May 13 '15 at 5:04

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions seeking career or education advice are off topic on Programmers. They are only meaningful to the asker and do not generate lasting value for the broader programming community. Furthermore, in most cases, any answer is going to be a subjective opinion that may not take into account all the nuances of a (your) particular circumstance." – Snowman, gnat
If this question can be reworded to fit the rules in the help center, please edit the question.

I disagree with the assumption that what languages kids are using should be the first choice of educators. Educators should choose languages that are best for teaching the fundamentals correctly. – Dan McGrath Jan 10 '12 at 5:53
Pascal was popular in the academia not because it was easy to learn, but because it was purposefully designed as a teaching language. – Yannis Jan 10 '12 at 5:55
@YannisRizos, removed that part. Thanks – Gaz Davidson Jan 10 '12 at 5:57
Let me shamelessly plug one of my answers, that although irrelevant to your question, it kinda proves how nonsensical available hard data are, and how you can't really get a good sense of what languages people actually use, especially over time. I don't think you'll find modern equivalents to Pascal and BASIC (even rough ones), the industry and its tools change significantly over the last 20/30 years. – Yannis Jan 10 '12 at 6:27
@GazDavidson There's a key problem here. If you're attempting to get the 'kids' interested and engaged with programming, and you choose a tool that the current set of kids who are programming use, you're actually attempting to appeal to the already engaged. Appealing to those kids who aren't currently engaged may require a completely different set of features. – deworde Jan 10 '12 at 9:29

It's technically impossible to get any useful data on overall programming language use: for that to work, you'd have to monitor people's computer activity. At best, you can measure a few indirect numbers, all of which are going to be biased in some way:

  • Compiler / tool downloads. A popular language will have a higher download count than an impopular one. The bias, here lies in the fact that number of downloads is not proportional to the amount of usage - a highly hyped compiler that doesn't live up to its reputation may have a huge number of downloads, but little actual use, while a mature, reliable compiler with a large stable user base may have less downloads, but much heavier use.
  • Existing software. If more software is written in a certain language, it is likely to be more popular overall. So one could analyze some open source OS and count lines-of-code in various programming languages, maybe even correcting it by package popularity. The biases here are many, though: first of all, the software that makes it into such a repository is typically written by experienced programmers, not entry-level students, so language count is representative for the former category, not the latter. Also, much of that code has a long history, and projects tend to stick with a language once they reach critical mass. Older languages (e.g. C, Perl, shell script) are therefor probably over-represented, compared to newer languages (e.g. Python, C#, Haskell).
  • Forum activity. A more popular language is likely to have a more active community, so higher forum activity is an indicator for higher popularity. The problem with this approach is that it is hard to quantify forum activity in a meaningful way, and even harder to decide which forums to include into the survey. Some language communities are centered around a small handful of sites and communication channels, while others are more distributed. Internet forums and mailing lists are archived and duplicated all over the net, people cross-post all the time, and forums get spammed and flooded with irrelevant posts and off-topic discussions.

If you really want to know what 'kids' are using, you are going to have to ask them: find a representative (this is both crucial and hard) group of kids willing to participate, and ask them a few well thought-out questions (or have them fill out a questionnaire). You will still have some bias there, but at least you'll be measuring the thing you want to measure.

Furthermore, popularity is a poor indicator of quality or suitability in this particular situation. As a teacher, low boilerplate and intuitive syntax may be your highest priorities, while 'the kids' are more likely to go by availability, 'cool factor', plain old 'it's what I know', and impressive examples of what you can do with it.

If you want to find a suitable language for beginning programmers, make a list of properties it should have (I'm sure as a programmer you can come up with a lot of these), prioritize them, and find the language that best fits your list.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.