Из истории персональных компьютеров: о вреде заумных описаний

Аватар пользователя kvg1967

Персональные компьютеры линейки IBM PC стали выпускаться корпорацией IBM в 1981 году, а затем, в этом же году, IBM для своих ПК выпустила первый цветной графический адаптер Color Graphics Adapter (CGA), позволявший выводить четырехцветное изображение с разрешением 320×200 пикселей. Далее IBM стала совершенствовать видеоконтроллеры, увеличивая разрешение и количество отображаемых цветов, но низкая скорость вывода изображения в графическом режиме сильно раздражала пользователей ПК.
По мере распространения ПК недовольство росло и специалисты по компьютерам решили разобраться с заторможенной графикой. Дальнейшее развитие ситуации можно проследить, например, по публикациям в Programmer’s Journal за период с 1989 по 1991 год.
Первоначально программисты винили во всем громоздкое и не очень понятное описание принципов работы видеоконтроллеров, изданное корпорацией IBM, но уже через год стало понятно, что гораздо большие трудности порождаются заумным изложением алгоритмов компьютерной графики в научной литературе.
Большую часть статей по оптимизации графических алгоритмов для работы на ПК для Programmer’s Journal написал Майкл Абраш. Проблем и с аппаратурой, и с алгоритмами оказалось так много, что когда Абраш в 1995 году решил переиздать свои статьи отдельной книгой – «Michael Abrash’s Zen of graphics programming», то она оказалась весьма объемной.
В 1996 году книга Майкла Абраша была издана на русском языке. Приведу одну цитату, весьма ярко отражающую ситуацию, созданную заумными описаниями алгоритмов («Таинства программирования графики», ЕвроСИБ, 1996 год, стр. 158, выводы в конце восемнадцатой главы книги):

В последних двух главах мы смогли ускорить нашу первую программу рисования окружностей более чем в 36 раз. Если посмотреть на это с точки зрения трех стадий оптимизации, то алгоритмическая оптимизация принесла нам ускорение в 5-10 раз, подстройка программы под конкретный адаптер – в 1,5-2 раза, и перевод на ассемблер – в 1,5-2 раза.
 

Авторство: 
Авторская работа / переводика

Комментарии

Аватар пользователя Smart75
Smart75(2 года 1 месяц)

Интересно, как решил эти проблемы сэр Клайв Синклер в своем ZX Spectrum 81 ?

Я помню, там была очень неплохая графика для машинки с 48К оперативной памяти.

Аватар пользователя Иван Помидоров

Там псевдографика была, насколько помню. 

Аватар пользователя СВВ
СВВ(9 лет 4 месяца)

и графика и псевдографика и там и там были.

Аватар пользователя m.kozh
m.kozh(4 года 2 месяца)

Псевдографика она есть везде, это рисование картинок с помощью символов из таблицы asci. А в спектруме действительно была графика, но не обычная, а спрайтовая. Это значит, что картинка там рисуется с помощью точек, а вот раскрашивается заданием цвета точки и фона для участка 8*8 точек.

Аватар пользователя СПбДмитрий
СПбДмитрий(8 лет 8 месяцев)

В таблице ascii нет псевдографики, который описывает знаки 0-127.

Она есть в ansi, она же кои8, она же cp866. 

Аватар пользователя СВВ
СВВ(9 лет 4 месяца)

ви это, не путайте zx spectrum 16/48/128 и zx81! это кардинально разные системы. на второй памяти было 4кб пзу, 1кб озу, программная генерация видеосигнала...

Аватар пользователя Smart75
Smart75(2 года 1 месяц)

Сорри, ZX Specrum у меня был. Надпись Sinclair ZX Spectrum 82

Аватар пользователя ps ps
ps ps(3 года 5 месяцев)

circle очень тормозную там "англичанка нагадила" ))

 

Аватар пользователя Alexish
Alexish(9 лет 6 месяцев)

Никак не решал. Синклер был манагер и много врал. Решали проблемы его инженеры. 

Графика в спкетрум бейсике была очень медленной. 

Аватар пользователя СПбДмитрий
СПбДмитрий(8 лет 8 месяцев)

Я помню эти мееедленно сверху вниз перелистывания страниц... Детство... 

Аватар пользователя GrumpyVK
GrumpyVK(3 года 8 месяцев)

А на Спектруме была бизнес-графика?

Для игр применяли самые разные приёмы, иногда очень интересные, но не имеющие вообще никакого отношения ни к алгоритмам, ни к научным статьям.

Это уже горазде позже, на PC, когда Hovertank 3D/Wolfenstein 3D/Doom появились графика усложнилась настолько, что там тоже стали применяться алгоритмы.

К этому моменту Спектрум был уже историей.

Аватар пользователя DjSens
DjSens(5 лет 9 месяцев)

Алгоритм - это конечная совокупность точно заданных правил решения некоторого класса задач или набор инструкций, описывающих порядок действий исполнителя для решения определённой задачи.

В компьютерной программе даже пара-тройка команд - это уже алгоритм или часть алгоритма

Аватар пользователя blkpntr
blkpntr(8 лет 5 месяцев)

Спектрум жив до сих пор, выходит более 100 игр в год. И на 128-й модели история не закончилась, сейчас меньше 2 мегабайт не ставят. И режим с квадратиками 8x8 - не единственный, около сотни спектрумовских игр используют видеорежим 320x200 с 16 цветами на точку, с каждым годом их всё больше (искать по ключевому слову "АТМ-Турбо", на многих сайтах, аффилированных с могильщиками Спектрума, этот софт не выкладывают).

Бизнес-графика, естественно, была, были даже программы бухучёта.

Аватар пользователя GrumpyVK
GrumpyVK(3 года 8 месяцев)

Спектрум жив до сих пор

Ну это уже “жизнь после смерти”.

Так-то энтузиасты и для IBM PC что-то делают и для Амиги новые ROM'ы продают.

Бизнес-графика, естественно, была, были даже программы бухучёта.

Программам бухучёта не обязательно иметь графику.

И у меня есть подозрение, что если что-то и выходило, то уже “в жизни после смерти”, когда это уже не бизнесам продавалась, а энтузистам.

И режим с квадратиками 8x8 - не единственный, около сотни спектрумовских игр используют видеорежим 320x200 с 16 цветами на точку, с каждым годом их всё больше (искать по ключевому слову "АТМ-Турбо", на многих сайтах, аффилированных с могильщиками Спектрума, этот софт не выкладывают).

И правильно что не выкладывают. Это уже какая-то некрофилия, к Спектруму мало отношения имеющая.

Кстати непонятно что мешает проапгрейдится до 24 битного процессора на 50 мегагерц, к примеру.

Непонятно, правда, откуда их брать. Из калькулятора не выпаять, там всё в одном чипе, только флеш отдельно.

Но даже если проц не обновлять, то всё равно ведь можно добавить USB (в калькуляторе на том же процессоре есть), браузеры (для MSX же есть!) и прочее.

Правда непонятно сколько желающих будет всем этим пользоваться. Но сделать-то можно.

Аватар пользователя Stan Miller
Stan Miller(3 года 7 месяцев)

Оптимальный алгоритм - наше всё!

Аватар пользователя mmx
mmx(8 лет 8 месяцев)

И что такого "заумного" в цитате? Или это намёк на тупость программистов?

Аватар пользователя И-23
И-23(8 лет 8 месяцев)

Позвольте напомнить НЯП руководство господина Фокса с выводом об эволюции смысле термина «программист».

Аватар пользователя mr_tyman
mr_tyman(7 лет 11 месяцев)

Поддержу. Непонятно до чего докапался ТС и чего вообще сказать хотел.

Аватар пользователя СВВ
СВВ(9 лет 4 месяца)

так в любом деле, если внимательно проанализировать процессы и выделив параллельно исполняющиеся этапы - значительно ускорить общее время прохождения всего цикла.

а сейчас, с начала 2000х, хотя это пошло с компонент Дельфей во второй половине 90х - поТБМ на говнокод, пусть пользователь поставит проц и память больше, когда из-за маленькой функции, пишущейся неделю от силы лепят огромные фреймворки, в итоге простейший калькулятор по размерам стал как операционные системы в начале 2000х по объёму, жутко забагованный и гарантированно не проходящий проверки на НДВ.

Аватар пользователя Camil
Camil(6 лет 4 месяца)

сейчас нельзя компонент пилить неделю, это же половина спринта!

сейчас программисты в другой ловушке, принципиально противоположной размеренным 90-м, но с теми же плачевными результатами

Фейсбук — дерьмище, но переписывать на лету нельзя, поэтому создадим реакт, чтобы оно всё работало, хотя это по сути замена кабины лифта без прекращения эксплуатации smile1.gif

 

ТС не со зла забывает, что ещё при наших бабушках (у кого-то и родителях) программисты считались разновидностью машинисток, и все нововведения типа рефакторинга на самом деле так двигают прогресс, потому что без них было совсем печально

Аватар пользователя GrumpyVK
GrumpyVK(3 года 8 месяцев)

ТС не со зла забывает, что ещё при наших бабушках (у кого-то и родителях) программисты считались разновидностью машинисток

Не были они никогда разновидностью машинисток.

Они просто программы на бумажке писали и в машзал сдавали.

Уже в 1962м Кнут начал писать Искусство программирования — это очень серьёзный труд.

И да, часть операторов ЭВМ (которые не только считались, но и, по сути, являлись разновидностью машинисток) со временем переквалифицировались в программистов.

все нововведения типа рефакторинга на самом деле так двигают прогресс, потому что без них было совсем печально

Печально то, что, при всех разговорах о бесконечном обновлении и куче бессмысленного “движа” реально прорывные вещи пробиваются через все эти спринты с фантастически медленной скоростью.

Скажем проблему NullPointerException и осознали и решили полвека назад, но в индустрию эти решения проникли (причём под совсем другими лозунгами) меньше десяти лет назад.

И вот это, как раз, по причинам описанным в статье: учёных происходящее в индустрии не волнует, их задача — статьи в научные журналы писать и “индекс цитирования” повышать, а толпы вновьобращённых (разработка ПО до сих пор крайне молода просто потому что поличество разработчиков, долгое время, росло по экспоненте, а при таком росте большинство разработчиков имеет стаж в несколько лет) с радостным улюлюканьем ходит кругами по граблям и набивает, по кругу, одни и те же шишки.

Аватар пользователя ifdru74
ifdru74(7 лет 6 месяцев)

Скажем проблему NullPointerException и осознали и решили полвека назад, но в индустрию эти решения проникли (причём под совсем другими лозунгами) меньше десяти лет назад.

Сколько памяти было на средней ЭВМ полвека назад? Килобайты. Какая была средняя производительность аппаратной части от ОЗУ к процессору (молчим про внешние запоминающие устройства)? - не очень высокая.

Сколько памяти было на среднем ПК 10 лет назад? - Мегабайты. Какая была производительность аппаратной части - получше, но не фантастика.

Первая массовая среда управляемой памяти CA Clipper была популярна в начале 90х и работала на ПК под однозадачной системой при размере оперативной памяти менее мегабайта. Ещё лучше она работала на 4 мегабайтах и 386 процессоре, в котором была первая вменяемая аппаратная реализация виртуальной памяти. Для не-ПК такая реализация была, разумеется, раньше.
Когда (в конце 90х) окончательно родилась Java, которая преподносилась как великое открытие и чудо, позволяющее любой домохозяке работать погромистом, то она хорошо работала на десятках и сотнях мегабайт оперативки. Также лучше она работала на процессорах, в которых было много регистров общего назначения, что позволяло меньше гонять контекст процесса между стэком и регистрами.

А теперь посмотрим на средний ПК сейчас. Оперативка 16 гигов, внутри процессор, который снаружи обратно совместим с незабвенным 80х86, а внутри страшное нагромождение регистров и вспомогательных модулей, что позволяет процу аппаратно решать большинство неразрешимых проблем прошлого. Наличие аппаратных причуд позволяет сохранять множество контекстов процессов без общения с памятью. Всё это делает современный ПК ацки быстрым. Аппаратная часть сильно выросла и теперь можно воплощать концепции прошлого и смотреть что из этого принесёт прибыль.
Та же ржавчина (Rust) не взлетела бы в 90е, потому что аппаратная часть была недостаточно производительна для её реализации. Впрочем, и современный компилятор C++, скорее всего, не смог бы собрать проект на типовом компе из 90х. 
Но почему же не развивается алгоритмического благолепия и компьютеры хорошо играют только в шахматы, го и компьютерные игры? Почему все вставляют ИИ во все места? А потому что вместо программистов на рынок впрыгнула толпа недоучек, которые могут только быстро собрать демо-версию на продажу.

Аватар пользователя GrumpyVK
GrumpyVK(3 года 8 месяцев)

Та же ржавчина (Rust) не взлетела бы в 90е, потому что аппаратная часть была недостаточно производительна для её реализации. 

Как раз в 90е она уже вполне могла бы взлететь. Середина 90х это уже Pentium II, K6 и прочее в том же духе.

Достаточно для поддержки достаточно серьёзных компиляторов. На Pentium III у меня мама была в которую гиг не встал, но 768 мегабайт там спокойно жили.

Но софт всегда отстаёт от железа, до конца нулевых не было компиляторов, позволяющих Rust сделать.

Но для решения проблемы не нужен Rust! Достаточно иметь два отдельный типа: указатель, который может быть NULL и указатель, который не может быть NULL. И всё!

Это можно было если не в 70е, так в 80е годы внедрить. Но… не срослось.

Когда (в конце 90х) окончательно родилась Java, которая преподносилась как великое открытие и чудо, позволяющее любой домохозяке работать погромистом, то она хорошо работала на десятках и сотнях мегабайт оперативки. Также лучше она работала на процессорах, в которых было много регистров общего назначения, что позволяло меньше гонять контекст процесса между стэком и регистрами.

И при этом всём она, по прежнему, игнорирует теоретические разработки не только 80х, но и 70х тоже. Робкая попытка обуздать Null Pointer случилась только в XXI веке и получилась крайне ограниченной и половинчатой.

Хотя уж при создании Java ресурсы-то позволяли. А вот неумение/нежелание читать академическую литературу… не позволяло.

Аватар пользователя ifdru74
ifdru74(7 лет 6 месяцев)

Как раз в 90е она уже вполне могла бы взлететь. Середина 90х это уже Pentium II, K6 и прочее в том же духе.

Достаточно для поддержки достаточно серьёзных компиляторов. На Pentium III у меня мама была в которую гиг не встал, но 768 мегабайт там спокойно жили.

Однако компиляторы стали бурно развиваться, почему-то, после 2010. Что Java, что С++, что новые языки, производные от старых (Kotlin). Вероятно что для развития компиляторов требовалось больше ресурсов чем было. Вероятно, что это обусловлено массовым появлением x64.

А вот неумение/нежелание читать академическую литературу… не позволяло.

У этой проблемы есть, как минимум две причины. Первая - большая часть академической литературы недоступна для массового читателя. Потому что академики тоже очень любят деньги. Вторая - нарастающая массовая неграмотность. Уже давно орудует поколение погромистов, которые даже не знают в биты и байты. В школах обучают детей так, что они путаются в широко известных концепциях.

Аватар пользователя GrumpyVK
GrumpyVK(3 года 8 месяцев)

Однако компиляторы стали бурно развиваться, почему-то, после 2010.

Не совсем так. Это вы их развитие заметили после 2010го.

Вероятно что для развития компиляторов требовалось больше ресурсов чем было.

Нет, не требовалось. Требовалась кооперация.

Вот это вот было ключевым моментом. Промежуточное представление, без которого эффективная оптимизация невозможна. Как Wikipedia прямо и говорить — разработано в IBM ещё в 80е. Но в используемые сегодня компиляторы (GCC, LLVM и так далее) оно пробралось к середине нулевых.

Потому что в прошлом веке компиляторы разрабатывали производители железа (ARM'ы всякие да Intel'ы), причём как им им положено — каждый трясся за свой компилятор и ни с кем своими разработками не делился.

В результате старые компиляторы упёрлись в денежные возможности производителей железа, их разработка резко затормозилась, а новым (GCC, LLVM) потребовалось порядка десяти лет, чтобы их догнать. Ну а потом и перегнать.

Вероятно, что это обусловлено массовым появлением x64.

Нет. Даже современным компиляторам редко когда нужно больше гигабайта памяти. И процессор на много гигагерц не нужен. Дело не в x64.

В школах обучают детей так, что они путаются в широко известных концепциях.

В большинстве школ программированию не обучают вообще. И никогда, особо, не обучали.

Но раньше как-то программисты считали нормальным если им говорили, что им бы неплохо бы математику подтянуть, а сегодня… я пару лет назад спорил с одним человеком, который объяснял, что за динамическими языками будущее, так как они позволяют писать код, требованию к которому содержат логически противоречащие друг-другу требования! Я не издеваюсь, на полном серьёзе! Типа: да типизация это круто, позволяет иногда ошибки выловить, но как вы в типах собрались записывать бинес-требования, который друг другу противоречат? Компилятор же такого не допускает! А в динамическом языке — проблем нету.

Я примерно тогда и пришёл на АШ, что понял с подобными бизнесменами и разработчиками каши не сваришь.

Цивилизация, построенная на умельцах набрасывать лапшу на уши крайне неустойчива.

А вот после её развала — да, развитие продолжится. Нужно просто подождать.

Аватар пользователя Camil
Camil(6 лет 4 месяца)

Но раньше как-​то программисты считали нормальным если им говорили, что им бы неплохо бы математику подтянуть, а сегодня… я пару лет назад спорил с одним человеком, который объяснял, что за динамическими языками будущее, так как они позволяют писать код, требованию к которому содержат логически противоречащие друг-​другу требования! Я не издеваюсь, на полном серьёзе! Типа: да типизация это круто, позволяет иногда ошибки выловить, но как вы в типах собрались записывать бинес-​требования, который друг другу противоречат? Компилятор же такого не допускает! А в динамическом языке — проблем нету.

Я примерно тогда и пришёл на АШ, что понял с подобными бизнесменами и разработчиками каши не сваришь.

Случай смешной, ситуация нормальная. Почему бы и не воплотить противоречивые требования заказчика, если он за это платит.

Я Дробышевского иногда смотрю, как он на серьёзных щах рассказывает про эволюцию хоббитов и вурдалаков, действительно интересно и рационально получается.

Из личного опыта работы на контору, обслуживающую Спортмастер — да нужно делать иногда не как удобнее, а как заказчик попросил. Да, решение абсурдных задач требует бОльших интеллектуальных сил, чем попытки доказать ПМ-у глупость задания, потому что ПМ заказчику скажет, что его программисты такое сделать не смогут, а заказчик скажет, что тогда он закажет у тех, кто сможет.

Математика мне не понадобилась ни разу с 2006 года, если не считать базовых операций, степеней, корней (которые тоже степени). Один раз геометрия понадобилась для работы шаговиков с движением по окружности.

Я то старой школы, где считали, что без знания p-n-p перехода, карт Карно и ассемблера в программировании делать нечего. А на работе самая сложная задача была связана с тем, что один из ценников криво печатался, но только на одной модели обуви и только на ПК заказчика. В итоге я снова не могу найти определитель матрицы, хотя учили раза 3-4 с 10 класса. Мозг категорически против усвоения знаний, которые на практике не применяются.

Аватар пользователя GrumpyVK
GrumpyVK(3 года 8 месяцев)

Случай смешной, ситуация нормальная. Почему бы и не воплотить противоречивые требования заказчика, если он за это платит.

Потому что в случае с противоречивыми требованиями ваша способность получить деньги зависит не от вашего умения что-то там запрограммировать, но от вашего умения навешать заказчику лапшу на уши и убедить его в том, что то, что вы сделали соответствует требованиям. Которым оно в принципе не может соотвествовать в случае, если требования противоречивы.

С этого момента начинает раскручиваться спираль: важным становится не умение что-то сделать, но умение объяснить почему та хрень, которая имеет мало отношения к тому чего хотели — это то, что вам нужно.

Ну потому что вы умеете “заговаривать зубы” и “впаривать” заказчику то, чего он не просил, то нафиг вам, после этого уметь делать что-то ещё, в дополнение к этому?

Ну а дальше идёт уже всё остальное: Замвальты, падающие самолёты и прочее, прочее, прочее.

Наша цивилизация построена с помощью математики. Уберите её — и она рухнет.

Может быть можно построить какую-нибудь другую цивилизацию, без математики. Нам это неизвестно.

Но наша на фундаменте набрасывания лапши на уши существовать она не может. Рассыпется, рано или поздно.

Математика мне не понадобилась ни разу с 2006 года, если не считать базовых операций, степеней, корней (которые тоже степени).

Математика это, в том числе, и матлогика. Не нужно мне рассказывать что вы программы без её учёта пишите, всё равно не поверю. Извините.

Мозг категорически против усвоения знаний, которые на практике не применяются.

Дык с этим никто не спорит. Разумеется вещи, которыми вы не пользуетесь вот прям щаз уходят из оперативной памяти.

В итоге я снова не могу найти определитель матрицы, хотя учили раза 3-4 с 10 класса.

И снова не верю. То есть верю в то, что вы формул не помните, я их и сам не помню.

Но в то, что вы не сможете их вывести исходя из того, зачем нам нужен этот самый определитель — не верю.

Если вас посадить в пустую комнату и сказать: придумай за пару часов как нам эту несчастную систему линейных уравнений решать, а то расстреляем — неужели ж не придумаете?

В том-то и беда современного поколения, что у них знания, в силу возможности всегда их найти в интернете, “висят в воздухе” и тот же определитесь не связан вот ровным счётом ни с чем.

А если вы помните, что определитель возникает при решении систем линейных уравнений, что эти уравнения, так-то, можно решить приведением матрицы к треугольному виду (методом Гаусса, но в школе его так часто не называли, так что могу поверить что вы название забыли… но принцип-то там тривиален, его забыть сложно).

Но для этого нужно владеть логикой хоть чуть-чуть. И не пытаться решать задачи, которые не имеют решения.

Да, решение абсурдных задач требует бОльших интеллектуальных сил, чем попытки доказать ПМ-у глупость задания, потому что ПМ заказчику скажет, что его программисты такое сделать не смогут, а заказчик скажет, что тогда он закажет у тех, кто сможет.

Ну вот пока заказчик спокойно заказывает чёрт знает что, получает не то, что заказал и в результате спокойно “пилит бюджеты” дальше сильно рыпаться не нужно: это значит, что в системе полно лишних ресурсов, иначе она не могла бы себе позволить содержать этих дармоедов.

Когда ресурсов на подобную мразматическую деятельность не останется — их выкинут.

Главное — не давать им выдавать чужую работу за свою. А они в этом мастера.

Но, опять-таки, это всё работает пока есть куча “лишних” ресурсов и за их творчеством не слишком следят.

Аватар пользователя Camil
Camil(6 лет 4 месяца)

Потому что в случае с противоречивыми требованиями ваша способность получить деньги зависит не от вашего умения что-​то там запрограммировать, но от вашего умения навешать заказчику лапшу на уши и убедить его в том, что то, что вы сделали соответствует требованиям. Которым оно в принципе не может соотвествовать в случае, если требования противоречивы.

Ну вот пока заказчик спокойно заказывает чёрт знает что, получает не то, что заказал и в результате спокойно “пилит бюджеты” дальше сильно рыпаться не нужно: это значит, что в системе полно лишних ресурсов, иначе она не могла бы себе позволить содержать этих дармоедов.

Уже скоро лет десять будет, как большая часть B2B контор работает по схеме (очень упрощённо) Клиент - ПМ - Архитектор - ПМ - Клиент - ПМ - Девопс - ПМ - Аналитик - ПМ - Программист - Тестировщик - Аналитик - Девопс - ПМ - Клиент. Это если просто принципиально важное дополнение (фича) и всё пошло идеально, иначе некоторые циклы повторяются неделями. Программист не разговаривает с клиентами вообще, никогда их не видит и не знает.

Падающие боинги вызваны комплексом причин, в частности перекладыванием слишком большой части ответственности на автопилот и слишком малым временем налёта без автопилота, то бишь, банальной экономией (в результате которой самолёты упали и Боинг потерял четверть капитализации ещё до ковида, что особенно наглядно, "сэкономленные" на безопасности деньги шли на байбеки, то есть попытку поднять капитализацию — здесь проблема не с математической логикой, а с простой человеческой. Как и у всей западной цивилизации). У Боинга не было проблем с доведением ТЗ до исполнителей, потому что работали штатные специалисты, а не индусские субподрядчики (надеюсь). В любом случае знания математики программистами тут вообще не причём. Вроде подходит хрестоматийный случай с рентгеновской установкой, убивавшей клиентов из-за (вроде) переполнения счётчика, но и здесь помог бы не выбор объектно-ориентированного подхода, а банальный контроль и дублирование управления смертельно опасными узлами.

 

Матлогику я отношу к базовым операциям, не понимаю, что там можно подтягивать для улучшения качества кода. Ты её или понимаешь, или вообще не можешь программировать =)

 

Матрицы я привёл просто как пример, я понимаю, что есть области, где они нужны. Но программирование, судя по моему опыту, к ним не относится. Да, компьютер работает не без помощи физики и математики, но исполнителю не нужно. Моя жена не знает, как гениально устроена автоматическая коробка передач, а я знаю, но мы оба с одинаковой лёгкостью включаем режим Drive и едем. Человек, загружая или смотря потоковое видео, может знать или не знать, что идёт разложение рядов Фурье (или не идёт, я не в курсе современных тенденций) на качество видео это не влияет. Программист, отучившийся 4-6 лет, обычно просто имеет отставание на несколько лет от закончившего онлайн-курсы фронтендера, и когда выпускник получает диплом, фронтендер получает синьорскую зарплату. Развивать computer science конечно нужно, но с отделением мух от котлет. То, что компьютерная наука выросла из физики и математики, не означает, что для изучения программирования нужно сначала изучить физику и математику. Есть области, где как в советском ПТУ достаточно отучиться несколько месяцев на курсах и пилить шаблонные сайты/игры/мобильные приложения. Рынок выровняется и через определённое время столько трудовых ресурсов будет не нужно. Причём, как и все революции, это произойдёт внезапно и не по шаблону, как Инстаграмм вдруг неожиданно убил вполне успешную индустрию сайтов-визиток. А наука будет развиваться, но не по указке и воле старых пескоструев. Не по указке, потому что здесь и сейчас индустрия работает так, как работает, и никакой госплан не сможет спрогнозировать количество гениальных озарений, новых технологий и количества стивов гейтсов на единицу мигрантов из Африки. Не надо и презирать индусский стиль, говнокод и эникейщиков — это часть экосистемы, без которой система бы не работала намного хуже, если бы вообще работала.

Аватар пользователя GrumpyVK
GrumpyVK(3 года 8 месяцев)

что особенно наглядно, "сэкономленные" на безопасности деньги шли на байбеки, то есть попытку поднять капитализацию — здесь проблема не с математической логикой, а с простой человеческой

Как раз здесь всё нормально: если для нас важно, чтобы владелец компании был доволен, получив прибыль, ради которой он в оную компанию вложился, то всё сделано правильно.

Вроде подходит хрестоматийный случай с рентгеновской установкой, убивавшей клиентов из-за (вроде) переполнения счётчика, но и здесь помог бы не выбор объектно-ориентированного подхода, а банальный контроль и дублирование управления смертельно опасными узлами.

Не было там переполнения счётчика, а было банальное удешевление конструкции. И да, это был один из первых звоночков, когда попытка заткнуть аппаратное упрощение программной заплаткой кончилось весьма печально.

Матлогику я отношу к базовым операциям, не понимаю, что там можно подтягивать для улучшения качества кода. Ты её или понимаешь, или вообще не можешь программировать =)

Ваш бы оптимизм, да в мирных целях. Сейчас огромный процент программ (хорошо если не 99%) пишется людьми не умеющими в матлогику от слова “совсем”. Они чуйкой какой-то программируют. Рандомно переставляют куски кода со Stack Overflow пока не заработает. Классическое:

Когда удалось нашаманить, чтобы текст компилировался, то можно выпускать бета-версию, а когда программа сможет хоть раз не упасть и не зависнуть — финальный релиз. Остальные баги найдут пользователи.

А так…

Человек, загружая или смотря потоковое видео, может знать или не знать, что идёт разложение рядов Фурье (или не идёт, я не в курсе современных тенденций) на качество видео это не влияет.

Влияет-влияет. Нет, знание того как эти вейвлеты работают инфлюенсером-идиотом ни на что не влияет, это правда. Там важнее лопнут сиськи от силикона или нет.

Но вот тот, кто делает все эти системы сжатия, должен бы в этом разбираться. С учётом того, что этот код пишется (в основном на Verilog'е) раз десять-двадцать в рассчёте на весь мир таких пока хватает, но тенденции настораживают.

Программист, отучившийся 4-6 лет, обычно просто имеет отставание на несколько лет от закончившего онлайн-курсы фронтендера, и когда выпускник получает диплом, фронтендер получает синьорскую зарплату.

Именно так. И пока есть деньги, которые можно тратить на всякую никому не нужную фигню — так и будет.

Но эти годы подходят к своему логическому концу.

Когда возможность получить деньги от ФРС станет менее важна, чем возможность сделать что-то реально работающее — вся эти мишура быстро сдуется.

Главное, как я уже сказал, не давать этим людям выдавать вашу работу за свою.

Есть области, где как в советском ПТУ достаточно отучиться несколько месяцев на курсах и пилить шаблонные сайты/игры/мобильные приложения. 

Есть. В этом, собтственно и есть главная проблема: очень много ресурсов уходит на вещи, которые, по большому счёту, вообще не должны были существовать.

Как как раз эти шаблонные сайты/игры/мобильные приложение не нужны.

Ну или, вернее, они нужны, но примерно в той же степени, в какой нужны, скажем, игровые площадки возле дома.

Вы же туда не вбухиваете миллиарды и рабочие, их сооружающие, не требуют зарплату выше министерской.

Не надо и презирать индусский стиль, говнокод и эникейщиков — это часть экосистемы, без которой система бы не работала намного хуже, если бы вообще работала.

Не уверен. Вот сильно не уверен. У меня есть ощущение, что большая часть этой “экосистемы” существует в постиндустриальной экономике как попытка занять чем-то людей, которым, в противном случае было бы вообще нечем заняться.

С исчезновением постиндустриальной экономики паразитизма исчезнет и необходимость в этих людях.

Аватар пользователя Camil
Camil(6 лет 4 месяца)

если для нас важно, чтобы владелец компании был доволен, получив прибыль, ради которой он в оную компанию вложился, то всё сделано правильно.

Ну конкретно с Боингом, думаю, заказчик остался недоволен. Так что пример о важности математики не засчитан. 

Всё-таки выстреливают системы с МVP, успевшие на корабль прогресса. Но если во времена Гейтса, Брина и Джобса выстреливали исключительно увлечённые люди с образованием, то  поколение цукербергов и дуровых явно доминирует над виталиками бутериными. Математика не нужна всем и повально. Разве что как дисциплина для развития когнитивных способностей.

Не уверен. Вот сильно не уверен. У меня есть ощущение, что большая часть этой “экосистемы” существует в постиндустриальной экономике как попытка занять чем-​то людей, которым, в противном случае было бы вообще нечем заняться.

С исчезновением постиндустриальной экономики паразитизма исчезнет и необходимость в этих людях.

Если люди останутся, их надо будет чем-нибудь занять. Энгельсовское "первая смена до обеда роет канаву — вторая после обеда зарывает яму" на миллиардных масштабах не работает. И мне ближе говнокодеры, чем фотографы(при всём уважении), инфлюэнсеры, стендаперы, блогеры, политические аналитики и фитнес-тренеры(при всём уважении).

Касаемо попытки занять людей здесь вижу классическую онтологическую ошибку "если звёзды зажигают". Блогеры и рэперы существуют, потому что на данном этапе могут существовать, а не по злой воле элит и рептилоидов.

 

По поводу остального больше не вижу существенных расхождений во взглядах =) 

Аватар пользователя GrumpyVK
GrumpyVK(3 года 8 месяцев)

Но если во времена Гейтса, Брина и Джобса выстреливали исключительно увлечённые люди с образованием, то  поколение цукербергов и дуровых явно доминирует над виталиками бутериными.

Вы про того Дурова, который выигрывал математические олимпиады в 1996, 1997 и 1998 годах? Или о какому-то другом? У них там классическая связка из человека, который что-то умеет (в данном случае Николай) и человека, присваивающего славу. То же самое, как и связка Гейтс-Аллен, Брин-Пейдж, Джобс-Возняк

Вот Цекенберг — это уже новая веха, ну дык и то, что Meta посыпалась первой с этом, во многом, связано.

Математика не нужна всем и повально.

Вот собственно с того момента, когда это стало так и можно было сказать, что Западаная цивилизация обречена. Ещё в конце прошлого века она таки была нужна, а умение, с умным видом, вешать лапшу на уши, шло как дополнение (обычно выстреливала пара, как я уже сказал: “физик” и “лирик”, условно).

И мне ближе говнокодеры, чем фотографы(при всём уважении), инфлюэнсеры, стендаперы, блогеры, политические аналитики и фитнес-тренеры(при всём уважении).

Большая часть всего этого ТБМ занимаются фигнёй, не дающей никакого выхлопа.

Какое-то количество комиков в общество нужно, конечно, но когда на них уходит такой большой процент ресурсов…

Касаемо попытки занять людей здесь вижу классическую онтологическую ошибку "если звёзды зажигают".

Где?

Блогеры и рэперы существуют, потому что на данном этапе могут существовать, а не по злой воле элит и рептилоидов.

Ну разумеется они существуют потому, что в мире, где богаство порождается не заводами и фабриками, но печатным станком умение “навешать лапшу на уши” и оказаться к оному станку поближе всегда будет цениться выше, чем умение решать какие-то реальные проблемы.

Вот только существует такое общество, по историческим масштабам, весьма недолго.

Это как в известной присказке про то, что первое поколение варваров завоёвывает города, второе поколение развивает науку и искусство, третье поколение сажает кипарисы, четвёртое поколение вырезается новыми варварами.

Научно-техническая революция была настолько мощной, что на время показалось, что этот цикл канет в лету. Но нет, процесс только лишь растянулся, слегонца, во времени.

Ирочно то, что несмотря на то, что стадия развития науки и исскусств, в США, растянулась на весьма немало поколений, точно больше ста лет, но вот последние две стадии проходят так же стремительно, как и в прошлые тысячелетия. Интересно как им удавалось удержаться на второй стадии, конечно, если уже речь пошла о постиндустриализме, то там до развала уже два поколения оставалось по любому.

Аватар пользователя Camil
Camil(6 лет 4 месяца)

Вопрос об интеллектуальном уровне Дурова для меня закрыт после получения им гражданства ОАЭ.

Будучи довольно нерешительным ребёнком, я очень поздно сбежал из стана "лириков", поэтому в девятом, кажется, классе участвовал в городской олимпиаде по литературе. Где не стеснялись подойти к нужному ребёнку и дать правильные ответы. 90-е были интересным временем, да. Но свечку не держал, возможно, для адекватного клонирования фейсбука нужно было понимать интегралы. 

Про Гейтса есть очень хорошее в "Гении и аутсайдеры" Гладуэлла. Всё-таки компьютеры он любил самозабвенно.

Ирочно то, что несмотря на то, что стадия развития науки и исскусств, в США, растянулась на весьма немало поколений, точно больше ста лет, но вот последние две стадии проходят так же стремительно, как и в прошлые тысячелетия. Интересно как им удавалось удержаться на второй стадии, конечно, если уже речь пошла о постиндустриализме, то там до развала уже два поколения оставалось по любому.

Ну не знаю. По-моему, там действительно развиты только важнейшие из искусств: кино и цирк. Литература последнего века — отдельный вопрос, достаточно вспомнить, что зиждется на фигурах вроде Исаака (простите) Азимова или питерской эмигрантке Эйн Ренд.

Атомный проект — немцы. 

Полупроводники и разные полезные в хозяйстве вещи — большей частью эхо двух мировых войн, которые прошли преимущественно с другой стороны глобуса.

Так что, как говорил Пачкуля Пёстренький, удивляться тут совершенно нечему. И загадывать я бы поостерёгся, мало ли какие сюрпризы ещё готовит история — ядерная война уже могла начаться по ошибке не менее двух раз, а последняя "пандемия" показала нашу тотальную толерантность  к биологическим угрозам. Самым вероятным сценарием апокалипсиса для меня видится описанный в "Феникс сапиенс" Бориса Штерна. Спойлерами бросаться не буду, но 

 

само указание на эту книгу служит достаточным доказательством признания правоты оппонента

 

Аватар пользователя Camil
Camil(6 лет 4 месяца)

Печально то, что, при всех разговорах о бесконечном обновлении и куче бессмысленного “движа” реально прорывные вещи пробиваются через все эти спринты с фантастически медленной скоростью.

По-другому быть не может. Мне в 2004 объясняли принцип действия нейросетей, но по поводу применения могли предъявить только кривой FineReader. Развитие идёт через считанных энтузиастов типа Торвальдса, который до 50 лет провёл две революции. Гениальное никому не нужно, пока не приносит немедленной прибыли. Да и вообще гении обычно мешают.


Учёные должны заниматься наукой, для этого должен быть научный метод, огромные госсубсидии, критерии обучения и результативности. Вместо этого у нас есть потенциально бездонный золотой колодец, из которого первым черпает бизнес, не заботясь ни о чём, кроме скорости и объёмов наживы.

Бороться с этим бессмысленно. Когда бизнесу объяснили, что в хорошо документированном и отрефакторенном коде потом быстро разберутся новые миддлы, а это решит задачу удержания синьоров сверхзарплатами и соответственно экономить деньги, бизнес начал требовать описание каждой функции и ввести стандарты именования. А если бы учёные с кафедры computer science придумали рефакторинг, мы бы и слова такого до сих пор не знали.

Аватар пользователя blkpntr
blkpntr(8 лет 5 месяцев)

Какие две революции провёл Торвальдс? Опенсорсные системы существовали и до него, вот открываю советскую книжку 1985 года "Инструментальные средства программирования на языке Паскаль", там уже упоминается ТРИ советских клона Unix. А ещё в 80-х были открытые Oberon, Excelsior, Lisp-системы.

Аватар пользователя Camil
Camil(6 лет 4 месяца)

Какие две революции провёл Торвальдс?

когда такие вопросы видишь, очень хочется прекратить дискуссию

единственный конкурент винды, причём бесплатный, и первая среда для командной работы над кодом

Опенсорсные системы существовали и до него, вот открываю советскую книжку 1985 года "Инструментальные средства программирования на языке Паскаль", там уже упоминается ТРИ советских клона Unix. А ещё в 80-х были открытые Oberon, Excelsior, Lisp-​системы.

Так революции Торвальдса (обе) именно в том, что он смог совместить авторитарное управление ядром кода с распределением мелких задач. Что у нас по альтернативам: win-системы коммерческие (или трофейные, что всё равно идёт на пользу продажам, ибо тогда линух не рассматривается)... и всё. Остальные Unix-системы не применимы ввиду отсутствия сколько-нибудь значимого комьюнити, соответственно драйверов и софта. Мас-ос, андроид, iOS только на соответствующем железе.

Чтоб было понятно, я никоим образом к красноглазикам не отношусь, имел масштабный опыт внедрения на предприятии линуха (все админы уволились, и программистов заставили админить, и именно в этот момент нашим заводом заинтересовался майкрософт). На момент 2007 это был настоящий ад, на данный момент линукс стоит только на станках, которые сразу им были оснащены производителем, и ПК для настройки систем по ГОЗ, где линукс — необходимое требование безопасности. А пользователи до сих пор считают установку линукса вредительством и принуждением к увольнению по собственному желанию.

Но врать ни себе, ни людям не надо, у винды нет коммерческих конкурентов, у линукса бесплатных. Это на сегодняшний день.

Думаю, со временем (и довольно скоро, если не будет совсем уж тектонических политических потрясений) обе системы умрут, поглощённые превращением всех пользовательских компьютеров в терминалы, где не будет ничего, кроме веб-интерфейса, а все вычисления будут происходить удалённо. Процесс во всю идёт, практически весь софт уже по подписке. В игры, лежащие в облаке, уже можно позалипать прямо с телевизора. Пока выполнялся "закон" Мура, можно было продавать софт "навсегда", зная, что через несколько лет из-за прироста производительности в разы пользователь сам прибежит за новой версией. Но по моим прикидкам уже лет десять рост производительности железа в основном маркетинговый, на проценты в год, а не в разы, как было в 90-е. Мы уже где-то возле потолка по приросту — у меня отлично работает серверный xeon 2012 года выпуска, недорого купленный в Китае. Новые айфоны дожимают последние крохи из графического чипа и камер. Квантовые вычисления набирают популярность, но для них нужно промышленное охлаждение — зачем это дома пользователям?

Аватар пользователя blkpntr
blkpntr(8 лет 5 месяцев)

Git - это далеко не первая среда для командной работы над кодом. Например, майкрософтовская SourceSafe вышла в 1994 году, IBMовская ClearCase в 1992 году, и они тоже не были первыми.

Торвальдс и Столман - это просто искусственно созданные иконы для тех, у кого хотят отнять идею сделать отечественную ОС и подсунуть вместо неё ещё одну западную кодовую базу с закладками. Никто не может проверить 30 миллионов строк, нет там никакой безопасности.

Для справки, я автор NedoOS.

Аватар пользователя Camil
Camil(6 лет 4 месяца)

Никто не запрещает делать отечественную ОС. Просто это должен быть либо выгодный коммерческий проект (бесперспективно - рынок занят, нужно что-то прорывное, но с нуля, маркетинг обойдётся дороже, чем написание миллионов строк кода и поддержка всего зоопарка железа, а уже это сверхзадача), либо огромное сообщество (как у линукс)  возникшее ниоткуда, из апологетов теории заговора, которые истово верят, что надо делать с нуля своё, потому что в линуксе закладки. И чтоб делали одно дело, не переругавшись и доверяя друг другу. Апологеты теории заговора. Одно и то же. Доверяя друг другу. Либо государственный проект, чтобы туда ввалили несколько миллиардов и не лезли с советами и проверками пару лет. Знаете, что будет с госконторой, которой выделят несколько миллиардов и не будут проверять? С вероятностью 99,99999% деньги разворуют, кто-то сбежит, кто-то сядет но продукта не будет. И это везде так, просто потому что человек слаб, а деньгами можно смутить кого угодно. Праведники есть, но они 1 на миллион, а надо команду из праведников.

В ватсаппе ежегодно находят закладку, предоставляющую доступ ко всей информации в телефоне, при этом аудитория немного падает только вместе с серверами ватсаппа (но быстро восстанавливается). А в линуксе вы, кстати, много закладок нашли?

Работает не идеальное, а продукт с MVP, успевший захватить рынок. 

На станках я встречал даже OS/2 в немецких шмолях, не то чтобы производители так уж хотели подчиняться манипуляторам и монополистам, но судя по последним данным побеждает либо windows embedded цена которой несоизмеримо меньше станка, либо чаще разные сборки Linux. Японцы только недавно задались вопросом, почему клиенты имеют что-то против windows 95 и начали ставить мазатрол, который судя по всему тот же линукс. 

Про пользователей ПК я рассказывать не буду, думаю и так все в курсе. 

Я не обожествляю ни Гейтса, ни Торвальдса, ни Джобса. Но это люди, которые внесли огромный вклад в то, что наш мир сейчас выглядит так, как он выглядит. 

Аватар пользователя GrumpyVK
GrumpyVK(3 года 8 месяцев)

Git - это далеко не первая среда для командной работы над кодом.

Это даже не первая распределённая система. До неё был GNU arch.

Можете попробовать скачать и что-нибудь с этим чудом сделать.

Если вы достаточно мазохист — даже сможете им пользоваться. Возможно.

Например, майкрософтовская SourceSafe вышла в 1994 году, IBMовская ClearCase в 1992 году, и они тоже не были первыми.

Там даже намёка нет на равноправие. В arch, кстати, тоже.

Git гениален в том, что любая система имеет ровно столько же прав, как и любая другая.

Нет никакого центрального репозитория, куда что-то вливается и нет никаких второстепенных, они все равны.

Заметьте, что поверх децентрализованной системы контроля версий вы можете построить централизованную (просто любую из них объявляем “главное” и всё), а вот наоборот — фиг.

Для справки, я автор NedoOS.

Ну вот когда ваше поделие сможет поддерживать хотя бы сайтик, подобный АШ, будет о чём говорить.

Какой смысл рассуждать о безопасности, если вы задачу, перед вами стоящую решить не можете?

Можно рассуждать про безопасность и пытаться вытачивать из цельного бревна сервера и процессоры… но вы же другим путём идёте, когда нужно на АШ пост опубликовать. А почему?

Аватар пользователя Vinnie J
Vinnie J(4 года 2 недели)

Сделайте допущение, что надо что-то спрятать в коде и обеспечить это вычислительной мощностью также незаметно, и снова посмотрите на то, что написали.

Аватар пользователя startrack
startrack(11 лет 8 месяцев)

Как связаны заумные описания и оптимизация? Только тем, что торопыги не дочитали книгу до конца и пошли путём "бац-бац-в прод"?

Аватар пользователя GrumpyVK
GrumpyVK(3 года 8 месяцев)

Тем что они они начали читать книгу, увидели в ней формулы и закрыли её.

Что с этим делать — непонятно.

Ну да, учёные в своей работе используют математический аппарат. Ужас-то какой.

Теперь от формул отказаться и перейти на демагогию? Плохо кончится.

Аватар пользователя Escander
Escander(5 лет 6 месяцев)

перевод на ассемблер – в 1,5-2 раза.

Компиляторы давно уже пишут код не менее быстрый чем то-же написанное человеком на ассемблере

Аватар пользователя startrack
startrack(11 лет 8 месяцев)

Книга 1995 года выпуска. Хотя, возможно, автор не знал про опцию -O3.

Аватар пользователя endo
endo(7 лет 1 месяц)

НЯП -О3 обеспечивает минимальный размер кода, а не макс. быстродействие, я им пользовался когда надо было чтоб влезал во всякие микроконтролеры и прочие ардуины

Комментарий администрации:  
*** отключен (невменяемое общение, маты) ***
Аватар пользователя GrumpyVK
GrumpyVK(3 года 8 месяцев)

Вы бы хоть уточнили что за компилятор был.

На большинстве современных (Clang, GCC) это включает автовекторизацию и размер кода улетает в небеса.

У MSVC вообще такой опции нету.

Аватар пользователя endo
endo(7 лет 1 месяц)

вы меня заставили покопаться в делах давно минувших, спасибо), и я был не прав: -О3 оптимизация для speed, -Os size (avr-gcc), почему-то помнил наоборот

Комментарий администрации:  
*** отключен (невменяемое общение, маты) ***
Аватар пользователя dimlk
dimlk(4 года 4 месяца)

Те времена были еще давнее, тогда было наоборот. Даже сами машинные команды разрабатывались под более-менее удобоваримое восприятие человеком, классический набор 8086 как раз такой.

Аватар пользователя абра
абра(6 лет 4 месяца)

Компиляторы давно уже пишут код не менее быстрый чем то-же написанное человеком на ассемблере

Только программы ещё писать не научилисьsmile3.gif

Ассемблер - это прямое отражение команд процессора.

Последнияя архитектура процессора, которой команды и адресацию заказывали программисты, а не электронщики, была PDP-11 от DEC.

Всё остальное - электронщики в погоне "за скоростью" вычислений. И современные ассемблеры (встроенные в C) отражают убожество представлений электронщиков о программировании как искусстве достижения поставленной цели.

Аватар пользователя Escander
Escander(5 лет 6 месяцев)

Я успел немного покодить на PDP-11, увы платформа умерла.

Аватар пользователя predessor
predessor(6 лет 3 месяца)

А интерпретаторы?

Которые сейчас очень активно используются.

Страницы