Slashdot Mirror


Rewrites Considered Harmful?

ngunton writes "When is "good enough" enough? I wrote this article to take a philosophical look at the tendency for software developers to rewrite new versions of popular tools and standards from scratch rather than work on the existing codebase. This introduces new bugs and abandons all the small fixes and tweaks that made the original version work so well. It also often introduces incompatibilities that break a sometimes huge existing userbase. Examples include IPv4 vs IPv6, Apache, Perl, Embperl, Netscape/Mozilla, HTML and Windows. "

5 of 670 comments (clear)

  1. fp by Anonymous Coward · · Score: -1, Troll

    batty!

    OG da world

  2. Here's a rewrite, so to speak by CmdrStallman · · Score: -1, Troll
  3. poo poo by Anonymous Coward · · Score: -1, Troll

    moo moo

  4. Legendary Troll Site Unplugged!! by TrollBridge · · Score: -1, Troll
    A certain not-to-be-named troll website has been taken down!!

    Even if you've never posted a hidden redirect, you can't discount the site's contributions to the Slashcode.

    --
    There's a Mercedes gap too. I want one and can't afford one, but it's not government's job to do anything about it.
  5. Re:speaking of IPv6 vs IPv4 by Anonymous Coward · · Score: -1, Troll
    This article is designed to provoke responses and was written by someone who doesn't know what he is talking about.

    This is not to say that there are not problems with IPv6. While IPv6 fixes many problems in IPv4, the developed world will not embrace IPv6 until many shortcomings in the protocol are addressed. I am a Brown University grad student, and my thesis is on IPv6. Allow me to include a few "talking-points" on what I've learned.

    1. Cisco routers suck at IPv6. Many of cisco's routers use the router's CPU to process IPv6 packets instead of the fast-path. The reasons for this are explained in the next few points. While Juniper's routers are substantially better at IPv6 than cisco's, IT managers are often restrained by insane corporate policy that dictactes the use of cisco.
    2. There are too many addresses. There are 16.7 million addresses per square metre of the earth's surface, including the oceans. This is overkill. The world does not need more than the 4 billion addresses available with IPv4, and I challenge you to come up with an application that requires that many. Assuming that you can actually come up with one, it could easily be solved with Network Address Translation, or NAT as it is commonly known.
    3. IPv6 addresses are too large. An IPv6 address is 128 bits in size - 64 bits of which are reserved for addressing hosts, and 64 bits of which are reserved for routing. One thing that is cool with IPv6 is address autoconfiguration. Take your 56-bit MAC address on your ethernet card, ask for 64-bits of network prefix, bang it together with EUI-64 and you are set. The problem with a 64-bit network prefix is that routing tables become massive. Just do the math and you'll see that extreme amounts of memory are required to hold routing tables.
    4. The IPv6 header is too large. An IPv4 header compact at 20 bytes in length, while the IPv6 is bloated at 40 bytes. That's right people, each one of your IP packets has twice as much overhead as before. While this may not sound much, IP networks have a requirement that the minimum MTU supported must be 576 bytes. That means that where you might have got 556 bytes of data in your IP packets, you now get 536 bytes. This means that downloading stuff will take 3.4% longer.

    I disagree that IPv6 will fail due to a lot of code being re-written. This is simply untrue. Having said that, the above points have to be addressed by the IPv6 community before it will be deployed outside of research networks, and what better place is there than slashdot to address these points?