deets hat geschrieben:Python war meiner Meinung nach nie "sexy" - sondern einfach eine wirklich gut funktionierende Sprache fuer ein sehr breites Spektrum an Einsatzgebieten.
Ich sag' ja. Pragmatisch langweilig
Python hatte ich das erste Mal etwa 1994 entdeckt, dann wieder vergessen und dann um 1998 herum wirklich angeschaut. Aufhänger war ein MOO/MUD namens POO, was ich faszinierend fand. 1999 kaufte ich mir dann das Pick-Axe-Buch auf einer USA-Reise und war begeistert von dieser Sprache. Zumal ich mein geliebtes Smalltalk wiederentdeckte. Ruby fand ich definitiv sexy. 2001 versuchte ich, Ruby in Java nachzubauen, gab aber auf und andere pickten das verwaiste Projekt dann auf. 2007 entdeckte ich Django und war begeistert, da es mir viel einfacher als das immer komplizierter werdende Rails war.
Irgendwie symptomatisch für Python war aber auch bei Django die Dauer-Beta und die Ewigkeit, die es bis zur Version 1.0 gedauert hat und die (für mich von außen wahrgenommene) schneckenartige Geschwindigkeit, wie sich das Projekt jetzt entwickelt. Zudem sehe ich keine Antworten auf das "Realtime Web". Es bleibt ein nettes Admin-UI als Basis für ein traditionelles CMS.
deets hat geschrieben: Und wenn man zB betrachtet, wie viele Projekte Python-Bindungen anbieten (OpenCV, Ogre und viele, viele mehr) - in diesen Feldern sehe ich weder Ruby noch Javascript. Auch die Bereiche des scientific computing hat es sich immer mehr erobert.
Da mag es ja durchaus brillieren. Doch da es wahrscheinlich weniger Leute gibt, die numpy und Co interessiert als die eine Webapp bauen wollen, ist das nicht so in der breiten Aufmerksamkeit. Ich persönlich bin diesen Aspekten auch nicht wirklich zugewandt.
Als Hobby interessieren mich Programmiersprachen der Sprache selbst wegen, nicht weil man andere Dinge anbinden kann und beruflich bin ich zur Zeit wieder im User-Interface und Interaction Design unterwegs. Und weder auf iOS, Android noch Windows/Metro spielt Python eine Rolle.
deets hat geschrieben:Und das, was momentan *wirklich* sexy ist - naemlich PyPy - erwaehnst du noch nicht mal.
Weil ich es nicht so wahrnehme. Das Projekt braucht länger um zu delivern, als meine Aufmerksamkeitsspanne ist. Das mag mein Problem sein, aber wenn 2008 (ich meine, Pypy begann 2007) oder 2009 das Ziel erreicht worden wäre - prima. Doch seit ~5 Jahren jetzt an einem System herumzuschrauben, dass Python ungefähr genau so schnell macht (mal mehr, mal weniger) als CPython ist wenig spektakulär. Spannende JIT-Technologien wurden bereits früher entwickelt - 1995 habe ich da noch die ganzen Paper aus dem Self-Projekt gelesen - oder Paper rund um Forth. Die JVM hat vieles umgesetzt, nun findet die spannende Forschung/Implementierung im Rahmen von JavaScript-VMs statt.
Das Python als Sprache durch Pypy schneller wird, interessiert mich nicht. Ich hatte nie ein Performance-Problem mit CPython.
deets hat geschrieben:Javascript + Ruby hingegen sind IMHO ziemliche one-trick-ponies. Besonders Ruby ist im Grunde Rails. Nicht viel mehr. Das ist natuerlich technisch nicht begruendet. Aber so, wie der Rails-Hype entstanden und wieder abgeklungen ist, so ist das Interesse an Ruby angeschwollen - und schwillt wieder ab.
Dem Punkt mit Ruby stimme ich natürlich nicht zu - aber du sagst es ja selbst. Tatsächlich ist glaube ich vielen Leuten egal, das Rails mit so einer Programmiersprache namens Ruby kommt. Die wollen einfach nur Webseiten bauen. Aber das ist ja auch OK. Da gab es in der Anfangsphase auch mal einen tollen Artikel über Django, das man auch als Nicht-Programmierer mit minimalen Programmierkenntnissen nutzen kann und das finde ich eigentlich durchaus begrüßenswert. Das hat für mich mit für Django denn für Rails gesprochen, denn Ruby ist im Vergleich zu Python ein ganz fürchterlicher Haufen von Spezialregeln.
Was den One-Trick angeht: Ja, warum auch nicht. Lieber etwas gut können und seine Nische finden als alles so ein bisschen, aber dafür nichts besonders gut. Der Jack-of-all-Trades muss schon MacGyver sein, um darin ein Experte zu werden.
deets hat geschrieben:Wobei bei letzterer die *richtig* geilen Dinge sowas wie GWT sind, oder coffee-script.
GWT ist einfach Java. Das ist eine interessante AOT-Compiler-Technik (wie sie übrigens auch Google Closure - nicht Clojure - bietet), aber keine Programmiersprache. Und CoffeScript ist der feuchte Traum eines Ruby-Fans. Bei aller Liebe von Ruby, ich finde CoffeeScript hat es übertrieben. Ich habe da so meine Schwierigkeiten mit all den Varianten und Abkürzungen, die man gehen kann, um möglichst trickreich Argumente an Funktionen zu übergeben. Move ist da mehr mein Geschmack.
deets hat geschrieben:JS selbst als Sprache ist erstaunlich erbaermlich. Es ist nicht so schlecht wie sein Ruf lange war, weil die Sprache selbst von der DOM-Implementierung des Browsers geloest werden muss.
Das war die Wahrnehmungsverzerrung der Massen. Ich habe nie verstanden, wieso JavaScript nicht als eigenständige Sprache gesehen wird - zumal es eine der wenigen Sprachen ist, für die es eine exakte Spezifikation gibt und nicht nur eine Beispielimplementierung. Aber ich habe auch 2003 oder so mit dem Helma-Application Server JavaScript serverseitig benutzt und Spaß damit gehabt. Im Gegensatz zu Java fühlte sich das extrem produktiv an.
deets hat geschrieben:Aber wenn ich sie mit Python vergleiche, dann gibt es genau *EIN* feature, bei dem ich mir denke "ach, nett" - und das sind die anonymen funktionen, die einen etwas fluessigeren Programmierstil ermoeglichen, wenn man mit event-basiertem code arbeitet. Aber ehrlich gesagt ist das jetzt nicht soooo viel geiler, und in Python 3 mit dem nonlocal keyword auch noch weniger relevant.
Da ich traditionell aus der GUI-Programmierung komme, war mir schon immer die Event-basierte Programmierung vertraut und daher empfinde ich das aus meiner Sicht für ein ganz wichtiges Feature. Allerdings geht es auch anders, wie in Smalltalk oder Objective-C, wo man Methoden dann eben über ihren Selektor mit "perform:" aufruft.
Ich würde eher sagen, JavaScript ist einfach eine pragmatische funktionale Programmiersprache wie auch Scheme - die Sprache, die Eich ja eigentlich gerne bauen wollte und der er dann schnell eine Java-Syntax übergestülpt hat. Und die prototypische Vererbung ist nett, wenn sie denn so flexibel wie ihr Vorbild Self (oder wenigstens NewtonScript) gewesen wäre. Da hat Eich nicht gut genug abgeguckt, IMHO.
deets hat geschrieben:Und nur weil Node.js asynchrones programmieren ermoeglicht (twisted, anyone?!?) das jetzt dolle zu finden ... das ist einfach nur Hype. Sonst nix.
Das sehe ich anders. Die konsequente "Umarmung" der asynchronen Programmierung mit dem Preis, dass es synchron einfach nicht geht, ist das Killer-Feature und das was wirklich neu ist. Hier führt Node (zwangsweise) zu einem neuen Programmier-Paradigma und das ist eine gute Sache. Multi-Paradigmen-Sprachen sind zwar nett und pragmatisch praktisch in den Händen eines Profis, doch der Neuling ist IMHO besser dran mit einer Sprache, die ein Paradigma zweihundertprozentig durchzieht. Daher lohnt auch ein Blick auf Smalltalk, Erlang, Prolog oder Forth.
Natürlich lernt man relativ schnell, dass asynchrone Programmierung zu fürchterlichem Spagetti-Code führen kann und wünscht sich Sprachmittel, die hier helfen. CPS-Transformationen im Kopf machen keinen Spaß. Die Sprachmittel werden aber kommen. Es gibt eine experimentelle CoffeeScript-Version oder StratifiedJS oder so. Ich vermute, letztlich werden alle dem folgen, was sich Microsoft ausgedacht hat. Im Gegensatz zu anderen Firmen mit anderen Programmiersprachen, entwickeln die ihre Sprache(n) wenigstens noch weiter.
Stefan