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)
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.
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
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.
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
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.
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
Back when I was a PhD student, I came across a study showing that about 10% of the population naturally uses hierarchies in their mental model of structure. This came up in the context of HCI research, where you find things like filesystem hierarchies that make complete sense to some people and are largely incomprehensible to others. This was one of the reasons for iTunes' early success (before version 5, when they completely screwed up the UI): music was in a flat library, with arbitrary filters. You could filter by album, artist, or genre independently, there was no hierarchical structure. Geeks said 'why would I need this, I already have my music in a music/{genre}/{artist}/{album}/ hierarchy, people too stupid to understand that shouldn't use computers'.
Why am I talking about this? Because almost all mainstream programming languages implicitly adopt hierarchical structures. We have namespaces containing classes containing instance variables and methods. We have nested scopes. We have call stacks of subroutines (though coroutines are starting to come back into fashion).
So what makes Swift different? Absolutely nothing. It has a load of marketing behind it, but structurally it is no different from any other Algol family language with some Smalltalk influence. It requires thinking in precisely the same way as Objective-C or Java, it just spells some of the things differently. And it is both more verbose slower than Objective-C++ for pretty much every task.
I am TheRaven on Soylent News