Skip to main content

Stardate who-cares, approaching a black hole

I'm not quite sure how it all began, and whether natural selection had anything to do with it, but as far back as I can remember I've always developed for the Windows platform.
While my first steps were in C, I soon fell in love with C# and the rest is history. I guess it was only natural for me at the time, as I had had no prior experience with Java (a fact that has probably saved me a few "wait, in Java I could simply..." moments), C# had been the new cool kid on the block and it was rapidly gaining popularity.

In fact, Microsoft has been pushing it forward ever since, and doing so quite admirably if I might add (perhaps except that portability aspect). With recent C# versions introducing lambda expressions (closures), LINQ and TPL, C# has become even more powerful and even more beautiful, allowing one to write executable poems rather than programs.

And Windows, of course, C#'s best (and some would say - the only) friend. Windows is the operating system I've been working on since forever, or Windows 3.11, whichever came first, I forget. At home, at the office, at school, in between, and where not. I'm not saying it's the best, just saying it's the one I feel at home when using.

Windows + C# = LOVE FOREVER, as youngsters engrave in their backyard trees nowadays.

The reason for this sudden reminiscing is simple, as fate would have it, I'm now beginning a new path in my professional life, diving right into the Open Source world, Linux, and no man's land in general, where so much as saying "Windows" might get you killed, or seriously injured at the very least.

Since I'm confident I'm about to experience a tremendous culture shock, I thought I'd share the feelings of a C# enthusiast going through rehab and getting used to a whole new ecosystem, the users of which were often referred to, by us .Net developers, as "the others".

If nothing else, the coming posts will serve as therapy sessions to get me through these rough times, and help me to emerge a better man, or at least a more proficient one, on the other end of this journey.



Comments

  1. There must be balance in the Force, and since I've turned over to the dark side, this only makes sense.
    Welcome, Jedi, and may the force be with you.

    ReplyDelete
  2. Thanks.

    Though I believe the side where black, gloomy terminals are the rule rather than the exception deserves to be called the dark one. (Yes, I know you can change the color scheme. No, I don't think it renders my point invalid...)

    ReplyDelete

Post a Comment

Popular posts from this blog

Sending out Storm metrics

There are a few posts talking about Storm's metrics mechanism, among which you can find Michael Noll's postJason Trost's post and the storm-metrics-statsd github project, and last but not least (or is it?)  Storm's documentation.

While all of the above provide a decent amount of information, and one is definitely encouraged to read them all before proceeding, it feels like in order to get the full picture one needs to combine them all, and even then a few bits and pieces are left missing. It is these missing bits I'll be rambling about in this post.

Dependency Injection - The good, the bad and the ugly

The Good
Dependency injection (DI, a.k.a IoC - inversion of control) is a well known technique to increase software modularity by reducing coupling between modules. To provide the benefits of DI, numerous DI frameworks have arisen (Spring, Guice, Castle Windsor, etc.) all of which essentially give you "DI capabilities" right out of the box (these frameworks tend to provide a whole lot more than just "DI capabilities", but that's not really relevant to the point I'm about to make). Now, to remove the quotes around "DI capabilities", let's define it as a DI container - a sack of objects you can manipulate using a provided API in order to wire these objects together into an object graph that makes up your application.

I've worked on quite a few projects employing Spring, so it will be my framework of reference throughout the rest of the post, but the principles and morals apply just the same.