Melinda Gates Was Encouraged To Use an Apple and BASIC. Her Daughters Were Not. (huffingtonpost.com) 370
Long-time Slashdot reader theodp writes: In August, Melinda Gates penned Computers Are For Girls, Too, in which she lamented that her daughters "are half as likely to major in computer science as I was 30 years ago." So, what's changed in the last 30 years? Well, at last week's DreamForce Conference, Gates credited access to Apple computers at school and home for sparking her own interest in computer science [YouTube], leading to a career at Microsoft.
So, as she seeks ways to encourage more women to get into tech, Melinda may want to consider the effects of denying her own children access to Apple products [2010 interview] and of Microsoft [in 1984] stopping computers from shipping with a beginner's programming language (a 14-year-old Melinda reportedly cut her coding teeth on BASIC).
Melinda can raise her kids however she wants -- maybe her kids will just start programming with the Ubuntu that's shipping with Windows 10. But is it a problem that there's no beginner's programming language currently shipping with Macs? Over the years Macs have shipped with Perl, Python, Ruby, tcl, and a Unix shell. Do you think Apple could encourage young programmers more by also shipping their Macs with BASIC?
So, as she seeks ways to encourage more women to get into tech, Melinda may want to consider the effects of denying her own children access to Apple products [2010 interview] and of Microsoft [in 1984] stopping computers from shipping with a beginner's programming language (a 14-year-old Melinda reportedly cut her coding teeth on BASIC).
Melinda can raise her kids however she wants -- maybe her kids will just start programming with the Ubuntu that's shipping with Windows 10. But is it a problem that there's no beginner's programming language currently shipping with Macs? Over the years Macs have shipped with Perl, Python, Ruby, tcl, and a Unix shell. Do you think Apple could encourage young programmers more by also shipping their Macs with BASIC?
So what? (Score:4, Insightful)
Re:So what? (Score:5, Insightful)
Re:So what? (Score:4, Informative)
She was a manager for Microsoft Bob. 'nuff said.
Re: (Score:2)
"what has she done"
She married a billionaire.
Re: (Score:2, Insightful)
> Computers will soon be capable of programming themselves
LOL.
Re:So what? (Score:5, Insightful)
Wow. I solve integral and differential equations in real life. The differential ones are especially useful when they're cost functions and you want your optimizer to run fast.
Re: (Score:2)
Can you justify the closed form assumption?
Re:So what? (Score:5, Funny)
For some measure of "soon," right after we all have flying cars in our garages. Hey! We could put the two together and call it Skynet!
Re: (Score:2)
autom=nomous flying cars are on the way. Personally I am holding out for nuclear energy too cheap to meter.
Not Apple (Score:2)
Re:Not Apple (Score:5, Informative)
A Mac is a Unix machine that you don't have to fight with to watch a movie on. They're excellent choices for someone to learn programming.
Re:Not Apple (Score:5, Funny)
A Mac is a Unix machine that you don't have to fight with to watch a movie on. They're excellent choices for someone to learn programming.
Oh fuck off. What's so hard about:
> git clone ssh://github,com/supermovieview/viewer.git ./configure ./configure
>
> make
> make install
> (permission denied)
> sudo make install
> supermovieview
> (usage supermovieview filename)
> supermovieview captain-america-civil-war-1080p.wmv
> (error, wmv not supported. Maybe install supermovieview-codecs?)
> git clone ssh://github,com/supermovieview/codecs.git
>
> make
> make install
> (permission denied - ffs)
> sudo make install
> supermovieview captain-america-civil-war-1080p.wmv
> (error, failed to open audio stream)
> sigh
> sigh: command not found
Ah, okay. You might have a point.
Re:Not Apple (Score:5, Informative)
Or you could just install VLC...
But feel free to make it like it's a big deal.
Re: (Score:2)
Any computer can be used for learning running any operating system. I've got a slew of Raspberry Pi computers and for $35 you can easily set up a good system to learn programming in several languages with an incredible number of sources providing instruction geared towards beginners and kids. The good thing about the Pi is it's set up for experimentation and hacking. But if all you've got is a windows machine there are plenty of ways to utilize those as well.
Re: (Score:2)
You can even open a Bash shell for scripting. What's easier than that?
Re: (Score:3)
Brainfuck.
Re: (Score:2)
I got into *NIX and programming because I had a Mac growing up. OS X came along and I found Terminal.app and it was nonstop to a household of BSD and Linux machines. I was able to complete a lot of CS computer assignments locally while my peers fought for time on the universities old SUN machines. (Right before a deadline the whole thing ground to a halt).
Re: (Score:2)
Oh and Apple, you can keep CUPS. It is a lousy technology that hardly compensates the community for everything else you took to build X.
Speak for yourself -- I routinely have an easier time setting up printers on my Linux box using CUPS than my Windows friends do. And, as much as I think editing raw text files is great from flexibility/power standpoint, the ol' localhost:631 interface is very nice in my experience.
Re: (Score:2)
Never used one, hey?
Or are you a Windows user who's never discovered the command line?
Re: (Score:3)
lol...you are apparently not aware of the many contributions Apple has made to UNIX.
Re: (Score:2)
Some bold statement like that needs an explanation.
Windows: a computer you barely can use in daily work?
Mac sucks! Why?
I don't see a real difference between Linux and OS X except for standard apps like mail and the general
UI.
Re: (Score:2)
Click the little magnifying glass in the upper right, type "terminal" and hit enter. You're welcome.
Is Perl really that hard to learn? (Score:5, Interesting)
Re:Is Perl really that hard to learn? (Score:5, Funny)
Children need to learn FORTRAN early on - I want them to know the pain I grew up with.
Re: (Score:2)
If they are learning Perl, they are experiencing more pain than I did with Fortran, and I used card-oriented Fortran. I used to start lines in column 10, instead of 7, just so I didn't make a mistake and accidentally create a continuation card.
Re: (Score:2)
I was learning fortran just as cards were being phased out - so at least I didn't have to worry about spilling boxes of cards. But the coding rules were the same.
It's not a difficult language... it was just highly annoying. I found perl to be more obtuse, but without fortran's archaic rules I enjoy it much better.
Re: (Score:2)
I think COBOL would make a good first language.
Re: (Score:2)
Their parent should learn how to spell Fortran. What's so hard about
print "hello world" ?
Re: (Score:2)
Perhaps... but then we'll have to keep them away from our starships.
Perl Is A Great Applesoft Replacement (Score:4, Interesting)
Perl is a great contemporary replacement for Applesoft BASIC: it is easy to get started in, links easily with other parts of the operating system, and is infinitely expandable.
Yes, as ShanghaiBill writes, some Perl programmers enjoy writing obfuscated code, but "some" is not equal to "all." The best Perl programmers write code that is as readable as Java, with less reliance on cramming everything into regular expressions.
The main problem for kids is a lack of code written to be read, so that they can organically absorb how it works and get started on their own projects quickly, because in my experience, all the good programmers learned their craft by getting passionate about creating something and driving themselves toward that goal.
Re: (Score:2)
Perl is a HORRIBLE language for beginners - filled with irregular rules that defy all logic. The oldest versions of Basic are poor languages, but VB6 and beyond actually have reasonable structures and concepts.
Re: (Score:2)
How do you feel about Python as a language for beginners?
Re: (Score:2)
How do you feel about Python as a language for beginners?
Python works well as a beginner language. I teach it to 5th and 6th graders who have some experience with Scratch, but no other experience with coding. It has good structure, and the whitespace rules teach good habits.
Disclaimer: I say this as a Python hater. I do not use the language professionally if I have any choice. But it is a good learning language.
Re: (Score:2)
BASIC is about the worst possible language for a beginner, because it infects naive users with bad habits that are difficult to unlearn.
I completely disagree. All first languages teach you bad habits that you have to unlearn for your second language. What made BASIC great is that nobody at universities or in the software industry ever used it, so you were forced to unlearn all those bad habits.
Re: (Score:2)
Large parts of projects I'm forced to work with are also Perl, written mostly by grad students over the last thirty years. I've almost replaced all of them with things that are saner.
Re: (Score:2)
False. Large parts of large projects I've worked on are in perl.
That doesn't make it a good idea. Using any dynamically typed language in a large project is a bad idea. They are called "scripting" languages for a reason. They are for short scripts, not for large programs.
Because the interpreter is faster than most, it's actually better suited to larger programs than many other scripting languages.
"Execution speed" is about the dumbest reason to pick a language. Speed rarely matters, and when it does you should not be using any scripting language.
It's an ancient notion that you can write bad code in any language; this sounds like a claim about programmers, not perl.
If you pick a random Perl program and a random Python program, the Python program is much more likely to be readable by someone that didn't write it
Re: (Score:2)
If your Perl is unreadable, your doing it wrong.
The problem with Perl is that it is easy to "do it wrong". Unreadable code is still unreadable regardless of whose "fault" it is.
Also Perl scales just fine, i've don'e at least a hundred Perl project
If you have done 100 projects, then it is unlikely any of them were very big. Perl is great for a 10 line script. It is okay for a 100 line script. It is workable for a 1000 line script. But for a one million line project involving dozens of programmers, it will be a disaster.
No reason to ship with it (Score:5, Informative)
Unlike the 1980s, nowadays it's trivially easy to get BASIC (or most any other computer language) onto your computer, regardless of platform - usually for free.
And if you want to stay in the walled garden and something which has ostensibly been vetted, there's a $4.99 version of BASIC available for OS X / MacOS in the App Store.
Re: No reason to ship with it (Score:2)
Operating systems, programming environments and applications are many times more complex than they were in the '80s and so is the amount of work which needs to be done now to get something decent up on the screen. A beginner in the '80s could fairly easily produce a useful program which was of a comparable standard to other software available. I'd say it's a lot harder to achieve that now.
Re: No reason to ship with it (Score:2)
Python takes 30 seconds to install. Getting a hello world desktop app out of Visual Studio Community Edition is super easy. I would argue it's as easy or easier than ever.
Re: (Score:3)
Hello World on pretty much any 1980s 8 bit-computer:
Switch computer on.
Type: 10 PRINT "Hello World!"
Type: RUN
There is nothing easier than that.
Re: (Score:2)
You didn't even need the "10", just
PRINT "Hello World!"
would execute the statement immediately and I think that's something a lot of modern implementations lack or hide away.
Re: (Score:2)
Oh, you want a REPL [wikipedia.org]. Why didn't you say that earlier.
Press SHIFT-CTRL-J and it is right at your fingertips.
Then type:
console.log("Hello world")
and if you want to go fancy, replace that with
alert("Hello world")
There are plenty of great ways for anybody to get started programming. And one the options is in fact right there inside your browser. Javascript traditionally has a bad reputation. But it has matured a lot over time. It is very readily accessible. There is i
Re: (Score:2)
Oh yes. Microsoft Basic V2.0 on my C64. 1983 was a wonderful year.
Re: (Score:2)
https://tmpnb.org/ [tmpnb.org]
Click link.
Program.
Re: No reason to ship with it (Score:2)
You can do that in cmd or PowerShell too but I'm talking about a real windowed application with a binary and everything. Cmake doesn't technically ship with Linux although many do include it.
Re: (Score:2)
There is an argument for machines shipping with it though. I expect most of us as kids explored our computers, trying out all the apps that came with it. Having BASIC right there with some example code and a tutorial in the manual (remember those?) prompted a lot of kids to try it out.
Kids need prompting. It would be nice if parents did it, but that's not always something that happens and shipping with a functional development environment and tutorial is a nice alternative.
Don't fall into the trap of thinki
Re: (Score:2)
Speaking as someone who mostly codes in perl...
I think python is an excellent candidate for a kid's first language - and it's installed by default with OS X as well as pretty much every flavor of Linux or BSD.
Is "ship with" really the big takeaway here? (Score:2, Insightful)
.
The bigger problem to be solved occurs down the road when females start encountering artificial barriers and discrimination against their participation in the field.
Best course of action --- ask female c
Re: (Score:3)
I didn't know I wanted to be a software engineer or that I would be interested in CS when I was a kid. The first PC my family owned came with BASIC, and playing with that is what made me realize. Kids are born not knowing anything, they have to be given the chance to experience stuff to know if they are interested in it or not.
Re: (Score:2)
Re: (Score:2)
So, in a nutshell, it's not the evil neckbeards that turn them away, it's being associated with said neckbeards that is.
Re: (Score:2)
The *nerds of that time wouldn't accept nor support them either in many cases; you know because girls were different and scary. But the individuals I've spoken with were more bothered by the rejection from other girls. Which one was objectively the worse thing is not for me to say. But I think this impression was partially due to the fact that many schools separated boys and girls for various activities like sports, field trips and similar things.
*I
Re: (Score:2)
I think what makes it harder for girls is that they seem to be more socially aware than boys, making the social cues and pressures to fit in with group dynamics stronger and make deviating from dominant group dynamics harder.
There's also an argument that says that a lot of technology (for a broad definition of technology, everything from tools to computers) was designed by men and carries a subtle cognitive bias towards men. It's an interesting (if flawed) argument, but it might describe why programming do
Re: (Score:2)
Best course of action --- ask female computer science people (and I don't mean a person who brought Microsoft Bob to an unsuspecting world, but real female computer science people) what obstacles they faced and what would they do to remove them.
I also wish that when people did ask real female CS people for commentary, or to show as representatives of their fields in a public forum, they actually did that. Far too often it seems like they hold up project managers and various support roles as shining examples of "women in tech", rather than actual software developers.
Computers DO SHIP with a programming language (Score:3, Insightful)
Re: (Score:2)
What? No! Entry programming should be simple, use real words, teach people general looping and branching in a trivial way. It shouldn't be some maybe maybe not object oriented programming language. It should not be a language that permits you to do multi-line conditionals without curly brackets silently without throwing up errors. It should scream and shout at you for missing semicolons to split up sentences. It shouldn't be forgiving and try to figure out what you're doing.
All we do by teaching javascript
And a program editor? (Score:2)
I think Javascript is a great language to learn to program. It ships with *every* computer, tablet, phone on the planet.
You need not only the interpreter but also a text editor so that you can make the HTML and CSS and JS files. Notepad is fine to start with on a PC, but does a text editor ship with every iPhone and iPad? I thought iOS was designed to hide the concept of a "file".
What? (Score:2, Informative)
Every Mac comes with Python, Ruby and Perl (not that I'd recommend the last one, but some people are masochists), just like Linux.
You can click a button in the app store and get Swift, C, C++, Objective-C and there are other buttons for pretty much anything else you could ever want.
Re: (Score:2)
BASIC by any other name (Score:5, Insightful)
Re: (Score:2)
Yep, my son did perfectly well with Python, and he didn't even need my help to make it work.
Re:BASIC by any other name (Score:5, Insightful)
B is for "Beginner's".
Re: (Score:3)
Courtesy is for everyone.
Re: (Score:2)
This is slashdot. If you're sensitive this ain't the place for you.
Re: (Score:2)
but would be a very bad place for someone to start in in 2016.
Defend that statement.
Personally I think there are definitely languages not suited for beginners. You say including but not limited to python, which I would argue is a good language since it enforces some strict requirements, unlike say Perl where two different programmers can write the same program only to have it look like they were both using different languages.
Re: (Score:2)
Re:BASIC by any other name (Score:5, Informative)
> Line numbers
That's a benefit. Understanding and being able to reference the order of execution explicitly and the cost of changes, is a huge lesson that it enforces accidentally.
Talk about Poke and Peek, then we're getting into the problems with (apple) BASIC.
> Nothing about BASIC makes it more suited to beginners than many other languages out there, including but not limited to Python
Lack of features makes it more suited to beginners. Less things to need to understand or use for additional complexity.
Algebra is taught before Calculus, necessarily. Humans learn with blocks before bridges.
Re: BASIC by any other name (Score:2)
Re: (Score:2)
> Contemporary languages don't use them and with good reason.
We also don't use training wheels on motorcycles. Your objection misses the point entirely. BASIC is not a good general purpose language. It's not good for much at all. As a beginner language, it's one of the best fits.
Re: BASIC by any other name (Score:2)
Re: (Score:2)
Re: (Score:2)
Line numbers, to start with.
Are you kidding? Everybody old enough to remember knows that the real purpose of BASIC was to teach Dartmouth students how to count by tens!
Re: (Score:2)
BASIC (or some modern variant of it) is still a good language for beginners. And by beginners I mean like kids, not like adults making a professional reconversion.
I rediscovered it in the mid 2000s with Blitz BASIC and it is so simple. No boilerplate code, no need to understand higher concepts to actually do something. You want to draw a square, just call the instruction to draw a square. You can easily make a playable game in a couple of hours with this.
It is nice having a clean language like Python but no
Lisp: lots of irritating superfluous parentheses (Score:2)
If you have to have a custom editor just to make a language usable its a fail in my books.
Then I'd say the same about something like Lisp or Scheme, which needs parenthesis matching in the editor to be usable.
Macs come with plenty of languages (Score:3)
Macs are pre installed with AppleScript, obviously.
Python, Perl, several Shells, AWK - actually one of my favourite beginner languages.
However having a simple language which is already displayed as an icon on the Dock would probably rock.
Still waiting for a viable successor of Hypercard ... (and please don't post links to that company that is changing its name every 2 years and claims it RealCoder or LifeCoder or however it is called now is a Hypercard successor, it is not, it is rubbish)
Re: (Score:2)
AWK - actually one of my favourite beginner languages.
You should consider getting professional help - you're one sick puppy.
Re: (Score:2)
I always liked Arexx. It was possible to do amazing things with it.
https://en.wikipedia.org/wiki/... [wikipedia.org]
Is it worth it? (Score:2)
Re: (Score:2)
No, women don't make better programmers than men (when taking the whole population into account, there is a bit of sampling bias).
But they make more programmers to pick from. So if you take the 10% best programmers, but you only started from a pool of randomly selected people (male), you get worse programmer, than if you start from the entire population.
And I do care about having the best computer scientist going in the field.
Re: (Score:2)
The hard currency to buy imported hardware was wasted and hope for new advanced production lines for export never happened.
In the West it was more dynamic and based on testing. Merit and wealthy parents or skills and savin
Why is this getting airtime? (Score:2)
It's not your job to decide your kids' careers (Score:2)
It's their choice. Trying to force them to go into a field that *you* want them in will likely either sour them on it altogether or, even worse, send them into a field that they don't have any real aptitude for.
Re: (Score:2)
I wonder if, 40 years ago, there were any articles where William Gates Sr. lamented how his children were less likely to go into corporate law.
Re: (Score:2)
But isn't it a parent job to make sure your kids are exposed to various fields, experiences and opportunities?
I don't think it's got anything to do with gender (Score:5, Interesting)
Swift is suitable for beginners. (Score:3)
For students or families who favour Apple products, Swift is the obvious choice. Very modern and yet easy to learn. But powerful enough to make real apps.
Start with the Swift Playgrounds app on an iPad. Teaches by setting challenges:
https://itunes.apple.com/gb/ap... [apple.com]
Then download XCode for Mac when ready to take it further.
XCode has Playgrounds for your own experimenting.
python or (i guess) javascript first (Score:2)
Do you think Apple could encourage young programmers more by also shipping their Macs with BASIC?
no.
Most coders know only one method of learning to code: excruciating brute force trial and error
There's no *rational* reason for learning to code to be annoying at all, but we do this to ourselves because it reinforces difficulties w
Python is taught in secondary (high?) schools now (Score:2)
BASH to the rescue! (Score:2)
You can code a LOT of cool stuff with just BASH, which mimics how BASIC used to run on the Apple ][ computers of the 80's. I mean any command you can run within a bash script, you can also type in the CLI.
Macs do ship with programming languages (Score:3)
No, because BASIC is an awful language that's hard to use. Meanwhile, languages intended for everyday use have got much more accessible, like Swift, which Apple uses in their free learn-to-program iPad app, Swift Playgrounds: http://www.apple.com/swift/pla... [apple.com]
Python IS a beginner's language (Score:2)
Never opened a Terminal, hey? (Score:2)
AppleScript, Python and Perl are all installed on your shiny new Mac - you've clearly never opened a Terminal window to see the latter two. Would it be helpful to ship with BASIC as well? Not in my opinion.
Arduino (Score:3)
Get every kid a basic Arduino and let them learn on something as basic as 1980's computers but that can also interact with the outside world via I/O pins.
talk about missing the point (Score:5, Informative)
What Melinda Gates points out in the TFA is amazingly simple yet profoundly insightful and yet the slashjocks can't wrap their big heads around it.
BASIC blew any and or all other "beginners languages", developed since then, out of the water. The reasons are fairly simple to understand, but you have to grasp how they were interconnected.
If you weren't using computers and programming between 1976 and 1984, you probably can't intuitively grasp how things actually were, and what is stated below was true for millions of children around the world, in dozens of different real languages. One of more negative aspects of the "good ole days" is that personal computer were not available for everyone, they were reserved for privileged children from families with incomes sufficient to be able to afford such and these costs were not insignificant, costing families upwards of a $1,000.00.
BASIC as a programming language is dead. It will never come back. But that does not mean that there is no absence. Our expectations have changed radically, what we demand from computers today was far beyond anything anyone could do with BASIC. Truly replacing BASIC is a herculean task, not something easy, and it is an open question whether there will ever be an equivalent again. The problem set solved by BASIC was many orders of magnitude smaller than what anyone could reasonably content themselves with nowadays. There were no videos(cameras capable of capturing pictures or videos), mp3s(computer generated audio was positively primitive compared to today), text and hi-res graphics were frequently completely separated, you could have one or the other, rarely both. The complexities of GUI programming rendered BASIC obsolete and still form the most fundamental hurdle to the development of something truly functionally equivalent. But if you still contend that Python or Javascript could in anyway inherit the mantle from BASIC you simply do not get it.
Re: (Score:2)
Re: (Score:2)
But I would add that the kids banging keys from the late 70's into the late 80's not only leaned to program in BASIC, many also learned to program in their processors assembly language, and amazingly both of these languages are poo-poo'd for bizarrely opposite reasons today.
Its asinine. Pretentious language bigots.
Re: (Score:2)
You mean skinny jeans, riding boots, infinity scarf, and pumpkin spice latte.
Pumpkin spice ALL THE THINGS!
Re: (Score:2)
My guess is that this is simply what the "older generation" of geeks grew up with. Every home computer pretty much had a BASIC dialect, so it was of course the first thing most of us got used to. C64 and the XL/XE line of Atari even had them built into the ROM, booting the computer meant getting a prompt that accepted BASIC commands. And I dimly remember a few other computers that had a built-in BASIC interpreter.
So of course it is what we learned as our first language. Simply because it was the first thing
Re:Oh, please (Score:5, Insightful)
Oh, I don't know. I'd have chosen a beginner language that didn't get for loops wrong. 3 times. (range -> xrange -> range again).
When I was 20, I felt the same way about BASIC. Why the hell did we start with such a crapful brain-damaging language? And, of course, BASIC was never one language, either; every micro had its own incompatible implementation, and that's not even going into the incompatible hardware that you couldn't work around.
I'm older and wiser now. BASIC was a great start to the education of a whole generation of programmers. I think of three reasons:
First off, in the days of 8-bit micros, you could understand the whole computer, and in a sense you had to. Printing stuff on the screen was great, but as soon as you wanted to do anything nontrivial, you had to POKE around, which meant you needed to learn about chips and registers and so on.
Secondly, the act of typing in listings from books and magazines taught you a lot about the programs that good programmers gave you. Cut-and-paste just isn't the same, and "read these snippets then download the whole working program" is just wrong.
Thirdly, and perhaps most importantly, when you made it to university or the software industry, you weren't using BASIC any more. Your first "real" programming language was your second programming language (third, if you managed to get an assembler for your micro), which forced you to unlearn all the bad habits which BASIC got you into.
So I wouldn't mind people using Python as a beginner language, if we all agreed, as a software industry, never to use Python in production. Not only would we all be more productive programmers and our software would be of far higher quality, it would give the kids of today the education they need. You can start today by referring to Python exclusively as a "beginner language" every chance you get.