Linux как полноценная платформа разработки?

8

Я хочу сделать мою Fedora Linux способной к следующему:

  1. Используйте Linux для полной платформы разработки, не требуя какой-либо другой установки ОС, но все еще в состоянии создавать и тестировать программы на разных платформах.

  2. Полностью замените Windows-машину на все остальные работы, например, Office, Paint, Remote Desktop и т. Д.

Можете ли вы предложить проекты с открытым исходным кодом и инструменты для достижения вышеуказанных целей?

Xinus
источник
Вы хотите протестировать свою программу на других платформах с их установкой? Или я неправильно понимаю эту часть
Майкл Мрозек
3
Этот вопрос сформулирован очень общий и, следовательно, не так просто ответить. Было бы полезно, если бы вы могли немного ближе указать, что именно вы хотите сделать. Возможно, что некоторые платформы поддерживаются одним решением, но не все возможные. Кроме того, вы принимаете виртуальные машины?
txwikinger

Ответы:

3

Вы можете легко заниматься кроссплатформенной разработкой, будь вы системным программистом, веб-разработчиком или разработчиком настольных приложений. Если вы работаете в системах, то любые утилиты и / или драйверы, которые вы пишете для linux, вероятно, будут работать хорошо для других * nix с минимальными изменениями. При условии, что вы пишете стандартный код C и не используете слишком много системных вызовов, их может быть даже легко перенести на окна.

Если вы являетесь разработчиком настольных приложений, вы можете использовать GTK, QT или wxWidgets, и ваше приложение, вероятно, будет хорошо работать на трех основных платформах сегодня (* nix, Windows, Mac). Опять же, сведите системные вызовы к минимуму или изолируйте их в библиотеке-оболочке, которая будет зависеть от системы. Вы также вызываете виртуальную машину, такую ​​как JVM и / или CLR, которая позволит приложению работать по всем направлениям.

Если вы веб-разработчик, то вы, вероятно, столкнетесь со слишком многими различными альтернативами на выбор. Я предпочитаю небольшой веб-сервер под названием Cherokee, и я разрабатываю и запускаю приложения ASP.NET (моно) и Django, которые работают на нем и используют бэкэнд PgSQL.

Таким образом, можно сделать вывод, что кроссплатформенная разработка в Linux может быть выполнена при условии, что вы можете скомпилировать код на целевой платформе и помнить об этом при написании своего кода или при назначении виртуальной машины. Другое дело, что вы можете столкнуться с «Парадоксом выбора» и не знать, что использовать. Для этого прочитайте ниже мой ответ на второй вопрос.

Что касается второго вопроса, лучший ресурс, который я нашел, называется Альтернативы с открытым исходным кодом . На этом веб-сайте перечислены коммерческие программы и их альтернативы с открытым исходным кодом. Почти все альтернативы работают на Linux и FreeBSD.

Йонас Гораускас
источник
1
Альтернативные полезные сайты: 1) alternativeto.net 2) osalt.com 3) linuxalt.com 4) linuxappfinder.com/alternatives 5) ubuntuguide.org/wiki/Alternatives 6) similarsites.com
Битек
Извините, но драйверы устройств очень, очень сильно зависят от ядра (и даже от его точной версии). Куски, которые напрямую взаимодействуют с ядром, более или менее тесно связаны с ним (такие вещи, как glibc, ps (1), mount (8)), другие «системные» кусочки гораздо меньше (например, sort (1) или bash). (1) «простые» заурядные программы на C / C ++, которые будут компилироваться и запускаться одинаково на различных Unices). Весь графический интерфейс не зависит от ядра, но имеет свои правила.
vonbrand
4

Определите «платформу». Вы не можете разумно протестировать программное обеспечение, предназначенное для использования на Windows или Mac, без фактической работы этих операционных систем, даже если для сборки на Linux можно использовать кросс-компиляцию. VMware - отличный инструмент для реального тестирования на других операционных системах.

Вторая часть вашего вопроса, вероятно, должна быть совершенно отдельным вопросом. Но вы можете использовать OpenOffice.org или Google Docs для замены MS Office, Pinta или GIMP или чего-либо другого, чтобы заменить Paint, VNC или Empathy + Vinagre для замены удаленного рабочего стола и т. Д. И т. Д.

Было бы легче ответить на эти вопросы, если бы вы привели более конкретные случаи использования.

Сэнди
источник
Вы можете помнить, что Apple лицензирует MacOSX только для работы на компьютерах Apple. Или вы можете игнорировать это, в зависимости от того, как вы относитесь к лицензиям на термоусадочную пленку.
Дэвид Торнли
Да, конечно, вы можете использовать OS X в качестве хост-ОС и запускать Linux и Windows с VMware Fusion.
Сэнди
2

Ууууууууу, № 1 довольно глупо, сэр. Я не знаю, есть ли способ достичь этой цели. Кросс-компиляция с другими * nixes может быть выполнена ( с небольшой головной болью ) на вашем блоке разработки, но как именно вы должны запускать этот код без соответствующей ОС и архитектуры? Существуют обширные попытки эмуляции системы , но в конечном итоге это является препятствием. Если вы хотите протестировать программное обеспечение на ОС / архитектуре, запустите его на этой ОС / архитектуре!

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

Если честно, я уверен, что это невозможно и в других операционных системах.

№ 2 намного проще

и так далее. Я бы помог больше, но острота ваших вопросов резко падает.

Эли Фрей
источник
1

Это зависит от вашей целевой платформы. Если вы разрабатываете для виртуальной платформы (Java или даже .NET), вы должны быть более чем хорошо. Есть некоторые платформы, которые даже удобнее в Linux, чем в Windows (например, Ruby).

Что касается Linux как настольного компьютера, вам просто нужно перечислить программное обеспечение, которое вы ищете. В настоящее время практически нет программного обеспечения для настольных компьютеров с Windows, у которого нет альтернативы Linux.

Pablo
источник
1

MonoDevelop должен помочь вам разобраться в разработке:

MonoDevelop - это среда разработки, в первую очередь разработанная для C # и других языков .NET. MonoDevelop позволяет разработчикам быстро создавать настольные и ASP.NET веб-приложения для Linux , Windows и Mac OSX . MonoDevelop позволяет разработчикам легко переносить приложения .NET, созданные с помощью Visual Studio, на Linux и поддерживать единую базу кода для всех платформ.

(акцент мой)

Ларри Смитмиер
источник