What's wrong with Linux Development

I got the following response from Jerry Pisk regarding my post about MS Developer Support and that got me thinking why I am developing on the MS platforms:

re: MS Developer Support

So a bug known for almost 6 months is not documented (let alone fixed)? You
consider that good support? As for Linux (and open source development in
general) - I personally ran into several issues with the tools I've been using
and once I had to write a fix (which eventually got included in the main code)
and every single other time somebody else already wrote a patch, since people
can actually do that - fix things that bug them. Unlike all the problems with
Vs.Net and .Net framework in general where nobody fixes anything (developers
don't because they can't and Microsoft obviously has its own reasons).

This is my whole problem with the Linux development paradigm.  “If you find a problem, you can fix it” is there way of thinking.  Well, that's great if you are building a solution that plugs into the Linux kernel or does something fairly deep in the system.  I applaud that.  I really think that is a great way to get things done for those developers that need access to kernel level code.  However, my customers are paying me to solve their business problems.  Typically, this involves writing code to automate business processes.  My customers do not want to pay me to “fix” someone's Linux tool or fix a problem in the kernel.  While at one point in my career, I would have truly enjoyed working in the Linux Kernel and doing C++ types of stuff (BTW, I used to do C/C++ programming and I was very good at pointers and pointer arithmetic), that day is no more.  I prefer to work with these higher level environments because that is what paying customers want from me.  They want code to solve their business problems yesterday.  By working with MS's tools, I have a higher level of productivity that some pieced together environment.  Is Linux bad?  No.  However, at this time, Linux is not the tool for me and it is not a tool that my customers are paying me to work with at this time. 

Regarding Jerrry's statement about the issue having been around for 6 months.  Well, that's not accurate either.  The issue was around for about 2 months, when I called about it.  I had a work around that evening with an updated comsvcs.dll a couple of days later that resolved the problem.  I was pleased with the support I got from MS on that issue.

Wally

6 Comments

  • I think his point,rambling as it is, was that with the Open Source model you wouldn't have had to waited for the fix at all.



    I don't think that's a valid model for something as important to Microsoft as the Microsoft kernal or system level resources, but for the .NET Framework I don't see any reason why it isn't "shared source"? Rotor is to a certain extent.



    If a certain functionality is missing from something as trivial as a web control, it's easy enough to inherit from the control and write your own control with the functionality in it. With some of the encoding bugs with the XML serializer, it's not so easy. It would be nice to be able to fix those sorts of bugs. You client WOULD pay you to fix those bugs if the bugs were preventing you from finishing their solution.

  • I'm going to clarify - I was talking about bugs in development tools. I agree that your customers are not going to be very happy with you patching their kernels. I was talking about your ability to fix the tools you're using to code and to a certain degree the frameworks you're using.



    Of course with the move towards services you have complete control over the environment your code runs in so if your app needs the underlying system to work the way it should you can easily go ahead and fix it.

  • Yeah, I think the problem is at what level in the solution should the client be expected to pay for a solution. I don't believe the client should pay me to fix problems in the kernel or the dev tools. A work around regarding a problem at a higher level? Yeah, I think you are right.



    Another problem with Linux also involves many of the cryptic configurations that must be done. I want to install stuff and have it work. I don't want to go through too much of a hunt for a config file to modify to get the basics working. I find that so frustrating that many times, I just give up. It is hard to get anyone to answer those types of questions in the Linux community because they are concentrating on building the kernel. The result is we either sink, swim, or switch to something that does work. That's one of the reasons why I switch to Windows from Unix. Anyway, enough on this topic. Back to work.........



    Wally

  • Jerry,



    That's my point. I don't want to fix the the development tools. I want someone else to be responsible for that. I want the vendor to create, package, and support the development tool. I don't want to download some stuff to a directory, set a bunch of config files and try and get things to work. I want to run setup and have my development tools just work. Having to go and figure out why something doesn't work because of some config file is very frustrating and one of the reasons why I gave up on Unix. Nothing ever worked out of the box, it always had to be configured in several different config files. Windows isn't perfect, but it is a better environment to develop in than just about anywhere else.



    Wally

  • You can pay someone to fix your tools (or code) even with open source. But if you can't somebody willing to do that you can always do it yourself, while with Microsoft you're left at their mercy (and they're not really willing to fix VS or the framework, although they do a pretty good job with Windows and Office for example).



    And as many pointed out - with OSS you can almost always searcha bug database instead of spending endless hours trying to fix something that's not broken on your end. Windows is not better environment to develop in, it's just simpler if you do simple things.



    Oh and arguing with Unix - I'm talking about open source development, Unix is the oposite end. And while you might be right about most things not working out of the box (the vast majority of open source code never gets past alpha stage) those projects that do make it work quite well (did you try to use Eclipse? You unzip and go, no need to even install anything and if only someone wrote a C#/.Net/Asp.Net plugin for it).

  • Frans,



    Finding solutions to problems is fairly easy in the MS world. I have only had to call MS for development support twice. Both times, it ended up being a bug in their software. One was for Host Integration Server and the other was for COM+, which I have mentioned already. I think that MS makes it pretty easy to find solutions. Of course, if you think that there is only one way to skin a cat, then you are going to have problems.



    As for frustration, I have had 100 times more frustration in the Linux/Unix world. I found that nothing ever worked off the bat in that Linux/Unix world.



    Wally

Comments have been disabled for this content.