Tech Predictions, 2011 Edition
Long-time readers of this blog know what’s coming next: it’s time for Ted to prognosticate on what the coming year of tech will bring us. But I believe strongly in accountability, even in my offered-up-for-free predictions, so one of the traditions of this space is to go back and revisit my predictions from this time last year. So, without further ado, let’s look back at Ted’s 2010 predictions, and see how things played out; 2010 predictions are prefixed with “THEN”, and my thoughts on my predictions are prefixed with “NOW”:
For 2010, I predicted....
- THEN: ... I will offer 3- and 4-day training classes on F# and Scala, among other things.
OK, that's not fair—yes, I have the materials, I just need to work out
locations and times. Contact me if you're interested in a private class,
by the way.
- NOW: Well, I offered
them… I just didn’t do much to advertise them or sell them. I got plenty
busy just with the other things I had going on. Besides, this and the
next prediction were pretty much all advertisement anyway, so I don’t
know if anybody really counts these two.
- NOW: Well, I offered
them… I just didn’t do much to advertise them or sell them. I got plenty
busy just with the other things I had going on. Besides, this and the
next prediction were pretty much all advertisement anyway, so I don’t
know if anybody really counts these two.
- THEN: ... I will publish two books, one on F# and one on Scala.
OK, OK, another plug. Or, rather, more of a resolution. One will be the
"Professional F#" I'm doing for Wiley/Wrox, the other isn't yet
finalized. But it'll either be published through a publisher, or
self-published, by JavaOne 2010.
- NOW:
“Professional F# 2.0” shipped in Q3 of 2010; the other Scala book I
decided not to pursue—too much stuff going on to really put the
necessary time into it. (Cue sad trombone.)
- NOW:
“Professional F# 2.0” shipped in Q3 of 2010; the other Scala book I
decided not to pursue—too much stuff going on to really put the
necessary time into it. (Cue sad trombone.)
- THEN: ... DSLs will either "succeed" this year, or begin the short slide into the dustbin of obscure programming ideas.
Domain-specific language advocates have to put up some kind of strawman
for developers to learn from and poke at, or the whole concept will
just fade away. Martin's book will help, if it ships this year, but even
that might not be enough to generate interest if it doesn't have some
kind of large-scale applicability in it. Patterns and refactoring and
enterprise containers all had a huge advantage in that developers could
see pretty easily what the problem was they solved; DSLs haven't made
that clear yet.
- NOW: To be
honest, this one is hard to call. Martin Fowler published his DSL book,
which many people consider to be a good sign of what’s happening in the
world, but really, the DSL buzz seems to have dropped off significantly.
The strawman hasn’t appeared in any meaningful public way (I still
don’t see an example being offered up from anybody), and that leads me
to believe that the fading-away has started.
- NOW: To be
honest, this one is hard to call. Martin Fowler published his DSL book,
which many people consider to be a good sign of what’s happening in the
world, but really, the DSL buzz seems to have dropped off significantly.
The strawman hasn’t appeared in any meaningful public way (I still
don’t see an example being offered up from anybody), and that leads me
to believe that the fading-away has started.
- THEN: ... functional languages will start to see a backlash.
I hate to say it, but "getting" the functional mindset is hard, and
there's precious few resources that are making it easy for mainstream
(read: O-O) developers make that adjustment, far fewer than there was
during the procedural-to-object shift. If the functional community
doesn't want to become mainstream, then mainstream developers will find
ways to take functional's most compelling gateway use-case
(parallel/concurrent programming) and find a way to "git 'er done" in
the traditional O-O approach, probably through software transactional
memory, and functional languages like Haskell and Erlang will be
relegated to the "What Might Have Been" of computer science history. Not
sure what I mean? Try this: walk into a functional language forum, and
ask what a monad is. Nobody yet has been able to produce an answer that
doesn't involve math theory, or that does involve a practical
domain-object-based example. In fact, nobody has really said why (or if)
monads are even still useful. Or catamorphisms. Or any of the other
dime-store words that the functional community likes to toss around.
- NOW:
I think I have to admit that this hasn’t happened—at least, there’s
been no backlash that I’ve seen. In fact, what’s interesting is that
there’s been some movement to bring those functional concepts—including
monads, which surprised me completely—into other languages like C# or
Java for discussion and use. That being said, though, I don’t see
Haskell and Erlang taking center stage as application languages—instead,
I see them taking supporting-cast kinds of roles building other
infrastructure that applications in turn make use of, a la CouchDB
(written in Erlang). Monads still remain a mostly-opaque subject for
most developers, however, and it’s still unclear if monads are something
that people should think about applying in code, or if they are one of
those “in theory” kinds of concepts. (You know, one of those ideas that
change your brain forever, but you never actually use directly in code.)
- NOW:
I think I have to admit that this hasn’t happened—at least, there’s
been no backlash that I’ve seen. In fact, what’s interesting is that
there’s been some movement to bring those functional concepts—including
monads, which surprised me completely—into other languages like C# or
Java for discussion and use. That being said, though, I don’t see
Haskell and Erlang taking center stage as application languages—instead,
I see them taking supporting-cast kinds of roles building other
infrastructure that applications in turn make use of, a la CouchDB
(written in Erlang). Monads still remain a mostly-opaque subject for
most developers, however, and it’s still unclear if monads are something
that people should think about applying in code, or if they are one of
those “in theory” kinds of concepts. (You know, one of those ideas that
change your brain forever, but you never actually use directly in code.)
- THEN: ... Visual Studio 2010 will ship on time, and be one of the buggiest and/or slowest releases in its history.
I hate to make this prediction, because I really don't want to be
right, but there's just so much happening in the Visual Studio
refactoring effort that it makes me incredibly nervous. Widespread
adoption of VS2010 will wait until SP1 at the earliest. In fact....
- NOW: Wow,
did I get a few people here in Redmond annoyed with me about that one.
And, as it turned out, I was pretty off-base about its stability. (It
shipped pretty close if not exactly on the ship date Microsoft promised,
as I recall, though I admit I wasn’t paying too much attention to it.)
I’ve been using VS 2010 for a lot of .NET work in the last six months,
and I’ve yet (knock on wood) to have it crash on me. /bow Visual Studio
team.
- NOW: Wow,
did I get a few people here in Redmond annoyed with me about that one.
And, as it turned out, I was pretty off-base about its stability. (It
shipped pretty close if not exactly on the ship date Microsoft promised,
as I recall, though I admit I wasn’t paying too much attention to it.)
I’ve been using VS 2010 for a lot of .NET work in the last six months,
and I’ve yet (knock on wood) to have it crash on me. /bow Visual Studio
team.
- THEN: ... Visual Studio 2010 SP 1 will ship within three months of the final product.
Microsoft knows that people wait until SP 1 to think about upgrading,
so they'll just plan for an eager SP 1 release, and hope that managers
will be too hung over from the New Year (still) to notice that the
necessary shakeout time hasn't happened.
- NOW: Uh…. nope. In fact, SP 1 has just reached a beta/CTP state. As for managers being too hung over, well…
- NOW: Uh…. nope. In fact, SP 1 has just reached a beta/CTP state. As for managers being too hung over, well…
- THEN: ... Apple will ship a tablet with multi-touch on it, and it will flop horribly.
Not sure why I think this, but I just don't think the multi-touch
paradigm that Apple has cooked up for the iPhone will carry over to a
tablet/laptop device. That won't stop them from shipping it, and it
won't stop Apple fan-boiz from buying it, but that's about where the
interest will end.
- NOW: Oh, WOW
did I come so close and yet missed the mark by a mile. Of course, the
“tablet” that Apple shipped was the iPad, and it did pretty much
everything except flop horribly. Apple fan-boys bought it… and then about 24 hours later, so did everybody else. My mom got one, for crying out loud. And folks, the iPad—along with the whole “slate” concept—is pretty clearly here to stay.
- NOW: Oh, WOW
did I come so close and yet missed the mark by a mile. Of course, the
“tablet” that Apple shipped was the iPad, and it did pretty much
everything except flop horribly. Apple fan-boys bought it… and then about 24 hours later, so did everybody else. My mom got one, for crying out loud. And folks, the iPad—along with the whole “slate” concept—is pretty clearly here to stay.
- THEN: ...
JDK 7 closures will be debated for a few weeks, then become a fait
accompli as the Java community shrugs its collective shoulders.
Frankly, I think the Java community has exhausted its interest in
debating new language features for Java. Recent college grads and
open-source groups with an axe to grind will continue to try and make an
issue out of this, but I think the overall Java community just...
doesn't... care. They just want to see JDK 7 ship someday.
- NOW: Pretty close—except that closures won’t ship as part of JDK 7, largely due to the Oracle acquisition in the middle of the year here. And I was spot-on vis-à-vis the “they want to see JDK 7 ship someday”; when given the chance to wait for a year or so for a Java-with-closures to ship, the community overwhelmingly voted to get something sooner rather than later.
- THEN: ... Scala either "pops" in 2010, or begins to fall apart.
By "pops", I mean reaches a critical mass of developers interested in
using it, enough to convince somebody to create a company around it, a
la G2One.
- NOW: … and by
“somebody”, it turns out I meant Martin Odersky. Scala is pretty clearly
a hot topic in the Java space, its buzz being disturbed only by
Clojure. Scala and/or Clojure, plus Groovy, makes a really compelling
JVM-based stack.
- NOW: … and by
“somebody”, it turns out I meant Martin Odersky. Scala is pretty clearly
a hot topic in the Java space, its buzz being disturbed only by
Clojure. Scala and/or Clojure, plus Groovy, makes a really compelling
JVM-based stack.
- THEN: ... Oracle is going to make a serious "cloud" play, probably by offering an Oracle-hosted version of Azure or AppEngine.
Oracle loves the enterprise space too much, and derives too much money
from it, to not at least appear to have some kind of offering here. Now
that they own Java, they'll marry it up against OpenSolaris, the Oracle
database, and throw the whole thing into a series of server centers all
over the continent, and call it "Oracle 12c" (c for Cloud, of course) or
something.
- NOW: Oracle made a
play, but it was to continue to enhance Java, not build a cloud space.
It surprises me that they haven’t made a more forceful move in this
space, but I suspect that a huge amount of time and energy went into
folding Sun into their corporate environment.
- NOW: Oracle made a
play, but it was to continue to enhance Java, not build a cloud space.
It surprises me that they haven’t made a more forceful move in this
space, but I suspect that a huge amount of time and energy went into
folding Sun into their corporate environment.
- THEN: ... Spring development will slow to a crawl and start to take a left turn toward cloud ideas.
VMWare bought SpringSource for a reason, and I believe it's entirely
centered around VMWare's movement into the cloud space—they want to be
more than "just" a virtualization tool. Spring + Groovy makes a
compelling development stack, particularly if VMWare does some
interesting hooks-n-hacks to make Spring a virtualization environment in
its own right somehow. But from a practical perspective, any
community-driven development against Spring is all but basically dead.
The source may be downloadable later, like the VMWare Player code is,
but making contributions back? Fuhgeddabowdit.
- NOW:
The Spring One show definitely played up Cloud stuff, and
springsource.com seems to be emphasizing cloud more in a couple of
subtle ways. Not sure if I call this one a win or not for me, though.
- NOW:
The Spring One show definitely played up Cloud stuff, and
springsource.com seems to be emphasizing cloud more in a couple of
subtle ways. Not sure if I call this one a win or not for me, though.
- THEN: ... the explosion of e-book readers brings the Kindle 2009 edition way down to size.
The era of the e-book reader is here, and honestly, while I'm glad I
have a Kindle, I'm expecting that I'll be dusting it off a shelf in a
few years. Kinda like I do with my iPods from a few years ago.
- NOW:
Honestly, can’t say that I’m using my Kindle a lot, but I am reading
using the Kindle app on non-Kindle hardware more than I thought I would
be. That said, I am eyeing the new Kindle hardware generation with an
acquisitive eye…
- NOW:
Honestly, can’t say that I’m using my Kindle a lot, but I am reading
using the Kindle app on non-Kindle hardware more than I thought I would
be. That said, I am eyeing the new Kindle hardware generation with an
acquisitive eye…
- THEN: ... "social networking" becomes the "Web 2.0" of 2010. In other words, using the term will basically identify you as a tech wannabe and clearly out of touch with the bleeding edge.
- NOW: Um…. yeah.
- THEN: ... Facebook becomes a developer platform requirement.
I don't pretend to know anything about Facebook—I'm not even on it,
which amazes my family to no end—but clearly Facebook is one of those
mechanisms by which people reach each other, and before long, it'll
start showing up as a developer requirement for companies looking to
hire. If you're looking to build out your resume to make yourself
attractive to companies in 2010, mad Facebook skillz might not be a bad
investment.
- NOW: I’m on Facebook,
I’ve written some code for it, and given how much the startup scene
loves the “Like” button, I think developers who knew Facebook in 2010
did pretty well for themselves.
- NOW: I’m on Facebook,
I’ve written some code for it, and given how much the startup scene
loves the “Like” button, I think developers who knew Facebook in 2010
did pretty well for themselves.
- THEN: ... Nintendo releases an open SDK for building games for its next-gen DS-based device.
With the spectacular success of games on the iPhone, Nintendo clearly
must see that they're missing a huge opportunity every day developers
can't write games for the Nintendo DS that are easily downloadable to
the device for playing. Nintendo is not stupid—if they don't open up the
SDK and promote "casual" games like those on the iPhone and those that
can now be downloaded to the Zune or the XBox, they risk being
marginalized out of existence.
- NOW: Um… yeah. Maybe this was me just being hopeful.
- NOW: Um… yeah. Maybe this was me just being hopeful.
In general, it looks like I was more right than wrong, which is not a bad record to have. Of course, a couple of those “wrong”s were “giving up the big play” kind of wrongs, so while I may have a winning record, I still may have a defense that’s given up too many points to be taken seriously. *shrug* Oh, well.
What portends for 2011?
- Android’s penetration into the mobile space is going to rise, then plateau around the middle of the year.
Android phones, collectively, have outpaced iPhone sales. That’s a
pretty significant statistic—and it means that there’s fewer customers
buying smartphones in the coming year. More importantly, the first
generation of Android slates (including the Galaxy Tab, which I own),
are less-than-sublime, and not really an “iPad Killer” device by any
stretch of the imagination. And I think that will slow down people
buying Android slates and phones, particularly since Google has all but
promised that Android releases will start slowing down.
- Windows Phone 7 penetration into the mobile space will appear huge, then slow down towards the middle of the year.
Microsoft is getting some pretty decent numbers now, from what I can
piece together, and I think that’s largely the “I love Microsoft” crowd
buying in. But it’s a pretty crowded place right now with Android and
iPhone, and I’m not sure if the much-easier Office and/or Exchange
integration is enough to woo consumers (who care about Office) or
business types (who care about Exchange) away from their Androids and
iPhones.
- Android, iOS and/or Windows Phone 7 becomes a developer requirement.
Developers, if you haven’t taken the time to learn how to program one
of these three platforms, you are electing to remove yourself from a
growing market that desperately wants people with these skills. I see
the “mobile native app development” space as every bit as hot as the
“Internet/Web development” space was back in 2000. If you don’t have a
device, buy one. If you have a device, get the tools—in all three cases
they’re free downloads—and start writing stupid little apps that nobody
cares about, so you can have some skills on the platform when somebody
cares about it.
- The Windows 7 slates will suck.
This isn’t a prediction, this is established fact. I played with an
“ExoPC” 10” form factor slate running Windows 7 (Dell I think was the
manufacturer), and it was a horrible experience. Windows 7, like most
OSes, really expects a keyboard to be present, and a slate doesn’t have
one—so the OS was hacked to put a “keyboard” button at the top of the
screen that would slide out to let you touch-type on the slate. I tried
to fire up Notepad and type out a haiku, and it was an unbelievably
awkward process. Android and iOS clearly own the slate market for the
forseeable future, and if Dell has any brains in its corporate head, it
will phone up Google tomorrow and start talking about putting Android on
that hardware.
- DSLs mostly disappear from the buzz.
I still see no strawman (no “pet store” equivalent), and none of the
traditional builders-of-strawmen (Microsoft, Oracle, etc) appear
interested in DSLs much anymore, so I think 2010 will mark the last year
that we spent any time talking about the concept.
- Facebook becomes more of a developer requirement than before.
I don’t like Mark Zuckerburg. I don’t like Facebook’s privacy policies.
I don’t particularly like the way Facebook approaches the Facebook
Connect experience. But Facebook owns enough people to be the
fourth-largest nation on the planet, and probably commands an economy of
roughly that size to boot. If your app is aimed at the Facebook
demographic (that is, everybody who’s not on Twitter), you have to know
how to reach these people, and that means developing at least some part
of your system to integrate with it.
- Twitter becomes more of a developer requirement, too.
Anybody who’s not on Facebook is on Twitter. Or dead. So to reach the
other half of the online community, you have to know how to connect out
with Twitter.
- XMPP becomes more of a developer requirement.
XMPP hasn’t crossed a lot of people’s radar screen before, but Facebook
decided to adopt it as their chat system communication protocol, and
Google’s already been using it, and suddenly there’s a whole lotta
traffic going over XMPP. More importantly, it offers a two-way
communication experience that is in some scenarios vastly better than
what HTTP offers, yet running in a very “Internet-friendly” way just as
HTTP does. I suspect that XMPP is going to start cropping up in a number
of places as a useful alternative and/or complement to using HTTP.
- “Gamification” starts making serious inroads into non-gaming systems.
Maybe it’s just because I’ve been talking more about gaming, game
design, and game implementation last year, but all of a sudden
“gamification”—the process of putting game-like concepts into non-game
applications—is cresting in a big way. FourSquare, Yelp, Gowalla,
suddenly all these systems are offering achievement badges and scoring
systems for people who want to play in their worlds. How long is it
before a developer is pulled into a meeting and told that “we need to
put achievement badges into the call-center support application”? Or the
online e-commerce portal? It’ll start either this year or next.
- Functional languages will hit a make-or-break point.
I know, I said it last year. But the buzz keeps growing, and when that
happens, it usually means that it’s either going to reach a critical
mass and explode, or it’s going to implode—and the longer the buzz
grows, the faster it explodes or implodes, accordingly. My personal
guess is that the “F/O hybrids”—F#, Scala, etc—will continue to grow
until they explode, particularly since the suggested v.Next changes to
both Java and C# have to be done as language changes, whereas futures
for F# frequently are either built as libraries masquerading as syntax
(such as asynchronous workflows, introduced in 2.0) or as back-end
library hooks that anybody can plug in (such as type providers,
introduced at PDC a few months ago), neither of which require any
language revs—and no concerns about backwards compatibility with
existing code. This makes the F/O hybrids vastly more flexible and
stable. In fact, I suspect that within five years or so, we’ll start
seeing a gradual shift away from pure O-O systems, into systems that use
a lot more functional concepts—and that will propel the F/O languages
into the center of the developer mindshare.
- The Microsoft Kinect will lose its shine.
I hate to say it, but I just don’t see where the excitement is coming
from. Remember when the Wii nunchucks were the most amazing thing
anybody had ever seen? Frankly, after a slew of initial releases for the
Wii that made use of them in interesting ways, the buzz has dropped
off, and more importantly, the nunchucks turned out to be just another
way to move an arrow around on the screen—in other words, we haven’t
found particularly novel and interesting/game-changing ways to use the
things. That’s what I think will happen with the Kinect. Sure, it’s
really freakin’ cool that you can use your body as the controller—but
how precise is it, how quickly can it react to my body movements, and
most of all, what new user interface metaphors are people going to have
to come up with in order to avoid the “me-too” dancing-game clones that
are charging down the pipeline right now?
- There will be no clear victor in the Silverlight-vs-HTML5 war.
And make no mistake about it, a war is brewing. Microsoft, I think,
finds itself in the inenviable position of having two very clearly
useful technologies, each one’s “sphere of utility” (meaning, the range
of answers to the “where would I use it?” question) very clearly
overlapping. It’s sort of like being a football team with both Brett
Favre and Tom Brady on your roster—both of them are superstars, but you know,
deep down, that you have to cut one, because you can’t devote the same
degree of time and energy to both. Microsoft is going to take most of
2011 and probably part of 2012 trying to support both, making a mess of
it, offering up conflicting rationale and reasoning, in the end
achieving nothing but confusing developers and harming their
relationship with the Microsoft developer community in the process.
Personally, I think Microsoft has no choice but to get behind HTML 5,
but I like a lot of the features of Silverlight and think that it has a
lot of mojo that HTML 5 lacks, and would actually be in favor of
Microsoft keeping both—so long as they make it very clear to
the developer community when and where each should be used. In other
words, the executives in charge of each should be locked into a room and
not allowed out until they’ve hammered out a business strategy that is
then printed and handed out to every developer within a 3-continent
radius of Redmond. (Chances of this happening: .01%)
- Apple starts feeling the pressure to deliver a developer experience that isn’t mired in mid-90’s metaphor.
Don’t look now, Apple, but a lot of software developers are coming to
your platform from Java and .NET, and they’re bringing their
expectations for what and how a developer IDE should look like, perform,
and do, with them. Xcode is not a modern IDE, all the Apple fan-boy
love for it notwithstanding, and this means that a few things will
happen:
- Eclipse gets an iOS plugin. Yes, I
know, it wouldn’t work (for the most part) on a Windows-based Eclipse
installation, but if Eclipse can have a native C/C++ developer
experience, then there’s no reason why a Mac Eclipse install couldn’t
have an Objective-C plugin, and that opens up the idea of using Eclipse
to write iOS and/or native Mac apps (which will be critical when the Mac
App Store debuts somewhere in 2011 or 2012).
- Rumors will abound about Microsoft bringing Visual Studio to the Mac.
Silverlight already runs on the Mac; why not bring the native
development experience there? I’m not saying they’ll actually do it, and
certainly not in 2011, but the rumors, they will be flyin….
- Other third-party alternatives to Xcode will emerge and/or grow.
MonoTouch is just one example. There’s opportunity here, just as the
fledgling Java IDE market looked back in ‘96, and people will come to
fill it.
- Eclipse gets an iOS plugin. Yes, I
know, it wouldn’t work (for the most part) on a Windows-based Eclipse
installation, but if Eclipse can have a native C/C++ developer
experience, then there’s no reason why a Mac Eclipse install couldn’t
have an Objective-C plugin, and that opens up the idea of using Eclipse
to write iOS and/or native Mac apps (which will be critical when the Mac
App Store debuts somewhere in 2011 or 2012).
- NoSQL buzz grows. The NoSQL
movement, which sort of got started last year, will reach significant
states of buzz this year. NoSQL databases have a lot to offer,
particularly in areas that relational databases are weak, such as
hierarchical kinds of storage requirements, for example. That buzz will
reach a fever pitch this year, and the relational database moguls
(Microsoft, Oracle, IBM) will start to fight back.
I could probably go on making a few more, but I think these are enough to get me into trouble for the year.
To all of you who’ve been readers of this blog for the past year, I thank you—blog-gathered statistics tell me that I get, on average, about 7,000 hits a day, which just stuns me—and it is a New Years’ Resolution that I blog more and give you even more reason to stick around. Happy New Year, and may your 2011 be just as peaceful, prosperous, and eventful as you want it to be.
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)





