dz offline
Третья профессия
Привет, дорогой читатель, привет. Перед вами – моя первая в жизни колонка. Образец третьего, как минимум, ремесла. До сих пор я зарабатывал на жизнь сначала паяльником, потом программированием, и вот-на тебе.. Ну что ж, почему ваш покорный слуга бросил заниматься ?????ками – понятно: направление сие потеряло перспективы, ибо очевидно, что в аналоговой технике нового уже почти совсем нет, а в цифровой – то же программирование, только на убогом и ограниченном уровне. Программирование же реальное, с редактором текста и компилятором в зубах обещало голубые дали и золотые горы, да и сейчас, собственно, обещает. Нет, прогресс есть, не поймите меня превратно; например, Страустрап донес до программистских масс первичное понятие об ООП, и массы тут же принялись – нет, не программировать в новой модели – дискутировать: а ????? оно, это ООП, или и так, без , валенком пинаючи, сойдет... Вот ведь люди – лет 10 трепались про то, как жить без goto, и только вроде начали без него жить, как появилась новая тема. Это, собственно, не страшно – дискуссии жить не мешают, но плохо то, что пока они не набалаболятся, ООП не попадет, скорее всего, в... Бейсик. А ведь не секрет, что именно он, убогий, он, вездесущий (а не широко известные в узких кругах супер-лидеры типа "Смоллтока"), – является мерилом развития программирования, ибо знаком каждому чайнику И тем люб Макдональдсам и Барбиклепам от программирования, кстати.
Так что ждем-с. Не звезд, конечно – какие тут звезды! Тут проза программистской жизни – железо. Память, процессоры, шины... Помните, как мы все торчали (иного слова не найти) от 386-х? Нет, правда – зрелище было чарующим! EGA покоряла умы разрешением 640 на 350, два мега памяти были выше крыши, а скорость процессора просто приводила в негодность почти все игрушки. Пробовали в "Диггера" на 386-й? Вот-вот. А что потом? Ну 486... ну Пентюх... Ну Про... взлет-то производительности где?! Видели новый компилятор C++ от IBM? Вынь ему и положь 24 Мбайт в машину, а не то быстрее будет вручную компилять – открыл справочник по ассемблеру и вперед... Это не критика в адрес компилятора, нет – он тратит эти 24 мега на дело и стоит того, чтобы набить в машину все 32, тут все честно. Просто программирование вошло в зону фазового перехода – и, как при вскипании воды, жрет всю возможную мощь машин, какую ни дай, а результата – почти не видать. Он будет, результат, будет, дайте срок Пройдет время, и все угроханные на компьютеризацию силы вскипят, прорвутся фонтаном новых, сегодня еще даже не осознаваемых возможностей.
Впрочем, хватит красивых слов – лучше попробуем разобраться, куда же уходят вкладываемые в компьютерный мир силы сегодня? Из какой фазы в какую он переходит? Чем это обернется в ближайшем будущем? На первый вопрос ответить не очень сложно, если обратиться к ретроспективе и отметить тот факт, что с первых дней и до сей поры программисты непрерывно развивали инструментальный аппарат программирования – поначалу в примитивном виде, делая всякие палки-копалки-компилилки из ассемблерного кремня, потом (осознав, что проблема гораздо шире и не решается созданием универсального языка программирования) в более широких масштабах. Одним из рубежей стал "Юникс", непревзойденный до сих пор образец инструментальной среды – типа гаража дяди Васи, где в белой рубашке и с кошельком делать нечего, зато при наличии некоторого мастерства можно собрать хоть танк, хоть кофеварку. Но создав "Юникс", программистский мир с ужасом осознал, что и он не охватывает проблему, и проблема-то, как горизонт, совсем не сузилась и не приблизилась, раздери ее фон Нейман. Со следующими ударами нашей артиллерии во врага полетели логическое, функциональное и объектно-ориентированное (00) программирование Первые два не нашли широкого понимания даже в своем стане, и до врага не долетели, третье – десять лет, полет нормальный. Результаты есть, и это обнадеживает, так что летим дальше.
Конечно, труд программиста сегодня уже не так похож на работу сапера, как в самом начале эпохи компьютеров, но и с работой отлаженного механизма процесс программирования все еще не сравнить. Вспомните, как часто даже крупные фирмы, вроде "Микрософта", создающие даже довольно примитивные продукты, вроде Windows, срывают заявленные сроки, да и продукт из года в год не теряет эдакой пикантной сырости, привносящей так много разнообразия в работу – то "ворд" разучится файлы записывать, то "корел" вздумает помочь художнику и пририсует чуток от себя, и т.д. и т.п. Все это – признаки нестабильности самой технологии программирования, и в первую очередь – слабой разграниченности компонентов программных продуктов. На всех уровнях, от переменных типа "строка" до сундуков типа "ворд". Ввиду того, что между компонентами не существует взаимной защиты , ошибки одной из них каскадом расплываются по "соседним отсекам", быстро доводя до нуля плавучесть всей программы, а подчас, как это происходит в DOS и Windows, и всей системы Решение всем известно, так как очевидно, но уж очень недешево. Привнесение в продукт должного разграничения компонентов часто оборачивается такими накладными расходами, что разработчик не выдерживает и сносит всю защиту к ядрене фене. На первый взгляд, это ускоряет работу программ и удешевляет требуемое "железо" – но скупой, как известно, платит, скажем так, неоднократно. Работа на подобном программном продукте превращается в борьбу с ним, в промежутках между приступами которой начинаешь задумываться – не слишком ли дорого обошлось "удешевление"?
Держит производителей еще и то, что психология покупателя, мягко говоря, странна изрядно. Он, замысловатый, не любит платить дороже в явном виде, живыми деньгами, зато косвенно может лить денежные фонтаны. Например, очевидно, что "бесплатное" телевидение оплачивается все равно зрителем – через повышение цен на товары, за счет которого производители покупают телерекламу. В итоге зритель и оплачивает все телевидение сполна, да еще и получает вместо нормальных телепередач изорванные рекламой ошметки. Плюс за производство самой рекламы выкладывает, в конечном итоге. Аналогично и с "софтом": действуя своими силами, мучаясь с некачественным продуктом, пользователь может угрохать до половины рабочего времени – тысячи долларов! А программы склонен все равно покупать примитивные и дешевые Разбить этот порочный круг – в интересах и пользователей, и программистов Этим и занимаемся.