Slashdot Mirror


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?"

44 of 193 comments (clear)

  1. This is bunk by Anonymous Coward · · Score: 5, Insightful

    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.

    1. Re:This is bunk by moderatorrater · · Score: 3, Interesting

      Python. That's a language that's being driven by developer adoption, not businesses or schools. Using it as an example of traditional success is ridiculous.

    2. Re:This is bunk by SQLGuru · · Score: 2

      Every once in a billion years, you can read Hamlet or some such from /dev/random.

    3. Re:This is bunk by tsotha · · Score: 2

      Not only that, but Lisp was widely taught in universities and remained in the AI grad student backwater for decades. In fact, it wasn't until after universities decided to drop Lisp in favor of Java that it started to enjoy a renaissance, though the timing is probably coincidental.

      There are a whole host of reasons companies decide to use one language over another. What's being taught in universities isn't even on the list.

    4. Re:This is bunk by jhoegl · · Score: 2

      In a car.... with a robot at the wheel.

    5. Re:This is bunk by moderatorrater · · Score: 4, Insightful

      Just like that. The summary was saying that its success came from a critical mass of universities teaching it, which is just wrong.

  2. Not really... by i+kan+reed · · Score: 2, Insightful

    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.

    1. Re:Not really... by datavirtue · · Score: 3, Insightful

      I wish we could use all of our mod points in one big nuclear strike against a post. Secondly, I would like "Yawn" added to the list of mod choices.

      --
      I object to power without constructive purpose. --Spock
    2. Re:Not really... by vlm · · Score: 5, Insightful

      and employees need proven credentials

      That's the problem with IT. If HR did chemistry hiring like HR does IT hiring we'd hear stories about people being underqualified because they used 50 ml beakers at school instead of 75 ml beakers at $job. Or "You used 2-propanol? Sorry we only hire people who use isopropyl in that synthesis."

      --
      "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
    3. Re:Not really... by mooingyak · · Score: 2

      Except the company uses exclusively isopropyl throughout their entire chemical processing chain and switching to 2-propanol is a multi million or billion dollar effort that would take years to complete and many more years to show a return on the investment. Not to mention the environmental impact studies that would need to be performed to determine if any byproducts would harm the local environment and also testing to make sure the output did not have any adverse effects.

      Using the latest and greatest process, tool, widget, language, whatever, is not always a good idea. Sometimes you should live by the motto "if it's not broke, don't fix it."

      The problem isn't with a company wanting to do things a specific way, it's with the assumption that people who've done something that's very similar but not exactly the same can't adapt.

      --
      William of Ockham had no beard. The most likely explanation is that it was chewed off by squirrels every morning.
    4. Re:Not really... by drooling-dog · · Score: 2

      Ummm... Small point, but 2-propanol IS isopropyl alcohol. So, no billion dollars to make the switch.

    5. Re:Not really... by Junior+J.+Junior+III · · Score: 2

      Ah, the chemistry metaphor. Thank you for making it all so clear for the rest of us, and for not being part of the precipitate!

      --
      You see? You see? Your stupid minds! Stupid! Stupid!
    6. Re:Not really... by Mr.+Shotgun · · Score: 3, Insightful

      Ummm... Small point, but 2-propanol IS isopropyl alcohol. So, no billion dollars to make the switch

      And therein lies the joke, I ( a non chemistry buff) can quickly Google 2-propanol and see that they are one in the same, yet a normal automated HR screening process will kick one and accept the other. Kinda sad when you have a human resources check list without humans in it hey?

      --
      Of all tyrannies, a tyranny sincerely exercised for the (supposed) good of its victims may be the most oppressive
  3. False premise by ceoyoyo · · Score: 5, Insightful

    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.

    1. Re:False premise by vlm · · Score: 2

      My experience has been education is always a generation or two behind.

      When I was a young pup, we all wrote C or pascal but the schools taught BASIC and FORTRAN
      Later on we were writing in java, but the schools taught C++. I slogged thru "detil and detil C++" or something like that. Pink cover as I remember.
      School taught 68hc11 assembly language, which is a great education, but poor training as supposedly everyone does microcontrollers in C, or at least the people that talk loudly do, I donno what people who actually write code do.
      I've done a couple years of Perl and Ruby, so I assume schools are teaching awk and ... scheme or something?
      I'm teaching myself scala so I assume kids now are learning scheme or java?

      --
      "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
    2. Re:False premise by Darinbob · · Score: 2

      In graduate departments though programming languages are adopted before becoming popular, even with minimal documentation or user base. Many programming languages even come from such environments.

    3. Re:False premise by ceoyoyo · · Score: 5, Insightful

      Yes. And I think it's a good thing. Universities are supposed to be about education, not training. If you want training, go to a tech school.

      Universities teaching something that's not the latest hot industry language means that students will learn at least a couple of languages and hopefully in the process learn how to learn languages, rather than being a trained drone.

      In undergrad I learned (officially) Pascal, C, C++, Java, Prolog, x86 assembler, Motorola assembler, a couple varieties of Motorola microcontroller assembler, VB, Perl, PHP, Javascript and a bunch of things some people might call programming languages like HTML, XML, SQL, etc. Oh, and built and programmed machines (using both wires and simulation) that ran on my own machine code and assembler definition.

      Now I hear people complaining bitterly about having to learn a new language.

    4. Re:False premise by ceoyoyo · · Score: 2

      Sure. But not because they're taught. Like my first day of grad school when my supervisor told me "I heard about this language called Python. It sounds cool. You should learn it and then teach the rest of us."

    5. Re:False premise by silas_moeckel · · Score: 2

      Try and get a wet behind the ears 20 something to learn x86 assembler well enough to do inline assembly optimization better than the compiler. Most cry like a stuck pig. Far to many programmers think that throwing some business logic around a pile of libraries constitutes coding.

      --
      No sir I dont like it.
    6. Re:False premise by drooling-dog · · Score: 2

      Yes, and the other day I was reading that we shouldn't bother to learn algebra, because c'mon! - how often do you use it? Well, if you don't know it I'm sure you won't be using it at all, so Q.E.D.

      Having at least passing familiarity with an assembler language is valuable whether you use it directly or not, because it gives you a sense of what's going on "under the hood" in CPUs, GPUs, devices, etc.

      As a hiring manager, I wouldn't even look at you.

      As a hiring manager, I might indeed look at you as a code monkey for simple tasks, but your obvious disinterest in basic computing fundamentals - and contempt for those who don't share it - would limit your potential severely, IMHO.

    7. Re:False premise by ceoyoyo · · Score: 2

      Which is why we need to stop the training-ification of universities. The average code monkey probably doesn't need to know assembly, and shouldn't be forced to learn it. But computer scientists and more skilled computer related positions benefit from knowing how computers actually work.

  4. They don't teach languages by Intropy · · Score: 5, Insightful

    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.

    1. Re:They don't teach languages by Intropy · · Score: 5, Insightful

      Okay, let me temper that a little. Universities do offer instruction in specific languages. But that is generally introductory in nature. Learning a language is not the objective.

    2. Re:They don't teach languages by Darinbob · · Score: 3, Insightful

      Good luck on that. Programming has become very fashion conscious in the last decade or two. Programmers have also become more technician like in that they want high demand skills only that get them a short term job quickly.

    3. Re:They don't teach languages by jgotts · · Score: 3, Insightful

      It's almost like that except they teach data structures, object-oriented programming, and other idioms that are useful to both academics and industry. They don't exactly teach you "programming languages" except maybe when you're taking compilers, and in that case it's more than the language itself, it's how to design, gramatically specify, and "compile" one language into another language (I'm taking educated guesses, I haven't taken the course but I've studied gcc).

      You can't teach anything with a hypothetical language. That would be far too abstract, and difficult to grade. You have to decide upon a language and you have to inherit its flaws, design compromises, and strengths. I disagree that texts use pseudocode. At least in my experience, they use some but not a whole lot.

      When teaching a student grammar, you first teach their native language. English implements all sorts of biases, trade offs, and lacks features of other languages (gender, tone, irregular verbs, and many more). You have to direct your grammatical instruction in an incomplete manner or else things would be too abstract for the student, and when students learn new languages they have to learn new features of the language as well. Once you start looking into many, many languages it's pretty damned cool because you thought you knew how languages worked based upon your own but you begin to see how languages work in general. This whole aside, of course, applies to the formal languages we use for programming.

    4. Re:They don't teach languages by GodfatherofSoul · · Score: 4, Insightful

      This is what I don't think the "you don't need a degree" crowd gets. University instruction is teaching how to be a good programmer, not how to write code. If you think college was worthless because you didn't learn the DirectX API, consider that your university experience should have been about everything that happens before the first character of code is typed; and then some.

      --
      I swear to God...I swear to God! That is NOT how you treat your human!
    5. Re:They don't teach languages by AwesomeMcgee · · Score: 2
      I agree that the "you don't need a degree" crowd doesn't understand often times the foundations or theory. However, the "you need a degree" crowd goes around saying things like:

      University instruction is teaching how to be a good programmer

      When many of us have met countless folks with CS degrees who are horrible programmers. And don't misconstrue what I'm saying here, the foundations and theory are extremely important, I am not speaking of them with any form of sarcasm. Those who do have great comprehension of theory are all the best developers I've known.

    6. Re:They don't teach languages by Sentrion · · Score: 2

      I am an electrical engineer. I learned C++ in a single course in college (my only CS course), but I later "taught" myself Java (or just enough Java to get the job done, and haven't needed it since). It is true that the fundamental skills in programming are understanding what instructions you are tying to give to the machine, avoiding typos, and debugging your code when it doesn't work. The basic premises don't change much, such as IF-THEN statements or calling out subroutines. A key skill is to define what you want the code to do before actually "coding", such as using a flow chart and/or psuedocode. In theory, you should be able to give your flow chart or psuedocode to any programmer of just about any language and they should be able to write the code for you - or vice versa if someone gives you psuedocode you should be able to code in the language you use. I've also used BASIC when I was a kid to make my own games and other environments should be easy to pick up, such as VBA or MatLab scripts. Machine language, like assembly code for a microcontroller, can be more of a challenge, but the basic skills still apply, except that now you have to manually control the stack and you have to pay close attention to the physical limitations of your processor. Main point: go ahead and take an intro- type of class, pay attention, and understand the difference between software design and programming syntax. A great poet should not care too much whether he is writing on paper or typing on Notepad, it's the poetry that counts. If the poet is "computer literate" then he might be able to write his poetry faster, and maybe have more opportunity to improve upon it with the text editing tools at his disposal. But I wouldn't consider him a great poet if he couldn't compose something great with a pen and notebook.

    7. Re:They don't teach languages by garett_spencley · · Score: 2

      True story: a friend of mine was pursuing his PHD in CS. During that time he was a TA in an object oriented programming course. He was responsible for grading lab-work (done in Java) and was telling me about various assignments he would have to mark. He told me that many of these students would find rather creative ways to complete the assignment without using any object oriented principles what-so-ever. What he was handed was akin to scripts inside a single main() method.

      The punchline is: when he graded those assignments a zero, the students would complain to the professor who would explain to my friend that those assignments were deserving of 10/10 because they compiled and ran.

      A university-level course that is supposed to be teaching object oriented principles, in this particular case, had as it's only criteria that the software compiles and runs. It does not matter if the student walks out of the class even knowing what object oriented programming is.

      I think THAT kind of thing is what really fuels the "you don't need a degree" crowd. It's an example of how Universities are giving away degrees, and when everyone has a degree they cease to be valuable commodities.

    8. Re:They don't teach languages by HiThere · · Score: 2

      Whether gender in natural languages is a bug or a feature depends on context. In many traditional contexts it's a feature. In others it acts to reduce the error rate of a noisy signal. But there are times when it just increases the amount of information that must be transmitted, without increasing the amount of useful information. In that case it's a bug.

      And also remember that the information that others deem significant in a particular context may not match that which you deem significant. So you may think it a bug where others are deeming it a feature.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
    9. Re:They don't teach languages by 91degrees · · Score: 2

      One person with a masters didn't know what the Start button on Windows 95 did.

      Why should he? Not everyone uses Windows. Knowledge of a specific GUI isn't an important skill. People can pick that sort of thing up pretty quickly.

  5. bullcocky by afidel · · Score: 2

    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.
  6. The Resurgence of Lisp Is At Hand by Patrick+May · · Score: 4, Funny

    We already have Lisp. All other languages are unnecessary.

    1. Re:The Resurgence of Lisp Is At Hand by AwesomeMcgee · · Score: 3, Funny

      But does it have macros?

  7. For Fuck's Sake by MightyMartian · · Score: 2, Interesting

    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.
  8. Not the way it was by pubwvj · · Score: 2

    "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.

  9. Betteridge's Law by IcyHando'Death · · Score: 3, Insightful

    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).

    1. Re:Betteridge's Law by vlm · · Score: 2

      I'd add new paradigms as a third reason. OO seems to have driven a lot of language choice. I'm betting functional is going to make a splash in the future; after all you can't spell functional without "fun". Either that or massive parallelism is going to force Erlang down our throats like it or not.

      --
      "Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
  10. Re:For &#$@'s Sake by Bigby · · Score: 3, Insightful

    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...

  11. Language agnostic by fermion · · Score: 2
    A person who learned to program a computer should be able to use, after a time, any language that is currently in the top 5, that is C, Objective C, Java, C++, C#. All of these share a common underlying philosophy and basic technique. C is by far the simplest fo these, but also the most basic. Of course most of the time the language is not the thing. Rather the API is where th heavy flitting is done and in fact over the past 10 years of so has become a barrier to entry. One has to know how use .net., or the interfaces for iOS or android. 30 years ago the APIs were not this arbitrarily complex, but also we were not doing threading of complex UI. Specifically when using an API one has to define the solution to the problem in terms of the API, not the language. These language account for perhaps 2/3 of the computer applications.

    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
  12. What a load of ignorant bullcrap by luis_a_espinal · · Score: 5, Insightful
    Some people like to talk about computing without knowing its history. How did this made it to the /. front-page news?

    "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.

  13. I Hope Not by Githaron · · Score: 2

    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.

  14. How are we not already in the renaissance? by SuperKendall · · Score: 2

    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
  15. Impossible to introduce a new procedural language by rmkeene · · Score: 2

    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.