| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Философия программирования > Виртуализация |
| Автор: Се ля ви 14.7.2005, 13:31 |
| Очень часто в спорах о преимуществах языков и платформ программисты бъются, как рыба об лёд, пытаясь объяснить то, что называется простым словом - Виртуализация. Виртуализация - это концептуальный подход, который лежит в основе информационного развития общества. О преимуществах и недостатках виртуализации по сути пишется много, но этим спорам не хватает терминологической базы, а вместе с тем и понимания сути феномена - из-за чего регулярно изобретаются всё новые и новые велосипеды. Виртуализация - это то, почему С++ лучше ASM`а и то, почему Java и языки .NET лучше С++ в тех областях, где они действительно лучше. Вот, небольшая статья на эту тему в IE Magazine, которая расставляет всё по местам, наводя порядок в понятийной базе - http://iemag.ru/?ID=492249 |
| Автор: batigoal 14.7.2005, 14:54 | ||
| Прочитал. Статья интересная, хотя я понял не все. Но как она соотносится с
Что ты имеешь в виду? |
| Автор: Се ля ви 14.7.2005, 15:15 | ||
Я имею в виду, что виртуализацией как раз-таки и описываются такие вещи. Т.е. виртуализация - это стыки между уровнями развития, она позволяет осуществить отделение формы от содержания. Концепция развития, основанного на виртуализации, в целом состоит в том, что переход на новый уровень осуществляется с потерей функциональности, но преимущества этого перехода на новый уровень перекрывают потерю функциональности. Система находит для себя некоторое состояние с некоторыми универсальными возможностями - и прыгает в новый уровень для более качественного их использования, меняясь уже качественно, а не количественно. Вот взять приимер - человек и животные. Животные эволюционировали-эволюционировали, менялись, приспоабливались - и вот, появился человек. По меркам животных, человек не был идеальным - зубы и когти у него были слабее, чем у тигра или льва, бегал он медленнее гипарда и лазал по деревьям медленнее, чем пантера или рысь. Но засчёт хватательной конечности он получил возможность использовать орудия труда - это-то и дало огромную свободу действий, что бы освоить которую, уже не нужно было эволюционировать телесно, достаточно было изменять поведение - эволюция тела на этом закончилась, форма (тело) отделилась от содержания (мышление) и развиваться стала лишь последняя, с помощью виртуализации используя универсальность тела. Так же и с многим другим. В программировании - был ассемблер, на котором можно было писать долго и сложно, сделали Си, бейсик, паскаль, программы на которых, безусловно, не были идеальными в дизасемблированном скомпилированном виде, но тем не менее, обладали преимуществами в плане достаточности более низкой квалификации программиста и большей скорости разработки. Встала остро проблема утечки памяти и путаницы с ссылками и множественным наслеедыванием в крупных проектах - с ней справились, изобретя Java и, в последствии, .NET - и т.д. Надо было манипулировать данными - сделали ещё более высокоуровневый язык четвёртого поколения - SQL, который, к сожалению, обрезал ну уж очень много возможностей, почему возник специализированный откат к языкам третьего уровня, такой как подходы PL/SQL и TransactSQL. И всё это - Виртуализация Я просто хотел придать некоторую форму своим мыслям на эту тему, что бы навести в голове какой-то порядок. Думаю, это будет полезно и другим |
| Автор: batigoal 14.7.2005, 15:36 | ||
Да. К тому же еще и интересно. Я понял тебя так. Ты хочешь сказать, что языки, подходы и методики движутся вперед для удовлетворения все новых и новых появляющихся требований, но за это мы платим отказом от старых требований (например, скорость работы, в случае с Си). Не полным, конечно, поэтому Си остается актуальным в своих областях. В целом получается полная копия эволюционного процесса - повышая приспособляемость, теряем универсализацию (в плане нашей базы - языка программирования). А здесь нам предлагается отвлечься от реализации, оставив ее фундаментом, и перейти на более абстрактное мышление (в данном случае предполагается мыслить в терминах бизнес-процессов). А потери в универсализации мы наверстываем за счет хорошо формализованных механизмов взаимодействия. |
| Автор: Се ля ви 14.7.2005, 16:00 |
| Lamer George, хорошо обобщил. Так вот, в продолжении темы, есть такая мысль, что когда виртуализация происходит, то это влечёт обвал рынка и скатывание специолистов в области тех технологий, которым отведена роль фундамента, до уровня обслуживающего персонала. И действительно, там, где развития особенно нет, там и специалисты не так ценятся. Сейчас это массово происходит с системмными администраторами - как только их работой стало просто обеспечение фундамента для разработчиков (т.е. разработчики от них виртуализировались), сразу популярность этой профессии стала идти на убыль, в перспективе скатываясь до уровня сантехников. Из этого следует неутешительный вывод - когда разработчиков виртуализируют, тогда и их престиж станет историей. Пока мне видется попытка виртуализироваться от программистского труда в развитии технологий моделирования - вот почему я такое внимание стараюсь уделять UML`у - как только эта технология станет значительно более зрелой и автогенерируемый по диаграммам код сможет действительно поспорить с набираемым в-ручную - это станет началом конца для простых программистов, и на первый план выйдут архитекторы, которые смогут обходиться без программистов. Вот такие мысли... |
| Автор: batigoal 14.7.2005, 16:16 |
| Оффтоп: Есть и другой путь сохранения своего социального статуса (а в перспективе - и его повышения) - уход из программирования в руководство. Правда, работу архитектора можно считать ступенькой на этом пути |
| Автор: Се ля ви 14.7.2005, 16:37 |
| Вобщем-то да, управление программными проектами - один из трёх вариантов, частично совподающий с архитектурой. Ещё, как выход для технического специалиста, есть системный анализ с целью формализации предметной области - и я выбрал для себя на перспективу пока это направление Конкретный выбор между этими тремя вариантами для того, кто хочет идти нога в ногу со времянем, будет зависеть от его талантов и умения общаться с людьми |
| Автор: batigoal 14.7.2005, 16:41 | ||
А это требует знаний предметной области, поэтому надо выбирать ее заранее и получать второе образование (в общем случае). |
| Автор: Се ля ви 15.7.2005, 13:05 | ||
Ну, тут на самом деле тоже с трёх сторон можно смотреть. Реально, системными аналитиками становятся 3 катеории людей: 1) Бывшие разработчики 2) Бывшие эксперты предметной области 3) Бывшие клиенты. У каждой группы свои плюсы и минусы. У бывших разработчиков отличное понимание того, какую задачу можнорешить, а какую - нет, т.е. они идеальны для тех разработчиков, которым они задачи ставят, что по сути выражается в том, что они частично думают за них. У бывших экспертов предметной области напротив - лучшее понимание сути бизнес-процессов, они способны качественнее вычленить то, что необходимо автоматизировать и на уровне логической схемы это расписать. Т.е. они думают за тех, кому систему эксплуатировать и облегчают жизнь в первую очередь им. Наконец, у бывших клиентов отличное понимание заказчика, они способны лучше понять конкретное его запросы и его интересы, выделив приоритетные именно для него моменты и их не так сильно шарахает в сторону полной автоматизации всего, что происходит на предприятии, раздувания бюджета и прочего - они могут качественно отделить то, что остро нужно от того, что не так остро нужно. Т.е. они больше думают за заказчика. В идеале, канешь, должны быть представители всех трёх групп аналитиков, которые вместе ведут переговоры и совместно составляют проект, работая в сцепке. Ну или должен быть один гигант мысли, который будет брать на себя функции всех трёх. Последний, если он неплохо ориентируется в широком спектре предметных областей, будет просто богом, гуру автоматизации. Я к этому стремлюсь в отдалённой перспективе, пока же больший акцент всё-таки на первом варианте. |
| Автор: COVD 31.8.2005, 17:06 |
| А мне кажется это все - "старая песня о главном". Только термин новый. Почему "виртуализация"? Мне кажется, в русском языке слово "виртуальный" применяется в смысле "нематериальный, искусственный". Ну, а так, все правильно - это жизнь (c'est la vie). |
| Автор: Дрон 31.8.2005, 17:26 |
| Се ля ви Мне кажется, то о чём ты в начале говорил называется не "виртуализация" (я и слова-то такого никогда не слышал), а "абстрагирование". |
| Автор: Се ля ви 31.8.2005, 17:41 |
| Дрон, скорее так, абстрагирование - это приём, а виртуализация - процесс. |
| Автор: unicuum 29.7.2006, 05:22 |
Смотрю в толковый словарь АБСТРАКЦИЯ (от лат . abstractio - отвлечение) ВИРТУАЛЬНОЕ (кажущееся) КОНЦЕПТ (от лат . conceptus - понятие) КОНЦЕПЦИЯ (от лат . conceptio - понимание) И ни каких там приёмов, процессов и прочего. Всё предельно ясно. На мой взгляд, виртуальное программирование заключается в том, чтобы создать среду, которая будет показывать одно вместо другого. А чтобы работа по созданию этой системы не прошла даром, то самое другое должно быть более понятным и простым во взаимодействии с программистом, чем изначальные данные. |
| Автор: arilou 5.9.2006, 14:06 |
| Се ля ви, хорошая статья - почему-то только сейчас прочитал. А ведь так оно и есть. И вот DSL языки появляются... Добавлено @ 14:08 о боже! какой клевый ресурс! +1 |