142 karma · joined February 26, 2009
After XCode did some very creative refactoring one too many times, I simply lost trust in it. Perhaps things have improved in newer versions, but there is still too much missing: completions that are really intelligent, as well as intelligent templates.
With AppCode, it's become a game of how few keystrokes I can type to have it complete. It feels like 10% must of the time. The guesses it makes are great and what I would use most of the time, almost magical.
Do you have an SSD? I have a 27" iMac that I use as an external screen, because the HDD makes me crazy.
To make "code visible" as I use an app, I wrote a category that logs -viewDidLoad -viewDidAppear and anything else one wants: https://github.com/mediumbear/LoggingInterceptor Very handy, never ask "what is this controller called again?", just look in the console.
http://injectionforxcode.com Injection for XCode and AppCode for hot code injection so that I launch the simulator once and code interactively over many, many changes.
https://github.com/robertwijas/UISS UISS so I can interactively configure appearance proxies.
Slowly but surely, I will live like in Smalltalk.
- write snippets in a workspace, as vincie mentioned.
- write code against an API that doesn't exist, run it, have it fail, and then fill in the API and implementation.
- write stubs that fail automatically, and then fill them out (similar to above).
The difference is, when things fail: - you get to play with the live objects in a work space.
- fill in missing implementation.
- fix any errors.
And then much of the time continue execution from the point of failure. No need to restart anything.
I simply could not appreciate the variety of options available in a Smalltalk environment until I used it for some fun projects over a few months.Be warned, you might hate your so called modern environments once you get back to them. For Objective-C coders there is hope: http://injectionforxcode.com
The downside to learning Smalltalk - the realization that a 30 year old environment is more advanced than whatever modern tools you will need to return to to earn a living.
For apps that use a lot of UI graphics in the form of images, yes they have work to do. But the same would be true on Android.
But what about today? One never needs to type "load" and "run". Instead of discovery by the kid, a parent who thinks programming might be interesting for their kid is a prerequisite. And then they need to be able to do the research and install perhaps Python. And then what?
Playing around with Lua inside of Codea sent me right back to the immediate gratification of my Apple ][
In the end, does the platform matter? When I was a kid, I took apart the TV so I could see what was inside. Curious kids today will be similarly compelled to jailbreak their iPad.
I'd be curious to know how many programmers there are here who are programmers because of a push in the right direction by an adult, or simply because there were curious kids.
All one needs is a seed.
My seed was planted on a closed system: an Atari 2600. Specifically, one with a Spectravideo Compumate keyboard. http://www.atarimuseum.com/videogames/consoles/2600/compumat... When I did as much as I could do on it, an Apple ][ clone was the next step.
When the iPad came out, I lamented the closed platform, forgetting that my Apple ][ was not where I started.
Something similar to my Spectravideo for iPad, is Codea http://twolivesleft.com/Codea/. Instantly accessible, and instantly running your code. A perfect seed for a kid who might express an interest in programming.
Any kid who discovers a passion for programming has options to move onto any platform their desire takes them. The ubiquity of the iPad and other tablets might even promote the introduction to programming to anyone who is curious enough.
Also, would people would stop calling an iPad a consumption device. It can be used this way. Many people do. But then, many people use their PC for little more than web browsing and to watch Netflix. It's not the platform, it's what interest them. My laptop is gathering dust because of my iPad.
The naturally curious will naturally do more within existing constraints, and then break free of them.
This is the difference when Apple 'steals'. They are inspired by something poorly executed and create something much better than the inspiration.
You won't be disappointed, the 4S is so much faster at everything. And Siri is amazing. The only downside is that I have started looking for the 'Siri button' on my iMac.
I was amazed at the lack of 3GS phones in the line. So many people with 4s upgrading. Also many people buying 2 each, perhaps because in Canada you can buy them unlocked.
I wonder what were other locations were like?