And Now For Some Tech Talk Of the Apple Kind

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.

RSS Feed Comments

Is Twitter the American QQ?

Unless you have been living under a rock for the past six months, you have probably heard of Twitter. Developed with Ruby on Rails, it has now hit the big time, with many companies offering client versions of Twitter, so that you don’t have to keep the Twitter web page open to record your deepest thoughts, which you can share with your community/ies.

Technically speaking, there is not a whole lot of difference between Twitter and many other IM clients, including Tencent’s QQ, the immensely popular Chinese IM client. If there is any difference, it is that Twitter makes it possible for dispersed communities to keep track of each others’ activities. In contrast, the IM clients are mainly Web 1.0 tools which enable people to find and contact each other to meet offline. QQ, for instance, is a great enabler for that popular activity which we shall call “dating” in China.

The difference between Twitter and the Web 1.0 IM clients is not so much in the technology, as in the way people handle relationships. Put simply, the lines between offline and online relationships are blurring, and in many cases, more people spend more time online than they do offline. For this reason, their online communities are gaining value, and in a few cases, are assuming primary value, while their offline relationships become secondary.

This was not the case for most of the Web 1.0 IM clients.

From the business perspective, this means that businesses will have to pay even more attention to what is going on online, as I have mentioned in my previous post.

In China, many people do not have email addresses, instead they rely on QQ ID numbers to identify each other. Walk into any Chinese working area (including Starbucks and any other area which provides free Wifi) and chances are you will see that almost every screen has a QQ or Windows IM client window open.

And they are using it for business, not just personal gossip.

So, the ultimate test of whether Twitter becomes the American QQ is whether American’s use it for business, not just social chatting.

If that happens, the American Internet will suddenly look a lot more like the Chinese Internet.

RSS Feed Comments (8)

Ruby on Rails, Agile Development and the New Website Development Paradigm

ror.jpg

I have been spending some time researching Ruby on Rails, how it works, its development philosophy, and how it has affected web development, and will affect business in the near future.

The Ruby on Railsframework was released by David Heinemeier Hansson(it’s open source) in July 2004 has had a profound effect, and has been especially important in the development of the Web 2.0 movement.

Most importantly, Ruby on Rails simplifies the web development process through its “convention over configuration” and “Don’t repeat yourself” it fundamentally changes the role of the programmer in web development. Instead of asking questions like “How do I get function x to call method y?”, he is able to focus or how to do something, he is freed to focus more on the general business logic of the application.

This is why Ruby on Rails and the Agile software development movement go hand in hand. The Agile movement places a premium on human interaction and communication between programmers and business experts over software tools, process and methodology. The relationship between the Agile movement and Ruby on Rails is most clearly defined in the book Agile Web Development with Rails. Although the book is written for programmers, an intelligent lay reader and business person can also get a lot out of it, and understand the business implications of Agile development for web application development.

What does this mean? Basically, web application development as it is done by most businesses today is broken. Here are the two most common approaches:

  • Designer-driven development. In this model, the client is non-technical and is more focused on “look and feel” than functionality. The web design firm uses Photoshop and Fireworks (or similiar applications) to create mockups to show the client. When the client finally selects the look and feel he likes, it is then handed over to the front-end developers to start coding the HTML, CSS, JavaScript and Flash files as necessary, while the backend developers create the databases and tables, and finally hook up the backend to the assets. The problem which happens when the website is prototyped, the client inevitably wants to make changes to the look and feel, and sometimes functionality. Changes to look and feel mean that assets have to be found, destroyed, created and moved around. Changes to functionality mean that new databases and tables have to be made and old ones destroyed. On the business side, this means that the projects inevitably go over budget, and often the client and web design end up in an unfriendly state of affairs.
  • This is backend driven by database developers and developers who have good database and networking experience, and focus on creating the databases and tables, with little care, and often even less interest in the look and feel of the website. The most frequent result of this is a website which works fine on the functionality and business logic level but is butt-ugly. In projects of this kind the designers come in to mount rescue jobs, trying to turn a website only a mother could love into something which does not scare visitors away. In effect, the designers end up playing the role of the cosmetic surgeons in “Nip/Tuck”. Sometimes it works, often it doesn’t.

For a non-technical client more interested in creating a working application from the user point of view, this constant back and forth between client-side (front-end) design and backend programming throws them off completely from their established business goals. This is frequently made worse by the whole process: The client gives a brief then goes away, comps are submitted for approval by designers, then they go away, then the whole completed web application is shown to him, and he is expected to sign the check for the final payment with very little recourse if he is not pleased with the results, and all changes incur extra charges.By the time they have finished the project and made their final payment, they are often walking wounded.

Obviously, there is something very wrong with this development process. The designers get frustrated by limited client feedback until the project is nearly completed, the programmers get frustrated when the client changes the business logic, and the account people get frustrated at everyone, including the client.

This is what the Agile development process attempts to address. Basically, the client is asked to be fully engaged throughout the development process, sitting with the developers throughout and providing feedback all the while through while the developer is programming. The client can makes changes at anytime, and the website can even be tested in production mode to get user feedback, and more changes are made.

How is this made possible with Ruby on Rails? Since RoR is a framework, it creates default folders or directories in a basic configuration. The business logic is fixed by the MVC (model, view, controller) multitier architecture so that if the client wants to make changes, it is very easy to do so since the relevant files will always be in the same folders. There is no need to worry about where to find files to make changes. This design philosophy fits in very well with the web standards movement, which has focused on separating client-side development into HTML for structure, CSS for presentation and JavaScript for behavior on the browser side.

So how will Ruby on Rails change the role of the developer? It will no longer be enough for a programmer to be only a coder; a good developer will also have to understand business goals and user experience. With its emphasis on convention and process simplification, it is very likely that some of the best developers will come from client-side programming, while the best programmers will be those who have worked in business and understand business goals.

Does this mean that budgets for development will go down? In many cases it will probably be “yes”, but for developers who know how to understand communicate with their clients, and understand business, it’s more likely that their services will be especially in demand, and their fees will most likely go up.

Programming will be taken out of the lab, and it may well be that if you see two or three people sitting together over a notebook computer (most likely a MacBook Pro) in a cafe in Beijing, London or Pretoria, they are creating a new web application.

RSS Feed Comments (6)

A Quick Look at 2008 and China

Is there any way at all that 2008 will not be the year of the Chinese Olympics, and by extension, China? Will we be stuck between the rise of China narrative and the sourness to the point of completely puckering up of the US media and to a lesser extent European media re China?

I say yes.

The coverage of China by the major media has been completely unsatisfactory; it has not been informative and has instead driven their own editorial agenda. That old editorial agenda no longer works because it does not reflect the ground reality of China. It does make sense though to take a closer look at China’s development outside of just the tier one cities. Let’s hope that this begins to happen.

In the big picture though, the Chinese Olympics are not the biggest story. There are so many interesting things and opportunities happening on the Internet. I’m surprised that so many people miss them, such as the fall of Facebook even though their numbers continue to increase, and the failure of social networks to monetize their traffic because they have chosen to side with advertisers against their own user base.

Facebook is like a rocket which continues to coast upwards even though its engine has cut off; momentum is carrying it upward. But eventually gravity will win…

We are in the early stages of growth for the Internet, I believe that increasingly new Internet startups will be founded by business people, not technology people. On the PC platform, the technology is mature; it is the business models which aren’t working. Now, the smart technology people are switching their focus to the mobile Internet.

For smart business people who want to disrupt the current business models, 2008 will be a banner year. For more predictions, take a close look at the predictions of Mark Anderson and Fred Wilson. Part of the reason new and viable business models have grown relatively slowly on the Internet is because the business side has been driven by technology people who don’t understand business and how to make deals, and the business people have been thinking too much in terms of the large corporate businesses which are now being disrupted by the Internet.

It is time for a new breed of entrepreneurs who understand technology, and are not behoven to traditional businesses. In China, this has already happened in gaming with Timothy Chen Tianqiao of Shanda and Shi Yuzhu of Giant Interactive. Ironically, it has not happened as quickly in the west.

It’s time to expand the base.

On the web application side, it is getting easier and easier to develop robust applications. Twitter, a very successful social application was developed with Ruby on Rails, a full stack web application framework which was released by 37 Signals, a Chicago-based design firm.

The significance of this is that web applications can now be designed by designers who are more focused on user experience than software engineers who are focused on features (many of which are of dubious value). One thing I have noticed among many Ruby on Rails deployments: narrower focus. Instead of trying to do everything, these applications focus on doing a few tasks very well. Good examples are the online project management tools put out by 37 Signals and which I use to manage my business.

Wouldn’t it be great if these web applications were made available to a Chinese audience?

As for myself, I’m sharing my feeds on Google Reader. You can find them through Google Talk and Gmail by contacting me. You can reach me at paul dot denlinger [at] gmail dot com.

I’d like to see yours too; let’s start sharing in 2008!

RSS Feed Comments

What’s Wrong with China’s Internet Developers?

In the course of my work, I’m often asked, based on my experience living and working in China, “What’s wrong with China’s Internet developers?” Unfortunately, I have never attacked the problem in a systematic way and organized my thoughts, even though I should.

Today, I was visiting the Signals vs. Noise website which is maintained by 37 Signals, who are Ruby developers. David Heinemeer Hansson, who extracted the Ruby on Rails framework works there. He also publishes his own blog, Loud Thinking.

If you have an interest in technology from a technology and/or business viewpoint, you really should read the 37 Signals blog; it’s really excellent.

When I read this posting on “Secrets to Amazon’s Success” , I said to myself “That’s it; that’s exactly what’s wrong with China’s internet developers!”

If Chinese developers just followed what Amazon has done, they would be in a much better place.

Read it and tell me what you think in the comments below.

RSS Feed Comments (7)