Slashdot Mirror


Porting Open Source to Minor Platforms is Harmful

Tamerlan writes "Ulrich Drepper posted a blog entry titled "Dictatorship of Minorities". He argues that open source projects' attempts to support non-mainstream (read "non-Linux") operating systems slow down development and testing. While Ulrich may be biased (he is a RedHat employee) he has the point: if you ever read mailing list of any large open source project, you know that significant piece of traffic is about platform-specific bugs or a new release broken on some exotic platform."

111 of 709 comments (clear)

  1. Adverse Affect For Me by geomon · · Score: 3, Interesting

    But I agree with the opinion if, as a developer and/or integrator, you are attempting to reach a mass market. Red Hat, then SuSE and others have abandoned the Sparc platform awhile ago. I bought an old Ultra 1 and am now limited to a few distros to keep my Sparc machine up to date.

    But it was my understanding that the idea behind open source was to roll your own if your machine was not covered. If I want to keep the Sparc chugging along, I guess I'd better learn to port it myself.

    --
    "Rocky Rococo, at your cervix!"
    1. Re:Adverse Affect For Me by geomon · · Score: 2, Interesting

      What's your motivation for staying with it?

      For the same reason I tried Linux in 1996: interest in alternatives.

      --
      "Rocky Rococo, at your cervix!"
    2. Re:Adverse Affect For Me by darkjedi521 · · Score: 2

      Although one should not rely on security by obsecurity, it helps a bit. I run CVS on netbsd/pmax, WWW on Apache/VMS/Alpha, SMB on Openbsd/Sparc, Firewall on OpenBSD/sparc64. Except for the sparc64, none of these are "popular" platforms - assuming one of the OSS packages has an exploit, the odds of having an exploit that works on OpenVMS is a lot slimmer than a functional exploit for Linux/x86. This is not a production network, but an experimental/historical network of machines I run for fun in my spare time. I try to run the most recent version original OS, with as much GNU tools as needed for functionality/security.

    3. Re:Adverse Affect For Me by ignorant_coward · · Score: 5, Insightful

      why even bother using such old hardware?

      For the same reason Ulrich Drepper is wrong. An Ultra 1 is super cheap, now, and it gives a programmer the chance to test code on a big-endian 64-bit architecture. Are there lines of code with endian dependencies? Are there lines of code that assume 32-bit CPUs?

      The same goes for testing on Linux, as well as NetBSD, Solaris, etc. Does the code really use POSIX intelligently? Is the program abstracted well from the kernel services?

      This whole article is just a Red Hat employee tooting his company's horn. His advice is inappropriate, in that it promotes bad programming, just as Windows fanboys writing to Win32 can shoot themselves in their feet so often.

    4. Re:Adverse Affect For Me by andreyw · · Score: 2, Informative

      Incorrect. If you use the pre-september release (s10_44), then both the Ultra 1 CPU and the Lance chip are supported.

    5. Re:Adverse Affect For Me by andreyw · · Score: 2, Informative

      Very much incorrect. If you use the pre-september release (s10_44), then both the Ultra 1 CPU and the Lance chip are supported.

    6. Re:Adverse Affect For Me by citog · · Score: 5, Insightful

      There are probably a few valid reasons, I think. Here are mine:
      - Not everything requires the latest hardware. Keeping machines running, that are still fully functional (component wise), keeps them out of landfills.
      - Sentimentality, I like the Sun SPARC hardware and want to keep using it. Even for trivial tasks like shell accounts for mates and some types of testing.
      - Diversity is a useful thing of itself, an x86 monoculture can't be good for us long term.

    7. Re:Adverse Affect For Me by R.D.Olivaw · · Score: 3, Insightful

      If he's stuck with one particular release then he 'can't keep his ultra up-to-date'. That's what the original poster said. he doesn't want just an OS or a distro. He wants one that still supports his chip, releases updates to it and so on and so forth.

    8. Re:Adverse Affect For Me by cbr2702 · · Score: 2, Insightful

      While MHz/Watt is not good for old computers, most of the time you don't use anywhere near the full power of a new machine. If a 386 running at 100 Watts and it does what you need, why should you switch to a 350 Watt p4? You'd get better MHz/Watt but more Watts overall.

      --


      This post written under Gentoo-linux with an SCO IP license.
    9. Re:Adverse Affect For Me by budgenator · · Score: 2, Interesting

      x86 hardware is really not the best design (any more)
      Was it ever, at least 6809 - m68k was understandable by mere mortals and had a certain elegance. x86, ( hell even the 4004-8080) has always seemed kludgey, inelegant and incomprehensable.

      --
      Apocalypse Cancelled, Sorry, No Ticket Refunds
  2. Of course by LBArrettAnderson · · Score: 2, Insightful

    Of course it is... And by that logic, developing software at all is harmful - takes time, money, and all the same stuff it takes to port it.

    http://imcommunity.net/cgi-bin/u.cgi?u=38

    1. Re:Of course by Johnny+O · · Score: 5, Insightful

      And this is the logic which most Windoze software manufacturers use to throw at us Linux users. IT is why us Linux users are missing some great software out there.

      So, tell me... In our minority, why on earth would we take that attitude?

      Ulrich is off his rocker.

  3. Question by cyberfunk2 · · Score: 2, Insightful

    Are they referring to Mac OS here ? I highly value the open source ports made to Mac OS X, such as firefox.

    Furthermore, at least on OSX, the Fink project makes many programs OS X buildable, but puts the maintenance onus mostly on the Fink people, not the original authors. Of course this can have it's own problems.

    1. Re:Question by LnxAddct · · Score: 2, Informative

      I don't think they are talking about mac. Hell, this next release of Fedora on June 6th will be the first to support the Mac (most importanty the mac mini). I think this is referring to things like why should Suse or Fedora run on Arm processors? If these distros were targeting them specifically it'd be different, but Fedora and Suse target mainly X86 and X86_64 as far as I know. Why make programmers focus attention on platforms that will rarely be used? I myself am a programmer and find that after the top 3 or 4 platforms being targeted, your efforts on other platforms start to get stretched to the point of diminishing returns. It eventually cuts into you're regular work and I think it really does affect code quality. I look at it kind of like code optimization, 10% of a program in many cases will be used 90% of the time, and supporting platforms with little use or popularity usually wind up using up a large percentage of your time in testing and debugging. Please note that I'm not saying platform diversity is bad, it is indeed a good thing and very important and that is why its nice that some open source projects such as NetBSD target every platform under the sun. For best code quality though, its *usually* best to stick to as few platforms as possible. (Note: NetBSD does a surprisingly good job of keeping acceptable code quality while retaining support for many platforms)
      Regards,
      Steve

  4. Java? by Lingur · · Score: 2, Funny

    Wasn't Java supposed to solve this problem? I was under the impression that you could run Java apps on any platform (albeit slowly) without worrying about compatability?

    1. Re:Java? by Anonymous Coward · · Score: 5, Funny

      Yeah - Sorry about that, our bad.

      -- Sun Microsystems

    2. Re:Java? by Anonymous Coward · · Score: 5, Funny

      Obligatory Zawinski paraphrase:
      Some people, when confronted with a problem, think "I know, I'll use Java." Now they have two problems.

    3. Re:Java? by kaffiene · · Score: 3, Insightful

      Java DOES solve that problem. The linux crowd by and large won't use it because it's not quite their flavour of 'free'.

    4. Re:Java? by TuataraShoes · · Score: 2, Interesting

      More specifically, the VIRTUAL MACHINE architecture addresses this problem. The .NET/Mono framework is another stab.

      I suspect that we have not yet seen the VM architecture in its full maturity.

      --
      Surely in vain the net is spread in the sight of any bird -- Proverbs 1:17
    5. Re:Java? by Cajal · · Score: 2, Informative
      Java is available for:
      • 32-bit Windows
      • 64-bit Windows (as a RC)
      • 32-bit Linux x86
      • 64-bit Linux x86
      • 32-bit Solaris x86
      • 32-bit Solaris SPARC
      • 64-bit Solaris x86
      • 64-bit Solaris SPARC
      • 32-bit AIX POWER
      • 64-bit AIX POWER
      • 31-bit z/OS
      • 64-bit z/OS
      • 32-bit i5/OS POWER
      • 64-bit i5/OS POWER
      • IRIX
      • OpenVMS Alpha
      • OpenVMS IA64
      • Tru64
      • HP-UX PA-RISC
      • HP-UX IA64
      Is that enough platforms for you? No, it doesn't cover everything, but there certainly are a lot there.
  5. Debian by 3770 · · Score: 2, Insightful


    I'm a fan of Debian, but I think that Debians effort to support the myriad of architectures out there is hurting it.

    It does a great service to the rest of the Linux community though, because it helps keep things portable.

    But having a requirement that something work on a large number of platforms slows down the release cycle.

    --
    The Internet is full. Go Away!!!
  6. The OpenBSD project doesn't seem to agree. by EbNo · · Score: 5, Insightful

    There are many instances where OpenBSD developers indicated that a bug found in one port led to discovery of problems that affected several other platforms. It seems in this case that multiplatform support is beneficial, and the larger the number of platforms, the greater the likelihood that such bugs will be found and fixed.

    1. Re:The OpenBSD project doesn't seem to agree. by quelrods · · Score: 4, Insightful

      I was about to make a similar remark but thank you for stating it! While some code may "work" in one place this by no means makes it bug free. There are many instances of bad code working but sheer luck and only under a specific arch/platform. By ensuring code works under multiple architectures you will help eradicate bugs that may be exploitable. For example when a program seg faults repeatadly under OpenBSD I know that the program in question is not managing memory correctly. (OpenBSD with its memory protection refuses to allow reads/writes to illegal addresses that on other platforms could have resulted in exploitable holes.) While I have written many a fix for such programs it is nice to easily identify which programs/developers have a clue and which do not.

      --
      :(){ :|:&};:
    2. Re:The OpenBSD project doesn't seem to agree. by AaronW · · Score: 3, Insightful

      I have found this to be the case numerous times when working on KDE for Solaris. I've found numerous bugs, a few endian specific that were not specific to just Solaris. Supporting multiple similar platforms can be a good thing in terms of finding bugs. Some bugs will show up much more frequently on different platforms due to differences in things like memory managers or even how some APIs are implemented.

      --
      This post is encrypted twice with ROT-13. Documenting or attempting to crack this encryption is illegal.
    3. Re:The OpenBSD project doesn't seem to agree. by Arker · · Score: 4, Insightful

      Indeed.

      Now, to be fair, I have to concede the man does have a point. Supporting several configuration options and several platforms increases complexity, if your goal is simply to get the thing running and marketable.

      At the same time, though, dealing with that increased complexity can give a project the impetus it needs to clean up spaghetti code that 'just runs' and replace it with more auditable and correct code, which is really a gain in the long run. Assuming, of course, your goal is to write good software - not just to write 'good enough' software and get it out the door in line with a deadline from marketing.

      --
      =-=-=-=-=-=-=-=-=-=-=-=-=-=-
      Friends don't let friends enable ecmascript.
    4. Re:The OpenBSD project doesn't seem to agree. by Seumas · · Score: 2, Interesting

      Well, by his logic, you should only develop for Microsoft, because Unix/Linux/Mac and everything else has only a minor overall deployment rate.

      Just sounds to me like someone's a little greedy, because it only hampers the main platform (if it even does that). But, in the process, it raises these other platforms. This gives more variety, choice, options... all really obvious things.

  7. OpenOffice is a Gateway Drug... by Chordonblue · · Score: 4, Insightful

    I'm not sure I totally agree with this article - at least as far as Windows porting is concerned. Programs like OOo are gaining acceptance in the Windows world and that foothold has led my own organization to 'embrace and extend' that success. For instance, for the first time we will be purchasing Apples - running NeoOffice of course - and we already have a few Linux terminals here for public use.

    I like to think of OSS/GPL stuff as a 'gateway drug' - to use an analogy. Using it may not automatically make people go to Linux, but it certainly makes it an increasing possibility.

    --
    "...Well, there's egg and bacon; egg sausage and bacon; egg and spam; egg bacon and spam; egg bacon sausage and spam..."
    1. Re:OpenOffice is a Gateway Drug... by quelrods · · Score: 3, Insightful

      I completely agree that OSS propogates through the gateway drug phenomenom. Originally everyone tried the RMS 100% free approach but that lead to no acceptance outside of the geeks. As programs like firefox, gaim, OO, etc. become popular on windows we erode the closed source based until familiarity with OSS apps makes the switch of the underlying OS trivial and unoticable.

      --
      :(){ :|:&};:
    2. Re:OpenOffice is a Gateway Drug... by rob_squared · · Score: 2, Interesting

      I tried linux, backed away once. I tried firefox and thunderbird and loved them. I know use Mepis with firefox/abiword/thunderbird because I became comfortable with them. It's a "taste" that gets you. Why do you think they give free samples of cheese at supermarkets?

      --
      I don't get it.
  8. Both sides are right, I think. by Dancin_Santa · · Score: 3, Insightful

    First off, everyone will complain about this. The thinking goes that Open Source == Freedom, so the more choice in platforms you have, the more Freedom you have and thusly you actually help Open Source more.

    I think this is incorrect.

    First off, Open Source, despite its close engagement with Freedom ought to also stand for what is best in the Software Engineering world. This means clean, lightweight, portable code. For better or worse there is a standard which is POSIX. Linux, to the extent that it uses the GNU system, is basically POSIX-compliant. Open Source projects ought to target POSIX and keep themselves free of proprietary entanglements.

    This can be achieved by focusing efforts on programming for Linux, the premier Open Source operating system. Only by keeping the code clean can a project be easily ported, but a project that isn't even near completion ought not be ported at all. Such non-mainline work results in incompatibilities and divergences from the main trunk of code that cannot be easily fixed down the road.

    A very good example is the Symbian/Nokia gcc compiler which has many special extensions and cannot be used to compile for any other targets or operating systems. Well, they are doing away with their special version of the compiler and finally going back to the main line gcc tree. Unfortunately, all that work to specialize gcc for their platform is tossed out the window now. Work to no avail, essentially.

    The key here is not to focus on Linux, specifically. Rather, it is to focus on a standard and program to that. That Linux is one of the best of the standard bearers, it makes sense to complete programming there first rather than start porting to esoteric platforms right away.

    1. Re:Both sides are right, I think. by Smallpond · · Score: 2, Interesting

      That's what this whole argument is about. To incorporate the platform-specific switches in the main gcc code, for example, would slow down every future gcc release to test on symbian/nokia. The alternative is to keep gcc simple(r) and let the minor platform (symbian in this case) use their own branch. There's something to be said for either approach.

      If you slow down development to cover a broader set of platforms then you will be late with the latest new buzzword features (hyperthreaded keyboard support!). On the other hand, who gets to decide what counts as a minor platform? Do you decide based on age? (sorry, Amiga is too old) or based on number of units? (sorry, not enough IBM mainframes out there) or just interest level of the developers? Anything that you abandon is going to cause big problems to someone.

  9. NetBSD? by Bananatree3 · · Score: 4, Interesting

    The development of netBSD to over 40 different platforms has brought a lot of good development to many different platforms that would have been dominated by mono-operating systems. A good instance is the handheld devices platforms (HPC,Palm PC, etc.), which would otherwise be dominated by Windows CE (except for the few Linux Palm PC's, but majority are WinCE). The development of netBSD for the majority of platforms has reached great maturity, and it is still developing well.

  10. I call bad c code by quelrods · · Score: 4, Insightful

    Overall the arguement is mostly bogus. For example many linux developers have trouble writing code that even compiles under any of the *bsds. That is just sloppy coding. If everyone got in the habbit of at least writing code that doesn't use system specific includes (linux developers seem the worst at this) and compiled with gcc -strict -Wall or something similar it wouldn't be much of any issue. While I can see that a request to make something work on OpenBSD VAX might be better ignored I fail to see how supporting at the very least linux/*bsd (Open, Net, Free) on ppc, sparc, sparc64, and x86 is supporting a minority. Overall OSS users/developers ARE a minority and to argue over which minority beats who is silly. Also, to only bother to support linux is no better than only bothering to support windows!

    --
    :(){ :|:&};:
    1. Re:I call bad c code by TCM · · Score: 5, Interesting

      Very good point. Supporting minority platforms is only troublesome if your code is riddled with i386isms and lazy coding practices. If you do it right the first time with always portability in mind, not only will you get cleaner and more maintainable code, you also get the ability to run just anywhere as a bonus. My prime example as usual is NetBSD.

      It's sad that whenever you build some GNU sources or the latest Linux app du jour you get tons of warnings. Some projects even compile their files with 2>&1 >/dev/null. How sad is that?

      It's not just the Linux folks. OpenSSL is actually worrying me: /x/s.NetBSD.netbsd-3/crypto/dist/openssl/crypto/de s/fcrypt_b.c /x/s.NetBSD.netbsd-3/crypto/dist/openssl/crypto/de s/fcrypt_b.c(85): warning: pointer casts may be troublesome [247] /x/s.NetBSD.netbsd-3/crypto/dist/openssl/crypto/de s/fcrypt_b.c(94): warning: pointer casts may be troublesome [247] /x/s.NetBSD.netbsd-3/crypto/dist/openssl/crypto/de s/fcrypt_b.c(111): warning: bitwise operation on signed value possibly nonportable [117] /x/s.NetBSD.netbsd-3/crypto/dist/openssl/crypto/de s/fcrypt_b.c(111): warning: possible pointer alignment problem [135] /x/s.NetBSD.netbsd-3/crypto/dist/openssl/crypto/de s/fcrypt_b.c(111): warning: pointer casts may be troublesome [247] /x/s.NetBSD.netbsd-3/crypto/dist/openssl/crypto/de s/fcrypt_b.c(111): warning: possible pointer alignment problem [135] /x/s.NetBSD.netbsd-3/crypto/dist/openssl/crypto/de s/fcrypt_b.c(111): warning: pointer casts may be troublesome [247] /x/s.NetBSD.netbsd-3/crypto/dist/openssl/crypto/de s/fcrypt_b.c(111): warning: possible pointer alignment problem [135] /x/s.NetBSD.netbsd-3/crypto/dist/openssl/crypto/de s/fcrypt_b.c(111): warning: pointer casts may be troublesome [247] /x/s.NetBSD.netbsd-3/crypto/dist/openssl/crypto/de s/fcrypt_b.c(111): warning: possible pointer alignment problem [135] /x/s.NetBSD.netbsd-3/crypto/dist/openssl/crypto/de s/fcrypt_b.c(111): warning: pointer casts may be troublesome [247] /x/s.NetBSD.netbsd-3/crypto/dist/openssl/crypto/de s/fcrypt_b.c(111): warning: bitwise operation on signed value possibly nonportable [117]

      etc. etc.

      And this in a project that's driving quite an amount of sites, authentication mechanism and what not?

      Most if not all of the sources that are native to NetBSD, i.e. not imported like OpenSSL and GCC compile without any warning. You automatically get a good feeling about using it.

      Something needs to change in coding land.

      </rant>

      --
      Of course it runs NetBSD. BTC: 1NT7QvbetmANwaMzhpVL6
  11. Minorities make life so ... complicated ... by dist_morph · · Score: 5, Funny

    Let's just eradicate them once and for all. A homogenous Linux monoculture will be easier to maintain and be to the benefit of all of us.

  12. No... by AAeyers · · Score: 2, Insightful

    Porting Open Source to Minor Platforms is Harmful

    I would say that an article about someone's blog entry on the front page is harmful.

    --
    "For Great Justice."
  13. platform-specific bugs? Doubtful by pedantic+bore · · Score: 5, Insightful
    Most of the bugs that I've seen that are "platform-specific" are not actually due to bugs in that platform -- they're just ordinary bugs that were there all along, unnoticed due to poor assumptions. (Back in my day, we called this the "all the world's a VAX" assumption -- now it's the "all the world's x86") Finding these bugs and removing them make the code better.

    The bugs due to platform bugs -- well, knowing about them helps improve the platform.

    If you think fixing these bugs is a pain in the neck, fine. If you think it's a waste of time, however, think again.

    --
    Am I part of the core demographic for Swedish Fish?
  14. Fine until some future bug bites you in the ass... by forkazoo · · Score: 5, Insightful

    Keeping your code portable helps eliminate stupid assumptions, which make your software useless when the dominant platform changes. Once, all the world was a VAX, and people did stupid things. Then, the world changed. They kept doing stupid things.

    Think, for example, about 64 bit cleanliness. A piece of software which supported Alpha, UltraSPARC64 and SGI's MIPS64, and so on, wouold have been fairly trivial to port to IA64, and AMD64, and PPC64 when they started to become significant. OTOH, code which assumed it was running on a 386 would have been a pain in the ass to port to even just AMD64.

    Also, by supporting a broad spectrum of compilers, you will probably be able to understand what is going wrong when you compiler of choice changes. Witness code breakage on gcc3. Devs who had already ported their software to a variety of compilers were better able to respond to any issues, and fix their code.

    Many monoculturalists make stupid endian-ness assumptions. Now, Mac OS X is becoming a significant market. If you have stupid endian-ness assumptions, then you may wind up having to basically rewrite in order to gain access to those millions of potential customers/users.

    Imagine if OpenGL only supported SGI and 386. Or libtiff only worked on i386. People just wouldn't use them. Things like that get used because they are ubiquitous, and you can build them anywhere.

  15. Sounds like a Microsoft-ism by amigabill · · Score: 2, Interesting

    Doesn't that sound like something MS would say? Don't waste your resources developing for small-time operating system like Linux or Mac when only the large market platform, ie. MS, is feasible for reaching your feature goals in a timely manner?

    Come on. While this is an excuse for a proprietary for-profic product with a small team, I don't see this as flying as well in open source land. If some guy wants to port Firefox or OpenOffice to something off the wall like AROS or some other nearly unknown platform, let him. He wouldn't be working on the Windows or Linux ports regardless, so why prevent him from doing something so crazy with his own time and money?

  16. Portable code is robust code by Sinner · · Score: 4, Insightful
    Porting to minor platforms exposes bugs, real bugs, that might not have been found otherwise. It enforces good software engineering practices.

    Of course, you can overdo it. Take a look at InfoZip for example. No, seriously, take a look at it. It works on every platform you can think of, but the price is that the code is almost unreadable. The biggest problem is all the cruft needed to maintain 16-bit compatibility. It desperately needs updating to handle non-ASCII filenames intelligently, but the last thing that code needs is another layer of #ifdef's.

    There comes a time when you just have to say "fuck the Amiga".

    --
    fish and pipes
    1. Re:Portable code is robust code by NoMoreNicksLeft · · Score: 3, Funny

      Tramiel, is that you?

    2. Re:Portable code is robust code by bani · · Score: 2, Insightful

      #ifdefs are a tool like any other. use them when they make sense, when they are the best tool for the job. they are not always the best tool, but "never" (as you imply) is the wrong answer also.

      writing 5 different copies of the same function is often more counterproductive than one with 5 little #ifdefs in it.

      moving code out into separate modules can introduce other problems such as increased effort to keep all the individual architecures coherent -- which increases the risk of bugs creeping in. this approach is often counterproductive.

    3. Re:Portable code is robust code by toby · · Score: 2, Interesting
      the price is that the code is almost unreadable.

      I have seen this phenomenon but it certainly doesn't have to be that way. One of the best kept secrets of having both cleanliness and portability is to eliminate #ifdefs from sources as far as possible. The obvious ideal is to have identical source and abstract platform differences by other means (e.g. macros instead of #ifdefs, and using identical APIs on different platforms, supplying only platform dependent implementations).

      Keeping it clean probably also requires occasional refactoring and I guess some projects shun this as a matter of policy. The projects I would cite that achieve a high level of portability typically have no machine dependent code at all (TeX, for example). Not all code has that luxury but it's not as difficult as many people think - apparently including our friend Drepper.

      --
      you had me at #!
  17. Ummmm . . . by erikharrison · · Score: 4, Insightful

    Sometimes, we use hyperbole to make a point.

    Unfortunately, I don't think that Ulrich is doing that.

    AIX is not a minority platform. What The Fuck. Okay, so the AIX guys are asshats in the way they treat GCC, fine. But GCC's claim to fame is that it it is the cross compiling, multiplatform compiler du jour. I think Ulrich loses a lot of credibility to say that GCC needs to not support AIX because it's a minority platform.

    *nix applications which run primarily in userspace should port to the various BSD's and Linux easily, and if they don't then 99% of the time it's a bug. And in many cases, it's a bug that will affect the working platforms eventually (relying on nonstandard behavior of system calls, linker oddities, assumptions about file placement, etc). And if a closed Unix platform has paid developers to assist in the porting, then it should run on that platform too. And if the paid devs are dickbrains, then a good project leader should say so. Behave, or fork and get your whining ass out of my tree.

    These AIX GCC guys shouldn't be saying "This patch breaks AIX, kill it", they should be saying "This patch fixes *blank* on AIX", at least most of the time.

    1. Re:Ummmm . . . by dvdeug · · Score: 2, Interesting

      Okay, so the AIX guys are asshats in the way they treat GCC, fine

      I've watched the GCC list; David Edelsohn has consistently worked with the other people on the list. He takes the time to work out a solution to the AIX problems. OTOH, when Ulrich Drepper thinks something is broken on GNU/Linux, he will fight tooth and nail for the solution he thinks is right, as long as it doesn't mean that he has to clearly explain why his solution is right.

    2. Re:Ummmm . . . by edx0r · · Score: 2, Interesting

      After I read "AIX is irrelavant," I read a little further, hoping to find the necessary justification for such a statement. When I didn't find it, I stopped reading. I appreciate the point he's trying to make, but randomly firing shots across IBM's bow doesn't so much aid his argument as reveal a gross personal bias. That said, perhaps GCC doesn't need to support AIX, when much better alternatives (VAC/XLC) exist. Anyone who can pony up the dough for a nice POWER box can probably ought to pitch for a good compiler too. :) Even in Linux, XLC will run circles around GCC. But then, that all goes back to the question of GCC's purpose in life . . . broad support, or good performance. I'm not convinced you can have both, and I don't think there's any real middleground between them.

  18. He's crazy. by mellon · · Score: 2, Insightful

    Porting reveals bugs. It also forces you to rethink short-sighted decisions. Furthermore, most of the problems I run into with porting have to do with cross-version incompatibility on Linux - the BSDs actually have comparitively stable APIs.

    This line of thinking is a lot like how I presume Microsoft thinks of things: if we just port to this one API, it doesn't matter how bletcherous it is. But as Microsoft has discovered, this kind of thinking actually turns into a straitjacket, which prevents them from being responsive when they need to be.

  19. get some perspective by ArbitraryConstant · · Score: 4, Insightful

    "IMO the most notorious case is how the gcc development is held hostage by Edelsohn and maybe IBM as a whole by requesting that everything always works perfectly well on AIX. How often has one seen "this patch breaks AIX, back it out". It cannot reasonably be expected that everybody tests on AIX. It is an proprietary OS running on proprietary and expensive hardware which not many people have access to. The overall development speed could be significantly improved by dropping the AIX requirement which, in some form or another, has been agreed upon by the steering committee. AIX is irrelevant in general today, i.e., the situation changed. And the people in the steering committee are too nice to just tell the very small minority causing the problem to take a hike."

    GCC is the de facto standard because it runs on more platforms than anybody else.

    If it ceases to run on all these platforms, it will either:
    a) fork a project that will support them
    b) another compiler will take its place as the de facto standard
    c) people will be forced to use whatever the default cc is on their OS.

    In any of these cases, the portability concerns will get an order of magnitude worse.

    --
    I rarely criticize things I don't care about.
  20. I categorically disagree. by bani · · Score: 5, Insightful

    Porting to other platforms/architectures often reveals bugs in your primary target platform. it is often worth the effort to port to other platforms on this basis alone.

    also, if it takes you a lot of effort to keep architecture-nimble, there is something fundamentally wrong with your design. this in itself should be a warning.

    But there is no benefit at all in supporting something like PA Risc, m68k, cris, etc as configurations of the generic code.

    ulrich obviously has no clue whatsoever about embedded systems, and should therefore stfu on this point. one of the most popular embedded platforms is a 68k variant (coldfire) -- it's probably second behind ARM. by dumping support of 68k you castrate linux in the embedded marketplace. there's much more to 68k linux than sun3 and atari/amiga.

    his rant against mingw as "undeserving" is stupid. mingw is an enabler -- it means people can develop for win32 without having to pay microsoft $$$$ for the privilege of doing so.

    his 'dictatorship of the minorities' argument is actually self-defeating on this point because microsoft users are in the majority. by his own arguments, we should be concentrating on supporting win32 as the primary target for gcc and primary architecture for linux.

    utterly ridiculous.

    bug-eyed rants like his just serve to reinforce the stereotype that all open source advocates are completely unhinged. it is not helpful in the least.

  21. Re:Try a VM by mellon · · Score: 4, Insightful

    Spoken like someone who's probably never tried running their JVM-based GUI application on a new platform. Java cross-platform compatibility is a nice idea in theory, but in practice you wind up having to test everywhere and tweak your code when you run into differences in GUI implementations, so it's definitely not write-once, run everywhere. A more complete API specification would help here, but if wishes were horses, there'd be a lot of poo on the road.

  22. Re:Try a VM by quelrods · · Score: 2, Insightful

    Except that java is one of the most non-portable solutions ever. Sun java runs on exactly: windows x86, windows ia64, linux x86, linux ia64, solaris sparc32, and solaris sparc64. Some decently written C code easily runs on more systems that that while only requiring a compile. Java is only in theory portable. Unless sun opens the jvm it will never be fully portable.

    --
    :(){ :|:&};:
  23. I don't agree either by toby · · Score: 2, Insightful
    In my experience, porting is like the water of a river washing over river stones. Over time, every port makes the stone smoother. This applies whether it's a new architecture, O/S, compiler, or even just the unfamiliar box of some other user.

    There are bugs that just don't get flushed out until you port to: non-x86; 64-bit; bigendian; Win32; OS X; etc, etc, etc. Drepper should know better: All the world's not a VAX, etc. (though a VAX port is a fine start :-)

    Also, every port makes the process of porting itself easier. It's no coincidence that the most reliable and defect-free software is typically the most-ported software. This has always been true: TeX and METAFONT (where the monetary bug bounty doubled for every bug report, so assured was Knuth of its quality); Apache; Linux itself; NetBSD; GCC and friends; etc.

    --
    you had me at #!
  24. Hypocritical by Temporal · · Score: 4, Interesting

    If you write your code to be portable in the first place, fixing platform-specific issues should be quick and easy.

    And, of course, you write your code to be portable because you make sure it runs on the big three: Windows, Mac OSX, and Linux.

    Right?

    Actually, I think a much larger problem is just that: Many OSS developers don't even try to support Windows. Yes, I know you hate the OS and don't want to support Microsoft, etc., etc.. But, how can you complain about major software not supporting Linux when you're writing your own software that doesn't support Windows? Isn't that entirely hypocritical?

    My take: Port your software to every platform you can, especially Windows. This gives freedom of OS to your users. And if you're a Linux user yourself, you should understand just how valuable and important this freedom is.

  25. You say that like its a bad thing... by kimanaw · · Score: 2, Insightful
    As someone who has supported multiplatform s/w that's hosted on

    • Win32
    • Linux (various, incl. PPC)
    • Solaris
    • AIX
    • HPUX
    • OS X
    • FreeBSD
    • MVS
    • OS/400
    • multiple other "minor" Un*x platforms
    • a Zaurus
    • a PocketPC
    • some routers running a proprietary kernel

    ...I call BULLSHIT!

    The bugs one finds on "minor" platforms usually end up being bugs on the "major" platforms you just haven't found before. Of course, for those of you still intent on/forced to write code in C/C++, you're likely getting your just desserts.

    --
    007: "Who are you?"
    Pussy: "My name is Pussy Galore."
    007: "I must be dreaming..."
  26. He is wrong on all counts. by bluGill · · Score: 4, Insightful

    It is rare that I can say someone is wrong on all counts, but I have not found one defensible statement in there. (Though I guess one could be hidden and I missed it)

    His first mistake is thinking GNU is everything. Maybe for him it is, but for most people we use what works. When the boss sets me down on a AIX machine I want it to work - I'm not allowed to install Linux (though I'd install *BSD if I could wipe the OS), I'm supposed to get work done.

    Minorities are useful despite the cost of working with them. Bugs that are 1 in a million may happen every time on AIX. 1 in a million bugs are very hard to find. I've spends days looking at a partial crash trace wondering why it broke, and if it will happen again. With no known way to duplicate the bug it is really had to fix, and hard to be sure the 'fix' works. When it fails every time the bug is easy to fix.

    Good programmers should have no problem writing cross platform code. When your code breaks on AIX, it is a sign of bad code - even if the breakage is because AIX doesn't have a function you expect.

    Cross platform compilers (gcc) are much easier for me to work with. Because gcc is cross platform I can compile my stuff at home and debug it, than bring it to work and compile it and assume it works. Particularly with gcc 2.95, the support for C++ was so bad that you could not count on code written for that to work on a better compiler.

    Speaking of gcc 2.95, other vendors have had better compilers for years, while gcc is only arriving. Even today, gcc isn't a great c++ compiler. (though 4.x is much better) There is no point in throwing stones at other vendors - their compilers may have been expensive, but they at least worked close to right.

    The upper/lower case differences with Windows are a non-factor. You should never have any word that differs by case only - it leads to many bugs if you do.

    The API differences on Windows are mostly handled by Cygwin and mingw. Those areas that are different are places where you should have your code modular anyway. Mostly we are talking about device and networking code. IPv6 is on the way (has been for 10 years now...), you need some difference code to support that. There is no standard for device code - what works on OpenBSD won't work on linux, or FreeBSD.

    True almost nobody cares are VAX - but it is interesting anyway. If you code is modular like it should be, then supporting those weird things isn't a big deal - you write you code, and let those are care about it test.

    A short summary: There should be only one OS that anyone runs: RedHat Linux enterprize edition on x86. (not x86-64) Not Fedora core, much less gentoo or those other non-redhat distributions. You FreeBSD people can go to hell.

    He wants to take his ball and go home, I don't care, we are better off without people like him in the open source world.

    1. Re:He is wrong on all counts. by bani · · Score: 3, Informative

      just FYI. mingw doesn't deal with api differences at all. mingw is just a gcc port which can emit win32 PE binaries. a good deal of mingw effort is spent writing free versions of win32 dlls to link against. but they don't abstract or translate APIs -- they're just free implementations of the win32 SDK.

      cygwin does deal with api differences however. it's a completely different beast.

    2. Re:He is wrong on all counts. by cimetmc · · Score: 2, Interesting

      Ulrich Drepper certainly is an important contributer of OSS by being the GLIBC maintainer. However specifically the glibc project is often a huge source of problems because of all the "magic" glibc tries to do in its headers. For the last few version of GCC, all this "magic" actually causes the compiler to produce worse code compared to if the header files would just restrict themselves to define the appropriate macros and prototypes. More than once, the GCC folks have to strugly to get newer versions of GCC to work with older versions glibc because of all the cruft in it.

      I think before criticizing maintainers for other platforms where GCC is ported, he should look at how much special work his own project causes for GCC and see if he can do his own contributions to making GCC development easier by simplifying the glibc headers.

      Marcel

  27. Re:platform-specific bugs? Doubtful by runningduck · · Score: 5, Insightful

    Porting software to different platforms has two distinct benefits:

    1) identifying subtle bugs

    2) preparing software for future platforms

    - Subtle Bugs -
    As stated in the parent post, porting software to various platforms help uncover bugs that may not surface during routine testing in a mono culture.

    - Future Platforms -
    Making software portable prepares software for the future. As computer technology advances, software that has been developed to be portable will be the first code running on the new hardware. I could go on and on about this, but I think the recent articles regarding Intel's Itanium already make this point loud and clear.

    --
    -rd
  28. Porting helps rid software of bugs. by John+Harrison · · Score: 5, Insightful

    As you say, there are examples where porting has helped a project. I know that in porting one of my games to four platforms (Classic Mac OS -> Windows -> Linux -> OS X) has helped eliminate bugs that I never knew were there. Also, I learned things that have made my later projects easier to port since I more able to write them "correctly" to begin with. By avoiding platform specific libraries and techniques I write better code.

    1. Re:Porting helps rid software of bugs. by archeopterix · · Score: 2, Insightful
      As you say, there are examples where porting has helped a project. I know that in porting one of my games to four platforms (Classic Mac OS -> Windows -> Linux -> OS X) has helped eliminate bugs that I never knew were there. Also, I learned things that have made my later projects easier to port since I more able to write them "correctly" to begin with. By avoiding platform specific libraries and techniques I write better code.
      Contrast this with the paragraph below:
      Jon Ross, who wrote the original version of SimCity for Windows 3.x, told me that he accidentally left a bug in SimCity where he read memory that he had just freed. Yep. It worked fine on Windows 3.x, because the memory never went anywhere. Here's the amazing part: On beta versions of Windows 95, SimCity wasn't working in testing. Microsoft tracked down the bug and added specific code to Windows 95 that looks for SimCity. If it finds SimCity running, it runs the memory allocator in a special mode that doesn't free memory right away. That's the kind of obsession with backward compatibility that made people willing to upgrade to Windows 95.
      Your conclusions might vary on the day. Be sure to write down your findings in your notepad.
  29. Re:Try a VM by Rich0 · · Score: 2, Informative

    Clearly you aren't running on amd64. I've given up on running just about anything other than helloworld.java on this platform, using any JDK I can get my hand on (both Blackdown and Sun, stable and beta versions).

    A VM is just another architechture. In theory we could just write everything for x86 and then run emulators on every other platform, and it would be about the same thing.

    The problem is that Java works great as long as you only run it on an x86, or maybe a sparc or a mac. And java apps have their downsides as well.

  30. Re:Sounds like... by pedantic+bore · · Score: 4, Insightful
    Free software should only support free OSes.

    Hypocrite... (software should be free! So I'm holding mine hostage until you release yours!)

    And let's imagine what would happen if the vendors of those proprietary OS's decided to play the same way...

    Say goodbye to NFS, NIS, Rendezvous, Mono. Perhaps Sun would close Java (which would make the conspiracy theorists happy, but nobody else.) Goodbye to the largess of many large vendors (where do you think organizations like FSF get their funding?).

    And that crack about "ideally to one". Linux is a nice OS and all, but believing that it is the one for all purposes from PDAs to supercomputer clusters, data warehousing to real-time control is silly.

    --
    Am I part of the core demographic for Swedish Fish?
  31. Debian's more about leadership attitudes, I think by jesterzog · · Score: 3, Informative

    But having a requirement that something work on a large number of platforms slows down the release cycle.

    I'm not sure that I agree. To me, the Debain delays seems to be at least as much a political and leadership thing. In particular, consider how quickly Debian went into a freeze for a new release after a change in leadership. Granted that it's a week behind schedule, but the green line is now going down rapidly, and we're expecting a new release within a matter of days. If it was so difficult to support and release on multiple architectures, this likely wouldn't have been able to happen.

    I'm not trying to imply that the old Debian leadership was necessarily bad or that the new leadership is particularly good. But a change in attitudes very quickly resulted in a new release. This suggests that support on lots of architectures has little to do with it, whereas leadership attitudes has a lot to do with it.

    We'll have to wait and see just how reliable Debian Sarge turns out to be when it's promoted to stable, of course. (Disclaimer: I run debian sarge on my home workstation and laptop.)

  32. Re:If they only affect exotic platforms it is a wa by pedantic+bore · · Score: 2, Insightful
    assumptions that cover 90% of the users...

    Users don't care about 90% of the users. They care about themselves. Why should they spend money to buy a new PC just because other people can't take the time to think ahead in their designs?

    Also, I hope you don't think 90% is a good cut-off. If you're happy with assumptions that only hold 90% of the time, I sure hope none of your software is running on my system.

    Besides, if you're talking about assumptions that cover "90% of the users", you certainly aren't talking about Linux!

    --
    Am I part of the core demographic for Swedish Fish?
  33. I completely disagree by dyfet · · Score: 4, Insightful
    First, supporting many platforms often reveal interesting and important bugs which can be missed because they do not manifest themselves well or often on the "primary" platform or target architecture most commonly being used.

    Second, platforms are not stagnent. Code that only works on 386 linux may some day have to deal with a x64 only world. Who knows what may happen in the future. Making decisions because you reject portability means you reject the future for your code as well.

    Third, different compilers are very useful for finding less obvious bugs. Ideally this means having a choice beyond gcc, if one is talking about C/C++, for example :). Using a single compiler means bugs your compiler doesn't itself know will likely be retained. Even using different versions of gcc can help. Different compilers often are good at finding completely different sets of bugs in source.

    Finally, pointer/integer size and endian prejudices are evil in C/C++ code. You will find these things very quickly if you spend your whole life exclusivily on i386 and one day try to port to ppc.

  34. Axe to grind by Dan+Berlin · · Score: 5, Informative

    As a GCC developer (bias: I work for IBM Research), the only time i've ever seen David Edelsohn complain about something not working on AIX, it was broken on other significant platforms as well (Cygwin, etc), or was latently buggy and just working by luck.

    Judge for yourself. Go read the gcc list. Count the number of patches backed out in the past year because they broke AIX vs because they broke some other platform.

    It sounds like an unnecessary personal snipe, which, for people who know Uli, well, i won't bother finishing that.

    So if this is the most "notorious case" Ulrich's got, then he's wrong.

    Particularly the "GCC would be developed much faster".
    That is in fact, the funniest thing i've heard all day.

    GCC would be developed faster if there was less sniping and fiefdom's and more collaboration. Which, except for a few people, has been what is generally happening. Our development process is accelerating, not slowing down.

    And It certainly isn't slowed down because people need to bootstrap on AIX, which they don't.

    Nobody has ever required patches be bootstrapped on AIX unless it is very likely to have some material affect on that platform.

    This is just the same requirement we pose for any wide ranging change: Test it by compiling it for the architectures it is likely to break on.

    Note i didn't say running. We don't require anyone have AIX boxen around. Cross compiles work fine.

    Though if you break some architecture, you are expected to at least try to help the maintainer of that arch fix it.

  35. Logic Circuits Concur with OpenBSD's Findings by jd · · Score: 3, Informative
    Sorry, had to do a Blake's 7 Zen impersonation there. Seriously, a well-designed program for Linux should run just as well under any *BSD, or any Unix platform, with little or no modification. POSIX is POSIX, no matter what the label on the box, after all.


    (The only exceptions would be things that use specific Linuxisms, such as some of the Netfilter calls, anything to do with a filesystem that is only available on Linux - XFS, JFS, Lustre for example. The network structures use different variable names, but that's not an excuse as you should be using an abstraction library in those cases.)

    --
    It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
    1. Re:Logic Circuits Concur with OpenBSD's Findings by ComputerSlicer23 · · Score: 2, Informative
      anything to do with a filesystem that is only available on Linux - XFS, JFS, Lustre for example

      You do realize that XFS is a port from SGI's UNIX varient (IRIX I believe). That JFS is ported from OS/2 to Linux (and was originally written for AIX and the s390 Mainframe if I recall the details correctly).

      Lustre might be Linux only. I believe it started out life as a Linux-only project. I believe that ReiserFS is fairly Linux only (I thought they had ports to other OS's, but I can't find anything on there website about it the last time I looked). GFS to the best of my knowledge is a Linux only filesystem. Ext2/3 is primarily a Linux thing (I believe several other *BSD's have the ability to mount them, and a few odd Win32 drivers). Not sure about the other oddities (JFFS,CramFS,RomFS,SquashFS).

      Kirby

  36. it's rare I think someone is *right* on all counts by ArbitraryConstant · · Score: 2, Insightful

    Writing portable code is good for the soul.

    It makes you read the docs. It forces you to use a standard API when byte order is important. It keeps you from hardcoding values (eg sizeof(void*)). It keeps you from making platform dependant optimizations that might not even be supported by the next version of the platform you're on, or if you do it forces you to make them modular.

    It forces you to figure out what behavior you can rely on. Bug compatability with older versions relies on the magnanimity of the maintainer, and cannot be assumed even if you're staying on Linux.

    --
    I rarely criticize things I don't care about.
  37. GCJ isn't yet ready for prime time by tepples · · Score: 2, Informative

    Classpath, the runtime library used by applications compiled with GCJ, isn't nearly as complete as some of us would like. Or have you managed to get, say, Azureus working usably in GCJ?

  38. The title of this article is not correct. by Nailer · · Score: 5, Informative

    Wait a sec...

    Porting Open Source to Minor Platforms is Harmful

    What the fuck? Where'd you get that from? Read Ulrichs post. How about:

    Delaying the development of features because of problems with minority platforms that can't be fixed by the bug reporters is Harmful

    You may disagree, but unlike the title of this article, it does actually cover what Ulrich is talking about.

    1. Re:The title of this article is not correct. by Bert64 · · Score: 2, Insightful

      Support for non-mainstream platforms (alpha, 64bit sparc/mips) and fixing of the associated 64-bit bugs made porting to amd64 a lot less painfull than it would have otherwise...
      Aside from that, support for non mainstream platforms is a major strength of open source, many of these non mainstream platforms are and always have been much better than the mainstream platforms, but they're dying out because of the prevalence of proprietory software which can't be ported to these platforms.

      --
      http://spamdecoy.net - free throwaway anonymous email - avoid spam!
  39. Re:Try a VM by mrchaotica · · Score: 3, Insightful

    No kidding. Lots of Swing Java apps (as opposed to Cocoa Java ones) are horrible on the Mac because they fail to make it act reasonably like a Mac app, whether it uses the Mac "look and feel" or not (not to mention that sometimes they're hardcoded to Java- or GTK-style so they look horrible too).

    This isn't an issue limited to Mac OS, by the way -- Java programmers ought to take the differences between GTK and Windows into account, too.

    --

    "[Regarding the 'cloud,'] ownership was what made America different than Russia." -- Woz

  40. There are less drastic alternatives... by magicianeer · · Score: 2, Insightful
    Minorities can certainly always wreak havoc on the freedom of others. There have been plenty of examples throughout history where small group dictate the masses. This almost always happens with violence (dictatorships with the help of 1984-style mind control hasn't become known as of today).

    Consider this discussion of Kim Il Jong of North Korea given in this blog:
    http://mansei.typepad.com/dogstew/2004/10/popular_ support.html
    Especially the PBS interview mentioned in the blog:
    http://www.pbs.org/wnet/wideangle/shows/northkorea /transcript.html
    Basically the Dear Leader uses both violence and mind control.

    The second point is certainly acceptable by all people, the first needs some explanation. The fundamental problem is that configuration options are bad. Be it at runtime or at compile. Ideally there is one configuration which works everywhere. Every new configuration increases complexity. Not linearly but instead exponentially. Each option might influence every other option. This is a disaster not only for users, but also the developers. It means exponential growth of testing. Which of course won't happen and therefore the code is basically untested. For developers this means that often only one or two configurations are really tested. Any us of another configuration is probably doomed to failure in any non-trivial project.

    I am a Macintosh programmer from long ago. In the Pre-OS X days I worked extensively with the mac ports of libxml, libxslt, and TCL. I played with other open source software on the mac as well like MacPerl and the early mozilla builds. The mac port was generally a point release or 2 behind the main development. I assume the blogger udrepper is talking about people like me. The usual situation I encountered was that mac programmers had to support the macintosh port with little input from the non-mac programmers. The project "owners" would include the mac support files in a subdirectory of the project source tree. Everybody on the project understood that the contents of this subdirectory was only of interest to mac programmers.

    This was quite a reasonable situation. No mac-specific configuration options affected the rest of the project. It is no longer the case. Now the OS X (usually spelled "darwin") build is another option in the makefile.

    For my new projects the razor is even sharper. Only Linux is supported and only the few interesting mainstream architecture with reasonable APIs are maintained. Support for architectures with deliberately different APIs (i.e., IA-64) can be contributed. No other configuration is supported, actively or not, and people would have to exercise their right to add patches or fork the entire code to add other support.

    Over-dramatic; leads to fragmentation which leads to redundant work. I think you would do better to revert to the platform-specific sub folders and let the programmers of that platform update their patches at their own pace. This saves the "minority users" the problem of maintaining a new website and CVS system. You get the benefit of some contributions to the main development since a new feature or two usually must be added by the minority platform programmers.

    If you really want to support exactly one platform with few options, then be sure to use a scripting language (any of the P* languages will do), or maybe java and/or mono.

    Don't let Minorities dictate the direction!

    The leadership of any substantial group of people is always a minority. How many bosses do you have? How many people work for him?

    --
    You can have it good, fast, or cheap. Pick any two.
  41. Re:Sure. by Mad+Merlin · · Score: 3, Interesting
    I was curious about this myself before actually, here's what I tested:

    primetest.cpp
    primetest.java
    primetest.pl (for fun, because I like perl)

    Using Java Blackdown-1.4.2-01, gcc 3.3.5-20050130 and perl 5.8.5 on a 1.3 Ghz Pentium-M, I get these results:

    neil@t40-n Documents $ javac primetest.java
    neil@t40-n Documents $ time java primetest

    real 0m7.809s
    user 0m7.700s
    sys 0m0.033s
    neil@t40-n Documents $ g++ primetest.cpp -o primetest
    neil@t40-n Documents $ time ./primetest

    real 0m2.699s
    user 0m2.676s
    sys 0m0.007s
    neil@t40-n Documents $ time ./primetest.pl

    real 0m47.928s
    user 0m46.207s
    sys 0m0.138s
    neil@t40-n Documents $

    How about you? Sure it's a trivial benchmark, but it definitely shows Java way behind (by a factor of three!) C++ for number crunching. Of course we see Perl well behind both, but it's definitely not meant for number crunching, so no surprise really.

  42. While I somewhat agree with his premise by aCapitalist · · Score: 2, Insightful

    His tactics once again leave a bitter taste for people that aren't GNU zealots. There is somewhat diminishing returns at some point, but its the same old idiocy in the way he puts it. It might have been RMS spewing.

    Minorities can certainly always wreak havoc on the freedom of others.

    That's the first sentence and it only get worse.

    So the question is: why are there all these configurations? One answer is: because of violent minorities supporting such configurations.

    Violent, eh? People are getting beat up.

    The fight for saving the software world from the evil of proprietary, IP-enforced, non-transparent software has only started.

    Evil? Yeah, ok. I thought him and Stallman weren't getting along. Sounds like he just got back from a GNU re-education camp.

    Support for proprietary OSes should be dropped.

    Windows isn't the minority. Try again.

    There are undoubtedly people who will want the flame me to death. But these people are almost certainly all members of said violent minorities who want to force their opinions on the majority.

    Violent again.

    Once again, people like him and Stallman do far more harm than good by acting like a complete nut.

    Keep these extremists down in the basement coding.

  43. Re:The platform comes... by jd · · Score: 3, Interesting
    Optimization should always be in the final stage of software implementation. You get the program right first, THEN you speed it up. Speeding it up first can help obscure the bugs, which can make fixing them a damn sight harder.


    I've actually done some fairly hefty optimizations (real-time array processing on an original Sparcstation, for a nuclear research facility) and know the sort of problem you are talking about. The best thing to do, once you have a working, solid, implementation is profile it and find the areas that - if accelerated - would offer the best improvement in performance.


    The problem with having so little time - in your case a month - is that you can't optimize cleanly. You've got to hit the code in the best places first and dig your way through as far as you can in the time.


    Typically, slow areas will involve moving lots of data, number-crunching and I/O. You can't do much with graphics I/O, unless you've some good specs on the hardware and know assembly. (That's one reason I learned assembly.) Number-crunching is tough, too - just do as little as possible, do what you can when the system is idling, try to merge operations, and stick to integer arithmetic as it is so much faster. Moving data is easy - don't, unless it'll absolutely kill you. Do everything in-situ, if you can. (I wrote a Mandelbrot generator that did ALL arithmetic inside the 80x87 coprocessor - nothing loaded, nothing saved, which meant no slow transfers. It was still slower than fractint, but it was a lot faster than any other floating-point fractal generator out there.)

    --
    It's a small world and it smells funny; I'd buy another if it wasn't for the money; Take back what I paid (SoM)
  44. Re:Try a VM by AndyL · · Score: 3, Informative

    A quick glance at a changelog for a Java project, such as Azureus ,shows all sorts of "compatability fixes". Not just for compatability across diferent OSes, but also for compatability across diferent versions of the VM that's supposed to solve everyone's problems.

  45. Re:MS Windows support must be dropped by aCapitalist · · Score: 2, Insightful

    In a previous /. article, several people didn't even want to reckognize Gimp and Gaim as Linux applications. Hell, not even GTK! They preferred them called "open-source", and not Linux applications or in the case of GTK, Linux API. Their argument? It works on windows! Now, how is this helping Linux?

    Does Gimp and Gaim work on Solaris, or the BSDs? Linux does not own these apps or Gtk+.

    Linux is a kernel.

    And you, nor anybody else, is in a position to say "must be dropped".

  46. Build/configuration *is* a problem Java solves by MilesParker · · Score: 2, Insightful

    Drepper is right about build and configuration being the fundamental issues. This is where Java is the clear winner. I know others have pointed out the advantage of Java (or gasp, C#) here, but I have to say that advantage is real and growing, even if as others have pointed out there are legitimate issues with GUI. I will grant that some issues still exist with GUIs, but
    a) They aren't as bad as people make out. I have used and developed many apps that work fine under all 3 major platforms, perhaps not with all of the finer distinguishing platform features intact, but quite functional and not fugly.
    b) So much of what is developed has no GUI component at all. And note that there are non-Java GUI solutions that work very well with Java.

    But ulitimitly the reason that Java works is that there are strong, simple common build solutions such as Ant that make configuration and build easy and, critically, transparant. I have had much experience with make and much more with Java tools like Maven and Ant, and I would pick a Java based solution any day based on that. Typically with Java, the build just works, and if it doesn't it is very easy to scan the ant .xml and figure out why.

    OTOH, when make fails there are nearly always odd dependency issues, switches that need to be discovered, etc. etc. And this is where I disagree a bit with Drepper -- often these are not because of obscure platform issues but have to do with use of different very common distros, slight differences in lib version and so on. And these problems do reach expontential complexity very quickly

    I will certainly not claim to be a *nix expert but for me and I think many other developers this all makes Java a joy to work with -- at the risk of sounding like a cheerleader, "it just works".

  47. Agree, and... by leonbrooks · · Score: 4, Insightful

    ...adapting your application to architectures as diverse as x86, ppc, MIPS and Sparc at different word-widths is a great way to uncover subtle and long-standing bugs.

    To be sure, robustness may be as optional for you as it was for Microsoft (and would still be, absent competition from Linux), but in the long run it seems to pay off.

    Most of us Linux users would not regard, forex, The GIMP as particularly robust, but compared to the typical WIn32 app it's a paladin of reliability. My sister-in-law routinely leaves it open (and unsaved) for weeks on end, confident that it will still be there when she gets back (but a recent hard-disk failure of mine seems to have put the fear of God into her WRT reliability). She also happily browses everywhere fearlessly, knowing that she can't damage anything on her own machine, and nobody either I or her know of have ever been burnt by malware while browsing in Linux.

    MS users just don't do that - not more than once or twice, anyway.

    --
    Got time? Spend some of it coding or testing
  48. Straw man by Markus+Registrada · · Score: 4, Insightful

    Of course the headline Slashdot reported is not what he said. Uli is abrupt, but he is practical, and not stupid. He's not always right, but when he's wrong he's interestingly wrong. If you think he's arguing for something stupid, you aren't paying attention.

    What he said was *not* that Glibc, or Gcc, and whatnot shouldn't be ported to AIX, m68k, and whatever. What he said was that he does not care to *maintain* those ports, and should not be expected to. IBM (or IBM's customers) can certainly afford to maintain a port for AIX. Let them. Likewise, all those embedded-system houses dependent on m68k targets are welcome to step up and supply their own patches to keep their ports working.

    If a patch to mainline breaks the AIX port, it's the job of the AIX maintainers to figure out how to fix the patch, not him, and not whoever contributed the patch (but has no access to AIX targets).

    He's not even saying he would reject patches needed to support minority targets. Whoever's maintaining the m68k port doesn't need to maintain a fork. They are entirely welcome to send along whatever patches they need installed. They need only be sure their patches don't break any supported targets. This certainly makes more work for users of less popular targets, but it spreads the work around, instead of piling it up on those doing mainline development. The mainline maintainers have plenty else to worry about.

    1. Re:Straw man by Nasarius · · Score: 4, Interesting
      (but has no access to AIX targets).

      With a project as big and important as GCC, you'd think they'd have a server for each platform set up for all their developers to play with. Gentoo has Sparc, MIPS, PPC, etc. boxes for their developers to use for porting software.

      It seems to me that a smart idea would be to have some kind of system where a developer could submit a patch, which would then be sent out to a server farm, where each server would try to compile GCC with the patch, then run a test suite. Doesn't Mozilla do something like this nightly?

      "I don't have access to a [foo] box" should never be a valid excuse with larger projects.

      --
      LOAD "SIG",8,1
    2. Re:Straw man by Markus+Registrada · · Score: 2, Insightful
      With a project as big and important as GCC, you'd think they'd have a server for each platform set up for all their developers to play with.

      So, everybody who fixes something that (incidentally) affects emission of debug annotations in Gcc has to learn all the idiot formats used in AIX, Solaris, Tru64, PE, and what-have-you just because FSF happens to have those machines? Yes, somebody on the project might know intimate object-file format details about any of those. It's unreasonable to expect everybody to learn them all before a patch may be accepted.

      The FSF has those machines for doing builds, not for random strangers to poke around in. Suppose your patch does break some obscure AIX test. What are you supposed to do about it? Hire IBM Global Services to figure out why, and fix it, so you can submit it again?

    3. Re:Straw man by finkployd · · Score: 2, Insightful

      Perhaps if they are unable to actually produce a cross compiler then they should stop pretending they do. Although frankly, as much as I like and use GCC if they are no longer going to be a cross compiler I have no idea what they will compete on. Sure as hell will not be performance.

      So, everybody who fixes something that (incidentally) affects emission of debug annotations in Gcc has to learn all the idiot formats used in AIX, Solaris, Tru64, PE, and what-have-you just because FSF happens to have those machines?

      They made the choice to support those "idiot formats" as you ignorantly say. If they plan to half ass it, they should expect to gain some critics.

      Finkployd

  49. Not true for some projects by Pope+Raymond+Lama · · Score: 3, Interesting

    I track development of The GIMP - it just compiles fine in all "strange minor platforms", and a recent chain of Bugs in Irix compiling was resolved overnight - a matter of the Irix user reporting the bugs, and the core developers commiting the fixes.

    However, there is a non minor and weird platform which actually does generate a lot of trafic on the list, and is strange for most developers. Anyoen checking The GIMP bugizlla will find a lot of open bugs for Microsoft Windows Plataform. That however, doesn't slow the project either. It simply goes on, and the developers who work on Compiling and making the windows installer do what they can for the work arounds.

    --
    -><- no .sig is good sig.
  50. Re:Debian's more about leadership attitudes, I thi by synthespian · · Score: 2, Insightful

    I'm really torn about what to think of Debian.
    On one hand, I really like the concept--that they keep Linux available on a wide range of architectures


    Everytime somebody likes to say that about Debian, I like to remind them the NetBSD folks support an acorn26 acorn32 algor alpha amd64 amiga amigappc arc arm32 atari bebox cats cesfic cobalt dreamcast evbarm evbmips evbppc evbsh3 evbsh5 hp300 hp700 hpcarm hpcmips hpcsh i386 iyonix luna68k mac68k macppc mipsco mmeye mvme68k mvmeppc netwinder news68k newsmips next68k ofppc pc532 playstation2 pmax pmppc prep sandpoint sbmips sgimips shark sparc sparc64 sun2 sun3 vax x68k xen impressive array of platforms, and at the same time hack userland, kernel and protocols. While Debian developers mostly package upstream stuff.

    --
    Main difference between the BSD license and the GPL license: one is from California and the other is from Massachusetts
  51. 32 Bit vs. 64 Bit by Marvin66 · · Score: 2, Informative

    C++ long => 32 Bit
    Java long => 64 Bit

    So you are comparing Apples with Melons ;)

    1. Re:32 Bit vs. 64 Bit by grammar+fascist · · Score: 2, Informative

      C++ long => 32 Bit
      Java long => 64 Bit

      So you are comparing Apples with Melons ;)


      Using my mighty +1 Karma Bonus Power...

      Can somebody please mod the parent up?? The grandparent poster is apparently too clueless to create Java vs. C++ benchmarks.

      Java primitives:

      http://java.sun.com/docs/books/tutorial/java/nutsa ndbolts/datatypes.html

      C primitives:

      http://www.phim.unibe.ch/comp_doc/c_manual/C/CONCE PT/data_types.html

      Let's see the benchmark with either int vs. long or long vs., er, long long (or __int64 or whatever).

      And then, can't we all just get along? /me ducks

      --
      I got my Linux laptop at System76.
  52. Doesn't work that way by dtfinch · · Score: 2, Insightful

    Porting and generally most other open source development happens on a needs basis. Developers decide "I need/want this, so this is what I'll work on." If someone needs a specific port of Linux, they will put forth effort into developing one, effort that might not go into OSS development otherwise. You can't believe that if you get them to stop, that energy will be focused on what YOU want them to work on.

    If there's a problem with developers being bossed around into doing niche work with no compensation, and they don't like it, they need to stand up for themselves. For example, if IBM wants gcc to work well on AIX, they should either make it happen themselves or pay the gcc developers to better look out for their interests. If, on the other hand, the gcc developers are well compensated for fixing AIX problems (I don't know what the situation is), then there's no problem, except in the eyes of bystanders who don't understand the situation.

  53. Re:Sure. by Mad+Merlin · · Score: 3, Informative
    Here are some more results, everything is the same unless otherwise specified: Using 10,000,000 instead of 1,000,000:

    neil@t40-n Documents $ time java primetest

    real 2m41.851s
    user 2m41.439s
    sys 0m0.144s
    neil@t40-n Documents $ time ./primetest

    real 0m59.801s
    user 0m59.618s
    sys 0m0.056s

    Using -O3 for gcc with 10,000,000 instead of 1,000,000:

    neil@t40-n Documents $ time ./primetest

    real 0m54.883s
    user 0m54.755s
    sys 0m0.047s

    Using int instead of long with Java and 10,000,000:

    neil@t40-n Documents $ time java primetest

    real 1m6.386s
    user 1m5.930s
    sys 0m0.128s

    Ah hah, well that would explain it. I guess you do learn something new every day. Certainly a far cry from the ~3x difference initially observed.

    I didn't bother repeating the perl test with 10,000,000 however...

  54. WIndows, Symbian and other minor platforms by S3D · · Score: 2, Informative

    I strongly disagree here too. I use a lot of open source programs , but I'm working with Windows and Symbian. OO, Gimp, Axiom, Maxima, gcc (major component of Symbian SDK), Firefox/Thundedbird/Sunbird etc.
    And I can't switch to Linux - all my projects for Windows and Symbian (and Nokia SDK windows-only, homegrown windows port require Wine anyway). And all the times I'm telling my clients and coworkers - look how much OO mre convinient then word, how Firebird is more safe, and Gimp have nice features, and Axiom and Maxima - well, you dont have to pay several thousand $/year for Mathematic. To drop support for "minor" platform would be a huge discouragement for people to use OSS. Don't forget that some OSS project are designed for mostly non-Linux platforms. Vincent OpenGL ES implementation is oriented for PPC/Symbian and don't have much sense for desktop Linux.

  55. Define Minor by marcovje · · Score: 2, Insightful


    Open Source is always about developer, not user headcount.

    Half the Linux distro's have less developers than the avg BSD. Let's kill them off.

  56. Re:MS Windows support must be dropped by moderators_are_w*nke · · Score: 2, Insightful

    Not possible and thats kinda the point. Free software is worked on for the most part by volunteers in their spare time. If somebody wants to spend their time porting the latest OSS app to Windows thats down to them.

    Its true to say that porting OSS apps to windows improves the Windows experience by providing Windows users with some good quality software for nothing, but this IMHO is a good thing. For me, OSS software is about improving software for everybody and that includes Windows users.

    --
    "XML is like violence. If it doesn't solve your problem, use more." - Anonymous Coward
  57. Re:Debian's more about leadership attitudes, I thi by Trax · · Score: 3, Informative

    Everytime somebody likes to say that about Debian, I like to remind them the NetBSD folks support an ... impressive array of platforms, and at the same time hack userland, kernel and protocols. While Debian developers mostly package upstream stuff.

    I would have to say that Debian developers, for the most part, are also involved in the userland, kernel, and protocols. Take a look at developers such as Colin Watson, Joey Hess, Branden Robinson, Ben Collins, and others are doing in and around the Free Software community. Debian developers should not be pigeonholed as being upstream packagers just because that's what the public sees as the end product.

    P.S. Do a web search on those developers to see their current and past involvements.

  58. Primary and secondary platforms by Per+Abrahamsen · · Score: 2, Insightful

    The way to resolve the problem is to have two lists of supported platforms, primary platforms and secondary platforms. Primary platforms must work, there should be no releases that break the primary platforms, and new features must be developed with all the primary platforms in mind.

    For secondary platforms, patches that make the application work on those should be accepted and encouraged, but releases won't get delayed, and new features can be accepted even if a solution for the seocndary platform has not been found. In general, users of the secondary platform should not rely on the official releases of the platform, but get their code directly from the maintainer of the secondary platform (or from a cvs branch).

    Which platforms are primary and which are secondary should depend on the application. For easy-to-use end-user stuff like ForeFox, IA32 GNU/Linux, IA32 MS Windows and MacOS X would be a good set of primary platforms. For the GCC/binutils/gdb the set need to much more varied, and include popular embedded platforms. The strength of GCC has always been portabiblity and cross-compilation. It has only rarely been the best compiler for native compilation on popular platforms.

  59. Porting assures portability, clean code, future by Kvorg · · Score: 4, Insightful

    I am deeply convinced that porting assures portability, and portability is one aspect of clean code where bugs and wrong assumpsons are noticed, resolved and corrected.

    Surely porting to platforms such as the Alpha and UltraSparc was a very good basis for porting to platforms such as AMD-64. This is a crucial advantage for free software, where we can be sure that we will be able to support new platforms and make interesting platforms mainstream.

    On the other hand, the premisis that the main maintainers can not be responsible for all the porting effeorts is reasonable. Debian is thinking along the same lines, and for good reasons.

    I think it is wrong and bad to assume porting is a bad thing and avoid it. Even apparently futile projects such as porting free software for closed commercial platforms gives a large amount of flexibility in design and portability and helps projects such as embedded graphical environments.

    Portability is just one facet of advantages of free software and as such is a precios thing that we have to cultivate. But it sould be just another part of the free and open collaboration development process, not an obligations for the main developers.

    Just my 2 cents.

    --
    -Kvorg
    1. Re:Porting assures portability, clean code, future by gmack · · Score: 2, Interesting

      I too have found endian specific bugs in code I maintain. It's why I keep an Ultrasparc III in my closet for compile testing.

      I can easilly port between Linux and *BSD but the problem comes when users ask me to port my code to non Posix OS or claim to be Posix but really aren't Posix(win32). Or my latest peeve: sort of Posix but non ELF non GNU (OS X).

  60. /. subtitle not well chosen by jschrod · · Score: 3, Insightful
    This should be from-the-guy-who-breaks-glibc-compatibility-with-e very-minor-release.

    Seriously, isn't this the same Ulrich Depper who can't even bother to get glibc right? glibc incompatibilities -- even in patch versions -- is a major headache on Linux. Compare that to those ``obsolete'' platforms like AIX and Solaris where I can still run binaries that I have compiled in the early 90s or even the 80s. glibc is one of the main reasons why Linux application deployment sucks in major (read: heterogenous) installations. Kernel differences are actually not as problematic, but glibc is biting ourselves all the day.

    He has shown already that he won't bother for people who run computing centers. Here's he, spouting more hobbiest opinions. Nothing new, move forward.

    --

    Joachim

    People don't write Manifestos any more -- what's going on in this world? [Frank Zappa]

    1. Re:/. subtitle not well chosen by bani · · Score: 2, Informative

      the movement from glibc2.2 to 2.3 was particularly painful. ugh.

    2. Re:/. subtitle not well chosen by synthespian · · Score: 4, Informative

      glibc is one of the main reasons why Linux application deployment sucks in major (read: heterogenous) installations.

      This is what Marc Espie, an OpenBSD developer said about Ulrich on O'Reilly's OnLamp (commenting the proactive measures OpenBSD takes in C programming vs. Ulrich's "Linux programmers are geniuses" view):

      "We have had a lot of success explaining the issues and getting a lot of people to switch from strcpy/strcat to strlcpy/strlcat.

      Weirdly enough, the Linux people are about the only major group of people that has constantly stayed deaf to these arguments. The chief opponent to strlcpy in glibc is most certainly Ulrich Drepper, who argues that good programmers don't need strlcpy, since they don't make mistakes while copying strings. This is a very mystifying point of view, since bugtraq daily proves that a lot of Linux and free software programmers are not that bright, and need all the help they can get.

      (Considering the shining, flaming personality of Drepper, and the fact that he is always Right, this is not that surprising, though)."

      --
      Main difference between the BSD license and the GPL license: one is from California and the other is from Massachusetts
  61. Re:Sure. by Nick+Mitchell · · Score: 2, Informative
    hello! some issues with your experiments:
    1. you didn't seem to compile the c++ code with optimizations. i suggest compiling with -O2.
    2. for the kind of code you chose, you used a bad provider for java. i suggest the IBM 1.4.2, which is flat out the fastest x86 VM on the kind of code you provided.
    3. you didn't use the VM version for the java you chose. if you are going to run a sun-based VM, then, for the kind of number-crunching code you provided, you should use the "-server" option. the hotspot-based JIT is optimized for a different kind of code (UI, interactive)
    on a 1.6GHz pentium-m running linux, i get:
    • c++: 2 seconds
    • IBM 1.4.2 java: 2.4 seconds
    • sun 1.5.0 -server java: 4.8 seconds
    • sun 1.5.0 -client java: 7.7 seconds
    (times are best of 4 consecutive runs using, as you did the "time" command) nick
  62. Re:Apple by bani · · Score: 2, Interesting

    and boy is it ever ugly.

    it has a lot of ugly nextstep-isms though, including the heavy leanings toward objc and bundles.

    and for a long time osx was missing even basic freebsd mechanisms like dlopen() (yes, i know someone wrote a wrapper, but it took a long time for apple to appropriate it as an official api).

  63. Amazing by falemagn · · Score: 2, Insightful

    What amazes me is that he is in minority, in the OSS world. Am I mistaken, or is he the only one complaining so loudly and so veemently about such things? If he were part of the majority, surely the problem he talks about wouldn't even exist, as the majority would have adopted his line of thinking already.

    So he basically got into a paradox: he complains about the whining minority, yet he is the whining minority!

  64. Implications of dropping support for non-free oses by madou · · Score: 3, Insightful

    I have a real problem with attitudes like "we do not support non-free operating systems". Of course, software should be free IMHO. But dropping support for non-free platforms takes away the ability to use at least free application software from users who aren't in a position to decide which os they want to use, be it at work or due to limited technical skills.

    Even more important, this type of attitude (( flame me, but I'd call it bunker mentality )) harms collaboration between open source projects, and also between commercial software vendors and open source projects. (( if you don't know what I'm talking about, take a look at the copyright notices for g++'s STL headers ))

    To make the point clearer, let's take Ulrich's ideas a bit further. From a BSD purist's point of view, GPL licensed software does qualify as "non-free".

    What if e.g. the OpenSSH guys decided to drop support for non-free operating systems such as Linux, particularly commercial distributions like Redhat that include proprietary code?

    "Of course, you Linux guys may always maintain a separate tree that includes supports for those exotic systems."

    So we'd have X people who could be working on something way more useful, trying to keep a forked tree in sync with the original project. Great.

  65. Re:Debian's more about leadership attitudes, I thi by filthy-raj · · Score: 2, Informative

    All said dude, this discussion has actually presented quite an interesting contrast of opinion - heh, as so many do I guess ...

    Yep. That's exactly why you have added this righteous paragraph about superiority of one platform over another. Insecurity? Zealotry? You name it. ;-)

    Quite correct. To be perfectly honest, I was actually trying my best here not to prompt the 'zealot' label. Not saying you did call me a zealot directly, but I didn't call you a 'fanboy' either.

    Installing software from ports tree is a breeze (when it is not broken, mkay). Supporting it in the long run is somewhat less of a breeze. Maintaing it so contents of /usr/local won't become a complete mess takes a lot of effort. Especially when you are supporting not exactly that one server in your parent's basement.

    Here, though, I don't much agree. I use *BSD servers for all my customers - never had a single call out in 4 years mind you - and to keep systems' ports updated is nothing harder than a couple of (well, literally 2) expect scripts with some SSH smarts. Using cron to trigger at 1800 on the last Friday of each month, said expect scripts are executed from my office machine (ie: don't need to track changes to update scripts on each of my prod servers). All this leaves me to enjoy my weekends. None of my intervention is necessary. What I think you might not know about here is that most of this is already scripted for me. 'portupgrade' (located in /usr/ports/sysutils/portupgrade ;-)) is a collection of ruby scripts that is a level above 'make install', 'make deinstall', 'make reinstall', etc. The software does all the upgrade management for you. I mention this (in a long digression) because I'm not too sure if you're familiar with these specific tools. It has kept all of my 4 years worth of clients' servers with up to date software, using upgrade procedures I don't even think about or have needed to modify radically in years. Not to say this couldn't be done with apt, (yam, rpm, etc.) but I do say it is certainly possible with ports. And that I am not just scoffing away the latest upgrades in my parents' basement!

    Of course, we're adults and it's all up to you. It's been nice talkin' champ.

    Your friend,
    Raj

  66. What was actually said, Minorities MUST help by omb · · Score: 3, Insightful

    If you read what was actually said, most replies
    make no sense; to paraphrase:

    Mainstream developers, using common architectures,
    which will change over time, should not hold
    themselves hostage to proprietary, minority or
    legacy platforms ... and lack of platform access
    makes this impractical in any event.

    This makes complete sense, if, as is actually the
    case HP, IBM & SUN have, by incompetance or greed,
    placed themselves in a position where their
    platform _depends_ on GNU tools they need to spend
    some support revenue on the tool-chain, and
    provide gratis platform access. This is how it
    used to be before Red Hat bought Cygnus.

    Finally, no one is going to deprive legacy
    platforms, they have to do work, pay or resign
    themselves to a feature freeze.

  67. No, Ulrich has a point by IamTheRealMike · · Score: 3, Interesting
    Wow, it's not often I find myself defending Ulrich Drepper of all people, but I do think there's a huge misconception here.

    People seem to be repeating a lot of "folk wisdom" about portability. Oh it's just bugs. Make your damn software clean you damn coder. Etc.

    I can guarantee you that anybody who says this has never actually read the sources to glibc, binutils or gcc. Hell, they probably never even read the mailing lists! I have, and when Ulrich says an enormous amount of effort goes on supporting minority platforms he is totally correct. Hello, binutils isn't the GIMP people! Other platforms have totally different architectures and often need huge amounts of platform specific code from these projects. This isn't a case of sloppy coding, it's a case of massive amounts of work being done to support edge cases. Go read the sources to bfd sometimes. Adding support for one platform that uses different assumptions about basic things like memory layout can require huge reworkings of the code.

    Essentially there are a lot of people spouting off here based on their experiences of compiling FooApp on FreeBSD or whatever. Have you written a C library? A threading library? No ... then you are probably not really qualified to judge how much work this generates for Ulrich.

    Oh, and for the guy later on in this thread who says "AIX is not a minority platform, WTF?" - I say to him WTF. AIX most definitely is a minority platform. Maybe not in the world he lives in, but in the real world Windows is dominant, sometimes people think about Linux/Mac or even FreeBSD and everything else barely registers at all unless you administer high end servers or work on embedded software (most people do not).

    I've been bitten by this mentality before. Back when exec-shield was first developed, it broke Wine (which I work on). So I set out developing a fix. Eventually, I wrote a GNU linker script that arranged virtual memory such that things would work correctly even when exec-shield was active. But it didn't work, because of a simple bug in the kernel. No problem, right? Just fix the bug, right? Well, actually, somebody did. A patch was written, submitted, got into Andrew Mortons tree ... and it didn't compile on Itanium. The original author didn't have access to such a machine, neither did I, and the person who reported the failure (who worked for Intel, IIRC) was overloaded with other work and couldn't fix it. So the patch was dropped.

    In the end, a few months later, we had a different solution that was about a million times more complicated. Largely because a simple bugfix patch didn't compile for unspecified reasons on a platform nobody uses and this was grounds for it to be dropped. That mentality of "all computers are born equal" is why Debian has become a laughing stock and it cuts both ways.

  68. Big big BIG ditto by devphil · · Score: 2, Informative


    All of what dvdeug says here is true. I've done more than watch the list, I'm a maintainer, and David Edelsohn (an IBM employee) has always been willing to work with the GCC community. He even pushes the IBM developers and management to make each release of AIX slightly less bizzare than the previous release. Ulrich simply insults you if you disagree with him. He does not participate on the GCC lists; when he does send a message, it's a flame. I've never seen an explanatory email from him, on any topic.

    --
    You cannot apply a technological solution to a sociological problem. (Edwards' Law)
  69. A bug is a bug. by autopr0n · · Score: 2, Insightful

    If there's a bug in the main source code base that only manifests on a particular platform, it's still a bug.

    --
    autopr0n is like, down and stuff.
  70. Re:Apple by GlassHeart · · Score: 2, Insightful
    it has a lot of ugly nextstep-isms though, including the heavy leanings toward objc and bundles.

    Assuming we're talking about the same thing, bundles are a compromise between the need for easy installation of applications and "flat" file systems. What would you have preferred under those requirements?

    Also, do you have a more objective criticism than "ugly"? I'm not saying you don't, but many times it's just another word for "unfamiliar to me".