Unix_Samurai
Anmeldungsdatum: 10. Oktober 2008
Beiträge: 661
|
Hi. Ich merke langsam, dass ich die Bash an ihre Grenzen gebracht habe. Darum will ich noch eine zweite Sprache lernen. Ich arbeite hauptsächlich im administrativen Bereich. Ich schwanke momentan zwischen C und C++, Python, Perl und Java. Ich will etwas, was Allroundfähig ist. C++ kann ich bereits grundlegend, darum tendiere ich auch eher dahin, weil ich nich noch einmal von ganz vorne anfangen will. Ich würde C++ nur dann nutzen, wenn ich mit der Bash die Grenze erreiche. Wie seht ihr das? Ist C++ unnötig kompliziert für einen Admin? Wenn nicht, dann würde ich das nun einfach weiter ausbauen. MfG
|
Lysander
Anmeldungsdatum: 30. Juli 2008
Beiträge: 2669
Wohnort: Hamburg
|
Unix Samurai schrieb: Ist C++ unnötig kompliziert für einen Admin?
Ja! C++ ist sogar inhärent unnötig komplex 😉 Ich würde Dir Python, Scala oder Ruby empfehlen - die vermeiden Boilerplate wo es nur geht, sind dennoch universell, abstrahieren aber enorm, speziell im Vergleich zu C++, Java oder gar C# - von C gar nicht zu sprechen! Natürlich wird hier wieder der Sprachenflame losgehen, daher spare ich mir weitere Begründungen - am Ende entscheidest Du selber.
|
user_unknown
Anmeldungsdatum: 10. August 2005
Beiträge: 17552
Wohnort: Berlin
|
Lysander schrieb: Ich würde Dir Python, Scala oder Ruby empfehlen ...
Natürlich wird hier wieder der Sprachenflame losgehen....
Ich fürchte so wird das nichts mit dem Flamewar.
|
diesch
Anmeldungsdatum: 18. Februar 2009
Beiträge: 5072
Wohnort: Brandenburg an der Havel
|
Für Admin-Aufgaben, die für die Shell zu komplex sind, nehme ich meistens Perl. Das ist unter Linux eigentlich immer installiert, und die Programme lassen sich ohne Neucompilieren o.ä. überall verwenden. Das ist vor allem wichtig, wenn man mit verschiedenen Plattformen und OS-Versionen arbeitet. Typische Admin-Aufgabe bestehen bei mir meistens darin, irgendwelche Daten aus Datenbanken, Text-, XML-, CSV-Dateien o.ä. zu verarbeiten und sie irgendwo hinzu schreiben oder an Programme zu verfüttern, und das geht mit Perl einfach und schnell. Bei komplexeren Datenstrukturen (mehrfach verschachtelte Listen, Dictionaries usw.) oder großen Projekten finde ich Perl schnell etwas unübersichtlich, das sind dann aber auch keine typischen Admin-Aufgaben.
|
Darkstar999
Anmeldungsdatum: 21. September 2008
Beiträge: 324
|
Hallo zunächst erstmals gibt es keine Perfekte Programmiersprache je nach Aufgabengebiet sollte man sich orientieren welche Sprache oder welches Framework man auswählt. Von daher kann man deine Frage nicht direkt bzw. annähernd beantworten. Mehr Informationen wären da recht hilfreich Administrativ ist ein sehr breiter Bereich. Obwohl da jeder nur seine Private Meinung zu abgeben kann und es keinen Sinn macht zu verallgemeinern! Die Frage löst wie schon erwähnt meist Flamewar's aus! Mfg Darkstar999
|
Unix_Samurai
(Themenstarter)
Anmeldungsdatum: 10. Oktober 2008
Beiträge: 661
|
Ich würde zudem noch gerne wissen, wo bei euch die Grenzen der Bash lagen. Ich werde noch mehr Infos über meinen Alltag posten für eure Empfehlungen. Aber erst mal brauch ich meinen Schlaf.
|
track
Anmeldungsdatum: 26. Juni 2008
Beiträge: 7174
Wohnort: Wolfen (S-A)
|
Unix Samurai schrieb: Ich würde zudem noch gerne wissen, wo bei euch die Grenzen der Bash lagen.
Bei mir, allerdings mit dem Schwerpunkt Datenkonvertierung, bin ich zum zerlegen von Datenzeilen (z.B. CSV) schnell bei awk gelandet, rein pragmatisch. (ich weiß, das ist alt und eigenwillig, und Python ist flexibler, sauberer, schöner usw., aber das war mir für meine "kleinen" Sachen zu umständlich) Dann im Bereich XML habe ich jetzt öfters xmlstarlet benutzt, das ist dort für ad-hoc-Lösungen praktisch ein Muss. Schließlich gefällt mir Perl auch ganz gut, damit kommt man auf vielen Gebieten sehr weit, sei es als Erweiterung von sed oder auch für Systemaufgaben. (ok, ich mag eher kompakten Code, wie bei sed, und eben nicht die Weitschweifigkeit wie z.B. bei Java) Soweit meine 1½ Cents als "Pragmatiker der kleinen Lösungen". LG, track
|
user_unknown
Anmeldungsdatum: 10. August 2005
Beiträge: 17552
Wohnort: Berlin
|
Ich benutze die bash fast ausschließlich interaktiv. 2-3 Suchscripte, für die wiederholte Suche von Schlüsselwörtern im Quellcode in meinen Src-Verzeichnissen, 4-5 Templates um kleine Ad-hoc-Programme mit Java oder Scala anzulegen, mit Swing oder für Applets, und 2-3 Minidinger für sonstiges - Nichts, was 2 Bildschirmseiten übersteigt, und das, was die 2 Seiten vollmacht ist der Boilerplate der Here-Documente für die Templates, also reine Textausgabe. Ich habe hier aber ein Buch von Herold über Sed und AWK, die m.E. über ihre Grenzen getrieben werden, aber wenn man seine Tools beherrscht, dann macht man sowas manchmal gerne, so wie andere ohne Sauerstoff ins Hochgebirge gehen, und Gipfel besteigen - weil es geht.
|
rklm
Projektleitung
Anmeldungsdatum: 16. Oktober 2011
Beiträge: 12829
|
Unix Samurai schrieb: Ich merke langsam, dass ich die Bash an ihre Grenzen gebracht habe. Darum will ich noch eine zweite Sprache lernen. Ich arbeite hauptsächlich im administrativen Bereich.
Ich bin ja Ruby-Fan und solange Du lediglich administrative Aufgaben erledigen willst (Dateien kopieren, Prozesse starten, Logfiles analysieren), ist das auf jeden Fall eine gute Wahl: klare Syntax und sauber objektorientiert; außerdem gibt es eine reiche Standardbibliothek und die Community ist wirklich freundlich. Perl ist auch nicht verkehrt, aber aus anderen Gründen: es ist sehr verbreitet und es bestehen gute Chancen, dass Du als Admin zumindest mal ein Perl-Skript lesen und verstehen musst. Ansonsten ist es eine furchtbare Sprache, nicht zuletzt wegen der kryptischen Syntax und der Menge an Speziallösungen. Eine gute Alternative zu Ruby ist Python, was gerade unter Linux recht häufig auch für GUIs benutzt wird. user unknown schrieb: Ich habe hier aber ein Buch von Herold über Sed und AWK, die m.E. über ihre Grenzen getrieben werden, aber wenn man seine Tools beherrscht, dann macht man sowas manchmal gerne, so wie andere ohne Sauerstoff ins Hochgebirge gehen, und Gipfel besteigen - weil es geht.
+1 ☺ Ciao robert
|
schmidti411
Anmeldungsdatum: 24. Oktober 2007
Beiträge: 152
Wohnort: Berlin
|
Da kann ich mich anschließen, - Die Grenzen der Bash liegen ehr bei den Grenzen der Programmierer. Mit vielen kleinen schönen schlanken Linuxtools kann man fast alles mit der Bash lösen. Schau dir mal awk, sed, tr, cut, head, tail, ... an. Solange es nur um reines abarbeiten lineare Anwendungsfälle geht, kann man da mit der Shell eine ganze Menge machen. Kompliziert wird es erst, wenn es ans Netzwerk geht (Shell kennt keine Sockets) oder ein Programm, das über eine GUI mit dem Anwender kommuniziert. Damit stößt man schnell an die Grenzen der Shell und sollte dann auf eine Hochsprache zurückgreifen. Wenn man eigene Treiber oder Systemprogramme schreiben möchte, wird man auch über C nicht herumkommen. Die genannten Shell Alternativen Perl und Python kann ich auch nur empfehlen, wobei ich meistens mit der Shell und den Linuxutils drumherum gut klar gekommen bin. Gruß, Schmidti
|
Unix_Samurai
(Themenstarter)
Anmeldungsdatum: 10. Oktober 2008
Beiträge: 661
|
Sehr schöne Antworten. Nun ein paar Worte mehr aus meinem Alltag. Ich will mir bald auch eine Website zu legen und da hörte ich sind Perl und PHP sehr oft im Einsatz. PHP werde ich vermutlich nicht lernen, weil es heißt, dass dies eher eine Lehrsprache ist, wenig Potential bietet verglichen zu Perl und so weit mein bescheidenes PHP Wissen reicht, funktioniert das doch nur im Browser? Und da ich das Terminal bevorzuge, scheidet PHP da aus. Ach ja, ich versuche rein auf dem Terminal zu arbeiten, darum brauch ich keine Sprache wegen der GUI Features. Perl reizt mich, weil es heißt, dass es bei kleineren Sachen sehr leistungsstark ist, ab dann aber immer unübersichtlicher wird. Ich als Admin werde jedoch vermutlich nie oder selten große Skripts schreiben. Von daher nehm ich das in Kauf. Es gilt ja als eines der gerühmten Schweizerarmeemesser der Computerwelt, was ja genau das ist, was ich suche. Zudem ist es auch im Webbereich sehr vertreten, wodurch ich also gleich zwei Bereiche abdecken kann: Administration und ein bisschen meine Website entwickeln.
Stören tut mich nur die Unübersichtlichkeit, wie es heißt und dass Ubuntu Python als offizielle Skriptssprache nutzt, was als Ubuntuuser und teils auch Admin vielleicht tödlich ist? Noch einmal zu C/C++: Ich hab es immer genossen, dass man damit wirklich alles machen kann. Ich habe vor die nächsten Jahrzehnte auch noch Computerarbeit zu leisten und finde es daher durchaus rentabel, eiinfach C/C++ weiter zu machen. Es ist anfangs vielleicht etwas komplizierter, aber ich glaube, irgendwann ist man doch so erfahren, dass man Plattformvor/-nachteile mit Wissen ausgleichen kann.
Meine Leidenschaft geht durchaus zu C/C++. Und es heißt ja auch, dass die persönliche Präferenz eines Entwicklers entscheidend ist.
Ich würde von C/C++ eigentlich nur abrücken, wenn man mir sagt, dass man innerhalb von 5 bis 10 Jahren dort das Komplizierte nicht mit Wissen und Erfahrung kompensieren kann und Perl, Python usw. nahe zu ewig einen übergroßen Vorteil darbieten.
|
snafu1
Anmeldungsdatum: 5. September 2007
Beiträge: 2123
Wohnort: Gelsenkirchen
|
Unix Samurai schrieb: Ist C++ unnötig kompliziert für einen Admin?
Ich verstehe (auch aufgrund deiner anderen Posts hier im Thread) noch nicht so ganz, wie du das meinst: Suchst du eine passende Sprache rein für Admin-Aufgaben oder suchst du eine Sprache für weitergehende Aufgaben und hast dein "Admin-Dasein" lediglich im Hinblick auf dein Hintergrundwissen angegeben? Weil, ganz im Ernst: C++ für rein administrative Aufgaben nutzen zu wollen, klingt schon sehr merkwürdig...
|
Lysander
Anmeldungsdatum: 30. Juli 2008
Beiträge: 2669
Wohnort: Hamburg
|
Und C != C++ !!! Wieso beides immer noch in einen Topf geschmissen wird, weiß ich nicht, aber sinnvoll ist es nicht. Und "alles" machen ist auch eine eher theoretische und vor allem schwer zu definierende Eigenschaft. Alle Programmiersprachen sind per definitionem Turing vollständig - d.h. man kann "alles" damit (theoretisch) machen. In der Praxis gibt es natürlich bedingt durch Hardware und der Software des OS Einschränkungen. Allerdings ist das wie beim Kauf eines Autos: Welcher Besitzer eines SUVs f#hrt denn Zeit seines Besitzerlebens durch die Wüste, Sumpf oder anderes heftoges Gelände? Es mag einen innerlich erleichtern, dass man es könnte, aber praktisch von Belang ist es nicht 😉 Insofern sehe ich das wie snafu1: Du musst schon ein wenig wissen, wohin Deine Reise geht. Einschränkungen gibt es eigentlich bei den genannten Sprachen nur in wenigen Grenzbereichen - wenn die Dein Kerninteressensgebiet sind, dann sind andere Alternativen ggf. sinnvoller. Wenn nicht, dann gibt es de facto auch keine Einschränkungen 😉
|
YEPHENAS
Anmeldungsdatum: 8. Juni 2009
Beiträge: 352
|
Unix Samurai schrieb: Hi. Ich merke langsam, dass ich die Bash an ihre Grenzen gebracht habe. Darum will ich noch eine zweite Sprache lernen. Ich arbeite hauptsächlich im administrativen Bereich. Ich schwanke momentan zwischen C und C++, Python, Perl und Java. Ich will etwas, was Allroundfähig ist. C++ kann ich bereits grundlegend, darum tendiere ich auch eher dahin, weil ich nich noch einmal von ganz vorne anfangen will. Ich würde C++ nur dann nutzen, wenn ich mit der Bash die Grenze erreiche. Wie seht ihr das? Ist C++ unnötig kompliziert für einen Admin? Wenn nicht, dann würde ich das nun einfach weiter ausbauen. MfG
C, C++ und Java sind keine für Admin-Aufgaben geeigneten Sprachen. Was du für Admin-Aufgaben willst ist eine Programmiersprache, bei der du Programm-Quellcodes per Shebang (#!) ohne selbst durchzuführende Kompilierschritte an einen Interpreter/JIT-Compiler übergibst, die dynamisch typisiert ist oder alternativ gute Typinferenz bietet, die keinen Boilerplate-Code für den Programmeinstiegspunkt braucht (à la public static void main ), die "batteries included" hat, also eine umfassende Standardbibliothek, und die es leicht macht Subprozesse zu starten. Python, Ruby, Perl sind die naheliegenden Optionen. Wobei Perl besonders Stark auf TIMTOWTDI setzt und für den verstärkten Gebrauch von Sonderzeichen in der Syntax verschrien ist. Bei Admins oft beliebt, bei Puristen unbeliebt. Python und Perl sind auf den meisten Linux-Systemen bereits installiert, Ruby meist nicht. Ruby ist von den dreien mein persönlicher Favorit.
|
Kinch
Anmeldungsdatum: 6. Oktober 2007
Beiträge: 1261
|
Unix Samurai schrieb: Ich will mir bald auch eine Website zu legen und da hörte ich sind Perl und PHP sehr oft im Einsatz. PHP werde ich vermutlich nicht lernen, weil es heißt, dass dies eher eine Lehrsprache ist, wenig Potential bietet verglichen zu Perl und so weit mein bescheidenes PHP Wissen reicht, funktioniert das doch nur im Browser? Und da ich das Terminal bevorzuge, scheidet PHP da aus.
Also, PHP würde ich auch abraten. Aber es ist definitiv keine Lehrsprache. Es ist eine Sprache die halt lange Zeit nur dazu benutzt wurde simple Webseiten zu hacken und erst in neueren Versionen allmählich so etwas wie ne Syntax bekommt. PHP läuft natürlich auch per Konsole, auch wenn der Einsatz direkt im HTTP-Server verbreiteter ist.
Perl reizt mich, weil es heißt, dass es bei kleineren Sachen sehr leistungsstark ist, ab dann aber immer unübersichtlicher wird.
Na ja; Perl hat ein paar Idiosynkrasien mit denen man halt klarkommen muss. Die meisten Kritisieren Perl wegen den vielen Sonderzeichen etc pp, aber imho ist das kein großes Problem. Das ist sehr leicht zu lesen nach einer Weile. Was mich bei Perl nervt ist die schlechte Objektorientierung, die doch relativ unelegant ist und die Art und Weise wie Parameter an Funktionen übergeben werden. Die Paramterübergabe bei Perl ist sehr ähnlich wie die bei Shell-Funktionen und zwar wird alles in eine Liste gestopft, also $1, $2, etc pp. Das ist eigentlich sehr flexibel und zum reinen hacken auch ganz praktisch. Du musst dir nicht sooo viele Gedanken über deine Schnittstellen machen, weil Perl halt relativ viel frisst. Natürlich kann es später auch unübersichtlicher werden, was man allerdings auch vermeiden kann. Wenn du eh nur kleiner Skripte schreiben wirst, ist Perl da eigentlich nicht so verkehrt, meiner Meinung nach. Übrigens: Eine Sprache die ich für eine überraschend gute Skript-Sprache halte ist Newlisp. Dateiverwaltung, Reguläre-Ausdrücke und Netzwerk sind da integriert und die Sprache ist recht einfach. Und im Gegensatz zu Python startet sie auch schnell (ein Grund, warum ich Python gerade für kleinere Skripte nicht gerne nehme ist, dass die Latenz viel zu hoch ist).
|