Клубове Дир.бг
powered by diri.bg
търси в Клубове diri.bg Разширено търсене

Вход
Име
Парола

Клубове
Dir.bg
Взаимопомощ
Горещи теми
Компютри и Интернет
Контакти
Култура и изкуство
Мнения
Наука
Политика, Свят
Спорт
Техника
Градове
Религия и мистика
Фен клубове
Хоби, Развлечения
Общества
Я, архивите са живи
Клубове Дирене Регистрация Кой е тук Въпроси Списък Купувам / Продавам 04:58 08.05.24 
Клубове/ Компютри и Интернет / Delphi Всички теми Следваща тема Пълен преглед*
Информация за клуба
Тема Историята, от машинен код до Длфи.нет (на руски)
Автор NikB (любопитен)
Публикувано04.07.06 16:46  



А.Я. Архангельский
Delphi 2006
Справочное пособие
Язык Delphi, классы,
функции Win32 и .NET


Начиналось все с программирования в кодах машин М20 и М220 (сейчас
уже мало кто помнит, что были такие отечественные ЭВМ, уступавшие лучшим
американским образцам по быстродействию и прочим основным характеристи-
характеристиками не более чем на 10—20 %). Тогда программист был полным хозяином ма-
машины. Ему была доступна каждая ячейка памяти. Была сотня ячеек, зарезер-
зарезервированная под некоторые стандартные функции, но и их содержимое было из-
известно и программист мог по желанию изменять в них все, что хотел. При вы-
выполнении программ не было практически никаких накладных расходов, свя-
связанных с операционной системой, с распределением памяти и т.п. Так что эф-
эффективность программ целиком определялась способностями программиста,
теми алгоритмами, которые он придумывал для решения своих задач. В некото-
некоторых отношениях это был золотой век программирования. Но, конечно, только
в некоторых отношениях.
Создавать хорошие алгоритмы и программы было можно, а вот создавать
системы программ на том уровне было практически нереально. Да и разработка
большой программы, ее отладка и тестирование были необычайно трудоемкими
процессами. Поэтому как спасение было воспринято появление языков высокого
уровня — Алгола и Фортана. Эти языки, особенно Фортран (Алгол мне не нравил-
нравился и на нем я практически не работал), на порядки ускорили разработку, вывели
ее на качественно новый уровень, позволили реализовывать действительно круп-
крупные проекты. Но ничто не дается даром. Языки высокого уровня положили нача-
начало отрыву программиста от компьютера. Программист перестал безраздельно вла-
владеть всей памятью компьютера и всеми процессами, протекающими при исполне-
исполнении программы. Эффективность программ стала зависеть не только от програм-
программиста, но и от той или иной реализации компилятора. На первых порах это было
довольно болезненно, в том числе и для меня. Поэтому, когда слышишь сейчас от
некоторых программистов жалобы на то, что такие системы, как Delphi, слиш-
слишком облегчили программирование и убивают само искусство программирования,
остается только улыбаться. Подобные жалобы, и гораздо более обоснованные, раз-
раздавались за 20 лет до рождения Delphi. И ничего страшного не случилось, про-
программирование не умерло, хотя, конечно, кардинально изменилось.
Следующая революция было связана с появлением персональных компь-
компьютеров и таких языков, как Pascal и С. Первый продукт фирмы Borland — Turbo
Pascal явился эффективнейшим инструментом разработки как отдельных про-
программ, так и первых систем программ. Почему-то считалось и считается, что
Turbo Pascal — это в основном прекрасное средство обучения программирова-
программированию, а не реальной разработки. Смею заверить, что это не так. На Turbo Pascal
1.1.1 ¦ Немного истории
и Turbo С удавалось создавать и отдельные программы, и оболочки, обеспечиваю-
обеспечивающие совместное выполнение нескольких программ, разработанных к тому же
на разных языках. Благодаря развитому механизму указателей вернулась воз-
возможность хотя бы в усеченном виде управлять памятью. Указатели использова-
использовались всюду — как итераторы массивов и списков, как средство графики, как
основа создаваемых оболочек наборов программ. Механизмы прерываний по-
позволяли отслеживать процессы в приложениях. А включение в код фрагментов
на Ассемблере, казалось, возвращало программиста к временам, когда он дей-
действительно владел машиной.
Но существенно расширившиеся возможности программирования стали
бурно приближать очередной кризис. Игра с указателями, очень специфичная
и требующая большой аккуратности, начала мешать созданию жизнеспособных
программ, поддерживающих длительное сопровождение и модернизацию. При-
Приходилось придумывать какие-то программные структуры, которые прятали бы
внутрь себя всякие тонкости реализации — это были зародыши того, что позднее
было названо объектами. Пожалуй, еще большие проблемы возникали с управ-
управлением бурно развивающимся терминальным оборудованием. Хорошо помню,
сколько сил было затрачено на борьбу с мышью, точнее на программную обра-
обработку дребезга ее контактов. А потом оказалось, что решение, придуманное для
одной конструкции мыши, не подходит для других мышей.
Решением всех накопившихся проблем явилась разработка API, стандар-
стандартизировавших взаимодействие с операционными системами и с оборудованием,
а также появление поколения объектно-ориентированных языков: C++, Object
Pascal и других. Завершением этой очередной революции явилось создание сис-
систем визуального проектирования, начавшееся с Visual Basic и достигшее, на мой
взгляд, наивысшего совершенства в Delphi. Опять пришлось кардинально ме-
менять методику проектирования, с горечью выбрасывая свои прежние наработ-
наработки, которые теперь безо всяких усилий стали решаться с помощью классов.
И опять программиста отлучили от компьютера, на котором исполняются его про-
программы. Теперь уже трудно стало представлять себе, что же реально делается
при выполнении программы, тем более, что-многие используемые классы были
толком не документированы. А во что компилятор превращает ваш код — об
этом можно только догадываться, представляя, а как бы ты сам это сделал. Но
зато опять на порядки ускорилось создание программ. Новые подходы позволи-
позволили делать за считанные минуты то, на что раньше уходили месяцы (на собствен-
собственном опыте знаю, сколько сил требовала раньше разработка с нуля какой-нибудь
кнопочки или окна редактирования). А технологии, посыпавшиеся далее, как из
рога изобилия, сделали относительно несложной разработку и распределенных
систем. Опять у некоторых программистов возникло недовольство: дескать про-
программирование настолько облегчилось, что им может заниматься теперь кто угод-
угодно. Опять стали поговаривать о кончине искусства программирования. Да непра-
неправильно это! Облегчение процесса программирования — это прекрасно. И приток
в программирование людей, ранее с ним не связанных, можно только приветство-
приветствовать. Программы важны не сами по себе — они должны эффективно решать те
или иные задачи конкретных предметных областей. Так что чем больше специа-
специалистов из этих областей получает возможности программировать, не погружаясь
в специфические тонкости этого процесса, тем более ускоренными темпами будут
внедряться в жизнь и практику информационные технологии.
32 Глава 1 ¦ Краткий обзор .NET и Delphi 2005 - 2006
Даже этот беглый исторический экскурс показывает, что революции в про-
программировании — дело обычное, повторяющееся не реже, чем раз в 10 лет. А в
2005 году как раз исполняется 10 лет системе Delphi. Так что, как по расписа-
расписанию, мы стоим на пороге новой революции, связанной с появлением платформы
.NET и ее языков нового поколения — С#, Delphi .NET (рассмотрен в данной
книге), управляемый C++ и др. Впрочем, необходимость именно этой револю-
революции неочевидна для тех, кто работает в Windows и кому не приходилось ломать
голову над тем, как перенести свою программу на рабочую станцию SUN с ее
операционной системой Solaris, или на набирающую силу платформу Linux, или
над тем, как работать в сети, содержащей разные компьютеры с разными опера-
операционными системами. Это те основные проблемы, которые призвана решать
.NET. Но языки нового поколения решают попутно и много других задач. Они
пленяют последовательным проведением объектной идеологии, своей относи-
относительной простотой, небывалым богатством библиотек, облегчающим решение
многих задач, легкостью сопряжения модулей, разработанных на разных язы-
языках программирования, прекрасными компонентами, используемыми при про-
проектировании графического интерфейса пользователя.
Есть, конечно, и некоторые сомнения, связанные с полной и принципиаль-
принципиальной оторванностью программы от компьютера и той оболочки, которая испол-
исполняет разработанный вами код. Программист почти полностью избавлен от работы
с памятью и не знает, когда сборщик мусора решит удалить из памяти ненуж-
ненужные объекты, и вообще станет ли он этим заниматься. Непредсказуемо также,
когда и какие части программы будут загружаться в память компьютера. Сло-
Словом, исполнение программы — практически неуправляемый процесс и целиком
зависит от эффективности решений платформы .NET. Оценить эту эффектив-
эффективность можно будет только после того, как на .NET начнут разрабатываться круп-
крупные проекты. Но надо учесть, что крупнейшие мировые корпорации, и, прежде
всего, Microsoft, вложили огромные средства в разработку .NET, сделали став-
ставку на эту технологию. Так что хотим мы, или нет, но очень скоро программиро-
программировать придется с учетом требований этой платформы. И не имеет смысла печа-
печалиться по поводу очередной революции. Те, кто сейчас осваивает .NET, завтра
окажется на коне.
Borland в Delphi 2005 и 2006 сделал все, чтобы переход к .NET был посте-
постепенным, насколько это возможно. С помощью Delphi 2005 и 2006 можно про-
продолжать разрабатывать приложения для Windows, не думая о .NET. Но лучше,
чтобы не отсечь возможность последующей миграции приложения в .NET, и в
этом случае помнить и стараться учитывать определенные требования .NET. На-
Например, пробовать обходиться без использования указателей. Переход к .NET
возможен в Delphi 2005 и 2006 через приложения VCL .NET. Такой переход осу-
осуществляется наиболее мягко. Многие приложения просто перейдут на новую
платформу автоматически. Ну а другие можно переводить по частям, оставляя
временно непереводимые фрагменты как так называемый неуправляемый код.
А затем можно постепенно заменять эти фрагменты кодом, совместимым с .NET.
На этом, я думаю, стоит закончить отвлеченное лирическое вступление
и перейди к предметному обсуждению .NET,



Цялата тема
ТемаАвторПубликувано
* Историята, от машинен код до Длфи.нет (на руски) NikB   04.07.06 16:46
. * Re: Историята, от машинен код до Длфи.нет (на руски) TTRex   06.07.06 23:57
Клуб :  


Clubs.dir.bg е форум за дискусии. Dir.bg не носи отговорност за съдържанието и достоверността на публикуваните в дискусиите материали.

Никаква част от съдържанието на тази страница не може да бъде репродуцирана, записвана или предавана под каквато и да е форма или по какъвто и да е повод без писменото съгласие на Dir.bg
За Забележки, коментари и предложения ползвайте формата за Обратна връзка | Мобилна версия | Потребителско споразумение
© 2006-2024 Dir.bg Всички права запазени.