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 not to originate in North America or Western Europe.
This globally relevant language germinated in the Brazilian software development climate. Its authors have explained: "From 1977 until 1992, Brazil had a policy of strong trade barriers (called a 'market reserve') for computer hardware and software motivated by a nationalistic feeling that Brazil could and should produce its own hardware and software. In that atmosphere, [our] clients could not afford, either politically or financially, to buy customized software from abroad."
That sort of atmosphere, along with the realization "that large parts of complex applications could be written using embeddable scripting languages," led to the development of Lua. They considered existing scripting languages, including Tcl, but "[i]n the free, do-it-yourself atmosphere," the authors say, "it was quite natural that we should try to develop our own..." The authors call Lua an extensible extension language, meaning that its purpose is to extend applications and that the language can be extended semantically and syntactically.
Lua's software influences were anything but provincial, however. The language Scheme has been an increasingly strong influence in the architecture of Lua, yet syntactically Lua looks more like Modula-2. The implementation, the authors say, followed a tenet that is now central to Extreme Programming: "The simplest thing that could possibly work." The fact that the full distribution, including binaries, source, and documentation, still fits on a floppy disc, suggests that they're still keeping it simple.
As South America increases in importance in global software, we can expect the region to offer new and expanded markets and a rich and savvy pool of programming talent. But the example of Lua points out that we could also see significant original software coming out of the region.
This brief article has only hinted at some of the cultural, economic, and regulatory issues to be faced by anyone trying to work with or just understand the South American software development community. Recommended reading includes www.ddj.com/architect/184410014 for more on Lua and www.oreillynet.com/etel/blog/2006/04/brazils_free_software_forum_ba.html for insight into Brazil's free software culture.
And kudos to those who picked up on the strained allusions to South American writers in the aforementioned. The novels hinted at are Eternal Curse on the Reader of These Pages by Argentine writer Manuel Puig, One Hundred Years of Solitude by Colombian writer Gabriel Garcia Marquez, and Dona Flora and Her Two Husbands by Brazilian writer Jorge Amado. Lua's Dance is an album by Brazilian guitarist and composer Jose Neto.