Слушай подкасты нашей студии
Слушать

6 причин, почему твой компьютер всегда будет забагованным куском железа

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

1. Железо произведено непонятно кем

В современных компьютерах есть несколько проблем. Во-первых, до сих пор в железе остаются архаичные решения, которые тянутся ещё с бородатых времён. К примеру, архитектура процессоров x86 появилась ещё в 1978 году в виде 16-битной версии. В 1985-м была представлена 32-битная версия, а в 2003-м — 64-битная. И хотя современные процессоры серьёзно отличаются от тех, что работали в компьютерах конца 70-х, в них до сих пор есть множество устаревших решений, причём как в архитектурном, так и в командном плане.

Во-вторых, виновата и технология Plug and Play. Да, это здорово, что ты можешь воткнуть новую видеокарту в материнскую плату, и она сразу определится компьютером, но тут есть и достаточно серьёзный минус. Дело в том, что до сих пор у многих людей в компьютерах установлено устаревшее железо, которое произвела какая-нибудь небольшая компания, давно отправившаяся на небеса. Естественно, никаких обновлений для такого железа выпускаться уже не будет. А это значит, что его внедрением в ту же Windows 10 приходится заниматься программистам из Microsoft и смежных контор, буквально заново изобретая велосипед. А это часто приводит к серьёзным багам.

2. Написанный криво и внедрённый нелепо код

Даже человек, не знакомый со сферой IT, слышал когда-нибудь выражение «индусский код». Если вкратце, то это плохой, неоптимизированный код, который изобилует неточностями и глупостями. Чтобы тебе было проще понимать, представь, что тебя попросили взять со стола ложку, вилку и тарелку и отнести их в раковину. Что сделает нормальный человек? Положит приборы в тарелку и отнесёт всё вместе.

«Индусский код» же работает следующим образом: ты берёшь ложку, несёшь её к раковине, кладёшь, возвращаешься за следующим прибором или посудой — и так по кругу. При этом ты тратишь время и нервы. Вот и в твоём компьютере много «индусского кода», который загружает машину на 100 %, и ты не понимаешь, как эта программа весом в несколько мегабайт может потреблять так много ресурсов.

Другая проблема — «костыли». Это такие заплатки, которые позволяют системе работать «нормально». И каждая такая заплатка добавляет в нее много мусора и багов. Так, например, чтобы сделать старые программы совместимыми ещё с первой версией Windows, программистам Microsoft приходилось внедрять «костыли», чтобы код, рассчитанный на командную строку, работал и в привычном тебе визуальном интерфейсе. Ну а про Windows 10 и говорить нечего, так как совместимость ей нужна даже с предыдущей версией.

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

3. Политические мотивы

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

Возьмём к примеру Microsoft. Ей приходится точно прорабатывать часовые пояса и выбор региона для всех стран, причём с оглядкой на политику каждой. Однажды Microsoft сделала изображение карты, где нужно выбирать часовой пояс при установке времени, и поместила некоторые индийские города в часовой пояс Пакистана. Из-за этого Индия пригрозила полным запретом продуктов компании в стране. И так с каждой деталью.

Из-за таких противоречий с тем, чей там город/остров/любой другой клочок земли, какой там язык и часовой пояс, в системах и программах накапливаются взаимоисключающие строчки кода, которые порой приводят к багам.

10 необычных дизайнов компьютеров, которые ты и представить не мог

4. Антимонопольные процессы

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

Только в случае с кодом всё куда сложнее. Допустим, антимонопольной комиссии не нравится, что Microsoft предустанавливает в Windows свой браузер и антивирус, ведь это удар по конкурентам. Тогда Microsoft приходится вырезать эти программы, которые связаны с другим софтом, а те, в свою очередь, — с другим. В итоге образуется дыра, которую нужно закрывать заглушками. А так как весь код, связанный с удалённым компонентом, никто просматривать не будет, система становится более забагованной.

5. Патентные войны

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

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

6. Попытки сделать системы и софт подходящими всем

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

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

20 компьютерных терминов, которые должен знать каждый

Читать также:

Задай вопрос редакции,

возможно, мы ответим на него в наших следующих статьях.

Комментарии

(0)