Along with the ARC transition, the move from PowerPC to Intel was incredibly smooth (relatively). But much of the work for that was done long before the change actually happened.
Both of those changes required very little from developers. Obviously a new language is going to take much more. The biggest challenge with Swift is keeping the programming interface simple. While it gets rid of the @ signs that people stumble over in Objective-C, Swift didn't really reduce the amount of learning required to create a program. Rather, it seems to be everyone's new favorite place to talk about exotic programming concepts, which results in terrifying blog posts like this one: https://developer.ibm.com/swift/2016/01/27/seven-swift-snare...
I wonder how long it will be before someone like Douglas Crockford shows up with Swift: The Good Parts.
The Gmail native iOS app is really nice, so the flow of innovation isn't consistently pointing towards the web. But part of the answer to getting "desktop deployment right" is sandboxing. In essence, the native app platforms are making operating systems more like web browsers, while projects like Mozilla and Chrome are trying to turn web browsers into operating systems.
One major problem: HTML5 is fragmented across platforms and is missing important ingredients needed by app businesses. In the end, it's just another platform, and not a very good one if a good user experience is something that you hope to deliver.
Bill Dudney and I are organizing a conference for iOS app makers in San Francisco next month. It's unique because it's not being run by a platform company, a media company with a network of sponsors to satisfy, or a professional conference organizer. We're just two app developers with some ideas about how to make an event that's more productive for app developers like ourselves.
Check out our speakers, and I'm sure you'd find that the people who are signed up so far are just as impressive. Join us?
Oops. It's back now. Sorry about that, I intend to upgrade that site but have been taking on some new things lately and haven't had much time. Also, I don't really follow Hacker News, but a friend pointed this post to me. Feel free to follow up with me any time on Twitter, email me at tim at radtastical dot com, or come see me at one of the meetups that I organize. http://meetup.com/sviphone
I've never heard that web apps require approval. Probably a typo? Also, it would be nearly impossible to "crash the whole iphone OS." An app runs in a sandbox, the worst thing it could crash is itself.
I'd just let the market decide. With so many identical-looking screens of apps, most iPhones already are getting cluttered. I expect that we'll soon see a better (hierarchical) Springboard.
How about those book publishers who attempt to milk their printing presses by publishing multiple titles? Or bloggers who attempt to milk their blogging software by publishing multiple articles?
Yes, I agree with you on a lot of that, especially if you can write your entire app in Ruby. That hasn't been true for me though. Either I have to go to C for performance or there's some library that I want to use that's easier to use directly from C.
You'll probably want to switch to MacRuby. By this summer there should be lots of sample code.
Hi Ross, little things add up, and they are easy to fix in higher level languages (with macros). I consider programming to be a process of building abstractions, and I think the best high-level abstractions are concise.
I like to quote Peter Norvig on the subject of interpreted languages. But in his quote, he uses "interactive." Maybe that's a better word:
"Which way would you rather learn to play the piano: the normal, interactive way, in which you hear each note as soon as you hit a key, or "batch" mode, in which you only hear the notes after you finish a whole song? Clearly, interactive mode makes learning easier for the piano, and also for programming. Insist on a language with an interactive mode and use it." - Peter Norvig, Teach Yourself Programming in Ten Years.
I've seen Objective-J and generally have good feelings about Javascript. But it's not particularly strong on one other criteria that I like to apply, which is that it should be easy to mix code written at different language levels.
It's relative, and it's a distinction that changes as we make progress. Objective-C is a higher-level language than C, but as you noted, it's not interpreted, and I don't think it would be very pleasant to use as an interpreted language. It is verbose and repetitive (for example, to add a property to an Objective-C class requires you to add three lines of code in three separate places in your source code). And apart from the C preprocessor, it doesn't give us tools for building layers of abstractions that would hide these problems -- except for its handy ability to be used to write the implementation of something that future programmers might continue to see as "high level".
To be fair, it depends on the application. You might not have to write them, but there are still plenty of applications where memory and speed are issues, and C gives you some really good tools to deal with them, but you're right -- C is not a high level language and shouldn't be used as one. I would go a step further and say that Objective-C also is not a high level language. Most people here would agree, but lots of Cocoa developers see it as the top of their language stack.
When you get serious with it, the Ruby/Objective-C combination has a lot of problems, mainly because the two languages and cultures simply weren't designed to go together. I have some notes on that here http://programming.nu/rubycocoa-and-rubyobjc and if you have the patience, a talk online that I presented at Jonathan Rentzsch's C4[1] conference: http://www.viddler.com/explore/rentzsch/videos/13 MacRuby is a step in the right direction, but in my opinion it's better to use a glue language that's specifically designed for the task (and if you don't like mine, write your own :-) ).
Of Malone's suggestions (to Washington), "making education more open" is the one thing that can most easily be done at the grass-roots level by parents.
Quoting Malone, "Why, when mom and dad are multitasking jobs at their laptops at Starbucks, are classrooms still bastions of rigid hours and even more rigid schedules?" Why, indeed. Furthering the missed opportunity, many of the younger children of our most educated and creative are being raised by nannies and missing out on the chance to learn by absorbing their parents' winning ways.
These are good distinctions, and all categories (especially the lower ones) are well-represented on sites like digg, reddit, and this one.
But there's at least one more dimension to this that seems completely orthogonal, and that's identity. If you want your opinion to be appreciated, then I think that you should be willing to identify yourself. With so much information competing for my attention, I'm much more willing to pay attention to people that give me a way to track back to some background on them, whether they are famous or not. So unless you're worried about your opinion triggering a nighttime visit from the secret police, don't hide your identity. Mine's here: http://blog.neontology.com/about.
Both of those changes required very little from developers. Obviously a new language is going to take much more. The biggest challenge with Swift is keeping the programming interface simple. While it gets rid of the @ signs that people stumble over in Objective-C, Swift didn't really reduce the amount of learning required to create a program. Rather, it seems to be everyone's new favorite place to talk about exotic programming concepts, which results in terrifying blog posts like this one: https://developer.ibm.com/swift/2016/01/27/seven-swift-snare...
I wonder how long it will be before someone like Douglas Crockford shows up with Swift: The Good Parts.