Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Little background:

I've always been kind of a Microsoft hater. A while ago just the fact of learning a something like C# scared me. I was only interested in opensource project and programming languages. Wasn't impressed with vista(actually I hated vista), so I went back to XP Pro. I had to use Windows because some software I use/used wasn't available for linux. Then came windows 7 and before even trying/using it I already judge it to be a 'insert insult here'. I kept hearing really good stuff about it so I removed XP and install windows 7. After using it just for maybe 2, 3 days I started to really like it. Now I like it a lot actually. It even has these small features that may feel irrelevant to someone (like being able to arrange the windows' in the taskbar) which are very useful to me (I used to open programs in a specific order, even close some and reopen just to rearrange them). Actual question:

Now I think more and more about learning .NET and C#. I also seen PowerShell which looks tempting. Call me an idiot but I kind of feel weird about this. It almost feels like I'm betraying someone.

Have you ever been in a similar situation?

share|improve this question
That's called experience.... – user1249 Nov 19 '10 at 11:28
I used to whine about Microsoft all the time (was an OS/2 and Linux user from 1992 to 1998) but nowadays I use a lot of their software and program in .NET and things work just fine. I even liked Vista over XP (still using Vista as work, but 7 at home now.) I dread using an XP machine. There's nothing wrong with learning/using .NET and C# - very interesting and rich platform and language. C# is pretty damn cool (though I'm stuck using VB 99% of the time, so I don't use it as much as I'd like to.) – MetalMikester Nov 19 '10 at 12:32
There should be Mac OS X somewhere in your story. :) It is both more user-friendly and mainstream than Linux, and more user-friendly and robust than Windows. – EOL Nov 19 '10 at 13:22
How do you hate something before you've learned about it? – Gratzy Nov 19 '10 at 15:04
@Gratzy: Its not as much fun to hate something you are knowledgeable about; the more you know the more you realize there are usually different trade-offs and its not simply a good vs. bad distinction. The Fanboys are usually more interested in defending their own sunk investments than learning anything new. – Jeremy Nov 19 '10 at 15:42
up vote 9 down vote accepted

You're growing up. When we're young, we like to get caught up in idealistic divisions between what is "good" and what is "bad". As we gain experience, we start to see that things aren't so black and white, and that maybe our hard-line attitude wasn't the best place to be. You'll hear this story repeated dozens of times throughout your life -- perhaps the names will change (OSX instead of Linux or Linux instead of Windows), but for the most part it's a pretty universal story; "I used to be dumb, and think something was really important, but as I grew up, I realized how dumb I was being, and came around to see the other side of the story".

share|improve this answer

I used to think Haskell's syntax was strange and ugly. Time after time i discovered its beautiful concepts and that the strange syntax suddenly made sense (e.g. currying is builtin) and was no big deal after all.

share|improve this answer

Yes, with pretty much all of them.

You'd think I'd learn by this point, but my relationship with every single language, OS and tool I know and use started off with "Why the hell is [new thing] so complicated? Why can't it be more like [thing I aleady know]?" then went into "Well, at least it does this one thing right...", and then when I finally grasped the purpose "Huh. I guess I was an idiot for thinking [new thing] was stupid. Now, I know better!".

I started off as a Commodore 64 kid in the late 80s, willingly switched to DOS at some point later, and then ran the above pattern for (in order)

  1. Windows 3.1
  2. Windows 95
  3. Windows XP
  4. Python
  5. OS X
  6. Dreamweaver
  7. jQuery
  8. Ruby
  9. Eclipse
  10. Common Lisp
  11. Emacs
  12. Linux

The loop tightens each time, but I still struggle with it. There's a very strong temptation, when learning a new piece of technology, to think "I've been getting along just fine without it. I don't need to put myself through this". That thought seems like it would lead to mediocrity if I applied it without restraint. I'd like to think I'm past it, but it's natural to have a bias towards tech you know already and against new stuff.

share|improve this answer
I'm doing the same thing right now learning the Zend Framework for a new job for PHP. I especially relate to your "I'm getting along just fine without it!" sentiment. – EricBoersma Nov 19 '10 at 15:26

I have a similar story about editors. I've used vim for years, and am very productive with it. However, I wanted to use Lisp for a project, and emacs has much better support for Lisp. After working with it for a few weeks, I've started to also use it as a newsreader, and m-x shell gives me a DOS prompt in Windows with easy cut/paste. I'm still learning, but I'm happy I switched.

share|improve this answer

Component Object Model, which has a history (known as OLE in 1990) that predates GoF by 4 years.

  • reference counting, 10 years before boost::shared_ptr
  • (almost) dynamic typing, where an object can choose what interfaces to expose via QueryInterface. (However it cannot be changed after the object has been constructed).
  • class factory. Otherwise you don't get dynamic typing.
  • and many more ...
  • To summarize, it redeems C++
share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.