Command Line Heroes - Learning the BASICs
Episode Date: July 9, 2019Becoming a programmer used to require a Ph.D. and having access to some serious hardware. Then, in 1965, a couple of engineers had a radical idea: make it easier for people to get started. Beginner la...nguages, like BASIC, burst the doors to coding wide open. Tom Cormen and Denise Dumas recall how BASIC changed everything. Avi Flombaum and Saron share tips on picking a first language in this new era of software development. And we hear from Femi Owolade-Coombes and Robyn Bergeron about how the next generation of coders are getting their start with video games. Beginner languages give everyone an opportunity to get their foot in the door. And that helps the industry as a whole. Check out redhat.com/commandlineheroes for more information on beginner languages. Find out more about why BASIC is a beloved first language and how the next generation will learn to code on Opensource.com.
Transcript
Discussion (0)
1965 was a year of massive change in America.
The Civil Rights Act was signed.
Combat troops were sent to Vietnam for the first time.
Men burned their draft cards.
...on the steps of a Boston courthouse.
A group of high school boys set upon them with fists.
The Beatles delivered the world's first stadium concert in New York.
But far from all those headlines, a revolution of a different kind was underway.
4 a.m., May 1st.
Professor John Kemeny and an undergrad student were working at a GE 225 computer at Dartmouth. They ran a program they'd been working on, and then the teletypewriter produced
three short lines of output. Those three lines changed computer programming forever. Welcome to Episode 2 of Command Line Heroes, an original podcast from Red Hat.
I'm your host, Saran Yedbarek.
In this episode, we continue our season-long journey into the history and future of programming
languages.
In Episode 1, we dove into Python and learned how open- source language communities survive major upheavals in their leadership.
But this time, we're getting more personal.
We're looking at an experience we've all had, the experience of encountering our very first language.
We'll take a look at my first language, Ruby.
And we'll learn how some first languages come to us in the form of a game.
But we're beginning with an example that can help us understand what first languages really means.
It's the language that was born in that Dartmouth laboratory with those three short lines of output.
At that pre-dawn meeting in 1965,
John Kemeny witnessed the birth of his co-creation, BASIC.
BASIC.
It stands for Beginner's All-Purpose Symbolic Instruction Code.
And that first word, beginners, is where the magic lies.
In the early days of programming, you pretty much needed a PhD in order to do a little coding.
It was an elite pursuit that required major education, not to mention major hardware.
But Professor Kemeny and his team wanted to change all that.
What would it look like, they wondered, to produce a programming language that
anybody could use? While teenage baby boomers were demanding change all across America,
the team at Dartmouth proposed a shake-up of another kind.
Their secret weapon was a room-sized mainframe computer, that GE 225. Weighing in at a healthy 2,000 pounds, it was capable of something
brand new. The GE 225 was capable of time sharing. Suddenly, the complicated system of punch cards or
enormous walls of switches wasn't necessary anymore. Time sharing meant that a whole bunch of programs
could be executed almost simultaneously,
with the machine's attention bouncing between users.
Time sharing meant that access to computing
could expand in amazing new ways.
Here's some audio from Dartmouth,
featuring one of the undergrads studying there
when BASIC first appeared.
Here's John McGeechey, class of 65.
We had taken a fairly expensive computer that could only be used by one person at a time
and converted it into something where it wasn't just 30 users who could use it,
it was 30 undergraduate students using this computer simultaneously, writing programs,
getting answers quickly. It was a combination of immediacy and simplicity that had not previously
existed. John Kemeny had teamed up with Thomas Kurtz, another evangelist for computer literacy,
to develop the basic language. They saw how time sharing democratized
things and knew that the barrier for entry was suddenly so much lower. All that was needed was
a language that prioritized simplicity and immediacy, a language like BASIC. They developed
commands like hello and goodbye instead of log on and log off. In fact, the first version of BASIC
only had 14 simple commands, just easy options like if, then, and go to. I am Tom Corman. I'm a
professor of computer science at Dartmouth College. Professor Corman spoke with us about that
beginner's revolution and how the creation of BASIC really did feel like part of a new zeitgeist,
a world where computing was exciting to more people,
even a little bit hip.
At the time in the 1960s,
it said that the male students would bring their dates there.
I can't really imagine that happening now,
but at the time, the computer center was the cool place to be.
This new interest in computing on campus was the immediate result of that first beginner's language.
BASIC opened up computing to people who weren't just computer jocks, as we used to say back then.
Social scientists who really didn't want to get into the weeds of a language like Fortran could use BASIC. And people doing
work in the arts and humanities, if they were doing text analysis or even trying to create art,
they could use BASIC for that. So after a few years, people were doing things like writing
computer games and also incorporating computer graphics routinely into their work. All those kids who didn't necessarily see themselves as programmers
suddenly got into programming on an almost intuitive level.
It reminds me of the kind of world Grace Hopper pushed for.
When we talked about Hopper last season,
we saw how her language innovations brought programming to a wider circle.
This basic moment, it was like
a continuation of Hopper's dream. I'm sure Grace Hopper would have liked seeing more people coding.
She probably would have liked that BASIC had a different slant from COBOL and that it just opened
things up to people even more and gave them a choice. They could write in COBOL, they could
write in FORTRAN, they could write in BASIC, they could write in ALGOL,
any of the popular languages of the time.
Tom Corman is a professor
in Dartmouth's Computer Science Department.
So, a new generation of computer programmers
was ushered in thanks to a couple of major changes.
Simultaneous work, made possible by timesharing, and a new simple language, BASIC.
Those two factors combined to create a game-changing spark.
Soon, it wasn't just massive institutions that could get into programming.
It was mavericks like Bill Gates and Steve Wozniak.
It was also everyday programmers just exploring on their personal computers.
To be able to interact with a language, to get immediate feedback when something was wrong,
that made all the difference in the world because it sucked you in, it kept you going,
and the interaction was meaningful because it was an interaction.
This is Denise Dumas.
She runs the Red Hat Enterprise Linux engineering team.
I mean, basic democratized programming in a big way, right?
Because it put it in the hands of students, in the hands of people, in a way that COBOL,
FORTRAN, the other languages of the day, it just wasn't possible. It became really popular
at a time when CRTs became popular. And so instead of typing something in and getting it printed on
a piece of paper, it displayed on a screen in front of you.
We laugh at command lines sometimes now, right? Everything is graphics, but the command line was
what there was. And it was such an improvement over what had been. That was huge. Just to type
something in and get a response. I think that BASIC lowered the bar.
And I say this as someone who actually loves Assembler
because that's the kind of control freak I am,
but I think BASIC made it much more approachable.
The excitement BASIC created in the 1980s lives on today
with a whole fleet of languages that beginners use as
shiny red doors into the world of programming. And yet, something important has changed. Because
those entrances don't just show up on university campuses anymore. The way into programming is even more open. As amazing as BASIC was, Grace Hopper's dream wasn't going to stop there.
Today, beginners have a hundred ways to find their start. And for me, learning a first language
meant attending an institution called the Flatiron School in New York City.
I prepared for months for that program. I read every single programming resource and tutorial that I possibly could to make sure I got the most out of my boot camp. I wanted to learn about how
people today discover that first language. So I headed back to interview my old teacher.
Avi Flambam.
Avi is one of the founders of the Flatiron School.
So it was a treat for me to dig into Avi's thoughts about first languages and how our approaches to first languages have changed since the old days of BASIC.
So when you are teaching someone how to code, where do you begin?
Because I remember when I first learned my first programming language thinking,
this is so weird.
You know, I was an English major.
I really liked math when I was in school.
I liked organic chemistry.
There are a lot of things that I was really into, a lot of different subjects,
but there was nothing I could connect coding to.
There was nothing that was a good analogy. You know, it just felt like its own little world. So as a teacher, where do you start? you comfortable with it. And it's just a question of reps and really just time that you put into it.
I think what makes programming difficult and what makes it feel so foreign is that it is a
tremendously particular syntax for expressing something. There's zero ambiguity. There's no
margin of error. It either works or it doesn't. And when we communicate to each other, we generally
don't have that kind of requirement where everything has to be exactly correct. You know, one comma is off,
one parentheses missing, and just it's all broken. I always say that computers are stupid,
and we have to just be perfect in order to get them to understand what we mean.
I like that. I like this idea of the machine being the stupid one,
and me being the smart one. I approve of this. This is great.
Yeah.
For me, that first language, the one I this. This is great. Yeah. For me, that first language,
the one I cut my teeth on, was Ruby.
From experience, I can tell you
it's a pretty sweet first language.
When you read the code,
it feels like you're reading English.
It's got tons of great libraries.
And here's a bit of trivia.
The creator of Ruby, Yokohiro Matsumoto,
he got into programming by learning BASIC.
These days, a lot of newbies might be tackling Python or JavaScript instead.
And I wanted to know whether Avi thought any one language was a better front door than all the others.
I'm wondering, are there preferred starter languages?
You know, if someone's coming into this with no tech background,
no coding experience, no CS degree, they're kind of starting from absolutely nothing from square
one, square zero even. Are there preferred languages that are good starting points that
have changed over time? Well, first, I'll say that everyone comes into it with no background.
No one is born a programmer.
So whether you formally learned it in a CS program or, you know, in your community center
or read books and taught yourself, everyone started as a beginner. And then in terms of,
you know, the preferred beginner language, I think it's really whatever kind of speaks to you first.
Like my advice to beginners is always just pick a language and learn it.
Don't change.
I think the biggest thing
that beginners do
is kind of start learning Python
and then get frustrated with it
and say Python sucks
and now I'm going to go do JavaScript.
And then they learn JavaScript
and then they get frustrated
with JavaScript
and they jump again.
You know, I personally, as you know,
think that Ruby is a great beginner language. I think
that its syntax is just, you know, really beautiful. Its value, I mean, explicitly is to make you the
programmer happy. I don't know any other language that was invented to make a programmer happy.
I know a lot of languages are invented to make machines happy, but I think Ruby's really natural. We can agree on that one.
But again, there's no wrong answer here.
A first language, after all, is just that, a first.
We've all got a whole lifetime of language learning ahead of us.
And besides, choosing one language over another
isn't going to stop you from becoming the awesome programmer
you were destined to be.
You know, I like to draw,
but I will not live and die by a particular pen. You know, like I don't get all worked up over the
pen that I use. I get worked up over the things I create. And so from your experience, where does
that come from? Where does that need to defend and convince everyone that you were right about
a programming language? Where does that come from? I guess, I don't know.
The first thing that came into my head,
because I loved your metaphor of the pen versus the output.
I just imagine that some of the output is not that great.
So the only thing that people can hold on to is the tool.
That's hilarious.
If the things you make just aren't awesome
and aren't great and don't have a lot of value
for the world and you want to
still defend your craft the only
thing you can point to is like yeah but look how
well I swung that hammer sure
the house fell apart
but that hammer that hammer
is really great and I know how to use it
and you know as someone like
I always was more
interested in the things I built than the manner in which I built them. That's a good point. Now
that beginners have more to choose from than just basic or, I don't know, Fortran, now that we have
a whole menu of first languages, there's always the danger that you forget these languages are
still a means to an end. The language is the tool.
It's not the thing you're making.
I think that the value of technology is to create meaningful things for people.
Ultimately, if you're a programmer and you're really, really good,
but you're building things that no one needs and no one likes
and aren't adding value to the world,
but you're really, really good at the craft
and you just can't find a way to actually make the impact you want, I imagine that you'd
probably dig in and talk about the tool you used.
Well, thank you so much, Avi, for sharing all your experiences and your thoughts about
programming languages.
You want to say goodbye?
Yeah, this was super fun.
It was nice connecting again.
And I hope you all find a language that you love and get to work in it every day.
Sounds good. Avi Flumbom is one of the co-founders of Flatiron School.
Coding schools can bring that spirit of access and education to a whole new level.
It's a continuation of what we saw at Dartmouth.
But in a rich development ecosystem, we'll keep getting more and more natural points of entry.
And first-time coders are already discovering next-level ways to get into the game.
Sometimes, literally.
Have you tried, like, a different key? So I tried the G key. ways to get into the game. Sometimes, literally. Now, hold on. That is not a bunch of young coders silently memorizing an O'Reilly textbook. And it's not a lecture at the Flatiron School either.
It's actually a little lab that Red Hat ran at the Tate Modern in London. And those kids,
they're learning to code. For a new generation, the joy of coding is what they first encounter.
Okay, hi, my name is Femi, aka HackFemo. Femi Ouelade-Coombs is only 13 years old,
but he's already a leader in a new wave of young coders.
I first encountered coding when I was eight
and I went to an event in York, actually, about maths.
And there I saw this cool thing, you know,
hacking Minecraft ethically.
And as an eight-year-old, I thought that was really cool.
So that's how I got into coding.
He's not alone.
Minecraft has introduced a whole generation to coding.
And it's done that without any of the pain or dry studying
that past generations suffered through.
The magic of gaming is dropping barriers.
Minecraft is Java-based,
and it's been credited with breathing new life into
that language, spawning a whole crowd of fresh-faced Java fans. But it doesn't have to be
Java. For Femi, Python was the language he discovered in Minecraft. You can use Python
when you're using the Raspberry Pi in Minecraft, because Minecraft have created a special edition
for the Raspberry Pi, which is so cool because you can hack it by just importing this like library and you can put
exploding tnt everywhere and you can create blocks behind you you can create whole buildings
all sorts of things when i first played it i knew there were quite a few things like mods you could add on, which are pretty cool.
So those were like little hacks in themselves.
But this was the first time that I realized you could like properly hack it and really make it do what you want.
I thought it was really cool.
A world of coding opened up for Femi.
And the door to that world was his favorite game.
And then Femi did something kind of amazing.
He started showing other kids that door.
Well, I wanted to share my knowledge with my peers because I thought, you know what?
They will really enjoy this.
And I have and I had a great time.
I want to share this with everyone else so that they can they can learn
about it and so that they can even get into coding. Femi went ahead and founded the South London
Raspberry Jam and there he's been able to watch a whole new generation of coders defy expectations
about what a first language experience should look like.
Besides those Minecraft hacks, visual languages like Scratch or Fruit are making the basics of coding achievable to younger and younger users.
I do like the idea of playing a game,
and I most certainly do it over, you know, learning to code in a classroom.
But it's the idea of, you know, being able to control what happens in that game
and code is behind that and code gives you that really cool ability to make the game do what you
want. Femi's mom told us how happy she was to discover that gaming didn't have to be a passive
pursuit. What I love about his story is that it starts with gaming, sure, but
it doesn't end there. He built an amazing community of young coders, and Femi's own coding life is
taking off. It's not just Minecraft anymore. He works in HTML, JavaScript, and CSS, building
websites and doing web design. He's even building his own games using Unity.
Everyone really should have a right to learn how to code because it is the future.
So is Minecraft really a giant programming university?
Are the coders of tomorrow going to absorb new languages
through games and simply messing around?
Will languages be learned just through osmosis?
Hi, my name's Robin Bergeron.
Robin's the community architect for Ansible over at Red Hat. And she also happens to have a couple
kids who've stumbled into programming themselves. So there was a moment at dinner one night,
I was actually cooking. Everyone was impressed. My daughter came into the kitchen area and she said, mommy, I filed a bug in Minecraft. You know, I work in software. I get
to see lots, you know, lots and lots and lots of bug reports. And I was just really curious about
what that meant in that universe, right? Is that like a, you know, I've, I talked to someone on
Twitter and said it's broken or what? And I asked her to show me. So she opened up, you know, I talked to someone on Twitter and said it's broken or what.
And I asked her to show me.
So she opened up, you know, her computer and she had created a JIRA account in Mojang system.
We should note, Robin's daughter was 11 when she did this.
She had filled out their form exactly.
And, you know, I see lots of bug reports that are not well formed or they're very mean.
I see a lot of that too. But it was a perfectly, you know, I see lots of bug reports that are not well formed or they're very mean. I see a lot of that, too.
But it was a perfectly, you know, here's what happened.
Here's what I expected to happen.
And here's all of the steps to reproduce, which is, you know, for a lot of people, that's their first interaction with any project, whether it's a commercial, you know, proprietary software project like a video game or an open source software project.
And I was so proud. And I told her we could totally go to the Minecraft conference after that because they had
been dying to go. Robin was about to realize that while the rest of us were going about our day jobs,
the kids were starting a revolution. Here's what happened at that conference.
We went to the keynotes and I said, oh, we'll go at the last second.
We'll be fine.
We'll totally be like in the second row.
Oh, no, no, no, no.
We were like 10 of those gigantic big screens back in the room.
But it was nonstop cool stuff for kids.
And they had a moment on one of the days where they brought out all of the developers.
And when the engineers came out,
literally every kid in this audience was like standing on their chair screaming.
Like if you've ever seen a Here's the Beatles,
like the Beatles Come to America video, it was like that.
I mean, it was like, I can't believe we're like near them and they're amazing. And, you know, during the sessions, people were trying to get their autographs.
And it was, you know, I'm sitting there with my kids being like, I work on operating systems that connect the internet so that you guys can actually game together?
What are we doing wrong?
But kids just being like, I'm going to be a JavaScript person when I grow up, yes!
And just watching the level of enthusiasm
at that event was fascinating.
But it's a video game.
There was a time, back in the 70s,
when everyone's first language was basic.
And then, maybe it was C.
More recently,
people have been starting with Java or Python.
But visual languages and games are ushering in a coding future that we're only beginning to imagine.
Even though it may seem trivial to someone who's been programming for years, it's, you know, like that first moment of I'm playing and I don't even realize that I'm actually learning something that could turn into a lifelong skill.
Robin Bergeron is the community architect of Ansible at Red Hat.
Basic invited college students into the world of programming, and games like Minecraft invite
elementary school students into that world today. But in a way, the creative impulse behind all of this hasn't changed.
Those college kids exploring BASIC, yeah, they were often using it to build their own games.
Lots of fantasy football, apparently. Our creative spirit is what drives us toward
programming languages in the first place. That drive to tweak the world, make it better, or just more fun.
Next time in episode three, where do brand new programming languages come from anyway?
We're learning how incredible challenges push developers to walk away from the languages of
yesterday and build something totally new today. Command Line Heroes is an original podcast
from Red Hat. If you want to dive deeper into the origins of BASIC or anything else you heard
on this episode, head on over to redhat.com slash command line heroes.
I'm Saranya Barak. Until next time, keep on coding. in my role, I get a lot of questions about AI, particularly about foundation models. Now, don't get me wrong. Those are important, but they're not the whole story. Whether you're using a commercial
model or an open source one, you're going to need to fine tune or augment models with your data
for your use case. And you need a common platform for that, where data scientists,
app developers, and ops teams can all collaborate, especially as you start to scale.
And then this is iterative. It's rinse and repeat.
So really, it's about making that fast path from idea to model to production and back again. And
that's what Red Hat OpenShift AI does. Head to redhat.com to learn more.