The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Режим отображения отдельной подветви беседы [ Отслеживать ]

Оглавление

Релиз медиапроигрывателя VLC 3.0.7, opennews (??), 07-Июн-19, (0) [смотреть все]

Сообщения [Сортировка по времени | RSS]


23. "Релиз медиапроигрывателя VLC 3.0.7. Ubuntu MATE переходит с ..."  +1 +/
Сообщение от Sluggard (ok), 07-Июн-19, 12:18 
Он говорил не о «UNIX-системах», которые тут вообще ни при чём, а о «философии UNIX» в контексте разработки ПО.
Ответить | Правка | Наверх | Cообщить модератору

25. "Релиз медиапроигрывателя VLC 3.0.7. Ubuntu MATE переходит с ..."  +4 +/
Сообщение от lockywolf (?), 07-Июн-19, 12:26 
> Он говорил не «UNIX-системах», которые тут вообще ни при чём, а о
> «философии UNIX» в контексте разработки ПО.

Давайте, наконец, озвучим то, что все и так давно понимают.

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

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

Ответить | Правка | Наверх | Cообщить модератору

36. "Релиз медиапроигрывателя VLC 3.0.7. Ubuntu MATE переходит с ..."  +/
Сообщение от Аноним (36), 07-Июн-19, 12:53 
Я пользователь и мне нравится юникс-философия. Но не принципиально. Иногда и комбайны использую
Ответить | Правка | Наверх | Cообщить модератору

74. "Релиз медиапроигрывателя VLC 3.0.7. Ubuntu MATE переходит с ..."  –2 +/
Сообщение от Ordu (ok), 07-Июн-19, 16:48 
> Юникс-философия -- замечательна для программистов, потому что позволяет интегрировать идеосинкразии отдельных разработчиков и повышает взаимозаменяемость компонентов

Нет. Если ты копнёшь Unix-философию, хоть бы ту же TAOUP Раймонда почитаешь, ты увидишь, что Unix философия работает только в простых случаях. Она очень хорошо работает с текстом (но не на естественном языке, для работы с естественным языком понадобятся современные комбайны), поэтому она сама по себе является IDE для программиста. И это единственное свойство unix-философии, делающее её привлекательной для программиста.

Но как только мы двинемся в сторону от текста, как сразу начинаются осложнения, эти осложнения подпирают костылями, подпирают-подпирают. Подпирают. ПОДПИРАЮТ. И современные адепты unix-философии, считают что гора костылей и есть unix-философия. То есть, справедливости ради я отмечу, что на горизонте не просматривается альтернатив, которые можно было бы считать прорывными, которые выводили бы осестроение на новый уровень. Но это не делает гору костылей блестящим и отлаженным механизмом.

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

Ответить | Правка | К родителю #25 | Наверх | Cообщить модератору

80. "Релиз медиапроигрывателя VLC 3.0.7. Ubuntu MATE переходит с ..."  +/
Сообщение от lockywolf (?), 07-Июн-19, 17:16 
>[оверквотинг удален]
> И современные адепты unix-философии, считают что гора костылей и есть unix-философия.
> То есть, справедливости ради я отмечу, что на горизонте не просматривается
> альтернатив, которые можно было бы считать прорывными, которые выводили бы осестроение
> на новый уровень. Но это не делает гору костылей блестящим и
> отлаженным механизмом.
> unix философия начинается и заканчивается на работе с текствыми файлами. Есть coreutils,
> которые -- эссенция unix-философии и финальная точка в ней. Всё остальное
> в лучшем случае живёт самостоятельной жизнью, забив на unix-философию огромный болт
> давным-давно, в худшем пытается натянуть unix-философию на решение задач, для которых
> она не подходит.

Ну и как это противоречит моему комментарию?

И, кстати, вообще говоря, а что ещё может быть в программах, кроме текста, покуда мы всё кодируем последовательностями байт? У вас в ДНК, простите биты и байты.

Условная "двухмерная логика" типа графов или анализа картинок, уже в миллион раз сложнее, и де факто всё равно упаковывается в последовательности, за исключением human computing.

Трёхмерная логика существует только в сознании специалистов по алгебраической геометрии, а порядки выше вообще маловероятны по curse of dimensionality.

Ответить | Правка | Наверх | Cообщить модератору

84. "Релиз медиапроигрывателя VLC 3.0.7. Ubuntu MATE переходит с ..."  +/
Сообщение от Ordu (ok), 07-Июн-19, 18:46 
>[оверквотинг удален]
>> То есть, справедливости ради я отмечу, что на горизонте не просматривается
>> альтернатив, которые можно было бы считать прорывными, которые выводили бы осестроение
>> на новый уровень. Но это не делает гору костылей блестящим и
>> отлаженным механизмом.
>> unix философия начинается и заканчивается на работе с текствыми файлами. Есть coreutils,
>> которые -- эссенция unix-философии и финальная точка в ней. Всё остальное
>> в лучшем случае живёт самостоятельной жизнью, забив на unix-философию огромный болт
>> давным-давно, в худшем пытается натянуть unix-философию на решение задач, для которых
>> она не подходит.
> Ну и как это противоречит моему комментарию?

Я процитировал выше фразу, с которой я не согласен, и там же написал почему не согласен. А процитированный тобой кусок не несёт в себе цели противоречия чему-либо, он там только для того, чтобы убедиться, что мы понимаем фразу "unix-философия" одинаково.

> И, кстати, вообще говоря, а что ещё может быть в программах, кроме
> текста, покуда мы всё кодируем последовательностями байт? У вас в ДНК,
> простите биты и байты.

Последовательность байт и текст -- это разные вещи. Текст -- это частный случай последовательности байт. Причём, отметь, мы можем придумать много разных способов кодирования текста байтами. Вспомнить хотя бы ascii, koi8-r, cp866, utf8, utf16 и много других. Когда ты работаешь с текстом, ты работаешь с текстом, а не с байтами. Программирование на C в этом смысле вводит в заблуждение, но C -- это не тот язык, из которого следует черпать эпистемологическую мудрость.

> Условная "двухмерная логика" типа графов или анализа картинок, уже в миллион раз
> сложнее, и де факто всё равно упаковывается в последовательности, за исключением
> human computing.
> Трёхмерная логика существует только в сознании специалистов по алгебраической геометрии,
> а порядки выше вообще маловероятны по curse of dimensionality.

Логика тут не при чём. Если тебя тянет в теорию, то забей на логику: логика -- это лишь способ реализации вычислителя. А теория вычислителя -- это либо машина Тьюринга, либо квантовый компьютер. Ну, точнее это квантовый компьютер, и как частный его случай -- машина Тьюринга.

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

Смотри, в чём фишка работать с данными из текстовых файлов? Файлы разбиваются на строки, строки разбиваются на токены. Есть общепринятый способ разбиения файла на строки символов '\n', существует несколько распространённых способов разбиения на токены, скажем, в csv для этого используется запятая, плюс немного довольно очевидной магии с кавычками и экранирования. Ты можешь работать с текстовыми данными, решая задачи сформулированные в терминах предметной области твоей задачи (отсортировать строки csv таблички лексикографически по идентификатору записи), но излагая алгоритм решения в терминах текста и токенов. И это довольно просто выходит. Во многих случаях. В смысле, ps aux | grep firefox | xargs kill -9, выглядит просто и работает эффективно. Сочиняя такое, я мыслю в терминах процессов, имён процессов, сигналов отправляемых процессам, а излагаю это в терминах запуска утилит, перенаправления ввода вывода и фильтрации. Простым мыслям соответствует простой код. Офигенно. Именно так и должно быть.

Но попробуй теперь рассуждая в терминах векторов движения и блоков пикселей, написать код разобирающий h265 упакованный в mkv и выясняющий, двигался ли определённый объект в кадре между 1:23 и 1:45 -- это человек или статуя? Причём излагая этот код в терминах байтов. Слабо? Тебе придётся создать два-три уровня абстракции между байтами и векторами движения, прежде чем тебе удастся навести мосты над семантической пропастью между тем и этим. Твой код в объёме достигнет десятков или даже сотен тысяч строк. Особенно если писать ты будешь на bash, как того требует ортодоксальная unix-философия. Тут уже простым мыслям соответствует сложный код, и никакая unix-философия не сможет эту сложность спрятать, у неё недостаточно методов для этого. Тебе придётся уровни абстракции оформлять в виде подгружаемых библиотек, а если при этом mkv и h265 -- это лишь частные случаи контейнеров и кодеков, с которыми твоя программа должна работать, и даже формат пикселя может отличаться от случая к случаю, то вероятно в твою голову начнут закрадываться еретические мысли о том, что не только bash неудобен для этой задачи, но и C как-то не очень круто подходит.

Текстовые данные и видео -- это очень разные данные, и работать с ними базируясь на одних и тех же принципах не выйдет. Можно взять архитектуру ffmpeg, и сделать поверх неё движок для обработки текста, она легко вместит в себя это, но это будет оверинжинирнг, архитектура ffmpeg слишком сложна для coreutils. Архитектура же coreutils/sh (aka unix-философия) не подходит для видео, потому что они слишком проста и тупа для этого. Текст видео разные, настолько разные что программы, работающие с ними пишут совершенно по-разному.

Ответить | Правка | Наверх | Cообщить модератору

103. "Релиз медиапроигрывателя VLC 3.0.7. Ubuntu MATE переходит с ..."  +/
Сообщение от lockywolf (?), 08-Июн-19, 12:17 
>[оверквотинг удален]
> неудобен для этой задачи, но и C как-то не очень круто
> подходит.
> Текстовые данные и видео -- это очень разные данные, и работать с
> ними базируясь на одних и тех же принципах не выйдет. Можно
> взять архитектуру ffmpeg, и сделать поверх неё движок для обработки текста,
> она легко вместит в себя это, но это будет оверинжинирнг, архитектура
> ffmpeg слишком сложна для coreutils. Архитектура же coreutils/sh (aka unix-философия)
> не подходит для видео, потому что они слишком проста и тупа
> для этого. Текст видео разные, настолько разные что программы, работающие с
> ними пишут совершенно по-разному.

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

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

Доминирование работы с текстом (в частности приведённый выше pgrep) здесь является следствием, а не причиной, и не философским положением.

Зачем тратиться на миллион одинаковых UI, когда можно просто взять поток байт на вход из stdin. Это будет вполне юниксвейно.

Один уровень эмпатии по отношению к человеку меньше, один уровень эмпатии по отношению к компьютеру больше.

Программа мало отличима от функции, мультитрединг реализован на уровне процессов (нет разницы между процессами и потоками.

Ответить | Правка | Наверх | Cообщить модератору

106. "Релиз медиапроигрывателя VLC 3.0.7. Ubuntu MATE переходит с ..."  +/
Сообщение от Ordu (ok), 08-Июн-19, 14:23 
> Доминирование работы с текстом (в частности приведённый выше pgrep) здесь является следствием,
> а не причиной, и не философским положением.

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

Ответить | Правка | Наверх | Cообщить модератору

81. "Релиз медиапроигрывателя VLC 3.0.7. Ubuntu MATE переходит с ..."  +/
Сообщение от й (?), 07-Июн-19, 17:36 
> Юникс-философия -- замечательна для программистов

unix-философия -- это когда /usr/bin/cd лезет в память шеллу и меняет ему дескриптор.
так было в Unix Version 1. а чо, "программа должна делать что-то одно и делать это хорошо"

от этого жесточайшего unix-way пришлось отказаться, когда придумали fork. с тех пор /bin/sh стал неюниксвейным и cd там built-in.

Ответить | Правка | К родителю #25 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру