Warum Windows?
-
[quote="hustbaer"]
hack0r schrieb:
wenn man einfach nur einen breiten markt mit anwendungen erreichen will, und aus irgendeinem grund etwas gegen java hat, dann ist windows IMO immer noch 1. wahl.
Wieso ausgerechnet Java? Man kann auch QT, GTK+ oder andere Bibliotheken benutzen.
Zur Powershell: Die Bash ist so gut, wegen dem ganzen Ökosystem von verschiedenen Programmen, die alle untereinander Daten austauschen können. Einfache Kommandos (wie ps, kill, top, time, usw.) können durch Pipes kombiniert werden. Man braucht keine .NET, keine speziellen Programme oder Bibliotheken.
Alles ist untereinander kombinierbar, weil es auf einem gemeinsamen Nenner aufbaut: ASCII Text. Dazu ist noch die gesamte Konfiguration einfaches ASCII Text.
Deswegen eignet sich die Bash hervorragend um das System zu administrieren. Wenn du aber was komplexes machen willst, steht dir Python, Perl oder Ruby zur Verfügung.
-
chrische5 schrieb:
Hallo
;fricky schrieb:
so ist es, es gibt keinen vernunftmässigen grund fürs umsteigen von win nach lin als desktopmaschine. umgekehrt schon eher, wenn man z.b. eine spezielle software benutzen will, für die es keinen linux-ersatz gibt.
Kann man dann nicht wine benutzen?
naja, wine ist doch nur so'n winapi-simulator, der der echten winapi ständig hinterherhinkt. für viele programme reicht das nicht. dann nimm lieber vmware oder sowas, und installier' da ein richtiges windows rein.
rüdiger schrieb:
Das ganze ist ja oft eine Frage der Gewohnheit. Wenn ich vor einem Windowssystem sitze, dann ärgere ich mich regelmäßig über Dinge die anders sind (zB das Fehlen einer gewohnten und komfortablen Shell). Aber ich nehme mal an, dass es jemandem der sehr viel Windows benutzt hat, bei Linux ähnlich geht.
exakt. windows-user benutzen eine kommandozeilen-shell äusserst selten, nicht etwa, weil cmd.exe so schlecht ist, sondern weil es für alles mögliche grafische tools gibt.
Artchi schrieb:
Immer wieder das ur alte Windows XP als "das Windows" her zunehmen ist ja irgendwie nicht ganz gerecht. Da muss man doch aktuelle Linux-Distris mit aktuellen Windows vergleichen.
dann steht aber linux besser da, weil aktuellere windoof-versionen einfach nur über mehr grafischen firlefanz verfügen als ältere. der nutzeffekt ist seitdem kaum gestiegen, ist nur alles kitschiger und fetter geworden. übrigens ist XP noch lange nicht out, das gibts sogar noch vorinstalliert auf einigen netbooks, was die dinger billig macht und höhere akkulaufzeiten ermöglicht. die schwergewichtigen XP-nachfolger verlangen ja nach leistungsstärkerer hardware.
-
@DEvent & fricky:
Ich hab Java erwähnt, weil Java IMO die einzige Sprache, mit der man wirklich gut plattformübergreifend programmieren kann. Ohne viele Fallstricke, ohne viele kleine Unterschiede auf die man achten muss etc.
-
hustbaer schrieb:
Ich hab Java erwähnt, weil Java IMO die einzige Sprache, mit der man wirklich gut plattformübergreifend programmieren kann. Ohne viele Fallstricke, ohne viele kleine Unterschiede auf die man achten muss etc.
womit du völlig richtig liegst. wenn ich nur in Java programmieren würde und ausschliesslich Java-basierte software nutzen würde, dann wär's total egal, ob windows oder linux. aber (leider?) gibts zu viel zeug, wofür windows ein muss ist. ich wette, selbst der grösste linux-fan und m$-hasser hat irgendwo heimlich eine windows-installation am laufen. und sei es nur, um die neuesten ballerspiele zu zocken, die es für linux nicht gibt.
-
Hallo
;fricky schrieb:
naja, wine ist doch nur so'n winapi-simulator, der der echten winapi ständig hinterherhinkt. für viele programme reicht das nicht. dann nimm lieber vmware oder sowas, und installier' da ein richtiges windows rein.
Da braucht man aber eine Lizenz, wenn man sich an die Buchstaben des Rechts hält.
DEvent hat bestimmt kein Windows am Laufen. Da könnte er nicht mehr in den Spiegel schauen.chrische
-
Ich mag Windows 7.
-
Als Programmierer finde ich Linux & Co. wesentlich besser. Zum Beispiel die Erzeugung eines neuen Prozesses: fork() vs. CreateProcess mit seinen tausend Parametern. Auch bei der Benutzung der Systemtools kann Windows nicht mit Linux mithalten. Ein kleines Tool wie dd sucht man vergeblich. Auch kann man ueber das loopback device Images aller Art mounten, was erst durch DAEMON Tools unter Windows moeglich wird. Zum Spielen nehme ich aber immer noch Windows.
-
knivil schrieb:
Zum Beispiel die Erzeugung eines neuen Prozesses: fork() vs. CreateProcess mit seinen tausend Parametern.
nimm exec(), WinExec(), system() oder sowas, wenn du weniger parameter willst.
fork erzeugt eine kopie von sich selbst, wie erzeugt man unter linux prozesse, die keine kopien sind?
-
In einem zweiten Schritt ...
-
knivil schrieb:
In einem zweiten Schritt ...
und warum dieser umweg? gibts dafür 'nen grund?
-
;fricky schrieb:
rüdiger schrieb:
Das ganze ist ja oft eine Frage der Gewohnheit. Wenn ich vor einem Windowssystem sitze, dann ärgere ich mich regelmäßig über Dinge die anders sind (zB das Fehlen einer gewohnten und komfortablen Shell). Aber ich nehme mal an, dass es jemandem der sehr viel Windows benutzt hat, bei Linux ähnlich geht.
exakt. windows-user benutzen eine kommandozeilen-shell äusserst selten, nicht etwa, weil cmd.exe so schlecht ist, sondern weil es für alles mögliche grafische tools gibt.
:p Ich benutze die Kommandozeile auch nie, weil es für Linux für alles ein grafisches Tool gibt.
Ok, ich benutze die Kommandozeile für a) git und b) ssh.
-
;fricky schrieb:
hustbaer schrieb:
Ich hab Java erwähnt, weil Java IMO die einzige Sprache, mit der man wirklich gut plattformübergreifend programmieren kann. Ohne viele Fallstricke, ohne viele kleine Unterschiede auf die man achten muss etc.
womit du völlig richtig liegst. wenn ich nur in Java programmieren würde und ausschliesslich Java-basierte software nutzen würde, dann wär's total egal, ob windows oder linux. aber (leider?) gibts zu viel zeug, wofür windows ein muss ist. ich wette, selbst der grösste linux-fan und m$-hasser hat irgendwo heimlich eine windows-installation am laufen. und sei es nur, um die neuesten ballerspiele zu zocken, die es für linux nicht gibt.
Ich denke mann kann auch unter C++ gut Systemunabhängig programmieren. Man muss nur Qt, boost oder andere Bibliotheken benutzen.
Das einzige "muss" sind eben die Programme, die nicht für Linux programmiert werden. Da kann Linux nichts dagegen machen.
-
ich muss gestehen, dass ich eine Windows Installation (winpx per MSDNAA bekommen, um mal bisschen zu zocken) auf der zweiten Festplatte habe. Dieses Windows habe ich aber seit 2007 nicht mehr gebootet und werd wahrscheinlich auch nie wieder booten
-
;fricky schrieb:
und warum dieser umweg? gibts dafür 'nen grund?
Ja, ich will vielleicht nicht mehr als eine Kopie. Wenn ich mehr will, dann muss ich halt mehr machen. Meist will ich aber nicht mehr machen. Berechnung etc. auf mehrere Prozesse verteilt, ein weing IPC etc. ... Da brauche ich mir keine Gedanken ueber Pfade machen, auch (globale) Variablen und so werden einfach mitgenommen und koennen weiter benutzt werden.
-
knivil schrieb:
;fricky schrieb:
und warum dieser umweg? gibts dafür 'nen grund?
Ja, ich will vielleicht nicht mehr als eine Kopie. Wenn ich mehr will, dann muss ich halt mehr machen. Meist will ich aber nicht mehr machen. Berechnung etc. auf mehrere Prozesse verteilt, ein weing IPC etc. ... Da brauche ich mir keine Gedanken ueber Pfade machen, auch (globale) Variablen und so werden einfach mitgenommen und koennen weiter benutzt werden.
naja, mag sein dass prozesskopien manchmal genau richtig sind, aber eigentlich ist sowas doch ein sonderfall. was macht eine linux-shell, wenn ich über sie ein anderes programm starten will? erstmal eine kopie von sich selbst? das glaub' ich nicht, sowas wäre ja ziemlich albern. es gibt bestimmt eine möglichkeit, beliebige prozesse ohne selbstkopiererei zu starten.
-
das glaub' ich nicht, sowas wäre ja ziemlich albern.
Warum ist das albern? Es kostet sehr, sehr, sehr ... wenig. Ich habe vor geraumer Zeit selbst im Source nachgeschlagen, die bash macht es so. Auch sagt man nicht umsonst, dass init der Vater aller Prozesse ist.
aber eigentlich ist sowas doch ein sonderfall.
Nein, z.B. Server werden so programmiert ... nimm Verbindung entgegen, forke, Child verarbeitet eingehende Daten vom socket und stirbt. Wichtig: kein Umweg ueber das Dateisystem, Prozessinformationen sind schneller kopiert als neu erstellt. Das Hauptprogramm kann die Dateideskriptoren fuer die naechste eingehende Verbindung neu belegen. Finde ich recht einfach.
-
knivil schrieb:
Warum ist das albern? Es kostet sehr, sehr, sehr ... wenig.
weil's nicht einsehbar ist, dass ein programm erst sich selbst duplizieren muss, um dann ein völlig anderes programm zu starten. wenn du ein leeres blatt papier brauchst, schiebstes ja auch nicht erst durch einen kopierer und machst auf die rückseite was drauf. wahrscheinlich gabs irgendwann mal, in der unix-urzeit, tatsächlich einen grund dafür, dass es nicht besser ging, aber den kennt heute wohl niemand mehr.
aber eigentlich ist sowas doch ein sonderfall.
Nein, z.B. Server werden so programmiert ... nimm Verbindung entgegen, forke, Child verarbeitet eingehende Daten vom socket und stirbt.
[/quote]
naja, server sind spezialfälle von programmen und multithreaded-server sind spezialfälle von servern, jetzt wird mir jedenfalls klar, warum viele sagen, dass linux ein tolles server-OS ist, wegen 'fork' *fg*
-
weil's nicht einsehbar ist, dass ein programm erst sich selbst duplizieren muss, um dann ein völlig anderes programm zu starten. wenn du ein leeres blatt papier brauchst, schiebstes ja auch nicht erst durch einen kopierer und machst auf die rückseite was drauf.
- Das passiert ja auch gar nicht.
- Es passiert vergleichsweise selten, das neue Programme gestartet werden (jedenfalls nicht im Sekundentakt).
- Fuer Windows programmiert man anders als fuer Unix.
Auch hinkt dein Beispiel sehr. Normalerweise nimmt man ein beschriebenes Blatt, radiert alles weg und schreibt neu drauf. Aber auch das ist ein schlechter Vergleich. Warum: Radieren ist sehr zeitaufwendig. Nicht aber so bei Speicher. Falls ein neuer Prozess gestartet wird, so brauchen auch nur einige kleine Felder ausradiert werden. Zugriffsrechte, Benutzer, offene Dateien etc. bleibt ja alles gleich.
linux ein tolles server-OS ist
Zeig mir ein besseres. Und komm mir bloss nicht mit Windows, das nicht mal mit mehreren Benutzern klar kommt.
-
knivil schrieb:
Das passiert ja auch gar nicht.
doch, da stehts: --> http://en.wikipedia.org/wiki/Fork_(Unix)
When a fork() system call is issued, a copy of all the pages corresponding to the parent process is created, loaded into a separate memory location by the OS for the child process. But this is not needed in certain cases.
...
In such cases, a technique called copy-on-write (COW) is used. With this technique, when a fork occurs, the parent process's pages are not copied for the child process. Instead, the pages are shared between the child and the parent process.btw, wenn unter windows ein prozess gestartet wird, von dem schon ein oder mehrere exemplare laufen, geschieht dies auch per 'copy on write'. allerdings ist das unter win trotzdem kein 'forken' (wie unter linux).
knivil schrieb:
linux ein tolles server-OS ist
Zeig mir ein besseres. Und komm mir bloss nicht mit Windows, das nicht mal mit mehreren Benutzern klar kommt.
ich sag ja nix dagegen. hab' noch nichts negatives mit unixoiden servern erlebt, aber windosen kommen sehr wohl mit mehreren benutzern klar. wie kommste darauf, dass sie's nicht können?
-
allerdings ist das unter win trotzdem kein 'forken' (wie unter linux)
Sag ja auch niemand. Forken ist der Unixweg. Einheitlich fuer alle und deswegen konsistent. Dabei ist copy-on-write nur eine Optimierung. Wobei fork mittlerweile auch nur ein Wrapper fuer clone ist (dem auch einige Flags mitgegeben werden koennen).
wie kommste darauf, dass sie's nicht können?
Mein XP kann es nicht von Haus aus. Hier eine Frickelloesung: Windows XP Multiuser Remote Desktop.
Tja ich koennte auch die Servervariante kaufen. Auch das stoert mich, man muss es kaufen. Und man muss noch viel mehr bezahlen, wenn man was Vernuenftiges machen will.