Dr. Dobb's Journal - February 2008 - (Page 6) d02edit_p4ma 12/7/07 3:33 PM Page 6 Hmmmm by Jonathan Erickson Coffee, Tea, or C++? 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 espresso—and 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, two—Pu Zhihua and TongRen—were 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 green—all 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 realworld 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. Next Month: In March, we examine testing and debugging. Jonathan Erickson Editor-in-Chief jerickson@ddj.com 6 Dr. Dobb’s Journal l www.ddj.com l February 2008 http://www.ddj.com
Table of Contents Feed for the Digital Edition of Dr. Dobb's Journal - February 2008 Dr. Dobb's Journal - February 2008 Contents Hmmmm Alia Vox Developer Diaries Developer’s Notebook South American Software Development Conversations Inside Visual Studio 2008 BibPort: Creating Bibliographic References Continuous LINQ The ZK Framework Static Testing C++ Code The Agile Edge Effective Concurrency Swaine’s Flames Dr. Dobb's Journal - February 2008 Dr. Dobb's Journal - February 2008 - Dr. Dobb's Journal - February 2008 (Page Cover1) Dr. Dobb's Journal - February 2008 - Dr. Dobb's Journal - February 2008 (Page Cover2) Dr. Dobb's Journal - February 2008 - Dr. Dobb's Journal - February 2008 (Page 1) Dr. Dobb's Journal - February 2008 - Dr. Dobb's Journal - February 2008 (Page 2) Dr. Dobb's Journal - February 2008 - Dr. Dobb's Journal - February 2008 (Page 3) Dr. Dobb's Journal - February 2008 - Contents (Page 4) Dr. Dobb's Journal - February 2008 - Contents (Page 5) Dr. Dobb's Journal - February 2008 - Hmmmm (Page 6) Dr. Dobb's Journal - February 2008 - Hmmmm (Page 7) Dr. Dobb's Journal - February 2008 - Hmmmm (Page 8) Dr. Dobb's Journal - February 2008 - Hmmmm (Page 9) Dr. Dobb's Journal - February 2008 - Alia Vox (Page 10) Dr. Dobb's Journal - February 2008 - Alia Vox (Page 11) Dr. Dobb's Journal - February 2008 - Developer Diaries (Page 12) Dr. Dobb's Journal - February 2008 - Developer Diaries (Page 13) Dr. Dobb's Journal - February 2008 - Developer’s Notebook (Page 14) Dr. Dobb's Journal - February 2008 - Developer’s Notebook (Page 15) Dr. Dobb's Journal - February 2008 - South American Software Development (Page 16) Dr. Dobb's Journal - February 2008 - South American Software Development (Page 17) Dr. Dobb's Journal - February 2008 - South American Software Development (Page 18) Dr. Dobb's Journal - February 2008 - South American Software Development (Page 19) Dr. Dobb's Journal - February 2008 - Conversations (Page 20) Dr. Dobb's Journal - February 2008 - Conversations (Page 21) Dr. Dobb's Journal - February 2008 - Inside Visual Studio 2008 (Page 22) Dr. Dobb's Journal - February 2008 - Inside Visual Studio 2008 (Page 23) Dr. Dobb's Journal - February 2008 - Inside Visual Studio 2008 (Page 24) Dr. Dobb's Journal - February 2008 - Inside Visual Studio 2008 (Page 25) Dr. Dobb's Journal - February 2008 - Inside Visual Studio 2008 (Page 26) Dr. Dobb's Journal - February 2008 - Inside Visual Studio 2008 (Page 27) Dr. Dobb's Journal - February 2008 - Inside Visual Studio 2008 (Page 28) Dr. Dobb's Journal - February 2008 - Inside Visual Studio 2008 (Page 29) Dr. Dobb's Journal - February 2008 - BibPort: Creating Bibliographic References (Page 30) Dr. Dobb's Journal - February 2008 - BibPort: Creating Bibliographic References (Page 31) Dr. Dobb's Journal - February 2008 - BibPort: Creating Bibliographic References (Page 32) Dr. Dobb's Journal - February 2008 - BibPort: Creating Bibliographic References (Page 33) Dr. Dobb's Journal - February 2008 - BibPort: Creating Bibliographic References (Page 34) Dr. Dobb's Journal - February 2008 - BibPort: Creating Bibliographic References (Page 35) Dr. Dobb's Journal - February 2008 - BibPort: Creating Bibliographic References (Page 36) Dr. Dobb's Journal - February 2008 - BibPort: Creating Bibliographic References (Page 37) Dr. Dobb's Journal - February 2008 - BibPort: Creating Bibliographic References (Page 38) Dr. Dobb's Journal - February 2008 - BibPort: Creating Bibliographic References (Page 39) Dr. Dobb's Journal - February 2008 - BibPort: Creating Bibliographic References (Page 40) Dr. Dobb's Journal - February 2008 - BibPort: Creating Bibliographic References (Page 41) Dr. Dobb's Journal - February 2008 - BibPort: Creating Bibliographic References (Page 42) Dr. Dobb's Journal - February 2008 - BibPort: Creating Bibliographic References (Page 43) Dr. Dobb's Journal - February 2008 - BibPort: Creating Bibliographic References (Page 44) Dr. Dobb's Journal - February 2008 - BibPort: Creating Bibliographic References (Page 45) Dr. Dobb's Journal - February 2008 - BibPort: Creating Bibliographic References (Page 46) Dr. Dobb's Journal - February 2008 - BibPort: Creating Bibliographic References (Page 47) Dr. Dobb's Journal - February 2008 - BibPort: Creating Bibliographic References (Page 48) Dr. Dobb's Journal - February 2008 - BibPort: Creating Bibliographic References (Page 49) Dr. Dobb's Journal - February 2008 - BibPort: Creating Bibliographic References (Page 50) Dr. Dobb's Journal - February 2008 - BibPort: Creating Bibliographic References (Page 51) Dr. Dobb's Journal - February 2008 - BibPort: Creating Bibliographic References (Page 52) Dr. Dobb's Journal - February 2008 - BibPort: Creating Bibliographic References (Page 53) Dr. Dobb's Journal - February 2008 - BibPort: Creating Bibliographic References (Page 54) Dr. Dobb's Journal - February 2008 - Continuous LINQ (Page 55) Dr. Dobb's Journal - February 2008 - Continuous LINQ (Page 56) Dr. Dobb's Journal - February 2008 - Continuous LINQ (Page 57) Dr. Dobb's Journal - February 2008 - Continuous LINQ (Page 58) Dr. Dobb's Journal - February 2008 - Continuous LINQ (Page 59) Dr. Dobb's Journal - February 2008 - The ZK Framework (Page 60) Dr. Dobb's Journal - February 2008 - The ZK Framework (Page 61) Dr. Dobb's Journal - February 2008 - The ZK Framework (Page 62) Dr. Dobb's Journal - February 2008 - The ZK Framework (Page 63) Dr. Dobb's Journal - February 2008 - The ZK Framework (Page 64) Dr. Dobb's Journal - February 2008 - The ZK Framework (Page 65) Dr. Dobb's Journal - February 2008 - Static Testing C++ Code (Page 66) Dr. Dobb's Journal - February 2008 - Static Testing C++ Code (Page 67) Dr. Dobb's Journal - February 2008 - Static Testing C++ Code (Page 68) Dr. Dobb's Journal - February 2008 - Static Testing C++ Code (Page 69) Dr. Dobb's Journal - February 2008 - Static Testing C++ Code (Page 70) Dr. Dobb's Journal - February 2008 - The Agile Edge (Page 71) Dr. Dobb's Journal - February 2008 - The Agile Edge (Page 72) Dr. Dobb's Journal - February 2008 - The Agile Edge (Page 73) Dr. Dobb's Journal - February 2008 - Effective Concurrency (Page 74) Dr. Dobb's Journal - February 2008 - Effective Concurrency (Page 75) Dr. Dobb's Journal - February 2008 - Effective Concurrency (Page 76) Dr. Dobb's Journal - February 2008 - Effective Concurrency (Page 77) Dr. Dobb's Journal - February 2008 - Effective Concurrency (Page 78) Dr. Dobb's Journal - February 2008 - Effective Concurrency (Page 79) Dr. Dobb's Journal - February 2008 - Swaine’s Flames (Page 80) Dr. Dobb's Journal - February 2008 - Swaine’s Flames (Page Cover3) Dr. Dobb's Journal - February 2008 - Swaine’s Flames (Page Cover4)
For optimal viewing of this digital publication, please enable JavaScript and then refresh the page. If you would like to try to load the digital publication without using Flash Player detection, please click here.