Tim Cook: Coding Languages Were 'Too Geeky' For Students Until We Invented Swift (thestar.com)
theodp writes: Speaking to a class of Grade 7 students taking coding lessons at the Apple Store in Eaton Centre, the Toronto Star reports that Apple CEO Tim Cook told the kids that most students would shun programming because coding languages were 'too geeky' until Apple introduced Swift. "Swift came out of the fundamental recognition that coding languages were too geeky. Most students would look at them and say, 'that's not for me,'" Cook said as the preteens participated in an Apple-designed 'Everyone Can Code' workshop. "That's not our view. Our view is that coding is a horizontal skill like your native languages or mathematics, so we wanted to design a programming language that is as easy to learn as our products are to use."
>> we wanted to design a programming language that is as easy to learn as our products are to use
Congratulations you invented LOGO!
https://en.wikipedia.org/wiki/Logo_(programming_language)
I can see exposure and accessibility being a factor in getting people interested in computer programming. Kind of like Carl Sagan's and Bill Nye's attempt to get simplified science to the masses. The reach sparked a passion in people that may have never had a reason to get into the field and expand their horizons.
Code like a beast Bro! Bro that code into shape! Be awesome! Beer at noon. Pointers? What are you a nerd? Memory management? That's like for the CPU to deal with, bro, be bro! Efficient code? BRO! They keep making faster CPUs! Mutilate that code!
Bro, it's got what your body craves.
I know Jobs had an RDF, and Cook presumably wants to copy that, but the RDF was supposed to affect the people around him, not himself. Does he really think Swift, which is another me-too language that looks like almost every other popular programming language except Python, is somehow not "geeky"? It's no more or less programmer hostile than Javascript FFS.
Is Cook trolling? That's got to be it, right?
You are not alone. This is not normal. None of this is normal.
If you want easy to use languages that teach the concept of programming (as opposed to ones for developing professional applications) there are better choices.
I think there needs to be a distinction between intro languages and ones used for developing complex, large applications. It's great to give beginners (whatever their age) an intro to programming and maybe Swift is the language for this.
This is sort of the same as the woodshop class for 7th graders that doesn't use power tools. Great intro to woodworking, but not the approach you'd use if you were building a house. The class might inspire kids to learn more about the field -- which is all you are looking for.
To me it looks like Javascript on top of ObjC with a little bit of Rust syntax here and there. Not really all that revolutionary. The thing it does for newcomers (young or old) is that it takes the C feel out of iPhone development.
Just because the CEO of Apple says something doesn't mean he's not totally full of shit. Does anyone honestly think removing the 3.5mm jack from the iPhone was about courage?
Anons need not reply. Questions end with a question mark.
var str = "hello,"
//handle the error case where anything in the chain is nil
//else scope must exit the current method or loop
str += " world"
---
let myValue = anOptionalInstance?.someMethod()
---
let leaseStart = aBuilding.TenantList[5].leaseDetails?.startDate
---
guard let leaseStart = aBuilding.TenantList[5]?.leaseDetails?.startDate else {
}
---
protocol SupportsToString {
func toString() -> String
}
extension String: SupportsToString {
func toString() -> String {
return self
}
}
---
func !=(lhs: T, rhs: T) -> Bool
Ahh yes, it's very clear how Swift is so much less "geeky" than other languages like C# or Java! I'm sure a student looking at it for the first time would instantly realize how much better it is instead of saying "that's not for me"!
This Space Intentionally Left Blank
I am sure there is an intelligent comment in there somewhere; does anybody have any idea what he means? I can see how someone could apply "too geeky" to certain languages which makes them a poor choice for your first useful program... but talking to 7th graders it doesn't really make sense to talk about C, at least to me.
Because you can use emoji characters? "Oh look how cute I can name this variable *pile of poo emoji* now I want to be a programmer more than anything in the world".
sudo rm -r -f --no-preserve-root /
Complaining that programming code is "too geeky" is like complaining that a steamroller is "too flatty".
We have enough issues and vulnerabilities being generated today by the "geeks" who have the mental capacity and intelligence to code.
The last thing software security and integrity needs is coding dumbed down to the point where Cletus T. Dipshit is at the programming helm of next-gen solutions.
Not sure if Speedware is still around. I briefly did a little work with that. They had one command that was ahead of its time. Would have been a hit with millenials.
Do Nothing;
Yes, that was the command. Don't remember the rest of the Speedware syntax, so below is wrong, but the idea was:
if (x)
{
Do Nothing;
}
else
{
CallMyProcedure();
}
For some reason "Do Nothing" was preferable to them than saying "Not X" in the If statement. I used to pepper my code with "Do Nothing" just to be silly. (I was young and liked having a laugh back then).
"That's the way to do it" - Punch
Probably the students had the (usual) comparison between Swift and LOLCODE. Here is a Wikipedia example of Swift:
guard let leaseStart = aBuilding.TenantList[5]?.leaseDetails?.startDate else { //handle the error case where anything in the chain is nil //else scope must exit the current method or loop
}
Here is an example of LOLCODE:
HAI 1.0
CAN HAS STDIO?
I HAS A VAR
IM IN YR LOOP
UP VAR!!1
VISIBLE VAR
IZ VAR BIGGER THAN 10? KTHX
IM OUTTA YR LOOP
KTHXBYE
It gets worse when you speak German where the homonym "Kot" literally means excrement.
We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
That's the man that thought removing a headphone jack from a cellphone is a good idea and that having non-replaceable batteries are what customers want.
Who in their sane mind listens to an imbecile like that?
We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
Prostitution, and painting the ceiling of the Sistine Chapel are known to be horizontal skills. I'm guessing that Cook is implying that the occupation of computer programming has more in common with the former than the latter.
Yes, PLs need to be consistent, easy to learn and easy to use. All true. But PLs also need to offer easy solutions to tougher everyday problems. Cross-platform portability, the ability to easyly abstract away the hard stuff like networking, GUI, graphics and such and an easy integrated way to swtich from OOP to functional to sequential, from event-driven to imperative and back.
The PL squaring the circle the best right now is Python. And it show, as Python is the only PL used professionally in every field you can think of while at the same time being known for a very n00b friendly PL. If Apple want's Swift to compete/beat Python in that field they have to offer all that Python offers + a free cross-platform IDE + a binary cross-compiler for all major platforms including mobile. You know, like Python freezing, only better. That would be something new and get opinion leaders on board. Until then I'm not hodling my breath.
My 2 cents.
We suffer more in our imagination than in reality. - Seneca
Might be a good comment. Just because we can, doesn't mean we should. Who benefits from a large base of barely coders?
One of Microsoft's advatages early was was that it was easy to program for. Bring down the difficulty of programming, and you bring down the cost of the programmer. Bring down the cost of the programmer, and you bring down the cost of the software. Bring down the cost of the software and you open up the market.
However, bring the time and knowledge to program down too low, and you end up with bad programmers and users that blame the OS and/or computer, not the skill level of the programmer.
No not really, I still code in C. I don't see it going away any time soon. I'm not releasing UI layer applications, and not terribly concerned with first to market.
It frustrates me that C#/Swift/etc. are being pushed so hard at the application layer and forcing C coders to do a lot of undocumented and probably shadier stuff than they were doing before, just to use OS API calls to functions that we all know were coded in C to begin with.
Object orientation is difficult to teach to people who already are poisoned by simple procedural languages.
Simply for the reason of learning the rudiments of program flow, logic concepts, simple data structures, et cetera
This is all included in Java/C# etc. in beginning classes ... or do you believe loops are any different there? OTOH "list.foreach { lambda }" is probably even simpler than writing a for loop your self.
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
What is wrong with view!?.superview?.layer
It saves you from testing if any of the attributes are null.
I think the groovy guys invented that syntax.
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
Object oriented languages are NOT difficult to learn for people who know procedure languages. C is a procedural language. Some of the best object-oriented programmers in the world started in C.
I would actually say the opposite to what you said. People who did not bother to learn procedural programming first are TERRIBLE in object-oriented languages. Because these kinds of programmers overly abstract everything, create millions of functions and/or methods unnecessarily. Create useless interfaces. Utilize GoF patterns which explode their code base completely unnecessarily.
There are FAR more poor OO programmers out there than procedural programmers.