Pardon me if I seem befuddled, although anyone who knows me might say it's no worse than usual. My excuse is that I recently returned from China where I participated in Dr. Dobb's/CSDN Software Development 2.0 conference. A grand experience indeed, but I have to tell you it was easier finding Incense Navel Therapy than espressoand I needed a caffine fix a lot more than a back rub.
From Beijing it was on to Seattle, where you get a java jolt just from sniffing the air. Criminy, there's even a TV channel devoted to coffee. Talk about both culture and caffeine shock.
What I learned about programmers in China is that, aside from drinking more tea than coffee, they're just like their counterparts elsewhere in the world. They use the same tools and build the same kind of applications. They're hungry for the same kind of information, and they're passionate about the art and science of software development. And they're good. Don't let anyone tell you anything different. They're really good.
Don't believe me? Well consider the recent Open C Challenge sponsored by Nokia. The goal of the contest was to build an open-source application for mobile or desktop environments, then port it to the Nokia S60 smartphone platform on Symbian OS, or to build a Native Symbian C++ app in the Open C environment. (For more on Open C, see "Open C: Paving the Way for Porting," by Eero Penttinen and Antti Saukko; DDJ, May 2007.) Here's the kicker: Of the four contest finalists, twoPu Zhihua and TongRenwere from China.
Pu Zhihua's "Live Traffic" entry is a traffic-assistance program that provides real-time graphical information about traffic on primary and secondary throughfares in Shanghai and Beijing. After sitting in Beijing traffic, I can tell you that this is one useful application.
Developed by a team of four programmers, Live Traffic uses Floating Car Data (also referred to as "Floating Cellular Data") technology to acquire road traffic information anywhere anytime, then publishes mapped traffic information to cell phones via GPRS or EDGE connections. While the total application consists of 8500 lines of code, Pu Zhihua's team ported 2500 lines via Open C in a couple of weeks. The result is an application that identifies traffic patterns by displaying all backed-up routes in red, medium back-ups in yellow, and pedal-to-the-metal throughfares in greenall on your cell phone's display.
TongRen's application is a virtual multimedia courseware application called "MobiClass." TongRen, who is a researcher in the E-Learning Lab at Shanghai Jiaotong University, ported 16,000 lines of code to build MobiClass. The application delivers an integrated learning experience with active notes and video playback. Courseware is downloaded to the cell phone's memory card for playback. A video of the instructor appears in the lower-right corner of the cell phone display, and the rest of the screen is devoted to the lesson. The instructor leads the student through the assignment, much like as in a regular class, except with MobiClass the student could be on a bus, car, or train.
But TongRen, Pu Zhihua, and the 1000+ developers who attended the Dr. Dobb's conference in Beijing are a drop in the bit bucket, number-wise. According to a recent report by market-research firm IDC, China ranked third worldwide in 2006 in the number of professional developers with 515,587 programmers. Given that China has the world's largest population (1.3 billion in 2006) and that IDC says it takes a population of 2900 to produce one programmer, then you'd have to think that China is poised to unleash a lot of programmers on the world. (I'll leave the math to you; remember, I'm befuddled.)
If there's anything that might hold China back, it could be the country's educational system, what IDC refers to as a "low level of tertiary school education." (According to IDC, "Tertiary school education reflects the gross percentage of a country's population that is enrolled in some form of education past high school or that has previously received some amount of tertiary education.") At the same time, many university students aren't prepared for real-world software development because curriculum at that level is dictated by nonexperts.
But these statistics don't tell the whole story. They don't explain how CSDN (short for the "Chinese Software Developers Network" and DDJ's cohost for the Beijing conference) can have nearly 3 million registered developers when there are only half a million professional developers in China.
Hmmm...I need to mull that over, maybe over a grande caramel macchiato with a triple shot of espresso that has my name on it.