any Linux/open source programmers out there?

Please, not looking for a religious debate. Also all I really am concerned with is the corporate/enterprise space. I will say upfront given where I work and how some of my money is invested, I would prefer to see Linux remain the cult thing it is now. And I would rather not go into details of my job or my investments. That said, if Linux is really the greatest thing since sliced bread, I want to understand it better. Perhaps my company needs to embrace Linux more.

I just finished the Business and Economics of Linux and Open Source by Martin Fink. He is in charge of Linux/open source for HP, so hardly unbiased. I get the impression that the planets have toperfectly align on one side of the solar system to actually realize the kinds of “synergy” and “advantages” that he writes about.

I’d really like the opinion of some Linux/open source programmers (I’ll just write Linux from now on but I mean Linux/open source). What got you started on Linux programming? What kind of Linux communities are you part of? How easy/difficult is it to get bug fixes or influence development in the way you want? If your company has a Linux issue, guesstimate of how long it takes to get resolved. How much time do you spend per week on LInux? How far up community hierarchies are you? Have you done any Linux programming for commercial products? Did you do the programming on your own or did/does your company allow you to spend work hours on Linux? Or does your company fund Linux related projects?

My biggest issues around Linux is that it “seems” that to gain all the synergies, my company would have to invest some serious resources integrating with various developer communities with no guarantee that those communities would help out our agenda. It just doesn’t seem that cost/effective or else the risk is high. So, I’m really curious to hear from those Linux programmers that volunteer their time on commercial projects.

My company uses Linux and open source software, but our product is not open source. The primary reasons for going with Linux are 1) it really lets you get under the hood to tweak things. And 2) no monetary licensing issues.
Same deal for the other open-source software we use.

One of those advantages you mention is probably the ready availability of patches and new functionality. When something becomes an issue, it’s fixed very quickly, and we’re up to date within a very short time.

As far as trying to leverage the open source community to provide functionality specifically for your company, that’s probably not going to happen. New functionality comes into an open source project when someone who uses it wants that functionality. That’d be your company. Take the existing project, add what you need, and release it back (assuming GPL license, BSD is a bit more accomodating).

One example of this is Mozilla. We use it for our system, we have the source and the ability to modify it however we need/want. We may be releasing some minor plugins/patches what have you, since we had to create them for our product. If we’d had to rely on a closed source browser implementing the necessary changes, it’d just never happen.

My company is using open source with portions of the software (the important bits that no one has done) staying proprietary.

Its been very good so far. For example: We created out own touchscreen controller. The driver for the Linux kernel was simple, and adding this driver to Xfree86/TinyX was easy.

In short, I was able to put togethr and embedded system with 0 budget, with 100% of the source, and with all the functionality of something like, Windows CE, with a small amount of extra effort and without having to deal with Microsoft.

One of the thing that worries some people is the idea that everyone has to make all their software open source. This is not true. If you want to write software or port software from other platforms, as long as you don’t go pulling GPLed software into your software, you’re OK.

My company uses a number of free/open source products incudling FreeBSD, Apache, MySQL, Perl, Ruby, CVS and mod_perl. The advantages are:

  1. We don’t have to pay anything. All this stuff is free. We have more than three thousand servers, and we pay no site or per-installation license fees. All the expertise to maintain it is in-house, so we don’t have any support or maintenance contracts.

  2. We can tinker. We’ve made extensive modifications to the source of Apache to get it to do some cool stuff that we like. We’ve also done some weird dynamic-DNS things by altering BIND.

  3. We can easily try out several different solutions without any upfront cost.

  4. BSD has been around for decades - it’s a time-tested and rock-solid base for an operating system.

We also do have some proprietary stuff that runs on Solaris, Oracle and Linux, and even (gasp!) Windows NT. In those instances we found the proprietary solutions were simply easier to deal with than an open source one, or no open source solution was available.

We develop a lot of software which is used internally, but don’t release anything publicly. Since we don’t distribute our modifications to GPLed code, we don’t have to release them, either.

I’ve found that the support infrastructure that exists in the open source community is generally superb, especially for very commonly used apps like Apache and Perl. In turn, I’m happy to help newbies and share strategies that I have used for tackling problems with other people (some of whom may even be working for our competitors. :eek: )

And, (totally IMHO) programming in Perl is simply fun. Much more relaxing than writing Java. :smiley:

thanks for the feedback. interesting

Freido, any ballpark on how many people you have to have to support in house?

Have you done any total cost of ownership studies? You know, factor in the programming time, support, training, hardware, etc versus an off the shelf program where you pay license.

I don’t have the specific numbers available (I’m just a low-level grunt) but most of the stuff I work on are batch-processing type things that don’t really have any users per se (just people who look at the end result.)

As for training, very little is required, since none of the technology we use is very specialized and we ensure that the people we hire are already familiar with it. The non-programmers/tech people all use Windows machines with your typical MS software – it’s just our service that relies mostly on then open source software.

Regarding off-the-shelf programs: While some of what we do might be cheaper with one, all of our in-house software is very intertwined at a lot of levels. Part of the reason we decided to do a lot of our stuff in house is because we wanted dozens of subsystems to work together in a very specific way, something that is essentially impossible unless you do it yourself. So we end up developing one very specific program for a very specific task, instead of purchasing a very general program that’s not very good at the specific task we need to do.

Because of the nature of our service, we are constantly modifying the software we have written and constantly writing new apps and extensions to exising ones, and it all needs to be done very quickly. So I’m pretty convinced it’s far more efficient to have a large programming staff on-site instead of relying on third party vendors or contractors.

Oh, and to clarify a point in my original post, we’re not open source zealots either. If a proprietary solution exists that does what we want and is cheaper or better than anything we can invent or bodge together, we’ll use it.

Those instances are rare, though.

I’m currently studying in software engineering (coop program). All my internships have been related to my ability to work in an GNU/Linux environment (I’m talking about g++, perl, make, vi, X and everything you’ll find on any Linux distribution…).

My first internship was as a unix administrator (and some perl/sh scripting) where our workstations were in Linux and the servers were Linux and Sun/Solaris.

My second internship was as a software developer for a robot submarine (embedded software on QNX). Again, using GPL tools (QNX6 has a mostly GNU environment).

My next internship is in Japan (if the work visa comes thru!) for a cellular phone content company using TCL (neato and mature scripting language) with Linux servers. So yes, Linux/OpenSource software is used is commercially out there…

I also did some Linux sysadmin/embedded development for a (student project this time) robot submarine.

As you can see, the big advantage with learning/using OpenSource is that it scales well to any size (from embedded to Sun servers with clusters if you want).

Once I graduate, I’d like to get a job in Taiwan to learn Mandarin and afterwards, I’d really would be interested in being involved in the 2008 Beijing olympics (which are rumored to be using Linux only software). So I’m not too worried about my personal ROI on Linux ;).

Strangely, I generally find it much easier to find free help and references on Linux/OpenSource than other development environment. And if you are ready to put money in, you can easily get access to the people who WROTE the software you used instead of a low-level techie - something I would find extremely attractive if I had my own business. Need a specific feature not available anywhere? Then send the money saved from the licensing to the developers to get it pronto!

On the other hand, you really need to appreciate the Unix environment (command-line, piping, scripting, etc) and that requires a pretty big initial investment. :slight_smile:

On preview; I’m not a zealot either (I was, but not anymore). I like having a Windows desktop for example, but I prefer doing software development with Linux and/or OpenSource tools because it is more practical for me.

Just as an aside, you might consider learning Mandarin in China. Taipei is a great place to learn Mandarin (I spent a couple of years there), but China has a huge programming community and being on the ground here really helps. If you speak Japanese, look into Harbin. There are multiple development centers being put in there by multinationals to do offshore programming for Japan and a lesser extent China. I’ve got to go check it out in the next month or two. Harbin is really a pleasant place and the Mandarin spoken there is not too bad. The downside of trying to learn Mandarin in China is that not many places speak Mandarin as their native tounge.

IMO, the best thing is that practically everything is free on linux. We use g++ to compile, ACE/TAO for the Corba implementation, Xerces C++ to parse XML, vim/nedit for editing, OpenMotif for GUI, gdb for debugging (though we recently bought totalview debugger because it is an excellent product and actually better than the free ones we tried). I know there’s also free version control software, but we use a commercial product for that (though I’m not all that impressed with it).

I like the idea of knowing if there was ever a problem with one of the products, it wouldn’t be necessary to wait for a fix, we could do it ourselves.

Thanks for the tips China Guy! Harbin does sound interesting, since they had cultural exchanges with Montreal for a long time (Harbin Ice and Light show was popular here) - I think they share similar climate (freezing :D). Taiwan is first choice because my wife is Taiwanese (and also a future software engineer), althought it will depend on what is the most exciting opportunity when we graduate.

To get back on the subject, this reminded me of something very important; if you are to deploy a software that will perhaps last for 10-20 years (think about the banks Cobol apps that caused so much troubles…), the ability to do your own support is extremely important. Closed-source companies have a vested interest to sell you new versions every year so sometimes, software won’t have time to “mature” before support is dropped (that is, if they don’t go bankrupt first!).

In the OpenSource world, some things have their roots in software written 10-15 years ago running concurrently with the cutting edge software found in the Linux distributions (for example)… You also get multiple, competing sources of support.

Any one have a ballpark on the kind of programming resources needed to create and maintain a project on Linux versus an off-the-shelf. Just some ancedotal stories from stuff you’ve been involved in. Thanks