Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #53, АПРЕЛЬ 2005 г.

На чем и как

Крис Касперски ака мыщъх

Спецвыпуск: Хакер, номер #053, стр. 053-056-3


Остальные языки программирования используются намного реже. Java в основном применяется во встраиваемых системах, например, в тех же сотовых телефонах. В web-программировании до недавнего времени активно использовался Perl, но сейчас он начинает сдавать позиции, уступая PHP. Оба интерпретатора бесплатны, но их дальнейшая судьба под угрозой. На рынок сетевого программирования легла грозная тень надвигающейся эпохи .NET, за которой стоит Билл-разрушитель, а "Bill always wins". Базы данных, в России традиционно писавшиеся на Шкипере и Фоксе, сейчас реализуются на встроенных макроязыках типа Visual Basic'а, обслуживающего монстров вроде Access или Excel. Про 1С-бухгалетерию я уже и не говорю. Но ведь это тоже программирование! Пускай и в наиболее извращенной форме. В общем, языков много хороших и разных, и каждый из них может тебе в чем-то пригодиться ("Но не программируйте на Visual Basic, если вы можете этого избежать" (с) Дао программирования - прим. Горл).

Как писать

В правильно спроектированной программе можно выделить три независимых уровня: слой сопряжения со средой (оборудованием/операционной системой), "вычислительная" часть и пользовательский интерфейс. Эти уровни предъявляют различные требования как к языкам программирования, так и непосредственно к самим программистам. Обычно они реализуются разными людьми, образующими программистскую команду. Конечно, утилиту в несколько тысяч строк исходного кода можно сварганить и самостоятельно, но мы же не об этом сейчас говорим. Рассмотрим внутреннюю структуру типичного приложения (десятки и сотни тысяч строк исходного кода) во всех подробностях.

На глубине

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

Для абстрагирования от операционной системы на все API-функции надеваются "обертки". Хорошим примером тому служит стандартная библиотека С - fopen и malloc работают и в Windows 3.х/9х/NT, и в *nix, и даже в MS-DOS, в то время как CreateFile и HeapAlloc - только в Windows 9x/NT. Тем самым С частично абстрагирует нас от операционной системы, а Delphi/C++ Builder идут еще дальше. Слагающие их библиотек образуют что-то вроде операционной системы в миниатюре, и изучать win32 становится необязательно (только чур я тебе этого не говорил!). Простой перекомпиляции достаточно, чтобы перенести программу на Linux, а с некоторыми ограничениями и на другие операционные системы.

Назад на стр. 053-056-2  Содержание  Вперед на стр. 053-056-4