J'ai travaillé sur Mac et Windows pendant un certain temps. Cependant, j'ai encore du mal à comprendre pourquoi les programmeurs choisissent avec enthousiasme Mac OS X plutôt que Windows et Linux?
Je sais qu'il y a des programmeurs qui préfèrent Windows et Linux, mais je demande aux programmeurs qui utiliseraient simplement Mac OS X et rien d'autre, car ils pensent que Mac OS X est le plus adapté aux programmeurs.
Certains pourraient soutenir que Mac OS X a la belle interface utilisateur et est basé sur Nix, mais Linux peut le faire. Bien que Windows ne soit pas basé sur Nix, vous pouvez à peu près développer sur n'importe quelle plate-forme ou langue, à l'exception de Cocoa/Objective-C.
S'agit-il des applications uniquement disponibles sur Mac OS X? Est-ce que cela en vaut vraiment la peine?
Est-ce pour développer des applications iPhone?
Est-ce parce que vous devez mettre à niveau Windows tous les 2 ans (moins rétrocompatible)?
Je comprends pourquoi les gens, qui travaillent dans l'industrie du multimédia/divertissement, utiliseraient Mac OS X. Cependant, je ne vois pas quels avantages forts Mac OS X a sur Windows. Si vous développez quotidiennement sur Mac et préférez Mac à autre chose, pouvez-vous me donner un mérite que Mac a sur Windows/Linux? Peut-être quelque chose que vous pouvez faire sur Mac qui ne peut pas être fait sous Windows/Linux avec le même niveau de facilité?
Je n'essaye pas de faire un autre Mac contre Windows ici. J'ai essayé de trouver des choses qui peuvent être faites sur Mac mais pas sur Windows avec le même niveau de facilité, mais je n'ai pas pu. Donc, je demande de l'aide.
J'utilise MacOS X depuis environ six mois sur ma machine de développement et je l'ai définitivement enroulé je ne le recommande pas au développeur, autre que les développeurs iPhone/OSX (ils n'ont pas le choix, n'est-ce pas?).
J'ai remplacé OSX par Ubuntu . Apparemment, je ne suis pas le seul retour d'OSX à Linux .
Tous les outils que vous considérez comme acquis sous Linux sont inexistants ou pénibles pour se mettre au travail sur OSX:
-march=native
? Comme l'a souligné Jano, c'est n bug . Pour être exact, seul bug OSX. Mais sous OSX, contrairement à Linux, vous ne pouvez pas vous attendre à ce que Apple rétroporte réellement le correctif et le publie dans la mise à jour logicielle. Vous êtes donc de retour à la case départ - OSX est un système de niche, et il rend votre vie de développeur plus difficile, tandis que les systèmes traditionnels, comme Linux, le facilitent.les utilisateurs de Mac exécutant Skype sont vulnérables aux exploits auto-propagatifs qui permettent à un attaquant d'accéder sans restriction au système [...] aux autres clients de Skype, par ex. Windows et Linux ne sont pas sensibles à cette vulnérabilité.
Mise à jour: la sécurité d'OSX semble aller de mal au pire
Avec la dernière mise à jour de sécurité Lion, Mac OS X 10.7.3, Apple a accidentellement activé un fichier journal de débogage en dehors de la zone cryptée qui stocke l'utilisateur mot de passe en texte clair .
Avis de non-responsabilité pour les commentaires: J'utilise ce que j'ai jugé le mieux pour moi . Ces raisons sont celles que j'ai énumérées ici. Il est impossible de trouver le "meilleur choix pour les programmeurs" dans toutes les situations, et je ne pense pas que quiconque fonde son choix en pensant l'avoir trouvé.
C'est un système d'exploitation basé sur Unix avec une excellente interface utilisateur installée sur un excellent matériel. Un matériel de moins en moins cher à mesure que Apple croît et utilise son pouvoir d'achat pour garantir des prix de plus en plus bas pour de grands composants.
J'utilise Mac parce que:
/Library
Est bien organisé et permet de trouver facilement ce dont j'ai besoin si je dois creuser dans les préférences, copier les fichiers de support d'une application, installer un nouveau volet de préférences. En parlant de préférences système - une autre grande fonctionnalité de Mac.Je ne pense pas qu'il y ait des choses que je ne puisse pas faire sous Windows. Ce qui précède est une liste de choses qui, en somme, font simplement de Mac l'option préférée. Si vous recherchez des choses singulières, il y a quelques tâches que je pense pouvoir faire plus facilement sur Mac:
Pour moi, le principal avantage par rapport à Linux est que tout fonctionne simplement ensemble, en particulier sur un ordinateur portable. Vidéo, sans fil, suspendre/reprendre sans avoir à trouver et configurer les bons pilotes, déterminer le chipset que vous avez, etc.
Ne sous-estimez pas le matériel.
Une fois que vous vous êtes habitué au trackpad, vous ne voulez plus revenir en arrière! Deux doigts et vous faites défiler dans toutes les directions ...
Les développeurs ou non, expérimentés ou non, intelligents ou pas la plupart des gens privilégieront la beauté esthétique à la substance. Les Mac sont bons mais ne méritent absolument pas le type de support dont ils disposent. Il est clair qu'il n'y a aucune raison impérieuse d'utiliser un Mac sur un PC fonctionnant sous Linux ou Windows, mais les gens s'efforcent extrêmement de trouver certains pour justifier d'en acheter un. Je ne comprends pas pourquoi les gens ne disent tout simplement pas qu'ils ont acheté un Mac parce qu'il est joli et à la mode. Il n'y a rien de mal à cela. J'admettrai même que j'utilise Linux en partie parce que c'est à la mode chez les développeurs. Nous avons tous un penchant naturel vers ce que nous croyons être "cool".
Mac possède toutes les fonctionnalités Unix avec une interface utilisateur impressionnante.
J'étais un des premiers utilisateurs d'OS X et un partisan de longue date de Mac, mais je suis arrivé à la conclusion qu'ils ne font toujours pas de bonnes machines de développement, surtout pas dans un environnement d'entreprise.
Je les avais utilisés à l'école et j'en avais un sur mon deuxième bureau au travail pendant un certain temps (rarement utilisé, 95% de mon temps était sur un terminal Unix, mais je l'ai toujours aimé quand j'ai eu l'occasion de l'utiliser, ce qui était principalement pour la manipulation graphique). J'ai finalement décidé d'acheter mon premier Mac (juste quand OS X est sorti). Cependant, en moins d'un an, je suis devenu tellement frustré que je l'ai vendu à bon marché. Le matériel avait l'air magnifique, mais il semblait bon marché. OS X était un exercice de frustration. La plupart des trucs nix que j'essayais de faire fonctionnaient, mais la partie restante était brisée de manière subtile. Trop d'épisodes de blocages complets avec le ballon de plage tournant de Doom dans les applications Mac.
J'en ai continué/j'utilise toujours un au travail à l'occasion, mais vraiment uniquement pour des tâches spécifiques à Mac. Je vais en revenir à une périodiquement pour voir l'état actuel de la technique. Java a été faible et en retard depuis longtemps. Il semble qu'ils viennent juste de se rattraper. Il continue de s'améliorer, mais, c'est juste douloureux d'utiliser un pour le travail de développement par rapport à Linux ou Windows. OS X déçoit à plusieurs reprises, tout comme le matériel (principalement des problèmes de surchauffe, mais au fil des ans, j'ai également eu des moniteurs qui s'allument et s'éteignent lorsqu'ils sont à proximité d'émetteurs radio, etc. Des trucs qui "n'arrivent tout simplement pas" dans PC land.) J'espère qu'un jour ils seront être une bonne option, mais ils ne sont tout simplement pas encore là.
Il y a trois principales raisons pour lesquelles je suis sur Mac (en particulier Macbook Pro) maintenant pour mes besoins de développement logiciel:
Excellent matériel. Cela fait du bien de travailler, la durée de vie de la batterie est géniale et l'écran est tout simplement magnifique. Oh, et le trackpad est plutôt sympa aussi.
Unix. Il est basé sur Unix, et il est idéal pour le développement Ruby. J'ai aussi mon terminal.
Fonctionne également très bien avec Windows. Je peux utiliser Bootcamp pour exécuter un système d'exploitation Windows en mode natif, ou utiliser Parallels pour l'exécuter dans une machine virtuelle. Donc, pour mon développement Windows, je peux le faire aussi sur mon Macbook Pro. Je suppose que si vous êtes inconditionnel d'Ubuntu, vous pouvez également l'installer.
Moins de maux de tête en matière de langues interprétées. Python, Perl, Ruby et prolog sont préinstallés (comme ils le font sur la plupart des systèmes * NIX). Interface utilisateur bien meilleure que de nombreux systèmes Linux, à mon humble avis. Des maux de tête se produisent lorsque vous essayez de créer des programmes C spécifiques au système (n'importe qui a essayé de créer son propre planificateur de threads en C, dans OS X? Pas amusant). Sous Windows, python, Perl et prolog ne sont pas préinstallés. Une grande partie de Windows est livrée avec des logiciels que vous n'utilisez jamais. Cela étant dit, je n'utilise pas beaucoup d'applications préinstallées sur Mac (je n'utilise pas Mail, Carnet d'adresses, Carnet de polices, Garageband, iPhoto, iDVD, iWeb, TextEdit, etc.). Les Mac offrent la flexibilité d'installer Windows, alors que l'inverse n'est pas vrai (pas de faute de MS ... blâme Apple, ici).
En bref, il offre bon nombre des excellents utilitaires et langages de programmation trouvés dans les distributions Linux et laisse les maux de tête de Windows derrière, tout en offrant une interface utilisateur flexible et de classe mondiale. Mais, je suis d'accord avec vous pour vous demander pourquoi les gens préfèrent uniquement OS X pour la programmation général. Pas très bon pour ça.
J'ai tendance à utiliser tout ce qui est à portée de main ou le meilleur outil pour le travail, que ce soit Windows, OS X ou une version de Linux.
Je peux imaginer que la seule raison serait de développer des applications iphone. Mais sinon OSX est fondamentalement Unix ...... et Unix/Linux est gratuit pour la plupart, donc je ne verrais aucune autre raison.
Le fait est que cela n'a pas vraiment d'importance.
Si vous voulez vraiment améliorer votre productivité en tant que programmeur, arrêtez de penser à quel point c'est cool d'avoir les fenêtres qui font toutes ces choses fantaisistes et d'apprendre à utiliser outils de ligne de commande , un grand langage de script et un grand éditeur.
Vous verrez votre productivité augmenter quel que soit le système d'exploitation que vous choisissez.
Lorsque vous comprendrez que ce sont les outils vraiment utiles avec lesquels vous ne pouvez pas vivre, vous oublierez les trucs fantaisistes et le battage médiatique de Mac OS.
Chaque souffrance Apple propriétaire incite les autres à partager son destin, c'est un piège :-) Ou bien, peut-être la campagne négative constante contre Windows si possible a fait en sorte qu'un utilisateur Mac moyen soit toujours tenu dans l'ignorance. De plus, en réalité, Mac OS a été corrigé régulièrement (la plupart du temps sans préavis aux utilisateurs).
Il est important de réaliser que la stabilité de Mac OS X est due au matériel propriétaire - vous ne pouvez pas brancher et tester ce que vous voulez, donc aucun matériel n'est réellement non testé. Notez qu'il existe quatre ou cinq options d'ordinateurs Apple, et les mises à niveau sont d'un coût prohibitif - ce qui signifie qu'il existe quelques dizaines de variétés de matériel sur le marché, c'est-à-dire. Le support est un jeu d'enfant. De plus, en réalité, Mac OS X n'est pas sans bug ou sécurisé
Certains pourraient soutenir que Mac OS X a la belle interface utilisateur et est basé sur Nix, mais Linux peut le faire.
J'entends beaucoup ça. Voyons cela avec un exemple récent: Gnome Shell vs iPad , pouvez-vous voir les différences?. Tout d'abord, la police sur le Gnome Shell est atroce W-T-F.
Puis les icônes. Les quatre règles de base de la conception graphique sont le contraste, la répétition, l'alignement et la proximité. Ils vous disent essentiellement si deux éléments sont identiques. Lorsque vous regardez l'écran d'accueil du Gnome Shell, en plus d'être bondé, vous voyez des icônes extrêmement différentes avec des formes irrégulières, donc votre esprit est occupé à se demander ce que sont ceux-ci et comment ils se rapportent les uns aux autres.
Cela ne se produit pas sur l'iPad car les éléments sont alignés sur une grille, et ils ont tous des coins arrondis et un effet brillant (appliqué par iOS). Évidemment, ce sont des éléments du même ensemble, donc votre esprit se repose.
Juste un exemple de fonctionnalité similaire avec une exécution différente. Ceci est important car le design n'est pas seulement une couche de peinture, l'apparence fait partie intégrante du produit lui-même. Ce que vous ressentez ne peut pas être séparé de ce que vous pensez (littéralement). Lisez Est-ce que Form Follow Function? à ce sujet.
Une idée fausse commune est que les Mac sont trop chers. Cela découle de la comparaison d'un PC bas de gamme avec un Mac. Si vous pensez le contraire, essayez vraiment de trouver un comparatif sérieux sur Internet (voici n ). Bien sûr, vous pourrez toujours assembler vous-même un PC plus puissant et moins cher si c'est votre seul critère, mais ce n'est pas ce que Apple vise.
Vous n'achetez pas un Mac à cause de sa puissance (rien ne correspond à un cluster Linux pour cela). Vous l'achetez parce qu'un employé avec un salaire l'utilise et vous voulez éviter les problèmes matériels/logiciels. Apple valorise la stabilité et la facilité d'utilisation par rapport aux fonctionnalités ou à la puissance brute. Vous pouvez contester cela, mais au-delà des expériences personnelles, elles viennent constamment en tête satisfaction du consommateur en plusieurs des pays.
Une autre vertu de Mac est que vous pouvez installer presque n'importe quoi (KDE et Gnome inclus). Presque tous les logiciels Linux sont disponibles via les packages macports . Ceci est une fonctionnalité importante car vous ne pouvez pas compter sur Apple pour mettre à jour Java, GNU software (march=native
encore buggé dans le GCC d'Apple), et d'autres. OpenGL est probablement l'exemple le plus saignant puisqu'il dépend des pilotes Apple.
Il existe également des applications de bureau populaires à toutes fins, non seulement de Apple mais d'Adobe, Microsoft, Autodesk et autres. Et pas besoin de bêtises antivirus car vous êtes sur Unix.
Quoi qu'il en soit, si vous avez un budget limité, ou si vous préférez Windows, Linux ou un grille-pain à muffins exécutant emacs, allez-y. Il n'y a pas de meilleur système d'exploitation pour tout et pour tout le monde.
Je suis passé d'un ordinateur portable exécutant Windows à un Mac il y a environ sept ans lorsque j'ai rejoint un magasin UNIX qui était principalement axé sur les applications de ligne de commande ANSI C pour la bioinformatique. Je pouvais faire mon travail sur n'importe quelle box UNIX, alors pourquoi ai-je payé pour un Mac? Préférences purement subjectives. J'aime l'aspect et la convivialité des applications natives Mac plus que toutes les versions de bureau Linux. Je déteste Open Office et j'aime vraiment Microsoft Office. Allez comprendre. Macports offre la plupart des avantages de yum ou apt-get pour les outils de développement. Cependant, il a fallu quelques années pour obtenir Valgrind pour Mac.
Je ne revendique pas non plus la supériorité objective d'OS X sur Windows. Cependant, j'ai développé une forte aversion personnelle pour Windows. Le fait que je doive encore penser aux lettres de lecteur sous Windows me contrarie, et au fil des ans, j'ai eu quelques catastrophes avec des dommages au registre et de mauvaises installations d'applications. Mes Mac semblent simplement nécessiter moins de `` futzing '' pour assurer leur bon fonctionnement. Je garde une machine de bureau Windows assez récente à la maison pour les jeux et pour fournir un soutien aux amis et à la famille. Cependant, j'ai également eu de la chance de diriger mes amis non technophiles vers Mac au cours des dernières années. Encore une fois, la seule façon dont je peux décrire l'avantage est moins "futzing".
Je développe sur Mac depuis 1984, * nix depuis 1989 et Windows depuis 1990. Actuellement, en tant que consultant, je travaille sur trois projets payants, deux sur Mac qui prennent environ la moitié de mon temps, et un sur Linux qui prend l'autre moitié.
Peut-être quelque chose que vous pouvez faire sur Mac qui ne peut pas être fait sous Windows/Linux avec le même niveau de facilité?
Je ne vais pas m'adresser à Windows car je ne code pas beaucoup ces jours-ci, mais en ce qui concerne Linux, euh, oui. Presque tout est plus facile sur Mac. :-)
Prenons un petit domaine: les éditeurs de texte. Je suis un vieux gars de l'interface graphique, ne fais pas du tout d'emacs et je connais juste assez vi pour faire face aux petites tâches d'édition.
Sur Ubuntu, les principales options sont gedit, kate et Eclipse. Kate est floconneuse (j'ai perdu beaucoup de données), Eclipse est très lourde, donc je m'en tiens surtout à gedit. Mais c'est comme une version programmeur de MS Notepad: il ne fait tout simplement pas grand-chose. Et tout ce qui n'est pas intégré à l'éditeur que vous souhaitez ajouter, comme la prise en charge des ctags, nécessite beaucoup de travail pour installer et configurer et jouer avec en permanence.
Sur le Mac ... vache sacrée! Il existe d'innombrables options vraiment géniales, et elles ont toutes sortes de fonctionnalités fantastiques. Xcode est puissant et TextWrangler est une application gratuite qui combine toutes les meilleures fonctionnalités de kate et meld. Et au cours des dix dernières années, ni l'un ni l'autre ne s'est écrasé d'une manière qui a perdu mes modifications, ce que je ne peux dire ni de kate ni de gedit.
En fait, les éditeurs de texte sur Linux sont si pleins de sensations générales que lorsque je fais du développement Linux où les bibliothèques sous-jacentes sont également disponibles sur Mac, j'écris souvent le code d'abord sur Mac OS X dans Xcode, puis quand cela fonctionne , déplacez-le vers Linux et écrivez un makefile pour celui-ci.
Je pourrais continuer encore et encore. J'ai essayé dia pour créer des diagrammes, et c'est épouvantable. Mais OmniGraffle sur Mac est superbe pour créer des diagrammes.
Je suis un grand fan de l'open source, je contribue à plusieurs projets et j'ai soumis une proposition de conférence pour le Symposium Linux d'Ottawa de cet été. Mais j'aime aussi maintenir ma réputation de quelqu'un qui écrit rapidement du bon code. Je veux donc utiliser les outils de développement les plus efficaces possibles, et ceux-ci se trouvent souvent sur Mac.
Pour ajouter un peu ... en tant que consultant, je suis payé pour être productif. Visser avec un logiciel feuilleté sort de mon temps libre, que je préfère utiliser pour d'autres choses, comme traîner avec ma femme, faire des arts martiaux et apprendre l'italien. Mon expérience, travaillant en parallèle sur les deux plateformes depuis 2006, a été que je passe moins de temps à foutre les choses sur Mac que sur Linux.
Si vous écrivez des applications iPhone (ou Mac), vous avez besoin d'un Mac, point final.
Si vous faites du développement Web, d'après mon expérience, les Mac sont bien supérieurs aux machines Windows, ne serait-ce que parce que la plupart des outils dont vous avez besoin sont déjà là. Oui, Linux peut revendiquer la même chose. Mais pouvez-vous vraiment comparer Linux et Mac en termes de convivialité? Vraiment?
Si vous écrivez des applications Windows, vous avez besoin d'une machine Windows, c'est tout. Bien sûr, entre VMWare, Parallels et Boot Camp, vous pouvez simplement exécuter Windows sur Mac également.
En résumé: principalement des outils de développement Web et Unix intégrés, une grande convivialité, une compatibilité Windows si vous en avez vraiment besoin. Le meilleur de tous les mondes. De plus, cela vous donne l'air bien plus frais chez Starbucks que ne le ferait une chose Dell. :)
En plus d'aimer Mac OS X en tant qu'OS par rapport à Windows ou Linux, je l'utilise car il exécute tout. Je démarre sous OS X, mais je peux exécuter Windows 7 (pour le développement de Visual Studio ainsi que pour les tests d'applications de bureau et d'applications Web) et Ubuntu (pour les tests d'applications de bureau et d'applications Web) dans Virtual Box. Si j'utilisais autre chose, je devrais au moins avoir un Mac latéral pour tester sur toutes les plateformes. Tout autre avantage est disponible avec Linux ou Windows ou se résume à vos préférences personnelles.
C'est un bel environnement de travail sans problème.
J'utilise un Mac comme ordinateur personnel, donc je connais mon chemin.
Le matériel est fantastique.
Je peux (et fais) exécuter Windows dans un VM si j'ai besoin, ce qui est plus agréable que d'exécuter Windows en mode natif (peut faire des copies de la machine entière, etc.).
Et s'ils sont un peu plus chers?