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)
If languages are too "greeky," they should apply for a janitorial position.
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.
Administration" and now the only thing I can see on Slashdot is "AI"
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
There was a BASIC keyword translator for the Commodore 64 that I had some fun with, back in the day.
Il n'y a pas de Planet B.
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.
Good move from Apple serving his own interests !
Programmers are the bottleneck of the digital economy. Scare and valuable resources. So the master plan looks good!
1. Design a fun and easy language to develop powerful applications
2. Get the kids hooked on it (meaning Dad and Mom has to pay to by a Mac AND the school too)
3. Say: hey! you can put your first app on the AppStore and maybe earn monies
4. Get more adult programmers trained on Apple only dev env.
5. $$$
6. Create another new and fun and easier language and deprecate the previous one
7. Sell migration tools and other training courses
8. $$$
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 /
It's roughly on par with thinking that pressing a street crossing button multiple times is going to make the light change any faster than just pressing it once.
File under 'M' for 'Manic ranting'
Bros can code, and them getting into coding means more competition for scarce jobs and wages. Nerd stuff is the one thing us nerds had. And it's been taken away from us.
Hi! I make Firefox Plug-ins. Check 'em out @ https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/
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.
I can't stand that word...
http://github.com/gbook/nidb
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
it still doesnt feel good to me to use
The problem with slashdot is that most of its users were bullied and stuffed into lockers as kids!
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.
Me too. Clearing like 8 kb of bitmap RAM with a BASIC loop and POKE command was a joke. After I saw how fast you could do it with assembly language, I was hooked.
Apple has save us from our uncool selves yet again. First, I was uncool with my non-bright blue computer, but apple saved me with the imac. Then, I was listening to music like some fucking peasant, but apple made music cool with the ipod. I'm not getting started on how my phone actually had a headphone jack... saved again.
Now, finally, the last uncool piece of my life can be brought into the light and reformed with Apple's Swift!
Im now like a real life Fonzie!
It's still an Apple-only language and as such should be avoided by beginners at all costs.
And no, crappy swift ports for other platforms, with zero real-word use, don't count.
Objective-C was created primarily by Brad Cox and Tom Love in the early 1980s at their company Stepstone. It was then later licensed by NeXT, then Apple bought NeXT and released MacOS X that still used Objective-C as its implementation language.
If you reply, do so only to what I explicitly wrote. If I didn't write it, don't assume or infer it.
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.
Hypercard was far ahead of its time. Unfortunately, most of these friendly languages are not very effective at hardcore tasks.
Alternative Right.
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
coding languages were too geeky
coding is a horizontal skill like ... mathematics
So which one is it? Can programming languages be "less geeky" or nor? And what the hell is a horizontal skill? I'd think that would be swimming or bench pressing or something.
Ezekiel 23:20
No, what Damore was getting at was that while tech environments often have good pay, they are highly abusive, like working for assholes like Steve Jobs. People that care about work-life balance are thus discouraged from tech, and that bears out statistically with having a lot of young white dudes.
Damore wasn't saying that tech needs to be cool. Damore was saying that someone should punched Steve Jobs in his asshole face when he abused his employees.
This is my signature. There are many like it, but this one is mine.
I mean come on, BASIC isn't geeky, neither is C, C++ etc. And now Python sure.
but more specifically it's _unequal_ funding. In America we fund schools with local property taxes. We do this so that rich people don't have to pay for the poor to be educated. To the point where if you try to send your kid to one of the nicer schools you'll get prosecuted for theft.
The result is that if you look at per-capita spending on schools it's very, very high but if you look at the results across entire districts they're very, very poor. It doesn't help that America has a massive underclass of working poor. Even if the kid wants to study it's hard without the support of parents.
Hi! I make Firefox Plug-ins. Check 'em out @ https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/
almost by definition. Film at 11.
Escher was the first MC and Giger invented the HR department.
I always thought Swift took many concepts from C#. Programming is geeky, what is the big deal?
Tired of my customary (Score:1)
I never coded in Swift so just searched for an example and found this, literally the first Swift code block I ever saw:
override func viewWillAppear(_ animated: Bool ) { // Create a button which when tapped blah blah
super.viewWillAppear( animated )
let button = UIButton(type: UIButtonType.system) as UIButton
let xPostion:CGFloat = 50
and so on (along with misspelling for xPosition). This doesn't look to me any different nor any less geeky from most standard programming languages. If anything, the dangling underscore in the func seems more geeky, not less.
Does anyone honestly think removing the 3.5mm jack from the iPhone was about courage?
Yes, it was about having the courage to see if you could get your customers to give you more money by having to buy new earbuds from you. Apparently they will.
The next bit of courage was removing the function keys and all but one of the ports while raising the price significantly and using one year old GPUs and CPUs...and apparently customers still bought it.
At this point, Apple is just trolling its customers to see how bad it has to get before they refuse to buy things. If you have any doubts about that just look at the MacPro: it was released in 2013 and has not been updated since yet they are still asking full price for it!
the only programming language that seems strange with a decade of coding experience
Oh, wait until you find out about Forth.
"First they came for the slanderers and i said nothing."
That was corrected for by politically funding and the private sector wanting to be seen supporting poor areas. Even with much more spending per student the tests did not get passed, the exams did not get passed. The costs of supporting new computers, GUI robot kits, laptops for each average student.
The results of more funding would have been seen in much better results over generations if a simple lack of funds was a problem.
Domestic spying is now "Benign Information Gathering"
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.
Hey, anything that establishes a foothold in a young mind that programming is fun and interesting is all good in my book.
BASIC, Logo, Swift, whatever you want man, getting that foothold in the young mind is extremely important.
One should not be concerned with proper programming, or railing certain languages for encouraging poor programming techniques, that's all ok. As a person matures, so will the languages they use, grasp of them and proper techniques.
I know Cook isn't an engineer, but what he is talking about has plagued computing from the start, engineers are notoriously bad at thinking out other aspects of things. This is why modern smartphones are so popular - the technology is mostly invisible. What he says is absolutely true. Now they must deal with the fact that, rightfully, *not everyone is interested in learning to code or becoming an engineer*. Kinda seems like the same clueless phenomenon all over again, yes?
Actually, Tim Cook not only has an Engineering Degree (surprised?); but he actually knows how to CODE:
https://www.macrumors.com/2018...
So there!
While I love swift, this is absolutely hilarious when you consider how germane and simple languages like python are compared to it.
I have a commercial license to LiveCode (nee Runtime Revolution, neeMetaCard), but there is also an open source version.
Basically HyperCard on steroids with support for the modern world, databases, etc.
hawk
The problem is that students don't learn logic.
This may shock you, but it used to be true that most students learned Logic in high school. Debate, Logic, Analysis.
Now they learn it during the second year of college. Maybe.
-- Tigger warning: This post may contain tiggers! --
Most likely there are no shop classes anymore since everyone knows all children must only take STEM classes and go to college.
and they were heavy on GUI tools to build apps. It reminded me of VBA. I think that's what he means. You don't have to set up your own UI or learn a markup language.
Hi! I make Firefox Plug-ins. Check 'em out @ https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/
I thought Swift syntax was an improvement over Objective-C until this, for instance; view!?.superview?.layer
view!? doesn't make sense. You copied something wrong. It is either view! or view?
..."
What it means: view is an optional object. Swift doesn't repeat the "billion dollar mistake" of having nil pointers. So you have objects that can never be nil, and optionals that can be nil.
view! means: "I know that view is an optional, but I bet it contains an object. So give me the object, and crash if it is nil". view? means: "Give me the object if it is not nil, and don't continue with the expression if it is nil".
A view has a superview, which is optional. So if view! didn't crash or view? wasn't nil, we get the superview. And we stop if that is nil. And the superview has a layer. So the result is an optional layer, and the expression works just fine if the view or the superview or the layer was nil. Except if you started with view! then the app will crash (intentionally, and guaranteed) if view was nil.
In Java you would write "if view != nil && view.superview != nil && view.superview != nil
A really programmer will have to learn all of the complex "geeky" concepts---eventually.
A good starter language should abstract away a lot of those things. It is very difficult and potentially discouraging to tackle flow of control, obscure IO interfaces, and UI quirks all at once.
I don't know if this is marketing fluff (never personally written Swift code), but a good starter language that runs on a popular platform should be a basic elective course for middle/high schools.
Out of curiosity, would anyone have suggestions for the best starter languages for Windows and Linux systems? Preferably something with native libraries for implementing a GUI?
---
According to the latest ruleset, this post should be modded as Vorpal Flamebait +5.
Tim Cook: Coding Languages Were 'Too Geeky' For Students Until We Invented Swift
Hahahaha, no. What an absurd claim (considering the very simple syntax behind languages such as BASIC, LOGO, FoxPro, etc.)
Not to mention that a student (a good student with the right aptitude) that goes into programming will already be inclined towards the esoteric details of programming and programming languages.
I mean, for f* sake, students learned using assembly and they came out quite capable. Nowadays, many (not all) colleges are just Java/.NET shops producing code monkeys that cannot code without a damned wizard and an IDE.
That's no progress.
Developers! Developers! Developers!
And not Node.js, via LibUV?
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.
Why is learning Python first ridiculous?
Python is one of the few current languages that you can learn as a purely procedural language, but also has a sane standard object system you can pick up later, without having to completely switch to a new language. As an extra benefit it's widely used.
The OOP extensions of Pascal were also like that and, not coincidentally, were the standard learning languages for a long time.
I forgot to look at the destination URL of the "as easy to learn as our products are to use" link and opened it in a background tab, expecting it to lead to a page with some code samples. A bit later I was very confused where the tab with a video of a cat mauling a tablet came from.
What's the point of that link?
foldl1' (\ a f -> (f =<<) . a) fs
Second: FileMaker is in itself a very successful and robust platform, not any more similar to HyperCard than say PowerPoint.
Uh, what? It's based on flat, static pages, with drag and drop elements and scripting, and it produces interactive applications. Of course it's more similar to Hypercard than Powerpoint.
It has robust realtime editing tools that let you add features or correct bugs on complex deployed mission critical mobile and web based systems, literally in minutes with zero user down time.
Uh yeah, that's what they say about web development with an IDE, too. And it's bollocks. If you don't use a testing server, then you're using your users to do QA, and that's irresponsible on a good day.
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
They learned the syntax, yes.
But it takes 10 years or more to transform a procedural programmer into an oo programmer.
You must be lucky and have only met super smart programmers. And I must have been lucky as well, as I had a big share of class room trainings where I earned a lot of money from people who where to dumb to grasp the core differences between 'procedural' and OO :)
People who did not bother to learn procedural programming first are TERRIBLE in object-oriented languages. ...
That is nonsense
There are FAR more poor OO programmers out there than procedural programmers.
Because those most likely had learned a pure procedural language first, and still have not bridged the transition to OO.
In our times people usually start with OO programming in universities, and in my experience the people who started with OO directly are much better than those that switched from languages like C or Pascal to an OO variant.
But you might have different experiences ...
Problems with GOF patterns usually only occure when people are new to patterns. They often get force fed them and then they don't really graps when and why to use one. That is completely unrelated to procedural versus OO first, how should a procedural programer know anything better about an oo pattern than an oo programmer that never programmed procedural?
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
I seem to recall some Dartmouth guys who said the same sort of thing in the early 70's. :-)
It felt VERY much like building a HyperCard app!
Having done both myself, I agree. What I found interesting was that it was easy to make Filemaker connect to something else, run commands, whatever. Making Hypercard do anything interesting cost money, which is IMO what actually killed it.
"You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
Private schools can accept their own students. Public schools have to take whoever lives in the district. A lot of money can go into services that private schools don't provide, since they can just reject the students that need them.
"When you have eliminated the unacceptable, whatever is left, however improbable, must be the truthiness" - Holmes