Doesn’t matter what your marketing technique is for your compiler if nobody actually writes code in your language any more


I mentioned Terry Zink's Anti-spam blog ("Protecting your mail from the scum of the internet") during one of my quarterly "borg-edition" linkfests. The article about how much money a spammer actually makes was quite interesting. One thing that caught my eye was the insanely low sales rate that was needed in order to make the enterprise lucrative. Only 0.12% of the messages get clicked on, and of those, only 0.5% result in a sale, yet with a sales rate of just 0.0006%, the spammer pulled down an impressive $7690 per week, or over $300,000 per year. (Researchers who infiltrated the Storm botnet have their own estimates. Terry's story is more interesting to me since it comes from an actual (reformed) spammer.)

That reminded me of a story told to me by the person who worked on Microsoft's FORTRAN compiler. (Yes, we had one.) He mentioned that one of their attempts to market the compiler was to include a Microsoft FORTRAN business reply card in a targeted mailing to subscribers to a well-known technical computer magazine.

"Normally, these sort of targetted direct mail efforts generate maybe a 3% or 4% response rate if you do well. We got two."

— Two percent. Well, that's not too bad, considering this is FORTRAN we're talking about.

"No, I didn't say two percent. Just two. As in, we received two postcards."

— Oh.

Comments (34)
  1. nathan_works says:

    The Mrs has (and uses, I’m pretty sure) the MSFT Fortran compiler.. Don’t ask me which version, I’ve just seen the CDs for it on her desk, and her complaints about the fortran language.. There are a lot of optimizers written on fortran, and "if it ain’t broke, don’t fix it.." mindset keeps going at her company.. (I find that strange, since engineers usually have the "if it ain’t broke, break it while trying to make it better" mindset more often. Surprised they haven’t re-written the routines in another language.)

  2. FORTRAN will outlive COBOL.

    Just sayin’ .

  3. John says:

    That number is kind of meaningless without knowing how long ago it happened.

  4. Yuhong Bao says:

    BTW, the last version of FORTRAN was version 5.1, released in 1990. MS ported FORTRAN to 32-bit and released FORTRAN PowerStation 1.0. After version 4.0, MS stopped developing FORTRAN PowerStation.

    BTW, the mention of FORTRAN reminded of off-topic ramblings deleted.

  5. atomice says:

    I work on HPC development tools.

    Here’s some approximate figures from our support tracker:

    C support tickets: 10%

    C++ support tickets: 4%

    Fortran support tickets: 14%

    Fortran is alive and well in the HPC sector!

  6. mschaef says:

    I used MS Fortran 5.1 for a brief while back in the early 90’s. It had a couple interesting properties: some good, some bad. On the good side, Microsoft shipped it with the ‘QuickWin’ library that made it possible to make (very) simple Windows programs out of Fortran code. On the bad side, Fortran 5.1 was a 16-bit compiler and therefore subjected users to 64KB limits on many data structures. IIRC, this included array.

    At the time, the rationale for FORTRAN (at least in my use) wasn’t that it was a great language for use on a PC, bur rather that it was in a mainframe shop with a large FORTRAN code base and having a PC based FORTRAN compiler was occasionally convenient.

  7. Marcus says:

    Interesting that Intel was able to maintain their Fortran compiler business and is still actively releaseing new versions.  I wonder how large the market is?

  8. Chris says:

    And Intel is the only one who sells a FORTRAN compiler. NAG and PGI come to mind.

  9. Erbo says:

    Most people writing Fortran code these days are doing so for supercomputers and high-performance clusters, two areas of the market that Microsoft doesn’t have a strong presence in.  (Yes, I know MS has a Windows version for clusters, but I haven’t seen a lot of clusters out there that actually USE it.  Most of them use some variant of Linux, or another freely-available OS like BSD or OpenSolaris.)  So why would they use a Microsoft compiler?  They’ll use Intel’s compiler, or PGI’s, or even the GCC Fortran compiler.

    The core of development for Microsoft’s environment is in C, C++, and the .NET languages, has been for some time, and is likely to remain so.

  10. Josh says:

    @atomice: Are you sure your statistics aren’t weighted by the bugginess of your Fortran code? ;-)

  11. Yuhong Bao says:

    "BTW, the mention of FORTRAN reminded of off-topic ramblings deleted."

    Okay, I have posted it to off-roading the old new thing.

  12. Mark Lacey says:

    The first language tool I ever purchased was Microsoft FORTRAN for the Macintosh.

    Yes, for the Macintosh.

    I was taking FORTRAN at the time in high school (imagine that) and was perhaps 15 and getting quite tired of using the DECWriter paper termnial to connect to the mainframe to enter and run programs.

    I’m feeling old now, so I’ll stop there.

  13. Kaenneth says:

    I took a COBOL class, at a local technical school while in high school, for fun.

    kinda explains a lot about me.

  14. Jolyon Smith says:

    FORTRAN may have helped you avoid that factor of 10 Error….  0.5% of 0.12% is 0.000006%, not 0.00006%.

    ;)

  15. Mark says:

    Plato invented FORTRAN for exactly that reason.

  16. Reginald Wellington III says:

    Jolyon Smith:

    0.5% = 0.005 and 0.12% = 0.0012.  0.005 * 0.0012 = 0.000006.  0.000006 = 0.0006%.

  17. Leif Strand says:

    Yes, indeed, Fortran is very much alive HPC sector.  Computational scientists still use it.

    I’m not a scientist, but I work with scientists, and I’ve been forced to refactor Fortran-90 code for the past two weeks!  Augh!  The pain!  The pain!

    Call-by-reference parameters, ‘&’ line continuations… no pointers… just shoot me now.

  18. Adam Glasgall says:

    Leif, at least it was F90! At my alma mater, the physics profs are still using F77.

  19. Adam G says:

    Leif, at least it was F90! At my alma mater, the physics profs are still using F77.

  20. Anon says:

    I read a paper a long while back that argued that because Fortran doesn’t have pointer aliasing it was possible for the compiler to do more optimisations than C. I suspect if people are still using it it’s mostly because it would take too long to port the code to C and assembler and tune it up rather than because it is impossible though.

    "BTW, the mention of FORTRAN reminded of … OFF-TOPIC RAMBLINGS DELETED."

    Raymond, you crack me up :-)

  21. Chris Nahr says:

    The reason that only two people replied to MS Fortran postcards was not that nobody is using Fortran.  As others have pointed out, Fortran is not primarily used on DOS or Windows, and MS Fortran was simply inferior to competing compilers on these platforms, similar to MS Pascal vs Turbo Pascal.

    Fortran itself is hardly obsolete, even now.  The language has well-defined semantics and decent standard libraries for floating-point operations that C++ lacks.

    And only a C++ programmer could possibly consider pointers a good thing.  No modern language has C-style pointers as a first-class feature, and for good reason.  Fortran cleverly avoided the whole insanity, so to speak.

  22. peetm says:

    imho it’s a shame Microsoft dropped both it, and its Pascal compiler too.  I used both, and loved both.

  23. Bikedude says:

    OK… Here is a question for you all:

    What language should one use if the end result is supposed to be around for 30-50 years?

    Delphi (Object Pascal + extensions) is the most maintainable language I know about. C# comes close.

    But they are hardly mainstream. MS have abandoned languages before. Ten years ago, VB supposedly ruled the world, yet caused horrible messes and was severly limited. C# shows promise, but is much too young to be seriously considered IMO.

    Java? The Java library for UI that I have seen, SWING, is a mess on top of a garbage heap. I have never seen a snappy Java applet. I remember a colleague of mine who ten years ago proudly exclaimed that we would soon have enough computing power to run Java applets at decent speeds. Several GHz and cores later, not to mention 100 times as much memory, the darn things STILL run slow! :(

    In a dark corner of my mind, I then turn to Cobol (and Fortran). Languages that have been around forever and are still being used. Are these dinosaurs going to continue their reign of terror?

    Luckily my projects do not have longevity as the main design goal. I am not designing the payroll system for California or anything close to that. (Thank <insert your personally preferable deity here>!)

    But what if..?

  24. SuperKoko says:

    Call-by-reference parameters, ‘&’ line continuations… no pointers… just shoot me now.

    Fortran 90 has a (somewhat limited) form of pointers.

    I read a paper a long while back that argued that because Fortran doesn’t have pointer aliasing it was possible for the compiler to do more optimisations than C.

    Indeed, Fotran pointers/references are equivalent to C99 "restricted" pointers.

    @Raymond: I’m curious to know how many people there’s on this mailing list.

    Is it two responses in thousand? In ten thousand?

  25. Jan Mikkelsen says:

    Gee.  I remember using Microsoft Fortran IV on a TRS-80.  It seems like a very long time ago (which it was) and just yesterday all at the same time.

  26. Gareth says:

    Bikedude,

    Having had the dubious pleasure of maintaining/porting a few applications from older or less scalable languages (ie. QBASIC, dBase, Pascal) my experience is that well written, well documented code in a long-obsolete language is far easier to work with than poorly written, poorly documented code in any trendy modern language.

    If your "Application for the ages" is going to remain on one system for it’s lifespan, I’d argue that any well written, well documented code with a decent backup strategy for source code will serve well for many, many years.

    For applications which have to be installed by many people over many platforms (some of which may not have been invented yet), I’d pick something with an Internationally-ratified standard behind it – C or C++

  27. Arthur T says:

    the IBM VS Optimizing compiler is the must-study for optimizing compilers. The guys who wrote the Cray fortran compiler used it ( and liscensed it ). Fortran is, again, still very much alive in High Performance Computing. ( Almost all of the top500.org computers run some form ).

    Intel makes a great Fortran compiler for Intel, and if you have AMD boxes, you can use Liunx/F90/F95.

    The bottom line is that since no one ( 0.00006% ) programs anymore, or really cares about it, MAYBE they are using something else that is so much better, that the product gets ignored. ( I used the Linux F90 package for a rendering project on a bunch of AMD boxes, and it was FREE )

  28. DWalker says:

    Bikedude: "C# shows promise, but is much too young to be seriously considered IMO".

    Too young to be seriously considered for WHAT?  C# is actively used, actively being developed, and shows every sign of being around for a long time.

  29. HaggardBlaze says:

    I have seen a few programs in the aerospace industry,  and I found an interesting example.  Years ago we used a FORTRAN program to a lot of advanced mathematical problems.  This was on a 16 bit computer.  Now we have the same program on a 128 bit computer written in C++.  It runs as fast, if not slower than the FORTRAN one.  I think this is due to the fact that FORTRAN code is designed specifically for advanced mathematical computation.

  30. Ulric says:

    It’s actually easy to convert fortran code back to C, and people do it.  There is a free tool for it as part of unix/bsd,etc :  f2c.

    I’ve had to deal with the code that generates.  not pretty!  

    Gnu Fortran seems to be a solution as well.. never had to use it.

  31. SuperKoko says:

    What language should one use if the end result is supposed to be around for 30-50 years?

    It depends on the software class.

    For systems programming, I would say C and C++ are pretty alive and will be for at least 10 or 15 years, maybe more.

    For business data base software there’re probably more maintainable languages which will last for long.

    I would say Java is "the new COBOL", and will last long too.

    For web servers: Java or PHP seem to be somewhat safe.

  32. Igor Levicki says:

    @Nathan_works:

    Intel produces optimizing fortran compiler your better half should give it a try.

  33. David Smith says:

    I know at least several scientists (experimental physicists) my age (early boomer, in our 60s) who are still actively using Fortran for new projects…don’t know whether younger folks converted to C or Mathematica or something else, but Fortran isn’t dead yet.

  34. Jolyon Smith says:

    Pick a more natural and intuitive set of numbers to test your math with:

    10% x 10% x 100 =    1% x 100 = 0.01

    0.1 x 0.1 x 100 = 0.01  x 100 = 0.01

    I don’t know why you and Raymond both felt the need to adjust the percentage of a percentage, but this wasn’t actually the point of the post and verges on nitpickers corner.

    ;)

Comments are closed.

Skip to main content