Archive for June, 2011

Keeping Things Interesting (Or: Avoiding .NET At Home)

22 commentsWritten on June 26th, 2011 by
Categories: Opinions

When other developers ask me what kind of stuff i'm working on or playing with outside of work hours, they're often quite surprised to hear that i actually try to avoid doing .NET stuff at home. I generally only use it at home if i have to: if i have to prepare for my NHibernate course, or if i'm merging patches that i've received for Agatha. Other than that, i'd rather not spend time on it. It's not that i don't like .NET, but i just don't find it a very interesting space to be in anymore. There's very little innovation going on and the new things that the community and Microsoft are working on most often seem like either new libraries or frameworks to keep doing the same things we've been doing for years, or building things that other development communities already have for a while now. It also doesn't help that a lot of the people who used to be in the ALT.NET community seem to be spending a lot of their spare time learning new languages and platforms instead of pushing for improvement in the .NET community like they used to do. That's not a criticism of them because i can't blame them at all. Hell, i'm doing the same thing.

I still do .NET professionally, and i expect to keep working with it for a few more years because there's just not that much work around here (Belgium) with alternative technologies. And the work that is there most often pays a lot less than your typical .NET job. It shouldn't only be about money, but it does start to matter increasingly once you're no longer in your middle-twenties. So what do you do if you're passionate about development, but aren't quite as passionate anymore about the technical environment you use most often? I started learning Ruby last year and it was an eye-opening experience for me on multiple levels. I love it as a language, and i like a lot of the stuff that is happening in and coming out of the Ruby community. Is it all perfect on that side of the fence? Of course not, nothing is. But it's worth learning, if only because it will expand your mind and your views on software development.

For the past 6 months, i've become increasingly fond of JavaScript and while i don't like it nearly as much as Ruby (still my favorite language), i am very intrigued by the fact that is becoming increasingly relevant on both the client and the server. I want to dive deeply in the world of Node.JS, but i also want to learn more about Backbone.JS and Knockout.JS. I want to explore the world of automated testing for both client-side and server-side JavaScript. I probably should look into CoffeeScript as well, but i'd like to become proficient in JavaScript first before i switch to something that compiles to JavaScript, if only because you're likely going to be reading a lot of JavaScript code anyway for the next couple of years.

Will i still like JavaScript as much 6 months or a year from now, or will i be trying to learn something else by then? Who knows, and really, who cares? What matters to me is that i keep learning new things this way, which keeps things interesting for me. Some of the stuff i'll learn won't be usable to me at all in my daytime .NET coding, but some stuff will. You can never quite tell in advance, just like you can't really know in advance whether it's a good investment to jump into the latest and greatest thing in the .NET world. The only thing that really matters is that you keep enjoying the journey, no matter which technology or language or platforms you get that enjoyment from.

Yet Another Nail In Silverlight’s Coffin?

18 commentsWritten on June 4th, 2011 by
Categories: Opinions, Silverlight

As i'm sure you know by now, Microsoft caused a bit of a stir in the .NET development community with their recent 10 minute demo of Windows 8. More specifically, the fact that they explicitly mentioned HTML5 and JavaScript as one of the ways to build these new-look Windows 8 applications while neglecting to mention Silverlight or WPF left a lot of developers wondering what the future holds for both Silverlight and WPF. An interesting thread showed up on the Silverlight forums where Silverlight developers expressed their fear for the future of their platform. I've been following that thread with a lot of interest, not only because the statements and behavior displayed in that thread are both hilarious and astounding, but because i wanted to see how Microsoft would react to it.

Surely, if the core audience of one of their most-touted technologies of the past years started to doubt the future of their platform so openly, a response to calm down the fears would have to be forthcoming, no? The only Microsoft employee to respond was Pete Brown, and i thought it was quite telling:

You all saw a very small technology demo of Windows 8, and a brief press release. We're all being quiet right now because we can't comment on this. It's not because we don't care, aren't listening, have given up, or are agreeing or disagreeing with you on something. All I can say for now is to please wait until September. If we say more before then, that will be great, but there are no promises (and I'm not aware of any plans) to say more right now. I'm very sorry that there's nothing else to share at the moment. I know that answer is terrible, but it's all that we can say right now. Seriously.

Followed by:

Guys, I've been pretty clear that my hands are tied here, so don't read anything more into my lack of comments than that. We simply aren't allowed to say anything about this. It's not that we have nothing to say. It's not that we don't care. It's not that I personally don't care, because I do, a lot.

And finally:

This whole thing has blown way out of proportion. Base your information on our primary sources (like our press release), not on third party speculation. That's not to minimize how everyone feels, but keep in mind that Windows 8 itself is still a ways off from retail, and even much further away from internal IT adoption. The 8 weeks until //build/ is a pretty small amount of time to wait in comparison. Take some vacation time this summer, and look forward to the //build/ conference. Stop speculating based on just a small demo of some very cool new technology. Tell your management to do the same: if they're basing your project work for the next X years on the results of a quick demo for an unreleased operating system, then they are doing you and your company a real disservice.

If i were still a Silverlight developer, i'd find the final sentence quite insulting. If anything, Microsoft is doing a sizable portion of their customers a disservice by being so unclear about the future of one of their technologies. This certainly isn't the first storm to come up about Silverlight's future, and every time people have openly questioned the future of the platform Microsoft has responded rather softly. There's never been a convincing and strong "we are fully committed to making Silverlight a smart choice for the future" kind of response. And this time, no response at all. Just silence. Deafening silence even, because of Pete's remark that they are not even allowed to talk about it. Once again, the Silverlight community is screaming for a real response and they're being ignored. They're being told to wait until September.

Obviously, i don't know what Microsoft is planning for Silverlight, but i really have difficulties understanding how any company could still trust it as a viable technological choice. First the mixed messages, then the clear favoritism Microsoft is showing towards HTML5 and JavaScript (which, IMO, is justified but that's another topic), and now the unwillingness to stand up for one of their products that is being doubted so openly, for the first time by its very users who only want assurance of Microsoft that their investments in the technology haven't been a total waste. I took a lot of flack from the Silverlight community when i scored Silverlight so low in the 'strategic' department in my post where i detailed how we came to the conclusion to go with HTML(5) instead of Silverlight but this recent PR fiasco kind of validates that score IMO.

However, Microsoft certainly isn't the only one to blame here. If you read the thread i linked to, you'll see some reactions from people who've pretty much put all of their eggs in the Silverlight basket and are now reacting angrily towards Microsoft. If any of those people are reading this, allow me to quote myself from 2 posts that i wrote over 6 months ago:

If however, your product is supposed to become the basis of your long-term success, then the choice of Silverlight over HTML/CSS/JavaScript is short-sighted and ultimately flawed for a number of reasons. The first of which is that Silverlight is a proprietary technology in the worst possible way. Its future will be determined by a single company who naturally hold their own best interest at heart, and not yours. As long as it makes sense for them to keep improving Silverlight, they will and you can benefit from that. As soon as it no longer makes sense for them, the technology will become increasingly irrelevant. Obviously, that is a risk that you face with any kind of technology. Sticking with open standards and open source software might very well result in the same outcome but there is one tremendously important difference here: with Silverlight, you have no migration path.

That quote was from 'Keep Your Eyes On The Road', written in September 2010. And the next quote is from 'Developers Shouldn't Specialize', written in October 2010:

There's also another factor to keep in mind, which is more important than you might realize. If you specialize in technology from commercial vendors, you need to keep the market forces in mind that could influence the vendor. Those market forces might be (or seem) irrelevant to you, but the vendor will not let that influence its decisions and strategies if the vendor itself is competing with other companies on a much larger level than your company or your clients are. And when a vendor changes tactics due to market forces, the technology you've chosen to specialize in might be on the way out, or it might no longer be the hot new thing that you can capitalize on. And that is where one of the biggest dangers in specialization lies. If you're specialized in a specific technology, you're personally invested in it. Your current standard of life, your livelihood, depends largely on that specific technology. Sure, you can move on to something else but you will have to get used to less than you're used to, probably both in money and stature for a while. Realistically speaking, odds are high that you are emotionally attached to this technology because of this. When you are confronted with bad news regarding the technology's future, you're likely to exhibit classic denial symptoms. The recent news about the Silverlight strategy shift and specifically the reactions to it, is a beautiful example of this.

Anyone who's upset at Microsoft about this has only himself to blame. You've put yourself in this position, because the writing has been on the wall for a while now.

You Might Want To Start Taking JavaScript Seriously

17 commentsWritten on June 2nd, 2011 by
Categories: JavaScript, Opinions

A very large group of developers still thinks of JavaScript as a joke. I used to be one of them, as you might have been, or perhaps still are. They have such negative views on JavaScript: about how horrible it is in general, that it is slow, that it's just a toy language, that it's not even object oriented (which shows you how little they know of it). But the reality of the matter is that JavaScript is increasingly being used for more and more serious things. You can do wonderful and truly powerful stuff with it to enrich your users' client-side experience of your web applications. It's also becoming increasingly popular on the server-side with frameworks like node.js, known for its high performance and throughput, not exactly attributes you'd expect to be linked to a framework written in a supposedly slow language. And even Microsoft appears to be promoting JavaScript ever increasingly with their renewed focus on IE and now even as one of the preferred ways of developing applications for Windows 8's new UI.

To those of you who dislike JavaScript: it's not going to go anywhere and in fact, it seems like it's only going to get bigger and bigger over the next couple of years since it appears to be one of the few languages that practically every major player in the industry can benefit from in a variety of ways. All browser vendors are continuously improving the performance of their JavaScript engines. Plenty of projects/startups/companies have shown that JavaScript can indeed be the right tool for many different jobs. Simply put: there's a lot of innovation going around in the JavaScript community and there's no reason to believe it'll slow down anytime soon.

My advice: start taking it seriously. Try to actually learn the language and experiment with it. I can definitely recommend reading JavaScript: The Good Parts and JavaScript Patterns. There are indeed plenty of bad parts in JavaScript, but if you stick to the good parts and learn and understand the patterns that enable you to use it very effectively, you might end up pretty surprised at how nice it can be. Even if you don't appreciate how nice it is, you'll at least have learned a language that is becoming increasingly relevant which means you have one more skill that will be usable in many different situations, and probably for a long time to come.

600 Posts

7 commentsWritten on June 2nd, 2011 by
Categories: About The Blog

Every time i reach x00 number of posts i keep thinking "there's no way i'm doing another 100". But once again it seems that i did. At least the rate at which i'm writing them is slowing down and that's about the only thing i'm willing to guarantee for who knows how many or little posts i'll write in the future. I've gone over the archives to pick the posts that i currently think of as the most important ones i've written. Out of 599 posts, i only came up with 7 :)

Many of the posts i've written have become irrelevant, useless or no longer consistent with how i think about things right now. And some of the posts are still important, though they too will sooner or later join the group of posts that ultimately don't matter anymore because they focused on specific technologies or approaches, all of which are sure to become outdated at some point in the future.

But these 7 posts that i selected are things i hope to still believe in 5, 10, 20, 30 years from now. Technical posts are temporal in nature, whereas i hope (and suspect) these posts will stand the test of time:

  1. Start Believing In Yourself
  2. Wanna Improve Your Life? Then DO Something About It!
  3. Walk Out On Sources Of Negativity
  4. Developers Shouldn’t Specialize
  5. Favor Value Over Quality
  6. If You Can’t Say Something Bad About It, You Don’t Know It Well Enough
  7. You Need To Step Out Of Your Comfort Zone