LINUX.ORG.RU
Форум — Talks  

Эрик Реймонд: проприетарщине конец

 ,


0

2

Легендарный программист, много сделавший для развития опенсорс, заявил в одной известной соцсеточке, что современные БЯМ скоро отправят софт с закрытыми исходниками на свалку истории.

Поводом для того стала успешная попытка реверс-инжениринга какой-то досовской игры. БЯМ правильно распознала, что игра написана на Борланд Паскаль, и даже сгенерила очень читаемый исходник. Этот исходник Эрик, при помощи той же ИИшки, перевёл на раст, и оно заработало.

Также Эрик добавил, что ему известны случаи успешного реверс-инжениринга AAA игр.

★★★★★

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

Обрабатывать ошибки можно по-разному.

Стандартный уровень обработки ошибок в bash'е: «Что-то пошло не так».

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

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

Чел, у меня тут ИИ работал с функцией, которая с хоста на хост делает запрос по HTTPS, парсит результат и сохраняет в кэш, а если что-то пошло непредвиденно, то шлёт email админу и пишет в лог. :)

Какой баш, какие файлы, какие процессы, хароооош.

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

Во-первых, повторю - отстань от баша, скрипты пишут на posix-шелле. Во-вторых, если у тебя в скрипте где-то отсутствует нужный файл, то его имя так или иначе в логе появится почти всегда (перед аварийным завершением). Если тебе не нужно аварийное завершение, то можно заранее проверить через if [ -f ], но это нужно редко.

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

Вот недавно обсуждаемый пример:

find ~/imgs/wallpapers -type f | shuf -n1 | xargs qs -c noctalia-shell ipc call wallpaper set
Тут вообще нет проверки ошибок. И обычно мало кто заморачивается с вот такими вариантами:
#!/usr/bin/env bash
set -euo pipefail

WALLPAPER_DIR="$HOME/imgs/wallpapers"

if [[ ! -d "$WALLPAPER_DIR" ]]; then
    echo "Ошибка: директория '$WALLPAPER_DIR' не найдена." >&2
    exit 1
fi

for cmd in find shuf xargs qs; do
    if ! command -v "$cmd" &>/dev/null; then
        echo "Ошибка: команда '$cmd' не найдена в PATH." >&2
        exit 1
    fi
done

mapfile -t files < <(find "$WALLPAPER_DIR" -type f 2>/dev/null)

if [[ ${#files[@]} -eq 0 ]]; then
    echo "Ошибка: в '$WALLPAPER_DIR' не найдено файлов." >&2
    exit 1
fi

wallpaper=$(printf '%s\n' "${files[@]}" | shuf -n1)

if [[ -z "$wallpaper" ]]; then
    echo "Ошибка: не удалось выбрать случайный файл." >&2
    exit 1
fi

echo "Устанавливаю обои: $wallpaper"

if ! qs -c noctalia-shell ipc call wallpaper set "$wallpaper"; then
    echo "Ошибка: не удалось установить обои через qs." >&2
    exit 1
fi

echo "Готово."

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

«Ошибка: директория '$WALLPAPER_DIR' не найдена.» >&2

Тебе find это сам напишет.

Ошибка: команда '$cmd' не найдена в PATH.

А про это тебе напишет шелл.

Ошибка: в '$WALLPAPER_DIR' не найдено файлов.

Это, пожалуй, единственный осмысленный лог ошики в этом скрипте.

Ошибка: не удалось выбрать случайный файл.

Надо ещё проверять код возврата из echo и «не удалось сделать echo».

Ошибка: не удалось установить обои через qs.

Об этом должен писать qs.

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

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

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

Крайне слабо верю в серьёзную разработку на пАскале.

Dos Navigator

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

Ну, во-первых, у корпов аудитория раз в 100500 побольше, чем полтора фрика-любителя-швабодки. Во-вторых, ты серьезно думаешь, что корпы делают деньги на том, чем знамениты? Лол.

ant1
()
Ответ на: комментарий от firkax

Сообщения про ошибки. При том, что когда юзер запускает скрипт/программу ему нужно человекочитаемое сообщение о причине ошибки в stdout. Без другого мусора.

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

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

Словами не описать… Весь commit message это одна сплошная строка слопогенератора, который пишет сам себе заметки нечитабельной абракадаброй.

Чую, скоро такого будет полный гитхаб.

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

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

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

Я не знаю, что более иронично:

  • Чел считает, что сообщения об ошибках должны выводиться в stdout (сфигали?)
  • Он думает, что его код туда их выводит.
wandrien ★★★★
()
Ответ на: комментарий от wandrien

А кто сказал, что это мой код? Этот код я запостил вообще для иллюстрации примера простыни, которая разбирает ошибки.

Да, я просто попросил Deepseek разобрать

find ~/imgs/wallpapers -type f | shuf -n1 | xargs qs -c noctalia-shell ipc call wallpaper set
на такую простыню. Код не читал, моя аргументация от него не зависит.

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

попросил Deepseek разобрать

Код не читал

🤣🤣🤣🤣 спасибо, отличная иллюстрация темы этого треда

wandrien ★★★★
()

Этот исходник Эрик, при помощи той же ИИшки, перевёл на раст, и оно заработало.

"... с особой жестокостью".

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

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

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

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

Причем отказаться очень сложно,почти невозможно. Чаще всего нужно строго объяснять что делать не нао, а потом поправить вручную.

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

Я базы данных(всякие фокспро и прочие базы из 90х) реверсил одно время по работе. Вполне доступное занятие даже без БЯМ, а всего лишь при наличии шеснадцатиричного редактора и скриншотов от пользователя. Сидишь неделю и выводишь схему БД по блобу базы данных.

PS: Нужно было для переноса данных от софта конкурента и замещение его древнего софта своим современным.

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

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

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

AlexVR ★★★★★
()

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

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

Хрюшу и ту всем миром скопировать не могут

Можно, но зачем?

Кому по работе надо (ПО для управления какие-нибудь станком ЧПУ), те следуют принципу «работает не трогай», да и стоимость лицензии на винду там составляет ничтожную часть расходов.

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

Для софта свежее 10-15 летней давности уже нужна минимум семёрка или даже десятка. Но сейчас всё больше софта уходит в веб и работает везде где есть браузер.

Если уж эмулировать какую-то ОС в 2026, то скорее Android, под него приложений больше и есть документированный API.

При этом авторы копии винды при любом серьёзном её применении рискуют не вылезать из судов из-за юристов MS.

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

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

Смотри какое дело.

Ценность платного софта часто не в самом софте. А, например, в том что в нём за годы отлажены 100500 граничных случаев (и удачи этот путь пройти заново даже с LLM). В интеграциях с другим софтом (о которых ещё надо договориться бывает). В сообществе и обучающих материалах.

Это если мы про профессиональный софт. На игрушках 30 летней давности никто не зарабатывает уже. А если ты склонируешь GTA 6, то тебя засудят за использование ресурсов игры. А если ты сделаешь свои ресурсы, то это уже будет другая игра.

KivApple ★★★★★
()

Этот агрессивный пиар ИИ начинает настораживать.

dobro
()
Ответ на: комментарий от LightDiver

В реальности

В реальности всё это схлопнется через 2-3 года. Я не помню, когда начался этот хайп, поэтому не назову точной даты.

dobro
()
Ответ на: комментарий от KivApple

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

seiken ★★★★★
() автор топика

Эрик никогда не страдал от переизбытка естественного интеллекта

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

затея обречена быть уделом горстки любителей

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

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

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

Кто ж этим заниматься будет? Бизнесу это не интересно, ему проще готовое купить. А нанимать для программиста - тут уже риски заложены. Зарплату плати, а результат - как повезёт. (Ну и что, что кривое, зато своё).

И это я молчу, что 1С в том числе нужен для налоговой - а это уже совсем другая песня.

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

Хрюшу и ту всем миром скопировать не могут, позорище

А смысл её копировать? Закопайте уже стюардессу. Windows любой версии уже на свалке истории.

skiminok1986 ★★★★★
()

...ему известны случаи успешного реверс-инжениринга AAA игр.

Списочек в студию!

...отправят софт с закрытыми исходниками на свалку истории.

Смелое заявление.

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

...осилили свою ось.

Типо это большая сложность?

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

...рискуют не вылезать из судов из-за юристов MS.

Дык мы им не скажем. :⁠-⁠D

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

...базы данных(всякие фокспро и прочие базы из 90х) реверсил...

Я до сих пор этим занимаюсь, с учётом юридических нюансов, кстати.

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

Например это позволит реализовать новые более эффективные методы оптимизации налогов.

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

Ты ведь ни разу не имел дело ни с бухгалтерией, ни с налогами, ни с 1С. Так ведь?

bbc69
()
Ответ на: комментарий от firkax

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

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

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

Крайне слабо верю в серьёзную разработку на пАскале.

В нее не надо верить, она есть. На Делфи куча всего написано, оно еще живет и вполне используется. Вот делают что-то новое или нет – я не знаю.

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

Там же и просто декомпиляторы есть. «Валькирия» чтоль... Тоже приходилось восстанавливать логику софта умершего разработчика (

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

В реальности

В реальности всё это схлопнется через 2-3 года. Я не помню, когда начался этот хайп, поэтому не назову точной даты.

Я сохранил этот комментарий. Если ноут выживет, ССД выживет и я вспомню, я отпишусь тебе года через 2-3.

Хайп начался в 2023 году в конце.

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

Ошибка: команда ‘$cmd’ не найдена в PATH.

А про это тебе напишет шелл.

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

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

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

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

Loki13 ★★★★★
()
Вы не можете добавлять комментарии в эту тему: только для зарегистрированных, score>=50.