Pull to refresh

Comments 228

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

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

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


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


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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

чем плох png

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


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

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

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

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

Во-вторых, нет никакой нужды использовать настолько большое разрешение для демострации наличия ускорения 3D графики. С размером 500px картинка будет иметь размер 50 кб (JPEG, 95 quality), 775px — 100 кб.
Ужасно субъективная статья человека не попытавшегося что либо понять!
0. Почему, почему, почему? А вы пробовали сделать то то что просите?
1 «Atom — один из самых популярных текстовых редакторов на сегодня» я первый раз услышал про это редактор от вас. Занимаюсь разработкой более 20 лет.
2 «X Windows добавил менеджеры компоновки окон » вот отсюда по подробный притенезии к какому менеджеру?
3 «как насчёт системного буфера обмена» с чего вы взяли что должен быть системный буфер обмена? И даже если вы нем сделать не один элемент, то какое должно быть правило FIFO, FILO?
4 " Я не могу положить файл одновременно в два места моей файловой системы? Почему она обязана быть иерархичной?" Как раз в два места вы положить можете, но не все ФС могут иметь ссылки на одно место хранения данных из более чем одного места. Хотя современные ФС могут это делать. А если вам не нравится иерархия то милости просим в БД. Но ФС без иерархической составляющей не прижились. Крайне не удобно.
5 " моего компьютера есть мышь, клавиатура, датчики наклона, датчики света, 2 камеры, 3 микрофона и масса bluetooth-аксессуаров, но только первые 2 используются как основные устройства ввода. " Что!?!? Вы не пробовали через xinput подключить по два и более устройств ввода? Значит вы вообще ни чего не пробовали! С мышками удобно (мышь+тачпад), но вот две клавы это не удобно.
По мне ваша «статейка» это просто нытье человека который не пробовал решить ни одну проблему. Да и скажу более что Вы даже не пробовали сформулировать проблемы!
UFO just landed and posted this here
Как то пытался поставить это поделие, сразу выдало: «ваша версия glibc не той версии, удалить вообще всё?». Можно сколько угодно его хвалить, но на этом моменте окончилось моё с ним знакомство, так и не начавшись.
Кстати, в OS X можно вешать цветные ярлыки на файлы и папки и таким макаром уходить от строгой иерархии.
Это не просто ярлыки, это именно что любые теги для файлов:
UFO just landed and posted this here
UFO just landed and posted this here
А что считать нативными под десятку? UWP, которые работают через кучу слоёв абстракции?

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

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

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

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

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

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

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

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

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

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

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

Мы не можем отбросить существующие операционные системы и лежащие в их основе парадигмы. Мы не можем ввести в старые системы новые парадигмы, не извратив идею и не получив ужасающих кадавров на стыке MFC, .Net4.6 и tAms'а. Мы не можем отбросить часть клиентов и оборудования, потому как, банально, та же Пи'шка тоже уйдёт. И мы не можем уйти от 15 слоёв обратно к 3-4, потому как не хватит ни времени на разработку всех требований, ни разработчиков, способных этим заниматься.
Цугцванг. Ни переход на новую парадигму, ни модернизация старой не решают проблем. Переход на новый уровень произойдёт с новой технической архитектурой, как Андроид взошёл с поголовным внедрением АРМов. Крайне сомневаюсь, что это будет наш Эверест, поэтому стоит сделать ставки на квантовые вычисления и связанные с ними изменения во всех без исключения сферах компьютерного знания.
поэтому стоит сделать ставки на квантовые вычисления и связанные с ними изменения
Я бы не был таким оптимистичным. Если квантовые ПК легко потянут винду, она там и будет работать, с эмуляцией x64 и немасштабируемыми окнами.
UFO just landed and posted this here
Ничего страшного, тогда все останутся на привычной архитектуре (возможно, добавив квантовые устройства как сопроцессоры для небольшого количества задач).
Уж криптографию точно придётся переписывать, а это 50% софта в парашу прям даже не запуская. Кроме того, не думаю, что это будет прям новая архитектура, скорее всё остановится на уровне сопроцессора, так как квантовые системы лучше текущих только в ограниченном круге задач. А с тем же оконным циклом старый добрый Intel Pentium справится ничуть не хуже гипотетического квантового водопровода, но уж точно дешевле.

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


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

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

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

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

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

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


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

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

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

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

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


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

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

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

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

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


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

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


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

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

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


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

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

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

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

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

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

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

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

Так почему квантовые ускорители должно пойти по другому пути?
Криптография обычным людям нафиг не нужна.
Ты это своей банковской карточке скажи и личному кабинету на госуслугах.
Так почему квантовые ускорители должно пойти по другому пути?
Не должны. Могут. Я уже в 4-й раз пишу: этот переход можно использовать для проталкивания своего продукта. Это может быть Windows Quantum, Ubuntu Superpos или qw1's Singularity. А может и не быть, если лень.
Ты это своей банковской карточке скажи и личному кабинету на госуслугах.
Ну, ок, будут на эти сайты ходить через новый супербраузер, или с другого устройства. Но повально выбрасывать старые программы не будут.
этот переход можно использовать
Нет. Переход возможен, если он удовлетворяет какие-то потребности. Например, за 3 нажатия пальцем в маленький экран написать SMS. Чтобы завоевать десктоп (или перезавоевать уже завоёванный мобайл), нужно принципиально менять пользовательский опыт, и тогда под шумок можно сменить архитектуру. Но это если текущий король не подсуетится и не скопирует ключевые идеи себе.
Переход возможен, если он удовлетворяет какие-то потребности.
Технические, в том числе. Например, выход очередного DirectX только на новой версии ОС.
Чтобы завоевать десктоп (или перезавоевать уже завоёванный мобайл), нужно принципиально менять пользовательский опыт
Согласен. Не спорю ни капли!
Но это если текущий король не подсуетится и не скопирует ключевые идеи себе.
Для этого и нужен резкий переход — все оказываются в примерно равном положении. Каждый предполагает что-то своё и ни у кого нет готового решения.
Это может быть Windows Quantum, Ubuntu Superpos или qw1's Singularity.


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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

Я, например, вряд ли нашел бы для себя настолько полезные функции в Windows 7-10, ради которых был бы готов пожертвовать скоростью работы Windows XP на том же железе. Я мигрировал исключительно из-за отсутствия драйверов и несовместимости прикладного софта. И, полагаю, таких пользователей как я, которые обновили ОС вынужденно, а не из-под палки, очень и очень много.
UFO just landed and posted this here
Почему Я могу присоединять и отсоединять вкладки внутри моего браузера или файлового менеджера, но не могу сделать то же самое между 2мя разными приложениями? Не существует ни одной технической причины, почему это было бы невозможно. Окошки приложений всего лишь изображения, но ребята разработчики не добавляют этой фичи, потому что не в приоритете!

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


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


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

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

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

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

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


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


C и CGI

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


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


Про ОС. Какие-то претензии автора весьма странные. Как я перенесу вкладку из фотошопа в браузер, а из браузера в Visual Studio? Какого поведения он ожидает? В целом это желание странных фич. Ничего глобального.


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

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

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

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

А вот с абстракциями, imho, действительно перебор адовый по большей части. Поскольку новые абстракции часто растут на перегное из старых. В итоге с годами получаем охренительной высоты матрёшку, в которой верхние слои уже даже не помнят, за чем там (и что они вообще есть) нижние. Тот же вынапи элементарно оборачивается минимальным синтаксическим сахаром и без проблем используется. Для совсем ленивых есть возможность работать с диалогами, загружаемыми из ресурсов, где этот сахар уже частично присутствует. Но все любят абстракции…
UFO just landed and posted this here
Плюс за COM, OLE и DDE — тоже хотел о них написать.
В итоге с годами получаем охренительной высоты матрёшку, в которой верхние слои уже даже не помнят, за чем там (и что они вообще есть) нижние. Тот же вынапи элементарно оборачивается минимальным синтаксическим сахаром и без проблем используется
Не одним же вынапи…
Вот задумали вы сделать для себя небольшое приложение, но обязательно кроссплатформенное, просто потому что у вас на компе генту, у жены макбук, а на планшете пусть будет винда-10.
Как же сделать это без невыносимых страданий и без кучи слоёв абстракций?

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

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

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

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

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

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

UFO just landed and posted this here
Atom — один из самых популярных текстовых редакторов на сегодня.

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

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

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

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

Чего-чего?

X Windows

X Window

А всё остальное — глас вопиющего. Будет как в том комиксе xkcd про стандарты.
Среди кого популярен? Как он смог стать популярным, если не мог открывать файлы размеров в два мегабайта?

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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


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

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

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

И в macOS можно, и в Windows можно. А где нельзя?
Наверное, имелась в виду сложность создания хардлинков в виде отсутствия удобного интерфейса.
UFO just landed and posted this here

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

UFO just landed and posted this here
UFO just landed and posted this here
Но вот большинство форматов файлов по умолчанию теги не содержит, что печально.

Видимо автор предлагает это делать на уровне ФС. Только тогда не понятно, как файлы потом нормально переносить. Получится что-то вроде macOS с .DS_Store (или как он там называется?).
> Мой новый Razer-ноутбук имеет RGB-подсветку под каждой клавишей
всем срочно выкидывать другие ноутбуки и покупать «как у Вас»
Мы в 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х например никак от слова вообще.

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

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

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

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

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

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


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


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

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

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


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

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


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

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


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

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


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

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


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

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

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

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

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

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

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

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

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

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


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


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

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

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

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

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


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

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

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

(кстати, есть даже покусанный таким образом дистрибутив — GoboLinux. )
===
лечение есть — пакетный манагер с зависимостями, но это снижает удобство работы и хороший вопрос что делать с 3rd party/без репозиториев.
П.1 не всегда возможен. Как минимум стоит отделить программу и её данные, часто привязанные к юзеру и обычно (условно) не видимые ему (в вынде живут в ProgammData, в лине — в скрытых каталогах у юзера). И которые программы при удалении часто оставляют (и их, внезапно, бывают гигабайты).
В остальном да, тоже думаю об этом каждый раз, как приходится вычищать очередную софтину. По возможности же использую портабл версии программ, которые как раз и не требуют установки. Весьма удобно так же, когда систему переустановил, а софт весь на месте и уже настроен.
На Маке спасает Dr. Cleaner или что-то около него. Следит за тем, куда срут программы (не знаю, как), и, при выпиливании программы из /Applications, предлагает снести «junk files», которые она оставила за собой. К слову, эти места обычно тоже стандартизированы — редко когда какой-то софт лезет дальше, чем ~/Library/Application Support/<appname>.
UFO just landed and posted this here
Почему? Принципиальных проблем не вижу. SRP — это песочница?
UFO just landed and posted this here
На самом деле многие проги (тот же тоталКомандер) позволяют указывать, где хранить файлы. Хотя да, со многими могут быть проблемы. Однако тут речь шла как раз о том, что программа не расползается по диску, а хранит всё своё с собой, так что изначальная идея в принципе с SRP не совместима.
Начиная с банального Notepad++, которым кто-то привык редактировать C:\Windows\System32\drivers\etc\hosts

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

Он просто передаёт приложению путь к выбранному файлу, а приложение уже делает с ним, что нужно.
Я это и тогда уже знал. ;)
Тогда смысл его выносить из песочницы?
Я по ссылке вроде всё написал. Есть приложение, которое нам надо контролировать. Например, это текстовый процессор, условно 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'а.
Такое три или пять лет назад вкрутили в макось. На старте народ ругался, что защита давала доступ к отдельным файлам, но не папкам, потом вроде перестал (то ли начала давать, то ли смирились).
Интересно… Как называется и где почитать?
Спасибо! А как это делается внутри? Т.е. диалоги вынесены в отдельный сервис?
Вот про детали реализации ничего сказать не могу. Скорее всего — да, изолировано как UAC в Windows или давно уже существующее окно ввода пароля для sudo.
Хотя одну деталь помню: в этом режиме Finder запускается без расширений.
Затем open-save-dialog разрешает доступ к файлу. Т.е. файл монтируется внутрь песочницы, если Word запущен в LXC
Неплохая идея ))
Идея-то неплохая, в принципе, многие программы и так используют системное окно открытия файла.
Другое дело, что это окно запросто может оказаться уродливым, неудобным и не позволит добавлять какие-то нужные фичи вроде хитрых фильтров, дополнительных настроек открытия/сохранения или панельки предпросмотра.
TL;DR: В этой статье Я хочу показать что: ...

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

Много чего уже давно придумано, System Oberon от дедушки Вирта например. Но почему-то такие проекты не становятся мейнстримом.
Ну я вот тестил Oberon в универе для лабы. Записал программу на тот же CD. Насколько я помню, была проблема, что на CD все компоненты находятся в одном пространстве имен, и где-то среди них надо было найти файл с моей лабой.
Кроме того. При загрузке с USB была ошибка, которая вешала всю систему. Через отладочный вывод нашел проблемное место, но из-за недостатка знаний протокола USB полностью не исправил. Добился только, чтобы грузилось когда диск вставлен. Лабу сдал, ну и ладно.
(риторический вопрос, пожалуй, пропущу :))
UFO just landed and posted this here
Хм, так вы прямо сейчас придумали поиск по тегам без самих тегов. Ведь названия папок можно считать тегами, и поиск будет довольно прост — надо просто найти все вхождения искомых тэгов в полном пути к файлу.
UFO just landed and posted this here
UFO just landed and posted this here
Эту проблему можно считать решенной. Сначала MacOS, потом и Windows в файловой системе позволяют дописывать к файлу любые альтернативные именованные потоки данных.

Этим пользуются, например, Internet Explorer, для отметки откуда скачан файл (потом при запуске загруженного exe появляется предупреждение). А также DC++ клиенты хранят там Merkle Tree, чтобы не перехешировать весь файл при переносе в другое место. Антивирусы тоже что-то пишут.
UFO just landed and posted this here
А нужно ли?
Если я отправляю отчёт, который у меня лежит в папке «для мудаков» (т.е. имеет такой тег), должен ли получатель его видеть?
UFO just landed and posted this here
Эту проблему можно считать решенной. Сначала MacOS, потом и Windows в файловой системе позволяют дописывать к файлу любые альтернативные именованные потоки данных.

Только макось когда не может записать эти данные начинает гадить всякими левыми файлами вида ._*
Ну, HPFS умела работать с метаданными файлов (aka. «extended attributes») еще в далеком 1988 году, если мне не изменяет память.
UFO just landed and posted this here
Как по мне, то если говорить о некой «правильной» реализации, то тэги обязаны быть частью файловой системы, при этом они обязаны быть однозначно привязаны и к файлу. Т.е. при копировании, архивировании и прочих действиях с файлом метаинформация о файле не должна портиться, а должна так-же сохраняться/архивироваться/передаваться.

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

К сожалению, смею предположить, что таких файловых форматов сейчас все же наверное большинство.
UFO just landed and posted this here
С другой стороны, теги хранимые внутри файла имеют свое ограничение.

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

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

Т.е. как не реализуй, но все равно придет такой себе Josh Marinacci и скажет: «Что это за фигня, мне это не удобно, Ideal OS должна быть совсем не такой»
UFO just landed and posted this here
По идее можно сделать очередную матрешку, внутри будут сырые данные (картинки, текст, аудио-видео короче что угодно ) ну и специальнфе файлы с тегами. А выглядеть это будет как 1 архив.
UFO just landed and posted this here
UFO just landed and posted this here
UFO just landed and posted this here

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

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

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

Ой, только не говорите мне, что я, как пользователь, обязан помнить все теги, что я присваивал файлам 2 года назад.
Используйте какой-нибудь Lightroom или Picasa (ныне нас покинувшая, но еще лежащая в интернетах)
Они при импорте во-первых создают список тегов, так что будут видны и «фотки» и «фотографии», во-вторых разбивают по датам\годам. И все нужные им данные хранятся в самих файлах изображений, так что никуда не денутся при перемещениях и сжатиях.
А в Lightroom есть еще и alias, то есть к тегу «фотки» можно привязать те же «фотографии» и внутри программы все фотографии будут находиться по нужному запросу.
Что касается встроенных в Windows средств… Хохмы ради, можно записать в JPeG-овский EXIF пару тегов и сгруппировать по тегам в проводнике. Даже не знаю, что получится. Но теоретически все возможные группы тегов должны отобразиться.
Ты не понял, мой посыл в том, что теги не так универсальны, как хотелось бы.
— Во первых, не однозначность использования слов для самих тегов. В 2014 году я помечал фотографии словом «фото», потом «фотки», потом «фотографии» потом еще как-то. В свою очередь год можно пометить как «2000», «2000г», «2000 г.» и т.д. Можно сказать, что это пользователь виноват. Да, это так, вот только проблема, пользователь не обязан ни только быть аккуратным, он вообще не обязан даже теги расставлять.
Кстати — это хорошо демонстрируют различные сайты, на которых контент создается пользователями.
— Во вторых, теги имеют свойство плодиться. К примеру Вася, был в Египте 10 раз, 2 раза в 2000 году, два рада с 5-ю друзьями, один — с 10-ю, в остальные разы с 1 — 3-мя друзьями. Друзья в его поездках пересекаются, у некоторых друзей одинаковые имена. И т.д.
В результате в начале он даст фоткам теги Египет, потом начнет добавлять тег года, потом ему может понадобиться указать имена друзей, далее, из-за того, что имена могут пересекаться — еще и фамилии. И так далее. А еще он может не только в Египет ездит. А некоторые теги — дублируются, как в п.1 и т.д. Как думаешь, сколько пользователей начнут этим заморачиваться? По мне, так хорошо, если 10-15%. А большинство и одного тега не дадут.
Во первых, не однозначность использования слов для самих тегов

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

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

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

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

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


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

UFO just landed and posted this here
Ведь именно пользователи прописывают теги для мп3 файлов.

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

UFO just landed and posted this here

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

UFO just landed and posted this here

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


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


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

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

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


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

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


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

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

UFO just landed and posted this here
Дайте угадаю, вы ей не пользовались?

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


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

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

UFO just landed and posted this here
По поводу mp3, на самом деле раздражает, что даже в пределах одного альбома, и даже не скаченного где-то с пиратского сайта, а официально купленного, у соседних файлов теги могут различаться. В результате плееры, которые сортируют такие файлы по тегам, показывают две папки для одного концерта, вместо одной.
UFO just landed and posted this here
То есть тот, кто грабит свои аудиодиски, чтоб потом их слушать или выложить — не пользователи, а Боги?

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


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

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


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

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


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

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

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

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


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


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


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

UFO just landed and posted this here

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


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


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


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


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

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

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

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


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

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


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

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

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

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

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

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

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


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

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


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

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

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

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

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

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

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

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

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

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

Ожидал чего-то интересного, идею принципиально новой ОС(нет, не bolgenos), а получил кучу субъективщины про GUI.
Чтобы получить 3д ускорение для Doom, что было тривиальным делом для Microsoft Windows в середине 90ых, требуются невероятные усилия для X windows в наше время.

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


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

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


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

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


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


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

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

>Почему Я не могу положить файл одновременно в два места моей файловой системы?
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 для разрешения конфликтов?
UFO just landed and posted this here
X-Windows быстро рисует графику с OpenGL, винда образца 90-х с DirectX-ами. Они для того и разрабатывались (DirectX, OpenGL). Если рисовать через стандартный GUI-вый API по пикселам, то никакой GPU не спасет и проблема тут исключительно в кривых ручках программистов.
А вот эта фраза сразила наповал: «Долгое время Atom был не способен открывать файлы больше 2 мегабайт». Причем тут процессор и недописанное ПО? Если все запускать тупо рассчитывая на какую-то мифическую оптимизацию, которая реализована до вас, то ничего работать и не будет.
Спасибо, приношу извинения по поводу редактора. Смотрю — он распространяется бесплатно, стало быть, любые проблемы простительны. Хотя, судя по ссылке, исправлено (про 2 Мб файлы) было аж в 2015 г. ( 0.208.0 @mhubot mhubot released this on 10 Jun 2015). Странно это.
По поводу жора — Windows непомерно раздула из-за того, что в неё запихнули все, что можно (И что нельзя тоже). Зато есть софт почти на любой случай «Изкаробки».
Очень много оперативки жрут современные браузеры. Простенький сайт с минимумом JS, но кучей графики (jpg/png/gif) в Chrome отжирает под гиг оперативки, но в томже IE6 — Только 80мб (Opera 12 — 100mb). Сайт и там и там отображается почти одинаково и работает одинаково шустро… Хотя в Opera он даже поживее (субъективно). Что это? Кеш? Или лень разработчиков?
Тоже касается новомодных Metro-приложений, работающих на NetFramework (Кстати, глючат такие прогрммы просто дико. У меня уже 2 компа, где по непонятным причинам перестал работать пуск, параметры и прочее, что использует .net и xaml. Хотя старые параметры открываются без проблем (control), как и прочий «Старый» (Нативный?) софт.
UFO just landed and posted this here
Увы, пол-сотни способов из интернета не принесли никаких результатов. На втором компе и вовсе все стало только хуже — не отображается вообще ничего, что использует новый интерфейс. При этом система спокойно себе работает. И вполне себе управляется через PowerShell / CMD / Сторонние_тулзы.
А сносить — ой, как не хочется (Много чего надо копировать/восстанавливать/перенастраивать).
Зато есть софт почти на любой случай «Изкаробки».

Ничего не путаете, это в windows-то софт из коробки? Посмотрите что ставится/можно выбрать при установке популярных дистрибутивов линукса.
Я имею ввиду базовый набор для сотрудника офиса (За исключением самого офиса).
Такто — да: Paint, Игры, Средства Администрирования, средства диагностики и развертывания, справку и прочий хлам — с удовольствием бы снес за ненадобностью.
UFO just landed and posted this here
Я уже очень много намучался с операционными системами. После выхода Windows 10 про продукцию от майкрософт пришлось забыть по религиозным причинам и уйти на FreeBSD и Gentoo, которые использую параллельно.

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

Тренд на мобильные ОС ужасен. Работать на андроиде или айфоне чрезвычайно неудобно. А интерфейсы становятся чрезмерно юзер-френдли. Без полноценных API с доступом из CLI, где можно легко и быстро достать что-нибудь нужное. Упрощение в очень плохую сторону. И лично мне наиболее удобны тайловые менеджеры, которые так же остановили своё развитие и недоработаны много в чём. Но это интерфейс, с ним ещё как-то можно смириться.

На мой взгляд сейчас основная проблема операционных систем в том, что они перестали быть в первую очередь моей операционной системой. А стали операционной системой Apple, Microsoft, Google. Или игрушкой тех же майнтейнеров в Gentoo. Т.е она теперь выполняет не мои задачи, а задачи того же Microsoft или Google. Сбор информации. Отслеживание действий. Реклама.

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

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

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

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

Есть конечно альтернативные решения, вроде того же Docker или контейнеров. Но к ним есть доступ изнутри, что так же может быть угрозой безопасности. Да и каждая новая подобная технология требует времени на своё изучение. Где-то меньше. Где-то больше. Но меня за долгое время в IT уже конкретно задолбало изучать раз за разом новые инструменты, которые станут бесполезными в ближайшее время, в периоде несколько лет.

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

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

К сожалению. Это невозможно по причине существования Google, Microsoft, Apple и мейнтейнеров Linux, которые выполняют свои бизнес-задачи.

21 век — информационный. Тот кто обрабатывает грамотно информацией. Владеет миром. На текущий момент я понимаю, что почти полностью потерял контроль над компьютерами, и в отдалённом будущем потеряю контроль вовсе и к моим данным будут иметь доступ все кому не лень.

А то что интерфейсами стало пользоваться намного сложнее и зачастую доступ в действительно важные места либо отключён, либо его попросту не продумано — это конечно большая проблема. Но ещё не критическая. Это всего лишь неудобства.
Sign up to leave a comment.

Articles