Программирование
Фото: Sergei Frolov, Soviet Computers Museum, http://www.leningrad.su/museum/.
Собственная работа, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=6197556
Скажу без преувеличения: программирование — моя страсть. Мало что в жизни приносит мне такое удовольствие и почти моментально погружает в состояние потока, из которого совершенно не хочется выныривать.
Моим первым языком программирования был какой-то диалект бейсика, а первым компьютером, видимо, что-то типа ДВК-1 (Диалоговый Вычислительный Комплекс). Было это, когда я учился в восьмом классе. Чтобы поработать на компьютере, нужно было ехать через полгорода в УПК — учебно-производственный комбинат, где стояли эти устройства. Там я и ощутил впервые непередаваемый восторг от того, что твоя программа выполняется на компьютере и что-то делает.
Потом был институт, СВМ-ЕС и Fortran 4. А ещё встроенный в терминал язык программирования REXX с довольно богатым набором возможностей. В частности, с его помощью получилось установить пароль на «мой» терминал.
В конце первого курса я устроился в редакцию газеты. Помогал верстать, а заодно разбирался с мелкими проблемами на компьютерах. Сейчас таких студентов называют эникейщиками, а меня коммерческий директор величал «начальником компьютерного отдела».
Я приходил вечером после учёбы, когда штатные сотрудники заканчивали работу, и с упоением изучал программирование. Turbo/Borland Pascal, Turbo Assembler, Macro Assembler, Borland C++ и Watcom C++. Занимался этим, что называется, до потемнения в глазах. Выучил наизусть основные прерывания MS-DOS по файлу интерактивной справки Tech Help.
Там же познакомился с так называемой Demo сценой — программами, которые рисовали красивые динамичные картинки, используя прямой доступ к буферу видеопамяти VGA.
Дома у меня компьютера тогда не было, так что всё свободное время я проводил в редакции. В институте вместо некоторых лекций читал книги по языкам программирования, взятые в библиотеки. Так познакомился, например, с Modula-2, Обероном и Ada. Ну и ещё Forth.
Писал программы в тетрадке, трассировал и отлаживал сначала на листочке, потом набрался опыта, и уже в голове. Кстати, очень полезная практика оказалась.
Потом был долгий и продуктивный период программирования на Delphi/Object Pascal. Я прошёл через все версии с Delphi 1 до Delphi 7. По дороге зацепил VBA как для разработки макросов в Office, так и для веб-страниц (ASP). Написал систему учёта входящих документов для филиала банка, в котором работал. С веб-интерфейсом.
В качестве сервера у меня стоял Microsoft IIS под Windows NT Server 4.0. В приложении использовались SQL-запросы. Это тоже было очень интересно.
Потом немного попробовал Java и C#, JavaScript и Python. На Java писал плагины для сервера Minecraft. Тоже был интересный опыт.
Продолжаю программировать и сейчас. В основном это Python и Nim, но время от времени я смотрю в сторону Rust.
Python – потому что бесконечное количество библиотек на все случаи жизни, простой и понятный синтаксис.
Rust – потому что безопасный язык, который, к тому же активно продвигается лидерами индустрии.
Nim – потому что многоплатформенный компилируемый язык, в котором сочетаются достоинства Python и Object Pascal. Он мне настолько нравится, что массовость использования не имеет значения. Тем более, что в нём можно легко использовать C-библиотеки.
О программировании я могу говорить и писать бесконечно, поэтому нужно остановиться и закончить этот пост каким-то выводом.
Программирование — отличная гимнастика для ума и профилактика возрастной деградации мозга. Но даже если бы это было не так, я бы всё равно писал программы.
Есть несколько вещей, которые я делал бы, даже если бы мне не нужно было зарабатывать деньги, и программирование — одна из них. О других моих страстных увлечениях напишу в другой раз.