Привет, Хабр! Представляю вашему вниманию перевод статьи Ideal OS: Rebooting the Desktop Operating System Experience автора Josh Marinacci.



TL;DR: В этой статье Я хочу показать что:


  • современные десктопные операционные системы не такие уж и современные. Это тормознутое поделие, обрюзгшее невообразимым множеством слоёв легаси-хлама, которое всё ещё функционирует лишь благодаря закону Мура.
  • инновации в десктопных операционных системах остановились 15 лет назад и все ведущие игроки вряд ли захотят снова в них вложиться
  • мы можем и нам следует начать всё с нуля, выучив уроки прошлого.

"Современные" десктопные операционные системы раздуты


Давайте рассмотрим Raspberri Pi. За 35$ Я могу приобрести потрясающий компьютер с 4 ядрами CPU, по 1 ГГц на каждый! Также здесь найдётся 3д-ускоритель, гигабайт оперативной памяти и встроенный wifi/bluetooth/ethernet. За 35 баксов! И тем не менее, для большинства задач, которыми Я занимаюсь он подходит не лучше, чем 66 МГц компьютер, которым Я пользовался ещё в колледже.


image


На самом деле, в некоторых случаях всё гораздо хуже. Чтобы получить 3д ускорение для Doom, что было тривиальным делом для Microsoft Windows в середине 90ых, требуются невероятные усилия для X windows в наше время.


Ниже представлен скриншот запущенного Processing на Rapsberry Pi с аппаратным ускорением. И это возможно только благодаря полностью кастомному видеодрайверу для X Windows, который всё ещё находится в стадии эксперимента. Спустя 5 лет после выхода Rapsberry Pi.


image


Несмотря на проблемы X-Windows, Rapsberry Pi имеет удивительно мощный GPU, который способен делать вещи как на скриншоте далее, но при условии что мы избавимся от X-Windows.(конкретно этот скриншот сделан из OS X, но тот же код запускается на Pi 3 с 60fps)


image


Или другой пример. Atom — один из самых популярных текстовых редакторов на сегодня. Разработчики обожают его потому что к нему есть огромное количество плагинов, но давайте разберёмся каким образом он работает. Atom использует Electron, который по существу является полноценным веб-браузером, идущий совместно рука об руку с окружением NodeJS. Это целых два Javascript-движка входящие в состав одной программы. Приложения на Electron используют API отрисовки браузера, которые делегируют отрисовку нативным библиотекам, которые затем обращаются к GPU(если повезёт) для отрисовки на дисплей. Так много слоёв..


image


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


image


Даже довольно простые приложения получаются чересчур усложнёнными в наши дни. Приложение для email, представленное выше концептуально очень простое. В нём всего лишь должно быть пару запросов в базу данных, текстовый редактор и модуль для коммуникации с IMAP и SMTP серверами. И всё же написание нового email-клиента является весьма сложной задачей. А если вы хотите модифицировать ваш email-клиент или уже существующий (например, Mail.app стандартный клиент для компьютеров Apple) — не существует простого способа сделать это. Отсутствует система плагинов. Отсутствует API для расширения функциональности. И это всё следствие раздутого количества слоёв.


Отсутствие инноваций


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


Mac OS


Mac OS X когда-то был лучом света в этом мёртвом царстве — каждый релиз демонстрировал прогресс и изобретательность инженеров Apple. Quartz 2D! Expose! Система синхронизации устройств! Виджеты! В наши дни Apple время от времени меняет тему и увеличивает привязанность к мобильным устройствам своего производства.


image


Самая последняя версии Mac OS X (ныне переименованная в macOS в честь того, где они были 2 десятилетия назад) называется High Sierra. Какие же образцовые функции мы с нетерпением ждём этой осенью? Новая файловая система и новый видеокодек. И это всё? Ну ещё они добавили редактирование в приложение Photos, которое уже было в iPhotos, но было удалено после одного из обновлений. А и блокировка автовоспроизведения в Safari.


Apple — самая дорогостоящая компания в мире и это всё на что они способны? Просто взаимодействие с десктопной ОС не является для них приоритетом.


Microsoft Windows


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


image


Вместо улучшения взаимодействия пользователя с системой они сфокусировались на новой модели добавления приложений, увеличивая количество слоёв поверх старого кода. И между прочим, Windows может всё ещё запускать приложения из 90ых.


Консоль Windows — CMD.exe, позволяющая запускать программы DOS, была заменена только в 2016 году. А самая большая фича последнего релиза Windows 10 состоит в том, что они добавили подсистему Linux. Всё слоёнее и слоёнее пирог выходит.


X Windows


image


X Windows улучшалась даже меньше чем остальные. На самом деле, это примечательный пример неизменяемости. Люди жалуются на это с начала 90ых. Я очень рад, что могу приодеть свой GUI, но как насчёт системного буфера обмена, в котором нельзя хранить более одного элемента за раз? Это неизменно с 80ых!


X Windows добавил менеджеры компоновки окон в середине 2000ых, но из-за легаси невозможно их использовать не для чего, кроме перетаскивания окон


image


Wayland предположительно должен был всё исправить, но он разрабатывается уже десятилетие и всё ещё не готов! Совместимость со старыми API является весьма тяжкой ношей. Мне кажется Apple была права, когда засунула старый macOS в эмулятор, отгородившись от древнего кода.


Рабочие станции?


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


Нет смысла винить Apple или Microsoft(и уже Google) за это. 3 миллиарда смартфонов заменяются каждые 2 года и это намного более прибыльный рынок, чем несколько сотен миллионов ПК и ноутбуков, сменяющиеся, дай бог, раз в 5 лет.


image


Я считаю, что чтобы вернуться к улучшению интерфейса десктопа, мы должны пересмотреть наше отношение к ним. Если персональные компьютеры свободны от звания продукта для масс, то они должны рассматриваться как инструмент для работы — рабочие станции.


Вещи которые всё ещё нам не доступны в 2k17


На дворе 2017 год. Давайте рассмотрим вещи, которые должны существовать, но которые отсутствуют по некоторым причинам.


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


Почему Я не могу положить файл одновременно в два места моей файловой системы? Почему она обязана быть иерархичной? Почему Я не могу отсортировать файлы по тэгу или метаданным? Файловые системы с принципами баз данных существуют десятилетиями. Microsoft даже пыталась внедрить их со своей WinFS, но удалила из Windows Vista перед самым релизом, спасибо легаси. BeOS внедрила это 20 лет назад. Почему современные десктопные ОС не могут в это?


image


В любом веб-приложении можно менять масштаб. Достаточно нажать Ctrl + и текст станет больше. Всё внутри окна автоматически адаптируется к масштабу. Почему этого не умеют нативные приложения? Почему Я не могу иметь на экране две области разных размером для окон? Или даже масштабировать их автоматически, когда перемещаюсь между окнами? Все эти вещи просты до безобразия с композитным оконным менеджером, которые были банальностью на протяжении десятилетия.


Ограниченное взаимодействие


У моего компьютера есть мышь, клавиатура, датчики наклона, датчики света, 2 камеры, 3 микрофона и масса bluetooth-аксессуаров, но только первые 2 используются как основные устройства ввода. Почему Я не могу приказать своему пк выполнить что-то голосом или жестами?


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


Почему мой Macbook не может используя Bluetooth подключиться к интересным HID-устройствам, вместо синхронизации с Apple Watch. А нет, мак ведь не умеет синхронизироваться с Apple Watch. Ещё одно место, где мой десктоп занимает роль второго плана.


Почему компьютер не использует ничего для вывода кроме дисплея? Мой новый Razer-ноутбук имеет RGB-подсветку под каждой клавишей и единственная их функциональность — переливание цветными волнами! Как насчёт использовать эти LED для чего-то реально полезного?


Программы комбайны


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


Но самое важное, что слабая коммуникация между приложениями делает очень сложной их координацию. Фундаментальные принципы Unix состоят в том, что небольшие инструменты работают вместе. Но X Windows не поддерживает это от слова совсем


Созданные для 1984


Почему же наши ПК до сих пор такие неуклюжие? Главным образом, потому что они созданы для 1984ого года. Десктопное GUI было изобретено в то время, когда большинство людей создавало документы с нуля, сохраняло и распечатывало их. Если вам посчастливилось, вы сохраняли документ в общей файловой системе или отправляли по email. На этом всё. Графический интерфейс был создан для решения задач, которые раньше осуществлялись с бумагой.


Проблема в том, что на дворе 2017. Мы уже не работаем тем способом, что и в 1984. В типичный день Я возьму некий код с самых разных сайтов, скомпоную несколько тестов и сгенерирую структуру данных, представляющую результат, затем отправлю полученное другим для переиспользования. Импорт, синтез, экспорт.


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


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

Комментарии (225)


  1. lolmaus
    03.09.2017 10:16
    -15

    Держи первый плюс в карму. ^_^


  1. MonkAlex
    03.09.2017 10:25
    +28

    В любом веб-приложении можно менять масштаб. Достаточно нажать Ctrl + и текст станет больше. Всё внутри окна автоматически адаптируется к масштабу. Почему этого не умеют нативные приложения? Почему Я не могу иметь на экране две области разных размером для окон? Или даже масштабировать их автоматически, когда перемещаюсь между окнами? Все эти вещи просты до безобразия с композитным оконным менеджером, которые были банальностью на протяжении десятилетия.
    Далеко не каждый сайт удачно масштабируется. Некоторых так колбасит, что ты вынужден возвращать 100%. Внезапно, масштабируемость сайта, зависит от его разработчиков. Аналогично дело обстоит с десктопом, приложения должны уметь масштабироваться, чтобы простым Ctrl-+ увеличивать размер задуманных разработчиком элементов. А ещё все картинки видимо придётся в вектор переводить, не скейлить же их быстро, дешево и сердито?

    Пока похоже на плач ребёнка, а не на серьезную статью.


    1. gridem
      03.09.2017 13:16
      +1

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


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


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


      Весь вопрос в удобстве написания приложений. А удобства — во дворе.


      1. DistortNeo
        03.09.2017 15:16
        +4

        Ну, к слову, в Windows 10 это даже работает: можно задать разное DPI на разных мониторах, и при перетаскивании приложения из одного окна в другое его масштаб будет корректно меняться. Правда, для этого нужна поддержка со стороны приложения (операционная система сама практически ничего не масштабирует, а просто задаёт приложению DPI), но все приложения, что я использую, такую возможность имеют, и прекрасно отображаются на HighDPI мониторе.

        Ну а если поддержки динамического DPI нет, то просто будет мыло от растровой интерполяции шрифтов. С картинками, кстати, проблем нет — еле заметную размытость глаз воспринимает нормально.


      1. Lsh
        04.09.2017 14:47

        Проблема, однако, в том, что масштабирование полностью положено на плечи разработчика.

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

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

        Как это? Для оконного менеджера шрифт это картинка. Соответственно, при масштабировании он будет не такой чёткий. Либо надо ограничивать масштабирование только целыми коэффициентами.

        Вообще можно идти двумя путями.
        1. Всё делает разработчик приложения, ОС ему только сообщает условия.
        2. Компоненты ОС тоже выполняют часть работы.

        Во втором случае нужно что-то вроде клиент-серверной архитектуры. Привет, X Window!
        Тогда приложение будет рисовать не пиксели, а прямоугольник с шириной 50% от родителя. А оконная система будет его масштабировать, сглаживать и т.п.
        Только почему-то от этого отказались. Наверное сложно запихать в оконную систему примитивы на все случаи.


        1. DistortNeo
          04.09.2017 15:37

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

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

          > Как это? Для оконного менеджера шрифт это картинка. Соответственно, при масштабировании он будет не такой чёткий. Либо надо ограничивать масштабирование только целыми коэффициентами.

          Почему это? Чтобы отрисовать текст в GDI+, мы делаем системный вызов Graphics.DrawString. Если мы рисуем прямо в само окно, без буферизации, то текст будет отрендерен корректно. Если же мы используем буферизацию и выводим текст сначала в растровый буфер, а уже потом на экран, то да, будет мыло из-за интерполяции растра при его переносе на экран.

          И, кстати, из GDI+ выпилили функцию SetPixel (она доступна теперь только для Bitmap) — это было сделано неспроста.

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

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

          Почему же? WPF — пример такого интерфейса, и как по мне, так получилось вполне удачно.


    1. DistortNeo
      03.09.2017 15:09

      > Далеко не каждый сайт удачно масштабируется.

      Это уже следствие неадаптивной вёрстки. Пропорциональное масштабирование всех элементов сайта без изменения размеров окна браузера = изменение размеров окна для сайта. Если сайт не может работать с узкими экранами, он будет отображаться криво.


      1. MonkAlex
        03.09.2017 15:16
        +9

        Но я об этом и пишу. Автор напирает на то, что сайты (веб) умеют в масштабирование, а десктоп — нет, в то время как веб это умеет только при должной разработке, а при такой это умеет и десктоп.


        1. DistortNeo
          03.09.2017 15:29

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


  1. apro
    03.09.2017 10:29
    +15

    Новая файловая система и новый видеокодек. И это всё?

    Серьезно, "новая файловая система" и этого мало?


    1. DrPass
      04.09.2017 11:07

      Серьезно, «новая файловая система» и этого мало?

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


      1. Lsh
        04.09.2017 14:49

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

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


  1. Geograph
    03.09.2017 10:38
    +5

    Только у меня третья картинка на 5.8 Мб грузится как на диалапе построчно?


    1. homm
      03.09.2017 13:59
      +19

      «Господи, почему все так плохо работает! Оформлю-ка своё нытье как статью и прикреплю фотографию экрана в PNG, так будет намного лучше»


      1. KoToSveen
        04.09.2017 03:00
        -2

        А можете объяснить, чем плох png?
        Хотя, сейчас конвертировал вышеуказанную фотографию в jpeg, размер уменьшился в несколько раз с тем же качеством.


        1. vorphalack
          04.09.2017 03:29
          +7

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

          и, кстати, является достаточно ироничным фактом что она такая в оригинале, у автора, ноющего про «раздутые системы».


          1. KoToSveen
            05.09.2017 02:36

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


        1. sumanai
          04.09.2017 03:32
          +1

          А можете объяснить, чем плох png?

          PNG хорош, но в своей области применения. Для фотографий нужно использовать JPEG.
          Хотя фотография экрана для демонстрации небольшого окна уже само по себе выглядит издевательством. Уверен, что вырезанная из скриншота часть в PNG будет весит килобайт 200.


          1. domix32
            04.09.2017 10:20

            Есть еще всякие минификаторы png для веб.


        1. homm
          04.09.2017 15:05
          +1

          чем плох png

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


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


        1. DistortNeo
          04.09.2017 15:48

          Конкретно в данном случае он плох тем, что имеет чудовищный размер как в байтах, так и в пикселях:

          4,352px ? 2,448px (scaled to 775px ? 436px)

          Во-первых, контент — не скрин, а мыльное фото. Значит, надо использовать JPEG.

          Во-вторых, нет никакой нужды использовать настолько большое разрешение для демострации наличия ускорения 3D графики. С размером 500px картинка будет иметь размер 50 кб (JPEG, 95 quality), 775px — 100 кб.


  1. Cobolorum
    03.09.2017 10:40
    +39

    Ужасно субъективная статья человека не попытавшегося что либо понять!
    0. Почему, почему, почему? А вы пробовали сделать то то что просите?
    1 «Atom — один из самых популярных текстовых редакторов на сегодня» я первый раз услышал про это редактор от вас. Занимаюсь разработкой более 20 лет.
    2 «X Windows добавил менеджеры компоновки окон » вот отсюда по подробный притенезии к какому менеджеру?
    3 «как насчёт системного буфера обмена» с чего вы взяли что должен быть системный буфер обмена? И даже если вы нем сделать не один элемент, то какое должно быть правило FIFO, FILO?
    4 " Я не могу положить файл одновременно в два места моей файловой системы? Почему она обязана быть иерархичной?" Как раз в два места вы положить можете, но не все ФС могут иметь ссылки на одно место хранения данных из более чем одного места. Хотя современные ФС могут это делать. А если вам не нравится иерархия то милости просим в БД. Но ФС без иерархической составляющей не прижились. Крайне не удобно.
    5 " моего компьютера есть мышь, клавиатура, датчики наклона, датчики света, 2 камеры, 3 микрофона и масса bluetooth-аксессуаров, но только первые 2 используются как основные устройства ввода. " Что!?!? Вы не пробовали через xinput подключить по два и более устройств ввода? Значит вы вообще ни чего не пробовали! С мышками удобно (мышь+тачпад), но вот две клавы это не удобно.
    По мне ваша «статейка» это просто нытье человека который не пробовал решить ни одну проблему. Да и скажу более что Вы даже не пробовали сформулировать проблемы!


    1. alemiks
      04.09.2017 13:36

      1 «Atom — один из самых популярных текстовых редакторов на сегодня» я первый раз услышал про это редактор от вас. Занимаюсь разработкой более 20 лет.

      а что с этим не так? Если вы не знаете про него, то это не самый популярный редактор?)


      1. alltiptop
        05.09.2017 19:51

        Как то пытался поставить это поделие, сразу выдало: «ваша версия glibc не той версии, удалить вообще всё?». Можно сколько угодно его хвалить, но на этом моменте окончилось моё с ним знакомство, так и не начавшись.


    1. batyrmastyr
      05.09.2017 09:06

      Кстати, в OS X можно вешать цветные ярлыки на файлы и папки и таким макаром уходить от строгой иерархии.


      1. vvzvlad
        05.09.2017 20:09

        Это не просто ярлыки, это именно что любые теги для файлов:


  1. Dageron
    03.09.2017 10:42
    +2

    По поводу масштабирования (точнее бы назвать «UI-масштабированием»): так ведь есть это уже. Android, iOS, да и за примером далеко ходить не надо, взять те же Windows 10 приложения UWP.

    Все это есть, но временами достаточно пассивно поддерживается самими разработчиками, так как накладывает массу дополнительных трудностей. Где толпы желающих писать native-приложения под Win10? До сих пор ведь популярен классический формат Win-форм, который, кстати, уже самими Microsoft считается legacy.

    На мобильных платформах в самой сути мобильных разработок заложены принципы масштабируемости, но глянуть на приложения под Android (где принципы layout и dpi были еще в 2008 заложены), так есть масса таких, где под чуть нестандартным разрешением весь интерфейс рушится.

    На iOS с этим лучше, т.к. есть серьезная модерация в App Store. Но на macOS если заглянуть за пределы App Store, качество сразу ухудшится, особенно есть брать какой-нибудь навороченный opensource кроссплатформенный софт, который с большой долей вероятности был портирован с UNIX.

    Есть паттерны и технологии, где сделана попытка унифицировать интерфейсы и их масштабируемость даже между платформами, среди которых положительно отмечу Xamarin Forms.

    Много, в общем, есть вариантов. И тем не менее, много софта где даже fullscreen внезапно все ломает, и побоюсь даже упомянуть разрешения вне 4:3 и 16:9 (между прочим, в перспективе устаревающих).

    Что мы можем сделать в ситуации? Популяризировать профессиональный подход к разработке ПО, когда гибкости интерфейса дается особая роль. И самим стараться следовать гайдлайнам, оставив позади пресловутое «накидал на форму кнопок и вперед» (этот метод, кстати, во всех системах есть и активно популярен).


    1. sumanai
      03.09.2017 18:16

      Где толпы желающих писать native-приложения под Win10?

      А что считать нативными под десятку? UWP, которые работают через кучу слоёв абстракции?
      На iOS с этим лучше, т.к. есть серьезная модерация в App Store.

      Там просто вариантов разрешений меньше.


      1. daggert
        03.09.2017 18:44

        А что считать нативными под десятку? UWP, которые работают через кучу слоёв абстракции?

        Есть рекомендация — писать на UWP, который совместим с магазином приложений. Сейчас он на слое костылей, мб далее сие поделие будет оптимизироваться и переписываться на более низкий уровень.


        1. sumanai
          03.09.2017 18:51
          +1

          Очень в этом сомневаюсь. Скорее через 5 лет придумают какой-нибудь UWP-Core_Framework не содержащий dll hell, который будут требовать при написании новых приложений.


          1. qw1
            03.09.2017 21:43

            И при этом, разумеется, не откажутся от классических UWP-приложений ))


          1. daggert
            03.09.2017 22:29

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


        1. Alex_ME
          04.09.2017 02:48
          +1

          А что там за слой костылей? Я особо не интересовался, но думал, что там простой .NET и что-то WPF-подобное.


          1. daggert
            04.09.2017 09:39
            -2

            Что-то WPF-подобное для меня и является таким себе слоем костылей, который (ИМХО конечно) не дает простоты восприятия, в угоду программистам старой школы. Удерживают стариков, в общем. Это хорошо для миграции, когда ты писал под ХР и плавно перетек к UWP, однако для меня, как для новичка, тот-же Qt кажется более логичным и приятным.
            Хотя я конечно могу ошибаться.


      1. DjPhoeniX
        04.09.2017 01:29

        Там просто вариантов разрешений меньше.
        Меньше, да не сильно — 4 разных разрешения, (условно) 3 варианта dpi. (и это я только айфоны посчитал).

        Скорее iOS выигрывает за счёт сильно упрощённого layout (там constraint-based layout с 6 версии, и удобный редактор с предпросмотром «как на реальном устройстве»)


    1. domix32
      04.09.2017 10:27
      +1

      А есть ли хоть одно отзывчивое UWP-приложение, которое при холодном запуске не грузится дольше 20 секунд и при этом имеет адекватный UX-дизайн?


  1. DeadKnight
    03.09.2017 11:39
    +17

    На улице 2017 год. Я не понимаю, почему я должен готовить обед сам? Мне уже давно его должны готовить роботы. И на отдых я хочу летать на Марс! Это же так просто, запустить космические корабли туда. Да, и почему я не могу в свой старый жигули залить вместо бензина воду, и поехать. Бензин и вода — жидкие! Я не вижу никаких проблем в совместимости между ними!


    1. DeadKnight
      03.09.2017 11:42
      +2

      P.S. тем не менее будет интересно посмотреть на те решения, что предлагает автор. Надеюсь они будут вменяемыми и реализуемыми.


      1. DeadKnight
        03.09.2017 12:05
        +16

        Почитал оригинальную статью. IMHO, к сожалению решения автора похожи на совет: «Мышки — станьше ежиками». Увы.


  1. MrPeterLink
    03.09.2017 11:53
    +3

    Читал статью в оригинале, большое спасибо за перевод.
    Претензии автора к современным ОС не всегда обоснованы, на мой взгляд, но поднимать вопрос о "голом короле" нужно.


    1. iCpu
      03.09.2017 13:12
      +15

      Давайте будем объективными. Статья — ной инфантильного мальчика.

      Проблема всех современных ОС с историей — обратная совместимость. И она лежит даже не в плоскости разработчиков ОС, а в клиентской базе. На дворе 2017 год, а людей с боем приходится сгонять с Windows Xp на хотя бы SP3. Только укажи, что минимум Вин7, — тут же слёзы, вой, слюни, пот, кровь и прочие телесные жидкости! И тут же появится гений: «о, у вас нет сборки под экспериментальную генту, убожество!»

      Но и нам, разработчикам, совсем не упёрлось каждые 2 года пересаживаться на новый API, — за 2 года только-только начинаешь входить во вкус. Даже хуже, мы банально не успеваем просто уследить за всеми новостями. Но мы-то, разработчики, вдобавок совсем обленились, ради скорости разработки и «кроссплатформенности» пишем всё на пространных языках с непонятным способом перевода в бинарный код, да ещё и линкуя сотни библиотек, наивно полагая, что их-то пишут настоящие разработчики, не чита нам. Ну вот, когда «не чита», новые фичи появляются раз в сто лет, как у SQLite, или цена продукта пробивает твой годовой бюджет, как гиперзвуковая ракета пробивает весящий на стене плакат «У меня всё хорошо!». А когда «как обычно», то в проекте появляются 4 разные версии одного и того же фреймворка, которые с удовольствием поделятся с твоим компилятором-интерпретатором, какой ты лох.

      Мы не можем отбросить существующие операционные системы и лежащие в их основе парадигмы. Мы не можем ввести в старые системы новые парадигмы, не извратив идею и не получив ужасающих кадавров на стыке MFC, .Net4.6 и tAms'а. Мы не можем отбросить часть клиентов и оборудования, потому как, банально, та же Пи'шка тоже уйдёт. И мы не можем уйти от 15 слоёв обратно к 3-4, потому как не хватит ни времени на разработку всех требований, ни разработчиков, способных этим заниматься.
      Цугцванг. Ни переход на новую парадигму, ни модернизация старой не решают проблем. Переход на новый уровень произойдёт с новой технической архитектурой, как Андроид взошёл с поголовным внедрением АРМов. Крайне сомневаюсь, что это будет наш Эверест, поэтому стоит сделать ставки на квантовые вычисления и связанные с ними изменения во всех без исключения сферах компьютерного знания.


      1. qw1
        03.09.2017 15:08
        +4

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


        1. Am0ralist
          03.09.2017 15:39
          +4

          Если квантовые ПК легко потянут винду,
          Страшнее будет, если не потянут!


          1. qw1
            03.09.2017 16:48

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


        1. iCpu
          03.09.2017 17:53

          Уж криптографию точно придётся переписывать, а это 50% софта в парашу прям даже не запуская. Кроме того, не думаю, что это будет прям новая архитектура, скорее всё остановится на уровне сопроцессора, так как квантовые системы лучше текущих только в ограниченном круге задач. А с тем же оконным циклом старый добрый Intel Pentium справится ничуть не хуже гипотетического квантового водопровода, но уж точно дешевле.

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


          1. kogemrka
            04.09.2017 10:30
            +2

            Уж криптографию точно придётся переписывать, а это 50% софта в парашу прям даже не запуская.


            Зачем переписывать операционную систему просто для того, чтобы заменить одну реализацию одного алгоритма на другую реализацию другого?

            Жалобы в топике исключительно про интерфейсы и про нагромождение слоёв API. Откуда вообще взяться зависимости между интерфейсами и криптографическими библиотеками?

            Внезапно, обновление, к примеру, openssl не требует переписывания X Window.


            1. iCpu
              04.09.2017 11:47

              Вопрос не в этом, а в переходе на новый тип оборудования. Windows XP жива до сих пор потому, что компьютеры, выпущенные в 2005-2010 годах до сих пор одной левой справляются со всей необходимой нагрузкой, в частности, криптографией. То же про клиентские ОС, то же про ряд серверов. Поэтому нет даже шанса на переход в новые парадигмы: пользователи не желают изменений, ведь у них и так всё хорошо, а разработчики вынуждены тянуть обратную совместимость и не могут полностью перейти в новые парадигмы. Эта ситуация расползается на десятилетия.

              Единственный шанс это всё оборвать — резкий переход на новое оборудование. Это было с iPhone и, позднее, Android. Новый рынок, новый подход к использованию и, конечно, короткий жизненный цикл устройств. Всё это позволяет значительно менять систему, плюя на обратную совместимость. Та же история повторялась двукратно с повышением разрядности. Уход от windows 98 произошёл под свист больших дисков, Линукс поднялся с появлением интернета за пределами пыльных бункеров.

              Так вот, внедрение квантовых вычислителей, — это очередной слом парадигмы, который единовременно заставит многих покупать новые железки, как минимум, ускорители. И брать, прежде всего, будет бизнес, самая консервативная и денежная часть. Естественно, это будет болезненный переход, но его, как и переход с 16 на 32 бита, смогут игнорировать только самые особенные.
              И этот слом — не причина — всего лишь возможность подготовить и раскрутить новую ОС «с чистого листа». В такой момент ты не выхватываешь по 1-2 любопытных пользователя в сети, упуская столько же из-за «нету игор». Ты сразу снимаешь пласт клиентов, в том числе, очень богатых.

              Прямо сейчас нечто подобное наблюдается в IoT. Полноценное ядро никсов слишком тяжелое, так что появляется множество новых ОС «с нуля», из которых парочка, возможно, станет основными в этой сфере через несколько лет.


              1. kogemrka
                04.09.2017 12:00
                +2

                Естественно, это будет болезненный переход, но его, как и переход с 16 на 32 бита, смогут игнорировать только самые особенные.


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

                Это привело к изменениям в архитектуре ОС? Нет.
                Это привело к изменению в интерфейсах? Нет.

                И логично, что не привело. С чего бы?

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

                но его, как и переход с 16 на 32 бита, смогут игнорировать только самые особенные.


                Тем временем переход 32->64 с точки зрения, обсуждаемой в статье, ничего нового не привнёс (хотя, естественно, на данный момент все игроки этот переход уже поддержали — и производители железа и разработчики ос)


                1. iCpu
                  04.09.2017 13:37
                  +1

                  Собственно, последние несколько лет прямо на наших глазах бизнес столкнулся с появлением вычислений на ГПУ, благополучно ровно для тех же самых задач их освоил и много-много (в совокупности) в это денег вложил.
                  Условно, это новый рынок и новый вид деятельности. Как VR, его появление не уничтожает привычные мониторы. А нужен слом старого рынка и уничтожение предыдущего уклада.
                  Переход на 32 бита был сломом, на 64 — нет. 32-битные системы не потеряли актуальности даже спустя 12 лет после появления AMD64. А 16-битные уже к 80-м исчерпали возможности экстенсивного роста за счёт разрядности и пошли на страничные хитрости. То же с автомобилями — они сломили существовавший рынок гужевого транспорта, в то время как поезда осваивали новый рынок и не были прямыми конкурентами лошадей.
                  Квантовые процессоры ломают старую криптографию. А нейросети и бигдата осваивают новые рынки и дополняют старые добрые конечные автоматы и базы данных.

                  Как-то так.


                  1. kogemrka
                    04.09.2017 13:57
                    +1

                    Квантовые процессоры ломают старую криптографию.

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

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

                    AMD64. А 16-битные уже к 80-м исчерпали возможности экстенсивного роста за счёт разрядности и пошли на страничные хитрости.


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

                    А нейросети и бигдата осваивают новые рынки и дополняют старые добрые конечные автоматы и базы данных.


                    Можете объяснить, какую мысль в контексте нашего разговора вы пытаетесь этой фразой сказать?

                    Конечные автоматы и базы данных вообще тут причём?

                    Условно, это новый рынок и новый вид деятельности. Как VR, его появление не уничтожает привычные мониторы. А нужен слом старого рынка и уничтожение предыдущего уклада.


                    Перессказываю своё предыдущее сообщение:
                    По-моему мнению для конечного пользователя появление и распространение ускорителя в виде квантового вычислителя эквивалентно появлению и распространению вычислений на GPU.

                    Я понимаю, что вы, судя по всему, не согласны и видите какую-то разницу — и я прошу вас объяснить, в чём же она, если она, по-вашему, есть?

                    Вместо этого вы пишете «Ну она есть».
                    И проводите примеры случаев, когда она была.

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


                    1. iCpu
                      04.09.2017 20:44

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

                      Конечно, до квантовых компьютеров ещё полно времени, можно подготовиться. Как полагается, всё это время будет успешно просрано.
                      Перессказываю своё предыдущее сообщение:
                      По-моему мнению для конечного пользователя появление и распространение ускорителя в виде квантового вычислителя эквивалентно появлению и распространению вычислений на GPU.
                      Эквивалентно появлению общего однородного стандарта программирования графики на GPU для геймдева. Своего рода DirectX\OpenGL. Их внедрение — новая веха, как только люди втянулись, наработали кодовую и нарастили аппаратную базу — предыдущий этап исчез.
                      С вычислением на GPU не так, далеко не всё можно в него запихнуть, а даже если и запихнул, тебе всё равно нужен мощный процессор для обслуживания передачи данных.


                      1. qw1
                        04.09.2017 22:32

                        А так же все приложения, в которые OpenSSL прилинкован статически или использовались другие библиотеки. И всё оборудование с аппаратной реализацией этих алгоритмов. Банально, ваш роутер с его WiFi и встроенным VPN.
                        Криптография обычным людям нафиг не нужна. Сколько все сидели на http и не парились? Аналогично с VPN — главное, туннель есть, и хорошо. А то, что злой дядька может подсмотреть — да пусть смотрит, будет выпендриваться и троллить, напишем на него заявление за несанкционированный доступ.
                        вычислением на GPU не так, далеко не всё можно в него запихнуть
                        Как будто с гипотетическими квантовыми вычислениями будет по-другому.

                        Ведь что такое GPU?
                        Массив процессоров, у каждого из которых есть приличное кол-во локальной памяти + глобальная память.

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

                        Почему не сделали?
                        Да лень всё переписывать.

                        Так почему квантовые ускорители должно пойти по другому пути?


                        1. iCpu
                          05.09.2017 05:04

                          Криптография обычным людям нафиг не нужна.
                          Ты это своей банковской карточке скажи и личному кабинету на госуслугах.
                          Так почему квантовые ускорители должно пойти по другому пути?
                          Не должны. Могут. Я уже в 4-й раз пишу: этот переход можно использовать для проталкивания своего продукта. Это может быть Windows Quantum, Ubuntu Superpos или qw1's Singularity. А может и не быть, если лень.


                          1. qw1
                            05.09.2017 07:42

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


                            1. iCpu
                              05.09.2017 08:09
                              +1

                              Переход возможен, если он удовлетворяет какие-то потребности.
                              Технические, в том числе. Например, выход очередного DirectX только на новой версии ОС.
                              Чтобы завоевать десктоп (или перезавоевать уже завоёванный мобайл), нужно принципиально менять пользовательский опыт
                              Согласен. Не спорю ни капли!
                              Но это если текущий король не подсуетится и не скопирует ключевые идеи себе.
                              Для этого и нужен резкий переход — все оказываются в примерно равном положении. Каждый предполагает что-то своё и ни у кого нет готового решения.


                          1. kogemrka
                            05.09.2017 09:14
                            +1

                            Это может быть Windows Quantum, Ubuntu Superpos или qw1's Singularity.


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

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

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

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


                      1. kogemrka
                        05.09.2017 09:03

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

                        Вы сейчас говорите: «с вычислением GPU не так, потому что они очень СПЕЦИФИЧНЫЕ. И нужен CPU, чтобы делать общие вещи, а когда нужно данные в этот самый ваш GPU отправлять, управлять им, загружать обратно».
                        Так вот ввантовые компьютеры — немного более специфичная штука, чем GPU.


                      1. kogemrka
                        05.09.2017 09:25

                        А так же все приложения, в которые OpenSSL прилинкован статически или использовались другие библиотеки. И всё оборудование с аппаратной реализацией этих алгоритмов. Банально, ваш роутер с его WiFi и встроенным VPN.


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

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

                        Ок, выпустит новый роутер с обновлённым openssl с постквантовой криптографией в нём.

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


                        1. iCpu
                          07.09.2017 08:59

                          Отвечу на всё сразу.
                          Интерфейс неразрывно связан с остальной логикой ОС. И связан на самом низком уровне. Либо так, либо у вас вырастают 50 слоёв-обёрток, на которые так же жаловался автор. В Qt, например, собственная отрисовка, которая может выполняться на OpenGL или на GDI+, сделана не из желания добавить новый уровень абстракции, а из необходимости планировать над всеми API.
                          Даже если вы сделаете какой-нибудь сверхкрасивый и удобный набор формочек аля .Net, многие приложения нельзя будет перевести на ваш API, потому что вот тут вот он работает не так, как у нас. Далеко ходить не надо, переход WinXP->Win7 сломал половину диалогов из-за разницы в возвращаемых размерах окон.

                          Для всех ОС есть десятки кастомных ланчеров и прочих приблуд для усовершенствования интерфейса. Ряд ланчеров под WinXP делал её куда красивее, элегантнее и мощнее современной Win10 по цене старого запорожца. Но почему-то они не пользовались и не пользуются популярностью у народа. Почему бы это?

                          Что касается квантовых компьютеров/сопроцессоров/PCI-расширений/USB-карточек, вы почему-то решили, что я пророчествую «смерть windows в 2027 году». Чушь!
                          Я написал, что с выходом массовых квантовых систем для многих категорий их использование будет шагом вынужденным, а вслед за этим будет вынужденное использование тех ОС, которые поддерживают квантовые устройства на должном уровне.
                          Если вы хотите написать новую лучшую ОС и захватить рынок, то стоит заранее подготовить место под квантовые вычислители в системе и изучить возможность их использования. Сделать ставку уже сейчас, добавив квантовый язык и эмулятор глубоко в ядро системы. Просто потому, что уже сейчас вы привлечёте гиков-исследователей, а с выходом этих устройств на массовый рынок эффективная утилизация кубитов будет существенным преимуществом, и простое заявление «у нас Vulkan API работает быстрее всего, Wine не лагает, красивые окошки и гребёнки, а ещё мы можем в кубиты, отчего наш ИИ стал очень умным и даже может пофлиртовать с вами» звучит очень сильно на волне хайпа.

                          Из этого не следует, что новый интерфейс появится с новой версией OpenSSL или с квантовыми процессорами. Из этого следует, что с их выходом можно популяризировать новую ОС, в которой будет новый удобный и красивый подход к UI. Который на этой волне может быть подхвачен другими разработчиками и встроен, в том числе, в роутеры.


        1. ozonar
          04.09.2017 10:51

          B можно будет запустить MS-DOS приложение на квантовом компьютере. Лепота.


          1. Goodkat
            04.09.2017 20:38

            DOSBox загрузит и квантовый проц на 100%


      1. Lsh
        04.09.2017 14:59

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

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

        Квантовый текстовый редактор, на квантовом электроне, который пишет одновременно код с багами и код без? =)


      1. MrPeterLink
        07.09.2017 07:53

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


        1. DrPass
          07.09.2017 10:04
          +1

          Я, например, вряд ли нашел бы для себя настолько полезные функции в Windows 7-10, ради которых был бы готов пожертвовать скоростью работы Windows XP на том же железе. Я мигрировал исключительно из-за отсутствия драйверов и несовместимости прикладного софта. И, полагаю, таких пользователей как я, которые обновили ОС вынужденно, а не из-под палки, очень и очень много.


  1. andy_p
    03.09.2017 12:20
    +13

    X Windows? Всю жизнь было X Window.


  1. r-moiseev
    03.09.2017 12:41
    +8

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

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


    Все хотелки автора требуют этих самых слоев на уровне ОС.


    Я не могу приказать своему пк выполнить что-то голосом

    Но это не точно


    1. Lsh
      04.09.2017 15:07

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

      Особо ничего сложного и страшного. И всё уже придумано. ЕМНИП, для Compiz'а был раньше такой плагин, только протух, т.к. особо никому не надо объединять мультик про поней с vim. Ну и автор не стал его поддерживать. Что же он, если ему так надо? А ещё, помнится, в kwin было такое оформление окон, как в BeOS.
      Хотя некоторая польза от статьи есть. Иногда таки надо перетряхивать старое и изобретать новое. Только у него примеры какие-то странные, не очень удачные. Просто не осилил нагуглить то, что ему требовалось.


  1. Alex_ME
    03.09.2017 12:44
    +4

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


    Про абстракции. Все сложно. С одной стороны, действительно, когда я смотрю, сколько ресурсов потребляет то или иное приложение, становится грустно. Зачастую потребление ресурсов увеличилось в сотни раз, но вырос ли в сотни раз функционал и юзабилити? С другой стороны, все понимают, что абстракции необходимы для сокращения сложности разработки. Мало кто пойдет разрабатывать десктоп-приложение на C и чистом WinAPI с его ручным созданием компонентов при помощи CreateWindowEx. Мало кто будет писать крупное веб-приложение на C и CGI.


    C и CGI

    Однажды я писал простое веб-приложение на C и CGI. Это был Atmel AT91SAM, 4 (?) Мб флеша, в которые влезло ядро, busybox и libc. libc++ уже нет. И бд в текстовых файлах. Это было… весело.


    1. Kobalt_x
      03.09.2017 14:11

      Из браузера в msvs можно было бы запилите. в msvs же есть web-браузер


      1. Alex_ME
        03.09.2017 14:15
        +2

        Действительно. Но все-равно, мне кажется, это какой-то очень натянутый фич-реквест у автора.


    1. DrZlodberg
      03.09.2017 17:26
      +1

      На самом деле перенести вкладку при некоторой поддержке приложением не было проблемой и лет 20 назад. Было в win (ещё 3.каких-то) СОМ, до него OLE, до него DDE (если не изменяет память). Позволяло внедрять кусок чужого приложения выделяя ему память и место на экране для отрисовки. Вот только нафига? Ну в документе это ещё имело смысл (до тех пор, пока у всех, кто работал с ним имелись все необходимые приложения), а вкладка зачем? На маке, где общее меню приложения вынесено на рабочий стол вообще проблем никаких по логике (не знаком с ними изнутри). Слепи несколько окон приложений в одно — они и не заметят.

      А вот с абстракциями, imho, действительно перебор адовый по большей части. Поскольку новые абстракции часто растут на перегное из старых. В итоге с годами получаем охренительной высоты матрёшку, в которой верхние слои уже даже не помнят, за чем там (и что они вообще есть) нижние. Тот же вынапи элементарно оборачивается минимальным синтаксическим сахаром и без проблем используется. Для совсем ленивых есть возможность работать с диалогами, загружаемыми из ресурсов, где этот сахар уже частично присутствует. Но все любят абстракции…


      1. sumanai
        03.09.2017 18:21

        Поскольку новые абстракции часто растут на перегное из старых.

        Вот тут полностью согласен. Почему тот же UWP работает поверх WinAPI, когда есть поддержка подсистем на нативном ядре?


      1. Goodkat
        04.09.2017 21:07

        Плюс за COM, OLE и DDE — тоже хотел о них написать.

        В итоге с годами получаем охренительной высоты матрёшку, в которой верхние слои уже даже не помнят, за чем там (и что они вообще есть) нижние. Тот же вынапи элементарно оборачивается минимальным синтаксическим сахаром и без проблем используется
        Не одним же вынапи…
        Вот задумали вы сделать для себя небольшое приложение, но обязательно кроссплатформенное, просто потому что у вас на компе генту, у жены макбук, а на планшете пусть будет винда-10.
        Как же сделать это без невыносимых страданий и без кучи слоёв абстракций?

        Ну и пример моей ежедневной рутины: на макбуке запускаю VMWare Horizon Client, чтобы подключиться к корпоративному серверу, в котором эмулируется машина с Windows 7, в котором я через Vagrant запускаю в headless режиме Virtual Box с Ubuntu, в котором у меня крутится контейнер docker, в котором выполняются в интерпретаторе скрипты на PHP, которые через библиотеку webdriver загружают в PhantomJS сайты, которые что-то там делают на JavaScript.


        1. DrPass
          05.09.2017 02:04

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

          Фишка в том, что мне на самом деле не нужно кроссплатформенное приложение. Мне будет с головой достаточно переносимости кода. Чтобы я раз написал, и потом пересобрал под все три платформы, возможно, с минимальными изменениями. И я прекрасно знаю, что при минимальном и достаточном подходе для этого не нужно городить гипер-сложные уровни абстракций. И различные API в общем, и GUI в частности во всех трех системах вполне приводятся к общему знаменателю одной прослойкой, а не стеком из десяти. Просто… развитие пошло в другую сторону. Кроссплатформенность сейчас во многих случаях — это написать что-то на JS и всунуть в какой-то аналог WebView на целевой платформе. Ну т.е. вся та навороченная система со всеми её API используется просто для запуска браузера. А тот пусть отдувается за всех, с помощью своей тормознутой DOM и скриптового движка.


        1. DrZlodberg
          05.09.2017 13:00

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


    1. Lsh
      04.09.2017 15:14

      Практически все современные ОС имеют архитектуру 40-летней давности. Не то, чтобы это как-нибудь влияло на нашу жизнь.

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

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


      1. Busla
        05.09.2017 10:48

        В этом плане мне нравятся подвижки MS в сторону «Metro» — можно устанавливать и запускать приложения Васи Пупкина без опасений, что оно перешлёт весь мой HDD этому Васе.
        Лишь бы не стало как с Android, когда каждое второе приложение требует все основные разрешения.


  1. majorius
    03.09.2017 12:49
    +13

    Боюсь что все дороги ведут к этой картинке:
    image


  1. Antelle
    03.09.2017 12:56
    +3

    > A message bus will be the only kind of IPC. We get rid of sockets, files, pipes, ioctrls, shared memory, semaphores, and everything else. All communication is through a message bus

    double_facepalm.jpg
    Зачётный наброс. Удачки автору.
    Ой, этого в переводе кажется нет, обещается в следующей статье. Вот она будет вкусной, очень вкусной. Почитайте оригинал, чтобы поржать, там ещё много «интересных» мыслей.


  1. aik
    03.09.2017 13:14
    +11

    Atom — один из самых популярных текстовых редакторов на сегодня.

    Среди кого популярен? Как он смог стать популярным, если не мог открывать файлы размеров в два мегабайта?

    И между прочим, Windows может всё ещё запускать приложения из 90ых.

    Можно подумать, это плохо. Наоборот, пропадание совместимости вынуждает строить костыли. Я тут напоролся на то, что одна программка 92 года на х64 не запускалась. Пришлось виртуалку с 32хбитной виндой поднимать.

    Консоль Windows — CMD.exe, позволяющая запускать программы DOS

    Чего-чего?

    X Windows

    X Window

    А всё остальное — глас вопиющего. Будет как в том комиксе xkcd про стандарты.


    1. devalone
      03.09.2017 23:15
      +2

      Среди кого популярен? Как он смог стать популярным, если не мог открывать файлы размеров в два мегабайта?

      Просто автор статьи им пользуется и считает, что и все остальные тоже)


    1. batyrmastyr
      05.09.2017 09:37
      +1

      Среди кого популярен?

      Среди мазохистов, разумеется.
      Его и правда эдакой заменой саблайма пытались выставить, даже на хабре несколько статей пробегало, но у меня (Core i5, 8 Гб оперативки, на тот момент LMDE) он за минуту даже окошко с пустым документом не смог отобразить. Пробовал несколько версий, на случай если самую свежую случайно сломали.


      1. aik
        05.09.2017 10:29
        +2

        Мне оказалось достаточно слов про то, что он «написан с использованием веб-технологий», чтобы даже не пытаться установить.
        Я уж лучше по старинке vim продолжу использовать.


        1. DrPass
          05.09.2017 11:31
          +1

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

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


  1. potan
    03.09.2017 13:23
    +2

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


    1. KoCMoHaBT61
      03.09.2017 17:59
      +1

      Лучше не надо.
      Лучше не надо подключать учёных к инженерным дисциплинам. К дисциплинам, а не решениям инженерных проблем — тут они короли и боги. Но, сцуко, как только требуется реальное решение, то лучше пригласить инженера-программиста, а ещё лучше — слесаря по компьютерам.


      1. potan
        04.09.2017 11:43
        +1

        Тогда будет как сейчас. Раз-два и в продакшен.


    1. michael_vostrikov
      03.09.2017 18:16

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


      1. potan
        04.09.2017 11:45

        Пока дорого и непродуктивно поддерживать легаси код.


        1. michael_vostrikov
          04.09.2017 13:58

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


  1. lxsmkv
    03.09.2017 13:30
    +1

    Про отсутствие виртуальных папок я тоже постоянно удивляюсь. Так же теггирование всех ресурсов, локальных, сетевых, и веб, чтобы потом, по тэгу, можно было быстро найти всю релевантную информацию (успех твиттера не в 140 знаках, а в парадигме хештега)
    А чтобы теггирование работало на уровне веб ресурсов, можно завязать это на использование непопулярного интернет-эксплорера (майкрософт, алё, тут деньги валяются, подбираем) Письменные аннотации они ведь прикрутили.
    Хотя недавно нарыл интересную программку tabbles.net — она вроде закрывает этот пробел. Но интеграция в системе работает через плагины, а не нативно, вот в чем дело.


    1. Am0ralist
      03.09.2017 14:57
      +1

      Хотя недавно нарыл интересную программку tabbles.net — она вроде закрывает этот пробел.
      Что-то посмотрел я на их видео и эм… нифига не понял, как этим вообще можно пользоваться толком.
      Например, у меня есть 14к файлов, которым нужно разобрать и проставить кучу тегов разных группировок (имя автора по англ и русски, название модели так же в двух вариантах, в каком издании было опубликовано, на каких страницах, дополнительные теги в духе животное, медведь и прочие уточняющие, год модельки, субъективная оценка). То есть это в итоге выльется в соточку тысяч тегов нескольких уровней группировки для того, что бы стало действительно возможно искать более менее «нечетко» файл. Пример — реальный.

      Это как одна из прог, которая делала облако тегов. Все было классно, пока тегов не столо около сотни и оказалось, что это облако нельзя прокрутить. Так и тут, судя по видосикам — лайт версия какая-то.
      Это не говоря уже о том, что теги привязывать надо к хешу файла и его имени, а так же пускать службу отслеживания изменений в фс в нужных папках, дабы переименования, перемещения и изменения файла отслеживать самостоятельно (tag2find так умел, хотя не без ошибок связанных с тем, что при перемещении папки в папку в винде не создаются события перемещения вложенных в нее файлов), а не как в видео про тотал коммандер перемещать только внедренными в контекстное меню командами…

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


      1. lxsmkv
        03.09.2017 15:27

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


        1. Am0ralist
          03.09.2017 15:45

          Я подозреваю, что проблема в том, как сами авторы используют свой функционал, если вообще используют.


  1. Marwin
    03.09.2017 13:39
    +6

    1) Рынок. Если приложение разрабатывается за деньги, никто не будет тратить х10 денег и х10 времени на разработку приложения в нативе гуру программистами, если можно нанять пару студентов (ну условно), сделающих это на фреймворках. Мы живем в эпоху копроэкономики, и с тех пор, как бизнес плотно зашел в компьютеры — эти подходы распространились и в IT. Это самый эффективный способ получения дохода на сегодняшний день, и пока не придумали чего-то лучше — спекулировать о высокой морали и красивом коде бесполезно.
    2) Железо перестало развиваться функционально. Конец эпохи пентиума 4 и выход Core поколения был последним значимым этапом развития десктопного железа. Дальше улучшались только видеокарты для игроманов и 3D дизайнеров. С тех пор для среднего пользователя компьютер не улучшается принципиально, а значит и нет смысла апгрейда ни железа, ни софта, который бы не тормозил/был на порядки функциональнее за счет нового железа.
    3) С тех пор как компьютеры зашли в бизнес – операционным системам предъявляются совершенно иные требования к сохранению совместимости. Софт, написанный и 10 лет назад ДОЛЖЕН РАБОТАТЬ. Это не мобила, которую можно выкинуть и купить новую на новой платформе и не заметить разницы, так как базовая функция смс и звонков встроена в саму ОС и как работала, так и работает.
    4) И тут мы плавно подходим к вопросу: как отвязать софт от ОС? На данный момент выход только один – абстракции и еще раз абстракции. Кто бы что ни говорил, но в текущем положении у МС нет другого выхода – ей необходимо отвязывать новый софт от легаси WinApi и единственный выход – .net фреймворк везде и для всего. Проект Singularity был прекрасен, но слишком преждевременен. Он обязательно зайдет, но только лет через 10-15, когда и весь софт будет на фреймворке, и МС наконец-то сможет прозрачно подменить ОС на новую, просто обновив слой абстракции фреймворка, а весь софт останется рабочим. В историю с эмулятором по аналогии с МакОсью я не верю, у неё было совсем другое положение, доля рынка и почти полное отсутствие корпоративного костыльного софта, который, каким бы хорошим ни был эмулятор, не факт, что работал бы.


    1. sand14
      03.09.2017 16:29

      Кто бы что ни говорил, но в текущем положении у МС нет другого выхода – ей необходимо отвязывать новый софт от легаси WinApi и единственный выход – .net фреймворк везде и для всего.

      Одна только проблема — .NET Framework уже сам во многом, особенно в части BCL/FCL, разработанной на ранних этапах — уже легаси.
      Поэтому появление .NET Core неслучайно.
      То же самое в Java, только там легаси еще и JVM, т.к., в отличие от CLR, JVM не менялась в угоду совместимости.


      1. Marwin
        03.09.2017 16:40
        +4

        ну, первый блин комом )) Фактически, хоть МС и заявляли мультиплатформенность для изначального фреймворка, по факту нигде кроме винды он не работал, банально из-за отсутствия официальной стратегии развития. С core/standard же всё стало по-человечески )) Так что должно зайти надолго, и может быть таки выполнит своё изначальное предназначение. Я очень воодушевился, когда смог запустить один и тот же mvc сайт на всех трех платформах (вин, лин, мак), а после безболезненного перекомпила даже на arm. За этим будущее и возможность начать отход от легаси и привязки к архитектуре железа.


        1. DistortNeo
          03.09.2017 16:50

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

          Поэтому Microsoft постепенно ослабляла гайки. Сначала сделала бесплатную MSVS Community для некоммерческих разработок, но она была настолько ограниченной, что даже для учебных проектов я предпочитал крякнутую студию. Затем Comminity стала полнофункциональной — уже лучше. Ну а сейчас MSVS Comminity официальна разрешена даже для коммерческой разработки.


        1. Busla
          05.09.2017 11:05

          Тем не менее, с некоторой степенью геммороя можно было сделать общий экзешник и для десктопа и для PocketPC.
          Только оказалось не нужно никому.


    1. maxpsyhos
      04.09.2017 10:58
      +1

      Мы живем в эпоху копроэкономики, и с тех пор, как бизнес плотно зашел в компьютеры — эти подходы распространились и в IT.
      Ну ладно, злобный Лорд Бизнес производит говно. А лично вы как потребитель готовы потратить х10 денег и подождать х10 времени на новую серию вашей любимой игры или на обновление вашего рабочего софта?


      1. Marwin
        04.09.2017 11:23

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


        1. michael_vostrikov
          04.09.2017 19:04
          +1

          Приставка в слове «копроэкономика» подразумевает негатив. Вы же не сказали просто «экономика».


  1. egobrain
    03.09.2017 13:54
    +3

    Почему Я могу присоединять и отсоединять вкладки внутри моего браузера или файлового менеджера, но не могу сделать то же самое между 2мя разными приложениями?

    Такая фишка была в KDE4 — Tabbed Windows,
    но она оказалась не сильно востребована и как следствие пока не портирована в plasma 5 (хотя она есть в листе ожидания)


    Почему Я не могу положить файл одновременно в два места моей файловой системы?

    в linux вполне можно делать hard links


    Почему Я не могу отсортировать файлы по тэгу или метаданным?

    в том же kde можно


    1. chersanya
      03.09.2017 14:26

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


    1. Taciturn
      03.09.2017 15:07
      +6

      в linux вполне можно делать hard links

      И в macOS можно, и в Windows можно. А где нельзя?


      1. DistortNeo
        03.09.2017 15:41

        Наверное, имелась в виду сложность создания хардлинков в виде отсутствия удобного интерфейса.


    1. Am0ralist
      03.09.2017 15:34

      в linux вполне можно делать hard links
      Вы так говорите, как будто в той же винде этого еще с висты нельзя было сделать ни харлинки, ни симлинки.
      Вот только хардлинки — существуют только внутри одного раздела и только для файлов, а симлинки — умирают от простого переименования файла/папки. Что ограничивает.
      в том же kde можно
      ну вот mp3 файлы в винде так же можно по тегам сортировать (например, по названию альбома, песни или исполнителя — если они в тегах прописаны). Но вот большинство форматов файлов по умолчанию теги не содержит, что печально. Почему только вопрос у автора к ОС, а не форматосоздателям — непонятно.


      1. shoorick
        03.09.2017 22:06

        Даже не с висты, а ещё раньше. Когда там NTFS появилась? В Win2K?


        1. sumanai
          03.09.2017 22:09

          Симлинки появились с висты, впрочем, для XP есть стороннее исправление.


        1. Am0ralist
          03.09.2017 22:18
          -1

          Да, не корректно написал. Возможность делать харды с появления самой нтфс в винде, а симлинки с висты, начиная с которой их стала активно юзать и сама ОС.


      1. Lsh
        04.09.2017 15:25
        +1

        Но вот большинство форматов файлов по умолчанию теги не содержит, что печально.

        Видимо автор предлагает это делать на уровне ФС. Только тогда не понятно, как файлы потом нормально переносить. Получится что-то вроде macOS с .DS_Store (или как он там называется?).


  1. slayerhabr
    03.09.2017 14:07
    -1

    > Мой новый Razer-ноутбук имеет RGB-подсветку под каждой клавишей
    всем срочно выкидывать другие ноутбуки и покупать «как у Вас»


  1. odyvan
    03.09.2017 14:59

    Мы в 2017 – унификация, облака, кластеры и post-pc эпоха, объявленная Джобсом.
    Весь пост – грусть печаль по поводу развития X Windows :)

    Я за последние 20 лет заметил, все не-унифицированные решения не имеют поддержки в дальнейшем. Мигания лампочек отличный тому пример. Если он не стандартизирован, он работать не будет. И на мой взгляд это не плохо. Лапочки и многое другое, что не повторяется в дальнейшем и не стандартизируется и не воспроизводится – ужимки и прыжки маркетологов к сожалению.

    В вашем примере часы получают уведомления со всей экосистемы apple, подключение к компьютеру избыточно. Я помню массу примеров – обмен файлов по bluetooth, смартфон как флешкарта, встроенная память/аккумулятор, обязательная синхронизация с ПК и тд. Если технология не воспроизводится, она не нужна, для меня это статистика.
    AR рынок только начал развиваться, в post-pc все новые технологии появляются в первую очередь на мобильных устройствах, фреймворки для apple/android только вышли. Ну тут и windows с AR не тормозит :-) Вы можете / могли жестами управлять системой последние лет 5-10, все технологии были, но почему-то не стали. :-) Я думаю потому, что это неудобно на данном этапе.

    На мой взгляд вопрос управления окошками делится на 2 направления — 1) что удобно всем (и тут лаборатории UX с трекингом глаз и тд 2) максимально возможная настройка под себя. Сейчас и ранее доступны оба варианта.

    В любой современной системе вы можете положить файл в 2 места организовав ссылку в файловой системе. Сортировка по тегам и метаданным скорее всего доступна в любых ОС (хз что там с виндоус, теги исчезли со времен windows vista).

    Скорее всего для wayland / osx обозначенные проблемы не являются приоритетными, как вы заметили.
    cmd заменила по большей части powershell в 2012 или раньше. Подсистема unix была из коробки еще раньше.
    Катастрофа, когда я не могу использовать сенсорный дисплей в osx :) Экран и так грязный, а кнопки в плеере нажить пальцем было бы удобно. И все в таком духе. На мой взгляд проблема сенсоров в windows — отсутствие поддержки от вендоров и общая не развитость рынка, но никак не косяк со стороны MS. Если поддержки сенсоров нет, не важно как работа в ОС организована, в osх например никак от слова вообще.

    Просто взаимодействие с десктопной ОС на мой взгляд ни для кого не является приоритетом сейчас, от пользователя до разработчика, я в смартфоне времени больше провожу чем за ноутбуком.

    Инновации в десктоп отправили на кладбище вместе с десктопом.


    1. vorphalack
      04.09.2017 03:16

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


  1. Keyten
    03.09.2017 15:28
    +1

    Почему Я не могу положить файл одновременно в два места моей файловой системы?

    Можете. Почитайте про мягкие и жёсткие ссылки

    Ну а в целом — мне кажется направление мыслей автора верным.


  1. SirEdvin
    03.09.2017 16:19
    +4

    Инновации в десктопных операционных системах в общем и целом отправлены на кладбище.

    Ну, эм… как насчет, cgroups? Даже в Windows пришлось запилить что-то подобное из-за популярности docker, как я понимаю.
    А еще, например, overlayfs.


    Вы сейчас скажите, что "ну, это же не для пользователей, оно им ничего не дает", но:


    1. Зато теперь появляются дистрибутивы, которые используют эти технологии для того, что бы разделать рабочие пространства с точки зрения безопасности в том числе.
    2. Такие штуки могут помочь выкинуть legacy шлак, который можно будет просто оборачивать в эти настройки.

    Почему Я могу присоединять и отсоединять вкладки внутри моего браузера или файлового менеджера, но не могу сделать то же самое между 2мя разными приложениями?

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


    Почему Я не могу положить файл одновременно в два места моей файловой системы? Почему она обязана быть иерархичной? Почему Я не могу отсортировать файлы по тэгу или метаданным? Файловые системы с принципами баз данных существуют десятилетиями.

    Можете. Есть куча штук, в том числе и при помощи fuse.


    В любом веб-приложении можно менять масштаб. Достаточно нажать Ctrl + и текст станет больше. Всё внутри окна автоматически адаптируется к масштабу. Почему этого не умеют нативные приложения? Почему Я не могу иметь на экране две области разных размером для окон? Или даже масштабировать их автоматически, когда перемещаюсь между окнами? Все эти вещи просты до безобразия с композитным оконным менеджером, которые были банальностью на протяжении десятилетия.

    Потому что они будут выглядеть как куски шлака, ведь 90% не умеют даже нормально растягиватся. Зачем эта фича, если ей никто не будет пользоватся?


    У моего компьютера есть мышь, клавиатура, датчики наклона, датчики света, 2 камеры, 3 микрофона и масса bluetooth-аксессуаров, но только первые 2 используются как основные устройства ввода. Почему Я не могу приказать своему пк выполнить что-то голосом или жестами?

    Можете. Cortana есть, например. Siri и даже под Linux есть куча поделок.


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

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


    Почему компьютер не использует ничего для вывода кроме дисплея? Мой новый Razer-ноутбук имеет RGB-подсветку под каждой клавишей и единственная их функциональность — переливание цветными волнами! Как насчёт использовать эти LED для чего-то реально полезного?

    Потому что это есть у 1% рынка? Кто будет под такое разрабатывать?


  1. TargetSan
    03.09.2017 16:45
    +4

    Как по мне, представленная статья — таки нытьё. Основная проблема современного десктопа — ОС представляет собой не набор компонентов, которые можно изолировать, раздавать им права и управлять связями и зависимостями, а огромный, простите, сельский сортир, в любое место которого может нагадить любой процесс. Утрирую конечно. Я, кстати, не понимаю, почему сэндбоксинг всех приложений, включая создание для каждого CoW виртуального окружения, не вкручен прямо в ОС. Это позволило бы, к примеру, запускать древнючий легаси без толстенной абстракции виртуальной машины — просто подсунув в процесс слой легаси-библиотек.


    1. DistortNeo
      03.09.2017 16:58

      И что в этом случае предлагаете делать с драйверами?


      1. TargetSan
        03.09.2017 17:04
        -1

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


    1. qw1
      03.09.2017 17:07

      Сэндбоксинг каждого процесса капитально порушит совместимость.
      Тут дело даже не в буфере обмена и не в снятии скриншотов.

      Начиная с банального Notepad++, которым кто-то привык редактировать C:\Windows\System32\drivers\etc\hosts, до программ, которые хотят влезть в адресное пространство каждого процесса (Punto Switcher, TortoiseGit).

      А есть ещё софт, написанный студентами на коленке, представленный как набор exe-файлов, которые вместе выполняют общую задачу. Конечно, можно их запихать в одну песочницу, но кто это будет настраивать? Юзер просто скажет: ой, мой привычный софт не работает в Windows 12, не буду её ставить.


      1. DrZlodberg
        03.09.2017 17:38
        -1

        Дла Notepad и ему подобного софта, который лазит по всей системе можно просто песочницу отключить, а для остальных границами песочницы считать каталог программы и ниже. В большинстве своём нормальные программы сидят в пределах одного каталога и будут объединены автоматом. Тем более, что довольно много программ на самом деле имею сильно больше одного exe. На край можно в комплекте давать скрипт, который при запуске объединит их в одну коробку. Софтины вроде VC, которые свои куски рассеивают тонким слоем по всему диску… ну тут кое-кому придётся немного подумать.

        Остаётся, правда, вопрос нормального расшаривания между песочницами каталогов с юзерскими файлами. Тут уже немного сложнее будет.


        1. Alex_ME
          04.09.2017 02:58

          Софтины вроде VC, которые свои куски рассеивают тонким слоем по всему диску

          Должны умереть (нет, я люблю VS). Я как-то думал о проблеме песочницы, dependency-hell и софта, который лезет куда не надо.


          Если очень кратко, идея такова:


          1. Любой софт устанавливается в целиком в одну свою папку (по-умолчанию или куда укажет пользователь), не растееаясь по Common Files, AppData или же bin, vsr, etc и пр.
          2. Каждый софт имеет манифест об экспортииуемых возможностях (напр. библиотека) и зависимостях.
          3. ОС ведет реестр софта, кто где и кому что надо. При удалении/перемещении и повторном запуске ссылки обновляются
          4. На основе реестра ОС удовлетворяет зависимости (с точности до версии, не меньше и пр) софта


          1. vorphalack
            04.09.2017 03:19

            кажется это все уже было/есть в маке, мб кроме версионирования софта.


            1. Alex_ME
              04.09.2017 03:30

              Разве mac не устанавливает софт как unix по куче каталогов? Хотя мой опыт с маком скромен.


              1. vorphalack
                04.09.2017 03:32
                +1

                стандарт — это перетащить Program.app из архива или dmg-образа в /Applications/

                но большой софт как только не ставится… (а потом еще и не всегда вычищается при удалении полностью)


                1. Alex_ME
                  04.09.2017 03:37

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


                  а потом еще и не всегда вычищается при удалении полностью

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


                  1. vorphalack
                    04.09.2017 03:54

                    нет, физический.
                    вообще там забавно, «приложение» — это на самом деле папка с кучей всего. реально запускаемый бинарник — это Somename.app/Contents/MacOS/somename
                    а ресурсы идут в других подкаталогах рядом, там вообще стандартный подход «всё свое ношу с собой»

                    (кстати, есть даже покусанный таким образом дистрибутив — GoboLinux. )
                    ===
                    лечение есть — пакетный манагер с зависимостями, но это снижает удобство работы и хороший вопрос что делать с 3rd party/без репозиториев.


          1. DrZlodberg
            04.09.2017 08:55

            П.1 не всегда возможен. Как минимум стоит отделить программу и её данные, часто привязанные к юзеру и обычно (условно) не видимые ему (в вынде живут в ProgammData, в лине — в скрытых каталогах у юзера). И которые программы при удалении часто оставляют (и их, внезапно, бывают гигабайты).
            В остальном да, тоже думаю об этом каждый раз, как приходится вычищать очередную софтину. По возможности же использую портабл версии программ, которые как раз и не требуют установки. Весьма удобно так же, когда систему переустановил, а софт весь на месте и уже настроен.


            1. DjPhoeniX
              04.09.2017 09:22

              На Маке спасает Dr. Cleaner или что-то около него. Следит за тем, куда срут программы (не знаю, как), и, при выпиливании программы из /Applications, предлагает снести «junk files», которые она оставила за собой. К слову, эти места обычно тоже стандартизированы — редко когда какой-то софт лезет дальше, чем ~/Library/Application Support/<appname>.


            1. sumanai
              04.09.2017 17:00

              По возможности же использую портабл версии программ, которые как раз и не требуют установки.

              Этот подход плохо совместим с работой из под обычного пользователя + SRP.


              1. DrZlodberg
                05.09.2017 12:53

                Почему? Принципиальных проблем не вижу. SRP — это песочница?


                1. sumanai
                  05.09.2017 15:45

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


                  1. DrZlodberg
                    05.09.2017 20:20

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


      1. Lsh
        04.09.2017 15:31

        Начиная с банального Notepad++, которым кто-то привык редактировать C:\Windows\System32\drivers\etc\hosts

        Я гений, пыщ-пыщ-пыщ! Ещё в 11 году придумал как решить проблему.
        Надо просто диалог открытия/сохранения вынести из приложения и песочницы:
        habrahabr.ru/post/113143
        Только я так ничего и не накодил. :-p


        1. qw1
          04.09.2017 22:35

          Надеюсь, с 11 года вы открыли секрет, что диалог открытия/сохранения на самом деле ничего не открывает и не сохраняет?

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


          1. Lsh
            04.09.2017 22:37

            Я это и тогда уже знал. ;)


            1. qw1
              05.09.2017 07:43

              Тогда смысл его выносить из песочницы?


              1. Lsh
                05.09.2017 11:25
                +1

                Я по ссылке вроде всё написал. Есть приложение, которое нам надо контролировать. Например, это текстовый процессор, условно Word. Мы изолируем его в песочницу или ограничиваем профилем AppArmor'а. Цель в том, чтобы в случае наличия уязвимости (при открытии специального документа, как вариант), приложение не испортило что-нибудь. С изолированием как таковым проблем нет. Есть LXC, есть SELinux и т.п. Проблема в том, что ограничения статичные. Разрешить доступ к директории «мои документы» на запись и чтение, тогда Word сможет заразить другие документы. Запретить — будет неудобно работать, нужно будет копировать редактируемый документ в некоторую доступную директорию, после правок копировать обратно. Ещё ведь пользователь может вставить флешку и захотеть редактировать документ с флешки. Выход в том, чтобы диалоги открытия и сохранения сделать отдельным привилегированным приложением (далее open-save-dialog), которое будет не только показывать диалог, но и контролировать ограничения Word'а. Оно должно находиться вне песочницы или профиля AppArmor/SELinux, т.к. пользователь может захотеть выбрать любой файл, а изнутри песочницы ничего выбрать нельзя. Когда пользователь нажимает «Файл — Открыть», Word вместо показа собственного диалога, посылает сообщение этому open-save-dialog. Оpen-save-dialog показывает пользователю обычный диалог, пользователь выбирает любой файл вне песочницы/профиля. Затем open-save-dialog разрешает доступ к файлу. Т.е. файл монтируется внутрь песочницы, если Word запущен в LXC. Или в профиль AppArmor добавляется разрешающие правило для доступа к конкретному файлу, если Word работает под ограничивающим профилем. Получается, что пользователь прозрачным для него образом контролирует ограничения Word'а.


                1. batyrmastyr
                  05.09.2017 14:02

                  Такое три или пять лет назад вкрутили в макось. На старте народ ругался, что защита давала доступ к отдельным файлам, но не папкам, потом вроде перестал (то ли начала давать, то ли смирились).


                  1. Lsh
                    05.09.2017 14:48

                    Интересно… Как называется и где почитать?


                    1. batyrmastyr
                      05.09.2017 15:19
                      +1

                      App Sandbox ввели в 10.7, давно это было, однако.
                      developer.apple.com/library/content/documentation/Miscellaneous/Reference/EntitlementKeyReference/Chapters/EnablingAppSandbox.html (раздел Enabling User-Selected File Access).


                      1. Lsh
                        05.09.2017 16:23

                        Спасибо! А как это делается внутри? Т.е. диалоги вынесены в отдельный сервис?


                1. qw1
                  05.09.2017 19:43

                  Затем open-save-dialog разрешает доступ к файлу. Т.е. файл монтируется внутрь песочницы, если Word запущен в LXC
                  Неплохая идея ))


                1. maxpsyhos
                  06.09.2017 07:29

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


  1. michael_vostrikov
    03.09.2017 17:33

    TL;DR: В этой статье Я хочу показать что: ...

    Минус переводчику за местоимение "я" с большой буквы. Даже Google Translate переводит с маленькой.


  1. AlexTest
    03.09.2017 18:14

    Много чего уже давно придумано, System Oberon от дедушки Вирта например. Но почему-то такие проекты не становятся мейнстримом.


    1. michael_vostrikov
      03.09.2017 18:32

      Ну я вот тестил Oberon в универе для лабы. Записал программу на тот же CD. Насколько я помню, была проблема, что на CD все компоненты находятся в одном пространстве имен, и где-то среди них надо было найти файл с моей лабой.
      Кроме того. При загрузке с USB была ошибка, которая вешала всю систему. Через отладочный вывод нашел проблемное место, но из-за недостатка знаний протокола USB полностью не исправил. Добился только, чтобы грузилось когда диск вставлен. Лабу сдал, ну и ладно.
      (риторический вопрос, пожалуй, пропущу :))


  1. NLO
    03.09.2017 18:18

    НЛО прилетело и опубликовало эту надпись здесь


    1. Revertis
      03.09.2017 19:23
      +1

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


      1. NLO
        03.09.2017 21:19

        НЛО прилетело и опубликовало эту надпись здесь


        1. Am0ralist
          03.09.2017 21:40
          +1

          Стоп-стоп-стоп.
          ОС умеют работать с тегами. Открываем в той же винде (у меня уже старенькая вынь 8.1) папку с mp3 и наслаждаемся дополнительными столбцами сортировки с названиями песен, альбомов, исполнителей и прочим, прочим, прочим.
          Только хранится это где? В самом файле!
          Теперь предполагается что? Что ОС будет эти данные дописывать в файл любого формата? А приложения потом не сойдут с ума? Или она их будет хранить отдельно? А как тогда их передавать? По почте, на флешках с другой ФС? Хотя винда давно может это хранить в другом нтфс потоке, например. Вот только опять же, как передавать?

          Вы точно не перепутали положение лошади и телеги местами?
          В современных ОС многие возможности уже давно реализованы. Мяч то давно на стороне разработчиков.


          1. qw1
            03.09.2017 21:53

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

            Этим пользуются, например, Internet Explorer, для отметки откуда скачан файл (потом при запуске загруженного exe появляется предупреждение). А также DC++ клиенты хранят там Merkle Tree, чтобы не перехешировать весь файл при переносе в другое место. Антивирусы тоже что-то пишут.


            1. Am0ralist
              03.09.2017 22:05

              Эту проблему можно считать решенной. Сначала MacOS, потом и Windows в файловой системе позволяют дописывать к файлу любые альтернативные именованные потоки данных.
              О чем я дописал в фразе про другой нтфс поток. Только передача через другие ФС теряет потоки на счет раз. А так же при передаче через FTP или вложив в почту.
              В отличие от тегов, прописанных в самом файле.


              1. qw1
                04.09.2017 01:01

                А нужно ли?
                Если я отправляю отчёт, который у меня лежит в папке «для мудаков» (т.е. имеет такой тег), должен ли получатель его видеть?


                1. Am0ralist
                  04.09.2017 10:58

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


            1. Lsh
              04.09.2017 15:34
              +1

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

              Только макось когда не может записать эти данные начинает гадить всякими левыми файлами вида ._*


          1. DeadKnight
            03.09.2017 22:11

            Ну, HPFS умела работать с метаданными файлов (aka. «extended attributes») еще в далеком 1988 году, если мне не изменяет память.


            1. Am0ralist
              03.09.2017 22:47
              -1

              Передали файл через почту, фтп, флешку с фатом или нтфс — все эти данные сохранились и остались доступны?
              Теги в мп3 или JPG — да. И именно эти теги та же винда видит и отображает в своем проводнике (не могу сказать с какой версии, сейчас старых под рукой — нет). Подозреваю, что и другие смогут легко и не принужденно, если не уже.

              Просто когда еще это было возможно, надо было стандартизировать способ хранения тегов в файлах, чтоб каждая компания при создании своего нового супер-пупер формата хранения информации, без которого пользователи ну никааак не обойдутся (о да, теперь у него появится 19 стандарт хранения графической информации), понимала, что вот в этом месте ОС или какая сторонняя программ пользователя может что-то дописать и не превратить файл в тыкву.


              1. DeadKnight
                03.09.2017 22:59
                +1

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

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

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


                1. Am0ralist
                  03.09.2017 23:22
                  -1

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

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


                  1. DeadKnight
                    03.09.2017 23:41

                    С другой стороны, теги хранимые внутри файла имеют свое ограничение.

                    — Вот формат файла, в котором нет тегов и метаинформации вообще.
                    — А вот, в котором нет тегов, но есть информация об авторе
                    — А здесь есть и настраиваемые теги и автор.
                    — А тут, есть теги и год издания, но нет автора.
                    — и т.д.

                    Итого у нас 1001 формат файлов, и у каждого своя уникальная структура хранения метаинформации, и не везде она совместима для удобной фильтрации и сортировки.

                    Т.е. как не реализуй, но все равно придет такой себе Josh Marinacci и скажет: «Что это за фигня, мне это не удобно, Ideal OS должна быть совсем не такой»


                    1. Am0ralist
                      03.09.2017 23:58

                      Так он и так придет и скажет, что фигня раз все его супер теги потерялись после того, как он послал письмо другу)
                      Или не потерялись, а теги были обидные другу.
                      Что опять же не снимает мой начальный тезис — ОС то уже умеют много что. Вся проблема в разработчиках форматов и приложений.

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


                    1. bogolt
                      04.09.2017 13:02

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


                      1. Am0ralist
                        04.09.2017 13:18

                        Как iso.wv?
                        И проблемы с поддержкой софтом, пока форматы не станут популярны?
                        Если только реально zip делать, чтоб распаковывался без лишних телодвижений везде… Надо покрутить идею)


                        1. sumanai
                          04.09.2017 17:02

                          Как вариант- RarJpeg.


                          1. Am0ralist
                            04.09.2017 17:18

                            я сегодня как раз после этого уже медитировал над статьей про склейку файлов (https://habrahabr.ru/company/infowatch/blog/337084/), проблема, что у каждого формата свои сюрпризы могут быть.


              1. Alex_ME
                04.09.2017 03:08

                А если мне нужно добавить тег к txt файлу на 10 байт, при этом чтобы я не видел этот тег, открыв его редактором?


                1. nidalee
                  04.09.2017 10:29

                  Еще раз на примере изображения: если формат файла прямо (JPG: APP0-APP15 + теоретически еще 4-9 блоков) или косвенно (PNG: eXIf и\или tXMP) поддерживает возможность записать в файл тег, то он будет перенесен вместе с файлом любым способом, будь то прямое копирование, архивация и иногда даже простое копирование содержимого через Notepad. Такие теги можно удалить либо специально в том же Photoshop, либо случайно — пересохранив файл с помощью программы, которая не знает о тегах либо игнорирует их.
                  Если создатели\мейнтейнеры формата не удосужились добавить такую функцию (BMP отличный тому пример), то можно записать теги либо в alternate file stream (который наверняка куда-нибудь протеряется при перемещении), либо с помощью стороннего софта (с отдельным файлом БД и всеми вытекающими)
                  ОС здесь ни в чем не виновата и ничего не может сделать, пока существуют разные ФС. ФС ни в чем не виноваты… И так далее.
                  Что касается txt — винды под рукой нет для проверки, поэтому как именно пишутся теги в него я не уверен.
                  Точно не знаю, как именно работает сейчас встроенный теггер винды (особенно с учетом того, что принцип его работы несколько раз менялся), но удалить записанные им теги можно без особых трудностей в тех же свойствах файла. Хотя он прекрасно справляется и с выпиливанием XMP\EXIF из тех же JPeGов, так что там все сложно.


                1. Am0ralist
                  04.09.2017 11:06

                  А если мне нужно добавить тег к txt файлу на 10 байт, при этом чтобы я не видел этот тег, открыв его редактором?
                  А теперь перечитайте комментарий, на который вы ответили. Там на это целый последний абзац был потрачен.
                  Если был бы разработан какой-нибудь стандарт хранения тегов в файлах, в дальнейшем всем разработчикам пришлось бы это учитывать, в том числе для текстового txt. Сейчас этого нет, хотя ОС готовы с этим работать уже давно.
                  А вот предложения создать ФС с тегами — это уже костылирование текущей ситуации. Ибо имеет ограничение и кучу накладных расходов. При этом, по факту, даже создавать ничего не надо — кучи ФС позволят это сделать тем или иным образом. Проблема с удобной передачей этой информацией между людьми.


      1. kovserg
        04.09.2017 01:06

        В убунте есть утилта locate она именно так и ищет. Она позволяет быстро искать нужные файлы которые забыл где лежат.
        sudo updatedb
        locate -Ai word1 word2

        В windows алог примерно такой: запускаем cmd от админа, создаём индекс в корне
        cd \
        dir /s /b > files.txt

        и потом ищем по ключевым словам
        type files.txt | findstr /i word1 | findstr /i word2 | findstr /i word3

        Что характерно такой наивный способ на несколько порядков быстрее и эффективнее штатного поиска встроенного в windows.

        Cлегка более продвинутый вариант отличается тем что упаковывает 7zip-ом список файлов и поиск записывается короче
        create-files
        where word1 word2 word3 word4


        1. sumanai
          04.09.2017 02:17

          Для поиска по именам в Windows использую Everything: мгновенно выдаёт результат среди почти 2млн моих файлов.


    1. DeadKnight
      03.09.2017 22:08
      +2

      С тегами есть одна маленькая проблема, порой разные слова испоьзуются как теги с одним смыслом. К примеру далеко не факт что поиск по словам «отпуск египет 2017г фотки» выдаст файлы с тегами «отдых Египет 2017 фотографии».

      Ой, только не говорите мне, что я, как пользователь, обязан помнить все теги, что я присваивал файлам 2 года назад.


      1. nidalee
        04.09.2017 10:36

        Используйте какой-нибудь Lightroom или Picasa (ныне нас покинувшая, но еще лежащая в интернетах)
        Они при импорте во-первых создают список тегов, так что будут видны и «фотки» и «фотографии», во-вторых разбивают по датам\годам. И все нужные им данные хранятся в самих файлах изображений, так что никуда не денутся при перемещениях и сжатиях.
        А в Lightroom есть еще и alias, то есть к тегу «фотки» можно привязать те же «фотографии» и внутри программы все фотографии будут находиться по нужному запросу.
        Что касается встроенных в Windows средств… Хохмы ради, можно записать в JPeG-овский EXIF пару тегов и сгруппировать по тегам в проводнике. Даже не знаю, что получится. Но теоретически все возможные группы тегов должны отобразиться.


        1. DeadKnight
          04.09.2017 12:03
          +1

          Ты не понял, мой посыл в том, что теги не так универсальны, как хотелось бы.
          — Во первых, не однозначность использования слов для самих тегов. В 2014 году я помечал фотографии словом «фото», потом «фотки», потом «фотографии» потом еще как-то. В свою очередь год можно пометить как «2000», «2000г», «2000 г.» и т.д. Можно сказать, что это пользователь виноват. Да, это так, вот только проблема, пользователь не обязан ни только быть аккуратным, он вообще не обязан даже теги расставлять.
          Кстати — это хорошо демонстрируют различные сайты, на которых контент создается пользователями.
          — Во вторых, теги имеют свойство плодиться. К примеру Вася, был в Египте 10 раз, 2 раза в 2000 году, два рада с 5-ю друзьями, один — с 10-ю, в остальные разы с 1 — 3-мя друзьями. Друзья в его поездках пересекаются, у некоторых друзей одинаковые имена. И т.д.
          В результате в начале он даст фоткам теги Египет, потом начнет добавлять тег года, потом ему может понадобиться указать имена друзей, далее, из-за того, что имена могут пересекаться — еще и фамилии. И так далее. А еще он может не только в Египет ездит. А некоторые теги — дублируются, как в п.1 и т.д. Как думаешь, сколько пользователей начнут этим заморачиваться? По мне, так хорошо, если 10-15%. А большинство и одного тега не дадут.


          1. nidalee
            04.09.2017 12:56

            Во первых, не однозначность использования слов для самих тегов

            Ну это как раз решается их списком справа. Там будут и «фотки» (234), и «фотографии» (23), и «фото» (888). Там же при желании можно двумя кликами убрать «фотки» и «фотографии», а вместо них проставить на все эти файлы тег «фото». Ну это в случае с Lightroom. А после этого одинаковые теги можно пользовать хоть в Проводнике.

            Во вторых, теги имеют свойство плодиться.

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

            Теги действительно нужны не всем, но у меня вот есть 20000+ файлов и у каждого по 15+ тегов. Опуская ответ на вопрос «как такое вообще произошло?» — это просто невозможно каталогизировать по папкам или симлинками. Теги спасли, можно сказать.


      1. Am0ralist
        04.09.2017 11:13

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


    1. SirEdvin
      03.09.2017 22:12
      +2

      Проблема в том, что теговая файловая система, когда теги будет лепить пользователь — не удобна.


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


      1. Am0ralist
        03.09.2017 22:27
        -1

        А мужики-то не знаютА пользователи то не догадываются… Вам ссылку на какой-нибудь раздел с музыкой на трекере привести в пример? Ведь именно пользователи прописывают теги для мп3 файлов. Просто это нужно делать удобно и понятно пользователю, а так же дать возможность делиться.
        И куча прог для тегирования музыкальных файлов позволяют часть данных забирать, например, из названий. Или на основе тегов и простеньких регулярок прописать названия быстро на все файлы в папке. И это — удобно.
        Просто есть информация, на которую пользователь готов потратить свое время для сортировки, и на которую — нет.


        1. daggert
          03.09.2017 22:45
          +2

          Ведь именно пользователи прописывают теги для мп3 файлов.

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


          1. Am0ralist
            03.09.2017 22:53

            То есть тот, кто грабит свои аудиодиски, чтоб потом их слушать или выложить — не пользователи, а Боги? Или если скачаете единственную версию с корявыми тегами — вы не поправите, зная как это легко сделать в пару щелчков? А раз вы не сделаете — то другие уж тем более?
            Или, кто сохраняет свои фотки по папочкам типа «август 2017, египет, отпуск» — тоже Боги, раз поставили по сути аж три тега в наименовании папки?

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


            1. SirEdvin
              03.09.2017 22:56

              Зачем мне эти три тега? Они ничем не лучше папки вида 2017/Египет, потому что я вряд ли 2 раза буду в 2017 году ехать в Египет.
              Если буду, то можно поставить Египет-август и Египет-апрель, например.


              1. Am0ralist
                03.09.2017 23:04
                -1

                «Величайшей ошибкой было бы думать» или немного про искусство вырывать слова из контекста обсуждения…


                1. SirEdvin
                  04.09.2017 10:16

                  Я ничего не вырывал, я вот честно спросил вас про фотографии. В моем представлении, реально тащит только автоматическое теггирование как у Google Photos. Очень мало людей будут лепить к каждой фоточке по 40+ тегов, потому что вдруг это им будет нужно.
                  А вот эти три тега "год", "место", "что именно" ничем не лучше иерархической структуры, по факту.


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


                  Зачем такой функционал в OS?


                  1. Am0ralist
                    04.09.2017 11:48

                    Я ничего не вырывал, я вот честно спросил вас про фотографии.
                    Тогда еще раз перечитайте ветку комментариев, может тогда увидите, что «тегами» я назвал ключевые слова в название папки:
                    кто сохраняет свои фотки по папочкам типа «август 2017, египет, отпуск» — тоже Боги, раз поставили по сути аж три тега в наименовании папки?
                    По которым пользователь уже сейчас так же можно искать, забив на иерархическую модель хранения данных.
                    Вопрос ведь как раз в том, что поддерживать иерархическую структуру пользователям часто лень. И интерфейс, который бы в пару кликов мышки мог бы структурировать за пользователя — очень бы им помог. И по факту окажется, что как файлы храниться будут реально — и системе, и пользователю вообще пофигу.
                    Вопрос лишь в удобстве взаимодействия с пользователем. Вы давно в мобильных девайсах всякими галереями пользовались? Там, где фотки по датам раскиданы да из разных папок собраны? Пользователь их не ищет сам — ему все на блюдечке преподнесли.
                    Но почему-то большинство ответов здесь исходят из интерфейсов даже не современных ОС, а времен XP, такое ощущение.
                    Зачем такой функционал в OS?
                    Затем, что если он будет по умолчанию, то многие привыкнут и им захочется расширенной версии (с интеллектуальным поиском, распознаванием лиц и прочими плюшками), с большей интеграцией с соц.сетями прям в интерфейсе ОС. И т.п., и т.д.

                    Вот, например, моя двоюродная бабушка бекапит свои фотки в облако и не знает об этом. Ибо у нее стоит яндекс.диск, который делает это для нее самостоятельно с минимум вмешательства. А благодаря тому, что они встроились в интерфейс ОС — ей даже не пришлось привыкать особо.


                    1. SirEdvin
                      04.09.2017 11:54

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

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


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

                      И что мешает вам так же сделать на десктопе? Есть приложения для этого.


                      Вот, например, моя двоюродная бабушка бекапит свои фотки в облако и не знает об этом. Ибо у нее стоит яндекс.диск, который делает это для нее самостоятельно с минимум вмешательства. А благодаря тому, что они встроились в интерфейс ОС — ей даже не пришлось привыкать особо.

                      Она это делает только потому, что это делается автоматически. Я не совсем понимаю, как автоматичность можно назвать "встраиванием в интерфейс OC"? Это просто программа, которая бекапит папку время от времени, пользователь о ней может даже не знать. Где тут встраивание то?


                      1. Am0ralist
                        04.09.2017 12:03

                        Я не совсем понимаю, как автоматичность можно назвать «встраиванием в интерфейс OC»?
                        Дайте угадаю, вы ей не пользовались?
                        И что мешает вам так же сделать на десктопе? Есть приложения для этого.
                        Итого, вы уводите разговор сильно в сторону от начального и побеждаете.
                        Что бы понять зачем ответьте на комментарий habrahabr.ru/post/337010/?reply_to=10397180#comment_10396692 как это реализовать в иерархической структуре.
                        На этом обсуждение отдельных случаев я прекращаю в связи с тем, что у вас есть четкая позиция и вы ее придерживаетесь.


                        1. SirEdvin
                          04.09.2017 12:11

                          Дайте угадаю, вы ей не пользовались?

                          Вроде пользовался, но мог что-то упустить. Из всего, что там было, это зеленые значки. Я что-то еще пропустил?


                          Что бы понять зачем ответьте на комментарий habrahabr.ru/post/337010/?reply_to=10397180#comment_10396692 как это реализовать в иерархической структуре.

                          Я вроде ответил. И это при том, что теговая структура вам тут тоже не поможет, так как вы не будете 100500 тегов к каждому файлу проставлять, скорее всего.


                          1. Am0ralist
                            04.09.2017 12:53

                            Вроде пользовался, но мог что-то упустить. Из всего, что там было, это зеленые значки. Я что-то еще пропустил?
                            Запрос на автоматическое копирование файлов с вставленных флешек — сразу и в папку на компе, и в облако. То есть ей даже никуда копировать не надо — фотки с флешки сами скидываются на комп.
                            Создание ссылки на папку диска в проводнике среди прочих папок быстрого доступа пользователя. Не всякий пользователь это умеет делать.
                            Бабушка у меня — достаточно опытный пользователь, что бы суметь воспользоваться, но и только. Более того, она даже не знала, что так можно. Это вообще главная проблема — узнать, что так можно, можно зачастую лишь начав искать в нужном направлении. Тут был где-то комментарий о человеке, который не умел редактировать набранное и поэтому в случае ошибки закрывал документ без сохранения и набирал заново. Но не надо подобное распространять на всех и утверждать, что подобный способ работы — это норма.
                            Программисты, все таки, должны облегчать жизнь пользователей, даже если те еще не знают, что им это на самом деле надо.
                            Я вроде ответил. И это при том, что теговая структура вам тут тоже не поможет, так как вы не будете 100500 тегов к каждому файлу проставлять, скорее всего.
                            А я как раз вам ответ писал тут.
                            А так, хобби — это такая страшная вещь… К тому же в случае удобного инструмента и если можно будет поделиться с другими, то не вопрос разделить труд на нескольких единомышленников. К тому же файлов на самом деле может быть на порядок больше, просто пропал смысл их собирать, так как реально все равно ничего толком не найдешь в такой куче.
                            Опять же, даже если потрачу на это полгода, допустим. Ок. Вот не вопрос, реально. Тут собрать одну модель у людей месяцы уходят…


            1. DeadKnight
              03.09.2017 23:03

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


              1. Am0ralist
                03.09.2017 23:09
                -1

                Я вас прекрасно понимаю. В свое время mp3tag мне позволил за часок привести теги и названия файлов в моей музыкальной библиотеке (где была далеко не одна полная дискография) к идеалу и единообразию.
                Потом я открыл, что лосслесс дискографии в этом отношении чаще оказываются лучше. Это решило, если честно.


            1. daggert
              03.09.2017 23:18

              То есть тот, кто грабит свои аудиодиски, чтоб потом их слушать или выложить — не пользователи, а Боги?

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


              Или если скачаете единственную версию с корявыми тегами — вы не поправите, зная как это легко сделать в пару щелчков?

              Мне — нет, но я слишком часто чиню ноутбуки и компы. У вас много знакомых правит теги?


              Или, кто сохраняет свои фотки по папочкам типа «август 2017, египет, отпуск» — тоже Боги, раз поставили по сути аж три тега в наименовании папки?

              А вы не видели никогда у людей папки "DCIM", "копия DCIM", "новая папка(1) копия (5)"? Люди вообще ленивы на уборку, даже к своим личным вещам.


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

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


              1. Am0ralist
                03.09.2017 23:32
                -1

                И правильно сказали. Потому что в иерархии хорошо только библиотекарям. Теги же — это хаос. Свалил все новые фотки в одну папку, ОС тебя спросила «а что это?», ты ей — «Даша, первый класс» и все, программа потом эти фотки найдет за тебя, попутно взяв дату, время и место из самого файла.
                Удобно реализованные теги — это всего лишь слабое упорядочивание хаоса.
                А иерархическая систематизация — это к перфекционистам.

                Эти же люди в соцсетях расставляют «теги» на фотках — помечают присутствующих. И ничего, руки не отсыхают.

                PS. И некоторые знакомые даже сами грабили в свое время.
                PPS. Опять же, далеко не все файлы людям потребуется так делать. А часть они будут получать от других уже с тегами.


                1. qw1
                  04.09.2017 01:04

                  ты ей — «Даша, первый класс»
                  А через 20 лет будешь искать «Дочь, 1-й класс» (потому что Даша — это твоя будущая начальница, хоть сейчас этого и не знаешь). И ничего не найдешь.


                  1. Am0ralist
                    04.09.2017 11:21

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

                    Если же нормальный поиск и возможность выбора по тегам, то мне потребуется найти теги с словом «класс», выбрать все, которые первые (первый, 1 и 1-й), а потом связанные с ними Даша, дочь или дочка, при условии, что это один человек.

                    Вы сейчас пытаетесь опровергнуть задачу не видя конкретного ТЗ.


              1. Am0ralist
                03.09.2017 23:42

                Кстати, вот в этом комментарии реальная задачка:
                habrahabr.ru/post/337010/#comment_10396322
                предложите способ хранить иерархически данные, если часть из них это — пдф файлы с журналами, в котором по десятку схем разных авторов, причем иностранных, а хотелось бы легко искать схемы по запросам «птица» и находить схем журавлей, соколов, сов и пр.
                Количество символов в полном пути при этом — ограничено ФС.
                На симлинках и хардлинках все делать? все 14к файлов?
                А что б потом поделиться этим с кем-нибудь?

                Вот это точно нереальный сценарий.


                1. SirEdvin
                  04.09.2017 11:55

                  Calibre, вот ваш выход.


                  1. Am0ralist
                    04.09.2017 12:29

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

                    За прогу спасибо, то есть мне нужно две-три проги теперь. Отдельные для JPG и AVI, отдельные для PDF/DJVU/DOC/HTML.
                    Ну и плюс понять, можно ли тег на конкретный лист PDF задать. Но это уже совсем самолет, если умеет.


                    1. SirEdvin
                      04.09.2017 12:41

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


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


                      Я даже calibre немного забросил, у меня там сотни книг просто заброшенные пачкой которые там лежат под общими тегами.


                      Более того, у меня есть папки для "книг, которые нужно посортировать", потому что просто так в calibre книги не запихнешь, потеряешь потом.


                      1. Am0ralist
                        04.09.2017 12:58

                        Мне понравился tag2find с отслеживанием конкретной папки и предложением подставить теги на добавляемые в них файлы.
                        Был согласен на него, и начал заполнять. Но перешел на х64, а там служба написана под х32 и не стартует, а прога заброшена.
                        Однозначно нужна интеграция в стандартные «проводники» ОС, службы с отслеживанием изменения ФС и умные интерфейсы, это да.


              1. Alex_ME
                04.09.2017 03:19

                У меня есть папка
                D:\Programming_Projects
                D:\Programming_Projects_ARCHIVE
                D:\Programming_Projects_ARCHIVE_STUDY
                D:\Programming_Projects_ARCHIVE_WEB


                Куда класть семестровую на Ruby?


                А еще есть папки
                D:\GoogleDrive_STUDY\x_semestr
                И там лабы, и они тоже программирование.


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


                Хотел написать свой велосипед на каналах ntfs, но невозможность нормально переносить обламывает.


                1. nidalee
                  04.09.2017 10:44

                  Хотел написать свой велосипед на каналах ntfs, но невозможность нормально переносить обламывает.

                  С таким велосипедом можно написать службу или еще какой костыль, который будет следить за деятельностью велосипеда и резервировать что-то вроде md5_файла:теги, а потом записывать теги обратно по запросу, благо md5 должен сохраниться. Либо, если не смущает куча файлов, можно заставить велосипед читать\писать данные в sidecar-файлы плэйнтекстом и хранить пары файл.txt:файл:txt.tag


                1. SirEdvin
                  04.09.2017 11:57

                  Можно просто разделить свои проекты и лабы и сделать как-то так для них:


                  Обучение/Технические предметы/<Название предмета>/Практические задания/<Название лабы в духе "Лаба номер 666>


        1. SirEdvin
          03.09.2017 22:54

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


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


  1. ogoNEKto
    03.09.2017 19:46

    Все закончится очень просто. Будет рывок в железе, который поломает совместимость и для него заново придется писать что-то вроде ОС. Вот тогда все и будет.
    Может квантовые компьютеры дозреют, может ИИ пойдет «в люди».

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


    1. michael_vostrikov
      04.09.2017 05:09

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


  1. Goury
    03.09.2017 20:56
    -1

    Ых, мя!
    Ого…


  1. safinaskar
    03.09.2017 21:43

    Это целых два Javascript-движка входящие в состав одной программы

    Два? Вы уверены? Если да, это было бы очень интересно. Можно какие-нибудь подтверждения? Выходит, что из кода на js, который отвечает за интерфейс, нельзя напрямую вызвать функцию node.js, потому что эти два кода работают на двух разных движках, так что ли?


  1. sic
    03.09.2017 21:56

    Мы хотя бы смогли за эти годы не разломать все, при поддержке требований рядового большинства пользователей. Это ли мало?


  1. msts2017
    03.09.2017 22:04
    +4

    статья какое-то воинствующее невежество.


  1. Mopper
    03.09.2017 22:14
    -1

    У меня корпоративный ноут. Минут 15 я трачу на включение windows 7 и проверку почты в outlook 2016. При включении я каждый раз молюсь что бы не прилетело обновление.
    На другом разделе ArchLinux там на загрузку и проверку личной почты трачу минуты 2.


    1. nidalee
      04.09.2017 10:47

      Три буквы и облегчение на всю оставшуюся ноуту жизнь: SSD. Хотя статья и не о том.


  1. Hint
    03.09.2017 22:58

    Многие из перечисленных минусов относятся не к ОС, а к разработчикам конкретного ПО. Ниже про Windows.


    Почему Я могу присоединять и отсоединять вкладки внутри моего браузера или файлового менеджера, но не могу сделать то же самое между 2мя разными приложениями?

    Есть механизм Drag and Drop. Если разработчики конкретного приложения не добавили поддержку, то при чем здесь ОС? Я могу запустить два процесса Firefox и перетащить вкладку из одного в другой.


    Почему Я не могу положить файл одновременно в два места моей файловой системы? Почему она обязана быть иерархичной? Почему Я не могу отсортировать файлы по тэгу или метаданным?

    В NTFS есть жесткие ссылки. Explorer из коробки поддерживает сортировку по многим внутренним файловым атрибутам (теги mp3, exif и пр.). Более того, разработчики могут добавлять свои атрибуты (Windows Property System).


  1. devalone
    03.09.2017 23:07

    А при чём тут raspberry, он вообще не создавался для десктопа.

    Или другой пример. Atom — один из самых популярных текстовых редакторов на сегодня. Разработчики обожают его потому что к нему есть огромное количество плагинов, но давайте разберёмся каким образом он работает. Atom использует Electron

    Так всем итак понятно, что это кусок говна, есть прекрасный Qt, который не тормозит и вообще великолепен.
    И всё же написание нового email-клиента является весьма сложной задачей. А если вы хотите модифицировать ваш email-клиент или уже существующий (например, Mail.app стандартный клиент для компьютеров Apple) — не существует простого способа сделать это. Отсутствует система плагинов. Отсутствует API для расширения функциональности

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

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

    Может потому что это не такая уж и полезная фича? А если она нужна лично вам, найдите подходящий DE для linux'а.
    Почему Я не могу положить файл одновременно в два места моей файловой системы?

    Ну вообще есть симлинки и ярлыки.
    Почему Я не могу отсортировать файлы по тэгу или метаданным?

    О каком файловом менеджере речь? Их тыщи и наверняка есть такой, какой понравится именно вам.
    Почему Я не могу приказать своему пк выполнить что-то голосом или жестами?

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

    Ожидал чего-то интересного, идею принципиально новой ОС(нет, не bolgenos), а получил кучу субъективщины про GUI.


  1. monah_tuk
    04.09.2017 03:00

    Чтобы получить 3д ускорение для Doom, что было тривиальным делом для Microsoft Windows в середине 90ых, требуются невероятные усилия для X windows в наше время.

    Простите, что? Какое 3D ускорение в Doom в середине 90х (я правильно же понимаю, что речь про аппаратное ускорение)??? Более того, какие проблемы с 3D сейчас в иксах? Даже на всяких дистрибутивах, типа Crux, Gentoo или ArchLinux, главное просто поставить драйвера. Или автор пытался побороть бинарный блоб nVidia на AlpineLinux?


    но как насчёт системного буфера обмена, в котором нельзя хранить более одного элемента за раз?

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


    Почему Я не могу положить файл одновременно в два места моей файловой системы?

    Hardlink? Даже на NTFS. Хотя да, не все средства визуального представления из коробки предоставляют интерфейсы к подобной функциональности. Но это скорее эволюционная проблема, чем революционная.


    А вообще, автор начал:


    "Современные" десктопные операционные системы раздуты

    а потом набрасывает тонну свистоперделок, которые, как ему кажется, нужны ВСЕМ, а не только ему или его кругу общения.


  1. vikarti
    04.09.2017 07:39

    >Почему Я не могу положить файл одновременно в два места моей файловой системы?
    soft и hard-link'и

    >Почему Я не могу отсортировать файлы по тэгу или метаданным?
    А я — могу. Как минимум по тегу. macOS Finder такое умеет именно тегам а не метаданным файла (но можно использовать Spotlight, он учитывает и метаданные тоже и кстати вполне расширяем — можно написать например расширение для epub. Так что скорее тут вопрос удобного интерфейса )

    >Почему Я не могу приказать своему пк выполнить что-то голосом или жестами?
    голос: Siri или очень очень старый Dragon Dictate для Windows

    Системный буфер обмена в котором более одного объекта? А ЗАЧЕМ? Вот разные представления одного и того же объекта (текст-rtf, html-документ, картинка) это полезно. Но в macOS такая возможность есть и используется.

    Кстати а что такое X Windows? Оконная систему *nix-систем это X Window System

    Насчет того что Apple занимается только vendor lock-in… да, занимается. Благодаря этому имеем например реально работающие приложения с Handoff (можно 'перенести' открытое приложение с iOS на macOS или между девайсами), если авторы приложения подумали немного. Continnum у MS вроде как тоже самое делать должен только вот реально хоть кто-то — поддерживает? Или имеем iCloud и iCloud Drive — интегрированный 'в ОС' сетевой диск, с поддержкой синхронизации (в том числе выборочной, когда файл может быть в сети а не локально) + разрешение конфликтов (да, приложения опять должны нормально это все поддерживать, особенно разрешение конфликтов). У MS — OneDrive вроде как OneDrive опять научили что не надо все локально синхронизировать но что с API для разрешения конфликтов?


    1. Am0ralist
      04.09.2017 11:26

      Системный буфер обмена в котором более одного объекта? А ЗАЧЕМ?
      Это автор не видел буфер обмена от МС офиса… Кстати, реально крутая и удобная вещь. Ну то есть записывает в минусы то, что может кто угодно написать, просто не так уж это и нужно.


  1. helgisbox
    04.09.2017 07:49

    X-Windows быстро рисует графику с OpenGL, винда образца 90-х с DirectX-ами. Они для того и разрабатывались (DirectX, OpenGL). Если рисовать через стандартный GUI-вый API по пикселам, то никакой GPU не спасет и проблема тут исключительно в кривых ручках программистов.
    А вот эта фраза сразила наповал: «Долгое время Atom был не способен открывать файлы больше 2 мегабайт». Причем тут процессор и недописанное ПО? Если все запускать тупо рассчитывая на какую-то мифическую оптимизацию, которая реализована до вас, то ничего работать и не будет.


    1. napa3um
      04.09.2017 09:35

      Тут Атом — это ПО, а не интеловский процессор.


      1. helgisbox
        04.09.2017 10:32

        Спасибо, приношу извинения по поводу редактора. Смотрю — он распространяется бесплатно, стало быть, любые проблемы простительны. Хотя, судя по ссылке, исправлено (про 2 Мб файлы) было аж в 2015 г. ( 0.208.0 @mhubot mhubot released this on 10 Jun 2015). Странно это.


  1. Fox_exe
    04.09.2017 11:32

    По поводу жора — Windows непомерно раздула из-за того, что в неё запихнули все, что можно (И что нельзя тоже). Зато есть софт почти на любой случай «Изкаробки».
    Очень много оперативки жрут современные браузеры. Простенький сайт с минимумом JS, но кучей графики (jpg/png/gif) в Chrome отжирает под гиг оперативки, но в томже IE6 — Только 80мб (Opera 12 — 100mb). Сайт и там и там отображается почти одинаково и работает одинаково шустро… Хотя в Opera он даже поживее (субъективно). Что это? Кеш? Или лень разработчиков?
    Тоже касается новомодных Metro-приложений, работающих на NetFramework (Кстати, глючат такие прогрммы просто дико. У меня уже 2 компа, где по непонятным причинам перестал работать пуск, параметры и прочее, что использует .net и xaml. Хотя старые параметры открываются без проблем (control), как и прочий «Старый» (Нативный?) софт.


    1. Am0ralist
      04.09.2017 13:09

      У меня уже 2 компа, где по непонятным причинам перестал работать пуск, параметры и прочее, что использует .net и xaml. Хотя старые параметры открываются без проблем (control), как и прочий «Старый» (Нативный?) софт.
      10-ка? Схожие симптомы ловил из-за ошибки в их магазине и отображению рекламы в пуске (судя из форумов). Вылечил только сносом…


      1. Fox_exe
        04.09.2017 14:14

        Увы, пол-сотни способов из интернета не принесли никаких результатов. На втором компе и вовсе все стало только хуже — не отображается вообще ничего, что использует новый интерфейс. При этом система спокойно себе работает. И вполне себе управляется через PowerShell / CMD / Сторонние_тулзы.
        А сносить — ой, как не хочется (Много чего надо копировать/восстанавливать/перенастраивать).


    1. chersanya
      04.09.2017 13:15
      +1

      Зато есть софт почти на любой случай «Изкаробки».

      Ничего не путаете, это в windows-то софт из коробки? Посмотрите что ставится/можно выбрать при установке популярных дистрибутивов линукса.


      1. Fox_exe
        04.09.2017 14:24

        Я имею ввиду базовый набор для сотрудника офиса (За исключением самого офиса).
        Такто — да: Paint, Игры, Средства Администрирования, средства диагностики и развертывания, справку и прочий хлам — с удовольствием бы снес за ненадобностью.


        1. sumanai
          04.09.2017 17:07

          Во времена XP всё это вполне можно было выпилить из дистрибутива, оставив 75 мегабайт для самой ОС.