21 comments

[ 3.1 ms ] story [ 59.7 ms ] thread
Opened a random topic, there's a whole lesson dedicated to using views' tag property, closed immediately...
They mentioned to _not_ use the tag property in a session at WWDC.
That's exactly my point, it's a terrible advice to give people, especially to beginners that might not know any better, and will keep using it...
The grammar in the original headline is pretty terrible, but the submission appears to have cut out quite a significant word: "Swift".
I was about to write a rant about how Apple's efforts are just a ploy to get students locked-in to the Apple ecosystem early on.

I stopped myself when I remembered how Apple is one of the reasons I really got into development. I started with Logo on the Apple IIe in kindergarten. Did a lot of programming in BASIC on the Apple platform in middle and high school. One summer I did a lot of GUI programming in Hypercard controlling Laserdiscs and playing videos on the Apple Macintoshes the school had.

I'm still torn but I think making polished material like this available is going to get kids interested in learning more about programming for sure. Having access to programming technologies in school is what got me started and if that means that kids these days will have the same chance I'm all for that.

I think when it comes to dev tools there are actually two fears: 1) that the kids will get locked into whatever platform they learn on, and 2) that kids will never get interested in programming at all.

I think developers tend to get worried about 1) because it is reflective of their personal concerns--they are constantly immersed in the battle for language and platform marketshare.

But 2) is probably more important in the long run. If a kid really gets into development, it's almost a certainty that they will try out other languages and tools over time. Heck they might have to--think how many kids started out on Atari or Amiga.

And if all they ever do is mess around with Swift and then move onto some other hobby, well, at least that is one more person in the world who has a sense of how programming works.

Yep, I think the first step is really to get them interested in programming, once they're interested, they'll switch to whatever the platform of the moment is.
With Swift going to be open source soon, I think your concerns would be addressed, there wouldn't be a lock in
The idea of a programmer learning on a language and then being "locked in" doesn't really make any sense: I have no love of Apple, and I have nothing but the most cynical thoughts regarding Apple's position with clang, LLVM, and Swift, but I have absolutely no fear that someone who learns to program in Swift could ever be "locked in". I learned to program in languages like Logo and BASIC. I then programmed in TI-BASIC for years and later Visual Basic. I do not consider any of this a waste of time, and none of he knowledge I learned of software development was somehow locked in to any of these languages.
My father bought me an Pravetz 8C computer (well Apple IIc clone) - http://www.old-computers.com/museum/computer.asp?st=1&c=1057 - also http://www.pravetz.info/pravetz-8c.html (in bulgarian). It costed 1500 levas which were a lot of money back then.

Now there was no official software, books, etc. to be found in Bulgaria. There were some really good books though, and 1 or 2 magazines that were putting ONE-LINE basic programms, or HEX codes for the Apple][ or Oric clones (called Pravetz 8D)

With a friend of mine (who had the 8D version, e.g. the Oric clone, not Apple) we spent a lot of time entering these codes and then comparing the machines. His "Oric" was pluggable into TV set, had better colors, and used tape. Mine had floppy, more memory, but greenish monitor (no colors), although high-res (Apple ][c had the 580x192 back then).

He had timers, interrupts, multiple keys at the same time, I did not had those :)

I did my first hack, out of being bored to make the live in the Gemstone Warrior game never end. There was this TSR application (TSR=terminate and stay resident) on the PC (MS-DOS) with which you can save the full memory of your computer. So if you play a game, you would save the memory before you die, then save after you die. You do this several times. Most of the memory would be untouched, so you would be looking where the bytes would decrease (some PC games actually used BIC encoding, e.g. integers kept as strings). But once I've got the idea, I've did some hacks to interrupt the Apple ][ Gemstone Warrior game, write back to the floppy the contents, and then spent days writing code to find the diffs. At the end I had to look at so much assembly, that by accident I've found how to make infinite lifes in the game.

So a lot of CALL-151, but never learned 6502 assembly that well. I was amazed when a friend of ours showed us a sprite demo where he could draw the sprites on the edges of the screen (!!!!) and displayed on every pixel on the screen (not aligned on 7). That was bananas! Also his demo did not had any flickering, and all coded in assembly.... I had to stay in BASIC land for a while, eventually made an text-editor that was mimicking the E3 editor found on the PC - with scrolling left-right. It was written in BASIC and took most of the memory, leaving almost nothing for the actual text :) - but hey it was fun.

There was this strange person though, he wrote a whole BASIC app - about 15-20kb full of LINE code (HGR, HGR2 modes) drawing Michael Jackson (okay, no Take 2, Paint shop - it was Michael Jackson drawn by code line by line).

Year later we started getting tons of "illegal" (as there was nothing else) software and enjoying lots of other games.

One day my floppy died. Months earlier my friend with the Oric had bought an external floppy, but it died also, so he found a way to seek from the begining of the head to the end and control it with the shift keys, then he assigned letters to correspond to different seek, and it sounded a bit like piano.

I did the same on my floppy when it was no good for anything else, but wasn't as cool - no shifts, just rumbling.

Ah, sector 11, or was it track 11... The memories....

(comment deleted)
Apple is playing a really sneaky game. They want to get students locked onto their platform. Reminds me of Audodesk and how everyone in the FX community is bound by their products.

Next thing you know Apple is producing "certificates" to students and controlling the programmer's market.

It was good while it lasted folk, the computing industry will follow the same trajectory as every industry that we have ( farming,manufacturing,etc)

You mean the same game that Cisco & Microsoft have been playing for years now?
...he says, after Apple announces they are open-sourcing the language they're teaching.
But no one is goi to realistically be using Swift as the main language for their platform, any more than anyone else really picked up Objective-C. There has been a from-Microsoft open source implementation of .NET for Unix since the beginning, and the standard library was specifically crippled to make the platform law tied to Windows (I specifically asked one of their engineers about this in 2001, as the BSD socket abstraction provided in .NET was pretty lame in comparison to the Win32 socket registry stuff), and I don't see people really picking up C# as their language of choice. The only cases we see people adopting someone else's languages have been Microsoft with C++ (although one could argue that Microsoft really made C++ what it was! given that they were the only major platform that embraced it for the default developer experience) and recently Google with Java (though a bastardized version of Java, with different quirks and different high-level libraries and a lot of lower-level changes as well). If people actually build a bunch of code in Swift it sort of is a "lockin". However, people learning to code are learning to code, not building massive production systems that they need to maintain ten years later: you can learn to program in a toy language, and it really doesn't matter. There is no meaningful "lockin".
I don't think that begin to learn programming on a proprietary language is a good practice. Not only it will limit your professional career as it is more difficult to change to other platforms. Also it is more easy to pick bad habits as you can easily mistake what is platform specific behavior for standard code practices.

Once you are good at designing and coding standard languages you can easily move to whatever platform/language you desire.

My first language was some awful proprietary BASIC dialect. It hasn't harmed me any, so far as I can tell. Learning one language, proprietary or not, gets you about 99% of the way to learning a second (potentially more open) language. And in any case, isn't the language due to be open-sourced pretty soon?
Mine was visual basic in school. Though we only had one year of that where we designed calculator gui before moving to C++. I don't think there are many bad habits to be learned from Swift though. It seems a decently designed language.