Scriptsprachen. Welche verwendest du für was?

Rakor

Administrator
Teammitglied
Hallo zusammen,

ich bin die Tage über Lua gestolpert und hab mich da mal etwas ein gelesen um die Konfiguration von awesome etwas feiner steuern zu können. Dabei musste ich mich wieder wundern wie viele Scriptsprachen es doch gibt und wie viele verschiedene Anwendungsfälle.

Jetzt würde mich mal interessieren:
  • Welche Scriptsprachen verwendet ihr so?
  • Für welche Anwendungsfälle verwendet ihr sie (und welche Plattformen)?
  • Warum habt ihr euch jeweils für die entsprechende Sprache entschieden?
  • Was sind für euch die Vorteile der Sprache (warum nutzt ihr sie gerne)?
  • Was haltet ihr für Nachteile der Sprache (was stört euch daran)?
Ich fange mal an:
Für die meisten Fragestellungen im Bereich Scripte verwende ich derzeit Perl.
Ich mache damit alle kleinen Automatisierungen im System. Sei es ein Backupscript oder bedingte Ausführungen von Programmen. Ebenfalls fast alles was andere Leute mit "find", "awk" oder "sed" machen. Auch das überarbeiten von Textfiles (logs etc.).
Perl hatte ich mir irgendwann mal aus Zufall angesehen, ich glaube ich hab es im IRC mal empfohlen bekommen, und war einfach von der EInfachheit vieler Dinger angetan. Die einfache Nutzung von RegExp ist ein riesen Pluspunkt der mir gefallen hat. Da ich mit sh-scripten bis heute auf Kriegsfuss stehe (ich finde die Syntax einfach krank) und da Perl auf ziemlich allen Plattformen verfügbar ist nutze ich es gerne.
Ich verende es auf BSD, OS X und Windows.
Was ich mag ist wie gesagt die einfache Art Dinge zu tun, die Implementierung von RegExp (ohne irgendwas dazuladen zu müssen), die relativ schnelle Laufzeit, das sehr gute Handling von Textfiles und die Vielseitigkeit. Ebenfalls gibt es eine unheimlich große Auswahl an Modulen für fast alle Anwendungsfälle. Zudem ist Perl auf viele Plattformen bereits im Basissystem.
Allerdings stören mich auch einige Dinge. VIele sagen Perl wäre nicht lesbarer Code. Ich kann meinen Code noch Monate später lesen, aber die Tatsache, dass es möglich ist unleserlichen Code zu schreiben kam mir schon quer. Die Objektorientierung die nachträglich eingefrickelt wurde gefällt mir nicht und schon gar nicht wenn Module OO sind und ich dann mischen muss. Ebenso bin ich vom Variablenhandling nicht völlig überzeugt (aber das ist ein klassisches Problem von Scriptsprachen hab ich das Gefühl). Ausserdem hat Perl mittlerweile einen staubigen Geruch (was natürlich kein echter Grund ist).

Im Moment sehe ich mir wie gesagt etwas Lua an. Ich finde es ehrlich gesagt etwas übertrieben eine eigene Sprache nur für Konfigurationszwecke zu nutzen, aber mal sehen. Prosody (der Jabber-Server) ist ja komplett in lua geschrieben, also ist es wohl auch allumfassend nutzbar.

Demnächst werde ich mir wohl nochmal Ruby ansehen.

Jetzt lasst mal hören.

Edit: Und empfehlt ihr irgendwelche Bücher oder andere Ressourcen?
 
Zuletzt bearbeitet:
Hallo,

Ich bin das genaue Gegenteil! Ich mache fast alles mit Shell Skripts (und awk grep sed etc.). Auf den Systemen mit welchen ich arbeite, findet man auch immer "python", genau wie Perl. Perl selber mag ich nicht, da wie du schon sagtest, der Code sehr schnell unleserlich werden kann. (Der wird meist von den alteingesessenen Leuten in der Firma geschrieben und kein Mensch kann das lesen ;) ) Ich habe echt Respekt von Leuten, die dir einen Perl-Einzeiler in die Shell hauen und du selber erst mal 10min brauchst, um zu kapieren, was da überhaupt abgeht...

Für grössere Sachen, verwende ich dann meist Python. Es ist sehr mächtig und man kann (fast) alles damit machen.

Gruss
 
Ich habe i.d. Vergangenheit Lua verwendet, allerdings embeddet. Ist aber genau so gut zum scripten geeignet. Kompakt, schnell und einfach. Es gibt halt nicht ganz so viele Libs wie für Perl oder Python. Aber das dürfte sich inzwischen auch relativiert haben. Für größere Sachen lohnt sich evtl. LuaJIT: http://luajit.org/.

Alle anderen sind mir einfach zu groß...
 
Meine Historie ist relativ lang. Aber ich verwende eigentlich nur noch sh oder awk. Für alles weitere gibt es dann C oder C++11/14.
 
Nur Python. Warum? Weil die Sprache genug mitbringt und vorallem einem dazu animiert Code zu schreiben der auch noch am nächsten Morgen halbwegs verständlich ist. Ein Punkt der mich bei Shellskripten und Perl stets abgeschreckt hat.
Lua ist definitiv reizvoll, aber außerhalb von Embedded einfach zu sehr eine Nischenlöschung. Dazu kommen mir für meinen Geschmack auch zu viele elementare Änderungen dazu. Ergo noch nicht erwachsen und abgehangen genug.
 
Kleine Scripte mit sh, größere Sachen mit Python.
Ersteres, weils auf den Unixoiden einfach immer da ist, zweiteres weil es gut lesbar ist und unter Windows recht schmerzfrei nachinstallierbar.
Perl fand ich auf Windows nicht ganz so komfortabel.

Mit größeren Sachen meine ich beispielsweise Webseitengenerierung, Dinge eben, wo ich nicht gleich C oder C++ draufschmeißen will, aber doch mehr Logik enthalten, als ich /bin/sh anvertrauen möchte.
 
Wenn ich einfach nur stumpf wiederkehrende Befehle abarbeiten will oder diese Befehle nur eine Handvoll Parameter brauchen -> sh

Wenn ich diverse Befehle abarbeiten will, welche mit Dateien arbeiten und/oder etwas komplexere Logik brauchen (oft ist mir auch schon ein IF in sh zu eklig) -> python. Python, weil es im Gegensatz zu Ruby so gut wie überall vorinstalliert ist. Perl mag ich syntaktisch einfach so gar nicht.

Damit ist der "Hausgebrauch" abgedeckt.

Andere Sprachen sind problemspezifisch. Auf Arbeit habe ich es gerade mit einer Rails-Applikation zu tun, von daher dort Ruby und in der Datenbank PL/pgSQL.

Andere private Programmierprojekte habe ich gerade nicht. Bei Grafiksachen habe ich aber bisher immer C++ genommen, weil man dann nicht auf Wrapper zu OpenGL/SDL angewiesen ist. Wenn Rust fertig ist, will ich mir das aber mal genauer angucken.

Bei allem anderen Kram nehme ich dann aber doch lieber Skript oder JIT Sprachen (bisher Python wegen der super Community). Hauptsächlich weil dort (im Gegensatz zu C++) der UTF-8 und Lokalisierungs Support samt dazugehörigen Standardbibliotheken deutlich besser ist und ich mich nicht direkt mit ICU/Boost rumschlagen muss.

So "prinzipiell" habe ich jedoch etwas gegen diese ganzen Sprachen, die Interpretiert werden, da sie elendig viel Leistung einfach so verheizen. Gerade auf schwachen Systemen wie dem Raspberry Pi macht sich das bemerkbar. Da meine Projekte aber meist zum Eigenbedarf sind, springe ich da oft über meinen eigenen Schatten :D Für "ein Projekt für alle" würde ich dann doch den ICU Weg gehen.
 
Perl verwende ich nicht nur nicht sondern vermeide auch grundsätzlich soweit nur irgend möglich in Perl Gebautes. Sprich, wenn ich irgendwo lese, dass Perl auch nur fürs Bauen benötigt wird, lasse ich eine Software nahezu immer links liegen.

Shell wäre äusserst praktisch, auch weil Python immer fetter wird. Leider is shell Programmierung ehrlich gesagt ziemliches Gefrickel und weit entfernt von dem, was man heute (oder auch vor 15 Jahren) als halbwegs zeitgemäß und effizient bezeichnen könnte.

Lua nehme ich persönlich als Spielerei war und auch als inkonsistent. Allerdings arbeiten die wohl an interessanten Neuerungen; dann sehe ich mir das nochmal an.

Also Python. Ich war schon damals bei Version 1.x sehr angetan. Die Allüren der Sprache (die ja jede Sprache irgendwie hat), namentlich die Whitespace Syntax ist etwas gewöhnungsbedürftig hat aber wenigstens auch Vorteile. Eigentlich wäre das Thema Scripting für mich durch, wenn Python nicht immer fetter würde.

Zur Zeit eiere ich etwas herum mit diversen Ansätzen wie Tiny Python (ehrlich gesagt kaum brauchbar), der rc shell (ein ziemlich aussichtsreicher Kandidat für Kleinzeug scripting) und diversen Exoten wie "besseren Luas" (z.B.Squirrelscript), veralteten Pascal-Script Ansätzen und anderem mehr.

Für Fälle, in denen eine "Add on Sprache" gebraucht wird, baue ich bevorzugt (wenn auch aufwendig und eigentlich ungern) selbst DSL Interpreter (meist mit Amsterdam Kit und zunehmend mit Coco/R).

Irgendwie finde ich das Thema scripting traurig. Es gibt endlos vieles aber äusserst wenig praktisch Brauchbares.
 
Für administrative und v. a. OS-spezifische Anwendungen nehme ich gerne sh - solange man keine komplexeren Datenstrukturen braucht, funktioniert das wunderbar, und man kann auch problemlos umfangreichere Sachen damit bauen (siehe z. B. Poudriere oder yajam), wenn auch zugegebenermaßen die Wartbarkeit mit zunehmendem Umfang der Software rapide abnimmt - gefühlt bin ich da häufiger mal am "reverse engineeren" um herauszubekommen, was ich irgendwo mal gemacht hatte. Der große Vorteil ist aber IMO, dass sh-Skripte OOTB auf einem Vanilla System laufen, also keine zusätzliche Software benötigen - zumindest solange man nur Werkzeuge nutzt, die vom POSIX-Standard beschrieben sind, diese auch POSIX-konform nutzt (und nicht die GNU-Syntax verwendet) und man Bashismen vermeidet.

Ansonsten ist Python mein klarer Favorit, wobei ich da nicht mehr von einer Skriptsprache sprechen würde - immerhin kann man damit problemlos auch komplexere Strukturen modellieren, Interfaces entwerfen und OOP verwenden - das übrigens in weit stärkerem Maße als mit Perl, zumal auch Design Patterns kein Problem sind. Warum Python und nicht Ruby oder Lua? Python ist IMO klarer lesbar, durch Meta-Spielchen (z. B. Überschreiben von Special Methods) sehr flexibel nutzbar, und nicht zuletzt liebe ich syntaktischen Zucker (wie z. B. Dekoratoren).
 
Automatisiertes Abarbeiten von Befehlen erledigen Shellscripts für mich am bequemsten (bzw. Batch unter Windows). Warum unnötige Abstraktionsschichten dazwischen?
 
Ich nutze Perl, eben weil ich vor 15 Jahren damit mal angefangen habe, CGI-Anwendungen zu schreiben. Bisher gab es noch kein Problem, das ich damit nicht lösen konnte. Und dass der Code unleserlich wird, muss ich (ohne einen Flamewar entfachen zu wollen) auf den jeweiligen Programmierer schieben, das hat mit Perl nix zu tun.

Rob
 
Und dass der Code unleserlich wird, muss ich (ohne einen Flamewar entfachen zu wollen) auf den jeweiligen Programmierer schieben, das hat mit Perl nix zu tun.

Zitat von einem Gentoo-benutzenden Kollegen: „Portage [Gentoos Paketmanager, Anm. des Autors] ist der Beweis dafür, dass man auch mit Python unleserlichen Spaghetticode produzieren kann.“

Die ultimative Wahrheit gibt es eh nicht.
 
Kannst ja mal einen Link geben damit man sich ein Bild davon machen kann. Generell hängt natürlich vieles vom Programmierer ab, aber die Versuche mir Perl näher anzuschauen haben mit Kopfschmerzen beim Syntax aufgehört, mal von den vielen Hacklösungen abgesehen. In der Regel entscheidet man sich für Python und installiert es zusätzlich. Perl ist einfach nur da und entweder will man da gern besonders clever wirken oder man hat oft zu wenig Zeit etwas leserliches zu hinterlassen, IMHO.
 
Hallo,

meine Wenigkeit verwendet sh für Systemskripte, oder wenn es komplexer wird auch schon mal Perl.
Für meine Webseiten (Internet und Intranet) kommen Perl, PHP und JavaScript zum Einsatz. Manches geht halt mit Perl einfacher und manches mit PHP. Kommt halt darauf an, ob es passende Bibliotheken gibt. Solche Sachen wie "ich habe hier ein ganz tolles Perl-Skript, das nur aus einer Zeile besteht und mehr kann als OpenOffice" gibts bei mir nicht. Ich halte meinen Code leserlich, auch wenn Perl-Spezis darüber die Nase rümpfen.

Python möchte ich gerne lernen, weil es doch viele interessante Möglichkeiten bietet. Auch und vor allem, weil es für Blackberry OS10 zur Verfügung steht, um damit Apps zu entwickeln.

Grüßle

Juergen
 
Ich hab mich in Perl verliebt. Die Sprache bietet mir extrem viele syntaktische Freiheiten. Wenn man sich aber nicht im Griff hat dann kanns schon mal hässlich werden ;)
 
Für ganz simple Sachen verwende ich die Bourne shell (plus die üblichen Tools wie awk, sed etc.); ansonsten Python.

Warum Python? Es hat eine größere Verbreitung als Ruby (insbesondere im wissenschaftlichen Bereich); ansonsten sind beide Sprachen praktisch gleichwertig.

Perl ist langsam aber sicher legacy. Die restlichen Skriptsprachen haben für meinen Geschmack eine zu kleine Community.
 
Für ganz simple Sachen verwende ich die Bourne shell (plus die üblichen Tools wie awk, sed etc.); ansonsten Python.

Warum Python? Es hat eine größere Verbreitung als Ruby (insbesondere im wissenschaftlichen Bereich); ansonsten sind beide Sprachen praktisch gleichwertig.

Perl ist langsam aber sicher legacy. Die restlichen Skriptsprachen haben für meinen Geschmack eine zu kleine Community.

Ich würde Perl nicht als legacy abtun. CPAN wächst und gedeiht und Perl6 ist in der Entwicklung. Sicher, Python3 ist da schon weiter. Ich finde halt einfach diese Eleganz von Perl einfach gut, ohne Python oder Ruby abzuwerten.
 
[*]Welche Scriptsprachen verwendet ihr so?
Shell, Python, Lua. Bei anderen Sprachen kann man nicht von benutzen sprechen, mehr von "anschauen, kurz was drin schreiben, wieder vergessen"

[*]Für welche Anwendungsfälle verwendet ihr sie (und welche Plattformen)?
Shell für das meisten SysAdmin-Zeug, wenn's hier dann etwas komplexer wird wechsel ich zu Python. Dafür ist mir Shell einfach auf Dauer zu widerlich.
Python für alle etwas komplexere Logik, insbesondere im wissenschaftlichen Bereich wo ich sie fast ausschließlich verwende. Abgesehen von ein bissle Matlab wo's sich nicht vermeiden läßt (sprich: wo andere schon angefangen haben "Code" zu schreiben); R, Julia und Co. hab ich zwar auf'm Radar, aber war bisher nicht wirklich nötig sich einzuarbeiten.
Lua eigentlich nur für LuaLaTeX.

[*]Warum habt ihr euch jeweils für die entsprechende Sprache entschieden?
Python war in unserem wissenschaftlichen Feld weit verbreitet, also hab ich mich eingelernt und es bis heute nicht bereut :)
Die ganzen Versuche, Python in Latex einzubinden erschienen mir (damals, vor ein paar Jahren) alle irgendwie unausgereift, und mit Duct-Tape zusammengeschustert. LuaLaTeX schien da einen saubereren Weg zu begehen, also hab ich mir mal Lua angeschaut.

[*]Was sind für euch die Vorteile der Sprache (warum nutzt ihr sie gerne)?
Shell weil's halt bei allen anständigen Betriebssystemen dabei ist und ich eigentlich portablen Code mag.
Die am meisten gelobten Beispiele für Python treffen auch auf mich zu:
- Whitespace-Syntax (ich rück eh ein, dann kann ich die drecks Klammern auch gleich weglassen)
- Die Syntax und generelle Designphilisophie macht es generell einfach, gut lesbaren Code zu schreiben. Ja, ich weiß, auch mit Python kann man Dreck produzieren, glaubt mir, ich hab's zur Genüge gesehen hier an der Uni...
- Viele, meist (!) gut strukturierte Module.

[*]Was haltet ihr für Nachteile der Sprache (was stört euch daran)?
Bei Python stört mich manchmal das Fehlen der richtigen anonymen Funktionen, sowie die fehlende Unterstützung für funktionales Programmieren.
Einige Python-Module folgen den den Pythongrundregeln selbst nur unzureichend, vor allem die gängigen Module die sich um Kommandozeilenparameter kümmern und manche der Internetbibliotheken.

Lua benutzt prototypbasierte OO, da werd ich irgendwie nicht richtig warm mit. Außerdem muß man sich die ganze OO quasi selbst bauen, und auch wenn's einige vorgefertigte Lösungen gibt, die z.T. Pseudoklassen implementieren wirkt das auf mich etwas zu Low Level.
Die Standardbibliothek definiert Funktionen, die Listen/Tables bei 1 zu indizieren beginnen, statt bei 0...
Alle Variablen sind global, lokale muß man explizit mit local definieren... ernsthaft?!
 
Ich bin immer noch unentschlossen und werde es wahrscheinlich auch für immer bleiben. Obwohl ich sh-Script nicht besonders mag, nutze ich es für die meisten kleinen Dinge und für alles, was möglichst ohne Abhängigkeiten auskommen sollen. So habe ich zum Beispiel mein Bhyve-Startscript darin geschrieben, damit ich keinen weiteren Interpreter auf den Host-Systemen benötige. Für die komplexeren Dinge habe ich bereits einen längeren Weg hinter mir.
Wie viele Old-School-Unixer habe ich ursprünglich mit Perl begonnen und es viele Jahre lang genutzt. Aber mit der Zeit wurde ich immer unzufriedener mit Perl, sicher auch da ich zu viele zu lange und zu schlechte Perl-Scripte gelesen habe. Dazu kam, dass Perl extrem viel Syntax hat. Ich glaube manchmal, dass nicht mal Larry Wall noch alle validen Konstrukte und Sonderlocken kennt. Außerdem gibt es bei Perl den Drang Dinge anders als der Rest der Welt zu machen. Stichwort Objektorientierung. Und nicht zuletzt wurde Perl6 zur endlosen, bis heute nicht abgeschlossenen Geschichte.
So kam ich zu Ruby. Ich finde bis heute, dass Ruby die schönste Scriptsprache ist. Sie hat einen prägnanten Syntax, bietet oft mehrere Wege und Abkürzungen, aber auch nicht zu viele. Regex sind Teil des Sprachkerns und nicht zuletzt ist alles ein Objekt. Allerdings stellte sich bald heraus, dass Ruby für meine Arbeit damals nur so lala zu gebrauchen war. YARV war noch vergleichsweise langsam und der Interpreter insgesamt recht gödelig und zu sich selbst inkompatibel. Die Standard-Bibliothek, Gems und auch die Sprache selbst standen zu sehr unter dem Eindruck von Rails und fokussierten sich auf Webentwicklung. All das soll sich inzwischen zwar gebessert haben, aber ich habe es mir noch nicht angesehen. Vor allem aber war und ist es eine Freikarte für's Irrenhaus auch nur daran zu denken, Ruby in eine andere Anwendung einzubinden.
Also Python. Ich mag Pythons Syntax nicht besonders. Whitespaces mit Bedeutung empfinde ich als grundfalsch. Ich bin einer von denen, die ein "import braces" haben möchten. Aber Python hat einen guten Interpreter, einen definierten Entwicklungsprozess mit durchdachten und rückkompatiblen Änderungen. Die Standard-Blibliothek ist sehr umfassend, es ist genügend Objektorientierung vorhanden. So bin ich am Ende - oder vielleicht auch nur im Moment - bei Python hängen geblieben.
Berufsbedingt mache ich auch ab und an etwas in PHP. Aber (PHP-Entwickler bitte wegschauen) es bestätigt mich jedes Mal wieder in meiner gemeinen Ansicht, dass PHP-Entwickler die Trabbi-Fahrer unter den Programmierern sind. Allein schon der extrem inkonsistente Sprachkern [1] rechtfertigt, PHP rituell auf einem Scheiterhaufen zu verbrennen.

1: http://phpmanualmasterpieces.tumblr...im-crying-literally-crying-actual-tears-in-my
 
Ich finde man muss PHP anrechnen, dass Sie versuchen die Sprache, die sich nun mal aus unsäglichem Privatgefrickel entwickelt hat, zu fixen soweit das geht ohne Kompatibilität zu brechen.

Genau den umgekehrten Weg ist Java gegangen. Von einer klaren Vision/einem klaren Konzept schleppen die tonnenweise halbgares Zeug und Layer violations, direkt aus der Business-Industrie, ein. Munter werden Konzepte aus anderen Sprachen importiert, nur dass man es grundsätzlich schlechter als im Original macht. Dazu kommt, dass die JVM sich für ein Betriebssystem hält und schlechtes Speichermanagement macht. Mit Garbage-Collection gibt es kein deterministisches Laufzeitverhalten was dazu führt, dass in Java implementiertes Crypto grundsätzlich anfällig für Side-Channel angriffe ist und man auch Echtzeitanwendungen von Anfang an ausschließen kann.

So jetzt breche ich meinen Off-Topic rant mal ab, bevor mein Kopf explodiert.
 
Ich glaube, die Whitespaces in Python sind wie Gangster-Rap. Entweder man liebt es oder man hasst es, dazwischen gibt es nicht viel. :)
 
@Yamagi
Whitespace mit Bedeutung halte ich für das Feature in Python. Endlich mal eingrückte Programme :ugly:
Da muss ich natürlich von meiner Erfahrung berichten. Ich habe schon erlebt, dass in einer einzigen Datei mit 2, 3, 4, 5 und 6 Spaces eingerückt wurde.

Ich sah mich schließlich dazu gezwungen ein Skript zu schreiben, dass die Einrückung komplett neu macht.

Ich gebe da übrigens der Python Konvention die Schuld mit 4-Spaces einzurücken. Mal schnell etwas auskommentiert und von einem Anderen Entwickler später wieder einkommentiert und schon hat man die Einrückung verändert. Tabs sind da durch ihre Elastizität weniger anfällig.

Ich habe mich mal länger damit auseinandergesetzt und fast eine Woche nach dem Thema gegoogelt. Am Schluss hat mich das Konzept das beste aus Beiden Welten (Spaces und Tabs) zu vereinen. Einrücken mit Tabs, formatieren mit Spaces. Das eigentlich großartige an dem Vorschlag ist sich überhaupt erst mal klar zu machen, dass das 2 unterschiedliche Dinge sind, die unterschiedliche Lösungen erfordern können.

Das sieht dann in der Praxis so aus:
Code:
void Mesh::getZRay(vector<TriangleIntersection> & intersect,
                   Point const & origin,
                   Triangle const * const xTriangles[],
                   Triangle const * const yTriangles[]) const {
	/* Take the list of triangles intersecting the y-plane and filter them
	 * by triangles that intersect the x-plane.
	 * Use an algorithm for intersecting sorted lists. */
	Line const ray{origin, Spatial{0, 0, 1}};
	…
	/* Sort the intersections. */
	sort(intersect.begin(), intersect.end(),
	     [](TriangleIntersection const & a, TriangleIntersection const & b) {
		return a.z < b.z;
	});

Oder die vim-Ansicht mit "set list":
Code:
void Mesh::getZRay(vector<TriangleIntersection> & intersect,$
                   Point const & origin,$
                   Triangle const * const xTriangles[],$
                   Triangle const * const yTriangles[]) const {$
^I/* Take the list of triangles intersecting the y-plane and filter them$
^I * by triangles that intersect the x-plane.$
^I * Use an algorithm for intersecting sorted lists. */$
^ILine const ray{origin, Spatial{0, 0, 1}};$
  …
^I/* Sort the intersections. */$
^Isort(intersect.begin(), intersect.end(),$
^I     [](TriangleIntersection const & a, TriangleIntersection const & b) {$
^I^Ireturn a.z < b.z;$
^I});$

Was man hier schön sieht ist dass die Formatierung der sort() Parameter oder des Methodenkopfes nicht zerstört wurden.
 
Ich muss noch zu Python ergänzen, es gibt Punkte die einem schon stören können. Threads eignen sich nur für IO-Kram, GIL ich grüße dich. Es gibt nach wie vor keinen Grund auf 3 umzusteigen. CPython ist so langsam, einfach mal PyPy starten zum Vergleich. Python ist dumm, keine Überprüfung beim Start ob Einrückungen plausibel sind, ob Namen bekannt sind etc.

Eigentlich nutze ich nur noch Python, dass liegt einerseits an den Batterien und div. Drittanbieterbibliotheken aber auch an der Ausdrucksstärke der Sprache. Ich glaube in meinem Leben werd ich wohl nie den kompletten Umfang der Sprache schon gar nicht aller Bibliotheken jemals nutzen. Genutzt wird es überwiegend für Tools die ich schreibe weil es sonst nix besseres gibt.

@Kamikaze: Wenn derjenige schon mit der Einrückung überfordert war und so was simples wie eine Konvention(PEP8) nicht einhält, möchte man lieber nicht den restlichen Code sehen.
 
Zurück
Oben