Редкие пакеты 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.