LINUX.ORG.RU

Ответ на: комментарий от stevejobs

С точки зрения эволюции API, абсолютно всё равно, в каком формате оное API (и нижележащее ABI) описано — как набор операций над файловым дескриптором, как сишный хидер над символами lib*.so или как class IХрень {};.

На каждом шаге развития мы принимаем решение: выкинуть старый хлам или тянуть обратную совместимость, тратя на это ограниченные ресурсы разработки. И разница между Windows и GNU/Linux именно в этих решениях.

geekless ★★
()
Ответ на: комментарий от stevejobs

Твоя фраза годится на эталонный троллинг

Родной, ты толстый болтливый тролль, и этим согласился на то, что любой приличный посетитель ЛОР имеет право и обязанность тебя троллить и гнобить.

для меня эта тема с поиском по legacy API - больная и важная.

Для тебя важнее всего включить мозги. У любой нетривиальной библиотеки есть _два_ интерфейса - интерфейс с верхним слоем (API) и интерфейс с нижними слоями. Если последние изменились (что в Linux будет истинно как минимум для графики уровня DRI/DRM) - сливай воду. Будет то, что написал geekless.

tailgunner ★★★★★
()
Ответ на: комментарий от geekless

ERROR_NOT_IMPLEMENTED на любой метод. Очень круто.

Куча людей просто не будет переходить на новые версии интерфейса, если переход требует каких-то ресурсов. Иначе говоря, если тесты для N+1й версии валятся, фиксируем версию интерфейса до Nй и давай досвиданья со своими инновациями. Чо, весь ынтерпрайз среднего масштаба так и сделает.

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

stevejobs ★★★★☆
()
Ответ на: комментарий от Vekt

Да, OpenGL. Но у меня комп максимальные настройки не тянет все равно, по-этому сглаживание отключено :)

Difrex ★★★★
()
Ответ на: комментарий от tailgunner

сливай воду

или повышай уровень абстракции и пиши адаптеры.

повседневная задача:

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

Т.к. обычно исходники веб-сервиса не доступны (на то он и ВЕБ-сервис), это чинится написанием адаптера.
1) Все запросы к сервису фильтруются и превращаются в чушь, которую он желает видеть (включая тот самый невалидный XML :)
2) Вся чушь, которую выплевывает сервис, парсится и превращается в корректные данные
3) Процесс может проходить с потерей и искажением данных (в обе стороны). Например, при запросе к веб-сервису теряются часовые зоны, и любое время становится временем по Москве (GMT+3?)
4) Процесс конвертации иногда требует использования очень хитрых алгоритмов, со стороны походящих на магию. Например, можно попробовать угадать часовую зону веб-сервиса по его geoip, а если не проканает - по соответствию id сервера с таблицей (но только если запрос на получение id сервера не вызвал Internal Server Error :)

Часто такая штука происходит именно из-за перехода между версиями API, протокола передачи данных, используемых библиотек, итп. Для выбора типа адаптера используются таблицы соответствий и парочка несложных методов угадывания. В 90% случаев достигнуть совместимости _получается_.

stevejobs ★★★★☆
()
Ответ на: комментарий от geekless

Его выпилили. Его нет. Совсем нет. Твая рюский харашо панимать?

четай верхний пост этого треда: «БЫЛО БЫ такое в линуксе». В линуксе такого НЕТУ. И вот первое проявление, что такого нету: кто-то может пойти и совсем-совсем выпилить HAL.

stevejobs ★★★★☆
()
Ответ на: комментарий от ekzotech

А вин8 - вполне годная система, работает раза эдак в 2 быстрее, чем вин7.

Работать медленнее, чем вин7 уже невозможно.

А ещё они признали, что тащили кучу костылей в архитектуре аж с вин95, от которых были рады сейчас отказаться.

Эта песня идет со времен win2000.

red_eyed_peguin
()
Ответ на: комментарий от stevejobs

или повышай уровень абстракции и пиши адаптеры.

Что тебе мешает писать адаптеры прямо сейчас и где после этого совместимость?

повседневная задача:

Ты к тому же не понимаешь разницы между сетевым протоколом и API. Это печально.

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

Ты решил проблему в простом случае и экстраполируешь свое простенькое решение на общий случай.

tailgunner ★★★★★
()
Ответ на: комментарий от red_eyed_peguin

Работать медленнее, чем вин7 уже невозможно.

бубунте как-то это удается

Reset ★★★★★
()
Ответ на: комментарий от tailgunner

Что тебе мешает писать адаптеры прямо сейчас

писать самому - ничего не мешает.

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

и где после этого совместимость?

совместимость - это когда ты запускаешь игрушку 95-ого года производства на современном компьютере, и она просто работает. Даже если тех проектов, на основе которых она когда-то писалась, уже 12 лет как не существует.

если современная графическая подсистема, например, не может заэкспозить старое API, нужно нагородить адаптеров (или хотя бы попробовать это сделать!).

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

Ты решил проблему в простом случае и экстраполируешь свое простенькое решение на общий случай.

общий случай можно подробить на достаточно простые подзадачи, и решать уже их. Внезапно, это основной принцип разработки чего угодно, ты не знал? :)

stevejobs ★★★★☆
()
Ответ на: комментарий от stevejobs

писать самому - ничего не мешает.

Но ты не пишешь.

чтобы и другие тоже писали - мешает отсутствие системы мотивации/принуждения к этому действию.

Как и у тебя.

совместимость - это когда ты запускаешь игрушку 95-ого года производства на современном компьютере, и она просто работает.

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

а не как в иксах, поменяли цыферку в версии, и все дрова поотвалились.

Какой ты всё-таки дурачок.

tailgunner ★★★★★
()
Ответ на: комментарий от stevejobs

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

ckotinko ☆☆☆
()
Ответ на: комментарий от tailgunner

может ты уже объяснишь, что имеешь в виду и что предлагаешь, умный ты наш?

подход с версионированными интерфейсами и адаптерами - работает. Непросто, но работает. Тысяча индусов за три бакса в час вполне могут поддерживать старый код и совместимость. Вот, скажем, посмотри на Microsoft :)

stevejobs ★★★★☆
()
Ответ на: комментарий от tailgunner

(простых) механизмов, которые это обеспечивают

если имел в виду чисто технически, то какой-нибудь аналог OSGi

http://samolisov.blogspot.com/2009/03/osgi.html

если на Inferno/Singualrity так ваще можно конфетку сделать

stevejobs ★★★★☆
()
Ответ на: комментарий от stevejobs

может ты уже объяснишь, что имеешь в виду и что предлагаешь, умный ты наш?

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

подход с версионированными интерфейсами и адаптерами - работает

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

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

A *real* operating system is just not going to be able to survive unless some procedures and policies are put in place to ensure future compatibility with legacy hardware.

We've put procedures in place. Its called *SOURCE CODE*. The NCR 5380 for example is the most godawful pile of crud scsi controller on the planet. Its old while good for its time nowdays is a joke.
Because we have this *SOURCE CODE* stuff it still works in Linux 2.3.30pre6 and people have extended it to support other platforms. So its extensible, its adaptable

tailgunner ★★★★★
()
Ответ на: комментарий от Ok

Блин, ну вы меня, прям, заинтриговали. А ведь не хотел ставить.

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

ekzotech ★★★★
()
Ответ на: комментарий от tailgunner

А опенсорс решил
опенсорс

не знаком с человеком с таким именем. И почему оно написано с маленькой буквы?

Не нравится - не венду.

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

не нравится - удали systemd, pulseaudio, journal-binary, выдерни шнур, выдави стекло :)

тонны легаси-кода
ломать совместимость и чинить

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

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

что ты не дурачок и не тролль, а реально хочешь разобраться
Алана Кокса

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

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

Из этого отрывка ничего непонятно.

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

Святая простота, в общем.

LamerOk ★★★★★
()
Ответ на: комментарий от stevejobs

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

Вот с этого места поподробнее.

encyrtid ★★★★★
()
Ответ на: комментарий от stevejobs

четай верхний пост этого треда: «БЫЛО БЫ такое в линуксе». В линуксе такого НЕТУ. И вот первое проявление, что такого нету: кто-то может пойти и совсем-совсем выпилить HAL.

Что до частного случая, я категорически ПРОТИВ системы, в которой невозможно пойти и совсем-совсем выпилить HAL.

Что до общей концепции, ты так ничего и не понял.

geekless ★★
()
Ответ на: комментарий от red_eyed_peguin

Работать медленнее, чем вин7 уже невозможно.

А как же виста? Она была ещё медленнее.

Эта песня идет со времен win2000.

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

ekzotech ★★★★
()
Ответ на: комментарий от stevejobs

подход с версионированными интерфейсами и адаптерами - работает.

ВНЕЗАПНО:

$ readelf -d /usr/bin/gpicview | egrep -o 'Shared library: \[.+\]'
Shared library: [libX11.so.6]
Shared library: [libgtk-x11-2.0.so.0]
Shared library: [libgdk-x11-2.0.so.0]
Shared library: [libgdk_pixbuf-2.0.so.0]
Shared library: [libcairo.so.2]
Shared library: [libgobject-2.0.so.0]
Shared library: [libglib-2.0.so.0]
Shared library: [libm.so.6]
Shared library: [libjpeg.so.8]
Shared library: [libc.so.6]

Как ты думаешь, что означают ЧИСЛА в именах библиотек?

geekless ★★
()
Ответ на: комментарий от stevejobs

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

Не смотрят. К тому же у них есть широкий выбор - от System/390, которая поддерживает еще приложения от System/360, до виртуализационных решений на Linux. И венда, конечно.

«тонны легаси-кода» и есть то, чем они занимаются.

Кодом занимаются программисты. Ну или те, кто по недоразумению занял их место.

мы же не о видеоплеерах для блондиночек говорим, надеюсь?

Опенсорсный видеоплеер (для блондинки или лысого хрена с твоей аватарки) вполне подчиняется общим закономерностям.

даже если предположить, что к Алану Коксу следует прислушиваться

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

может ссылочку дашь?

Вбей текст в гугл.

tailgunner ★★★★★
()
Ответ на: комментарий от stevejobs

если современная графическая подсистема, например, не может заэкспозить старое API, нужно нагородить адаптеров (или хотя бы попробовать это сделать!).

Так вперёд, нагороди.

Ой, ты ведь не будешь писать код для эмуляции 100500 устаревших интерфейсов поверх современных библиотек. И никто не будет. А виновато внезапно... отсутствие COM!

Верх логики просто.

geekless ★★
()
Ответ на: комментарий от geekless

А виновато внезапно... отсутствие COM!

Тут он, конечно, перегнул, но COM действительно один из столпов обратной совместимости в венде.

LamerOk ★★★★★
()
Ответ на: комментарий от stevejobs

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

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

user_undefined
()
Ответ на: комментарий от LamerOk

COM действительно один из столпов обратной совместимости в венде.

А исходный код - один из столпов обратной совместимости в Linux.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

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

vasily_pupkin ★★★★★
()
Ответ на: комментарий от vasily_pupkin

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

vasily_pupkin ★★★★★
()
Ответ на: комментарий от vasily_pupkin

Это даже не смешно.

Я и не собирался тебя смешить.

Нет никакой обратной совместимости с исходным кодом. Особенно в линаксе.

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

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

(пожимая плечами) Ну совмести мне обратно модули какого-нибудь нетфильтра с 2.6.23 с 2.6.26

Недавно собирал тулчейн для 2.6.22 с glibc-2.5, gcc 4.6.3 и прочим новым стаффом. Там было много обратной совместимости, вот что я скажу

vasily_pupkin ★★★★★
()
Ответ на: комментарий от xtraeft

сначала закрывать, потом заново открывать. мда.

В режиме гибернации ноут потребляет 1-2 ватта (в час), поэтому уж лучше его выключать.

Deleted
()
Ответ на: комментарий от xtraeft

Круто.

То есть, есть надежда, что выкатят официцальный клиент для Linux, если он будет работать лучше чем под wine.

mono ★★★★★
()
Ответ на: комментарий от stevejobs

совместимость - это когда ты запускаешь игрушку 95-ого года производства на современном компьютере, и она просто работает. Даже если тех проектов, на основе которых она когда-то писалась, уже 12 лет как не существует.

emerge unreal-tournament
99-ый год, конечно, не 95-ый, но показатель.

AnDoR ★★★★★
()
Ответ на: комментарий от Deleted

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

AnDoR ★★★★★
()
Ответ на: комментарий от AnDoR

Что это за бред? Как у меня мог ноут неделю жить в s2ram?

Что за бред что за бред? Как же у меня тогда ноут не прожил неделю в s2ram?

Deleted
()
Ответ на: комментарий от xtraeft

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

Если клиент, фактически существует, то в случае опубликования - это лишняя аудитория, небольшая, но аудитория.

саппортить линукс они в любом случае не будут

саппорить можно не весь линукс, а конкретно убунту.

mono ★★★★★
()
Ответ на: комментарий от Deleted

Или у тебя.

Ну у меня батарейка была на 7800 мАч и 11.1 В. Разряжалась, приблизительно, на 10% в сутки. Для моих нужд этого было более чем достаточно.
Сколько выходил расход энергии, считай сам.

AnDoR ★★★★★
()
Ответ на: комментарий от mono

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

сравним аудиторию маков с аудиторией линукса?
сравним количество дистрибутивов linux с количеством версий mac?

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

саппорить можно не весь линукс, а конкретно убунту.

тут согласен

xtraeft ★★☆☆
()
Ответ на: комментарий от tailgunner

А исходный код - один из столпов обратной совместимости в Linux.

Как ни парадоксально, вовсе нет. Исходники сами по себе ничего не дают. Даёт либо стабильный апи, либо коллектив разработчиков. О чём говорит и сам Кокс:

we have this source code stuff it *STILL* works in Linux 2.3.30pre6 and *PEOPLE* have extended it

Если меняется API и софтину некому поддерживать - софт идёт в помойку.

Чем действительно хорош com - это публичный двоичный api, и сделан он был МС как раз для того, чтобы можно было прозрачно менять реализацию интерфейса, не ломая _двоичной_ совместимости.

Когда мс всех загоняла на него, вопли стояли душераздирающие, но результат себя оправдал - под winxp sp3 идут приложения, сделанные для первых версий win95.

Судьба же bonobo и KParts, я думаю, тебе известна.

LamerOk ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.