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.
Yeah, like nobody ever learned LISP, PASCAL, BASIC, Eiffel, Erlang, Haskell, LOGO, or Scheme before there was an internet... Plenty of languages have flourished in academia without having broad industry support. Some exist primarily as teaching languages, others are most appropriate for domains where there's not a lot of practical economic application yet.
There are 4 boxes to use in the defense of liberty: soap, ballot, jury, ammo. Use in that order. Starting now.
We already have Lisp. All other languages are unnecessary.
For fucks sake, stop with the thinly veiled advertising. We're talking about a huge penetration of languages like C, C++, Java and Perl and the like which are still going to require people capable of coding in them. This fucking online Khan Academy crap isn't going to change that, and I'll wager you dollars to donuts the whole fucking thing will collapse under the weight of insanely over-hyped promises and gimmicks.
The world's burning. Moped Jesus spotted on I50. Details at 11.
"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."
That is not the way it was. I've been programming professionally since the 1970's. We didn't go to school to learn a programming language. If you took classes it was to learn techniques and concepts. Picking up a new language is a trivial thing. Taking a course on a language does not make you a programmer. Language is merely a way to communicate with the computer. New languages and development environments come and go. Good programmers persist and pickup new languages easily to do the tasks needed.
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...
The second tier stuff if most useful for RAD. That is visual basic, python, perl, PHP, Ruby. These are mostly scripting languages, and require a slightly different approach. The solution is defined in terms of the capability of the language and the available scripts. This is particularly true with Ruby. These are languages that meet specific requirements for specific purposes. For instance PHP and Ruby are what uses to write a website. Python is quite popular for home grown science applications.
Which is to say that anyone trying to promote a language because it is what they know rather than because it is what is used to solve a particular problem is like a person trying to get their boss to buy a lather for the server room because they really need a lathe for home projects. I would not try to script a website with C. I would not try write a data analysis program in assembly. The computers are simply too fast and we have had 40 years of development of tool that means we do not need to spend a quarter and a million dollars rewriting a GUI. This has always been true. In the 80's we used fortran for number crunching because that was the only language supported by IMSL. We used C for everything else because it ran on everything else.
So online learning is only going to teach students how to use useless tools. Yes I would like to teach people how to use Forth, but what is the point? We can teach students how use Shakespeare, and it would teach them techniques they need to know and would be very motivating for certain students, but where would they use it? Once a student is proficient at programming, and understand the basic concept, time needs to be spent on learning how to to efficiently acquire API knowledge
"She's a scientist and a lesbian. She's not going to let it slide." Orphan Black
"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.
Unless the language adds something revolutionary or is very domain specific, we don't really need anymore widely used programming languages. What we do need is more libraries, frameworks, and APIs for existing languages. Preferably, they would be open source or at least have open specifications so that an open source version can be made. Also, not all problem domains warrant their own language.
Good grief man! One of the more popular languages around these days is Objective-C! Would you have thought THAT possible ten years ago?
Look at StackOverflow, brimming with questions about Ruby or Python or PHP or Scala.
Look at alternative databases in wide use today that do not use SQL.
Your renaissance has already arrived, any language that has some good practical use does not need a course to gain adoption, just a tag in StackOverflow and a handful of fervent believers to evangelize the use of it.
On a side note, it's depressing the number of dour replies you got right out of the gate. There was a time where futurists were a healthy part of Slashdot, now we are scored and ridiculed. It hardly matters though since we are generally right in the end, so keep the spirits up.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
No. Programming languages need two things to become mainstream. First they need a very extensive library of support such as windowing, network, and about 50 other topics. Second they need a compelling reason to use the language itself. The compelling reason could be that the language is so nifty or elegant that it is worth the effort. In procedural languages it is hard to imagine anything better than what we have. In non-procedural languages there may be some new ideas yet to be thought of. Another compelling reason for a new language is marketing suits. Some company has a very cool new product and in order to lock you in they invent a new language to program it. Laaaaaaaaame. Only Microsoft would be stupid enough to try that again (C# was a case in point where they still had the muscle to pull it off.) Google could do it for a special search language but are not that silly.