South American Software Development

Using Brazil to take the temperature of the South American software climate.


January 08, 2008
URL:http://drdobbs.com/architecture-and-design/south-american-software-development/205600791

Who ultimately forced Sun to open-source Java? Was it external pressure, either from Java developers or the open-source community? Or was it internal, perhaps a mandate from CEO Jonathan Schwartz?

Answer: None of the above. According to Jonathan himself, it was Brazil.

Maybe it's not surprising that Brazil would have this kind of clout. Brazil is the B of BRIC, the common acronym for the huge and influential emerging markets of Brazil, Russia, India, and China. Brazil is the sixth or seventh largest market for software worldwide, and IT spending there is growing at a double-digit rate. As an exporter of software, South America generally is a player and is growing at a double-digit rate. Outsourcing relationships with South American companies are already big business, and often a smart decision for North American companies. IDC identifies Latin America, which also includes Mexico and Central America, as having a pool of software developers essentially equal to Central and Eastern Europe, a region that many consider a hotbed of software talent.

But the fact that Brazil would use its clout in the furtherance of open-source software says something about the culture or climate for software development in Brazil and, to varying degrees, other countries of South America.

Internal Wink to the Reader of These Pages

Back in 1984, DDJ quizzed seven software designers on a question of software development culture. The conclusion was that there probably wasn't really a cultural difference between East Coast and West Coast programmers, but that there definitely were important differences in how programmers approached their work, differences reflected in choices such as C versus Modula-2 (this was 1984), freedom versus discipline, the lone coder versus programming teams—"Cultural" differences that are still with us today in arguments over the merits of different languages, frameworks, methodologies, and business models. And while it's easy to dismiss religious debates over the merits of different languages, when it comes to proprietary versus open source or different FOSS licenses, which side you take can have $erious consequences.

Such cultural issues are crucial to understanding and working with South American software developers. In the individual case, it makes no more sense to speak of North American versus South American programmers than of East Coast versus West Coast programmers, but factors like relative isolation, economics, and government policy actually have created a distinct climate for software development in Brazil and every other South American country. Since Brazil is the largest South American country, it makes sense to focus there, acknowledging that its neighbors' software climates are in some ways different.

Six years ago, Jon "maddog" Hall, writing in Linux Journal, summarized the influence that free software had on the Brazilian development climate back then:

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.

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.

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 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.

References

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.

Terms of Service | Privacy Statement | Copyright © 2024 UBM Tech, All rights reserved.