LINUX.ORG.RU

Фрагментированный функционал

 


0

3

Привет Есть вот adobe photoshop, есть gimp. Обе программы большие и имеют богатый функционал. Но что если подойти к использованию программ с точки зрения unix way - «программа должна хорошо выполнять одну функцию». Расскажите например где взять отдельную программу, которая будет корректировать цвета на фотографии без потери качества и иметь только эту функцию. Программу которая будет убирать объекты с фото без потери качества и иметь только эту функцию. И.т.д Такое вообще возможно? Взять такие мелкие программы, собрать из исходников каждую, положить бинари в отдельную папку, например $HOME/photoutils и прописать эту папку в PATH. Почему сообщество linux стремится к windows-way(если такой вообще есть), где одна программа-монстр выполняет 100500 разных дел?



Последнее исправление: CrX (всего исправлений: 1)

Набор утилит, делающих мелкие вещи называется ImageMagick.

Программу которая будет убирать объекты с фото без потери качества

А это невозможно. Ну, что-то отдалённо подобное можно сделать нейросеткой, конечно, но «без потери качества» там будет довольно условным.

CrX ★★★★★
()

ИМХО как-то не нужно и не удобно…

Я сразу делаю цветокорекцию + удаляю лишнее с фотки и это все удобно сделать за один раз в одной программе. а не кидать фотку туда сюда по сто раз. Да еще и ставить кучу программ себе на комп…

romanlinux ★★★
()

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

…в формате .so, а рядом положить исполняемый файл, который тоже будет выполнять ровно одну задачу: предоставлять GUI для работы с этими мелкими программами.

Можно даже назвать этот файл photoshop.

thesis ★★★★★
()
Последнее исправление: thesis (всего исправлений: 1)
Ответ на: комментарий от umaksd

Естественно. Unix-way же.

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

CrX ★★★★★
()

Во-первых, Unix way придумывали во времена компьютеров, которые можно с натяжкой назвать glorified typewriters. Во-вторых, прежде чем рассуждать о философии Unix, стоит с ней ознакомиться, а не с пересказом от Рабиновича.

anonymous
()

Unixway это философия.
удобная там, где он нужна.
как и любая философия имеет свои пределы для применения.
там где unixway не нужен - он неудобен :)

бегать с гордо поднятым транспарантом UNIXWAY - RULEZZZ это удел школяров.

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

pfg ★★★★★
()

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

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

И, кстати, сделать как можно быстрее работающий прототип - это тоже unix philosophy.

Вывод: «do one thing and do it well» дорого стоит.

Хотя можно сказать, что сам юникс служит успешным примером применения этого принципа. Но ОС - это всё-таки специфичный продукт. Кажется, что этот принцип просто по своей природе легче применяется к ОС. Как минимум, ОС задаёт основу для всей системы и может позволить себе максимально обобщённые интерфейсы (чтение/запись), в то время как вся остальная система забита неразделяемой на части конкретикой. Как пример, строку можно разбить двумя средствами: sed или shell builtins. У обоих методов есть свои причины на существование, оставить что-то одно можно, но неочевидно как.

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

kaldeon
()
Последнее исправление: kaldeon (всего исправлений: 3)

unix way

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

goingUp ★★★★★
()

Почему сообщество linux стремится к windows-way(если такой вообще есть), где одна программа-монстр выполняет 100500 разных дел?

Потому что догматизм ведёт к ухудшению качества. Юниксвейность полезна в некоторых случаях, но если пихать её везде и всюду, потому что кто-то что-то считал *дцать леть назад, то пострадает удобство (как пользования, так и разработки). Так уж вышло, что удобнее полноценно редактировать изображения в одной программе. Более того, любой профессиональный софт «выполняет 100500 разных дел»: IDE, программы для монтажа видео, звука, офисный софт и многое другое.

mister_me
()
Ответ на: комментарий от kaldeon

Как минимум, ОС задаёт основу для всей системы и может позволить себе максимально обобщённые интерфейсы (чтение/запись)

Хотя не всегда. Пример: BSD sockets.

kaldeon
()
Ответ на: комментарий от CrX

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

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

sin_a ★★★★★
()