Исходные файлы являются просто текстовыми файлами ASCII. ASCII означает конкретный способ кодировать буквы в битовые образы. В файле ASCII, на каждый символ имеет восемь битов. Это создает резерв "алфавита" на 256 отдельных символов, в этих восьми двоичных цифрах можно сформировать это множество уникальных образцов (два в восьмой степени равно 256 — т. е. число комбинаций из восьми двоичных разрядов, — прим. перев.). На практике, конечно, мы стремимся ограничить себя знакомыми буквами и цифрами. Битовые шаблоны используются, чтобы представить эти буквы и цифры такими же, как те, которые физически перфорировались на бумажную перфоленту моим телетайпом в средней школе, который в свою очередь был таким же, как те, что использовались телеграфной промышленностью в течение десятилетий. Текстовые файлы ASCII, другими словами, — те же самые телеграммы, и как у таковых у них нет всяких типографских украшалок. Но по той же причине они вечны, поскольку код никогда не меняется, и универсальны, поскольку любая из когда‑либо написанных программ для редактирования и обработки текстов "в курсах" относительно этого кода. (То есть, конечно, появляются всякие монстры, типа Unicode — удвоенная таблица из 16 разрядов (65536 комбинаций), в которой можно хранить весь китайский алфавит для захвата рынка ПО на родине Мао, но ASCII понимает любой уважающий себя компьютер. Шутка в тему: как на глаз отличить письма в кодировке ASCII и Unicode? Элементарно: маленькие письма — ASCII, большие — Unicode ;))) — Прим. перев.)
Следовательно, почти любая софтина может использоваться, чтобы создать, отредактировать, и прочитать файлы исходной программы. Объектные кодовые файлы, затем, создаются из этих исходных файлов специальной программулей, которая называется "компилятор", и обрабатываются до состояния рабочего приложения другим напильником, который называется "компоновщик". (Это священная троица программ, с которой начинается жизнь почти любого компьютера: редактор текстов, компилятор объектных кодов, и "редактор связей" или компоновщик — те блестящие молотки, которыми куча мертвого железа превращается в полезный универсальный инструмент. — Прим. перев.)
Триада редактора, компилятора, и компоновщика, взятых вместе, формирует сердцевину системы разработки программного обеспечения. Теперь есть возможность вбухать много денег в чистенькие системки разработки с красивенькими графическими интерфейсами пользователя и различными эргономическими расширениями (О! Как RAD каждый программист, которому дан в ощущениях процесс Быстрой Разработки Приложений. В некоторых случаях это могло даже быть хорошим и разумным способом тратить деньги. Но на этой стороне дороги, самым лучшим программным обеспечением являются обычно свободные вещи. Редактор, компилятор и компоновщик для хакеров то же самое, чем были пони, стремена, и "комплекты стрельбы из лука" для Монголов (ну, колчан со стрелами и тугой лук — это в своем роде и есть комплект джентльменского арчера, будь то древний монгол или современный энтузиаст любимого спорта английских йоменов и славных парней робин–гудов, так что мой перевод archery sets прошу считать адекватным — прим. перев). Хакеры живут в седле (то есть в Сети? а где живут монголы? — неодумение пререв.), и "хакают" своими собственными инструментами, даже когда используют их, чтобы создать новые приложения. Это в натуре непостижимо, что инструментальные средства высшей пробы могут создаваться с чистого листа инженерами продукта. Даже если они — самые яркие инженеры в мире, они просто в меньшинстве.