Warum ist linux besser für programmierer?
Mir wurde dauernd gesagt nutz linux zum programmieren ist viel besser als Windows. Mehr sagt man mir nicht könnt ihr mir Gründe nennen ist es überhaupt besser.
9 Antworten
Die Aussage ist falsch! Linux ist nicht pauschal besser für Programmierer. Kommt immer drauf an, WOFÜR Du programmierst.
Wenn Du Windows Programme schreibst, dann solltest Du das unter Windows tun, weil Du die Programme ja compilieren und testen muss. Das geht im Falle von Windows nur unter Windows.
Ersetze nun die Worte "Windows" durch "Linux" oder durch "Mac OS" und Du weißt bescheid :P
Man programmiert immer auf der Plattform, für die man auch die Programme schreibt. Es gibt da kein besser oder schlechter.
Klar, Ausnahmen gibts immer, und ein Programmierer wird auch schon seinen Grund haben, warum er ausgerechnet darauf programmiert, auf dem er halt programmiert.
Aber ich wollte darauf hinaus, dass die pauschale Behauptung "Linux ist besser zum programmieren" falsch ist.
Ich habe gehört dass es sehr wenig Speicherplatz einnimmt und deshalb schneller als andere Betriebssysteme laufen soll
Die Antwort von "Nadjas Füßen" ist nahezu perfekt: Es kommt eben eigentlich immer nur drauf an, was du machen möchtest!
Für mich persönlich ist Linux (und teilweise) BSD meistens (!) tatsächlich besser, aber das muss jeder für sich selbst entscheiden.
Ich mag es z. B. sehr, dass man unter Linux - im Gegensatz zu Windows - viel mehr und viel einfacher automatisieren kann. Das sehen aber auch viele Leute anders, die sich nicht das ganze System selbst zusammen-skripten, und sich mit vorgefertigten Lösungen zufrieden geben, ohne sich den Kopf über Details zerbrechen zu müssen / zu wollen.
Ich entwickle auch äußerst ungern mit C# unter Mono, obwohl ich dieses Projekt auch sehr zu schätzen weiß. (Die Gründe hierfür spielen jetzt aber auch wieder keine Rolle.)
M. M. n. ist Windows dafür einfach besser geeignet. Auf der anderen Seite ist das Prozess-Scheduling und der Netzwerk-Stack von Linux, dem von Windows, aus technischer Sicht haushoch überlegen, und Hochlast-Netzwerk-Kram würde ich niemals freiwillig unter Windows machen wollen.
Soll jeder das Werkzeug einsetzen, mit dem er glücklich wird, und welches für die vorgesehene Aufgabe am besten geeignet ist.
Ein "absolutes Besser" kann es prinzipbedingt nicht geben. Ein "relatives Besser" hingegen schon, aber das ist immer spezifisch! ;)Nur ne kleine Ergänzung:
Ein C und ein C++ Compiler ist bei einer Standard Linux Distri immer schon dabei. Man kann sofort loslegen.
Unter Windows muss man erst mal eine IDE oder eine Compilersuite installieren und einrichten.
Außerdem sind die Shell's unter Linux wesentlich leistungsfähiger als die Eingabeaufforderung unter Windows.
Vielleicht kommt daher die Meinung, unter Linux wäre das Programmieren einfacher. Hat man aber erst mal eine komplette Entwicklungsumgebung mit allen Bibliotheken, die man braucht, unter Windows eingerichtet, gehts Programmieren darin genauso gut.
Ich kann meine Erfahrungen in der C/C++-Programmierung mitteilen, wobei ich wissenschaftliche Rechenmethoden programmiere:
Dazu binde ich häufig heruntergeladene Programmpakete, z.B. Gleichungslöser ein, die ich auf meinem Rechner zuerst compilieren muss. Das funktioniert unter Linux fast immer sofort. Meist tippst Du './configure' und dann 'make' oder gleich make und alles läuft problemlos.
Unter Windows, insbesondere mit MinGW, gibt es häufig Schwierigkeiten und man muss von Hand herumbasteln. Klarer Punktsieger Linux.
Für Deinen eigenen Programme würde ich sowieso empfehlen, soweit es irgendwie möglich ist, portablen Code zu schreiben. Das heißt, es wird zwischen Rechenkern und Ein-/Ausgabe streng getrennt. In jedem Teil wird soweit möglich ANSII-konformer Code programmiert, der auf *jedem* Rechner compilierbar ist. Wenn es irgendwo nicht geht, wird das in einer eigenen Datei ein möglichst kleines Programmmodul gebaut.
Bei MS-Bibliotheken finde ich es oft störend, dass das meist ganz und gar nicht systemübergreifend programmiert wurde. Wenn Du zukünftig mal das System wechselst, kannst Du so manches in die Tonne klopfen.
Ein Beispiel: Wenn Du eine DLL einbindest, sind das wenige Zeilen Code. Wenn Du dann statt unter Windows unter Linux compilieren möchtest, sind auch nur wenige Zeilen zu ändern zwecks Laden einer dynamischen Bibliothek. Wenn die dynamische Bibliothek unter Windows per com und atl-Bibliothek eingebunden ist, werfe ichs weg und fange von vorne an.
Es da auch ganz auf die Technologien an, die man verwendet. Ich arbeite gerade an einer nativen App, die später lediglich für andere Plattformen kompiliert wird (werden muss). Was den Rest angeht, mich voll anschließen kann.
Lg medmonk