Kiedy opracowywano FORTRAN, nie było czegoś takiego jak przenośność kodu. Kompilator FORTRAN na jednym komputerze był absolutnie rutyną, aby zaakceptować nieco inny język niż kompilator na innym komputerze. Najczęstszą odmianą była długość nazwy. IBM 1130 FORTRAN dopuszczał pięć znaków, DEC-10 dopuszczał sześć, CDC 6600 (moja pierwsza maszyna, mój pierwszy prawdziwy język asemblera) pozwalał na siedem. Język wymagał trójwymiarowych tablic; co najmniej jeden minikomputer (Varian 76?) FORTRAN dopuszczał tablice siedmiowymiarowe.
Firmy rutynowo rozszerzały swoje języki FORTRAN, aby ich maszyny były bardziej atrakcyjne dla klientów, i chociaż rozszerzenia mogły zapewniać podobną funkcjonalność, nigdy nie były identyczne. Wiele kompilatorów zapewniało rozszerzenia do wykonywania operacji we / wy plików i zarządzania nakładkami i nigdy nie były one identyczne. Czasami nawet nie byli blisko.
Konwersje FORTRAN-na-FORTRAN, przenoszące program z jednej maszyny na drugą, były bardzo pracowitym przemysłem chałupniczym, a ludzie, którzy mogli to zrobić, zawsze mogli znaleźć pracę. (Przeprowadziłem dwie takie konwersje: pomogłem przenieść oryginalną grę Matuszek-Reynolds-McGehearty-Cohen „Star Trek” z CDC 6600 na DEC-10 i przeniosłem program do analizy EKG z Varian 76 na TI 990. Brak dwóch takie projekty były identyczne).
To sprawiło, że bardzo, bardzo trudno było zapewnić „standardowe” biblioteki, chociaż kilka osób próbowało. Biblioteka IMSL była największa, ale została dostarczona w formie kodu źródłowego, a klient musiał uruchomić ją w swoim systemie.
Ponadto: oczekiwano, że programiści FORTRAN będą mieli odpowiednie podstawy w zakresie metod numerycznych. Prawie każdy programista FORTRAN na świecie w tamtych czasach nauczył się robić dla siebie średnie i standardowe odchylenie jako zadanie domowe. Każdy programista FORTRAN nauczył się bisekcji i iteracji Newtona-Raphsona (obecnie nazywanej „Metodą Newtona”) w szkole. Metody Runge-Kutta były nauczane, zwykle przez rote, a wówczas integratory Runge-Kutta 6. rzędu były podręcznikowymi przykładami. (Było znacznie później, gdy ludzie zorientowali się, że Runge-Kutta czwartego rzędu było „ulubionym miejscem” na krzywej efektywności kosztów).
I: programiści RZADKO zmieniali komputery, nie zmieniając również zadań. Od programistów, którzy się poruszali, oczekiwano I WYMAGANO, że będą bardzo dobrzy w nauce działania nowych systemów i dostrzeganiu różnic.
W tym środowisku będzie bardzo mało wezwania do „standardowego” kodu STDDEV, gdy będzie to coś, co każdy kompetentny programista FORTRAN na poziomie podstawowym mógłby napisać we śnie.