Любой разработчик часто или не очень, но решает этот вопрос.
Всё зависит от того насколько часто вы меняете работу или учите и используете что-то новое (языки, технологии и т.д.)
Обычно при выборе решают такие вопросы:
- какую ось выбрать;
- какой ide;
- как организовать исходники;
- опционально: как организовать команду;
- важный вопрос по организации самого кода;
- стоимость платформы (да бывают и платные компоненты :-)
- скорость развертывания платформы;
- насколько будет портабельно приложение.
В принципе можно много всего перечислить, но это что пришло в голову сразу.
На самом деле на такие темы можно книги писать. Я просто напишу пару наблюдений. Всё дело в том, что практически под каждый язык программирования приходится искать почти с нуля решение по платформе. Но как правило любая команда/фирма/фрилансер уже имеет свой джентельменский набор интсрументов и обычно всё обходится его небольшим дополнением/модификацией.
Лично я и моя команда сейчас наоборот только в поиске интсрументов, с платформой уже определились. Мы выяснили несколько важных вопросов для себя.
Думаю одним из важных принципов при выборе платформы должна быть относительная свобода разработчика. Именно по причине свободы многие сильные программисты не идут работать в большие корпорации, а работают в небольших командах. Им просто дают пользоваться теми инструментами, с которыми они привыкли работать.
Поэтому я хочу чтобы мы разделили платформу с понятием инструмента. Для себя я решил назвать платформой тот минимум, без которого приложение просто не сможет работать + систему контроля версия исходников. Т.е. это ОСь, необходимые библиотеки и сервер приложений/интерпретатор для языка. Всё остальное остается на усмотрение программиста. Я просто могу предложить проверенные инструменты для конкретного частного случая, не более.
Итак, если коснуться конкретики…
Наша команда занимается веб-разработкой. Это сайты и веб-приложения средней сложности. На данный момент я активно использую python + django, но бывает еще приходится возвращаться к php. Для веб-приложения очень важен момент портабельности, поэтому выбор платформы в плане ОСи уже пал на юникс. Большинство хостинговых серверов работает на юниксе. Плюс мы делаем портирование при необходимости на винду.
Но в целом программист остается свободным в выборе интсрументов. Есть тестовый сервер, на котором всё должно работать, он просто делает периодические сверки и тесты работоспособности системы. Конкретизируя, приведу пример. Если человек работает на винде, то обычно он использует vmware с юниксом для основной разработки. Если человек изначально работает под юниксом, всё намного проще. Весь софт работает тогда под родной системой. В любом случае в нашем случае программист подстраивается под целевую ОСь, на которой всё будет работать – это и есть ограничение, остальное на его усмотрение.
Конечно же в любой команде есть свои правила по написанию кода, форматированию и документированию, но это уже не относится к теме.
Суть статьи в том, что на самом деле не так уж страшно давать программисту свободу. Просто должны быть средства контроля работы приложения.