Главное - не быть "программистом"
Страница 1 из 1
Главное - не быть "программистом"
Как пишутся компьютерные игры? Нет, когда-то, игру сначала придумывали, а потом программировали, но те времена счастливо канули в лету. Вот пара перлов с Форума "современных игроделов":
Как же происходит "программирование" сейчас?
Сначала выбирают два опорных "столпа": существующую компьютерную игру, которая "почти годится", и некоторый ее идеальный вариант ("такой же, но с перламутровыми пуговицами"). Затем начинается процесс "совместной разборки" обоих программ - углубления в их внутреннее устройство. Разборка длится до тех пор, пока не становится возможным, на основе понятых частей старой игры, с добавлением осмысленных модулей новых, собрать нечто работающее.
Иногда это просто, например, выясняется, что старая игра имеет встроенный редактор, возможности которого вполне обеспечат внедрение "инноваций". Или файлы ресурсов (контента) вполне могут быть быть хакнуты без правки программного кода. Но, иногда, при разборке от старой игры остается только "пшик". Или идея новой игры признается несостоятельной.
Метод "поиска наибольшего общего делителя" двух игр сам по себе ни хорош и не плох. Но есть подводные камни.
1. Необходим "третий столп" - какой-то набор знаний, позволяющий провести разборку. К сожалению, обычного для "современных игроделов" знания одного-двух языков программирования и лженауки - геймдизайна, совершенно недостаточно. Единственное, что они обычно могут, создать плохую копию старой игры "на своей элементной базе", часто, без понимания принципов игры. "Берем картину мироздания и тупо смотрим, что к чему..." - вот девиз настоящего программиста в процессе "совместной разборки". Тут важнее не приготовленный заранее багаж, но готовность учиться... Как говорил Гельвеций: "Знание некоторых принципов легко возмещает незнание некоторых фактов".
2. Сборка из двух плохих программ одной хорошей сама по себе не создает игры. Нужно предпринять некие меры (считающиеся у "современных игроделов" ненужной философией), чтобы в "это" было можно играть - сбалансировать стратегии и тактики игры, оценить реализацию авторской игры... Скорее всего, единственное работающее решение здесь - полностью выкинуть полученный результат и написать заново.
* Т.е. "современный программист" якобы должен представить все тупо в уме, написать код, рассчитав (допустим он кодит платформер) всю геометрию уровней, размеры/скорости, противников, и весь интерактив встречающийся по ходу, ну и так же мысленно представляя расположение интерфейсов, их удобство и юзабилити полагаясь лишь на свой третий глаз? Конечно же разукрасив в коде все красивыми комментариями, чтоб представлять было удобней.
* А давайте (сарказм.- G.) в игры так же играть - поставим ведьмака на паузу, откинемся на кресле, закроем глаза и мысленно пройдем игру самым интересным для нас способом - а то современные игроки тоже обленились - все им во всех красках покажи да расскажи, за ручку проведи, в конце в попу поцелуй - совершенно не осталось места для фантазии и свободы действий.
* Большая часть проблем решается визуальными компонентами. Мне обычно хватает пару часов на создание всего этого. (Если без доп функций, типо выводов графиков, рассчетов, обработки данных и тп).
Как же происходит "программирование" сейчас?
Сначала выбирают два опорных "столпа": существующую компьютерную игру, которая "почти годится", и некоторый ее идеальный вариант ("такой же, но с перламутровыми пуговицами"). Затем начинается процесс "совместной разборки" обоих программ - углубления в их внутреннее устройство. Разборка длится до тех пор, пока не становится возможным, на основе понятых частей старой игры, с добавлением осмысленных модулей новых, собрать нечто работающее.
Иногда это просто, например, выясняется, что старая игра имеет встроенный редактор, возможности которого вполне обеспечат внедрение "инноваций". Или файлы ресурсов (контента) вполне могут быть быть хакнуты без правки программного кода. Но, иногда, при разборке от старой игры остается только "пшик". Или идея новой игры признается несостоятельной.
Метод "поиска наибольшего общего делителя" двух игр сам по себе ни хорош и не плох. Но есть подводные камни.
1. Необходим "третий столп" - какой-то набор знаний, позволяющий провести разборку. К сожалению, обычного для "современных игроделов" знания одного-двух языков программирования и лженауки - геймдизайна, совершенно недостаточно. Единственное, что они обычно могут, создать плохую копию старой игры "на своей элементной базе", часто, без понимания принципов игры. "Берем картину мироздания и тупо смотрим, что к чему..." - вот девиз настоящего программиста в процессе "совместной разборки". Тут важнее не приготовленный заранее багаж, но готовность учиться... Как говорил Гельвеций: "Знание некоторых принципов легко возмещает незнание некоторых фактов".
2. Сборка из двух плохих программ одной хорошей сама по себе не создает игры. Нужно предпринять некие меры (считающиеся у "современных игроделов" ненужной философией), чтобы в "это" было можно играть - сбалансировать стратегии и тактики игры, оценить реализацию авторской игры... Скорее всего, единственное работающее решение здесь - полностью выкинуть полученный результат и написать заново.
Последний раз редактировалось: Gudleifr (Ср Июл 12, 2017 10:25 am), всего редактировалось 1 раз(а)
Gudleifr- Admin
- Сообщения : 3399
Дата регистрации : 2017-03-29
Re: Главное - не быть "программистом"
Замкнутый круг геймдева.
1. Конечно, если есть идея собственно компьютерной игры, то ее можно быстренько реализовать на каком-нибудь BASIC, строк этак в двадцать. Подобавлять туда фич, пока размер не вырастет до нескольких сотен строк - и забыть/выкинуть. Но такие игры уже никого не интересуют, нужен гигабайтный контент.
2. Управление гигабайтным контентом само по себе целая наука, и процесс коллективного творчества.
3. Это коллективное творчество быстро становится работой, не оставляющей возможности поиграть. Требуются конструкторы, позволяющие написать что-то веселое строк в двадцать... Далее см. 1.
***
Более того, с каждым витком этого круга мы все дальше уходим от реальной жизни:
Вот, например, на КВН в 2007 году радостно ржут над тем, как был бы поражен Билл Гейтс, увидев убогую советскую игру "Ну, погоди!" 1984 года.
А, вот герой фильма "К-9" 1989 года играет в подобную игру (Manhole) и почему-то не кажется ни убогим, ни отсталым:
Как будто было бы стильнее, если бы Белуши водил раскоряченными пальцами по разноперомы планшету современного планшета...
1. Допустим, есть работяга, целый день проводящий "в поле", который вечером хочет расслабиться.
2. Есть программист, умеющий заставить компьютер играть и расслаблять, который хочет помочь работяге.
3. Есть игрок, которому эти расслабление за компьютером интереснее работы.
4. Есть бизнесмен, который видит потенциальные возможности рынка игроков.
5. Есть игродел, который хочет втюхать бизнесмену свой продукт.
И кто-то хочет воспринимать копошение #5 всерьез? А кушать что будем?
1. Конечно, если есть идея собственно компьютерной игры, то ее можно быстренько реализовать на каком-нибудь BASIC, строк этак в двадцать. Подобавлять туда фич, пока размер не вырастет до нескольких сотен строк - и забыть/выкинуть. Но такие игры уже никого не интересуют, нужен гигабайтный контент.
2. Управление гигабайтным контентом само по себе целая наука, и процесс коллективного творчества.
3. Это коллективное творчество быстро становится работой, не оставляющей возможности поиграть. Требуются конструкторы, позволяющие написать что-то веселое строк в двадцать... Далее см. 1.
***
Более того, с каждым витком этого круга мы все дальше уходим от реальной жизни:
Вот, например, на КВН в 2007 году радостно ржут над тем, как был бы поражен Билл Гейтс, увидев убогую советскую игру "Ну, погоди!" 1984 года.
А, вот герой фильма "К-9" 1989 года играет в подобную игру (Manhole) и почему-то не кажется ни убогим, ни отсталым:
Как будто было бы стильнее, если бы Белуши водил раскоряченными пальцами по разноперомы планшету современного планшета...
1. Допустим, есть работяга, целый день проводящий "в поле", который вечером хочет расслабиться.
2. Есть программист, умеющий заставить компьютер играть и расслаблять, который хочет помочь работяге.
3. Есть игрок, которому эти расслабление за компьютером интереснее работы.
4. Есть бизнесмен, который видит потенциальные возможности рынка игроков.
5. Есть игродел, который хочет втюхать бизнесмену свой продукт.
И кто-то хочет воспринимать копошение #5 всерьез? А кушать что будем?
Последний раз редактировалось: Gudleifr (Сб Апр 09, 2022 12:26 pm), всего редактировалось 4 раз(а)
Gudleifr- Admin
- Сообщения : 3399
Дата регистрации : 2017-03-29
Re: Главное - не быть "программистом"
К чему это приводит?
Для чего игра пишется (на собственном опыте; как пример того, что нельзя гнаться за всем сразу и перескакивать с одного на другое)?
1. Мне плевать, кто и что написал до меня. Я пишу потому, что не могу не писать.
2. Я свободно ориентируюсь в том, что написали другие. И заведомо смогу не хуже. Почему бы не урвать свой кусочек славы, денег...
3. Я перерыл многое из написанного другими, но так и нашел того, что заставило "душу развернуться, а потом опять свернуться". И мне не важно, я напишу подобное или кто другой, главное, я хочу в это играть.
4. Другими написано много дельного и много ерунды. Я даже не хочу в это вникать. Но обсуждение этой вот конкретной темы (или рождение нового проекта) слишком похоже на игру само по себе и я хочу в нее поиграть.
И остался только п.2b - "Только бабки! Утром деньги - вечером стулья!"?
Для чего игра пишется (на собственном опыте; как пример того, что нельзя гнаться за всем сразу и перескакивать с одного на другое)?
1. Мне плевать, кто и что написал до меня. Я пишу потому, что не могу не писать.
2. Я свободно ориентируюсь в том, что написали другие. И заведомо смогу не хуже. Почему бы не урвать свой кусочек славы, денег...
3. Я перерыл многое из написанного другими, но так и нашел того, что заставило "душу развернуться, а потом опять свернуться". И мне не важно, я напишу подобное или кто другой, главное, я хочу в это играть.
4. Другими написано много дельного и много ерунды. Я даже не хочу в это вникать. Но обсуждение этой вот конкретной темы (или рождение нового проекта) слишком похоже на игру само по себе и я хочу в нее поиграть.
И остался только п.2b - "Только бабки! Утром деньги - вечером стулья!"?
Gudleifr- Admin
- Сообщения : 3399
Дата регистрации : 2017-03-29
Re: Главное - не быть "программистом"
Есть игры - иллюстрации каких-то идей (сначала они одни и были). Брали какую-либо игру и добавляли к ней компьютер для оживляжа. Или, наоборот, находили игровое решение какой-то реальной боевой задачи. Это игры для программистов.
Но, одни решения оказались более удобными для переноса на машину, чем другие. Более того, эти удобные решения часто оказывались настолько частными, что в них изначальная мат.модель и угадывается-то с трудом. Так появились игры для нормальных людей.
С переносом внимания бизнеса с запросов нормальных людей на рынок задротов-ботанов стало важнее не наличие в игре, собственно, игровых идей, но копипастинг обязательных элементов из других игр. Что в конце концов свелось к AAA хреновым симуляторам жизни с элементами а ля Марвел. Соответственно, игры для креативного класса (быдла).
***
Быдло - массовый потребитель. Креатитвный класс.
Форумный планктон - посетители, считающие, что с Форумом они "весят" больше, чем без Форума.
Мультимедиа продукт - то, что называет игрой быдло. Спам-атака на примитивные чувства игрока. Настоящая игра - там "на донышке".
Компьютерная игра - обычная игра, к которой прицепили компьютер.
Хорошая КИ - КИ, в которой компьютер делает то, чего нельзя достичь без него.
Плохая КИ - КИ, в которой компьютер делает то, что возможно и без него (картинки, музыка, виртуальная реальность, симулятор жизни...).
Старая игра, настоящая игра - игра, написанная для себя.
Составные части игры - идея, реализация и общественное мнение.
Быдлоигра - игра, в которой главное - общественное мнение. Создавались путем компиляции "опробованных" методов: WS3D, DuneII, PG, SP, H M&M, X-Com...
Геймплей - бессмысленная характеристика мультимедийного продукта.
Свобода - то, от чего отказывается игрок, садясь за КИ.
Реализм КИ - адекватность игровых переживаний реальным.
Искусство КИ - профанация.
Полное 3D - замена красивых картинок безвкусными моделями.
Смайлик - признак неуверенности в своей позиции.
Сделано нейросетью - подделка.
IT-специалист - инфоцыган.
Но, одни решения оказались более удобными для переноса на машину, чем другие. Более того, эти удобные решения часто оказывались настолько частными, что в них изначальная мат.модель и угадывается-то с трудом. Так появились игры для нормальных людей.
С переносом внимания бизнеса с запросов нормальных людей на рынок задротов-ботанов стало важнее не наличие в игре, собственно, игровых идей, но копипастинг обязательных элементов из других игр. Что в конце концов свелось к AAA хреновым симуляторам жизни с элементами а ля Марвел. Соответственно, игры для креативного класса (быдла).
***
Быдло - массовый потребитель. Креатитвный класс.
Форумный планктон - посетители, считающие, что с Форумом они "весят" больше, чем без Форума.
Мультимедиа продукт - то, что называет игрой быдло. Спам-атака на примитивные чувства игрока. Настоящая игра - там "на донышке".
Компьютерная игра - обычная игра, к которой прицепили компьютер.
Хорошая КИ - КИ, в которой компьютер делает то, чего нельзя достичь без него.
Плохая КИ - КИ, в которой компьютер делает то, что возможно и без него (картинки, музыка, виртуальная реальность, симулятор жизни...).
Старая игра, настоящая игра - игра, написанная для себя.
Составные части игры - идея, реализация и общественное мнение.
Быдлоигра - игра, в которой главное - общественное мнение. Создавались путем компиляции "опробованных" методов: WS3D, DuneII, PG, SP, H M&M, X-Com...
Геймплей - бессмысленная характеристика мультимедийного продукта.
Свобода - то, от чего отказывается игрок, садясь за КИ.
Реализм КИ - адекватность игровых переживаний реальным.
Искусство КИ - профанация.
Полное 3D - замена красивых картинок безвкусными моделями.
Смайлик - признак неуверенности в своей позиции.
Сделано нейросетью - подделка.
IT-специалист - инфоцыган.
Последний раз редактировалось: Gudleifr (Ср Апр 03, 2024 1:21 pm), всего редактировалось 2 раз(а)
Gudleifr- Admin
- Сообщения : 3399
Дата регистрации : 2017-03-29
Re: Главное - не быть "программистом"
Я знаю два способа играть интересно и бесплатно:
1. По-минимуму
Играете в своем дворе, классе, студ.группе, лаборатории, офисе. Сами придумываете, сами изготовляете необходимые настольные, спортивные, компьютерные принадлежности. Развиваете игру в игре. Надоедает - выбрасываете и придумываете новую игру. Со двора не выносите. По старости - описываете в мемуарах. См. "Кондуит и Швамбрания".
2. По максимуму.
Устраиваетесь на хорошую работу. Любите ее. Находите в ней игровые моменты и развиваете. Дорастаете до должности, когда вам платят за вашу игру, точнее за ее полезный побочный эффект. Ср. "Наука - есть удовлетворение своего любопытства за государственный счет".
1. По-минимуму
Играете в своем дворе, классе, студ.группе, лаборатории, офисе. Сами придумываете, сами изготовляете необходимые настольные, спортивные, компьютерные принадлежности. Развиваете игру в игре. Надоедает - выбрасываете и придумываете новую игру. Со двора не выносите. По старости - описываете в мемуарах. См. "Кондуит и Швамбрания".
2. По максимуму.
Устраиваетесь на хорошую работу. Любите ее. Находите в ней игровые моменты и развиваете. Дорастаете до должности, когда вам платят за вашу игру, точнее за ее полезный побочный эффект. Ср. "Наука - есть удовлетворение своего любопытства за государственный счет".
Gudleifr- Admin
- Сообщения : 3399
Дата регистрации : 2017-03-29
Re: Главное - не быть "программистом"
... начавшего программировать с какого-либо удобного обезьянника, а затем, постепенно, расширяющего свое знание за счет смежных областей и родственных задач. А можно ли начать изучать программирование с другого конца? Изнутри, а не снаружи?
Итак, суперхардкор. Нужно осилить, писаясь и плача, всего две книжки:
1. В.М.Брябрин, Программное обеспечение персональных ЭВМ, 1988 - DJVU, 2.75Мб.
Конечно, в те годы книжка писалась, как введение для пользователей (и даже тогда проигрывала в этом качестве печально известной книге Фигурнова), но где те пользователи? Где те компьютеры? За исключением некоторых вещей, которые можно кое-как сэмулировать на современном компьютере, все придется принимать на веру и практически абстрактно. Однако... Со смысловой точки зрения все осталось по-прежнему. Если тогда операционная система кое-как была способна на какую-то фичу, то, в большинстве случаев, "дальнейшее развитие" свелось к тому, чтобы доказать "сообществу", что красивое графическое оформление этой фичи целиком компенсирует неспособность сделать ее более удобной/разумной.
Так что, просто просмотреть эту книжку: мол, это так устарело, что и читать не буду, а то - очевидно тоже самое, что я уже понял,- ни в коем случае нельзя. Нужно тщательно пересчитывать функции и представлять насколько они покрывают область запросов пользователя. Что пользователь должен был делать сам, а что тогда мог компьютер.
Чтобы было легче, попробуйте посмотреть какие либо фильмы тех времен, те же "Военные игры" по Бишофу или технотриллеры по книгам Крайтона. Сойдут даже "Коломбо" и "Она написала убийство".
2. Л.Бек, Введение в системное программирование, 1988 - PDF, 27.6Мб.
Тут будет полегче. Хотя, описываемые тут компьютеры тоже вымерли, но, по крайней мере, многие термины употребляются до сих пор.
Итак, осилили. Теперь Вы знаете то, что все уже забыли. Сначала, для психологической разгрузки надо хорошенько поржать (конечно, Вас уже немножко посмешило описание Windows 1.0 у Брябрина). Берем любую книгу/журнал тех времен с красочным описанием возможностей компьютеров будущего...
***
Или, ту самую "зарубежную печать" - "В мире науки" - 11 1984 PDF, 37.1Мб или 12 1987 PDF, 25.7Мб. Приложите это к тому, что прочли в допотопных книгах - не правда ли, современная реализация этих чудес выглядит сделанной через задницу?
Что дальше? По уму, получив какую-то задачу, Вы, имея в голове примерную схему "что из чего следует", можете найти "что-то из современного", что бы заткнуть эту дыру. Например, написать и запустить что-то из книги Ч.Уэзерелл, Этюды для программистов, 1982 - DJVU, 9.74... Но тут современные производители подложили свинью: мол, хочешь программировать - купи обезьянник, без него ты даже не найдешь в какое место свои программы запихивать... Тут проще кому-нибудь на хвост сесть... и убедиться, что ваши тайные знания основ программирования никому не нужны... Или..?
P.S. Но, зато, в хорошей компании - DJVU, 9.41Мб (Лекции лауреатов премии Тьюрига).
Я попытался кое-как упорядочить - ФОРУМ #18. Но это только для тех, кто действительно хочет узнать, как работает ЭВМ...
Итак, суперхардкор. Нужно осилить, писаясь и плача, всего две книжки:
1. В.М.Брябрин, Программное обеспечение персональных ЭВМ, 1988 - DJVU, 2.75Мб.
Конечно, в те годы книжка писалась, как введение для пользователей (и даже тогда проигрывала в этом качестве печально известной книге Фигурнова), но где те пользователи? Где те компьютеры? За исключением некоторых вещей, которые можно кое-как сэмулировать на современном компьютере, все придется принимать на веру и практически абстрактно. Однако... Со смысловой точки зрения все осталось по-прежнему. Если тогда операционная система кое-как была способна на какую-то фичу, то, в большинстве случаев, "дальнейшее развитие" свелось к тому, чтобы доказать "сообществу", что красивое графическое оформление этой фичи целиком компенсирует неспособность сделать ее более удобной/разумной.
Так что, просто просмотреть эту книжку: мол, это так устарело, что и читать не буду, а то - очевидно тоже самое, что я уже понял,- ни в коем случае нельзя. Нужно тщательно пересчитывать функции и представлять насколько они покрывают область запросов пользователя. Что пользователь должен был делать сам, а что тогда мог компьютер.
Чтобы было легче, попробуйте посмотреть какие либо фильмы тех времен, те же "Военные игры" по Бишофу или технотриллеры по книгам Крайтона. Сойдут даже "Коломбо" и "Она написала убийство".
2. Л.Бек, Введение в системное программирование, 1988 - PDF, 27.6Мб.
Тут будет полегче. Хотя, описываемые тут компьютеры тоже вымерли, но, по крайней мере, многие термины употребляются до сих пор.
Итак, осилили. Теперь Вы знаете то, что все уже забыли. Сначала, для психологической разгрузки надо хорошенько поржать (конечно, Вас уже немножко посмешило описание Windows 1.0 у Брябрина). Берем любую книгу/журнал тех времен с красочным описанием возможностей компьютеров будущего...
***
- Спойлер:
- ТЕХНИКА-МОЛОДЕЖИ / 5/88
МИР, ПРИДУМАННЫЙ КОМПЬЮТЕРОМ
Искусство - один из каналов получения информации о мире. Возможно, это сравнение покажется кому-то слишком технизированным, даже грубым. Однако классический образ художника, обитающего в созданной его воображением "башне из слоновой кости", становится с каждым годом все архаичнее. Бурное развитие вычислительной техники многократно расширяет горизонты творческого поиска. Так считают многие. Композиторы получили звуковые синтезаторы, живописцы - электронную кисть, дизайнеры и даже скульпторы обращаются за советом к персональному компьютеру. Сотрудничество художников и инженеров являет порой поразительные результаты.
Наш рассказ - о компьютерной графике, точнее - о двух специфических областях ее применения - электронном кинематографе и новейших человеко-машинных системах, создающих "искусственные реальности".
Сергей АНДРЮШКИН, кандидат технических наук
ТАКОЕ КИНО
Первый шаг к компьютерным киномирам сделали, сами того не подозревая, режиссеры и операторы, начавшие снимать вместо громоздких реальных объектов их небольшие модели. Миниатюризация позволила показывать максимум экранных чудес (это слово вполне можно употребить без кавычек) - путешествия на другие планеты и межгалактические боевые действия, картины глобальных катастроф и встречи с фантастическими монстрами. Очень важно, что удавалось удешевить съемки, ведь бутафорией заменяли не только космическую, но даже обычную земную натуру. Наибольшей известности достиг в этом американец Джордж Лукас - автор знаменитых "Звездных войн".
Такая съемочная технология, однако, не совсем устраивала киношников. Потрафить запросам привередливой публики становилось труднее и труднее, и прокатчики требовали все более изощренных кинотрюков. Стало ясно: традиционными средствами в кинопроизводстве не обойтись. Несколько лет назад "Лукас-фильм" и другие киностудии обзавелись собственными компьютерными отделами. Вместо реальных декораций и персонажей появились полностью синтезированные ЭВМ объекты, состоящие из одной только информации. Так постепенно удалось исключить трудоемкие и опасные трюковые съемки, дорогой реквизит, не зависеть от капризовпогоды. Главное же, что компьютерная графика создавала зрелища, достойные восхищения.
Кадр из фантастического фильма "Трои" ("Престол"), снятого на студии Уолта Диснея. Это одна из первых кинокартин, созданных с применением компьютерной графики.
Считается, что эру компьютерного кинематографа открыл "Трон" - фантастический игровой фильм студии Уолта Диснея с довольно-таки банальным сюжетом. Компьютером в нем были созданы лишь отдельные сцены. Первый блин вышел, что называется, комом. Машинное творчество выглядело на экране весьма примитивно - на уровне посредственных мультфильмов. Зато "Последний "Старфайтер"" заставил зрителей усомниться: уж не посылают ли теперь съемочные группы я космос?.. Компания "Дигитал Продакшн", выпустившая этот 20-минутный научно-фантастический боевик и специализирующаяся на так называемых космических фильмах, с тех пор создает их только на компьютерах. Каждая секунда такого зрелища обходится примерно я 2тыс. долларов. Однако, если бы пришлось строить макеты звездолетов, расходы возросли бы многократно.
Какова же технология компьютерных съемок? Попытаемся хотя бы вкратце описать этот долгий и сложный процесс.
Сначала художники делают эскизы к основным сценам будущего фильма. Затем выполняются напоминающие чертежи детальные рисунки объектов, которые будут действовать в картине. Кстати, в одном из компьютерных видеороликов, рекламирующих автомобиль марки "понтиак", так и поступили: ЭВМ вместо фотографий "подсунули" готовую техническую документацию.
Исходным материалом для машинных графических построений может стать и техническая документация. Видеоролик, рекламирующий автомобиль "понтиак", снят не на основе рисунков, а по чертежам, введенным в память компьютера.
Но вот рисунки-чертежи готовы. Пора вводить их в память компьютера. О том, как это делается, скажем чуть позже. Пока же отметим, что чем детальнее проработанная картинка, тем больше времени занимает ввод данных в машину.
Иной paз уходят недели и даже месяцы, чтобы втолковать ЭВМ, как выглядит, например, звездолет. Зато когда компьютер "все понял", он может по команде режиссера свободно манипулировать объектами - крутить их, перемещать, деформировать. Да так, словно они не эфемерные, а самые что ни на есть материальные.
Следующий этап - отработка самого сюжета. Авторы картины просматривают варианты сцен, корректируют зрительные эффекты. Объекты-"актеры" еще не выглядят настоящими, да этого пока и не требуется - на экране появляются лишь их черно-белые контуры. Компьютеру легче обрабатывать эти адаптированные рисунки, а значит, быстрее образуется "скелет" будущего фильма. Только после окончательного монтажа изображение насыщается цветами, очерчиваются тени и полутона.
Так шаг за шагом создается придуманное человеком и машиной кино. Чтобы рассчитать, какие изменения видеоряда должны произойти за 1/24 долю секунды и построить следующий кадр, даже самому мощному на сегодня суперкомпьютеру "Крэй" требуется от 2,5 до 15мин. А ведь такой числогрыз способен производить более миллиарда операций в секунду! Когда очередная картинка все же наконец построена, она запоминается в виде последовательности чисел и поступает в память ЭВМ, откуда в любой момент может быть выведена на дисплей, обладающий большой разрешающей способностью и прекрасной цветопередачей. Если надо - делается необходимое количество видео- и кинопленочных копий.
Ha первый взгляд описанный процесс похож на создание мультипликации. Тем не менее зто не совсем так: компьютер рисует большую часть кадров фильма, опираясь лишь на исходные параметры объектов, введенные в машинную программу в начале работы. Человек, таким образом, делает только первый шаг, остальное доделывает, додумывает и дофантазирует ЭВМ.
Это не мультипликация и не детский рисунок. Такой ЭВМ отобразила учебную аудиторию.
И "Трон", и "Последний "Старфайтер"" и ряд других компьютерных фильмов уносят зрителя в космические миры. А можно ли воспроизводить таким же способом и земные сцены? Увы, электронная мультипликация (этот термин все же прижился) пока не позволяет сделать их достаточно реалистичными. Если, к примеру, мы изобразим на компьютерном горизонте горную вершину, а потом захотим приблизиться к ней, скажем, на воображаемом вертолете, вся бутафория сразу же раскроется. На стремительно укрупняющихся фрагментах рисунка зритель не найдет привычных для себя мелких деталей - камней, трещин, травинок, которые он увидел бы на всамделишном горном склоне.
Выход был найден специалистами калифорнийской фирмы "Пиксар", которую называют теперь "Меккой компьютерной графики". Здесь ЭВМ научили самостоятельно придумывать и рисовать ландшафты, растения, пляшущие языки пламени и другие фрактальные, то есть обнаруживающие все более мелкие детали по мере увеличения масштаба изображения, объекты.
"...И превратим каждую прямую в ломаную, а плоскости сделаем неровными" - таков принцип метода фракталей, предложенного специалистами фирмы ИБМ. Последовательно уменьшая размеры деталей, можно сделать грубый контурный рисунок неотличимым от фотографии.
И все же основным заказчиком компьютерной графики стала не кинопромышленность, а телестудии и рекламные фирмы. Они быстро оценили возможности воздействия на потенциального клиента новых изобразительных средств. Устойчивый спрос привел к тому, что устройства для цифровой переработки изображений совершенствуются буквально на глазах. Одно из популярных до недавнего времени устройств, получившее название "Блю Бокс", позволяет одновременно передавать на монитор изображения с разных телекамер. Сегодня, однако, этим уже трудно удивить. Вычислительная техника способна самым причудливым образом трансформировать изображения, создавая поразительные зрительные эффекты.
Одним из любопытных порождений новейших видеотехнологий стал Макс Хедрум - персонаж телепрограмм, пользующихся колоссальной популярностью в США и Великобритании. Этот комментатор, или, если хотите, видео-диск-жокей, представляет в эфире последние музыкальные записи, проводит интервью, конкурсы. Характерная деталь: его никогда не показывают в полный рост. В действительности Макс Хедрум не существует. Его создали специалисты по видеотехнике Аннабель Джанель и Рокки Мортон. Изображение нужного по замыслам режиссеров загримированного лица было записано в разных ракурсах. Компьютер оживил тщательно продуманный и сконструированный образ. Технические подробности перевоплощения держатся в секрете - стоит ли говорить, что это лишь подогревает интерес публики.
Стремительный прогресс компьютерной трансформации изображения может привести к тому, что при работе над новыми фильмами и телепрограммами вскоре не понадобятся ни живые артисты, ни реквизит, ни натура. В более отдаленной перспективе можно вообразить создание вполне конкретных видеосюжетов с участием электронных двойников тех или иных людей - от политиков и кинозвезд до исторических персонажей, живших сто, двести и более лет назад.
"Оживление фотографии" (назовем это так) несет в себе опасность потери у зрителей чувства реальности. Определить, что происходит в действительности, документально, а что попросту придумано машиной, будет практически невозможно. Стоит ли говорить - такие перспективы, пока кажущиеся фантастическими, не могут не захватывать воображения.
ЭЛЕКТРОННЫЕ ГРЕЗЫ
Кино есть кино, каким бы правдоподобным оно ни казалось, зритель остается пассивным созерцателем. А можно ли стать непосредственным участником космической эпопеи или совершить путешествие в древние миры?
Создание своеобразных компьютерных реалий, погружаясь в которые человек мог бы получать эффект присутствия,- идея заманчивая. Она давно витает в воздухе - в основном благодаря писателям-фантастам, часто включающим в свои произведения "электронные грезы". Вспомним "Возвращение со звезд" Станислава Лема. Герои этого романа попадают во Дворец Мерлина, где показывают "реалы" - смесь кино, аттракциона и компьютерных иллюзий.
Довольно мрачная картина ухода человечества в мир фантастических сновидений предстает и в рассказе итальянского писателя Лино Алдани "Онирофильм": "...Одиночество, мягкая полутьма в тесных стенах комнаты и кресло с укрепленным аппаратом. Человечество не желало ничего другого. В жертву возвышенной привлекательности сновидений была принесена гордость обладания комфортабельным домом, элегантной одеждой, автовертолетом и другими удобствами. Зачем утомляться ради достижения реальных целей, когда дешевый онирофильм дает возможность прожить целый час, когда великолепные женщины восхищаются и благоговеют перед тобой, прислуживают тебе?.."
Ну а что предлагают сегодня сами компьютерщики? Найден ли ключ, позволяющий хотя бы приоткрыть дверь в искусственную реальность? Последние исследования и эксперименты дают утвердительный ответ.
Многим, вероятно, приходилось читать о специальных авиационных или автомобильных тренажерах (см. "ТМ" #12 за 1985г.; #4 за 1988г.). Компьютеры проявляют себя здесь как настоящие мастера иллюзий - они в точности имитируют звук, воссоздают визуальную обстановку вокруг, моделируют ощущения пилота или водителя. Контакт между человеком и машиной происходит теперь чаще не через клавиатуру, а голосом, с помощью речи и так называемого джойстринга - устройства, создающего эффект обратной силовой связи, или очков-телемониторов. Каждый глаз человека, надевшего такие очки (см. рисунок), видит предметы под разными углами, как в действительности. Стереоскопия в сочетании с высоким оптическим качеством картинки и создает ощущение присутствия. Мониторы снабжены датчиками, информирующими компьютер об изменениях положения головы наблюдателя. Появляется чудесный эффект, поворачивая шею влево и вправо, можно окинуть взглядом всю электронную панораму, или, если воспользоваться новым термином, "искусственную реальность".
Давайте пофантазируем и хотя бы мысленно войдем в мир, придуманный компьютером. Хотите попасть в Африку? Нет ничего проще. Включаем программу "Встреча с носорогом". Итак, вы очутились в тропической саванне. Осторожно, из зарослей выскочил разъяренный зверь. Что делать? Сразу же спасаться бегством неинтересно - ведь это все же игра. Попробуйте закричать. Микрофон тут же передаст ЭВМ, к которой вы подключены, звуковой сигнал, и машина отреагирует в соответствии с заданной игровой программой. Можете не сомневаться, крик будет услышан и носорогом.
Предположим, зверь не испугался. Тогда машите руками - ведь на них надеты интерфейс-перчатки. Они преобразуют движения рук и пальцев в электрические сигналы, понятные компьютеру. Это означает, что носорог заметит ваши манипуляции, и, если они будут достаточно выразительными, животное может ретироваться.
На рисунке и схеме - интерфейс-перчатка. Она упрощает и облегчает взаимодействие человека с машиной. Движения руки и пальцев преобразуются в электрические сигналы, понятные компьютеру, с которым можно теперь изъясняться даже жестами.
Для контактов с компьютером все чаще используются специальные устройства, управляемые рукой. Наиболее известны так называемые "мышь" и "джойстик". Новейшее приспособление, обеспечивающее силовую связь рука-компьютер-рука, предложено Р.Фелдманом из Национального института здоровья (США) и названо "джоистринг". Т-образный стержень передает усилия оператора машине по 9 тонким тросикам. В свою очередь, ЭВМ в соответствии с программой управляет сервомоторами, посылающими ответное "рукопожатие" человеку, ведущему с ней диалог.
Разумеется, такая перчатка создавалась не для забавы. Она позволяет общаться с машиной жестами. Нужно просто указать на интересующий вас объект компьютерной картинки, и электронный партнер будет знать, на чем остановлен выбор. Жестом можно попросить машину приблизить тот или иной предмет, повернуть его и даже разделить на части.
Как же устроены чудо-перчатки? Между двумя слоями ткани находятся тонкие световодные нити, которые обвивают каждый палец, а концами уходят в специальную плату, вшитую в область запястья. На концах волокон - светоизлучающие диоды и фототранзисторы, преобразующие световые сигналы в электрические. Сгибая палец, человек сгибает и световод, изменяя энергию импульса, так как часть света уходит наружу. Это улавливает фотоэлемент - как говорилось, он вырабатывает электрический сигнал, понятный компьютеру.
Но вернемся к нашему носорогу. Он уже в нескольких метрах от участника игры. Нужно немедля переходить к действенной защите. Хватайте первое, что попадается на глаза, например, палку (авторы программы услужливо подложили ее в кадр). Нагнувшись, но не отрывая взгляда от носорога, пытаемся нащупать орудие. Хотя в действительности никакой палки, конечно, нет и в помине, вам все-таки удается обхватить твердый круглый предмет. В перчатку вмонтированы устройства, которые надавливают на кончики пальцев в тот момент, когда компьютер сочтет, что вы коснулись деревяшки.
"Иллюзию хватания" создает и жесткая Т-образная конструкция, соединенная с туго натянутыми тросиками, приводящими в движение сервомоторы. Манипуляции джойстрингом улавливает компьютер. Считывая информацию, он подает сигналы углового положения, генерируя обратную силовую связь с помощью сервомоторов. Размахивая несуществующей электронной палкой, вы почувствуете в руках тяжесть, а если решитесь все же пустить ее в ход, то она как бы натолкнется на препятствие. Изображение на экране дополнится силовыми и так называемыми тактильными (осязательными) ощущениями руки в перчатке.
В будущем может быть создан и особый скафандр, он еще более упростит контакт между человеком и ЭВМ. Перспективы, которые в связи с этим открываются, пока трудно даже предугадать. Во всяком случае, многое из того, что станет возможным благодаря усовершенствованию взаимодействия человека с машиной, писателям-фантастам, что называется, и не снилось.
Вычислительная техника применяется теперь и для обработки фотографий из космоса. Снимок со спутника, запечатлевший тайфун "Алиса", закодирован в цвете. Это делает изображение более информативным, ведь окраска указывает на изменение физических параметров (например, температуры, влажности). Рядом - выполненный по такому методу снимок южных берегов США, Кубы и Мексиканского залива.
(По материалам зарубежной печати).
Или, ту самую "зарубежную печать" - "В мире науки" - 11 1984 PDF, 37.1Мб или 12 1987 PDF, 25.7Мб. Приложите это к тому, что прочли в допотопных книгах - не правда ли, современная реализация этих чудес выглядит сделанной через задницу?
Что дальше? По уму, получив какую-то задачу, Вы, имея в голове примерную схему "что из чего следует", можете найти "что-то из современного", что бы заткнуть эту дыру. Например, написать и запустить что-то из книги Ч.Уэзерелл, Этюды для программистов, 1982 - DJVU, 9.74... Но тут современные производители подложили свинью: мол, хочешь программировать - купи обезьянник, без него ты даже не найдешь в какое место свои программы запихивать... Тут проще кому-нибудь на хвост сесть... и убедиться, что ваши тайные знания основ программирования никому не нужны... Или..?
P.S. Но, зато, в хорошей компании - DJVU, 9.41Мб (Лекции лауреатов премии Тьюрига).
Я попытался кое-как упорядочить - ФОРУМ #18. Но это только для тех, кто действительно хочет узнать, как работает ЭВМ...
Последний раз редактировалось: Gudleifr (Вт Авг 10, 2021 10:29 am), всего редактировалось 12 раз(а)
Gudleifr- Admin
- Сообщения : 3399
Дата регистрации : 2017-03-29
Re: Главное - не быть "программистом"
А ЧТО, ВООБЩЕ, ДОЛЖЕН ЗНАТЬ ПРОГРАММИСТ?
ГЛАВА ПЕРВАЯ. ОСНОВНЫЕ ПОНЯТИЯ
Аксиома 1: Программистов не бывает. Есть только системщики и пользователи. Системщики бывают математиками или электронщиками, а пользователи - физиками или лириками.
Следствие 11: Программирование - есть создание кибернетических машин, максимум энтропии которых соответствует останову при получении правильного результата.
Следствие 12: Машина понимает только действия и значения. Любые абстракции - функции, объекты, компоненты, системы, языки - это лишь многоуровневые системы имен (обозначающих некоторые наборы действий, значений и других имен), удобных для решения некоторых конкретных задач.
Следствие 13: Если запись решения на языке программирования оказывается более путаной и длинной, чем на человеческом языке, значит, программист не владеет нужным языком программирования.
Следствие 14: Тестирование программы не может доказать отсутствия в ней ошибок.
Следствие 15: Сложность программы определяется только ее размером.
ГЛАВА ВТОРАЯ. КУРСЫ
Аксиома 2: Нельзя научить решать задачи, но можно научиться решать задачи.
Следствие 21: В обучении программированию наглядность курсов обратно пропорциональна полезности. Ибо программирование - умение абстрагироваться от наглядности.
Следствие 22: Знания/умения программиста никак не могут иметь ценности за пределами конкретной задачи.
Следствие 23: Сначала научись что-то делать и только потом учись это программировать.
ГЛАВА ТРЕТЬЯ. ЗАДАЧИ
Аксиома 3: Человек решает задачу. Человек программирует решение для машины. Человек знает необходимые детали устройства машины. Эти три умения программиста между собой никак не связаны.
Следствие 31: Любое решение программистской задачи можно записать языком математики. Т.к. машина является материальным представлением языка математики, то существует способ перевода решения задачи на язык машины. Этот способ называется языком программирования.
Следствие 32: Языки программирования в равной степени могут созданы теоретиками, практикам или самим программистом.
Следствие 33: Если результат можно рассчитать, это хорошо, если нет - нужно использовать таблицы. Только, если и это невозможно, можно применять сложные структуры управления языка программирования.
Следствие 34: Язык программирования выбирается/изобретается таким, чтобы как можно больше результатов рассчитать.
ГЛАВА ЧЕТВЕРТАЯ. САМОДЕЛКИ
Аксиома 4: Мы живем в Матрице, которую называем культурой.
Следствие 41: Машина должна исполнять не ту работу, которую легко запрограммировать, но ту, которую человеку исполнять сложно или неинтересно.
Следствие 42: Легкость программирования определяется не интеллектуальностью машины, но ее простотой.
Следствие 43: Машины/языки развиваются в двух направлениях: "понимают, что вам надо" - интерпретаторы, и "знают лучше вас, что вам надо" - компиляторы. И это развитие далеко опережает реальные потребности программиста.
Следствие 44: Простейший способ написать что-то сложное - переложить работу на пользователя.
Следствие 45: Объединять простые модули в сложную программу удобнее всего средствами операционной системы. Не стоит это делать вручную (изобретать для этого сложные языки).
ГЛАВА ПЯТАЯ. ПРОЕКТЫ
Аксиома 5: Очень небольшой процент рабочего времени программист тратит на написание программ. Гораздо больше уходит на то, чтобы заставить их работать. Первое приятно и престижно, второе - нет.
Следствие 51: Ни один программист не любит сложных программ. Пропадает даже та маленькая толика удовольствия, которая ему положена.
Следствие 52: Еще эфемернее предстает возможность научиться программировать на большом проекте. Неразрешимые проблемы встретятся раньше, чем появятся первые результаты.
Следствие 53: Единственный способ написания хорошей программы - полное выбрасывание исходников, как только они перестают нравиться.
ГЛАВА ПЕРВАЯ. ОСНОВНЫЕ ПОНЯТИЯ
Аксиома 1: Программистов не бывает. Есть только системщики и пользователи. Системщики бывают математиками или электронщиками, а пользователи - физиками или лириками.
Следствие 11: Программирование - есть создание кибернетических машин, максимум энтропии которых соответствует останову при получении правильного результата.
Следствие 12: Машина понимает только действия и значения. Любые абстракции - функции, объекты, компоненты, системы, языки - это лишь многоуровневые системы имен (обозначающих некоторые наборы действий, значений и других имен), удобных для решения некоторых конкретных задач.
Следствие 13: Если запись решения на языке программирования оказывается более путаной и длинной, чем на человеческом языке, значит, программист не владеет нужным языком программирования.
Следствие 14: Тестирование программы не может доказать отсутствия в ней ошибок.
Следствие 15: Сложность программы определяется только ее размером.
ГЛАВА ВТОРАЯ. КУРСЫ
Аксиома 2: Нельзя научить решать задачи, но можно научиться решать задачи.
Следствие 21: В обучении программированию наглядность курсов обратно пропорциональна полезности. Ибо программирование - умение абстрагироваться от наглядности.
Следствие 22: Знания/умения программиста никак не могут иметь ценности за пределами конкретной задачи.
Следствие 23: Сначала научись что-то делать и только потом учись это программировать.
ГЛАВА ТРЕТЬЯ. ЗАДАЧИ
Аксиома 3: Человек решает задачу. Человек программирует решение для машины. Человек знает необходимые детали устройства машины. Эти три умения программиста между собой никак не связаны.
Следствие 31: Любое решение программистской задачи можно записать языком математики. Т.к. машина является материальным представлением языка математики, то существует способ перевода решения задачи на язык машины. Этот способ называется языком программирования.
Следствие 32: Языки программирования в равной степени могут созданы теоретиками, практикам или самим программистом.
Следствие 33: Если результат можно рассчитать, это хорошо, если нет - нужно использовать таблицы. Только, если и это невозможно, можно применять сложные структуры управления языка программирования.
Следствие 34: Язык программирования выбирается/изобретается таким, чтобы как можно больше результатов рассчитать.
ГЛАВА ЧЕТВЕРТАЯ. САМОДЕЛКИ
Аксиома 4: Мы живем в Матрице, которую называем культурой.
Следствие 41: Машина должна исполнять не ту работу, которую легко запрограммировать, но ту, которую человеку исполнять сложно или неинтересно.
Следствие 42: Легкость программирования определяется не интеллектуальностью машины, но ее простотой.
Следствие 43: Машины/языки развиваются в двух направлениях: "понимают, что вам надо" - интерпретаторы, и "знают лучше вас, что вам надо" - компиляторы. И это развитие далеко опережает реальные потребности программиста.
Следствие 44: Простейший способ написать что-то сложное - переложить работу на пользователя.
Следствие 45: Объединять простые модули в сложную программу удобнее всего средствами операционной системы. Не стоит это делать вручную (изобретать для этого сложные языки).
ГЛАВА ПЯТАЯ. ПРОЕКТЫ
Аксиома 5: Очень небольшой процент рабочего времени программист тратит на написание программ. Гораздо больше уходит на то, чтобы заставить их работать. Первое приятно и престижно, второе - нет.
Следствие 51: Ни один программист не любит сложных программ. Пропадает даже та маленькая толика удовольствия, которая ему положена.
Следствие 52: Еще эфемернее предстает возможность научиться программировать на большом проекте. Неразрешимые проблемы встретятся раньше, чем появятся первые результаты.
Следствие 53: Единственный способ написания хорошей программы - полное выбрасывание исходников, как только они перестают нравиться.
Последний раз редактировалось: Gudleifr (Пн Фев 26, 2018 2:02 pm), всего редактировалось 5 раз(а)
Gudleifr- Admin
- Сообщения : 3399
Дата регистрации : 2017-03-29
Re: Главное - не быть "программистом"
БЫДЛОКОДЕРСТВО КАК НЕПОНИМАНИЕ ДУАЛИЗМА
В чем же в данном случае это искусство заключается?
Налицо наличие некоторого набора фактов/правил на основании которых нужно произвести некоторые выводы/действия. Программированием чего программист и занимается всю свою сознательную жизнь.
С точки зрения банальной эрудиции подобные вычисления производятся путем "прямой" или "обратной цепочки рассуждений". В первом случае в цикле перебираются все факты, до получения всех возможных выводов, во втором - идут от нужного вывода, проверяя достаточно ли для него фактов.
Это знают все. Особенно изобретатели всяких там языков "логического", "автоматного" и прочего "хитрого программирования". Но подавляющее большинство почему-то забыло, что ВСЕ языки программирования, даже какой-нибудь ALGOL-60, УЖЕ являются машинами для подобных рассуждений. Наличествующие в той или иной мере в каждом языке механизм данных и процедур уже готовы к решению "рассуждательной проблемы". Механизм данных обеспечивает накопление фактов (прямая цепочка), механизм процедур - их запрашивает и использует (обратная цепочка). Все остальное, что есть в языке - способ как-то ограничить "область перебора", т.е. разбить и факты, и действия на изолированные группы, в которых и осуществлять логические вычисления. Т.е. не проверять все условия боя на мечах при расчете космических перелетов, и не проверять, как влияет бузина в огороде на поведение дядьки в Киеве.
Т.е. любой язык программирования - способ свести в одно целое оба "переборных" решения в одно работающее. И первая примета быдлокодера - жесткая фиксация "способа решения" для всех предложенных задач, а не совмещение прямого и обратного подхода по месту. А супербыдлокодеры изобретают языки, которые фиксируют этот "способ"...
Существуют ли системы, при изобретении которых программист вынужден все-таки, однозначно определить, каким способом он будет рассуждать? Этот вопрос целиком относится к вопросу ограничений машины, для которой пишется программа. Противопоставление машины с хранимой программой (изменяющей свой код при получении новых фактов) машине с произвольным доступом к памяти (способной гибко запрашивать данные). Или, даже, противопоставление ОС, основанных на процессах (ожидающих готовности данных), ОС, основанным на сообщениях (где данные вызывают действия). Применение одного из методов в этих случаях диктуется железом. Но! Для программиста отличие одной машины/ОС от другой совершенно ничего не определяют! Эквивалентность этих машин/ОС многократно проверена и местами строго доказана! Так, что привязывая свою логику к WIN-объектам и/или пытаясь описать в XML-файлах все сущее, быдлокодер, по сути, отказывается от решения программистской задачи, пытаясь тупо приспособить вчерашнее решение к сегодняшней задаче.
Интересно, много ли осталось людей, понимающих, что если бы на этот вопрос существовал ответ в форме, ожидаемой спрашивающим, т.е. "тупо создайте темплейт объекта типа <дурацкий факт> и тупо используйте его метод <логическое осмысление>", то программирование не было бы искусством?Есть, например, юниты, у каждого - набор свойств и навыков (а-ля Герои - Минотавр имеет "Храбрость", лазутчик - "Отравленный выстрел")
Возникает, скажем, такая ситуация: лучник стреляет в пехотинца, применяя скилл "Стрельба". Пехотинец имеет навык "Щит", поэтому урон снижен. Однако лучник не простой, он имеет также способность "огненная стрела", поэтому пехотинец загорается. Но будь у пехотинца свойство "Несгораемость", не подгорел бы.
Все юниты, эффекты, навыки - отдельные объекты, с набором методов и, тем более, их реализацией, я не могу определиться.
Как бы вы стали организовывать подобное взаимодействие? Т.е. срабатывание (применение) одного скилла может активировать другой и так далее. Где какой код писать (идейно)?
В чем же в данном случае это искусство заключается?
Налицо наличие некоторого набора фактов/правил на основании которых нужно произвести некоторые выводы/действия. Программированием чего программист и занимается всю свою сознательную жизнь.
С точки зрения банальной эрудиции подобные вычисления производятся путем "прямой" или "обратной цепочки рассуждений". В первом случае в цикле перебираются все факты, до получения всех возможных выводов, во втором - идут от нужного вывода, проверяя достаточно ли для него фактов.
Это знают все. Особенно изобретатели всяких там языков "логического", "автоматного" и прочего "хитрого программирования". Но подавляющее большинство почему-то забыло, что ВСЕ языки программирования, даже какой-нибудь ALGOL-60, УЖЕ являются машинами для подобных рассуждений. Наличествующие в той или иной мере в каждом языке механизм данных и процедур уже готовы к решению "рассуждательной проблемы". Механизм данных обеспечивает накопление фактов (прямая цепочка), механизм процедур - их запрашивает и использует (обратная цепочка). Все остальное, что есть в языке - способ как-то ограничить "область перебора", т.е. разбить и факты, и действия на изолированные группы, в которых и осуществлять логические вычисления. Т.е. не проверять все условия боя на мечах при расчете космических перелетов, и не проверять, как влияет бузина в огороде на поведение дядьки в Киеве.
Т.е. любой язык программирования - способ свести в одно целое оба "переборных" решения в одно работающее. И первая примета быдлокодера - жесткая фиксация "способа решения" для всех предложенных задач, а не совмещение прямого и обратного подхода по месту. А супербыдлокодеры изобретают языки, которые фиксируют этот "способ"...
Существуют ли системы, при изобретении которых программист вынужден все-таки, однозначно определить, каким способом он будет рассуждать? Этот вопрос целиком относится к вопросу ограничений машины, для которой пишется программа. Противопоставление машины с хранимой программой (изменяющей свой код при получении новых фактов) машине с произвольным доступом к памяти (способной гибко запрашивать данные). Или, даже, противопоставление ОС, основанных на процессах (ожидающих готовности данных), ОС, основанным на сообщениях (где данные вызывают действия). Применение одного из методов в этих случаях диктуется железом. Но! Для программиста отличие одной машины/ОС от другой совершенно ничего не определяют! Эквивалентность этих машин/ОС многократно проверена и местами строго доказана! Так, что привязывая свою логику к WIN-объектам и/или пытаясь описать в XML-файлах все сущее, быдлокодер, по сути, отказывается от решения программистской задачи, пытаясь тупо приспособить вчерашнее решение к сегодняшней задаче.
Последний раз редактировалось: Gudleifr (Чт Янв 05, 2023 11:02 am), всего редактировалось 1 раз(а)
Gudleifr- Admin
- Сообщения : 3399
Дата регистрации : 2017-03-29
Re: Главное - не быть "программистом"
Опаньки! Даже для "современных программистов" начало доходить, что они никому не нужны.
ТЕХНИКА - МОЛОДЕЖИ 14/2019
ПРОГРАММИСТЫ СТАНУТ НЕ НУЖНЫ?
(Автор не указан. Видимо, с какой-то социалки).
Хорошо быть программистом - индустрия цветет и развивается, спрос на кодеров увеличивается, зарплаты растут. Но как долго это будет продолжаться?
Можно провести неожиданную параллель между современными программистами и телеграфными операторами XIXв. По сегодняшним стандартам операторы были слабо технически подкованы - вся их работа состояла в получении и переправке сообщений, передающихся по проводам азбукой Морзе.
В середине XIXв. телеграфным операторам хорошо платили, их уважали и считали достаточно подкованными технически. По мере прокладки все большего количества проводов спрос на операторов быстро рос. Разрабатывались стандарты для ускорения передачи сообщений, и операторам приходилось подстраиваться, запоминать все более сложные и эффективные системы сокращений и протоколов.
Но к ХХв. был изобретен телефон, не требовавший участия человека для преобразования кода в естественный язык. И к 1920-м годам от большого числа операторов осталась лишь малая часть.
Перенесемся на сотню лет вперед - и мы окажемся в схожей ситуации, только уже с программистами. Конечно, эта профессия требует больше навыков и интеллектуальных возможностей, чем у телеграфного оператора. Но программисты сегодня занимают функционально схожую с операторами нишу. Взрывное распространение софта похоже на распространение ранних видов коммуникаций XIXв. Тогда спрос на операторов рос пропорционально росту сетей, и ныне спрос на программистов растет пропорционально росту ПО. Раньше все телеграммы необходимо было транслировать с азбуки Морзе в человеческий язык, и сегодня весь программный код должен быть написан человеком.
Однако программы становятся более эффективными, появляются фреймворки, требующие написания меньшего количества кода, а более продвинутые языки, компиляторы и интерпретаторы облегчают жизнь программиста по сравнению с концом прошлого века. Но все равно процесс написания программ пока остается занятием для человека.
Но все это изменится.
Инструменты для создания сайтов уже позволяют каждому создавать сайт без необходимости писать код. Программирование базового уровня становится все более доступным, поэтому разрыв между генерированием идей и их программной реализацией постепенно исчезает. И хотя нам еще далеко до автоматических программ, которые сами смогут писать другие программы, заменяя собою программиста,- мы движемся к этому.
Ясно, что в будущем сохранится нужда в программистах - специалистах узкого профиля и других людях, разбирающихся в компьютерах, но кажется неизбежным, что программирование на подходе к XXII столетию постепенно исчезнет как массовая профессия.
ТЕХНИКА - МОЛОДЕЖИ 14/2019
ПРОГРАММИСТЫ СТАНУТ НЕ НУЖНЫ?
(Автор не указан. Видимо, с какой-то социалки).
Хорошо быть программистом - индустрия цветет и развивается, спрос на кодеров увеличивается, зарплаты растут. Но как долго это будет продолжаться?
Можно провести неожиданную параллель между современными программистами и телеграфными операторами XIXв. По сегодняшним стандартам операторы были слабо технически подкованы - вся их работа состояла в получении и переправке сообщений, передающихся по проводам азбукой Морзе.
В середине XIXв. телеграфным операторам хорошо платили, их уважали и считали достаточно подкованными технически. По мере прокладки все большего количества проводов спрос на операторов быстро рос. Разрабатывались стандарты для ускорения передачи сообщений, и операторам приходилось подстраиваться, запоминать все более сложные и эффективные системы сокращений и протоколов.
Но к ХХв. был изобретен телефон, не требовавший участия человека для преобразования кода в естественный язык. И к 1920-м годам от большого числа операторов осталась лишь малая часть.
Перенесемся на сотню лет вперед - и мы окажемся в схожей ситуации, только уже с программистами. Конечно, эта профессия требует больше навыков и интеллектуальных возможностей, чем у телеграфного оператора. Но программисты сегодня занимают функционально схожую с операторами нишу. Взрывное распространение софта похоже на распространение ранних видов коммуникаций XIXв. Тогда спрос на операторов рос пропорционально росту сетей, и ныне спрос на программистов растет пропорционально росту ПО. Раньше все телеграммы необходимо было транслировать с азбуки Морзе в человеческий язык, и сегодня весь программный код должен быть написан человеком.
Однако программы становятся более эффективными, появляются фреймворки, требующие написания меньшего количества кода, а более продвинутые языки, компиляторы и интерпретаторы облегчают жизнь программиста по сравнению с концом прошлого века. Но все равно процесс написания программ пока остается занятием для человека.
Но все это изменится.
Инструменты для создания сайтов уже позволяют каждому создавать сайт без необходимости писать код. Программирование базового уровня становится все более доступным, поэтому разрыв между генерированием идей и их программной реализацией постепенно исчезает. И хотя нам еще далеко до автоматических программ, которые сами смогут писать другие программы, заменяя собою программиста,- мы движемся к этому.
Ясно, что в будущем сохранится нужда в программистах - специалистах узкого профиля и других людях, разбирающихся в компьютерах, но кажется неизбежным, что программирование на подходе к XXII столетию постепенно исчезнет как массовая профессия.
Gudleifr- Admin
- Сообщения : 3399
Дата регистрации : 2017-03-29
Re: Главное - не быть "программистом"
"Товарищи ученые, доценты с кандидатами..."
/Владимир Высоцкий/
В последние годы (2024г.) слишком много говорят об импортозамещении. Даже в программировании. Мол, давайте произведем русский процессор, перепишем Linux на русском, Си-компилятор - на русском, все остальное - на русском. Причем, с нуля и с самораскруткой. Пользуясь русскими программами, русский программист развернется во всю ширь и вытеснит пиндосовские программы из виртуального русского мира.
***
Расскажу вам сказку о картошке.
Как сажает картошку, условно, белорус? Берет и сажает. Нужен ли для этого компьютер? Конечно. В какой день лучше это сделать, каким квадратно-гнездовым методом, сколько удобрений? Наверняка существуют оптимальные цифры для этого места и этого сезона. Очевидно их расчет имеет два крайних варианта: позвонить в сель.хоз.академию или поискать в своих-дедовских старых записях. Промежуточное решение - что-то спросить, что-то посмотреть, что-то посчитать... Т.е. белорус-программист: во-первых, должен оценить, какое решение удобнее (а кроме самого крестьянина это никто не скажет), во-вторых, произвести конкретные действия, припомнив кучу способов решения аналогичных проблем. Может ли это сделать сам крестьянин? Сможет, если способы решения хорошо отсортированы и документированы, а он имеет среднее советское образование. В конце концов, когда картошку будут сажать уже его внуки, он вполне сможет написать книжку по своему картофельно-программистскому опыту.
Как сажает картошку пиндос? За него это делают мексиканец, канадец и белорус. Заинтересован ли программист США в решении их проблем? Нет. Он заинтересован в том, чтобы они ни в коем случае не купили программы ни у кого, кроме него. Пусть его программы ничего не решают, но они настолько распиарены и сложно устроены, что ни у кого и в мыслях нет написать что-то свое.
Наконец, как сажает картошку русский? Никак. Он идет в магазин и покупает ее у перекупщиков-иностранцев. Его кормят сказками о диких мексиканцах и белорусах, и ставят в пример умных пиндосов, у которых на грядках вместо картошки сразу доллары растут. И наш инфоцыган кричит: я могу писать не хуже американцев! Я могу по-русски! Я вытесню пиндосов из их бизнеса! Я обыграю их по их же правилам!.. А ничего-то он и не может... Картошка сама не родится...
***
Поэтому я готов обсуждать реальные программы для реальной работы, но не импортозамещение с целью заработать кучу зеленых президентов.
/Владимир Высоцкий/
В последние годы (2024г.) слишком много говорят об импортозамещении. Даже в программировании. Мол, давайте произведем русский процессор, перепишем Linux на русском, Си-компилятор - на русском, все остальное - на русском. Причем, с нуля и с самораскруткой. Пользуясь русскими программами, русский программист развернется во всю ширь и вытеснит пиндосовские программы из виртуального русского мира.
***
Расскажу вам сказку о картошке.
Как сажает картошку, условно, белорус? Берет и сажает. Нужен ли для этого компьютер? Конечно. В какой день лучше это сделать, каким квадратно-гнездовым методом, сколько удобрений? Наверняка существуют оптимальные цифры для этого места и этого сезона. Очевидно их расчет имеет два крайних варианта: позвонить в сель.хоз.академию или поискать в своих-дедовских старых записях. Промежуточное решение - что-то спросить, что-то посмотреть, что-то посчитать... Т.е. белорус-программист: во-первых, должен оценить, какое решение удобнее (а кроме самого крестьянина это никто не скажет), во-вторых, произвести конкретные действия, припомнив кучу способов решения аналогичных проблем. Может ли это сделать сам крестьянин? Сможет, если способы решения хорошо отсортированы и документированы, а он имеет среднее советское образование. В конце концов, когда картошку будут сажать уже его внуки, он вполне сможет написать книжку по своему картофельно-программистскому опыту.
Как сажает картошку пиндос? За него это делают мексиканец, канадец и белорус. Заинтересован ли программист США в решении их проблем? Нет. Он заинтересован в том, чтобы они ни в коем случае не купили программы ни у кого, кроме него. Пусть его программы ничего не решают, но они настолько распиарены и сложно устроены, что ни у кого и в мыслях нет написать что-то свое.
Наконец, как сажает картошку русский? Никак. Он идет в магазин и покупает ее у перекупщиков-иностранцев. Его кормят сказками о диких мексиканцах и белорусах, и ставят в пример умных пиндосов, у которых на грядках вместо картошки сразу доллары растут. И наш инфоцыган кричит: я могу писать не хуже американцев! Я могу по-русски! Я вытесню пиндосов из их бизнеса! Я обыграю их по их же правилам!.. А ничего-то он и не может... Картошка сама не родится...
***
Поэтому я готов обсуждать реальные программы для реальной работы, но не импортозамещение с целью заработать кучу зеленых президентов.
Gudleifr- Admin
- Сообщения : 3399
Дата регистрации : 2017-03-29
Страница 1 из 1
Права доступа к этому форуму:
Вы не можете отвечать на сообщения