Slashdot Mirror


Moving from Binary Drivers to Open Source?

GerryGilmore asks: "We are a division, specializing in telecommunications equipment, of a very large hardware manufacturer. Our equipment, DSP and PSTN boards, has been supported under Linux through a set of binary driver modules and binary libraries implementing our API set. We are in the process of migrating to a completely open source-based software infrastructure to be more in sync with the rest of the Linux industry. However, not having any real experience with moving from proprietary to an open source model, we wanted to see if the Slashdot crowd has any similar experiences to share: The Good; The Bad; The Ugly; and how best to avoid the most common pitfalls."

2 of 186 comments (clear)

  1. Open source is more than Linux by Anne+Thwacks · · Score: 5, Interesting
    Remember, once the source is in the open, people can port your stuff to *BSD and WindRiver, VXworks, etc.

    This may be really useful for sales, but it may also lead to a serious amount of bug finding!

    Are you really sure you want your device drivers debugged?

    --
    Sent from my ASR33 using ASCII
  2. Re:2 space tab indents? by rohanl · · Score: 5, Interesting
    The problem with using tabs is that although they work fine for indenting code, they do not work well for continuation lines.

    Consider the following simple example, coded with spaces and 2 character indent.
    public class Foo {
    void methodName(int arg1, int arg2,
    int arg3, int arg4) {
    return;
    }
    }
    Now suppose, I had used tabs instead. With 2 character tabs, it would look the same.

    But, someone else who prefers 4 character tabs, opens the source in their editor, and gets:
    public class Foo {
    void methodName(int arg1, int arg2,
    int arg3, int arg4) {
    return;
    }
    }
    If you're going to standardise on using tabs for indentation, you need to distinguish between indentation and alignment and use tabs for indentation and spaces for alignment

    So in my exmaple, you would need to write:
    public class Foo {
    <tab>void methodName(int arg1, int arg2,
    <tab>________________int arg3, int arg4) {
    <tab><tab>return;
    <tab>}
    }
    It's hard enough sometimes to get programmers to follow coding standards where the difference is visible to them, but trying to enforce a mixture of tabs and spaces like this when the editor does not make it easy to differentiate between them is almost impossible.

    It's much easier to just standardise on spaces everywhere.