• CELKO (12/17/2012)


    As to "portable", that really is a myth. There are so many custom approaches in each variant of SQL you can never port anything easily.

    Then how I have earned a living writing portable SQL for 25+ years? Why does the US Government have FIPS Flaggers? Why did NIST set up the FIPS-127 conformance test suite?

    Portable code has to be designed from the start with this goal. Ever read Jerry Weinberg's classic: The Psychology of Computer Programming: Silver Anniversary Edition (ISBN-13: 978-0932633422). Yes, it is so good it gets a Silver anniversary.

    Part of the book deals with setting goals and how that affects the code. If you start off like a cowboy coder with "Larry the Cable Guy" philosophy of "Git'er done!", you get code written fast. If you ask for smallest possible code or the fastest execution, you get other kinds of programs.

    We know that 80-95% of the total lifetime cost of a system is in maintaining it. DoD, the largest user of software on Earth, found that code that can port from release to release of the same product or to other products saves you tens of billions of dollars.

    Some of my consulting work is for VC's who want to know if the applicant's databases can scale up and port (usually to a mainframe, but more and more, we scale down to mobile devices). Sometimes a Venture Capitalist gets a winner! Winners have to grow. The way to grow is to port.

    I have killed projects with a bad recommendation. In one case, two start-ups in the same market space, a POS based on a particular chip, needed a decision. One of them had a really neat, flashy interface and used a proprietary language tuned for that chip. We had a lot of these high level, structured assemblers in those days.

    The competition was in ANSI Standard C and had a dull interface. They could have lapsed into assembler from the C and gotten a real boost on the particular chip they had, but they stuck to Standard C.

    We went with the dull guys. A few months later, the proprietary language and the chip were discontinued. The flashy, non-portable, guys learned one of the laws of ecology. "The better a species is adapted to one environments, the worse it is adapted to all other environments." Or "there are no snakes at the North Pole and no polar bears in the Sahara Desert"

    Yes, there's a point where portability is the primary factor. Large bureaucracies often need everything to follow published standards in order to get anything done at all. On the other hand, DoD and other large bureaucracies are more infamous for the projects they waste vast amounts of money and effort on and never finish (in some cases due to overemphasis on obsolete standards) than they are famous for getting things done efficiently or even well.

    Another point is that, within its proper environment, a specialized organism is often vastly superior to a generalized one. Rats are highly generalized organisms, capable of surviving in a wide range of environments, while methanopyrus (http://en.wikipedia.org/wiki/Methanopyrus_kandleri) is an extremely specialized one capable of surviving only in a very specific environment. But if you put a rat in a pot of boiling sufuric acid, it won't survive as well as some mehanopyrus would in the same pot.

    Keep in mind that some extremophile organisms are thought to be essentially unmodified over about 4 billion years. So, long-term survivability of these extremely specialized organisms isn't really a question.

    So your point doesn't actually prove your point, if you get my point. 😀

    On the other hand, code portability has certainly worked out well for you. You obviously have survived well by becoming a specialized organism in a specialized environment that fits your particular survival adaptations and assertions.

    - Gus "GSquared", RSVP, OODA, MAP, NMVP, FAQ, SAT, SQL, DNA, RNA, UOI, IOU, AM, PM, AD, BC, BCE, USA, UN, CF, ROFL, LOL, ETC
    Property of The Thread

    "Nobody knows the age of the human race, but everyone agrees it's old enough to know better." - Anon