I sincerely tried, but I still hate Linux

Before you read further, go read this post by David Gewirtz:

Why I’ve finally had it with my Linux
server and I’m moving back to Windows

I guess I’m an idiot too.

About 6 months ago I made the decision to leave Microsoft after 21 years. I knew I was going to build a startup, and I knew that the developers I’d want to hire were, to say it kindly, not familiar with Windows. It seemed for me to be effective in hiring and leading them I’d need to have credible technical chops with Linux and other OSS technologies.

I was on the team that built Internet Explorer 3. I helped build IIS4 and IIS5 and the original Active Server Pages. I understand web technologies very deeply.  But I come at it all from a very Microsoft and Windows centric perspective. I knew, venturing outside the Borg, that I needed to expand my knowledge and skills and unlearn a great deal.

The way I learn is by doing. So I sat down, installed Ubuntu in a VM, and got to work. I moved my blog to wordpress running on Ubuntu and learned PHP. I re-wrote a bunch of my old ASP.NET apps in Ruby on Rails, Node.js, Python, MySQL. I learned the language of gems with names like bundler, sinatra, and foreman. I sat in awe of a language thrown together by a few guys at Netscape before my 18 year old daughter was born spewing HTTP. I deployed 100 instances on AWS behind iptables just to see how long it would take (an impressively short amount of time). I learned all about apt-get and long lost sed/awk skills came back to me. I even bought the domain names  stuckinemacs.com and stuckinvi.com because I found it so funny that I couldn’t remember how to get out of either.

But I did it all and learned a lot. The only Windows thing I used was my main desktop as a VirtualBox host.

Here’s what I found:

  • Linux still sucks, for me. David’s post spoke to me in a very deep way. It simply has too many, too loosely coupled parts for someone who is not born and bred on it to be productive.
  • I don’t hate Linux because I worked at Microsoft. I hate Linux because it sucks, for me.
  • The OSS cloud development stacks (Ruby, Node.js, Heroku, Hadoop, etc…) are shockingly productive. As long as you get them setup and configured.

Last week I finally needed to build a real web application and I had limited time to get it done. On the client side I still hadn’t gotten my head all the way around jQuery so I decided I’d commit to that.

I also decided I wanted to code it in Ruby on Heroku. Seemed like a great learning exercise. But to build for Heroku you have to develop and test somewhere else. I figured since I hated Linux so much and I knew I could be more productive on Windows, I’d install Ruby on Windows and be off to the races.

Remember, I had already committed to climbing the jQuery mountain for this project. This meant I needed to be extremely productive with the code for the server side.

This is where I learned another lesson:

  • The OSS stacks running on Windows are a joke. If you think it’s hard getting Ruby working well on Linux (I do), getting it configured on Windows is even worse. Yes, I know that it worked for you the first time. That’s irrelevant because it didn’t for me. Took me days and I never really got it working right. See the first sentence of this post. The reason? They are all ported to Windows by the B-team. The A-team is focused on the originals.

Because I’m a “Windows guy” I knew I could have an instance up on AWS in minutes.  Because I know ASP.NET deeply, I knew I could hack out the app quickly with a minimum of fuss.  So I abandoned Ruby and went with ASP.NET MVC3 Razor.

It was the right decision. The site is done and is working great. I’m 100% confident that if I had forced myself to use Linux and/or an OSS framework like Rails or Node.js I’d still be limping along today and I wouldn’t be able to say with confidence that I know how to build jQuery apps.

The interesting thing is that this doesn’t mean we won’t use Linux and those other technologies at my new company. We’ll use what makes the team the most productive. Soon the developers and designers I’ll hire will far outnumber little ‘ole me and my productivity won’t matter for squat, so the team will get to decide on the tools and frameworks. I’ll suffer along.

© Charlie Kindel. All Rights Reserved.

33 comments


  1. I always love Linux, particularly the moments when you realized you’ve just screwed up the entire installation and that a reinstall of the entire OS is probably easier than trying to edit the config files, rebuilding, etc. 🙂

    • Linux is easy

      I have NEVER had that happen in 10 years.

      This is more accurate:

      I always love Windows, particularly the moments when you realized you’ve
      just screwed up the entire installation, or something destroyed the registry, or you are infected beyond repair and that a reinstall of the
      entire OS is probably easier than trying to edit the config files,
      rebuilding, etc. 🙂

      Last time i put together a server(including rails, postfix, dovecot, vsftp, java,postgresql, configure all networking and firewall stuff on centos 6) it took 45 minutes at best.

      On the desktop I can go from blank HD to fully install and usable in about 20 minutes(using opensuse)

      • digibyte

        Windows does have more malware, but that does not mean that Windows is easier to infect, nor that you will be infected when using Windows.

        In my opinion, most viruses today get on Windows computers because the user accidentally got one from somewhere, not that it just happened to get on the system from the Internet. Also, if you have a good anti-virus probably most viruses will not successfully infect your Windows computer.

        Linux can get viruses too (i.e. Android). Market share increases for an OS == increase in bad guy’s attention to making malware for that OS

  2. Keithba

    I was at MSFT for 8 years, and when I switched to OSS technology (mostly Android, iOS, Ruby on Rails) I went with a Mac as my development environment. In fact, I barely know any rails or android devs who use anything other than a mac.

    Not saying you made the wrong choice (the right choice is shipping, always), but something to think about.

    Also, for my first foray into rails – I found someone to pair program with me. It made learning it much, much easier. That guy later became my co-founder.

  3. MPiasecki

    I read the article you linked to, but I can’t understand how he was able to completely FUBAR his setup this badly. My first homebrew server running Slackware, with no package manager (ew!) and no dependency checking (double ew!) ran with no problems after a whole 3 days of experience with the OS. It read like a 13 year olds Live Journal site.

  4. I think it’s awesome that you gave all these technologies a try. Having worked on part of .Net while at MS, it was also where I felt most comfortable 6-12 months ago. However, a few months ago I started developing in Ruby (using Sinatra, Sequel, Postgres, Redis+Resque and many others). I started in Windows with the ruby stack. While everything i needed worked, eventually I found that everything was easier to use in linux. Things like RVM and Foreman make the platform substantially easier to use. I eventually went the other way (Linux over Windows) for development and production. I think there were a few things that made my experience different: 

    – Started on windows with Ruby rather than attempting everything at once. I found that all the ruby packages I needed would work given ruby dev-kit for windows. I still frequently develop my ruby code in windows.
    – Common IDE (Aptana) between windows and linux lowered my learning curve for a dev setup in linux
    – Longer term usage with a gradual shift to linux usage as I felt more comfortable
    – Deciding to host in Amazon where lower cost (its possible to run a micro-linux instance where a micro-windows instance is effectively useless) and shorter deploy times (windows takes 10-15 minutes sometimes vs linux in seconds).

    Now that I’ve decided to make the jump, I find that I’m gaining even more value as time goes on as I’m more comfortable with the tooling. There are many more possible configurations (eg, Thin/Mongrel + Ngnix/Apache) and all are open source. I do actually find myself diving into Sinatra/Thin code to figure out how things will perform/work. By comparison that’s a lot harder in .Net world where not everything in the stack is written in .Net and can be de-compiled by a reflector tool.

    And for the record — I do go on dates and my life is not just about Linux 🙂

  5. Pccgold

    Well not surprising but install programs can’t find the proper executional file tring to create link is so haphazard and installing stuff constantly is a production stopper  at every point.  I use to do this stuff for fun but now with Linux it is becoming s joke,  not one simple answer to one simple problem, the people tooting this are those that sit in their basements and have no work to do in the first place.

  6. Guest

    Linux is a 90’s fad, and I haven’t seen an article on it in years.  Mac OS X has got the stability of Linux/Unix, but a crisper, fresher GUI than Windows, and much easier to use.  Try it, and you’ll be done with Windows.

    • digibyte

      True story: I plugged-in a USB stick (formatted for a Windows computer) into my granddad’s Mac laptop. The Mac laptop just crashed. No joking.

      I do not know why that happened, but I have never seen *any* computer to that before!

  7. Ll

    You have been involved in IE 3.0 and ActiveX and some other stuff that even Microsoft now considers web pollution.
    How dare you say  understand web technologies very deeply?

  8. asdf

    Online north face outletoffer kinds of discount north face jackets, vests and other equipment with Free Shipping and No Tax! north face outlet store where you can buy discount north face fleece, denali jackets for women & men, cheap north face jackets online store.

  9. Paulgrinberg

    Microsoft is a great company and despite being a Linux user I appreciate their code, it’s actually quite good.  However, most if not all of the web technologies you speak of were actually invented and developed on Linux/Unix machines by hardcore Unix engineers.  Microsoft ported many of these technologies and refined them for business usage.  The problem is that the Unix paradigm runs deep in all web technology and is the foundation of all modern computing.  Because Microsoft decided to defy the Unix paradigm – for no good reason – they have been catching up ever since.   The MSFT footprint in terms of technology scope and depth is very small.  You are stuck doing things the MSFT way when the computing fundamentals and foundations want to do things the Unix way, this is not a sustainable trajectory…

    There is a reason Steve Jobs switched Apple to the Unix (Next/Darwin) thing, now they are one of the most valuable companies in the world and it shows… 

  10. Joey Fish

    Just wondering, by AWS so you mean Ada Web Server?

  11. winsuck

    I think just because you’re very idiot to understand the linux environment. fyi I’m not a programmer or even graduate from computer science to learn linux. and now I love linux because more faster than winsuck.
    good bye winsuck
    #throw the winsuck’s cd to garbage

  12. Momu G

    I love Windows too …. and hate Linux …
    I worked in storage (data backup, recovery) and cloud computing domains and both Windows and Linux environments. I personally found that the problem solving approach is totally different. In Linux people like to download open source software and write bash scripts on top of these open source software to add features or resolve issues.
    While in Windows people think about actually design and developing their own features, and resolving issues is more fun. At least my experience working with Windows and Windows team members was very interesting.

  13. I’m so glad you’re wrong and in the minority. God damn.

  14. Chris Darklight

    I’ve tried it for a week and I’m tired of fixing things and looking for solutions every single day, more than once a day. But I’ve discovered a solution to all of Linux problems – re-install Windows or OS X back on your computer. All your linux problems will just disappear and you can get back to work without fear of the operating system locking up if you so much as look at it the wrong way.

    • ArcoPrince

      I totally agree with you on this one. I have Lubuntu installed on my old computer temporarily and I’ve learned this OS literally has a mind of its own. If it does not want to work, it just ups and decides “Hey I really cannot be bothered today” and I’ll have to spend days looking for 5000 different solutions to one simple problem that can be solved in five minutes on Windows. This is just my experience but I totally agree here.

  15. Agatheus

    (This is a note to anyone looking at this)
    I have just one comment to make, without ranting on about stuff that’ll make you want to move even further from Linux – try it now. More specifically, try the latest Linux mint distro, as it is so easy to use and you only have to use terminal if you want to. And try all the other stuff – so many bugs have been fixed, and program’s written that Linux is now a whole new thing, on par (at least) with Apple and Mixrosoft’s products.
    Also look at the Raspberry Pi 😉

    • digibyte

      I have tried desktop Linux off and on since 2006. Every time I want to go back to Windows. Linux has improved, but the user-friendliness is still not on par with Windows.

  16. bob

    yea, linux is dying….OS X is based on Unix, Android is based on it, Ubuntu is doing well…good choice, stay with virus infected, bloated Windows, have fun

    • Carlo Vincente

      Yeah Linux is dying with 2/3% of base users. Android is a shit full of virus and malware. I don´t recall seeing a virus in Windows 7/8 in a long, long time. OS X is doing well have fun

    • digibyte

      Linux can get viruses too (Android for example), but I do not disagree that Windows has the most malware, even if it is pretty rare to actually catch a virus for Windows (Vista/7/8), without the user causing it to happen.

  17. Stevie

    Wow, you really think it is hard to get ruby installed and working?

    Yes, you are truly stupid.

    zypper(or yum or apt-get) install ruby

    or

    from source

    ./configure

    make
    make install

    Wow tough.

    If you meant Ruby on Rails and judging from context you are, Ruby and Ruby on Rails are two different things.

    Do the ruby install above

    gem install passenger

    passenger-install-(nginx or apache)

    Open config file, point to the rails directory.

    Restart apache or nginx

    cd to/rails/app

    bundle install

    rake db:migrate

    optionally rake db:seed

    done!

    Now to update your rails app:

    cap deploy

    or

    hg(or git) pull
    hg update
    touch tmp/restart

    done

    Very challenging, you are truly retarded.

    jQuery is so easy a caveman can do it.

    GTFO of this field. Go be a walmart greeter.

    • Gat

      lol dude you’re a fucking retard. Did you not read this guy’s article
      ? I can guarantee you don’t know 1 fucking thing about programming. And
      yes Linux distributions SUCK DICK. Want to know why ? It takes away any
      kind of productivity. You simply cannot be productive on any Linux
      distribution it’s fucking CRAP. The code sucks too. The people behind
      that code are fucking retards and it’s so vulnerable it’s ridiculous.
      There are more vulnerabilities in Linux distributions than a two dollar
      hooker hooked on heroine. Don’t believe me dumb ass ? Go look up vulns
      for Linux kernels, software etc. It’s pure shit. UNIX however or BSD is
      pretty nice. Windows is excellent for productivity; it also has great
      driver support and doesn’t make you jump through hoops just to get
      things done. So now I’m sure you’re reading this and thinking “oh HURR
      DURR but it’s all about that money” argument, right ? Well yeah, it is.
      Windows 8 Enterprise is even more promising, it’s been out for a year
      and some odd months now and there are still no real vulns for it yet,
      even the heap is practically invuln to any type of bof vuln as of today.
      “DURR BUT U HAF TO PAY FOR WINDOWS HURRRRRR” LoL no you don’t, go
      torrent it you faggot. I fucking HATE linux. I do <3 UNIX like BSD
      etc though and Windows 8 Enterprise is fucking awesome for productivity.
      Now go crawl back into your faggot linux distro and jump through about
      10,000 steps of bullshit to get your video drivers working all before
      you find out you can't play skyrim with that faggot wine api/emulator
      piece of shit software, all while it takes me 5-10 minutes to get that
      shit installed and dx11 updated and I'm ready to go. I hope this was as fun to read as it was for me to write it haha. All this shit is legit though, fuck a linux.

  18. TheMedi8or

    I completely agree with this article. I am not a computer expert, but I know my way around them. I hate Windows – especially since the NSA incidents started coming to light. So I moved to Linux – Fedora to be exact. And I can’t do it. I’ve tried, really. Nothing works. Nothing will install because I need Wine. Wine won’t install because I need a flex package. The flex package won’t install because the new Fedora is 64 bit. Once I get that fixed and finally get past the flex package issue it won’t install because I need a bison package. Which I can’t find. Suddenly I understand why people are willing to put up with Windows invading their privacy – because it’s the ONLY WAY TO GET S**T DONE!

  19. mgamerz

    Every single time I’ve ever used Linux it’s been a disaster. As a CS student I absolutely can’t stand it. Install a graphics driver? It dies. Update the kernel? It dies. Want to do something with semi-new hardware? Hope you like the terminal!

    I really try to like it. I love OSS, but the fact that I have to always build everything and it never seems to work without considerable extra steps is a pain in the ass.

    At my work, with a single file from dell (cabinet file), I can boot a Windows computer with a fresh vanilla W7 SP1 image and have all the drivers installed within 40 minutes. I can’t get linux running with full drivers in 3 hours.

  20. shy

    Worked on linux for 6 months…installed SVN,LAMP,SQUID,SAMBA,CUPS server…learnt many things about linux…but for the past few days i am trying to install a HP printer in my centos desktop…nahh i am not able to..read many documents…but all invain…from my windows 7 pc,it takes 5 mins to install the drivers and printing is done.For common men,linux is really nightmare..i am unable to print from my linux pc..i followed guide..i have to write lots of command..check iptables, i dont know who will work so hard to print a page…today i will uninstall linux from all of my company’s desktop..goodbye linux..you can never be common people’s champ ever 🙁

  21. ArcoPrince

    After having used Lubuntu temporarily, I’ve decided fuck this shit, I don’t need it anymore.

    My experiences: Ok Windows XP is no longer supported and Lubuntu sounds like a nice experience (after Googling ass-kissing articles about the all amazing holy almighty promised land of Lubuntu)

    So I finally install Lubuntu, wiping out Windows XP from my HDD. Everything does feel faster and cleaner, that is not denied however there was one problem that pretty much broke the whole thing. I decide to use my wireless adapter to connect to the internet. Oh wait, nope, your not allowed to do that because Linux does not support any sort of drivers except its own very rare native drivers that people cannot even be bothered to make cause who even uses Linux right?

    Ok so me being me, I do my research and find out a little about a way around this in the form of a package called ‘ndisgtk’ along with ndiswrapper and all other forms of ridiculously similar named things.

    I carry my big ass 15 year old block of a computer downstairs, connect to the Ethernet port and download and install this thing. 15 minutes after downloading, installing, locating the original windows drivers etc, it works! Maybe Linux isn’t so bad afterall.

    So with a big grin on my face, I re-carry this brick piece of shit back up the stairs and reconnect it in my bedroom and turn on the computer. Put in my wireless adapter and no connection. Why? Well because it’s fucking Linux that’s why. You follow all the necessaary steps and it fucks you over either way. You google the problem and people come up with like 1000 different reasons why and how this may have happened but all you can thing is why something so simple has become so convoluted and misguided. Linux is so shit because it just doesn’t care about its new users who come along. What takes 5 minutes in Windows takes 7 days in Linux. You know now my computers USB ports work when they want to, it functions when it wants to and has no reason for this happening. That’s the worse part, you don’t know why what’s happening is happening.

    I shouldn’t have to open a terminal and enter all kinds of shit for me to install a basic program and I shouldn’t have to USB tether my fucking smartphone to the computer for internet (which can only work when the USB wants to communicate)

    So after my experience with Lubuntu, I just wanna say, fuck you Linux, you ain’t shit.

    (This is my opinion and experiences, any argumemts towards me will be discarded)

  22. Ahmad

    You frustration is legit. Not everyone can be obsessed with Linux. I am obsessed with building it, but not for long. I just don’t like the idea of wasting my time to search for solution for each and one of softwares that are not included or is not generally used for that particular distro.

    I love Linux for a lot of other things, but it is always because of that reason I stated above causes trouble to finish my job.

    I still think the community is helpful. Obviously not the ones that will flame every opinion on improving Linux for users that are not like them.

    Fundamentally, Linux is better than Windows. It’s usability, sucks. Linux needs to cater not only for geeks, but for users that focuses more on the job that is needed to be done.

  23. i hate you

    sincerely, Linus Towarld clone

Leave a Reply

Your email address will not be published. Required fields are marked *