Is there a “hype cycle” for educational programming languages?

May 18, 2018 at 7:00 am 14 comments

As a longtime Smalltalk-er, I loved this piece: “The 50-year Gartner Hype Cycle for Smalltalk

Interesting how the hype cycle applies to Smalltalk:

  • Technology Trigger — the hype began with the famous 1981 BYTE cover and continued throughout the 1980s.
  • Peak of Inflated Expectations — in the 1990s, Smalltalk became the biggest OOP language after C++ and even IBM chose it as the centrepiece of their VisualAge enterprise initiative to replace COBOL.
  • Trough of Disillusionment — Java derailed Smalltalk by being: 1) free; and 2) Internet-ready. Free Squeak (1996) and Seaside web framework (2002) were not enough to save it.
  • Slope of Enlightenment — Pharo was released in 2008 and became the future of Smalltalk, thanks to its remarkable pace of evolution. We are still in this phase, which requires continuing and sustained advocacy.
  • Plateau of Productivity — we are waiting for this phase, perhaps in the next decade. I am sanguine.

Educational programming languages (or maybe just programming languages’ use in education) don’t seem to follow this curve at all.  Does a programming language ever “come back” once it has left classrooms?  Logo? Pascal?  Even if there’s a “Trough of Disillusionment” (e.g., when we realized just how hard C++ and Java are), we still see longterm use. Even if we later realize how good something was (e.g., Logo for integration into curriculum), it doesn’t come back.

I wonder what the similar curve looks like for programming languages in education.

Entry filed under: Uncategorized. Tags: , , .

Scale or Fail: Making national CS education work in Switzerland Computer science education is far bigger than maker education: A post in lieu of a talk #InfyXRoads

14 Comments Add your own

  • 1. orcmid  |  May 18, 2018 at 10:59 am

    Will you elaborate on that last sentence, please? Offer an example?

    • 2. Mark Guzdial  |  May 19, 2018 at 11:15 am

      Why did Logo fade? Because it was a bad programming language? Because students didn’t learn using it? Because teachers didn’t like it? Or did it simply fade from fashion?

      Why did Pascal fade? I just met someone on a trip who helps to maintain open-source Pascal implementations. Pascal has a real place in the world. Why did schools stop teaching it?

      At one time, Scheme was a common introductory programming language. At one time, Smalltalk was the main teaching language at several schools. They’re still excellent languages that are used in many places for many contexts. They went away because of fashion trends.

      What does the “hype” curve look like for educational programming languages?

      • 3. orcmid  |  May 19, 2018 at 12:37 pm


        It strikes me that the hype curve for “educational programming languages” is strongly influenced by the “hype curve” for general-purpose programming languages and supporting/related software, especially where some sort of industrial-strength support and continuation is required for educational use. Not just software on readily available computers, but books and companion materials and education of instructors.

        The drive to rely on readily-available commodity software, languages, and tools seems unerring. Having “bespoke” systems focused on educational usage raises interesting considerations of the skills, commitment, and sustainability of their production.

        – – – – – – – – –

        Here’s my personal recollection of the progression of programming languages in the 60 years of my experience of them. This is not experience as an educator though.

        Yes, Logo and Smalltalk had serious roots in how to teach/conceptualize programming/software. It strikes me that Pascal was not designed as a teaching language, but designed to be easy to teach (and not as weighted down as ALGOL 60 was considered to be at the time). Pascal was also relatively easy to port to small computers.

        I agree that timing is an issue and so is suitability, at the time, for delivery of what we think of as well-performing production software, including software-development tools. Scale and hardware capability and affordability also mattered. Originally, assembly-language level dominated here. Recall that the entry of BASIC was for terminal access to small time-sharing systems.

        At the beginning of the PC era, Pascal was also relied upon in software development, and Basic flavors were offered as a simple language for small programming activities. There was also a turn toward C and then C++ as languages for building operating systems and software (after improvements in development tools to supplant assembly languages for general-purpose work).

        Then Java and many interpretive/virtualized programming systems (e.g., Python) arrived. The emergence of JavaScript is interesting because it was/is so connected with the Web.

        I think there is a question about progression. What serves as a on-ramp that students and enthusiasts can take their experiences toward fluency at different levels and mastery of programming and application of computational techniques in addressing opportunities to employ digital technology?

        I think Logo and Smalltalk lack headroom in that respect. That is not unique to them, and the use for education was extraordinary. there was still a what’s next and reusability of (syntactic) knowledge question. The pretty-standard structured code model has been more durable as a framework for shared understanding, like it or not. It is interesting that functional-programming style is now introduced as a supplement to the well-known structure, not as an independent alternative.

        Scheme is different, it seems to me It’s educational use (and that of Racket) is more toward comprehension of models of computation as objects of study, as well as exploration in AI-related matters. It would be useful to find out what has motivated the changes away from Scheme at MIT. What do those educators say about it?.

        – 30 –

  • 4. rademi  |  May 18, 2018 at 12:27 pm

    From my perspective, most such issues have been primarily issues of fashion and popularity than anything permanent.

    We might have a lot to learn from the people who study and teach fashion…

    • 5. orcmid  |  May 19, 2018 at 1:02 pm

      After reading this remark several times, I think it might be useful to learn from people who study cycles and explosions of innovation. Over the modern course of digital computing, there have been explosions of enthusiasm and experience by large groups of newcomers. This strikes me as a bit like geological shifts. The innovations in technology mattered, providing opportunities for the involvement of many more people, and they were, for the most part, mostly having their first experience in the wave they caught and were swept up in. This is mainly outside of the cycle of educational generations that are influenced by it.

      Here are a few markers to consider for points of entry and expansion:

      1. assembly language programming, FORTRAN and early COBOL in production mainframe work. Limited operating systems.

      2. Small systems and the entry was Report Program Generator systems. Also small systems with simple FORTRAN for applications.

      3. The minicomputer era and hobbyist expansion.

      4. The PC and personal computing, personal productivity software. Some folks were taken up with Postscript they took it on as their primary programming language. Also, local database and word-processing software. Apple and CP/M, Tandy, etc. Bulletin-board systems. CompuServe, etc. Deregulation of digital over telephony.

      5. Client-server computing and the GUI. Macintosh and Windows, although minicomputer work stations preceded, but not explosively. AOL.

      6. The Internet and the web – server-side development and browsers as UI devices. Now ISPs. Personal web pages/sites. WordPress, etc. Social networks.

      7. Serious distributed computing – the cloud, data mining, etc. First Google, then Amazon and everything.

      How computational thinking gets into here and what are the tools that facilitate it seems to be an open issue, along with the current attention on machine learning, AI notions, etc. How does that explode in an ecological sense and as human activity? Maybe we haven’t seen it yet.

  • 6. gmh  |  May 19, 2018 at 2:22 pm

    My thoughts.. There Is a “hype cycle” for programming languages and a lack of awareness/knowledge of teaching introductory programming. In my experience, parents and/or administrators hear or read about the latest language that is in widespread use and want their child, students in general, to learn what is obviously useful, in demand, today.

    In 2000, I had to defend the use of OpenOffice in a middle school instead of Microsoft’s suite of utilities. I met with parents and school administrators. I had an overhead that showed the progression of spreadsheets, from VisiCalc to Lotus 123, to Excel, to ??? My hope was to get everyone to understand that our objective is to teach students the utility of a spreadsheet, why spreadsheets are important and in widespread use. We wanted students to learn concepts, not menu systems, key combinations, etc… If history has shown that there has been a progression (spreadsheet du jour), we don’t know what our students will use five years out. I failed. My presentation fell on deaf ears.

    I was working at Sun when Java was released. I was working with the education market (K-12 through universities). They could not get enough of Java. I was recruited to help teach Java in K-12 in my spare time. Looking back, it was so wrong. Although parents and school administration loved it (and the press loved it), I don’t think the students were learning much of real value. The class was thought of as a success but I think it was primarily because the students were hand-picked, the best 15-or-so students at the school. No way would this have scaled. Everyone that follows Mark and his blog is aware of how hard the problem of CS-for-all is. The lack of qualified teachers for K-12 is a big problem.

    I think Logo is an excellent introductory programming language. But those teaching with it will have to face the inevitable question from a parent: “What good is it? There is nothing written in Logo that is in widespread use.” Smalltalk did at least have commercial value… Hype from industry is just so powerful.

    • 7. orcmid  |  May 19, 2018 at 5:08 pm

      Yes. Consider keyboarding (or typing back then) as a skill taught in schools, or shorthand when that was a formalized skill. Also, consider that parents, administrators, and teachers need something grounded. Conceptual and esoteric stuff doesn’t help those who have no knowledge of itself. “New” math fails. Driver education succeeds, I suppose, because of the degree of standardization of passenger vehicles. Even choice of a foreign language to learn will be influenced by a variety of factors for families of native English speakers.

      Perhaps “hype” is the wrong word. I think people want to choose “winners” and seek some understandable-to-them basis for choice. Selecting among mysterious options is going to come down to non-technical judgments of necessity, it seems.

      • 8. Mark Guzdial  |  May 19, 2018 at 7:39 pm

        My top two books to understand these cycles are “Schoolhouse Politics” by Peter Down and “Influence” by Robert Cialdini. I highly recommend both of them. I have blog posts coming out based on them.

    • 9. brainwash99  |  June 16, 2018 at 3:36 pm

      Spot on. With limited time and resources, many in education jump on the latest bandwagon, always looking for quick fixes and magic bullets. Objectivity gets thrown out of the window. Tendency to concentrate on what to teach, rather than how.

  • 10. iamleeg  |  May 22, 2018 at 4:23 am

    My own experience (of programming taught to Physics undergraduates between 2000-2006) is that Pascal was selected because it was good for teaching, and dropped because it was not popular “in the wild”. That implies that the selection criteria changed over time. When we chose a replacement for Pascal, we heard arguments for things that are good for nascent researchers to learn (Python, Fortran), things that are good for nascent “industry” programmers to learn (C, Java), but no arguments for things that are good to teach.

    This is in the UK, and current UK policy is focussed on universities as employee factories (the top-line metric is how many graduates start ‘graduate jobs’ within six months) so perhaps that’s trickling down to these operational choices.

    • 11. orcmid  |  May 22, 2018 at 10:22 am

      Granting the concerns for vocationalism in educational systems, I think there does need to be an on-ramp. Art, music, literature, basic literacy, arithmetic, social studies, sciences, mathematics, and physical education and athletics can be taken farther to one degree or another. Even thought there may be significant shifts in going farther, there are pathways to use in adult life.

      Pascal was dismissed as being only educational, a mistake. However, it failed to endure as a general-purpose language, perhaps because of its rigidity and lack of a mechanism for extensibility in terms of modularity and making reusable libraries. Compare that with Python and its provisions to build on libraries from other languages and also create modular systems, including ones for educational purposes.

      The take-up of lower-level languages, such as C, had a number of drivers. I know many folks who thrived with Turbo Pascal back in the day (although it could not be taught with available Pascal books because of incompatibilities around input-output).

      I also think we need to think about affordability and tools along with “teachability.” Having a widely supported ecosystem, including availability on computers found in the home and public places, not just in schools, matters for students and for teachers and administrations too.

      I donated my OLPC pair to the Haiti relief effort and I can no longer check. Beside a Smalltalk derivative, was there also an usable C/C++ installable on those small systems? Of course, as much as OLPC enthusiasts enjoyed those systems in their families, the lack of a path to established “grown-up” systems was apparently a deal breaker with respect to institutional take-up.

  • 12. brainwash99  |  June 16, 2018 at 3:30 pm

    The hyperlink in this article regarding the supposed difficulty of Java/C++ provides a simple example regarding Java, but surely this is not enough to damn both languages.

    Opinion presented as researched fact?


Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Trackback this post  |  Subscribe to the comments via RSS Feed

Recent Posts

May 2018
« Apr   Jun »


Blog Stats

  • 1,520,269 hits

Enter your email address to follow this blog and receive notifications of new posts by email.

Join 5,278 other followers

CS Teaching Tips

%d bloggers like this: