Your first programming language is kind of like a starter Pokémon. You’ll probably use it very often, especially when you’re taking your first steps into the exciting world of computer programming. But as you catch more Pokémon, you quickly learn that it doesn’t matter which starter Pokémon you picked. What’s more important is that you picked a starter Pokémon.
Similarly, your first programming language doesn’t matter that much. Of course, some languages are slightly better choices than others, so it makes sense that beginners often ask which programming language they should start with.
Why then, do universities still teach computer programming using “outdated” languages, like Java and C++?
Ezenwoye conducted a survey among 496 computer science bachelor programmes at four-year institutions across the United States. The goal of this survey was to find out what the introductory programming language of each institution is and what features they consider to be important for such a language.
People on the Internet often in their courses, due to a lack of time or knowledge. The numbers don’t tell us whether that’s really the case, but they do tell us that changes don’t happen often: for 67% of institutions, the introductory programming language has remained the same for 6 or more years.
What’s interesting is that institutions that have been using a language for 2 years or less are more likely to use Python instead of Java, This could be an indication of a trend towards Python.
The choice for a particular language as the introductory programming language depends on many different things.
First, one should be able to use it to teach important concepts. Respondents believed that the following features are necessary for a good introductory programming language:
|Static data typing||11.48|
|Dynamic data typing||6.54|
One thing to keep in mind, is that the introductory programming language will be used to teach novices how to solve problems using code. Anything that detracts from that goal (low-level implementation details) is best avoided. According to respondents, these features are the most difficult to learn for beginners:
|Dynamic data typing||8.32|
|Static data typing||3.57|
Fortunately the features that beginners struggle with tend to be those that aren’t really that important in an introductory programming language. There’s one major exception though: object-orientation is both important and hard.
An interesting observation here is that, contrary to popular belief, dynamic data typing is actually thought to be harder than static data typing.
Other factors may also influence the choice for a particular programming language. The table below shows how many respondents claimed that the features of a language and other factors would play a role in their decision process:
|The features of the programming language||26.19|
|Ease of learning of programming||18.81|
|Job opportunities for students||14.76|
|Popularity of the language in academia||13.10|
|The language for AP Computer Science||7.62|
|Advice of an advisory board||5.95|
|Faculty availability or scheduling constraints||5.00|
Features are clearly the most important factor, followed by the ease of learning, the number of job opportunities for graduates familiar with the language, and popularity of the language in academia.
A further subdivision by language provides some additional insights into the reasoning behind the choice for a particular language:
|Language||Features||Ease of learning||Job opportunities||Popularity in academia||Institutional tradition||AP Computer Science||Advisory board||Faculty & scheduling|
Ease of learning is often seen as a reason to choose Python over Java. However, it can be argued that languages that include a compilation step are easier to learn in practice, as the compiler partially removes the need to manually check one’s code.
Even though most programming languages are technically general-purpose languages, in practice some languages are primarily used in certain domains. Ezenwoye therefore looked at the title of the under which the computer science programme is housed:
|Sciences (or Science)||39.07|
|Mathematics (or Math)||8.37|
|Computing (or Computer)||7.44|
Most computer science programmes are in a college that has “Science(s)” or “Engineering” in its name. C, a lower-level programming language, is primarily popular in programmes that fall under engineering colleges, which presumably teach courses about the construction of embedded systems. Java and Python on the other hand are especially popular within science and arts colleges.
Java is still the most popular introductory programming language within computer science programmes
The choice for a particular language depends on many factors, including its features, its learning curve, and its popularity
Some programming languages are better suited for certain application domains than others