Channels ▼


Does Geography Really Matter Anymore?

I suspected it back then, and know for sure now—Mrs. Houston was a nice enough lady, but she had no business teaching high-school geography.

What do I remember about her class? Well, for starters, we had to memorize and recite the name of every country in the world, along with its capital city. She did cut some slack—we could do it continent-by-continent. But I knew even then that the names of countries change and international borders shift, and I was wasting cycles on Upper Volta and Kampuchea when I could have been watching TV.

What's ironic, of course, is that geography is really important to me these days. Not only do I have the opportunity to travel around the globe, but I communicate daily with people like many of you all over the world. And when I get e-mail, for instance, it's nice to recall that, say, Zaporizhzhia is in the Ukraine, or Arapiraca is in Brazil.

But a couple of things have me wondering about the relevancy of geography these days (other than winning the occasional bar bet, of course).

  • A recent presentation by a market analyst kept focusing on how software developers in, say, Atlanta responded differently to questions about development tools than developers in, say, Seattle. Bogus. It's been my experience that software developers around the world use the same tools. The Internet facilitates communication and sharing, geography be damned.
  • On a recent episode of "Lou Dobbs Tonight," a pundit commented that when manufacturing jobs disappear, worker response often involves uprooting family and lifestyles to chase new jobs. But to some extent, software development is immune to this phenomenon, since distributed workforces—thanks again to the Internet—let programmers live in one end of the country and work in another. The flip side, of course, is that the same Internet lets programming jobs move from the U.S. to India, India to China, China to Russia, Russia to Bulgaria, and so on. My point is that geography doesn't matter with many—but admittedly not all—programming jobs.

On another subject, Tiobe ( has declared Python the "programming language of the year" thanks to a 2.04 percent jump in popularity, as measured by the Tiobe index. Tiobe offers no reason why, but points out that Python surpassed Perl for the first time, suggesting Python has become the "de facto" glue language. The upcoming release of Python 3 ought to give Python another shot in the arm.

The folks at Tiobe also spotted a couple of other interesting trends. Languages without automated garbage collection—C and C++, for instance—are losing ground. And scripting languages are becoming more popular, with Ruby and Lua leading the way. However, Groovy and Factor continue to come on strong. Tiobe's Paul Jansen suspects that C, C++, and Perl will continue to slide in 2008, while Java and C# will eventually be the two most popular languages. As for languages to keep your eyes on in the coming months, watch ActionScript and Groovy.

And finally, congratulations to Edmund Clarke, E. Allen Emerson, and Joseph Sifakis, recipients of the ACM's 2007 Turing Award. They received the award—and will share the $250,000 prize—for their work on model checking, an automated method for finding design errors. Model checking is a type of formal verification that analyzes the logic underlying a design by considering every possible state of design and determines if it is consistent with the designer's specifications. Numerous model-checking systems have been implemented over the years, like that described by Gerard Holzmann in "Spin Model Checking" (

While much of their early work on model checking was done at Carnegie Mellon University, it's worth noting that, these days, Clarke resides in Pennsylvania, Emerson in Texas, and Sifakis in Switzerland. Like I said Mrs. Houston, does geography really matter anymore?

Jonathan Erickson


Related Reading

More Insights

Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.