Фортран (FORTRAN).

Fortran второй язык программирования с которым мне пришлось иметь дело. В те далекие времена в подвале нашего университета еще стояли ЕС ЭВМ. Программирование этих монстров осуществлялось при помощи перфокарт (да, я такой древний, что помню перфокарты).

Как гласит официальная история, Fortran — первый язык программирования высокого уровня, имеющий транслятор. Он создан в период в 1954-1957 годах группой программистов под руководством Джона Бэкуса в корпорации IBM. Название Fortran является сокращением от FORmula TRANslator, то есть, переводчик формул. Фортран идеально для своего времени подходил для научных и инженерных вычислений.

В университете мне пришлось решать с помощью фортрана и ЕС ЭВМ численные задачи, типа решения уравнения методом деления отрезка пополам или вычисления определенного интеграла методом Эйлера. По своему это были увлекательные и интересные задачи.

В заключении немного ностальгии в виде картинки перфокарты.

Перфокарта
Перфокарта

Сейчас это может показаться диким, но разглядывая на свет дырочки в перфокарте можно узнать, что на ней закодировано. Можно даже прорезать лезвием дырочку для того, что бы оперативно исправить.

Новая рубрика.

Сегодня мне в голову пришла «гениальная идея» сделать небольшой обзор языков программирования с которыми я когда-либо сталкивался. В процессе своей работы программист обычно сталкивается с различными языками программирования. Одни из них проходят мимо вместе с окончанием очередного проекта. Другие становятся надолго любимыми языками, на которых программист специализируется и «ест собаку».

В этой записи попробую перечислить языки программирования с которыми я сталкивался в той или иной степени.

  • Фортран (FORTRAN)
  • Бейсик (Basic)
  • Паскаль (Pascal)
  • Турбо Паскаль (Turbo Pascal)
  • Delphi (строго говоря не является языком программирования)
  • PHP
  • Visual Basic .NET

Надеюсь, что этот короткий список позволит мне не заблудится в дебрях различных языков программирования.

Извечный вопрос всех программистов.

Сегодня в очередной раз столкнулся с наверно извечным вопросом всех программистов. Писать или не писать программу по малейшему желанию пользователя. Ситуация как обычно банальная. Пользователю нужна одноразовая программа, которая по неверным данным из базы данных выдаст нужный и красивый отчет. Альтернатива написанию программы — ручная обработка таблицы из сотни строк с корректировкой там где это нужно. Время и трудоемкость написания программы сравнимы с временем и трудоемкостью ручной обработки таблицы. Возникает резонный вопрос, что делать программисту в подобной ситуации.

Исходя из своего опыта могу порекомендовать установить адекватную цену на свою работу. Начальник (заказчик) должен понимать,  что при равных затратах времени труд программиста стоит дороже труда секретарши (менеджера) и уже основываясь на этом принимать решение.

Правец 16.

Сегодня на просторах Интернета встретил фотографию компьютера «Правец 16» и вспомнил, что в далеком 1992 году начинал писать на нем свою первую коммерческую программу.

Фото Правец 16
Правец 16

Персональный компьютер «Правец 16»  — программный и аппаратный аналог IBM PC производился с 1984 по 1988 год в болгарском городе Правец. Сейчас я понимаю, что это был компьютер снятый с производства 4 года назад, но тогда для меня это был вполне нормальный компьютер не хуже тех, что стояли в университете для обучения студентов.

Интересный факт. Город Правец — это родина первого секретаря болгарской компартии Тодора Живкова, который при выборе места для завода по производству компьютеров выбрал своё родное село.  Впоследствии село стало городом. Так, что можно считать, что эти компьютеры производились в деревне.

Постижение рекурсии.

К третьему курсу университета, я как и положено студенту, считал, что знаю о программировании все и любую программу могу написать без проблем. Так вот на третьем курсе у нас появился предмет «Архитектура ЭВМ». Все лекции я обычно пропускал (не знаю как сейчас, а тогда была лафа в виде свободного посещения лекций), а с этим предметом обстоятельства сложились так, что мне пришлось сидеть на лекциях по независящим от меня причинам. К моему удивлению я обнаружил, что знаю о программировании далеко не все. Особенно поразил меня пример рекурсии.
Как написать программу для подсчета факториала числа n. Классический способ заключается в использовании цикла. Получается вот такая программка на языке Pascal.


function Fact( n : Integer) : Integer ;
var
  i : Integer ;
  f : Integer ;
begin
  f:=1 ;
  for i:=1 to n do  f:=f*i ;
  Fact:=f ;
end ;

Эта программа конечно работает, но можно написать более красивую программу с использованием рекурсии.


function Fact( n : Integer) : Integer ;
begin
  if n=0 then Fact:=1
         else Fact:=n*Fact(n-1) ;
end ;

Вторая программа позволяет понять, что в программировании есть много интересных моментов и программа это не просто сборник циклов и операторов ветвления. Для того что бы написать программу надо, себе четко представлять, как компьютер будет ее выполнять. К сожалению далеко не все программисты представляют себе это. В итоге на свет появляются чудовищно не эффективные программы, это отдельная тема для обсуждения.