Преимущества выбора Windows вместо Unix в качестве платформы разработки - PullRequest
5 голосов
/ 01 февраля 2009

Есть ли какие-либо технические преимущества для Windows / Microsoft как платформы, которую можно использовать при разработке на диалекте Unix, таком как Linux или Solaris?

Я знаю, что компании иногда выбирают Microsoft, потому что просто не хватает программистов, которые знают Unix, или что эти программисты гораздо дороже нанимать.

Итак, при условии, что все разработчики одинаково хорошо знают Unix и Microsoft, будут ли еще случаи, когда вам лучше разрабатывать в Windows?

Ответы [ 10 ]

9 голосов
/ 01 февраля 2009

Для меня есть только два аргумента в пользу использования Windows в качестве платформы разработчика:

  1. Вы должны это сделать, потому что вы занимаетесь разработкой .Net / Windows (или потому, что компания просто не дает вам выбора); или
  2. Приложения, в частности Microsoft Office / Exchange. Извините, но OpenOffice ужасен по сравнению с Word / Excel.

Кроме того, у imho Linux есть и другие преимущества, включая:

  • НАМНОГО более быстрая файловая система (особенно важно при работе с большим количеством маленьких файлов). В прошлом году я перешел со времени сборки 8-10 минут до 2-3 только этим переключателем (сборка муравья с той же кодовой базой);
  • Обычно ваша среда разработки соответствует вашей производственной среде (если вы работаете в среде Windows, ваша среда разработки будет практически гарантирована для Windows), что может быть полезно. У нас были проблемы с видимостью пути к классам Java из-за различий между JBoss в Windows и Linux; и
  • Гораздо лучший набор инструментов командной строки (да, я знаю, вы можете использовать Cygwin и т. Д., Но это не так хорошо).

Это одна из причин, почему я нахожу идею Mac в качестве моей следующей рабочей станции настолько привлекательной: вы можете выглядеть как Unix с приложениями (например, Office) или Windows с приличной файловой системой (будет еще лучше, если / когда OSX принимает ZFS), в любом случае это победа. Единственное, что меня по-настоящему расстраивает, так это то, что Apple делает глупости, например, откладывает выпуск Java 6 на год, чтобы они могли включить Leopard Look and Feel.

9 голосов
/ 01 февраля 2009

Просто у меня в голове:

  • .NET (хотя моно действительно великолепно)
  • Visual Studio - вероятно, лучшая IDE
  • Отличная документация (на мой взгляд, библиотека MSDN гораздо более удобна для разработчиков, чем справочные страницы)
  • Огромная база пользователей (это больше похоже на бизнес, но все же это очень важный фактор)
  • Двоичная совместимость (гораздо проще поддерживать 4-5 ядер и стандартные версии библиотеки C, чем бесконечное количество комбинаций, которые можно найти в дистрибутивах Linux)
5 голосов
/ 01 февраля 2009

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

Что касается конкретных технических преимуществ для платформы Windows, за исключением большого сообщества разработчиков и хранилища информации о разработке и широко поддерживаемых IDE, таких как Visual Studio, я бы сказал, что вам будет сложно найти такую. Даже там, Eclipse может сделать такую ​​же работу с технологией, независимой от платформы.

3 голосов
/ 01 февраля 2009

Системы Microsoft, как правило, имеют гораздо лучшую интеграцию между различными частями - гораздо меньше гетерогенности, о которой стоит беспокоиться, если вы используете только двоичное программное обеспечение (x86 и comctl3d намного проще поддерживать, чем все, на чем работает * nix).

Кривая обучения в Windows невелика, но имеет большую общую дистанцию. В Unix / Linux начало - это борьба, но потом все становится проще, когда внутренняя работа ОС начинает обретать смысл.

По крайней мере, это был мой опыт общения с ними. Windows для быстрой отдачи, Linux, если вы собираетесь делать что-то гораздо более долгосрочное. И виртуальные машины, если вы не можете решить:)

2 голосов
/ 01 февраля 2009

Я думаю, что этот вопрос представляет ложную дихотомию. Нет причин, по которым вам нужно выбирать windows вместо unix или наоборот. Виртуализация бесплатна и проста. Это лучшее из обоих миров!

2 голосов
/ 01 февраля 2009

Одной из причин, по которой у нас есть платформы для разработки Windows (даже при том, что мы работаем на Linux или Solaris), является общая среда для всех .

Это означает, что все различные группы населения, участвующие в реализации программного обеспечения:

  • не все разработчики (деловые, функциональные люди также заинтересованы в рабочей среде)
  • все на одной платформе (Windows)
  • использовать все те же инструменты для письма / общения (как в Word, PowerPoint)
  • может иметь такую ​​же среду на ноутбуке

Вкратце: единообразие среды для всех (как разработчиков, так и не разработчиков).


Другая причина - амортизация : легко управлять амортизацией для ПК, где службы легче полнофункционального Unix-сервера (например, Sun Fire, F15K или F50K, ... ): последним требуются дорогостоящие контракты на оказание помощи (например, «бронза», «серебро» или «золото» в зависимости от необходимого уровня). ПК легче починить / заменить, и он не так критичен, если разработчик «испортит» его и полностью сломает;)

С другой стороны, недостатком этого является то, что вы не меняете ПК каждый день: это означает управление большим парком настольных компьютеров, вы не можете просто принять решение об обновлении таким образом (и это касается и Os).

Таким образом, если другие ответы касаются «виртуальной машины», тогда как ваш набор компьютеров относится к 2003 году, с 40Go жесткого диска и 1, может быть 2Go памяти ..., вы понимаете, что «виртуализация» - это не всегда очевидное решение.
Следовательно, некоторые Unix-серверы «интеграции» необходимы разработчикам для тестирования своих продуктов в среде, более близкой к целевой. В некотором смысле, это лучше, поскольку эти серверы интеграции управляются унифицированным способом, избегая синдрома «это работает для меня TM », в отличие от виртуальной машины, где каждый разработчик имеет свой собственный root / администратор своего маленького мира / сервера;).

0 голосов
/ 14 марта 2009

дай мне apache mysql (хорошо, postgres в крайнем случае) php и затмение .. кто заботится об ОС ..

0 голосов
/ 14 марта 2009

Почему бы не использовать оба?

В любом сценарии вы можете использовать виртуальную машину в Windows или Linux / Unix, практически ничего не используя Virtual Box или Vmware player. Или вы можете удаленный рабочий стол / VNC на другую платформу из вашего окна разработки. Если вы разрабатываете в .net, вам, вероятно, будет лучше в Windows для разработчиков. Если вы разрабатываете для LAMP, подойдет либо Windows / * nix.

0 голосов
/ 01 февраля 2009

Периферийные причины некоторых специфических видов развития:

  • вам нужно посмотреть, как все выглядит как в Firefox, так и в Explorer
  • вы работаете с flash (какой AFAIK вы не можете разработать на linux, а игроки ужасны).
  • вы работаете над проектом, включающим интеграцию MS Office
  • В вашем офисе есть какая-то чудовищная система почты или заметок, в которую вы не можете войти другим способом. То же самое для некоторых настроек VPN.

Я считаю все эти вещи достойными сожаления.

0 голосов
/ 01 февраля 2009

Я могу привести вам общие аргументы, которые могут приводить ребята из Windows, но я не всегда согласен с ними.

  • Люди иногда думают, что Windows-блоки во время производства проще в обслуживании и развертывании. Это потому, что есть много визуальных инструментов, доступных для администратора. Поэтому они предпочитают .Net или специфичный для Windows язык разработки для легкой интеграции.

  • Если ваши клиенты или внутренние клиенты используют все настольные компьютеры с ОС Windows, некоторые утверждают, что работа с серверами Windows требует меньших усилий. Это включает в себя материал для совместного использования документов Microsoft Office (то есть sharepoint) или материал для общего доступа к файлам Windows. Очевидно, что проще написать приложение .Net, чтобы справиться с такими специфическими для Microsoft ограничениями.

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

...