1. 11

  2. 6

    #1 is not true on Macs, which all come with Python installed by default.

    1. 2

      As well as Ruby.

    2. 4

      I think the author may be a little bit guilty of nostalgia for the environments he learned to program in. The approach he calls delaying the pain is synonymous with making learning to program easier, and the home computer with the BASIC programming language was as much delaying the pain as anything else.

      It’s easy to overlook his criticism (and subsequent recommendation) of cloud based IDE’s, since they solve all of his problems and more besides.

      1. 3

        I don’t seem to be able to reply there, so I’ll just say that there is a minimal BBC BASIC-only environment available for the Raspberry Pi courtesy of the RISC OS people here.

        1. 1

          Hasn’t it been discontinued?

          1. 1

            The card has, but the zip file is still there if you want to make your own SD card.

        2. 3

          I actually think that the creation of many “new” languages in an effort to make programming more accessible to the “masses” backfired in a sense:

          Yes, it has become harder to decide “which language to start with”, as everyone stands at the ready to put forth his or her own favorite toy of the moment. The push for languages to be more easily learnable has also introduced a lot of abstraction.

          This can be, on the one hand, a good thing: Things that “feel” easy to do (for example, getting the current exchange rate of Bitcoin), are just an import away. On the other hand, it hides a lot of the complexities that these things rely on, in some cases actively preventing people from understanding what it is these APIs and frameworks actually do.

          In consequence, few of the people using these constructs would be able to implement them themselves, forcing them into a kind of learned helplessness: if there is no module for it, it’s obviously impossible. This finds its culmination in things like the famous left-pad package.

          When people feel at home in an ecosystem, few tend to leave it. This eventually leads to languages and environments that were once meant for learning increasingly becoming more full-featured (there’s nothing more permanent than a temporary fix….), leading to things like full-fledged applications in, eg., scratch. The lack of formal education in things like software security and software engineering for most of these “new programmers” tends to further increase this territorial behavior.

          This also creates a kind of class system, where programmers using “real” languages look down, for some reason or other, on people staying within these ecosystems. As it becomes less important to know exactly how the computer executes code in order to write it, fewer people care about how to actually work with their systems. This may be where the feeling that “Learning to program is getting harder” comes from. And the fact of the matter is, even though these abstracted environments (eg. the “cloud”) are important, someone is still going to have to create the tools that get you there: Operating systems, Browsers, Firmware on switches, routers, etc. Not everything can be taught with cloud-based REPLs.

          If someone just wants to learn to program, they shouldn’t have to learn system administration first.

          If someone just wants to learn to program, they shouldn’t have to learn operating system concepts first.

          These are the core points of the article that I disagree with. I think that learning how to express thoughts in code (which is what is being adressed very well by the “new” languages) is only one part of programming. Learning how the system works, how to interact with eg. the command line in some form or other, how the environment finds its files, and even how file formats work are also important parts that often get left behind as the level of abstraction increases (up to the cloud, where nothing matters anymore and everything is an abstract resource).

          Disclaimer: I may be wrong. These are just my feelings on the matter.

          1. 1

            I sympathize, but is installing most common languages that hard?

            Python, Ruby, and Java are all a single search away, and the first result gets you to a download page rather quickly. If you’re learning a language or Bayesian Statistics…you probably should be able to install a programming environment.

            I’d recommend using homebrew or chocolatey as installers, that might help grease the wheels as well.

            1. 5

              There was a lot of unnecessary complexity when I tried to use Python or something similar to prove or disprove Monty Hall result in 30min-1hr after a head injury forgetting programming. That challenge time had to include setting up tools, learning the language, etc. The problem just takes basic I/O, some random numbers, and some calculations. When little issues added up around the runtime or a library (can’t recall what), I just decided to try a version of BASIC since I started on it with almost no effort long ago. FreeBASIC had an auto-install for Ubuntu. Manual was about a page or two with simple I/O commands plus usable examples. Programming was typing into text file (.bas) followed by one command to compile. So, so, simple. Competed the challenge with most time going to semi-formal specification as intended vs the code or compiles.

              Probably good idea to get something already set up with libraries and all in these more popular languages. Maybe even some premade libraries for common plumbing that require no thought. They can learn the real thing as they progress. I’m sure these exist at least in pieces but lots of newcomers never see them.