Переход на Linux для разработки под Windows - плохая идея?

Я подумывал о переходе на Linux для разработки на C++ из среды Windows. Это плохая идея? На моем рабочем месте для наших проектов используются Windows и Visual Studio (немного C# и java, но сейчас я разрабатываю только на C++). Если они решат отправить меня в проект на C#, будет ли возможна разработка (моно?)? Какие трудности возникают при таком переходе?

Были бы у меня проблемы с работой над их проектами и наоборот? Я где-то читал, что будут проблемы с предварительно скомпилированными заголовками и т. Д. (Мы их используем) и кодировками (табуляции / пробелы, окончания строк и т. Д.).

Если это не так уж сложно, как мне начать? IDE? vim + make?

Спасибо.

Между прочим, мы делаем ВСЕГО ПО для windows.


РЕДАКТИРОВАТЬ: Спасибо, ребята, я думаю, это имеет смысл ..

Ответов (9)

Решение

Это плохая идея. Я вижу как минимум две причины:

  • Разрабатывайте на той же ОС, для которой вы пишете программное обеспечение.
  • Visual Studio Rock

Не очень хорошая идея, потому что поддержка Windows Forms в моно еще не завершена. Разработчики C# для Linux обычно используют GtkSharp для графического интерфейса пользователя, который добавит еще одну зависимость к вашему приложению и сильно отличается от Windows Forms. Но и GtkSharp неплох. Мне особенно нравится функция упаковки коробок в GTK, потому что она упрощает правильное изменение размера моих элементов управления (э-э, виджеты) и автоматически устраняет все проблемы с разрешением экрана.

Но также есть вероятность, что ваш существующий код может иметь другие зависимости, которых нет в Linux, особенно неуправляемый код, вызываемый с помощью P / Invoke. В этом случае разработка на Linux может оказаться невозможной.

Если вы разрабатываете для C++ и C#, придерживайтесь Windows. Отладчик Visual Studio просто великолепен, и кажется, что большинство IDE Linux несопоставимы (кроме Eclipse для Java). Кроме того, есть вероятность, что вы будете использовать другой компилятор, если вы работаете в Linux, и это может вызвать действительно странные ошибки.

Я перешел на веб-разработку на Linux, вот что я лично нашел

Чтобы делать то, что в конечном итоге не вызывает проблем (с использованием определенного программного обеспечения), мне нужна виртуальная машина. Wine еще недостаточно стабилен для нужного мне программного обеспечения

Также для моих конкретных потребностей, просто различие всего "Системного шрифта" вызывало многочисленные проблемы со сценариями ч / б Windows и unix / linux.

Я собираюсь вернуться к победе. Я ОБОЖАЮ LINUX, но в специализированной области, где большинство моих клиентов используют Windows и IE .... Мне нужно работать с тем, что у них есть ... Я думаю, что это лучший вариант для повышения производительности.

(личное мнение, а не указание от Бога)

Тим

Я пользователь Mac (бывший парень FreeBSD), поэтому я понимаю ваше внутреннее чувство. Вкратце: вы захотите использовать Visual Studio. Это лучший инструмент для ваших проектов на C#, и точка. Это также лучший инструмент для программирования на C++, ориентированного на Windows. Даже если бы это было не так, ваше тестирование пострадает, если вы не запустите ОС, на которой оно будет работать.

С другой стороны, всегда разрабатывайте на виртуальной машине. Особенно на винде. Используйте систему управления версиями и часто делайте снимки виртуальной машины. Когда вы это делаете, не имеет значения, используете ли вы Linux или OS X на своем хосте.

Ваше здоровье

Ник

Предлагаю придерживаться окон. Windows отлично подходит для разработки под Windows. Linux - это место, где вы можете писать кроссплатформенные вещи / вещи, специфичные для Linux (если хотите). Я пробовал Mono для изучения C#, он работал для игрушечных примеров, но не для некоторых частей .NET. Я снова переключился на окна. Не могу представить, что переход на Linux - хорошая идея. Я не собираюсь обижаться, это всего лишь мое мнение.

Если вам не хватает Linux - и вам нужно оставаться на компьютере с Windows, чтобы взаимодействовать с вашей командой И вашим рабочим приложением - установите Cygwin и инструменты GNU Win32 .

В настоящее время я разрабатываю как для Windows, так и для Linux. Я считаю, что очень полезно компилировать один и тот же код для этих двух (или, может быть, более) платформ, поскольку вы можете найти некоторые ошибки кодирования благодаря vc ++ и некоторые другие благодаря gcc. Конечно, самая важная платформа - это та, для которой вы разрабатываете. Если ваше приложение будет работать в Windows, разрабатывайте его на той же платформе, и только если вы можете выделить больше ресурсов, попробуйте перенести его на Linux или другое. В любом случае, думать о переносимости во время разработки - хорошая привычка, это подразумевает максимально возможное использование стандартных решений.

Если вы абсолютно проданы на Linux, VMWare очень хороша для запуска виртуальной машины, и если вы компилируете свои Linux / кроссплатформенные программы с помощью инструментальной цепочки mingw, добавляя одну зависимость, которая может быть статической, вы не должны получать никаких окон. ошибки.