If you are interested in the kinds of social networking applications Chinese are now using today, David Feng offers some ground-level observations in this article. I’m a great fan of first hand research and observations and David offers some excellent observations.
Maybe it’s been a reaction to some of media coverage of everything which has been going on with the coverage of China and Tibet, but I have been diving into technology lately. Specifically, I have been digging deeper into Apple’s frameworks for development on the Macintosh and iPhone platforms.
Here are some of my observations:
– Everything’s an object, and everything’s object-oriented. Think of actors on a stage, and passing data to objects, which act on them. All the time.
– The MVC (model, view, controller) analogy is used throughout, which makes it natural for Macintosh developers to make the leap over to Ruby on Rails development and other non-Ruby frameworks such as Django;
– While Microsoft has worked on developing new languages such as ASP.net and C#, Apple has stuck with one: Objective-C, which has roots in NeXT and OpenStep. (For instance, all classes begin with NS. What does NS stand for? NextStep.)
– Apple’s efforts, in contrast with Microsoft’s, has been on developing frameworks;
– Think of the frameworks as sandboxes which Apple provides for you to play in, which you can gradually grow and develop with, and then later contribute to;
– Cocoa and Cocoa Touch are frameworks of classes, all based on Objective-C. You use these classes to instantiate your objects;
– Instead of thinking about writing code, you spend more time thinking what you want your objects to do, and objects messaging each other;
– Apple provides many sample applications and their code. You learn by making minor changes to the code and seeing what happens;
– There is a small and very dedicated community made of Apple developers. Very smart people.
– The documentation is REALLY good, and includes videos which you can download into iTunes, online documentation, and documentation in Xcode, the development tool. It is clear, sharp, concise and jargon-free.
– Every Macintosh ships with all the development tools you need, including Xcode, Interface Builder and Dashboard so that you can develop native apps or web apps right out of the box.
After some play with it, I’ve come to the conclusion that part of the reason there are relatively few developers working on the Objective-C/Macintosh/iPhone platform is because it completely rejects procedural programming as a development model. In fact, procedural programming would most likely be a handicap in shifting to the Macintosh programming model because it basically requires programmers to relearn a new programming model.
If you embrace object-oriented programming and agile development as a model though, it’s the best.