Linux comme plate-forme de développement complète?

8

Je veux rendre mon Fedora Linux capable de suivre:

  1. Utilisez Linux pour une plate-forme de développement complète sans nécessiter aucune autre installation de système d'exploitation, mais vous pouvez toujours créer et tester des programmes sous différentes plates-formes.

  2. Remplacez complètement la machine Windows pour tous les autres travaux, par exemple Office, Paint, Remote Desktop, etc.

Pouvez-vous suggérer des projets et des outils open source pour atteindre les objectifs ci-dessus?

Xinus
la source
Vous souhaitez tester votre programme sur d'autres plateformes en les faisant installer? Ou est-ce que je comprends mal cette partie
Michael Mrozek
3
Cette question est formulée de manière très générale et donc difficile à répondre. Il serait utile de préciser un peu plus précisément ce que vous voulez faire. Il se peut que certaines plates-formes soient prises en charge par une seule solution, mais pas toutes les plates-formes possibles. De plus, acceptez-vous les VM?
txwikinger

Réponses:

3

Vous pouvez facilement faire du développement multiplateforme, que vous soyez programmeur système, développeur Web ou développeur d'applications bureautiques. Si vous êtes dans les systèmes, tous les utilitaires et / ou pilotes que vous écrivez pour linux sont susceptibles de bien fonctionner pour d'autres * nix avec des modifications très minimes. À condition que vous écriviez du code C standard et n'utilisiez pas trop d'appels spécifiques au système, ils peuvent même être facilement portés vers Windows.

Si vous êtes un développeur d'applications de bureau, vous pouvez cibler GTK, QT ou wxWidgets et votre application fonctionnera probablement bien sur les 3 principales plates-formes aujourd'hui (* nix, Windows, Mac). Encore une fois, limitez au minimum les appels spécifiques au système ou isolez-les dans une bibliothèque d'encapsulage qui sera spécifique au système. Vous appelez également cibler une machine virtuelle comme la JVM et / ou CLR qui permettra à l'application de fonctionner dans tous les domaines.

Si vous êtes un développeur Web, vous risquez de rencontrer trop d'alternatives différentes. Je préfère un petit serveur Web appelé Cherokee et je développe et exécute des applications ASP.NET (mono) et Django qui s'exécutent dessus et utilisent un backend PgSQL.

La conclusion est donc que le développement multiplateforme sous Linux peut être fait, à condition que vous puissiez compiler le code sur la plate-forme cible et que vous gardiez cela à l'esprit lors de l'écriture de votre code ou si vous ciblez une machine virtuelle. L'autre point est que vous pouvez rencontrer The Paradox of Choice et ne pas savoir quoi utiliser. Pour cela, lisez ci-dessous ma réponse à la deuxième question.

Quant à la deuxième question, la meilleure ressource que j'ai trouvée s'appelle Open Source Alternatives . Ce site Web répertorie les logiciels commerciaux et leurs alternatives open source. Presque toutes les alternatives fonctionnent sous Linux et FreeBSD.

λ Jonas Gorauskas
la source
Désolé, mais les pilotes de périphériques dépendent très, très largement du noyau (et même de la version exacte de celui-ci). Les morceaux qui interagissent directement avec le noyau en dépendent plus ou moins intimement (des trucs comme glibc, ps (1), mount (8)), d'autres morceaux "système" beaucoup moins (par exemple, sort (1) ou bash (1) sont "juste" des programmes C / C ++ courants, qui se compileront et s'exécuteront exactement de la même manière sur des Unices assortis). L'ensemble de l'interface graphique est indépendant du noyau, mais a ses propres règles.
vonbrand
4

Définissez la «plateforme». Vous ne pouvez pas raisonnablement tester un logiciel destiné à être utilisé sur Windows ou Mac sans exécuter réellement ces systèmes d'exploitation, même s'il est possible d'utiliser la compilation croisée pour le construire sur Linux. Pour de vrais tests sur d'autres systèmes d'exploitation, VMware est un excellent outil.

La deuxième partie de votre question devrait probablement être une question totalement distincte. Mais vous pouvez utiliser OpenOffice.org ou Google Docs pour remplacer MS Office, Pinta ou GIMP ou quoi que ce soit pour remplacer Paint, VNC ou Empathy + Vinagre pour remplacer Remote Desktop, etc. etc.

Il serait plus facile de répondre à ces questions si vous donniez des cas d'utilisation plus spécifiques.

Sablonneux
la source
Vous voudrez peut-être vous rappeler qu'Apple autorise uniquement MacOSX à fonctionner sur des ordinateurs de marque Apple. Ou vous pouvez ignorer cela, selon ce que vous pensez des licences de rétrécissement.
David Thornley
À droite, vous pouvez bien sûr utiliser OS X comme système d'exploitation hôte et exécuter Linux et Windows avec VMware Fusion.
Sandy
2

Weeeeeeel, # 1 est tout à fait le doozie, monsieur. Je ne sais pas s'il existe un moyen d'atteindre cet objectif. La compilation croisée vers d'autres * nix peut être effectuée ( avec un peu de mal de tête ) sur votre boîte de développement, mais comment êtes-vous censé exécuter ce code sans le système d'exploitation et l'architecture appropriés? Il existe de nombreuses incursions dans l' émulation du système , mais en fin de compte, c'est un flou. Si vous souhaitez tester un logiciel sur un OS / architecture, exécutez-le sur ce OS / architecture!

Maintenant, d'autre part, il existe des outils qui facilitent la construction du même projet dans de vastes gammes de configurations. Cmake est probablement le plus connu et le plus testé. Au moins, cela vous aidera à tester votre projet sur d'autres systèmes, ou encouragera d'autres à le faire pour vous.

Pour être au courant, je suis presque sûr que cela est également impossible sur d'autres systèmes d'exploitation.

# 2 est beaucoup plus facile

et ainsi de suite. J'aiderais davantage, mais l'acuité de vos questions diminue fortement.

Eli Frey
la source
1

Cela dépend de votre plateforme cible. Si vous développez pour une plate-forme virtuelle (Java ou même .NET), cela devrait aller plus que bien. Certaines plateformes sont encore plus conviviales sous Linux que sous Windows (par exemple Ruby).

Quant à Linux en tant que bureau, il vous suffit de lister le logiciel que vous recherchez. Il n'y a pratiquement aucun logiciel de bureau Windows qui n'ait pas d'alternative Linux.

Pablo
la source
1

MonoDevelop devrait être en mesure de vous aider à maîtriser le développement:

MonoDevelop est un IDE principalement conçu pour C # et d'autres langages .NET. MonoDevelop permet aux développeurs d'écrire rapidement des applications Web de bureau et ASP.NET sur Linux , Windows et Mac OSX . MonoDevelop permet aux développeurs de porter facilement des applications .NET créées avec Visual Studio vers Linux et de maintenir une base de code unique pour toutes les plates-formes.

(c'est moi qui souligne)

Larry Smithmier
la source