Pull to refresh

Comments 229

UFO just landed and posted this here
Закон Мура уже перестал действовать на полупроводники. Неизвестно что будет через 20-30 лет. Может все на кванты перейдут или на троичные вычисления))
Intel 8086 стал первым 16-битным процессором компании, доступном в 40-контактном DIP (ди ай пи) корпусе, который наряду со множеством прочих особенностей, стал одним из стандартов в микроэлектронике последующих лет

Правильнее было бы сказать, что первым и последним (не считая i8088, конечно). В DIP-40 на то время уже много лет выпускались 8-битные процессоры. А для 16-битного процессора этого корпуса уже было недостаточно, но насколько я знаю, большего в распоряжении Intel на момент выпуска 8086 просто не было. И именно поэтому в 8086 пошли на компромисс — сделали мультиплексируемую шину, чтобы передавать сигналы адреса и данных по одним и тем же линиям. Как только освоили корпуса PGA, все последующие модели 16-битных процессоров, 80186, 80286 выпускали уже в них, и с раздельными шинами.
P8X32A-D40 и сейчас выпускается. Но там вроде только про интеловые говорили. :)
В 2018 году мы отмечаем сорокалетие 8086. По случаю хотелось бы попросить к статье голосовалку: кто из современных айтишников (людей, более-менее причастных к IT) на сегодня понимает, как работает процессор? Регистры, кэши, прерывания, виртуальная память, аппаратный стек?

Кажется мне, что большинство не помнит ни историю страны ни историю своей профессии. Очень хочу ошибаться.
Нет ничего плохого в том что человек, работающий в IT и которому для выполнения своей работы не требуются данные знания, может не знать об устройстве каких-либо компонентов компьютера. Мы же не ожидаем от каждого водителя автомобиля что он сможет досканально пересказать как работает каждый узел в автомобиле.
Мы же не ожидаем от каждого водителя автомобиля что он сможет досканально пересказать как работает каждый узел в автомобиле.
Вообще-то ещё лет 30 назад — ожидали. И не факт, что исключение этих требований из требований к водителям — это хорошая тенденция.
UFO just landed and posted this here
Хороший вопрос. Понятно, что новые знания и навыки вряд ли могут ужиться в одной голове со всем тем, что люди знали раньше. Каллиграфией ни вы, ни я не владеем — а когда-то грамотных людей, не знающих каллиграфию просто не было.

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

Что с этим делать — очень сложный вопрос…
UFO just landed and posted this here

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


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


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

Более того, есть специалисты, которые разбираются в «железе» при ремонтах двигателя, а что касается ПО, то они могут быть очень далеки. Точно так же софтовики, они знают принцип, а вот как сделать — это не их, может быть вообще не интересно. А сейчас найти ДВС без ПО — солоноватое задание.
Легко!
Газонокосилки, бензопилы, и даже, внезапно! Yamaha YBR125

Но когда-то, студентом, я сам чинил «копейку» и перебирал двигатель.

Сейчас даже желания нет просто подключиться по OBD2 и посмотреть режимы работы — хотя все для этого есть.

И знание устройства двигателя к сожалению теперь не помогает экономить топливо.

В общем-да, компьютеры уже давно перешагнули тот рубеж, когда можно было самому спроектировать от а до я (Радио-86РК)
Основная функция автомобиля — выполнять транспортную работу, а не стоять на ремонте. Если 30 лет назад и ожидали от водителя, что он и механик и слесарь… а еще и водитель, то только в СССР. У него другая функция, он должен знать принцип работы, чтоб эффективно эксплуатировать. Поэтому у них есть DHLы и доставки через день, а то и день в день… а наших краях ...«Почта»…
Эффективность труда связана в первую очередь с ответственностью, а не мифическими совками. В штатах могут легко уволить сотрудника, у нас же легко могут предложить написать по собственному желанию. Сотрудник по сути просто меняет работу, в не зависимости от причины увольнения. А уже отсюда следует, что какая разница как работать, если из почтальонов всегда можно устроиться грузчиком или таксистом.
Хочу привести пример как работали в колхозе… при уборке урожая зерновых. Мой родной дядя, заслуженный трудяга, передовик, отличный механик/слесарь/водитель и инженер (да, даже был главным инженером в колхозе). До уборки урожая свою Ниву готовил по 2-3 месяца. Наступает час уборки, полдня на поле и что-то отвалилось… притянули на ремонт. Вечер-ночь с напарником работают над техникой, чтоб она выехала утром… героические усилия и они приварили/заменили/устранили течь/подставить свой вариант… работают день-два — очередные проблемы, барабаны не правильно настроены (треть урожая вылетает в «трубу»), перегревается жидкость в радиаторе, накрылся выгрузочный шнек… обломался самосвал отвозящий зерно на склад. Переходим с гороха на пшеницу — полдня на переконфигурацию барабанов. Потом, после развала союза, появились Доминаторы, Джон Диры, Массей Фергюсоны… один раз спрашиваю у дяди, какая скорость у забугорного комбайна по уборке урожая… в ответ слышу:"… Фергюсон собирает урожай по полю с такой скоростью, с которой Нива даже по асфальту не едет...". Это я очень хорошо знаю, потому что еще с раннего детства уборка урожая не проходила меня мило. Ибо была возможность просто «кататься» в кабине комбайна и для меня был просто кайф. Так что я много повидал, а еще мог сравнить Джон Дир, с его кабиной с кондером и Ниву… Если сравнивать, то тогда с потугами справлялись с задачей за почти за 1 месяц дюжина комбайнов. Сейчас — 2-3 за полторы недели.
Ответственность очень полезно и нужно, но каждый должен заниматься своим делом.
В штатах могут легко уволить сотрудника, у нас же легко могут предложить написать по собственному желанию.
Ага, если ты в профсоюзе, то легко у них не уволят. У нас же, сами профсоюзы поспособствуют твоему увольнению. Есть хорошое сравнение работы полицейских в США и в наших краях, в частности сравнивали в РФ, в лице бывшего полицейского из США Михаила Лапидуса. Про то, что он не имеет права менять колесо на автомобиле, даже если может, ибо были случаи, когда полицейских убивали, а у нас — у полицейского, кто закреплен за автомобилем, то должен ты быть чуть ли не механиком, а в последнюю очередь полицейским. Так же были обсуждения о субординации и профсоюзах. Там у них отстаивают права… Да, полиция не самый лучший пример, у каждого государства есть много косяков… но раз сравнили.
А уже отсюда следует, что какая разница как работать, если из почтальонов всегда можно устроиться грузчиком или таксистом.
Еще раз, разница в том, что у нас — специалисты широкого профиля, у них — узкого. В целом, мы хорошо адаптируемся под разные условия, они нет, но и работают они эффективней. А для этого нужно обеспечивать стабильность… которой у нас нет, поэтому приходится быть широкопрофильным специалистом.
Я в Штатах конечно не живу, но не однократно читал про их профсоюзы. Если у Вас есть что нибудь интересное по этой теме, то линканите.
Собственно по профсоюзам. Это точно такая же организация, у которой свои цели и задачи. И когда например официант плюет в лицо клиенту, ни одна правозащитная организация не встает на его защиту. Ну если сюда конечно нельзя будет приплести какой нибудь расизм, гомофобство и т.д. В общем же официант будет уволен в течении следующего часа, без отработки оставшейся смены
На счет профсоюзов официантов не уверен. Если такие есть, то если его за это выгнали или подали в суд, то в теории профсоюз должен его защищать. Чтобы он не сделал. Может клиент ухватил официанта за половые органы… тут еще разбираться нужно. А если просто не нравится человек по какаи-то причинам, он, например, республиканец....- за ним будут стоять горой, ибо безосновательное увольнение, они еще бабло заработают в судах. У нас, чтоб кто-то судился с работодателем, за то, что его уволили… сомнительно, в редких исключительных случаях. Да, в США, где нет профсоюзов, то там могут уволить и за 3 минуты. Там это очень быстро.

Вот вышеупомянутый полицейский Лапидус, о бывших своих американских полицейских профсоюзах. Я не хочу вдаваться в подробности США, ибо их нет. Но есть примеры наших, совковых профсоюзов. Когда профсоюзы возглавляют члены правления компании. Каким образом член правления будет отстаивать права рабочих перед правлением, если он сам и есть правление. Когда профсоюзы, вместо того, чтоб становится на сторону рабочих, сами собирают заявления на увольнения по собственному, с угрозами, наездами и прочими административными методами. Я вообще молчу о сверхурочных и походах в обычный отпуск. Профсоюз — это должно быть отдельное государство в компании, а не быть его частью. Когда руководство компании не является твоим прямым начальником и не говорит, что тебе делать. Это не профсоюзы. Это полная ерунда. В отличии от западных стран, где есть некая независимость от работодателя, когда его представители могут наехать на руководителя предприятия, и ему придется идти на переговоры. Вот, вспомнил. Есть хороший пример такой борьбы в главных командных спортивных дисциплинах США (баскетбол, футбол, хоккей, бейсбол). Там бывают так называемые локауты, когда профсоюзы игроков не сходятся во мнении с владельцами клубов по тем или иным суммам или условиям. Даже у тех, кто зарабатывает миллионы в год есть профсоюзы и они отстаивают свои права. У нас даже и близко такого нет.
Итог — в будущей колонизации планет, русские первопроходцы будут на расхват
Слово «ответственность» как раз очень любят употреблять те, кто эффективностью труда не блещет.
Не важно, увольняют сотрудника по статье, или «по собственному», главное здесь как раз умение распрощаться с сотрудником, который не справляется со своими обязанностями. Или понять, что обязанности на сотрудника возложены нереальные, и избавиться от лишних требований, которые всё равно никто не соблюдает.
Я передал сотруднику оборудование для работы на складе. Прошло какое-то время и так получилось, что он его пробухал. Что это, если не отсутствие ответственности? И стоит ли говорить, что его уволили по собственному желанию. И таких примеров как прямых, так и натянутых за уши пруд пруди. Человек просто меняет одну контору на другую и продолжает работать, как ни в чем не бывало.
У вас были какие-то сложности чтобы распрощаться с ним, из-за того, что он написал «по собственному»? Это единичный случай? Тогда смысл о чём-то скорбеть.
мир усложняется. и если устройство телеги знал любой крестьянин, устройство паровоза из сотни(пары сотен) деталей знал специально обученый (месяцы) машинист, то устройство современного автомобиля в полном объеме (десяток и более подсистем, каждая из которых — сотни деталей) знает не каждый из разработчиков этого автомобиля.
зато появились специальнообученные люди, которые знают и могут ремонтировать эти подсистемы.
Объём знаний вырос и компьютеры тут просто один из элементов. Почему им отдаёте предпочтение? Почему не фотосинтезу? Или химическим реакциям, протекающим в организмах. Или механизму работы каждого фермента. Вы ведь своим организмом пользуетесь сильно больше, чем этими компьютерами (или автомобилями).
PS. Если каждый будет разбираться, то не будет массовости, нет массовости — высокие цены и низкая доступность, вы можете в таком случасе чувтствовать свою элитарность, но какой с этого реальный прок?

Даже в компьютерах знать все невозможно. Если раньше я мог изучить какую-то технологию, язык программирования, и писать из головы, без google и справочников, то теперь нужный объем просто не умещается у меня в голове.


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


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


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

За понимание физики процесса — общество потребления настолько отучило нас всех от необходимости понимать хотя-бы основные принципы функционирования механизмов и электроники, что мы в прямом и переносном смысле стали витать в «Облаках».

Отсюда и «раздутый» код, и требования больших ресурсов.

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

А ведь еще казалось-бы совсем недавно мы таки пользовались таблицами количества тактов на ту или иную команду (я на 80286 еще ими пользовался), буквально «вылизывали» код.

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

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

В общем, как говорится — Богу — Божье, Кесарю-кесарево
UFO just landed and posted this here
Сегодня в каждой второй компании, если не в каждой первой, на собеседовании на должность миддла и выше обязательно будут спрашивать с пристрастием на понимание оценки вычислительной сложности стандартных алгоритмов и часто используемых структур данных, на то, как оно лежит в памяти, и т.д.
Во-первых — не во всех. Во-вторых, если вы посмотрите на регулярно появляющиеся статьи на Хабре подавляющее большинство соискателей твёрдо уверены — что это такой «бзик», «пережиток прошлого», который нужно как можно быстрее искоренить…

Да, без фанатизма. Даже Дейстра говорил, что преждевременная оптимизация — зло :)
Во-первых — не Дейкстра, а Кнут.

А во-вторых — читайте первоисточники.

Там есть не одна ключевая фраза, а две.
1. We should forget about small efficiencies, say about 97% of the time: premature
optimization is the root of all evil.
2. In established engineering disciplines a 12 % improvement, easily obtained, is never considered marginal; and I believe the same viewpoint should prevail in software
engineering.

А современные «писатели» с лёгкостью тратят не лишние 12%, а даже не лишние 120%, а лишние 12000%.

А сегодня на одной чаше весов производительность и оптимизации, а на другой чаше скорость разработки (оперативность выкатывания новых фич на рынок) и стоимость времени разработчиков.
Дык нет же! Новые фичи по прежнему выкатываются долго и мучительно. И разработка ведётся ничуть не быстрее, чем на самых ранних версиях Visual Basic'ы или Delphi.

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

Я понимаю, так как мне уже довольно много лет, и я начинал программировать на ассемблере x86. Но проблема в том, что количество знаний, требуемых по работе, растет экспоненциально. Когда я только начинал работать, было 3-4 популярных языка программирования (скажем, C, C++, Perl, Java). Библиотек, тем более фреймворков, почти не было.


Сейчас же используется едва ли не несколько десятков ЯП, сотни тысяч библиотек, сотни фреймворков. Все это очень быстрыми темпами меняется, взаимодействует между собой сотнями различных способов, деплоится десятками различных способов. Любое приложение отделено от железа массой слоев.


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

Сейчас же используется едва ли не несколько десятков ЯП, сотни тысяч библиотек, сотни фреймворков. Все это очень быстрыми темпами меняется, взаимодействует между собой сотнями различных способов, деплоится десятками различных способов. Любое приложение отделено от железа массой слоев.
С одной стороны — да, это всё так, а с другой стороны… а зачем это всё так?

Вот что мы получили перейдя от программы, поставлявшейся на дискете 170K и работавшей на компьютере с процессором 1Mhz (да, не 1GHz, а 1MHz)

к современному Office 365?

Да, мы получили какое-то количество новых возможностей… но стоят ли они тысячекратного увеличения сложности и многократного (хотя всё же не тысячекратного, слава богу) снижения надёжности?

Во времена 8-битных компьютеров, когда на экране «тёплого, лампового» телевизора вместо ожидаемых картинок появлалась какая-то фигня — нужно было брать тестер и прозванивать цепи… чтобы это происходило из-за ошибок в программе… это нужно было что-то неверноятно странное сделать… сейчас же… когда ошибки в iOS видны прямо в рекламном ролике — это воспринимается как норма.

Возникает довольно-таки неприятное ощещение того, что мы где-то соврешили поворот «не туда»… причём довольно-таки сильно «не туда»…

Это отчасти философский вопрос. Я и сам часто так думаю.


Так устроено общество, капитализм. Люди любят всё новое. Если компания не выпускает постоянно новые продукты, то покупатели уйдут к тому, кто всё время выпускает что-то новое. Часто делается обновление ради обновления.


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


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


А если кто-то становится монополистом, то ситуация не лучше. Монополисту нет смысла улучшать продукт ­— он лучше сократит всех людей, которые над ним работали, и улучшит свои бизнес-метрики. Сразу на ум приходит MS IE 6, который был просто кошмарным браузером, и столько лет отравлял всем разработчикам жизнь, но MS распустила всю команду и не исправляла ни одной ошибки, потому что в этом для них не было никакого резона — и так все пользуются, зачем тратить деньги на улучшение?..

За мои 12 лет владения компьютером, мы этот «поворот не туда» совершаем уже в третий раз: популярная одно время маркетинговая фраза «два ядра два гига» сначала означала мощный игровой компьютер, потом офисную машину, а теперь у меня такой аппарат в качестве роутера стоит.
UFO just landed and posted this here
Отрицать??? Что Вы! Я счастлив =) Впрочем, роутера на MIPS у меня тоже никогда и не было. Все как то х86…
UFO just landed and posted this here
UFO just landed and posted this here
А где в вашей системе место таким вещам как римское право?
UFO just landed and posted this here
А какая связь римского права и римской религии?
Я уж молчу про упомянутую выше огромную книженцию, ага.
UFO just landed and posted this here
А не ослабить патрициано-плебейское противостояние с помощью внедрения в традиционный аграрный порядок равного для всех частного и уголовного права?
Плебеи, несмотря на учреждение должности трибунов, терпели произвол консулов в судебных делах. В вынесении приговоров консулы или назначаемые ими судьи руководствовались обычным правом, недостаточно определенным. Требовалось этот произвол, ограниченный лишь в важных уголовных делах законом Валерия о воззвании к народу, ограничить буквой закона.

Как по мне так просто низы потребовали внятно сформулировать законы по которым их судят. Религия тут за уши притянута.
UFO just landed and posted this here

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

UFO just landed and posted this here

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


Например, когда появились ИП с налогом в 6% или меньше (на патенте в зависимости от города и рода деятельности может быть меньше), многие компании посокращали сотрудников, заставили их открыть ИП, и перечисляли им зарплату как платежи ИП. Я лично был свидетелем такого.


Так же как и в программировании: наперед предусмотреть все возможные баги невозможно.


Поэтому никуда не деться, система не может стать совершенной по определению. Кстати, некоторые древние философы отлично это понимали.

Вот киски то — как раз понятно. Это «первобытный» двигатель прогресса как минимум в части пропускной способности интернет-каналов. Но почему офисная машина каждые пару лет вырастает по требованиям к железу, без развития функционала, — вот где загвоздка…
UFO just landed and posted this here
Ах да, вспомнил тут ещё, как у меня Windows 95 грузилась минут пять — и это было вполне нормальное время загрузки :-)


А сколько ОЗУ было и какой процессор? Потому как я тут пару лет назад собрал 486 и получилось так:


А как было в 90-е я уже давно забыл (я тогда только у друзей видел IBM PC).
UFO just landed and posted this here
Ну так то дело в 4-х мегабайтах. Рекомендованный объем ОЗУ для Вин95 был от 8 метров, и то, она там себя так себе чувствовала, когда что-то жЫрное в офисе открываешь. Вот с 12 начиналось счастье.

И это без SSD, Многоядерного процессора и UEFI с fast boot и gop.

Там с диска читать то… От силы 5 мбайт. Какие еще fast boot'ы?
UFO just landed and posted this here
и при этом обладали весьма хорошей картинкой

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

Не знаю, что у вас там в офисе происходит, а в мой реальности уродливые здоровые серые прожорливые системники, устаревающие за 3 года и запускающие офис по пол-минуты под жуткий скрип винтов, превратились в маленькие почти бесшумные коробочки, которые прекрасно работают по 5-7 лет, за те же деньги. Только доллар уже не тот.
Затем, что прогресс требует жертв. Люди требует «красивее» и «почаще», вот и создаются сотни слоёв абстракций, чтобы обычные программисты среднего уровня могли над всем этим работать в больших командах

Я вряд ли ошибусь, если скажу, что подавляющее большинство абстракций в современных системах существуют не потому, что они там что-то упрощают, улучшают, или даже, кхм, абстрагируют. А просто потому, что они там исторически наслоились за годы разработки, а новые программисты не разбирают авгиевы конюшни, оставшиеся от предыдущих. Т.е. всё это можно было бы безболезненно выкинуть, но никто ведь этим заниматься не будет.
UFO just landed and posted this here

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


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

UFO just landed and posted this here

Ничего совершенного в этом мире нет нигде и ни в какой момент времени. Но это не повод опускать руки и ничего не делать.

UFO just landed and posted this here
UFO just landed and posted this here

А если не смотреть на офис, то машинное зрение на дискете на 1МГц процессоре сделать сможете? И почему именно такой, были же ещё медленней и выполняли свои задачи, не тратя мощности на ваш хипстерский интерфейс. Вот это была техника, не то что ваши, целый мегагерц не понятно на что.


нужно было брать тестер и прозванивать цепи…

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

А если не смотреть на офис, то машинное зрение на дискете на 1МГц процессоре сделать сможете?

Не сделаем. Но фишка в том, что в 99.9% случаев нужен именно офис, а не машинное зрение. Ситуация, когда на дохренаядерном процессоре тормозит в браузере формочка с пятью десятками полей и скриптами для валидации данных на фронтэнде не имеет никаких логичных объяснений, кроме безграничного засирания нижележащего кода движка JS и DOM браузера.
зато сравните скорость разработки этой формочки сейчас (а также — возможности механизма ее отображения), и тогда (на каком-нибудь Дибейсике)
В 1980-е, конечно, каждая софтинка была своим отдельным велосипедом. Но самая высокая скорость разработки формочек была в 1990-е годы, когда библиотеки виджетов и визуальные дизайнеры уже появились, но ещё не разрослись. Сейчас продуктивность разработки несколько упала, потому что возможности просто набросать компоненты на формочку и забиндить с данными ушла в прошлое. Нужно клиентский javascript для корректного поведения писать, нужно верстать систему из контейнеров для правильного расположения виджетов на разных экранах (хотя во времена, когда каждое окно вообще могло иметь произвольный размер, без этого почему-то нормально обходились) и т.д.
По сути дела мы вернулись как раз во времена PDP-11 на новом технологическом витке, когда приложения перестали быть монолитными, и нужно писать две слабо связанные части, одну, исполняемую на терминале (браузере), вторую на самой ЭВМ.
Таки фомочки на Visual Basic писались ничуть не дольше, а работают и сегодня неплохо (только рантайм установить).
ну да, но в вижалбейсиковых формочках нужен рантайм, а современные — рабботают в браузерах, причем в любых, на любой платформе, причем за три звизды от сервера, по тонким каналам и т.п.
другое дело, что это тоже не всегда надо.
Ну это не какое-то особое преимущество современных форм. Они ведь тоже тянут необходимый им для работы набор библиотек. То, что за три десятка лет софт научился их вытаскивать с сервера автоматически, а не требовать этого от пользователей, нужно воспринимать как нечто само собой разумеющееся :)
Кстати, современник вижуалбейсика Delphi обходился без необходимости тянуть исполняющую среду.
ту так дельфЯ был полностью компилируемым.
Ну так мы ж в целом про инструменты разработки «тогда и щас», а не про конкретно VB vs React Native
UFO just landed and posted this here
200 кбайт — то много. На хорошем диал-апе это целых 40 секунд загрузки.
UFO just landed and posted this here
Так это разные проблемы — смещение в сторону скорости разработки софта (и, как следствие, его цене) и мощности железа. И офис большинству нужен именно как конечному пользователю, если где-то используется машинное зрение, то пользователь об этом даже не знает.

Формочки быстрой разработки из 90х имели простые пиоля, код сохранения, валидаторы тоже надо было писать. Мультиязычность там была относительной, а всякие нечитаемые сокращения и налезания — обычным делом при националификации.
JS — это эволюция (и как любая эволюция она не обязательно отбирает саое лучшее по всем критериям, ему просто повезло и с ним, как с возвратным нервом, приходится мириться… ну или генную терапию организовывать и выводить новый вид).
И почему именно такой, были же ещё медленней и выполняли свои задачи,
А не было такой техники. VisiCalc появился на Apple II, которая имела тот же мегагерц и 64K. Только он текстовым был.

не тратя мощности на ваш хипстерский интерфейс
В том-то и дело, что GEOS, несмотря на свой «хипстеркий интерфейс» и даже мышь требовала не сильно больше ресурсов, что текстовые предшественники.

А сейчас просто работает со значительно меньшим процентом критичных отказов (вывод фигни и прозвонка были нормой, а вы говорите надёжность).
Я говорю про надёжность ПО. Да, железо-таки глючило, но софт — почти никогда. Решать задачи перезагрузкой не приходилось.

Сейчас — всё наоборот.
> А не было такой техники. VisiCalc появился на Apple II,

Apple II — первый компьютер? Вот это поворот!

> но софт — почти никогда

Там просто ошибки были, глюками их, конечно, не называли. Слёты имён переменных при загрузке бейсик-программы (все имена заменялись одним символом) — это как раз пример тех самых глюков.
Мы получили ускорение работы программы (когда речь идет о сотнях листов и сотнях тысяч записей — почувствуете) и выполняемых операций (включая ввод-вывод). Да, это стоит увеличения сложности.
Мы получили ускорение работы программы
Вы тут одно слово перепутали. Вот так:
Мы получили ускорениезамедление работы программы
правильно будет.

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

В MIM спокойно можно было редактировать книжку на несколько сот страниц в одном файле — а сейчас, у современных редакторов, это проблемы вызывает.
мим валился с завидной регулярностью. возможностей у него кот наплакал (по крайней мере у версии из комплекта Корвет-МикроДОС). файлы ломал тоже неплохо (в том смысле, что порой сохраненная отредактированная версия файла не имела ничего общего не только с отредактированной или первоначальной, но и вообще с текстовым файлом)
Я не стану говорить о таких очевидных вещах, как огромное количество функций, построение графиков, тот же VBA (если сравнивать с Excel), но хотя бы такую простую задачу, как сортировка таблички из десяти тысяч строк он за какое время выполнит? Это даже если гипотетически предположить, что у C64 образовалось столько оперативной памяти.
Я не стану говорить о таких очевидных вещах, как огромное количество функций, построение графиков, тот же VBA (если сравнивать с Excel), но хотя бы такую простую задачу, как сортировка таблички из десяти тысяч строк он за какое время выполнит?
На современном железе-то? Думаю что справится за то же время, что и Office 365. Притом, что любой эмулятор C64 просаживает производительность в 10-100 раз по сравнению с нативным кодом.

Это даже если гипотетически предположить, что у C64 образовалось столько оперативной памяти.
Архитектура позволяла до 16M повесить и на эмуляторах это можно сделать.
На современном железе-то?


Нет, на том самом 1 МГц, с которым вы сравниваете.

Архитектура позволяла до 16M повесить и на эмуляторах это можно сделать.


Ну, архитектура уже на 386 позволяла 4 Гб повесить, но больше чем с 16 Мб я их что-то не видел.
На современном железе-то?
Нет, на том самом 1 МГц, с которым вы сравниваете.
А какой в этом смысл? Было бы странно, если бы в сто тысяч раз более мощная платформа не имела бы вообще никаких преимуществ!

А вот то, что платформа у нас в сто тысяч раз более мощная, а ускорение работы с теми же данными — хорошо если десятикратное… вот об этом и речь.

Почему-то на КПД какого-нибудь паровоза мы смеёмся, а кпд современных фреймворков — нас не волнует. Хотя хорошие паровозы всё-таки «в дело» 5-7% мощности пускают, а современный фреймворки — хорошо если 0.1%.
А какой в этом смысл?

А я не знаю, какой вы смысл вкладываете в
Вот что мы получили перейдя от программы, поставлявшейся на дискете 170K и работавшей на компьютере с процессором 1Mhz (да, не 1GHz, а 1MHz)
А самый простой. Вот что конкретно мы получили перейдя от программы в 100K к современным UWP-приложениям? Ну кроме дико возросшлих требований к железу?

Что именно я получил от более мощного железа (возможность работать с документами на сотни страниц и прочего) — понятно. А что дали все эти фреймворки и прочие «новейшие» технологии?

И только кокретно про переход от geosCalc 1986го года, а от последовательно всех версий — Lotus 1-2-3, Excel 2.0 и так далее.

Из важного — ну, возможность вставлять картинки и графики прямо в документ. Это то ли Excel 3.0, то ли Excel 4.0. Хотя вроде Quattro Pro for DOS так умел, но у него требования к ресурсам были сравниыми с ранними версиями Windows и Excel. А… ещё можно совместно редактировать документы в Google Docs… это круто, конечно, но для это действительно нужна машинка в десять тысяч раз мощнее, чем для Excel 4.0?

P.S. И да, я знаю, что некоторые вещи, основанные на разного рода нейронных сетях и прочем таки требуют много ресурсов… Но есть ощущение, что 99% современных технологий — это в чистом виде архитектурная астронавтика — решения не существующих в реальности проблем, тратящие существующие ресурсы.
> А что дали все эти фреймворки и прочие «новейшие» технологии?

Возможность получить программу быстрее и дешевле. Возможность работать с большими файлами (новые технологии — они разные бывают).

Excel 4.0 сколько мог строк и столбцов переваривать?

И если вам хватает, то почему не пользуетесь? Вы, надеюсь, с C64 или Apple II это написали? Просто же для них браузер создать — столько времени прошло, неужели его нет?
Возможность получить программу быстрее и дешевле

Понимаете, разговоры о том, что новые инструменты позволяют получить программу быстрее и дешевле, это нечто из рода «новый Дирол на 25% дольше хранит морозную свежесть». Это не совсем так. Быстрее и дешевле было во времена расцвета монолитных приложений, в начале нулевых. Веб значительно поубавил продуктивность разработки софта.
Монолитных решений малого объёма.
Любого объема. Можно подумать, тогда не было приложений с миллионами строк кода, и они как-то медленнее приобретали новые фичи.
Например, тогда для связывания удаленных компонент обычно использовался SOAP, он хоть и более громоздкий, чем модные сейчас REST, но зато имел контроль типов, исключения, плюс автоматическую генерацию прокси-классов по описаниям интерфейсов. И знаете, производительность при интеграции компонент через SOAP тоже выше, чем через REST-сервисы.
> тогда для связывания удаленных компонент обычно использовался SOAP,

Тогда — это когда? Excel 4 — 92 год, SOAP — начало 0х. C64 — оно ещё раньше.
Тогда — это когда?

Хм. А вы точно читаете те комментарии, на которые отвечаете? ;)
Возможность получить программу быстрее и дешевле.
Так не дали ведь! Пик был достигнут лет 20 назад, где-то во времена Visual Basic'а и первых версий Delphi.

После этого — чем дальше в лес, тем больше времени и сил занимает разработка. И при этом порождает фичи не нужные 99% заказчиков.

Excel 4.0 сколько мог строк и столбцов переваривать?
255 x 32767. Мало кто использует больше и сегодня.

И если вам хватает, то почему не пользуетесь?
Потому что современные операционки больше не поддерживают запуск 16-битных приложений. Ну и потому что Office 2007 начал использовать по умолчанию формат, который Excel 4.0 не открывает.

Просто же для них браузер создать — столько времени прошло, неужели его нет?
Та же самая проблема: браузер там есть (да,, но современный Хабр — в нём не работает. Тот, который был 10 лет назад — работал и всем меня устраивал… но нету его.

Извините, но «теперь вы можете, используя в 10 раз больше памяти и в 10 раз более быстрый процессор делать всё то же самое, что могли 10 лет назад на компьтере смешной по меркам сегодняшеного дня мощности» — это не прогресс.
почти со всем согласен.
единственный момент: сейчас все делается «красивее» (и чаще всего — интуитивнее). Для непрофессиональных пользователей это очень важно.
> 255 x 32767. Мало кто использует больше и сегодня.

Значит мы мало кто. Эксель — это не просто глазками посмотреть, это ещё и про посчитать.

Delphi, у которых компилятор OP не умел и не умеет в оптимизацию странно приводить как хороший пример.

> современные операционки больше не поддерживают запуск 16-битных приложений

Испоьзуйте старые операционки, они же тоже программы и тоже должны подчиняться тем же правилам (раньше — лучше, сейчас куча бесполезной фигни).
Delphi, у которых компилятор OP не умел и не умеет в оптимизацию

Вы что этим хотели сказать, «компилятор ОР не имеет таких подробных настроек оптимизатора как в С++», или «я не видел компилятора ОР»?
Я хотел сказать что ни компилятор OP, ни компилятор Delphi (с 7й версии язык стал так называться) не умеет в оптимизацию. Совсем. Посмотрите на генрируемый код — вычислить выражение, положить в ячейку, на следующем шаге достать. И так постоянно. Никакими настройками это не лечится, не говоря уже о приличной оптимизации, на уровне современных ++. Компилятор, судя по всему, не видели именно вы — ни dcc, ни fp, ни vp.
Значит мы мало кто. Эксель — это не просто глазками посмотреть, это ещё и про посчитать.
Чтобы увеличить максимальное количество столбцов нужно было притащить в Except в 100 больше кода?

Думаю, что можно было бы тот же Excel 4.0 чуть-чуть допилить — и он взял бы и миллионы столбцов и строк. А работал бы с ними ничуть не медленнее MS Office 2016.

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

Delphi, у которых компилятор OP не умел и не умеет в оптимизацию странно приводить как хороший пример.
А причём тут компилятор? Компилятор у Delphi 1.0 был фиговый, а у Visual Basic 3.0, какого-нибудь — ещё хуже.

Но вот приложения получались меньше и работали быстрее — вот что характерно.

Испоьзуйте старые операционки, они же тоже программы и тоже должны подчиняться тем же правилам (раньше — лучше, сейчас куча бесполезной фигни).
К сожалению производители железа тут работают против нас: все вот эти современные EFI, ACPI и прочее — со старыми операционками не работают. А APM производители железа давно перестали поддерживать.
> чуть-чуть допилить

И так с каждым приложением, но не могут. Есть отдельные мелкие исключения (типа просмотрщиков картинок на замену acdsee или медиаплееров), но вот «маленький офис» не выходит (к слову по тем временам офис был совсем не маленький, просто на фоне современных так выглядит).

> Компилятор у Delphi 1.0 был фиговый, а у Visual Basic 3.0, какого-нибудь — ещё хуже.

Оба два хуже, нет смысла выбирать из них.
Есть отдельные мелкие исключения (типа просмотрщиков картинок на замену acdsee или медиаплееров), но вот «маленький офис» не выходит (к слову по тем временам офис был совсем не маленький, просто на фоне современных так выглядит).
На самом деле за прошедшие годы случился феномен, который все пользователи и разработчики офиса просто пропустили. Современным пользователям офис… просто не нужен!

Когда Microsoft решил, что он сделает экслюзивным офис для Windows Phone и за счёт этого вытащит платформу… он обнаружил, что… пользователи не клюют.

И прайс листы в .xls на сайты сейчас не выкладывают по той же причине: многим посетителями их смотреть нечем и они уходят на другие сайты.

Впрочем в бухгалтериях всяких он застрял прочно, так что думаю их Microsoft ещё долго сможет доить…
4 Гб — это в процессоре, но не нужно забывать о всевозможных ограничениях другого железа и ОС, плюс разнообразные физические ограничения, как и сейчас. Насколько я помню документацию по редкой плате 386, которая позволяла поставить 128 мегабайт памяти, там использовались одновременно — гнезда SIMM плюс DIP-корпуса плюс платы памяти на специальной локальной машине. На таком серверном бегемоте с запредельной стоимостью для обычного юзера в 1990 году — да, можно было поставить.
Ну так и с Commodore 64 то же самое. Теоретически можно, практически такой мутант стоил бы заоблачных денег (и не поддерживался бы никаким софтом).
Энтузиасты делали и делают (во многих эмуляторах можно включить такой зоопарк расширений памяти), как и для Агатов или Спектрумов в бывшем СССР — Пентагон, Скорпион… Более того, у самого Commodore была офисная линейка 8-битных CBM-II с 256 килобайтами памяти. Но недолго.
Их делали, когда в ходу уже были 386/486/пентиумы. Всё это было от нищебродства и/или для души. На западе к тому времени спектрум давно умер и был похоронен.
Поскольку Спектрум вероятно никогда и не ставился в энтерпрайз. В нишевых применениях старые системы и ОС 60-80 годов, полная замена которых могла обойтись в миллионы, могли жить очень долго и возможно живут до сих пор. Иногда сам производитель, если он был жив, переходил на железную, а потом и софтовую эмуляцию старых систем для поддержки клиентов.
UFO just landed and posted this here
только даже простейшие финмодели пишет в лучшем случае единицы процентов пользователей.
UFO just landed and posted this here
разработка на которых происходит по принципу «тяп-ляп и в продакшн».
это одна из методик разработки, наряду с agile, scrum и т.п. — называется «ХХП»

Если бы мы от компьютера требовали только табличек на псевдографике, тогда никакого прогресса бы не было бы.
Но сейчас область задач очень и очень расширена. Попробуйте на "тех" компьютерах хотя бы полистать современные фотографии. Я уж не говорю про котиков на Ютубе, игр и пр.

В общем чем дальше в лес, тем больше ощущение «украденного праздника» (I have always wished for my computer to be as easy to use as my telephone; my wish has come true because I can no longer figure out how to use my telephone — Stroustrup)
Закапываясь в детали, неизбежно уменьшаешь свою производительность в целом.
Например, я вчера изучал нейронные сети с глубоким обучением в Matlab. 10 строк кода, и нейронная сеть определила, что на фотографии пляжа именно пляж. И все это отработало за 1 секунду.
Вы представляете сколько уровней абстракции между этими строками в Matlab и конечными ассемблерными инструкциями? Десятки, не меньше. Зачем мне погружаться туда?
А сколько бы у меня заняло времени написать аналогичное приложение хотя бы даже на С++17?

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

Дизайнер автомобиля не должен погружаться в химию металла и пластика из которых делают автомобили, он должен дизайном заниматься (но представление о химии иметь обязан, да). А теперь подумайте, какой автомобиль будет лучше — нарисованный «с нуля», когда каждая деталь продумана и гармонично соединена с остальными, или тот, который собран из шаблонов готовых дверей, рам и т.д.? В каком из двух случаев у дизайна больше шансов стать качественным, красивым автомобилем?
часто «красивый» противоречит «качественному»

Не факт что лучше — "с нуля" он не учтёт многих вещей, уже пройденных изготовителями частей.
Будет дороже — спросите программистов о библиотеках и повторно используемом коде (заодно лучше ли писать программы сразу в машинных кодах, продумывая каждую инструкцию).
Будет не будет — бюджет на разработку (материальный и временной) ограничен, например, состоянием и временем жизни создателя.

Дизайнер автомобиля не должен погружаться в химию металла и пластика из которых делают автомобили, он должен дизайном заниматься (но представление о химии иметь обязан, да).


У Хейли в его «Отеле» есть эпизод, когда шеф-повар не может понять, почему у него получается невкусная пища. Управляющий отелем (!!!) раскалывает задачку, обратив внимание на то, что с решеток для жарки слезло защитное покрытие и масло тупо окисляется, давая неприятный привкус.

Достаточно длинный, но хороший текст
«Питер поднял на молодого француза глаза и встретился с ним взглядом.
— Если позволите, я хотел бы поближе ознакомиться с вашей работой.
— Берите. Все равно этим бумагам еще долго лежать. — Губы помощника
шеф-повара скривились в горькой усмешке. — Мне все время говорят, ни одна
моя лошадка в стойло не придет.
— Меня вот что удивляет: как это вы могли за столь короткий срок все
изучить и так тщательно продумать.
Андре Лемье пожал плечами:
— Чтобы понять, что плохо, не надо много времени.
— Так, может, следуя этому принципу, мы сумеем разобраться и в
неполадках с жаровней.
В глазах молодого повара загорелся было веселый огонек и тут же
сменился выражением досады.
— Touche! [ваша взяла! (франц.)] Правильно: я видел жир не такой, а
когда разогрели — не понюхал.
— Неправда, — возразил Питер. — Вы же сами сказали мне: вы
почувствовали, что жир негоден, но, несмотря на ваше распоряжение, его не
заменили.
— Мне надо было узнать, почему жир испортиться. Все иметь причина. И
если ее скоро не обнаружить, может случиться большая беда.
— Какая, например?
— Слава богу, сегодня мы мало готовить на испорченный жир. А завтра,
мсье, надо зажарить шестьсот порций на ленч для участники конгресса.
Питер лишь тихонько присвистнул.
— Только и всего!
Они вышли из стеклянной клетушки и подошли к жаровне, с которой в это
время как раз счищали последние остатки злополучного жира.
— Завтра жир, конечно, будет свежий. А когда его меняли в последний
раз?
— Вчера.
— Вот как!
Андре Лемье кивнул.
— Мсье Эбран, он не шутить, когда жалуется на большой затрат. Но
почему жир портится — тайна.
— Я сейчас пытаюсь вспомнить, что я знал из пищевой химии, — медленно
проговорил Питер. — Свежий, доброкачественный жир начинает чадить при
температуре…
— Четыреста двадцать пять градусов. Больше нагревать нельзя, иначе он
гореть.
— А если жир подпорчен, то он начинает чадить при более низкой тем
пературе.
— Да, и чем больше портится, тем ниже температура, когда он чадить.
— Вы здесь жарите…
— При температуре триста и шестьдесят градусов — наилучшая
температура для ресторанный кухня и для домашний.
— Словом, если жир не горит при температуре около трехсот шестидесяти
градусов, все в порядке. Если же чад появляется при более низкой
температуре, значит, жир испорчен.
— Совершенно верно, мсье. И тогда еда иметь плохой запах, прогорклый
вкус, как сегодня.
В мозгу Питера зашевелились некогда заученные, но стершиеся за долгие
годы сведения. Для будущих управляющих отелями в Корнеллском университете
читали курс по пищевой химии. Питеру смутно вспомнилась лекция в
Статлер-Холле… За подернутыми морозным узором окнами сгущались сумерки.
Он вошел тогда с улицы, с морозного, обжигающего воздуха. Внутри было
тепло и успокаивающе-монотонно звучал голос лектора… жиры и
катализаторы…
— Есть такие субстанции, — напрягая память, сказал Питер, — которые
при соприкосновении с жиром играют роль катализаторов и довольно быстро
вызывают распад.
— Верно, мсье. — Андре Лемье принялся перечислять по пальцам: — Это
влага, соль, медь или латунь на стенках жаровни: когда температура очень
высокая и когда оливковое масло.
И вдруг Питера осенило. Память заработала под впечатлением
увиденного, когда минуту назад жаровню очищали от жира.
— Из чего сделаны решетки для жарки?
— Из хромированного металла, — несколько озадаченно ответил Лемье.
Хром, как им обоим было известно, не мог испортить жир.
— А интересно, — сказал Питер, — хорошо ли они хромированы? И если
слои хрома где-то стерся, то какой металл находится под ним и не покрылся
ли он кое-где окисью?
Лемье обдумал слова Питера, и глаза его вдруг расширились. Он молча
вынул одну из решеток и тщательно протер ее тряпкой. Поднеся решетку к
свету, они внимательно осмотрели ее со всех сторон.
От непрерывного и долгого пользования хромированная поверхность была
вся покрыта царапинами. Кое-где хром сошел совсем. В поцарапанных и
протертых местах виднелся металл желтоватого цвета.
— Это же латунь! — Молодой француз хлопнул себя ладонью по лбу. — Жир
испортиться из-за нее! Какой же я дурак — сразу не догадаться!
— Не понимаю, при чем тут вы, — прервал его Питер. — Задолго до
вашего появления кто-то у нас, видно, сэкономил и купил дешевые решетки. К
несчастью, в конечном счете это обошлось нам куда дороже.
— Но я должен был обнаружить это раньше — вы же сделать это сейчас,
мсье. — Андре Лемье чуть не плакал. — Мсье приходить на кухня из вашей
paperasse [бумагомаралки (франц.)] и показать мне, где непорядок. Да меня
же засмеют теперь!
— Если такое случится, — сказал Питер, — то винить вам придется
только себя. От меня никто ничего не услышит.
— Люди — они говорили мне, вы хороший человек, умный. Теперь я сам
видеть: это правда, — медленно проговорил Андре Лемье.»


Много ли нынешних управляющих отелями разбираются в пищевой химии? Что-то сомневаюсь.
Здесь бы подошёл пример, в котором повар ресторана готовит из полуфабрикатов, оправдываясь «мне некогда вникать в рецептуру и компоненты блюда, мне нужно делать блюдо, много блюд, мне платят за количество блюд, а пользователи хотят быстро и много блюд». Да, ему не обязательно знать как выращивают свиней, чтобы сделать вкусные котлеты, но и замороженные котлеты непонятного состава, напичканные глутаматом, не есть хорошо ни для него (опыт, мастерство), ни для пользователей (фальшивый вкус продукта, фикция)
Вы только что описали классический фастфуд :)
UFO just landed and posted this here
Хейли весьма непрост, для того, чтобы написать тот же «Отель», он прочел пятьдесят семь книг по гостиничному бизнесу. С другими книгами — аналогично.
Так что уж его-то как раз приводить можно :)
UFO just landed and posted this here
Да, я понял, что вы хотите сказать. Безусловно, человек вымышлен, но я склонен думать, что приближено к оригиналу, ибо в противном случае Артура высмеяли бы читатели, которые в курсе, как обстоит дело. «Не царское это дело, в химии разбираться!» Я не в курсе (как и интернет, к сожалению) был ли у Питера Макдермотта реальный прототип, но вполне возможно (опять-таки если вспомнить хейлиевский подход к написанию книг) что был, либо это некая «сборная солянка» из нескольких людей.
Впрочем, это лишь мое мнение.
UFO just landed and posted this here
К слову, у того же Хейли есть прекрасная книга «Колеса», где очень подробна рассмотрена как раз работа автомобильных дизайнеров, в том числе объяснено, для чего дизайнеру нужно знать химию, и не только химию.

А есть еще прекрасный пример действительно уникальной разработки современного автомобиля, где, как говорят, глубокие познания автора машины (не уверен, как его лучше назвать) во всех областях автомобилестроения позволили найти очень неординарные технические решения — Pagani Huayra
К слову, у того же Хейли есть прекрасная книга «Колеса»,


Я читал всего Хейли :) и да, у него абсолютно все книги отличные. Быть может чуть-чуть отстает «На высотах твоих», но вот «Вечерние новости», «Отель», «Перегрузка» (с чертовски пронзительной концовкой) — это да.
Ну и «Колеса», конечно. Чего стоит эпизод с продажей машины в автосалоне.
Тут все очень от конкретного случая зависит — пример тому Джуджаро, создавший дизайны

DeLorean DMC-12 и Ланос-а
UFO just landed and posted this here
UFO just landed and posted this here
Навряд ли хоть одному человеку из ныне живущих никогда не потребуется «пошариться на низком уровне» в процессах, происходящих в его организме. Естественно, что делать он это будет не сам, а обратится к специалисту.

Точно так же — вряд ли хоть одному программисту никогда не потребуется пошариться на низком уровне в своих программах. И точно так же, ему не обязательно это делать самому, когда можно обратиться к специалисту.
Проблема в том, что нора уже давно слишком глубокая, и понимать все целиком уже просто невозможно — в мозг не влезет, изучение деталей одних вещей вымоет из памяти детали других, а потом в очередном обновлении микроархитектуры все переделают. Почти все, что вы перечислили, работает на современных процессорах совсем не так, как это описано в литературе времен 8086: регистры давно уже абстракция над регистровым файлом (т.е. процессор имеет значительно больше регистров, чем показывает, и грамотно переименовывает их так, чтобы лишний раз данные не перемещать); кэшей с тех пор стало 3-4 уровня, плюс кэш микроопераций, плюс кэш декодера, таблица со статистикой предсказанных успешно переходов, прямой доступ в кэш в обход CPU и т.д.; прерываний теперь штук пять разных видов и они используют ту же подсистему MSI-X, что и PCIe-устройства; виртуальную память расширили на MMIO (IOMMU), а из Knights Landing уже выкинули in и out; аппаратный стек получил защиту от техник вроде ROP; список можно продолжать очень долго.

Основная трагедия архитектуры x86 в том, что с развитие процессора шло не вместе с развитием ПО, а так, чтобы ПО можно было вообще не трогать десятилетиями, а оно при этом исполнялось на 5% быстрее с каждым поколением. Процессор при этом с каждым разом усложнялся кратно, и теперь нынешний — скорее всего самая сложная вещь, сделанная человечеством вообще. Софт при этом так никто и не переписал, и он по прежнему думает, что вокруг CP/M на PDP11. При этом Интел также отлично понимает, что еще одну попытку сделать нормальную массивно-параллельную (которой была IA-64, оставившая нам в наследство UEFI) с оптимизациями на уровне компилятора, а не самого процессора, они могут не пережить, поэтому улыбаются и продолжают латать текущие из всех общих ресурсов данные затычками в виде новых инструкций (которые надо расставлять в компиляторе) в каждом следующем обновлении микрокода.

Короче, неконтролируемый рост сложности закономерно довел архитектуру до цугундера, при котором любой произвольный набор из 3-8 букв английского алфавита скорее всего является валидной мнемоникой, для которой нужен мануал на 3.5к страниц, и процентов 40 которой практически не используется, но не может быть выброшена без вреда для обратной совместимости.
Нет, CP/M появилась позже и под влиянием предустановленной на семействе PDP-11 ОС, так что это такой художественный прием.

Я имел в виду то факт, что абстрактная модель памяти\регистров\стека\т.п. языка С, который до сих пор правит нижним уровнем, не отражает реальной архитектуры как раз со времен машин, для которых он писался, но мы продолжаем на нем писать, и ждем, что процессор самостоятельно сделает нам зашибись…
что-то сомневаюсь я во влиянии DOS-11 на Килдалла, ну да ладно. художественный так художественный.
а насчет «моделей» — так нижний уровень сменился, а язык — остался.
когда понимаешь, во что компилятор превратит сишный код — иногда писать легче. Хотя компиляторы с тех пор изрядно «поумнели»
для которой нужен мануал на 3.5к страниц
Вы так говорите, как будто 3.5K страниц — это что-то большое. На ARM посмотрите, там как раз вполне себе выкидывали разные вещи…
Наверное, тут можно вспомнить попытки убрать «уровень процессора» из архитектуры совсем и поставить на его место Алгол-68, Паскаль, Аду, Форт, Java или еще что-либо.
Мне кажется, что исчезновение в ранней архитектуре PC пультового отладчика, встроенного терминала, абсолютных бинарников и тому подобное — не менее важные этапы на пути увеличения слоев абстракции и отгораживания пользователей от железа. Естественно, под самыми благими и мудрыми предлогами. Параллельные процессы шли и с дисковыми устройствами, принтерами и разной прочей периферией — исчезли аппаратный низкоуровневый формат, доступ к принтеру напрямую сменяла система команд Epson, потом PCL, потом принтеры и модемы стали Windows-only и тому подобное. А вообще, конечно, даже система команд МК-51 уже не была полностью низкоуровневой, свои слои абстракции от железа были и там. Но интересно, к чему все придет в итоге.

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


Мы, люди, очень не любим изменения, но они неизбежны.


Я сам терпеть не могу лишние слои, нагромождения сотен библиотек (Javascript — это вообще какой-то ад, там наверное утром начинаешь работу, а к вечеру уже появляется 10 статей в блогах, что фреймворк, на котором начинал утром, уже устарел, а еще к вечеру будет выпущена обновленная его версия, со сломанной совместмостью).

Стоит заметить, что первые транзисторы (да даже диоды), действительно, выигрывали у ламп только размерами. Полезные параметры были скудные.
Как, например, видимо, и когда меняли электромеханические счетные аппараты на калькуляторы и ранние компьютеры (а среди электромеханических или аналоговых устройств были сильно специализированные, навороченные, на которых долго учились работать) и когда выбрасывали из школьной программы продвинутую арифметику с извлечением корней в уме, и когда знакомые много лет ЕС и СМ списывали с их фондом программ… Жизнь — боль, в общем.
хм. Некоторым не слабо рассказать, и как работали с восьмерично-десятеричными системой в М222 :-D
Зачем мне это помнить, пилот самолета должен досконально знать как работает двигатель например?
UFO just landed and posted this here
Именно поэтому у пилотов есть чек-листы, в том числе и на такое явление как пожар в двигателе. В сериале Авиакатастрофы они полчаса читали и исполняли его. А не так «Ща, не ссы, я тут вооот так сделаю и все норм будет. Ой епт, че это оно?»
Дебаг этих чек-листов — отдельная интересная история. Иногда посмертная
На уровне инженера-ремонтника не должен. Но «не досконально», а знать принципы работы, особенности работы в разных режимах, характеристики, его вспомогательные системы и как ими управлять — всё это он знать обязан.
поэтому пилот самолета — профессионал, и обучается гораздо дольше, чем стреднестатистическая «мартышка» «учится на права».
Начинал свою практику в 91 году, почти с этой платформа. Первый мой ПК был МК-88, на советском аналоге KPI810BM88 (8088) в цельных 4.77Mhz. Затем поднялся до ЕС1849 на 12Mhz-овой ДВОЙКЕ. Был и 386 DX серии с внешним кэшом в DIP исполнении (жутко дорогая штука на 1993 год), 120$ за 4Mb ОЗУ (4х1mb SIM 30pin), где то 70-80$ за 16bit SoundBlaster (технологии P&P еще не было) по этому IRQ и DMA выставляли по мануалу перетычками :) 80486 — эпоха спаленных процессоров и маман т.к. вольтаж процессора был от 3 до 5 вольт, а отсутствие описания на МП — БЕДА! (Да и загуглить не как, Гугил бул еще не рождён). Человек обладающий библиотекой мануалов для MB, был весьма уважаем! :)
Первый пень продолжил эпоху горелых процов (питание от 3 до 1.8 вольта так-же тыкалось джамперами) Первые AMD K6 с технологией 3D now в совокупности с одним из первых графических PCI ускорителей NEC Power VR — Круть крутая!
Cлотовый ПЕНЬ-2 + первый вуду + AWE64Gold + USR 33600 = Предел мечтаний любого!
… эту тему можно смаковать до бесконечности!
ВиВат всем IT-шникам! ВиВАТ!!!
давным давно пришлось (или посчастливилось?) работать на уровне машинных команд и ассемблера процессоров 580 и 1801(6). и надо сказать что pdp11 (СМ4, Электроника100, ДВК) :) был намного быстрее и круче… но к сожалению не стал популярным настолько.
Вот именно! В статье немало восхвалений 8086-му, но почти ни слова о его недостатках. Компромиссы, на которые пришлось идти его авторам и применителям, имели ведь не только плюсы. Я тоже не раз сетовал на то, что IBM выбрала запутанный 8088, а не простой и чёткий PDP11-подобный.
но вроде как как раз микропрограммная сложность PDP и была причиной создания «простого процессора»?
а вообще, PDPшный асм — сказка.
и надо сказать что pdp11 (СМ4, Электроника100, ДВК) :) был намного быстрее и круче

Смотря в каких задачах. У PDP11 было своё тяжелое наследие, она создавалась как уменьшенная копия больших ЭВМ. Соответственно, представляла собой набор относительно независимых блоков, которые общались между собой по шине со сложным протоколом. Дисплей, например, там архитектурно представлял отдельный терминал.
это было возможно в первых вариантах. я работал на аналоге pdp11, кажется даже уже советском. который вполне был как PC. Мне удалось сравнить это в живую — реальная рс и реальная pdp11 (будем называть этот экземпляр так). Единственно чего не хватало — это хорошего цветного монитора, но они уже были — рядом стояла двк с цветным монитором. И всё это было отечественного производства… На шине двк/pdp11 уже было море периферии, всё работало качественно и стабильно. И какой-то идиот это всё зарезал…
Не очень то и сложным был протокол, я без проблем смог разработать и спять на 1806 «одноплатный контроллер» с потреблением процессорной части микроамперы, проблема была в пзу, и отсутствии энергонезависимой памяти… Нужно было просто не больших затрат на продвижение, на доступность и всё было бы по-другому. На той же двк сделали систему для регулирования потока напыления металла на подложку в вакууме, контролировали на просвет испаряемый поток металла измеряя это вольтметром, управляли нагревом испарителя используя ПИД закон регулирования. Это было сделано буквально на коленках. Никакой сложности с протоколом…
на аналоге pdp11, кажется даже уже советском. который вполне был как PC.
а название можно?
судя по вашему посту — это явно не ДВК. УКНЦ (МС0511)? ее «МПИ» был практически QBus, но вот как-то аналогом PDP я б ее не назвал… Электроника-60?
названия я не помню, уж очень давно это было. да это было не двк, но система команд pdp11, там, если не ошибаюсь, была «ОС» РАФОС, поэтому я так написал (будем называть этот экземпляр так). В лаборатории работала Электроника 125 в 3 шкафах. Вот пришла эта штучка, дисководы «хорошей емкости», память «приличного размера», в общем — мало чем уступала новенькой писишке. И система команд была уже расширенная… Вполне возможно что называлась как-то так УКНЦ (МС0511).
Электроника 60 это ВЕЩЬ!.. особенно в ней были шикарные блоки питания. (они перешли и в двк). Открытая корзина — мы соединяли друг с другом до 3 корзин, для соединения сделали «скрутчик», и набивали их памятью, периферией, в том числе и самодельной. ПО загружалось с ленточки, (разрабатывалось на СМ4).Из СМ4 был сделан сервер терминалов ( если по нынешнему). 3-4 чела работали без проблем. Писишки ещё только начали появляться…
ну, через мультиплексор в RSX-11 на СМ4 работало до 15 (или все-таки 16? почему-то укоренилось число 15) терминалов. плюс 1 или 2 консольных, но в них тоже можно было работать. мы даже Корветы цепляли как терминалы.
да, какой-то «мультиплексор» самодельный был сделан :) и произведена замена ферритовой памяти на полупроводниковую… в подцепленных корзинах от электроники 60 :)
а вот ферритовую память на pdp-совместимых я уже не застал — только на минск-32
Электроника 125

Электроника 100/25, если точнее.
Извините, что вмешался, просто это первый компьютер, с которым я работал.
Пока Intel возился с 8088 и 8086, Motorola выпустила 68000. 32 бита в 1979 году, а ассемблер такой, что никакого С не надо.
Линия 80x86 — это еще одно доказательство того, что успешным становится далеко не самое лучшее. Для этого достаточно взглянуть на характеристики других конкурирующих с 8086 процессоров — Motorola 68000 и Zilog 8000. Например, адресуемая память — 8086 — 1 мб, 68000 — 16 мб, 8000 — 8 мб. Защита памяти 8086 — нет, 68000 — есть, 8000 — есть. Режим супервизора — 8086 — нет, 68000 — есть, 8000 — есть. Работа с памятью 8086 — через жопу сегментные регистры, 68000 и 8000 через нормальные индексные регистры. А главное — 8086 — архаичная система команд со всякими аккумуляторами и специальными регистрами типа sx, dx, 68000 и 8000 — ортогональная к регистрам, очень логичная система команд.

В свое время, когда я посидел за Amiga, превосходящей на голову все x86, что я видел до того момента, этот вопрос тоже не давал мне покоя. Но видимо "лучше" значит разные вещи для разных вещей. Для рынка в целом корявый x86 с корявыми DOS и первыми Windows почему-то оказались "лучше". Может быть, Amiga слишком дорого стоила, или еще что-то. Есть еще соображения привычек пользователей и совместимости с существующим софтом и железом. Инерции мышления, наконец.

Amiga появилась только через несколько лет после PC.
А ещё и делать PC научились не только в IBM.
Во-первых — на 68000 сразу положили глаз вояки.
Во-вторых — IBM-PC мгновенно спиратила фирма Compaq, по причине простоты.
В-третьих — у Commodore была откровенно дегенеративная политика лицензирования. Для того, чтобы стать разработчиком необходимо было заплатить деньги и получить за это .h файлы для Кикстарта. С компиляторами эти файлы не поставлялись. Там, правда, был ещё и Микрософт Бейсик, но…
А главное — 8086 — архаичная система команд со всякими аккумуляторами и специальными регистрами

Но это действительно было главное, потому что позволяло переносить старые программы для 8080 простыми макроподстановками, без переписывания кода заново.
Причём достаточно быстро (уже в 80386) всё это достаточно «малой кровью» выпрямили.
. Работа с памятью 8086 — через жопу сегментные регистры,

Только на самом деле это была не жопа, а один из секретов его успеха. Именно то, что позволило сразу же портировать на 8086 кучу приложений, написанных под 8080, простым кросс-ассемблером.
Второй секрет успеха — 8088. 8-битная шина, возможность построения простого и дешёвого 16-битного компьютера. Мотор 68000, например, и близко не мог подобраться к массовому сегменту по цене.
Только на самом деле это была не жопа, а один из секретов его успеха. Именно то, что позволило сразу же портировать на 8086 кучу приложений, написанных под 8080, простым кросс-ассемблером.

Это не успех, а извращение со всякими "моделями памяти", типа tiny, small, large, huge. Кто программировал в начале девяностых, тот знает, что это за извращение.

по сравнению с зоопарком фреймворков — модели памяти вызывают самые теплые «ламповые» воспоминания…
> по сравнению с зоопарком фреймворков — модели памяти вызывают самые теплые «ламповые» воспоминания…
Это я еще не упомянул ужасный ужас, связанный с разными расширителями памяти, из-за того, что 8086 не умел адресовать больше одного мегабайта. А вот 68000 имел линейную адресацию до 16 мегабайт.
да тоже ничего особо ужасного не помню. мы даже на Корветах подобный расширитель писали (правда, не помню, дописали или забросили)
Ну я программировал в начале 90-х. Ничего страшного. Не слишком архитектурно красиво, но в целом разобраться можно было легко. А те, кто не писал на ассемблере, вообще могли с этим не заморачиваться, просто желательно было знать разницу между дальним и ближним вызовом. И речь-то не столько об архитектурной красоте, сколько о практичности. Согласитесь, взять код, например, CP/M с 8080, прогнать его через простейший кроссассемблер, и получить работающий код СР/М под 8086 — это стоит того?
> Согласитесь, взять код CP/M с 8080, прогнать его через простейший кроссассемблер, и получить работающий код СР/М под 8086 — это стоит того?

Тактически да, стратегически нет. В современных процессорах Интел вынужден тянуть всю эту кривизну, оставшуюся от 8080.
Я, когда программировал на 8086, тоже думал, что этот процессор высшее достижение микропроцессоростроения. Пока не познакомился с альтернативными вариантами.
Можно ли считать стратегически неудачным решение, которое вывело продукт в лидеры рынка, а компанию-производитель превратило в многомиллиардную корпорацию? Тем более что уже не одно десятилетие архитектурные особенности процессоров касаются только узкого круга разработчиков ОС и компиляторов, а все остальные миллионы программистов от них изолированы.
стратегически интел выйграл тем, что он чуть не монопольно занял рынок PC (все-таки AMD и прочие Cyrix'ы пытались отгрызть долю у интела)
Кроме того, не надо забывать, во что кривая архитектура 8086 вылилась в будущем. Например, 80386 имел три (!) режима работы — 32 разрядный режим, режим эмуляции 8086 и режим виртуальных 8086. Ничего похожего на эти извращения ни в 680x0, ни в 8000x не было.
одним «качеством» на рынке не победить…
Но вам же не нужно было использовать все три. Переключились в защищенный, и работаете. Одна модель flat, таблицы дескрипторов, в принципе, всё как у всех.
Это было причиной того, что созданный в середине восьмидесятых 80386 до середины девяностых использовался как быстрый 8086. Из-за невозможности плавного перехода к 32 разрядам (следствие кривой архитектуры), все сидели в досе и ранних версиях винды. В 68000, например, такой проблемы вообще не было.
Я вам возражу, что это наоборот, как раз иллюстрация того, насколько совместимость софта важнее архитектуры процессора. ОС, которые работают в защищенном режиме, появились в той же середине 1980-х. Но пользователи продолжали активно использовать примитивный DOS аж до середины 1990-х, просто потому что там было большое количество популярных приложений.
Да нет же. Нормальная архитектура позволяет безболезненно использовать старый софт на новых процессорах. Пример — линейка 680x0. Там на более новых моделях работает софт, разработанный для старых, и никаких проблем для пользователя запускать любимые программки. Для 80386 в силу кривой архитектуры, это невозможно, поэтому все в досе и сидели.
Так и на 386-м старый софт нормально работал, речь-то о том, что в нём ввели новый режим, в котором исправили косяки старого, и при этом сохранили совместимость. Вы сейчас можете взять этот самый Core i7 8086, и на нём запустится софт от 8086, который был портирован с 8080. Это ведь круто. Сравните с 680x0, который не имел нормальной совместимости ни с предшественником, ни с последующими семействами 88000 и PowerPC.
И клоны 8086/88, понимавшие и систему команд 8080 напрямую, тоже были. Правда, Интел до такого не додумался, а NEC (V20) смог.
Ну то уже было заметно позже, да и надо учитывать, что NEC V20 не был клоном, это проц нового поколения и с другой внутренней архитектурой, транзисторов в нем было, если не ошибаюсь, 65 тысяч против 28 тысяч в 8086. Плюс КМОП-процесс, частота до 16МГц и ещё масса плюшек.
Интел может быть и додумался, но в 1978-м году реализация такого функционала стоила бы просто космических денег.
Если совсем точно, то V20 — аналог 8088, а V30 — замена 8086. Я не знаю, догонял ли V20 с 8-битной шиной на реальном железе за счет новой архитектуры полноценный 8086 c 16-битной шиной, с учетом редкости клонов PC на полном 8086. Кто-нибудь тестировал, интересно?
Я сам не тестировал, но говорят, неплохо перегонял. Да и если верить Википедии, то в дристонах он вообще был на порядок быстрее. Этому, впрочем, есть логичное объяснение. АЛУ у 8088/8086 микропрограммное, а у V20/V30 реализовано аппаратно.
Я еще сейчас вспомнил, что в 8086 был теоретически и многопроцессорный(!!) режим, но на практике ничего о таких компьютерах не знаю.
Там не современный SMP имелся в виду, его в те годы ещё не знали. Имелось в виду, что у 8086 были средства для захвата и освобождения шины, и подключался шинный арбитр (8288, кажется), который мог разруливать шину между разными девайсами. Например, с процессором ввода-вывода 8089.
Или 8087. Был популярен вариант, когда один процессор ставился на служебные операции (ввод-вывод), второй освобождался для вычислений. При этом основной процессор мог теоретически быть более мощным 286,386,486 на специальной плате расширения или непосредственно над сокетом впаянного CPU, подключаясь к нему через один из пинов. Интересная тема.
Как апофигей этой идеи — теоретически второй процессор может сидеть на плате расширения и получать с шины только питание, полностью или почти полностью заменяя вообще все железо на обычной материнской плате. Не знаю точно о временах 8086, но вроде бы было такое изделие на базе Celeron 433 и шиной могла быть даже ISA, хоть 8-битная. Там на плате было интегрировано все свое, включая все контроллеры и видеоадаптер, в результате стоимость, как у нового компьютера, но зато универсальность — ставь ее хоть в XT :)
Это не Сановское творчество для добавления х86-совместимости в Спарки?
PC-шная вроде бы штука была, хотя сама идея конечно древнее — сам Microsoft когда-то делал процессорные платы на Z80, и для Амиг, Макинтошей и т.д тоже были процессорные платы для эмуляции PC в железе.
не «многопроцессорный режим», а «максимальный режим» — в нем управление системной шиной осуществлялось отдельным корпусом — контроллером системной шины 8288.
кстати, был такой наш отечественный компутер Истра-4816. так вот, он был трехпроцессорным…
Максимальный режим это вроде бы обычный режим в PC с ISA шиной, для мультипроцессорного требуется шина Multibus (или S-100?), которой в обычных PC не было, но в промышленных компьютерах, видимо, было возможно — сам Intel делал одноплатные системы на 8086. Если я правильно все это понимаю?
Пример — линейка 680x0. Там на более новых моделях работает софт, разработанный для старых, и никаких проблем для пользователя запускать любимые программки.
Неравда ваша, тётенька. Начало 80х — это Apple ][, Atari 400/800 и Comodore 64. И совсем чуть-чуть PC.

А вот появление вашего чудесного 680x0 привело к тому, что новых Mac'ах, Amiga'ах и Atari ST старый софт запускать нельзя. «Запускать любимые программки» не получалось, увы.

Для 80386 в силу кривой архитектуры, это невозможно, поэтому все в досе и сидели.
У 80386 (в полноценном, защищённом, режиме) достаточно прямая архитектура — однако, в отличие от 680x0, старый софт тоже можно было использовать.

Потому PC — выжил, а Atari и Commodore — нет. Apple чудом удалось спастись — и то пришлось на платформу PC перейти в конце концов.
А причем здесь commodore 64 и другие? В commodore вообще процессор от MOS Technology стоял. Этот софт ни на 8086 ни на других процессорах запустить не удастся. Я сравниваю три процессора из одного класса 8086, 68000 и 8000. И, можно убедиться, что практически по всем параметрам 8086 им проигрывает. А IBM PC выжил совсем по другим причинам.

А старого доброго дигера я не могу сейчас в винде запустить. Так что, про совместимость со старым софтом не надо.
А причем здесь commodore 64 и другие?
Потому что до середины 80х — именно они составляли подавляющее большинство персональных компьютеров. И платой за переход на 68000 — явилась необходимость полного отказа от имевшегося ПО.

А старого доброго дигера я не могу сейчас в винде запустить.
В винде — нет. Но переключитесь на FreeDOS — и он отлично запустится.

А IBM PC выжил совсем по другим причинам.
IBM PC, кстати, не выжил. А вот его потомки — да, выжили. Потому что Deskpro 386 мог запускать не только «классный» Xenix/386, но и банальный MS/DOS. А MS/DOS мог запускать перекомпилированные программы для CP/M.

Я сравниваю три процессора из одного класса 8086, 68000 и 8000.
Это процессоры разных классов. Да, формально 68000 появился одновременно с 8086, но реально компьютеры на основе 68000 — это вторая половина 80х — то есть тогда же, когда и 80386.

Да, формально Macintosh 128K появился в 1984м, однако в первые годы продавался он из рук вон плохо — именно потому что софта не было! И именно поэтому Apple IIGS выпускался до начала 90х.
Я подозреваю, что сделать в железе так, чтобы на линейке Atari ST 68k запускались те самые 8-битные игрушки с Атари 800, было бы сложно даже при сохранении архитектуры процессоров снизу вверх… Во-первых, игрушки были жестоко заточены аппаратно не только под процессор 6502, но и под очень специфичную спрайтовую архитектуру с графическим чипсетом TIA и жестко привязаны к тактовой частоте, низкому разрешению экрана и много чему еще. Плюс этих 8-биток было уже три поколения (800/1200/800XL) и они были не вполне программно и аппаратно совместимы даже друг с другом, особенно в версии 1200. Плюс у Атари имелись еще и линейки консолей, как совместимых с 800 (XLGS), так и созданные по ее мотивам и на таком же железе (5200), но несовместимые программно, плюс консоли 2600. ST, созданный Трэмелов из подручных компонентов — вообще другой мир и железо там другое, и ОС совсем другая. Переход был вполне аналогичен шагу с DOS CGA на Windows 95 SVGA. Точно такой же был и переход с C64 на Амигу — разные миры и C64 еще и тянул аппаратную совместимость с более старыми моделями Коммодора. И стоил очень недорого. Для особых фанатов была модель C128 с тремя процессорами. Но да, архитектурных наследников 8-биток не было, в частности еще потому, что они быстро уперлись в лимит 8-битного процессора 6502 — максимум 64 килобайта памяти и все дела. И это даже не 640 килобайт, которых хватило бы всем. Попытки расширения на этой архитектуре — извращения со страничной памятью в духе LIM EMS (Атари 130), но только много, много слабее для среднего юзера, чем самый слабый 8088 с мегабайтом памяти.
Я подозреваю, что сделать в железе так, чтобы на линейке Atari ST 68k запускались те самые 8-битные игрушки с Атари 800, было бы сложно даже при сохранении архитектуры процессоров снизу вверх…
Практически невозможно. Но можно было сделать не W65C816S, а, соответственно, 32-битный процессор. Но… не сложилось. Захотелось «большого и светлого». Ну и получили… то, что получили…

Во-первых, игрушки были жестоко заточены аппаратно не только под процессор 6502, но и под очень специфичную спрайтовую архитектуру с графическим чипсетом TIA и жестко привязаны к тактовой частоте, низкому разрешению экрана и много чему еще.
Вы не поверите — но ровно та же самая проблема была на платформе PC! И ровно поэтому послежние новейшие чипсеты от nVidia и ATI эмулируют старый древний CGA. Да. До сих пор. Правда пресловутая кнопка «Turbo» продержалась несколько меньше…

Плюс этих 8-биток было уже три поколения (800/1200/800XL) и они были не вполне программно и аппаратно совместимы даже друг с другом, особенно в версии 1200.
То же самое — было и у Commodore (Plus/4), и у Apple (с его чехардой: Apple III, Apple Lisa, потом Apple Mac… правда после этого Джобса прогнали и он вернулся из «ссылки» через несколько лет уже понимая насколько важна обратная совместимость).

Просто и тогда и сейчас и, похоже, всегда, программисты склонны недооценивать силу «обратной совместимости». Билл Гейтс не был самым сильным программистом, но он, похоже был одним из немногих программистов и/или руководителей, кто это понимал…

Переход был вполне аналогичен шагу с DOS CGA на Windows 95 SVGA.
В том-то и дело, что ни разу не аналогичен. Главным и основным преимуществом Windows 3.0 (и, далее, Windows 95) перед Windows 1.x/2.x и OS/2 1.x — была возможность запуска именно программ для MS-DOS! На имевшемся тогда железе!

Но да, архитектурных наследников 8-биток не было, в частности еще потому, что они быстро уперлись в лимит 8-битного процессора 6502 — максимум 64 килобайта памяти и все дела.
На самом деле были, конечно. Apple IIGS.

AppleWorks GS, вот это вот всё.

Оно было искусственным образом удавлено, чтобы дать дорого тому самому «правильному» Макинтошу с «правильным» 68000.

Попытки расширения на этой архитектуре — извращения со страничной памятью в духе LIM EMS (Атари 130), но только много, много слабее для среднего юзера, чем самый слабый 8088 с мегабайтом памяти.
Ну это понятно, что без замены процессора шансов не было. Но можно было сохранить совместимость — а можно было начать «с чистого листа». Тогда Microsoft выбрал вариант сохранения совместимости… а вот почему-то в XXI веке, с Windows Phone — уже нет.

Интересно, узнаем ли мы когда-либо «почему»… или этот оцевидный маразм так навсегда и окажется необъяснённым…
Компьютеры на 6502 в принципе эмулируются программно средним 486 (у меня был 386DX-33 и он тоже мог, но не с полной скоростью — процентов 60 и тем не менее Lode Runner c Apple II и Boulder Dash с C64 были играбельны на 386 под эмуляторами). Видимо, и 68040 мог. Продвинутый 486DX4 вытягивал уже и «Сегу» на 68000, а вот «Амигу» по скорости под эмулем догнал только Pentium 4, увы, что особенно забавно, учитывая разницу в тактовой частоте — 1700 против 8 на Амиге.

В современных видеочипах урезана вроде бы не базовая поддержка MDA/CGA, а продвинутых EGA/VGA режимов — где-то в сети есть таблица с данными для разных игр, которые в основном их использовали. Хороший тест — например, запуск Commander Keen в нативном режиме. У меня есть нетбук с Intel GMA3150, и он тянет древнейшие пасьянсы начала 80х под DOS, но запуск Keen на нем вызвал настоящую катастрофу — страниц 10 летающего цветного мусора, что в общем заставило предположить, что встроенное в процессор видеоядро там уже бесконечно далеко от времен ModeX 320 на 200. И конечно, для него нет никакого аналога Univbe, так что нативно, видимо, уже не поиграться.
Так у амиги аппаратные ускорители.
Кстати, у неё видеосистема умеет выводить графику с переменной плотностью пикселей. :) Представьте, что у вас на экране 640x480 есть область, где разрешение уровня 160x120. Вот это оно. :)
Ну да, хотя между Сегой, Амигой и Атари ST игровой софт портировали массово и без особой разницы в качестве, хотя Сега и ST слабее. Также как и близкие порты на SNES, хотя он еще слабее Сеги.
Уже графический чипсет Атари 2600 1977 года имхо бесконечно далек от концепций линейки CGA/EGA/VGA — узко заточенная спрайтовая архитектура и обязательное вылизывание каждого такта в машинном коде. Не удивительно, что для полной скорости эмуляции 2600 нужен был полноценный 486 с локальной шиной. Вообще, именно шина VL/BUS с PCI открыла Сезам эмуляции, как и мультимедиа/ графических оболочек — исходная архитектура AT с шиной ISA была в этом плане слаба, мягко говоря.
Вы не поверите — но ровно та же самая проблема была на платформе PC! И ровно поэтому послежние новейшие чипсеты от nVidia и ATI эмулируют старый древний CGA.

Более того, первые версии Windows позиционировались именно как «графический abstraction layer, позволяющий программам со сложным UI работать на всём зоопарке существовавших тогда ПК на x86», и в частности, были доступны в runtime-версии без оболочки — для интеграции в third-party софт.

Это потом уже до производителей ПК дошло, что обратная совместимость — это благо, и в новое железо стали добавлять поддержку легаси-видеорежимов. А до этого каждый следовал xkcd.com/927
X86-архитектур было много, в частности были варианты от DEC, Columbia, Texas Instruments, Tandy, ранние Hewlett Packard вплоть до первых моделей Vectra, которые внутри были вообще не PC и работали только с кастомными версиями DOS от производителей. Но как раз в середине 80х все это богатство начало быстро вымирать в частности после выхода Lotus 1-2-3, поскольку оказалось плохо совместимым даже с этой популярной программой.
Насчет защищенного режима — он появился только в 80386, а в 68000 был изначально, поэтому полноценную операционку на 8086 сделать было невозможно, а на 68000 и 8000 был портирован unix, да и операционка в Amige была на порядок лучше, чем MS DOS.
Защищенный режим появился в 80286, вместе с поддержкой 16 мб адресного пространства, на 2 года позже 68000.
При этом отсутствие защищенного режима отнюдь не мешало портировать на 8086 Unix-овые операционные системы тех лет :)
Ксеникс, родоначальник SCO Unix, работала на PC XT как миленькая.
Вот только не надо сказок, а? На 68000 для Unix'а нужна была хитрая конструкция с двумя процессорами и кучей дополнительного железа.

А первая версия, которая позволяла сделать «полноценную операционку» — это 68030, появившийся в 1987м, когда на 80386м уже персоналки начали появляться.

И сделать это было невозможно, так как компании, использовавшие 68000 и так уже в то время «на ладан дышали» из-за потери пользователей при переходе с платформ на 6502.

Ещё одного «большого скачка» с очередным переписыванием всех программ им бы никто не простил.

Ни одна «классическая» 68K операционка (MacOS, AmigaOS, и GEM) не смогла, в итоге, подняться выше Windows 3.x/Windows 95. Защиты программ друг от друга — в них никогда не было. Со всеми вытекающими.
MMU у Моторолы изначально был отдельным чипом, причем собственно 68000 имел баги с обработкой ошибок доступа к памяти и эта комбинация реально работала (медленно и проблемно) только начиная со следующего за ним процессора — 68010, поэтому некоторым производителям (Sun) пришлось заменять MMU от Моторолы (MC68451) на свой собственный.
Собственно, и 8086 вполне себе работал с внешним MMU, и с ним приобретал соответствующие возможности. Интел просто не стал заморачиваться с его разработкой. Но в СССР, например, такой чип сделали.
Я бы сказал, что тянула назад обратная совместимость с огромным парком офисных 286, которые активно продавались еще в 1992-1993 и во многих местах были единственными и самыми мощными компьютерами. Когда 286 внезапно стали списывать через несколько лет, дорога стала свободна.
Ну так то мы до сих пор имеем реальный, защищенный х86, виртуальный и защищенный х64. Причем, стартуем из реального до сих пор. Ну и мелочь: из х64 в виртуальный нельзя спуститься, как из х86 (потому ntvdm на х64 виндах и не работает).
Тактически да, стратегически нет. В современных процессорах Интел вынужден тянуть всю эту кривизну, оставшуюся от 8080.

Таки нет, в x64 убрали часть легаси-инструкций, ставших бесполезными. Не прошло и полувека :-)
Таки нет, в x64 убрали часть легаси-инструкций, ставших бесполезными.

Это в x64 режиме (Long mode)? В процессоре разве оно не осталось, т.к. Legacy mode никуда не делся?
Да что там режим х86… Реальный режим никуда не делся!
Поэтому, если вы не Google, пишите бизнес-логику на Java, .NET, Python или, прости господи, JavaScript и иже с ним, и вам будет не только все равно, запускать на x86, x64, IA-64, ARM 32, ARM 64 и что-там-еще-выдумают, но и под чем: Windows, *nix, macOS, iOS, Android, whatever или вообще где-нибудь в облаке не ведомо под чем и на чем. А лучше пишите все, что можно, и меньше слушайте считателей тактов и прочих археологов.
Помню этих сороконожек… :) Тот, самый простой и эффективный ассемблер въелся в мозг на всю жизнь… Исходный язык всех компьютеров, можно сказать…
Просто вы ассемблер Motorola 68000 не видели.
Оооо! Я видел многое, Intel, Zilog, Atari, Motorola, VAX, ОСВМ, TMS и множество разных других контроллеров… даже программируемые калькуляторы…
Но этот был первым, может быть не лучший, но самый любимый :)
Там достаточно сам 68000 посмотреть. :) Хороший такой кирпичик. :) Я когда амигу 500 открыл, его размеры меня несколько удивили. :)
Довольно посредственному процессору 8086/8088 просто несколько раз крупно повезло. Первый раз в том, что IBM выбрала его для своего PC. Маркетинговая мощь и репутация IBM позволила навязать потребителям архитектуру и конструктив PC в качестве стандарта. И если конструктив оказался вполне удачен (значительная часть его составляющих, не сильно эволюционируя, дожила до наших дней), то архитектура уже на старте была устаревшей; чего стоил только аппаратный барьер в 640К RAM, над преодолением которого бились потом долго и мучительно. Что, кстати, позволило MAC с Atari etc. со второй половины 80-х и до появления Win98 практически монополизировать рынок медиа-применений.
Второй раз ему повезло, когда выпуск ОС для IBM PC попал в руки Microsoft и Гейтса, который первым в отрасли догадался сконцентрироваться на софте, добившись, со временем, положения, когда разработчики железа были вынуждены обеспечивать его совместимость с софтом, а не наоборот.
В третий раз процессору x86 повезло, когда IBM решило сделать спецификации PC открытыми и началось массовое клонирование «писюков». Intel, в отношении своих процессоров, вплоть до Pentium придерживался той же политики, в результате чего их клоны также заполонили мир.
Собственно же архитектура 8086, после появления системы команд 386 и 32-битных ОС стала, фактически, рудиментом, который по традиции ещё поддерживается, хотя никакого смысла в этом нет. Цена, которую мы продолжаем платить за эту мало кому нужную преемственность — в частности, существенно более высокое энергопотребление процессоров Intel, по сравнению с теми же ARM.
то архитектура уже на старте была устаревшей; чего стоил только аппаратный барьер в 640К RAM

Ну расскажите, чего же стоил аппаратный барьер в 640К в те годы, когда массовые ПК были оснащены 16К и имели аппаратный барьер 64К? :)
Конструкторы IBM РС — люди опытные и адекватные, и процессор выбирали не в лотерею, а как раз осознанно, с учетом сложности и стоимости создания системы на его базе.
Цена, которую мы продолжаем платить за эту мало кому нужную преемственность

То, что все платформы без преемственности прекратили своё существование, а платформы, сохранившие её (х86, ARM) живут и здравствуют, вас должно было бы натолкнуть на мысль, что это высказывание, мягко говоря, нелепое.
1. Стоил почти 10-летней задержки c полноценной поддержкой мультимедиа.
2. Уже почти 20 лет (с момента ухода со сцены Win98) система команд 8086 в PC не нужна от слова совсем.
2.: Только вот мы из реального режима до сих пор стартуем, да и загрузочные сектора (при использовании mbr как минимум) — тоже под реальный режим писаны. Но, соглашусь, это атавизм.
Почему 10 лет? Мультимедийная Амига 1000 вышла в 1985-м году. Всего через два года РС заиграл музыку (Adlib) и научился отображать 256 цветов (VGA). Ещё через два — заговорил (Sound Blaster). Мультимедийные возможности ведь определяются не столько процессором, сколько периферией.
система команд 8086 в PC не нужна от слова совсем.

Во-первых, она никому не вредит (и я не ошибусь, если скажу, что затраты на её поддержку в процессорах ничтожны по сравнению с остальным функционалом), во-вторых, мир не ограничивается веб-сайтами и домашними компьютерами. В корпоративе вертится огромное количество легаси-софта, которому всё это ещё бывает нужным.
Sign up to leave a comment.

Articles