I first came up with this scenario at last fall’s Ajax Experience conference in Boston, which wasn’t too long after the first RailsConf. Between these two conferences and noting the unusually high concentration of Macs at both, and perhaps from having many, many drinks with Brent Ashley, Pete Forde, Brendan Eich and Douglas Crockford, this idea popped into my head and it goes like this…
Imagine that you could get your hands on a time machine, perhaps like the one Uncle Rico bought in the movie Napoleon Dynamite….

…but with a couple of crucial differences, namely:

The first “Future Fuzzy” strip from the webcomic Sam and Fuzzy. Click the comic to see it on its original page at full size.
Let’s suppose that once you’ve told your past self to avoid doing those things that you now regret, s/he asks “Hey, Future Self, what interesting changes happened — er, I mean, are going to happen — in the tech world?”
Now let’s suppose you told your past self these three things:

1. The Mac is going to steal developer mindshare from Windows, and you’ll also see a lot of “I deploy on Linux, but develop on a Mac” people. You’re going to see more and more “alpha geeks” using it as their development machine of choice. You will see developer conferences where Macs outnumber Windows machines by 10 to 1 or even more. And a popular application framework — at least in terms of mindshare and influence, if not in raw numbers — is going to be developed by a team that prefers working on the Mac.

2. Ruby is going to be one of the top 10 programming languages. You know Ruby, that obscure little programming language that the guys who wrote The Pragmatic Programmer keep raving about? The one with documentation that’s difficult to find, and even if you find it, it’s in Japanese? It’s going to be hot, with people writing all sorts of books on it and buying them too, and its popularity will be largely due to the fact that a hot new web development framework is going to get built on it.

3. JavaScript is going to be one of the most important programming languages. People will discover that it had hidden powers and expressive capabilities that put it more on par with Lisp than with Java. It will form part of the basis of a new approach to building web applications, drive the user interfaces of some of the world’s most popular applications and be the basis for a number of new application platforms.
If you were to make these three statements about the development world in 2007 to your past self, would s/he believe you?
I’m not sure my December 31, 2000 self would. I can imagine my past self dismissing me with “Future weed must be pretty potent stuff!”
A developer of that era would probably sooner place bets on Java, rich client apps running on Windows and maybe PHP. That developer would probably think that the rise of the Mac, Ruby and JavaScript were interesting notions, but highly unlikely. Perhaps even ridiculous. Maybe even stupid.
There’s a mantra in the Agile Programming world: “Do the simplest thing that could possibly work”. It encourages developers to implement solutions that follow that mantra, to write their code with the notion that getting the job done in the simplest way possible is the preferred way of doing things.
Imagine switching the word “simplest” in the mantra to “stupidest”.
With that in mind, let’s turn our little time travel thought experiment upside down.
Suppose your future self from December 31, 2013 came to visit you and tell you about the programming world from his or her era. Now try to imagine what sort of things s/he’d tell you that you might think are downright stupid.
Keep in mind the way your December 31, 2000 self might have thought of present-day tech. Think of present-day stuff that’s considered too “out there” or “obscure”: Erlang, perhaps? OCaml? Haskell? Some Lisp or Smalltalk derivative? LOLcode? Mobile phones as the next laptops? Tabletop computers everywhere? ePaper?
Let your imagination run wild, and make a list of what you come up with.
From that list, pick one or two items that pique your interest and follow them.
I figure it’s a no-lose situation. If they don’t become the future of computing, the actual exercise of working with them will still be valuable. However, if one of those ridiculous ideas becomes the next big thing, you’re going to be ahead of the curve — you might even be considered a guru or visionary!
1. According to this web page, the entire Rails core team develops Rails using Textmate on Mac OS X.
2. It’s ranked 10th in the May 2007 edition of the TIOBE Programming Community Index.

Global Nerdy is Joey deVilla's technical blog. It covers all sorts of nerdy things, whether they have to do with life, work or play -- from a short blurb on the latest tech news to a book or game review to full-length articles on some aspect of programming that he finds interesting.
Joey is the Nerd Wrangler at b5media, a Toronto-based startup behind a global media network of 320 blogs which get a total of 10 million pageviews a month. He brings a combination of software development skills, blogging experience and rock and roll accordion to b5.
(The standard disclaimer applies: the opinions expressed in this blog are solely those of Joey deVilla and do not necessarily reflect those of b5media.)
He's an active participant in TorCamp, a community of people interested in building up Toronto as a creative high-tech city.
Joey's best-known extracurricular activities are playing rock and roll accordion and blogging at his personal weblog, The Adventures of Accordion Guy in the 21st Century.
1. The Whitespace language finally breaks out: Educators enthusiastically endorse it as a child’s first programming language, but the developers’ wiki is marred by invisible revert wars.
2. Widespread use of free phones*, entirely supported by ads delivered in the form of ringtones.
3. Some entrepreneur will join the list of the twenty richest people by cornering the market in Chinese computer input devices.
*The phrase “mobile phone” will have fallen out of use by then as being overly redundant.
1. The word “computer” gets the same old-fashioned sound to it that “microcomputer” or “home computer” has now. Computers are small devices you wear or carry, and all the peripherals like screens, keyboards and internet connections are separate and connected only by some kind of wireless connection. You never need to worry about setting up your work PC to have the same settings as your home PC, because your “device” keeps track of that sort of thing for you. In fact, people don’t even need their own desks, because any screen and keyboard they sit down at becomes their “computer”. As a side-effect, the Palm Foleo is seen as a blatantly obvious idea and nobody will admit to having laughed at it.
2. At least one language in very common use will work with non-ASCII symbols. Not just unicode, but graphs, diagrams or pictures. It may even be animated, making the print-it-out-and-debug-on-the-kitchen-table development cycle a thing of the past.
3. Perl 6 STILL won’t be out. Come on, this isn’t science fiction, you know!
I would need all five minutes to convince myself in vain that I’m myself. Even my secret pass phrase that I invented for this precise occasion wouldn’t help - what’s more likely, time travel or mind hacking?
1. The Internet has been shut down. Authoritarian governments everywhere cooperated to outlaw it, unifying against a common threat. Now, only an MSN service exists, unless you go to the seamy underside of the illicit p2p mesh.
2. General purpose programmable computers are outlawed. If you have a black-market computer not limited to strictly obey the worst excesses of copyright law, you will go to a Halliburton labour camp for longer than a paedophile rapist. Only annually licensed Microsoft Valued Professionals are allowed develop programs and they have to use Managed VB unless they’re Microsoft employees.
3. Patents have been made reneweable indefinitely. After all, it was necessary to “harmonise” them with copyrights, which were extended indefinitely.
1. Ballmer sets Microsoft HQ on fire in a murderous rage after Linux and the Mac break 50% combined market share.
2. Steve Jobs subclasses his RDF generator into a fountain-of-youth-like device and announces he will be Apple CEO for eternity.
3. California falls into the Pacific after a massive earthquake but 50,000,000 nerds sacrifice themselves holding it in place while Silicon Valley is moved brick by brick to a safe location.
1. DHH admitted he was drunk while developing RoR.
2. Ballmer fell from the stage and broke his neck. His last words were : “Delvelopers, f*ck …”
3. COBOL is still in top 20 languages.
1. Nothing new has happened. Just smaller, better, faster, cheaper and generally improved versions of what we have today. Expect some mergers of current technologies, like the camera’s did with phones.
2. The embedded cameras in mobile phones will be good enough for journalists, but they will still have to have a specialized camera to use special lenses etc.
3. Speech recognition will finally understand enough to replace the keyboard when writing mails/essays. This will never happen to programming languages.
4. There will only be two platforms. The GPL’ed Java (the framework and JVM, not the language) and .Net. Both will run most programming languages (Ruby, Python, Java, Erlang). The only difference is the choice of operating systems.
5. Javascript will be the most popular programming language, even on the server side (JVM, .Net)
6. Internet Explorer still doesn’t support most web standards.
7. The web has become as interesting as the average cable network, and net neutraility is a thing of the past.
8. Iraq is still in chaos.
9. President Jeb Bush tries to stabilize Iran, after years of occupation.
10. While the U.S. economy is worse than ever after spending so much money on the military in the last decade, China prospers more than ever.
11. Most have forgotten about Facebook and Twitter, and Rails has long since been replaced by a new way of thinking about web applications.
i want to time travel to warn me to ask someone out at the beggining of the 6th grade year!
[…] Don’t be afraid to innovate. Be different. Following the herd is a sure way to mediocrity.” (It sounds like a variant of my own maxim, “Do the stupidest thing that could possibly work.”) […]
[…] As per tradition (well, as much tradition as you can get with this being only the second Project Night), I presented the opening monologue, titled Do the Stupidest Thing That Could Possibly Work. The basic premise: if a stupid idea works for you, it isn’t stupid. It’s something I’d been meaning to do — a live version of this article from last June. […]
[…] As per tradition (well, as much tradition as you can get with this being only the second Project Night), I presented the opening monologue, titled Do the Stupidest Thing That Could Possibly Work. The basic premise: if a stupid idea works for you, it isn’t stupid. It’s something I’d been meaning to do — a live version of this article from last June. […]
1. The use of programming languages to build web applications falls to minimal as instead we string together a bunch of domain-specific languages to get stuff done.
2. Web services effectively replace the need for any kind of persistence layer.
3. Distributed version control takes off.
4. The HTML 5 spec is completed.