Здравствуй ЛОР, я не знаю, как правильно задать вопрос… Постараюсь описать всё понятно, чтобы вы поняли, что меня интересует. Сразу скажу, что я не программист - я просто человек, который решил посмотреть на язык, испугался, и побежал на форум.
Дело было так:
Я писал маленькую программку/скрипт на Golang. Её задачей было удалять тот файл, который не нужен, а его важность определял пользователь. В качестве эксперимента у меня лежала картинка doks.png. Сидя в VS Code мне приходилось вводить её полное название(doks.png), а мне хотелось только имя файла(doks). Я нажал [TAB], но вместо привычного терминального выбора близлежащего файла у меня сработал длинный перенос строки. Я подумал, что это проблема самого VS Code, запустил программу в Allacrity, но там было тоже самое. Тогда я решил, что если я скомпилирую проект в бинарник, проблема точно решится. Компиляция не помогла - оказалось, что перенос вызывает сам fmt.Scan()
. Конец истории.
Вроде ничего страшного, но оно есть. Бинарник на выходе получил название родительской директории. Быть может это фиксится флагами, я ещё не разобрался.
Страшно здесь то, что бинарник получился просто «бинарником». Ни .Appimage, ни .x86_64(как делает Godot). Это натолкнуло меня на мысль, что я неправильно понимаю идею Golang. Почитав где-то на Хабре про сборку пакетов, я увидел упоминания о go install
, где предлагалось инсталлировать пакеты в папку установки языка, куда-то тоже в раздел с бинарниками.
Это натолкнуло меня на другую мысль - а может Golang нужен, чтобы писать на нём какие-то демоны или или какие-то кусочки бэкенда в стиле «работает - не трогай»?
Единственный стиль установки программ, с которым я знаком, это виндовсовый. У тебя есть .exe - не просто чистый бинарник, а исполняемый бинарник конкретного стандарта. Он имеет свой путь, по которому он вызывается и получает аргументы(например: C:/Programm\ Files/MySoftware/Software.exe –help). В моём случае это больше похоже на какую-то запакованную программу, которая должна находиться строго с остальными, которая вызывается по её названию(команде), причём абсолютно не важно, где я сейчас нахожусь, хоть на примонтированном DVD-диске. Я правильно всё понимаю? Если да, то это больше похоже на поведение демонов или системных утилит, вроде top. Это нормально? Оно так и задумано? Есть ли тогда разница в «чистых бинарниках»(безформатных) и .appimage?