Will Online Learning Disrupt Programming Language Adoption?
theodp writes "Back in the day, getting traction for a new programming language was next to impossible. First, one needed a textbook publishing deal. Then, one needed a critical mass of CS profs across the country to convince their departments that your language was worth teaching at the university level. And after that, one still needed a critical mass of students to agree it was worth spending their time and tuition to learn your language. Which probably meant that one needed a critical mass of corporations to agree they wanted their employees to use your language. It was a tall order that took years if one was lucky, and only some languages — FORTRAN, PL/I, C, Java, and Python come to mind — managed to succeed on all of these fronts. But that was then, this is now. Whip up some online materials, and you can kiss your textbook publishing worries goodbye. Manage to convince just one of the new Super Profs at Udacity or Coursera to teach your programming language, and they can reach 160,000 students with just one free, not-for-credit course. And even if the elite Profs turn up their nose at your creation, upstarts like Khan Academy or Code Academy can also deliver staggering numbers of students in a short time. In theory, widespread adoption of a new programming language could be achieved in weeks instead of years or decades, piquing employers' interest. So, could we be on the verge of a programming language renaissance? Or will the status quo somehow manage to triumph?"
So the only successful languages "back in the day" were those taught at "a critical mass" of universities?
Here, I'll start the list of counterexamples: COBOL and BASIC.
Projects use languages, projects need employees, and employees need proven credentials. Inertia will continue to be a huge component of language selection for decades to come. Ruby is the last language to make progress without an already big tech name pushing it and it's already more than a decade old.
Universities start teaching their students languages AFTER they become popular. Java was well established in industry and universities were still teaching Pascal as a first language (an excellent choice), then C. THEN they switched to teaching Java as an intro language. The students who first learned it wouldn't have had an effect on industry for another two to four years after that.
Languages get adopted by individuals, then get used in industry, THEN get taught to students.
Universities do not and should not be teaching programming languages. They teach programming, the general practice. They teach the theory behind programming. They teach math. And they may teach "Programming Languages" as the study of the languages themselves with examples of real languages. But they don't teach "Python 101" or "Introduction to Haskell." A CS student is expected to be able to pick up whatever language needed given instruction in that general type of language (broadly imperative, function, and logical). A given professor may require a specific language because it's convenient to have everyone working in the same language and easier to grade that way, but that need not be what the text uses for the same topics. Indeed, the majority of texts use pseudocode that isn't in any "real" programming language.
http://en.wikipedia.org/wiki/Betteridge's_Law_of_Headlines
So, no.
Nobody will learn a new language unless it offers a big advantage over the existing popular languages. In the last 2 decades, that has meant having a particularly useful library or framework (such as CGI for Perl or Rails for Ruby). Why else would anybody invest the time. New languages are a dime a dozen (actually, that's too generous).
Non programmers need to understand that the language isn't the problem. Certain autistic persons have issues formulating sentences to communicate properly to those that are well versed in communication. It doesn't matter if they learn 10 languages, if they can't convey their thoughts in one language, they aren't going to do it in another language.
Likewise, with programming, if you can't speak the language of logic, then you can't program. If you can't have the forethought to see holes in logic, then you can't program. Sure, you can write up some stuff that works. But it still isn't coherent in the grand scheme of things. The government, Universities, and corporate management seem to be stuck thinking that we just need more people that know certain programming languages.
When will they learn that programming is a shift in the thought process that a large segment of our population just can't make? Or they won't make unless we start teaching people to be logical and non-ambiguous in life...
"Back in the day, getting traction for a new programming language was next to impossible. First, one needed a textbook publishing deal.
Yeah, because COBOL and FORTRAN only took off after a mass of publishers got on it. Riiiiight.
Then, one needed a critical mass of CS profs across the country to convince their departments that your language was worth teaching at the university level.
Counter example: COBOL, FORTRAN, C, Java (the later two only took off after the industry was using them a plenty.)
And after that, one still needed a critical mass of students to agree it was worth spending their time and tuition to learn your language. Which probably meant that one needed a critical mass of corporations to agree they wanted their employees to use your language.
Where the hell do you get this stuff. Are you still in school or something?
It was a tall order that took years if one was lucky, and only some languages — FORTRAN, PL/I, C, Java, and Python come to mind — managed to succeed on all of these fronts.
FORTRAN took off because it was the best thing at the time for programming (much better than COBOL.) Java took off without the need of publishers or academia. It was simply taken by the industry. Python hasn't taken off (I love the language, but its usage is nowhere near Java or C#.)
But that was then, this is now.
You don't know what was "then". I doubt you know what it is "now".
Whip up some online materials, and you can kiss your textbook publishing worries goodbye.
What does this even mean?
Manage to convince just one of the new Super Profs at Udacity or Coursera to teach your programming language, and they can reach 160,000 students with just one free, not-for-credit course.
Yeah, because it will be as easy as it was before, right, right, right? Let's build a pyramid of hypotheticals!!!!
And even if the elite Profs turn up their nose at your creation, upstarts like Khan Academy or Code Academy can also deliver staggering numbers of students in a short time.
Yeah, because if up-start elite professors at Udacity or Coursera turn up their noses at your pet project, Khan will surely pick it up. Khan!!!!!!!!
In theory, widespread adoption of a new programming language could be achieved in weeks instead of years or decades, piquing employers' interest.
Because business rely in internet popularity and nothing when investing in effective technology.
So, could we be on the verge of a programming language renaissance?
I didn't know where were in a programming language dark age.
Or will the status quo somehow manage to triumph?"
Somehow this reminds me of Dora the Explorer when she stares at the audience waiting for an answer.