Все сильнее ускорявшиеся процессоры привели к появлению раздутого софта, но физические ограничения могут заставить нас вернуться к более скромному варианту кода, которым мы пользовались в прошлом
Давно, ещё в 1960-х, Гордон Мур, один из основателей компании Intel, заметил, что количество транзисторов, которые можно уместить на кремниевом чипе, удваивается примерно каждые два года. Поскольку количество транзисторов связано с вычислительной мощностью, это означало, что, по сути, вычислительная мощность удваивается каждые два года. Так родился закон Мура, обеспечивший для работающих в компьютерной индустрии людей – по крайней мере, для тех, кому ещё нет сорока – такую же надёжную основу, какую ньютоновские законы движения обеспечили для инженеров-механиков.
Но у него, однако, есть одно отличие. Закон Мура – это всё же просто эмпирическая корреляция, за которой наблюдали в определённый период времени, и мы, наконец, подходим к пределу её применимости. В 2010 году сам же Мур предсказал, что законы физики остановят это экспоненциальное увеличение. «Что касается размеров транзисторов, — сказал он, — видно, что мы приближаемся уже к размеру атомов, представляющих собой фундаментальный барьер, однако до этого момента ещё сменится два-три поколения – однако дальше предсказывать развитие событий мы не в состоянии. У нас есть ещё 10-20 лет до того, как мы дойдём до фундаментального предела».
И вот мы дошли до 2020 года, и идея о том, что у нас всегда будет достаточно мощное вычислительное оборудование, подходящее для всё расширяющихся потребностей, начинает казаться слишком самоуверенной. И поскольку для тех, кто занимается этим бизнесом, это было очевидно уже несколько десятилетий, было проведено множество исследований, касающихся хитроумных способов запихивания в машины всё больших вычислительных мощностей, к примеру, многоядерные архитектуры, в которых у CPU есть два или более отдельных вычислительных модулей, или «ядер». Всё это делалось в надежде отложить тот ужасный день, когда у кремниевых чипов закончится место для манёвра (к примеру, новый Apple Mac Pro работает на 28-ядерном процессоре Intel Xeon). И, естественно, бешеными темпами развиваются исследования квантовых компьютеров, что, в принципе, может стать эпохальным прорывом.
Но для вычисления требуется комбинация из железа и ПО, и одно из предсказуемых последствий закона Мура заключалось в том, что он сделал программистов ленивыми. Написание ПО – это сложное ремесло, и некоторым оно даётся лучше, чем другим. Они пишут более элегантный, и, что важнее, более проворный код, который и исполняется быстрее. В ранние дни, когда железо было относительно примитивным, мастерство программиста имело большое значение. К примеру, когда Билл Гейтс был ещё пацанёнком, он написал интерпретатор BASIC для одного из самых первых микрокомпьютеров TRS-80. Поскольку у машины была крохотная по размеру ROM, Гейтсу пришлось уложить всю программу в 16 Кб. Он писал её на ассемблере, чтобы увеличить эффективность и сэкономить место; есть даже легенда, что многие годы спустя он мог процитировать всю программу по памяти.
И в ранних годах вычислительных систем можно найти тысячи подобных историй. Но с воцарением закона Мура необходимость в экономном, бережливом коде постепенно исчезала, и мотивация изменялась. Программирование превратилось в промышленную дисциплину для «инженеров ПО». Создание таких популярных программных экосистем, как операционные системы и коммерческие программы, требовало участия больших команд разработчиков; на этом основании выросла бюрократия из менеджеров проектов и исполнительных директоров. Крупные программные проекты превратились в марши смерти, которые ярче всего описал Фред Брукс в своей знаменитой книге "Мифический человеко-месяц", опубликованной в 1975 году, и с тех пор всё время переиздающейся по весьма уважительной причине – она до сих пор актуальна. А в процессе всего этого ПО раздувалось и становилось неэффективным.
Но это не имело значения, ведь железо всегда выдавало новые вычислительные мощности, скрывавшие проблему раздутого программного обеспечения, или bloatware. Добросовестных программистов это часто бесило. «Единственным следствием появления мощного железа, которое я наблюдаю, — писал один из них, — является то, что программисты пишут на нём всё больше и больше раздувающиеся программы. Они становятся ленивее, и поскольку железо достаточно быстрое, они не пытаются изучать алгоритмы или оптимизировать код. Это безумие!»
Так и есть. В лекции 1997 года Натан Мирволд, бывший однажды главным инженером у Билла Гейтса, вывел свои четыре закона программного обеспечения:
- ПО – как газ, оно расширяется, чтобы заполнить всю ёмкость.
- ПО растёт, пока не достигнет пределов, заданных законом Мура.
- Рост ПО делает возможным закон Мура – люди покупают новое железо, поскольку того требует ПО.
- ПО ограничено только человеческими амбициями и ожиданиями.
В то время, когда власть закона Мура подходит к концу, из законов Мирволда следует, что у нас есть только два варианта. Либо мы приструним свои амбиции, либо мы вернёмся к написанию более экономного и эффективного кода. Иначе говоря, назад в будущее.
n0isy
А не стратегия ли win-win между программистами и аппаратчиками, когда на всё более быстрое железо, выпускается всё более медленный софт (Word 2016 запускается столько же времени, сколько Word95 на компьютере в 500 раз слабее)?
P.S. Привет Electron в Skype…
402d
В далеком далеком прошлом ;) нажатие на кнопку формировало картинку на аппаратном уровне. не нашел схемы более низкого уровня ;(
А сейчас цепочка событий распухла до неприличия.
Клавиатуры (блютуз). Буквы в юникоде с модификаторами направления и прочим.
Отрисовка на виртуальном видеоадаптере виртуальной машины. Куча вычислительной
мощности уходит на виртуализацию и отвязку от аппаратного уровня.
Revertis
Да, производительность губится многими ненужными слоями абстракции. И многие разработчики не думают о том, нужен ли тут очередной слой, а пишут просто так, как принято.
KvanTTT
Ну уберут лишнии слои абстракции, оптимизируют код по максимум. Но как это поможет запустить ИИ для Go от DeepMind на мобилке или даже обычном компе (как простая модель ИИ)? Для этого нужна интеграция с другим вычислительным устройством.
Revertis
KvanTTT
Да, вот прям я не могу — мечтаю создать бота для другой подобной игры и чтобы его можно было обучать и запускать хотя бы на обычном компе, а не на специализированному оборудовании (TPU) в облаке.
Но речь не обо мне одном. Игру Go привел в качестве примера задачи, в которой существует огромное количество ветвлений и неопределенностей на каждом шагу и с которой современные методы на основе глубинного обучения от DeepMind справляются на отлично. Также можно привести в качестве примеров ботов к Starcraft 2, что даже более приближено к реальной жизни, но они пока не обходят уверенно человека.
На основе этого я предполагаю, что подобные методы могут использоваться уже для реальных задач, упомянутых в моем комменте ниже.
Revertis
tunelix
жизнь без страданий не жизнь
Kanut
Ну например играть то всё ещё можно против людей, а ботов использовать для тренировки. Ну и кроме того есть куча игр где можно группой людей играть против одного бота(или меньшей группы ботов) и тогда тоже интереснее если боты сильнее. Если совсем начать фантазировать, то на базе таких ботов можно сделать гораздо более интересных мобов/боссов для каких-нибудь ММО. И т.д. и т.п. :)
Invisibler
А если бот-босс будет читерить, его забанят админы? Или например будет на точке загрузки игроков ждать? Или сражаться только со слабыми персонажами, выбивать часть пати перед смертью итд.
Kanut
Если будет "читерить", то есть нарушать какие-то заранее определённые правила, то тогда его надо фиксить. Во всех остальных случаях лично я буду только рад.
SkyPhantasm
Бот «обучился» и начал «читерить». Вы предлагаете фиксы, а зачем тогда мы его вообще обучали? Уже Сейчас можно задать ботам такие паттерны поведения, что на форумах только и будут сообщения: «Когда его уже пофиксят?».
Kanut
У нас с вами по моему какое-то разное понимание того что значит "читерить".
Вот предствьте себе бота, который играет в шахматы. Если он придумал какой-то новый, до этого никому неизвестный, шахматный этюд и использовал его в игре, то это замечательно. Если он "научился" перемещать фигуры по доске в обход шахматных правил, то это "читерство" и это надо фиксить.
unclejocker
Ну вот помню, в WoW был босс (в виде группы ботов, вроде как PvP), который фокусил хилов в пати. Довольно интересный босс был, требовалось много контроля и координации группы.
Daann
в какой локации, не подскажете? м...wow. ностальгия… 3 раза из универа отчислялась, благодаря этой игрушке
unclejocker
Арена в нордсколе (рейд)
centurio_mark
Испытание крестоносца назывался инст, против чемпионов фракций
Invisibler
Да, но тот босс и рассчитан на такое поведение. Сомневаюсь, что его дпс сравним с дпсом боссов, рассчитанных на танков. Простейшие примеры — боссы, которые уязвимы после применения некоторых способностей (самый частый — враги с огромным оружием, или таранящие) просто перестают применять эти способности и становятся непобедимы. или наоборот, создают неотражаемые комбинации. Чтобы не допустить подобного, придётся опять возвращаться к достаточно жестко заданному поведению.
unclejocker
Вламывал нормально, я как раз хилом играл. Там как раз вся тактика строилась вокруг контроля и сэйвов, чтобы «враги» хилов не перещелкали.
vsergoog
То, что боты будут умнее, еще не значит, что играть с ними будет не интересно. Просто у разработчиков будет больше возможностей, боты смогут «поддаваться» так, что игрок не будет этого замечать.
DrunkBear
Надеюсь, появится ИИ с разным уровнем игры, а не один и тот же ИИ с пенальти / бонусами, в зависимости от уровня сложности.
KvanTTT
Почему вы думаете, что пенальти и разный уровень игры — это разные вещи?
XAHOK
Бонус +100% к добываемым ресурсам не изменяет логики самого бота. Если у него есть «баг» в логике, то этот баг там и останется. Как и пенальти на 25% получаемого урона не шибко усложнит игру, если у бота уровень интеллекта и маневренность черного тролля из второй готики.
FatumFL
+25% на получаемый урон от атаки черного тролля в Gothic 2 сделает из него одного из самых страшных врагов. В игре, в которой сложность определяется в том числе и неудобным управлением — это существенное пенальти. 25% даже из падальщика сделают ночной кошмар.
XAHOK
Хоть +1000%. Он является одинм из слабейших противников во второй готике, т.к. его легко забить на первом уровне с обычной палкой на 5 урона с классическим управлением: просто бегаешь вокруг и бьешь боковым ударом. Ударить в ответ он не может, т.к. он очень медленно поворачивается, что позволяет легко держаться за его спиной и успевать бить, так что не смотря на наносимую 1 урона, из-за низкого навыка, силы и урона оружия, умирает он довольно быстро, руки устать не успевают.
Падальщики легко забиваются двуручным оружием с… классическим управлением: просто стоишь на одном месте и машешь оружием вправо-влево. Проклинаемые многими полевые жуки убиваются полностью аналогично, только одноручным оружием. Любого одиночного бойца с двуручем легко убить с одноручником: блок-боковой удар, повторить до смерти оппонента. AI там на столько туп, что сколько не усиливай противников, их довольно легко убить простым набором движений с тем самым «неудобным» классическим управлением, просто анимация обычного удара зависит от навыка и имеет большую паузу в завершении движения связки, а анимация боковых ударов не зависит и имеет очень короткое окно остаточной анимации, из-за чего легко продолжается блоком или ударов в другую сторону.
DrunkBear
Потому, что это разные вещи?
Примерно так же, как навык профессиональных игроков прятаться в неочевидных местах и стрелять в полтора пикселя, мелькнувшие на экране разнится от новичка с хаками на автонаведение и показ противников сквозь стены.
SergioPredatore
Потому что, на примере шутера, пенальти — это искусственно сниженная меткость бота, меньшее количество hp и меньший урон на Easy, а на Hard эти показатели просто выше.
А разный уровень игры предполагает разное поведение бота, у него одинаковое количество hp и одинаковый урон на разных уровнях сложности, не значительно отличается меткость, главное отличие в поведении, во взаимодействии с игроком; засады, ловушки, выработка контр тактики… Разница в ощущения от игры с ботами первого и второго типа — колоссальная!
gangz
потому, что боты без пенальти в том же старкрафт видят всю карту в одном окне и им не нужно перемещать камеру в места событий, не говоря уже о том, что они могут делать до 40 000 действий в минуту, а это 666 действий в секунду, человек так делать не может, уже не говоря о том, что alphastar просто пытается эмитировать игру людей без понимания игры, выигрывая только за счёт читов по скорости действий и «видимости всей карты в одном окне» это неоднократно разбиралось на канале Alex007.
Diordna
И вот создали они себе бог(т)ов, чтобы было кому молиться… :)
история компьютерного язычества (С)
Revertis
Ха-ха-ха, да-да :)
Pavel_The_Best
algotrader2013
А кто ж тогда все доски для го раскупил после того, как это произошло?
darthmaul
Ну с ограничениями на скорость реакции, кол-во действий в секунду, обзор карты и т.д — не выигрывают. А играть с мыслящим соперником гораздо интерестнее, чем с тупыми болванчиками.
rjhdby
Военным.
Ну вообще страшненько конечно.
Firz
Полагаю, основная проблема в том, что качественно обучить можно только играя с людьми, но при этом нельзя запустить сразу много инстансов бота, иначе люди начнут чаще играть с ботами, чем с людьми, а соответственно и поведение игроков будет меняться и тогда обучение еще хуже получится. То есть обучая бота играть как человек(или лучше чем человек), главное не испортить самих игроков, иначе фигня получится.
KvanTTT
Я надеялся, что следующая версия ИИ для StarCraft от DeepMind будет обучаться на играх сама с собой. Как было с игрой Go: сначала обучалась на человеческом опыте, потом AlphaZero, которая училась, играя сама с собой.
SKutukov
AlphaStar (ИИ для StarCraft) обучается по той же схеме. Начальное приближение получил от игр людей, а потом играл сам с собой.
SkyPhantasm
От тех же DeepMind боты для дота 2. Играя сами с собой боты пришли к стилю игры — равное распределения ресурсов. И побежлая команды из про игроков доказали жизнеспособность подхода. Но на игре команд это не сказалось. Все по прежнему предпочитают распределение на роли. Возможно это из-за того что игры против ботов были как развлечение.
Firz
В командных боях боты это вообще чит. 5 человек со своими характерами и эмоциями должны как-то скооперировавшись играть, а боты, по сути, как один большой бот играют.
Druu
Так боты играли в совершенно другую доту с совершенно другим балансом (в котором у людей не было опыта). В этом варианте доты, действительно, возможно, что равное распределение ресурсов и было более эффективно.
402d
На мобилах тот еще прикол.
Виртуальная машина C# работает совместно с виртуальной машиной JAVA
через абстракции Линукса над конкретной архитектурой железа.
При этом все более длительное нужно делать асинхронно, чтобы не мешать
свистолко-перделкам на экране. Так как пользователи любят красивые эффекты
анимации, что действие началось и требуется подождать. Расчетов на 100-200 мс,
а в основном потоке их делать запрещено. ANR прилетит.
Whuthering
CrashLogger
А C# в Android вообще отродясь не было.
doctorw
Xamarin?
Whuthering
Как уже ниже сказали, Xamarin, и даже более того, есть не только C# в Android, но был и Android на C#.
alan008
AlphaGO требовала больших мощностей для обучения нейросети, но для запуска в последних играх использовался уже всего один компьютер, а не кластер.
Информация из википедии:
Версия, которая выиграла у Фань Хуэя в октябре 2015 года, работала в кластере из нескольких машин с использованием 176 графических процессоров.
В игре с Ли Седолем в марте 2016 года AlphaGo использовала 48 TPU процессоров.
В матче против Кэ Цзе в мае 2017 года новая версия AlphaGo использовала только один компьютер на Google Cloud c 4 TPU процессорами, то есть примерно в 10 раз меньшую вычислительную мощность, чем была использована в матче с Ли Седолем.
KvanTTT
О том и речь, что TPU — это другое вычислительное устройство, не обычный процессор CPU.
alan008
Учитывая уплотнение компоновки на чипе и появление 64-ядерных процессоров, думаю в скором времени не составит большого труда сделать процессор, в котором будет штук 20 обычных ядер, штук 20 TPU, штук 20 ARM и еще видеоядро как у топовой видеокарты :-)
JerleShannara
И фреоновый кондиционер в комплекте =)
Gryphon88
Тогда я всё-таки напишу статью "Как настроить циркуляцию в системном блоке или Замена ЭЛТ-монитора для котика".
konraddd
«ИИ» это апогей человеческого расп*здяйства: люди окончательно «обленились» и вместо того чтобы думать самим — собрались и написали «нейронную сеть», которая будет думать за них… картинки там раскрашивать, моськи голливудских актрис к порнухе прикручивать… эпично, нет слов. Что дальше? Рэпера в президенты и поливать поля газировкой..?? (отсылка к фильму «Идиократия»)
Я вот их тех, кто ненавидит фреймворки и хочет каждый узел оптимизировать пока дым из ушей не пойдёт, обсуждать, планировать систему ДО начала её реализации, учитывать всевозможные нестандартные кейсы её эксплуатации и дальнейшей модернизации, нормализовать данные по максимуму насколько это вообще возможно, обходить стороной сборщики мусора и интерпретируемые языки… но «жизнь такова какова, и никакова больше» (с) поэтому я пишу говнокод на яве и иногда перед сном пустив слезу мечтаю о параллельной вселенной, в которой «всё правильно»
alix_ginger
Не волнуйтесь, со временем это пройдёт
sumanai
Вообще-то Двэйн Элизондо Камачо был бойцом без правил и порнозвездой.
SpiderEkb
Губится не только производительность. Губятся подходы к разработке.
Модный нынче тренд — фреймворки. Важно освоить очередной фреймворк, а что скрывается под ним никого не интересует.
В результате когда все это начинает тормозить, или давать не тот результат, которого ожидали, все списывается на фреймворк — «он так работает, мы с этим ничего не можем поделать».
Количество (в процентном соотношении) разработчиков, способных заглянуть по фреймворк, разобраться с особенностями API той платформы, под которую ведется разработка и использовать их для разработки высокопропроизводительной системы, стремительно падает.
mazy
Ответ девов «зато быстро сделали таск» получили бабло, давай следуйщий. Херак — в продакшн. А потом «а посмотри почему у клиента а 2х пользователях на сайте все дико тормозит». Так вы же криворукие так написали. «Ну у нас нет времени переделывать, у нас новые таски, скажем пусть купит 100500гиг памяти и все буде ок» рукалицо
Stas911
Даже память покупать не надо — переехал на инстанс побольше и погнали. Кроме того, час работы программиста стоит очень дорого, намного дороже железа.
mazy
И настроить автоскейл. Потом счету удивляться.
«А давайте запилим микросервисы, это сейчас ведь модно».
В итоге вместо вызова метода в коде имеем дикий оверхед на сокеты/хтпп/жсон и сериализации десериализации.
RickC137
Так надо не на разрабов сетовать, а на требования рынка (т.е самих потребителей). А программисту скоько заплатили, столько он и споет.
Звучит, как будто зодчий из 16 века, посмотрел на современные многоэтажки и говорит:"что за ерунда! Это фуфло бетонное и 100 лет не простоит. Вот я замки строил из чистого камня 500 лет назад, так они до сих пор не покосились". И будет прав, только никто все равно не будет покупать жилье на которое надо собирать деньги три поколения.
impwx
Причины чисто экономические. Требования к задачам растут, а объем «оперативной памяти» у человека довольно ограничен. Чем больше слоев абстракции нужно одновременно держать в голове, тем меньше людей оказываются на это способны. А написать, скажем, современную кроссплатформенную AAA-игру без использования фреймворков, скорее всего, невозможно вообще.
fougasse
Осталось лишь заставить себя пользоваться такими вот картинками "аппаратного уровня".
Я понимаю, что кажется, что диод зажечь — схема и не нужна особо, а спека на какой-то sx1509b, внезапно, десятки страниц.
rPman
Одно слово ASIC (ПЛИС), имхо за ними будущее, как только производители перестанут жевать сопли и не станут пихать этот функционал в каждый процессор, причем с общим стандартом и открытыми спецификациями, а не так как сейчас, чтобы начать разрабатывать нужно заплатить четырехзначные суммы
JerleShannara
Ну интел на эту тему сыграла — сначала Xeon Phi (который вроде как уже хоронят), потом тупо встраивание FPGA в Xeon. В результате имеем процессоры с адовым TDP под 200+ Ватт и адовой ценой просто на само железо.
amartology
Во-первых, ПЛИС и ASIC — это не одно и то же. ПЛИС — это FPGA.
Во-вторых, как верно заметил JerleShannara плата за реконфигурируемость ПЛИС — это огромные накладные расходы, выливающиеся в то, что дизайн на ПЛИС имеет скорость и потребление, сравнимые с ASIC на пять-шесть поколений технологии старше (= медленный кипятильник).
evocatus
Я разработчик для ПЛИС. Практически в каждом достаточно сложном проекте в состав конфигурации FPGA входит ARM-ядро (Microblaze). А сейчас Intel и Xilinx выпускаются гибриды — ARM + FPGA на одном кристалле.
Потому что делать на конечных автоматах то, что можно написать на Си — нерационально. Быстрее разработка, легче отладка, меньше ошибок, кушает меньше ресурсов. Потому что у FPGA конечное число логических вентилей и ЛЮБОЙ кусок логики или необходимость помнить что-то (если только не используется внешняя память — а DDR3 на платах с FPGA часто встречается) расходует эти ресурсы. Более того — с приближением к этому лимиту сильно возрастает сложность задачи по разводке схемы, она может даже не развестись с нужными скоростными характеристиками. Дешёвые FPGA стоят совсем недорого, каждый купить может какой-нибудь Microzed, а быстрые стоят тысячи долларов. А для серьёзных задач нужны быстрые. Реализовать процессор на FPGA можно, только вы получите 32-битный медленный аналог CPU 20-летней давности за сумасшедшие деньги. FPGA адекватны только для особого спектра задач, например для высокоскоростной потоковой обработки данных, когда вы пишете несколько конечных автоматов, на выходе будет стоять, скажем IP-ядро контроллер Ethernet MAC-уровня, а если есть несколько тысяч долларов и лишние ресурсы, то можно даже сделать TCP/IP. Но для такой задачи нужно разработать свою печатную плату (а иногда не одну), произвести её (это очень дорого по сравнению с любыми Xeon)
А ещё область разработки для FPGA — это заповедник проприетарщины. Честно, тут нечему завидовать. Тут ситуация как в разработке ПО до появления Open Source — платные «компиляторы» и пр.
И чтобы 2 раза не вставать: нет, квантовые компьютеры никогда не заменят обычные. Они работают по совершенно другому принципу, для них известно всего пара десятков очень узконаправленных алгоритмов и максимум, что их ждёт — роль сопроцессоров для спец. вычислений (криптография, некоторые области математики и пр.). Если удастся создать квантовый компьютер с достаточным числом кубитов (а вероятность этого экспоненциально уменьшается с каждым новым кубитом)
tick
Возможно, будущее за специальной архитектурой. Например, в кристалле два ядра из восьми могут быть выделены для операционной системы. Тогда можно упростить системные вызовы, убрав многие слои из драйверов, защищённых вызовов и виртуализации. Будет что-то наподобие real mode для DOS, только для Windows 11.
Процы будут покупаться под конкретную ось :) АМД доведёт линух до ума, сделав его полноценным конкурентом Майкам.
Alozar
Так то оно так, но у любой медали есть две стороны.
Блюпуп-клавиатура это удобство, но в тоже время требует другого интерфейса работы с собой, а это требует абстракции, чтобы в использующей клавиатуру программе не было необходимости делать несколько реализаций ввода. Юникод решил проблему не-латинских символов и «ой, а у меня не та страница кодировки» и теперь я всегда уверен, что буква будет показана верно.
И т.д. и т.п. с одной стороны мы тратим мощности на ненужные на первый взгляд вещи, а с другой решаем много проблем с удобством и надёжностью работы.
Банально на примере вашей схемы. Что будет, если вместо 5 вольт случайно подадут 220? Светодиод сгорит, а чтобы этого не было требуется ставить защиту, которая усложняет схему.
402d
это я к тому, что раньше делали, что позволяло железо.
А теперь напридумывали столько удобств. Но чтобы они все работали
нужны мощности как для крутого шутера из 2000х
Alozar
Мне ситуация с разработкой ПО напоминает историю развития автомобилей.
Раньше это были повозки с двигателем без всяких удобств и какого-либо комфорта и люди тоже использовали то что есть. Сейчас же в автомобиле всё меньше деталей необходимых для выполнения задачи перемещения из точки А в точку Б, а остальное это всякие магнитолы, кондиционеры, массажеры попы и т.д. То есть по сути вещи, которые требуют ресурсов, уменьшают надёжность, стоят денег, но при этом добавляют комфорт водителю и пассажирам.
В результате любители езды по лесам говорят, что это отстой, т.к. ненадёжно, а им нужно ремонтироваться в 100500 километрах от дома и для этого нет ничего лучше козла. Городские же жители с удовольствиям ездят на ненадёжных и неэффективных, но комфортных автомобилях. И давайте будем честными, вы не захотите ездить на старом (это которому лет 50) автомобиле, а вернётесь к новому, т.к. при всех минусах комфорт оказывается дороже.
Так же и с разработкой ПО. Пока мощности растут быстрее наших потребностей мы думаем о комфорте в разработке ПО. Как только упрёмся в предел производительности начнём заниматься оптимизацией.
engine9
Так себе сравнение. Даже кареты были с удобствами, отоплением и встроенным туалетом.
А то, что человек «подсаживается» на приятное и комфортное было до эры электроники: ожирение и алкоголизм :)
И нет никакой гарантии, что человечество пойдет по пути оптимизиции, может быть количество проблем будет настолько огромным, что проще будет сделать заново. А может быть всё превратится в неразгребаемую помойку.
Ведь технический долг копить так просто и весело, а рвзгребать горы говна не хочется никому.
VolCh
Разгребать хочется тем, кто не любит жить в говне, а сменить среду особой возможности нет, в том числе потому что почти везде есть, разве что где-то прикрыто.
engine9
Если человек с детства жил на свалке, то он даже не будет видеть в этом проблемы. Пример — Индия.
akryukov
Почему вы думаете, что люди в Индии не видят такой проблемы?
Ведь полно индусов переехало в штаты за хорошей жизнью.
engine9
Видят, даже пытаются что-то делать. Тем не менее там свалки размером с высотные здания.
ksil
В России также.
Mykola_Von_Raybokobylko
Ну автомобилю которому 50 лет вряд ли, но вот который был создан 20 лет назад вполне. В комфорте через пару часов возможно уснуть через пару часов, а так, когда ощущаешь пятой точкой все неровности, за 4-6 часов трудновато будет уснуть.
В разработке ПО такой же подход. Свой алгоритм разработки под каждую конкретную задачу. Где-то нужен сервис чтоб с консолькой и мог запускаться во всяких овнах, а где-то красивая картинка нужна или там куча "светофоров"
Azya
А чуть посложнее задача и решения на аппаратном уровне приводят к подобному.
olekl
Там скорее всего одним из факторов была радиоционная устойчивость. Но в целом да, интересная реализация часов на 100+ микросхемах.
fki
Да, скорее всего.
И даж параграф есть:
«What surprised me, though, was the similarities between the Shuttle computer and the Soviet clock. I expected the Shuttle computer to use 1980s microprocessors and be a generation ahead of the Soyuz clock, but instead the two systems both use TTL technology, and in many cases chips with almost identical functionality.»
safari2012
Никогда такого не было (по крайней мере в x86 времён DOS).
Akon32
Но вы же не хотите лезть с паяльником в видеокарту, когда требуется, например, сменить шрифт? Все эти виртуализации, абстракции, автоматическое подключение попросту удобны.
Никому не нужен дисплей, способный менять отображаемые цифры за наносекунды (как тот на схеме выше), т.к. скорость пользователя ограничена значениями примерно в сотни миллисекунд.
sumanai
Только вот точка баланса давно пройдена, нынешние абстракции не нужны и убивают производительность.
fougasse
Справедливости ради, фунционал у 2016 и 95 ворда отличается.
Даже размеры интерфейса.
Не в 500 раз, конечно, хотя для, как миниум, UI, цифры близки, как мне кажется.
Areso
Для UI давно можно было переехать на SVG графику. И проблема с десятками наборов ресурсов для разных разрешений вплоть до 8К решилась бы, причем экономно.
worldmind
UI это не картинка, UI это структура элементов управления. Положить под капот SVG вероятно хорошая идея, но это лишь часть вопроса, нужен адекватный UI Markup Language
fougasse
Так почему никто не переехал?
Ну, Майкрософт, допустим, не хочет, но почему тот же LibreOffice не уделал всех?
vikarti
В андроиде есть возможность графические ресурсы для UI на подмножестве SVG делать (VectorDrawable/VectorDrawableCompat). Иногда используют. А иногда (чаще) проще нарезать картинки (все равно у адекватного дизайнера автоматом режутся)
fougasse
Т.е. таки никому не нужно.
Revertis
У нас в приложениях почти всё в SVG.
arheops
В основном потому, что переезд стоит дорого.
Возьмите что-то попроще. Ну например простые картинки-скетчи. Логично использовать в них векторную графику, но это дорого, потому почти везде jpg размером в полмегабайта.
BubaVV
SVG довольно тяжелая штука, насколько я понимаю
KhodeN
Угу, на растеризацию вектора, особенно детального, тратится сильно больше ресурсов, чем на отрисовку битмапа (просто набора цветных пикселей). За универсальность платим.
Я бы привел в пример для сравнения скриптовую сцену в игре и фильм.
Areso
При запуске проверяем разрешение экрана, если оно не изменилось с предыдущего запуска, используем растеризованные иконки с прошлого запуска.
Если это первый запуск — растеризуем и сохраняем куда-нибудь.
vikarti
Экранов может быть более одного.
Между экранами можно окна перетаскивать и вообще (как минимум в Windows) окно может быть на двух экранах сразу.
engine9
Если я не ошибаюсь в WPF\XAML так и сделано. Да и вообще, насколько мне известно эта технология мощная, гибкая, продуманная, хотя и от мелкософта.
0xd34df00d
Нет, не решилась бы, потому что для разных размеров элементов и разных разрешений нужны разные уровни детализации иконок. Если вы посмотрите в качественные иконпаки, то иконки для, условно, 12х12 будут не просто уменьшенными копиями 32х32, но ещё и с небольшой перерисовкой.
Tallefer
Вот тут самое время вспомнить про решение разрабов Хайку ОС — HVIF :)
en.wikipedia.org/wiki/Haiku_Vector_Icon_Format
разбор формата в HEX-редакторе:
blog.leahhanson.us/post/recursecenter2016/haiku_icons.html
Насколько я помню, SVG это XML-текст, который еще надо долго парсить и т.д., а HVIF это бинарный формат, в котором урезано много того, что не относится к задаче, да еще и есть то, что реально надо — LOD варианты иконок, к примеру. :)
Личная просьба тем, кто это, возможно, когда-то прочитает — если будете пилить какой-то свой пет-проект (еще лучше — на чем-то дохлом, типа ардуины), попробуйте ради веселья использовать этот формат в нем. :) Заодно и на статейку материал будет!
ClearAirTurbulence
Это мягко выражаясь. Если в нем, как и в экселе, списки для покупок писать, разница незаметна, и возникает непонимание. Ну так и пишите списки покупок в Notepad++.
Отличия между 2016 и офисами 90х годов просто колоссальные, примерно такие же, как между современным смартфоном и нокией 3110.
FDA847
И какие же интересно? Со времён Word 97 кроме ленточного интерфейса отличий не вижу. Где они? Чуть более плавную прокрутку сделали? Лично она меня только раздражает. В плане форматирования текста отличий ноль! У меня есть portable версия Word 97 размером в 50 Мб вроде. Так у неё весь основной функционал современного ворда есть!
tretyakovpe
Формат файла, сейчас специально сделал три версии одного файла: rtf, doc, docx. DOCX в 10 раз меньше RTF и в два раза меньше DOC.
Смена темы оформления одним кликом. Выбор шрифта с демонстрацией этого шрифта без применения.
Насчёт рисования математических выражений не уверен, мне кажется в 97 ворде надо было плагин ставить.
Gryphon88
Математические выражения в адекватном виде появились только в 2007 ворде. Но, блин, почему вещи, которыми пользуются процентов этак 10 пользователей (слияние, рецензирование, рассылки, темы, математические выражения), не вынести в плагины или модули и make WinWord small and mighty again? Многим и правда старичка-Лексикона хватало.
FDA847
В новых версиях редактор формул получше стал.
akryukov
Wordpad есть по-умолчанию в каждом дистрибутиве windows. Это сами юзеры кушают кактус используя "Word" для простых документов.
Gryphon88
Вордпад таки немного перебор, но если бы в него завезли таблицы и пару мелочей типа выравнивания по ширине, его бы хватало. С удивлением обнаружил, что в него завезли нормально работающие СОМ-объекты.
FDA847
docx, понятное дело, появился позже. Да, объём у него меньше, но согласитесь, что в настоящее время файл объёмом даже в 50 Мб никого не смущает.
Предпросмотр шрифтов крайне удобная штука, тут спору нет!
Но вот что-то прям такого нового с 97 года они всё равно нифига не добавили :-)
tretyakovpe
Знаете, многое зависит от того, чем вы занимаетесь в ворде. Если вам раз в день надо служебку написать, изменив один из старых файлов — тогда вообще непонятно, зачем покупать офис, это можно в гуглдокс сделать.
Например у нас в компании ворд (и вообще офисный пакет) изпользуется на всю катушку. Как пример про темы (я уверен, многие снисходительно усмехнулись, когда я про них упомянул) представьте себе процедуру изменения корпоративного стиля в компании, сотрудники которой раскиданы по всему миру. Элементарная замена шрифта и цветов превращается в ад для специалистов соответствующих отделов. В новом ворде я просто выбираю тему и не парюсь. Они её как то там обновляют по необходимости, не вникал.
FDA847
У нас в 90% случаях используется LibreOffice. Но на нескольких рабочих местах куплен Office 365. Из него используем только Word для оформления красочных руководств по эксплуатации. Тут я с Вами соглашусь — его возможности в плане оформления на порядок выше того же Libre. Но в то же время, применение довольно специфическое, много всякой графики, эффектов типа теней и т.п.
А обычные текстовые документы практически произвольной сложности легко делаются в LibreOffice Writer.
Tallefer
Самое забавное, что прямо в то же время я поражался пакету MS Works, который выглядел более юзер-френдли, чем офис, и в нем был предпросмотр шрифтов, помимо всяких других рюшечек. На 95 виндах! :)
Не имею ни малейшего понятия, кто и зачем (конкуренция разных команд? или купили разработчиков?) его сделал, и что с ним потом стало…
DrunkBear
Works был сильно дешевле, на сколько помню.
KvanTTT
DOCX такой маленький из-за того, что это на самом деле архив, а не из-за оптимизации формата. Внутри же него до сих пор используются тяжеловесные XML.
Tallefer
Вот-вот, а все уже и забыли. :) Если пойти путем честного сравнения, то можно вспомнить, что в ХРю (вроде) появился штатный способ использовать зипы как папки, то есть можно легко упаковать любой старый док в зип и будет это открываться уж никак не медленнее… :)
Viceroyalty
Кстати я многие документы в нотпаде держу
KvanTTT
С учетом того, что существует Markdown и такие прекрасные визуальные редакторы как Typora, это почти что превращается в базовую версию ворда, но с дополнительными плюсами (простой текстовый формат возможностью простого версионирования).
Viceroyalty
Да нет, обычный plain text в Notepad++
JerleShannara
Отличия громадные, но сколько процентов пользователей используют этот новый функционал? Тут пардон куча пользователей не использует всего функционала, который в Office 97 был.
Jeen99
Не являюсь постоянным пользователем «офиса», но тоже интересно, чем отличается старая версия от новой в плане функционала.
ClearAirTurbulence
Вот список по Word
www.stl-training.co.uk/versions/word-difference.php
Вот по Excel
www.stl-training.co.uk/versions/excel-difference.php
Следует отметить, что списки эти далеко не полные. На самом деле там гораздо больше поменялось, просто людям changelog'и отслеживать лениво.
P.S. С нетерпением жду, когда в offline-excel завезут XLOOKUP. И да, даже если он из-за этого увеличится на 100Мб, жаловаться не буду.
respecto
90% пользователей как использовало 20% возможностей Word-95, так и использует те же функции в Word-2016.
И в Word-2025 так же будет.
Потому что большего им просто не требуется.
Revertis
Значит можно написать маленький и проворный редактор, в котором будут только эти используемые 20% функций. И продавать за 10 баксов лайф-тайм лицензии.
respecto
Совершенно верно.
Но Microsoft это делать не будет, потому что как потом продавать MS Office?
А другие не смогут, потому что пользователи уже привыкли к Word/Excel и менять не захотят.
А вы думали, почему так легко найти и установить пиратскую версию Офиса?
Многие до сих пор верят — это потому, что глупые программисты Microsoft просто не могут сделать нормальную защиту.
Andrey_Vladimirovich
respecto, на самом деле после 2007-го офиса это стало проблемой, если, конечно, вы хотите обновлять офис. А пользоваться дырявым, это ещё то удовольствие.
daggert
ИМХО захотят если он будет выполнять эти 20% возможностей, а не как OO/LO и иже с ним.
Sychuan
Этот редактор есть за бесплатно. называется гуглдокс. А тот факт, что наконец-то не нужно без конца пересылать разные версии документа почтой—это просто чудо какое-то!
JerleShannara
У него есть один недостаток — без интернета не работает.
Revertis
Я не готов сливать все свои документы какой-нибудь корпорации, особенно Гуглу.
AlexWenner
Для Гугла твои «не хочу» даже не замечают.
Твои ЛИЧНЫЕ документы вообще никому неинтересны.
А вот как в составе хомячков — ты выполняешь свои роли.
Revertis
Что?
brnovk
Вообще-то приложения на Electron не лишены достоинств — за пару вечеров, с неглубокими познаниями в реверс-инжиниринге, можно поправить исходники «для себя»: сделать вечный триал, вырезать рекламу, допилить кнопку в UI.
CrashLogger
В нативном коде это тоже довольно несложно, в сети куча мануалов по реверсу нативных Windows приложений.
sumanai
В нативном можно весьма усложнить дебаггинг приложения. В электроне разработчики ограничены виртуальной машиной JS.
sergeymolchanovsky
Прямо с языка снял )
3ds Max 6 на ведре с Intel Core Duo 2 и видеокартой 128 Мб умещался на CD и периодически вылетал. Спустя 15 лет, 3ds Max 2020 раздулся до 5 Гб, на i7 и GTX 745 более тормозной и вылетает чаще.
engine9
А блендер как тогда летал и мог кучу всего так и сейчас 200 мб весит и летает на сопоставимом железе. Например, на упомянутой вами «корке».
frkbvfnjh
Так это они специально, просто что бы заставочку показать, что бы все знали что это Word 2016. Если бы он открывался как блокнот, то никто бы не знал что это MS Office, тем более что чем дольше грузится программа, тем она солиднее. Ничего в маркетинге не смыслите :)