Dr. Dobb's Journal - February 2008 - (Page 17) D02LEAD_p4ds.qxp 12/7/07 2:39 PM Page 17 More than saving money, the Software Livre movement offers Brazilian states control over their technological destinies…The money they do spend on software stays in the hands of Brazilian programmers, who buy Brazilian food, live in Brazilian houses and pay Brazilian taxes. More recently, O’Reilly’s Andy Orem visited Brazil’s Free Software Forum last year, an important event sponsored in part by the government, and saw much of the same thing. Past protectionist policies in Brazil, now more or less abandoned, nevertheless led to today’s “self-supporting and well-educated community of knowledgeable software developers,” Orem observed, adding that Brazilians are “addicted to warez.” All of this is part of South American software culture, and it matters. Yes, there are a lot of people on the continent, which says something about the sheer size of markets, and there are a lot of programmers there, too. Nearly one professional developer in ten worldwide is working and living in South America, according to IDC statistics. But it’s not just a matter of numbers. As Jonathan Schwartz points out, these huge markets don’t just sit back, passively waiting to consume the products you deign to offer them. Increasingly they are taking an active role in defining markets. Anyone who wants to sell into these markets needs to understand the culture of the people. One Hundred IT-Years of Solitude I referred to the relative isolation of South American programmers, and that needs explanation. It’s primarily an issue of language and the scarcity of Spanish- or Portugese-language versions of commercial software and tools. But there are more subtle cultural factors at play here. A recent study on the use of online forums for software found that Brazilian programmers rarely join in global forum discussions, although they do mine them for solutions to problems. Not so, though, for Brazilian forums, which they participate in. The study concluded that “foreign conversations are construed as asocial ‘sources of knowledge’ while local forums are seen as spaces that bring together national or local communities of developers.” This suggests that the software development community has more rigid national boundaries than might be thought. This is interesting, because when we ask programmers what tools they have found that make them more productive, they frequently talk about using online discussion to tap the collective wisdom of the community of programmers to solve problems. Economics can be isolating, too: If a large part of your population can’t afford computers, that isolates you. And the government’s protectionist actions in response to this problem can be said to promote a different kind of isolation. Like in 1987, when Brazil banned MS-DOS. Or when, in 2005, Brazil announced that it was switching 300,000 government computers from Windows to open-source software like Linux, dropping all proprietary software. And Brazil’s government is considerably more predictable than, say, Venezuela’s. While there is a widespread stereotype of South American countries as politically unstable, The Economist characterized Brazil as the most stable of the BRIC countries, and the Heritage Foundation rated Brazil fairly highly for protection of property rights and free trade. (A dark-humored South American joke: Why has there never been a coup in Washington D.C.? Because there is no U.S. Embassy there.) In the case of North American companies partnering with South American ones, the term would be nearsourcing. It’s partly geographic, and factors like being in roughly the same time zones can be a big plus, as Argentine outsourcing companies like to point out. And while language is a barrier, both language and other cultural differences are less likely to be a problem between countries in the Western Hemisphere than between U.S. and Eastern European or Asian partners. But many issues shape the form of these international software development relationships. Sometimes it’s U.S. law, as in the case of the H1-B visa policy. And, as mentioned, South American countries all have their unique cultural, economic, and regulatory issues. Argentina is particularly aggressive in pursuing outsourcing relationships. Columbia, Chile, and Venezuela are still marginal players, but all three countries are showing signs of making IT growth a priority. Of course, by focusing on South America, we are excluding one of the most powerful Latin American countries, Mexico, as well as little Costa Rica, which claims to be the leading outsourcing partner in Latin America. Finally, it should not be assumed that North American companies are always the preferred partners for outsourcing relationships. China and India are already huge markets for South America, and are eager to increase their connections in the region. Lua’s Dance The notion of a region’s software development culture enters into calculations about global software markets and strategies for outsourcing, but it can even affect the tools that you use to develop your software. Although most software developed in South America is created for local use, we should look at one program that is not only a shining example of South American software development, but also a case study in software development in the climate of South American programming. Almost 12 years ago (and 12 years after that East Coast/West Coast piece), DDJ published an article by Brazilian developers Luiz Henrique de Figueiredo, Roberto Ierusalimschy, and Waldemar Celes on their new embedded programming language, Lua. Lua has evolved through a couple of major releases since that article, and has seen a lot of use in game development. In fact, Lua is the most popular scripting language for game development, has been described as the de facto standard for game scripting, and is the language of Baldur’s Gate, Escape from Monkey Island, FarCry, Grim Fandango, Homeworld 2, Illarion, Impossible Creatures, Psychonauts, The Sims, and World of Warcraft. Adobe, Disney, Electronic Arts, Intel, LucasArts, Microsoft, NASA, Olivetti, and Philips all use Lua heavily. The authors say that Lua is “the only language created in a developing country to have achieved global relevance,” in fact the only language other than Ruby February 2008 l www.ddj.com l Dr. Dobb’s Journal The Outsourcing Provider and Her Two Husbands It’s with respect to outsourcing, which requires intimate understanding of cultural issues between partnering companies and between collaborating programmers, that such isolating factors matter most. 17 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.