@Pantene742

Возможна ли полноценная разработка на Go под Windows?

Насколько я знаю разработка на языках Python, Ruby, PHP под Windows имеет много нюансов. Не работают многие стандартные функции данных языков. Заточен ли Go также под Unix подобные системы так же, как, интерпритируемые языки ?. Или же на нем как на C++, можно писать под любую систему Но платформенно зависимые программы ?
  • Вопрос задан
  • 1352 просмотра
Решения вопроса 3
На любом языке, от Ассемблера до Хаскелля, используйте биндинги для WinAPI, и получите прибитое гвоздями к винде приложение.

На C++ вполне можно писать код, работающий на любой платформе.
Ответ написан
@qweqwa
Редкие пакеты Go ведут себя по иному в различных операционных системах.
Скажем, не работает syslog даже в MacOS X. Ну и в Windows не работает.
Так как это является специфической для операционной системы вещью.

Большая часть же программ на Go - является абсолютно переносимой.


Конечно, если ты заточешься на использования чисто Windows API, то программа не переедет просто так. Но ты обязательно заметишь, что ты затачивашься на Windows, так как для этого тебе понадобятся дополнительные специальные пакеты для Windows.

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

Как только ты начинаешь писать пользовательский интерфейс, то тут и возникает привязка. А как ты будешь писать пользовательский интерфейс? Если через web, то нет никакой привязки к Windows.

Если ты же ты пожелаешь использовать оконную систему Windows, то уже появляется привязка к Windows.

Есть еще т.н. кросс-системные библиотеки пользовательского интерфейса (Qt и т.п.), на них, к примеру, написан LiteIDE (это такое IDE под Go, которое написано с помощью самого Go). Посмотри его исходники.

LiteIDE - не привязан к операционной системе. Хотя и обладает вполне себе приемлимым пользовательским десктопным интерфейсом.

Насколько я знаю разработка на языках Python, Ruby, PHP под Windows имеет много нюансов. Не работают многие стандартные функции данных языков. Заточен ли Go также под Unix подобные системы так же, как, интерпритируемые языки ?. Или же на нем как на C++, можно писать под любую систему Но платформенно зависимые программы ?


Что-то вы не то знаете.
Все эти языки примерно одинаково переносимы между платформами.

Исключения лежат на поверхности:

если вы будете использовать пути файлов в стиле Windows ( C:\mycatalog\myfile ) или в стиле Unix ( /mycatalog/myfile ). Но вас никто не заставляет это делать. Так как внутри стандартных библиотек всех этих языков, как правило есть функции, которые позволяют работать с именами файлов независимо от системы.

также не получится работать с сокетами unix если вы под Windows. Если вы всегда используете TCP/IP, то нет никаких проблем с переносимостью.

Если вы про то, что программы не идеально работают на других системах, то это не проблема Windows. Вы можете написать на С++ программу на Ubuntu 14.04 LTS и она не скомпилируется на Ubuntu 16.04 LTS.
Ответ написан
@xabesawiv
Нет никакой разницы.
При использовании Vagrant, Docker или просто виртуальных машин.

Есть минимальная разница при тестировании непосредственно под Линукс.

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

Все языки - универсальны.

А вот конкретные библиотеки или т.п. - те могут быть заточены....
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы