Описание тега portability

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

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

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

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

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

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

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