Continuing the discussion from What are you coding?:
I started out by reviewing Jon Zeigler’s draft new star system and world generation procedure and not liking (a) aspects of his algorithm or (b) its being written to be executed by hand with pencil, paper, dice, and a scientific calculator. Also, I grew dissatisfied with the procedurally generated world statistics I have been using to base the worlds on for my current writing project. So I started to develop my own star system and world generation procedure as an Excel workbook because (1) I know how to use Excel for that sort of thing (2) I don’t have any way to compile or run FORTRAN on my computer, FORTRAN being the programming language I used to use when I had to program mathematical models for work, and (3) I’m insane.
I’ve got to the point where I can easily generate the biosphere and the atmospheric chemistry, then the temperature, and I don’t see any real obstacles to moving on to climate and geography. Except that my system for generating the intensity of plate-tectonic phenomena isn’t working, and to mend it I have to model the primordial heat and gradual cooling of the mantle. The workbook is up to 220 columns or so, the formulas in those cells look like "=IF(BM22="","",AU22*(4.15*10^-12*POWER(0.5,$G$6/14)+6.13*10^-12*POWER(0.5,$G$6/4.47)+1.25*10^-11*POWER(0.5,$G$6/1.25)+1.41*10^-11*POWER(0.5,$G$6/0.704)))"
and =IF(EA24="","",IF(EA24=6,IF(CP24<2,0.5,IF(CP24<4,0.3,IF(CA24<80,0.3,0))),0))
, modifying what I wrote two days ago is proving difficult, and debugging is a bear.
I really, really need proper branches, loops, procedure calls, and variables with memorable names. Had I a FORTRAN development environment like what I used to have on the PCs at work twenty-five years ago this would be a snap. But everything I used to use is obsolete now. It doesn’t help to know what arrays and pointers, files, binary trees, and linked lists are, anymore. It looks as though to just write a piece of simple code in any modern language I have to learn what a paradigm is and what objects, classes, and methods are.
That has hitherto always seemed like more work than was justified by the task at hand, and I program so infrequently now that I have always put it off and made do with Lovecraftian SAN-busting Excel workbooks. But now I feel about ready to bite the bullet. I’m going to teach myself to program in a modern language, but I am going to have to start at the “what application do I launch, and what window do I type code into?” level.
To answer that I have first to commit to a programming language. It seems to me that everyone who does the sort of thing I want to do (i.e. scientists and engineers) uses Python, but that all my friends who are programmers assure me that I have no sensible alternative to Javascript. Their reasons seem to boil down to Javascript being really cool for reasons that I don’t understand or care about, semantic whitespace sucking (it does), and Javascript being really easy to build interfaces to (I’d be content with FORTRAN I/O).