ГлавнаяТексты

logo

ТЕКСТЫ

Программирование, философия UNIX и проект GNU

Я начал программировать на BASIC на микрокомпьютерах Sinclair ZX-81 и ZX-Spectrum, а позже на системах VAX/VMS с их компилятором Fortran. Я никогда не бросал Fortran, который остаётся моим любимым языком программирования, поскольку он наиболее прямо переводит математические формулы в программные инструкции и очень ловко работает с текстовыми файлами. С активным приходом GNU/Linux в конце 90-х я освоил другие скриптовые языки, такие как bash, gnuplot, TCL/Tk, Python и многие другие... А сегодня, с помощью искусственных интеллектов вроде "DeepSeek", переводить или создавать код на любом языке становится всё проще.

В книге "Искусство программирования для UNIX" Э. С. Реймонда очень ясно описана философия UNIX, которую я принял как отношение к программированию и к решению многих инженерных задач.

Некоторые основные идеи UNIX:

  1. Пишите программы, которые делают одно дело и делают его хорошо.
  2. Пишите программы, чтобы они работали вместе.
  3. Пишите программы для работы с текстовыми потоками, потому что это универсальный интерфейс.
  4. Данные правят. Если вы выбрали правильные структуры данных и хорошо всё организовали, алгоритмы почти всегда будут очевидны (вкладывайте знание в данные, чтобы логика программы была глупой и надёжной).
  5. Кен Томпсон: В случае сомнений используйте грубую силу.
  6. Время программиста дорого, берегите его в ущерб машинному времени (сегодня это очень актуально с ИИ).
  7. Делай проще, тупица! (KISS = Keep It Simple Stupid!)
  8. И другие, которые я время от времени перечитываю в книге Э. С. Реймонда...

Второе фундаментальное понятие — это GNU и свобода свободного программного обеспечения согласно проекту GNU Ричарда Столлмана. Свободное программное обеспечение — это вопрос свободы пользователей запускать, копировать, распространять, изучать, изменять и улучшать программное обеспечение. Более точно, речь идёт о четырёх видах свободы для пользователей программ:

  1. Свобода запускать программу с любой целью
  2. Свобода изучать, как программа работает, и адаптировать её под свои нужды
  3. Свобода распространять копии, чтобы помогать своим соседям
  4. Свобода улучшать программу и публиковать свои улучшения, чтобы всё сообщество могло извлечь пользу

Простые, но революционные идеи проекта GNU и философии UNIX (в частности системы GNU/Linux) создают среду, в которой программисты, математики, физики и инженеры могут работать естественно, свободно и эффективно. GNU служит компьютерной науке и многому другому.