Hat Python seinen Zenit überschritten?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
bremer
User
Beiträge: 109
Registriert: Sonntag 25. Mai 2008, 00:13

Innerhalb eines Jahres hat Python im Tiobe Index mehr als die Hälfte seiner Popularität eingebüßt. Abseits von dem, was man von ihm halten mag, scheint die Nutzerbasis von Python abzunehmen.

Dies könnte mit der Umstellung zu Python 3k (blöder Name) zu tun haben. Mehr als drei Jahre nach der Veröffentlichung, sind viele wichtige externe Bibliotheken noch nicht aktualisiert worden, oder wurden ganz aufgegeben. Die Python Image Library arbeitet mit 2.7. Das Standardpaket von NumPy arbeitet mit 2.6. PyWin32 wurde nur scheinbar auf 3.x umgestellt.

Zudem ist Tkinter, das integrierte GUI-Framework,unbeliebt. Die meisten greifen auf externe GUIs wie PyQt und WxWidgets (ebenfalls nicht für 3.x verfügbar) zurück.

Ein Versionswirrwarr hat sich ergeben. Mehrere Versionen müssen in der Regel installiert werden, der Programmierer soll zwischen verschiedenen Syntaxen wechseln und muss mit den internen Abläufen auch der älteren Versionen vertraut sein. Da hätte man auch gleich bei 2.x bleiben können. Gezwungen ist man dazu oft sowieso.


Was meint ihr? Wird Python nun langsam aussterben?
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

bremer hat geschrieben:Innerhalb eines Jahres hat Python im Tiobe Index mehr als die Hälfte seiner Popularität eingebüßt. Abseits von dem, was man von ihm halten mag, scheint die Nutzerbasis von Python abzunehmen.
Du meinst die Suchen danach. Wenn du dir andere Statistiken anschaust, die im Gegensatz zu TIOBE auch Sinn machen, wie etwa die Anzahl der Python-Projekte auf GitHub oder so, dann kommst du zu anderen Schlüssen.
bremer hat geschrieben:Dies könnte mit der Umstellung zu Python 3k (blöder Name) zu tun haben. Mehr als drei Jahre nach der Veröffentlichung, sind viele wichtige externe Bibliotheken noch nicht aktualisiert worden, oder wurden ganz aufgegeben. Die Python Image Library arbeitet mit 2.7. Das Standardpaket von NumPy arbeitet mit 2.6. PyWin32 wurde nur scheinbar auf 3.x umgestellt.
Python 2.x wird immer noch maintained. Und PIL ist sowieso eher unmaintained, daher gibt es einen entsprechenden Fork.
bremer hat geschrieben:Zudem ist Tkinter, das integrierte GUI-Framework,unbeliebt. Die meisten greifen auf externe GUIs wie PyQt und WxWidgets (ebenfalls nicht für 3.x verfügbar) zurück.
Tkinter war seit immer unbeliebt, seitdem ich Python genutzt habe, also so ca. 2003 ;) PyQt ist doch für Python 3 verfügbar, ebenso PyGObject für GTK+. Und wxWidgets ist immer weniger beliebt, nicht nur in Python sondern auch allgemein. Von allen GUI-Apps die ich nutze sind so 80% GTK+, 20% Qt und 0% wxWidgets. Ergo ob es wxPython für Python 3.x gibt, ist etwa so relevant wie die Existenz von FLTK für Python 3.
bremer hat geschrieben:Was meint ihr? Wird Python nun langsam aussterben?
Klar, 2012 ist ja auch Weltuntergang. Und 2013 Jahr des Linux-Desktops. Unpraktischerweise erst nach dem Weltuntergang.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
lunar

@bremer: Erwartest Du ernsthaft eine fundierte Diskussion auf Basis der Tiobe Statistik?!
bremer
User
Beiträge: 109
Registriert: Sonntag 25. Mai 2008, 00:13

Leonidas hat geschrieben:
bremer hat geschrieben:Innerhalb eines Jahres hat Python im Tiobe Index mehr als die Hälfte seiner Popularität eingebüßt. Abseits von dem, was man von ihm halten mag, scheint die Nutzerbasis von Python abzunehmen.
Du meinst die Suchen danach. Wenn du dir andere Statistiken anschaust, die im Gegensatz zu TIOBE auch Sinn machen, wie etwa die Anzahl der Python-Projekte auf GitHub oder so, dann kommst du zu anderen Schlüssen.
Nach GitHub wäre Ruby populärer und essentielle Sprachen wie C und C++ unwichtiger. Wie ist das Ernst zu nehmen?
Leonidas hat geschrieben:
bremer hat geschrieben:Dies könnte mit der Umstellung zu Python 3k (blöder Name) zu tun haben. Mehr als drei Jahre nach der Veröffentlichung, sind viele wichtige externe Bibliotheken noch nicht aktualisiert worden, oder wurden ganz aufgegeben. Die Python Image Library arbeitet mit 2.7. Das Standardpaket von NumPy arbeitet mit 2.6. PyWin32 wurde nur scheinbar auf 3.x umgestellt.
Python 2.x wird immer noch maintained. Und PIL ist sowieso eher unmaintained, daher gibt es einen entsprechenden Fork.
Ist nicht das Einzige, was nicht gewartet wird.
Leonidas hat geschrieben:
bremer hat geschrieben:Zudem ist Tkinter, das integrierte GUI-Framework,unbeliebt. Die meisten greifen auf externe GUIs wie PyQt und WxWidgets (ebenfalls nicht für 3.x verfügbar) zurück.
Tkinter war seit immer unbeliebt, seitdem ich Python genutzt habe, also so ca. 2003 ;) PyQt ist doch für Python 3 verfügbar, ebenso PyGObject für GTK+. Und wxWidgets ist immer weniger beliebt, nicht nur in Python sondern auch allgemein. Von allen GUI-Apps die ich nutze sind so 80% GTK+, 20% Qt und 0% wxWidgets. Ergo ob es wxPython für Python 3.x gibt, ist etwa so relevant wie die Existenz von FLTK für Python 3.
Also wxWidgets schwindet.
Leonidas hat geschrieben:
bremer hat geschrieben:Was meint ihr? Wird Python nun langsam aussterben?
Klar, 2012 ist ja auch Weltuntergang. Und 2013 Jahr des Linux-Desktops. Unpraktischerweise erst nach dem Weltuntergang.
Natürlich ist 2013 nach dem Zusammenbruch, wenn Microsoft nicht mehr existiert, das Jahr des Linux-Desktops.
lunar hat geschrieben:@bremer: Erwartest Du ernsthaft eine fundierte Diskussion auf Basis der Tiobe Statistik?!
Warum nicht? Alle Indikatoren sind fehlerhaft. Der Ausschlag ist aber extrem.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

bremer hat geschrieben:
Leonidas hat geschrieben:
bremer hat geschrieben:Innerhalb eines Jahres hat Python im Tiobe Index mehr als die Hälfte seiner Popularität eingebüßt. Abseits von dem, was man von ihm halten mag, scheint die Nutzerbasis von Python abzunehmen.
Du meinst die Suchen danach. Wenn du dir andere Statistiken anschaust, die im Gegensatz zu TIOBE auch Sinn machen, wie etwa die Anzahl der Python-Projekte auf GitHub oder so, dann kommst du zu anderen Schlüssen.
Nach GitHub wäre Ruby populärer und essentielle Sprachen wie C und C++ unwichtiger. Wie ist das Ernst zu nehmen?
Genauso wie TIOBE? Ich mein, schau dir doch mal an, wie die die Popularität definieren. Das ist doch Quatsch. Wenn du mit Aussterben argumentierst, dann über Communityentwicklung, Anzahl der Codezeilen, Gesundheit der Projekte und des Ökosystems, der Konferenzen, des Professionellen Supports. Aber "Python programming" zu Googlen? Ich bitte dich. Das ist wie als würde man nach Apfel und Birnen googlen um rauszufinden was besser schmeckt.
Leonidas hat geschrieben:
bremer hat geschrieben:Dies könnte mit der Umstellung zu Python 3k (blöder Name) zu tun haben. Mehr als drei Jahre nach der Veröffentlichung, sind viele wichtige externe Bibliotheken noch nicht aktualisiert worden, oder wurden ganz aufgegeben. Die Python Image Library arbeitet mit 2.7. Das Standardpaket von NumPy arbeitet mit 2.6. PyWin32 wurde nur scheinbar auf 3.x umgestellt.
Python 2.x wird immer noch maintained. Und PIL ist sowieso eher unmaintained, daher gibt es einen entsprechenden Fork.
Ist nicht das Einzige, was nicht gewartet wird.[/quote]
Was denn noch? Die Zeiten ändern sich, neue Projekte entstehen, die die alten ersetzen. Oder nutzt du noch Kid, als das der neueste Schrei war, damals in TurboGears 0.9?
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
lunar

@bremer: Der Tiobe-Index misst nur eine Blase aus Suchbegriffen, ohne jegliche Korrelation zur wirklichen Welt. Wenn Google mal drei Prozent weniger Ergebnisse für "BMW driving" liefert, dann interessiert das noch weniger als der sprichwörtliche Sack Reis... doch wenn "Python programming" drei Prozent abstürzt, stirbt Python plötzlich aus? Ist doch absurd. Kann es sein, dass Du Dir nie angeschaut hast, was Tiobe misst und wie die hübschen Zahlen und Graphen tatsächlich zustande kommen?

GitHub ist demgegenüber schon deswegen ernst zu nehmen, weil es tatsächlich existierende Projekte und deren Wachstum repräsentiert. Bei BMW zählt ja schließlich auch nicht die Anzahl der Google-Ergebnisse für "BMW driving", sondern die Anzahl der verkauften Autos.
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

Bestimmte Sprachen sind - berechtigt oder nicht - in bestimmten Kreisen für eine bestimmte Zeit populär.

In wie weit und in welcher Gruppe Tiobe Popularität misst, weiß ich nicht. Bei Github ist es da IMHO schon einfacher, weil der Service aus der Ruby und Rails Community groß geworden ist. Dort tummeln sich viele Web-Entwickler die Git nutzen. Sie sind eher unabhängig, innovativ, typische Alpha-Geeks, die weiterziehen, wenn es etwas Neues gibt. Es sind weniger Leute, die jahrelang mit einer Entscheidung zufrieden, still vor sich hinarbeiten.

In dieser Gruppe ist Python nicht populär und auch Ruby (15%) bzw. Rails hat dort IMHO den Zenit überschritten. Die 20% JavaScript kommen nicht nur daher, dass jede Web-Anwendung neben HTML auch noch JavaScript benutzt, sondern das JavaScript, sei es auf dem Client oder auf dem Server, durch Node eine neue Hype-Sprache (nicht nur) im Github Umfeld ist. Bootstrap (obwohl mehr HTML als JS) ist das populärste Projekt gefolgt von Node.JS, Rails und JQuery. Gleich danach kommt übrigens Homebrew, was zeigt, das wahrscheinlich die Menge der Ruby-Entwickler, der Github-User und der Mac-User eine große Überschneidung hat. Doch das nur nebenbei.

Übrigens steht Python mit 9% doch gar nicht so schlecht.

Django ist das populärste Projekt, gefolgt von Tornado und Requests. Danach kommt Flask (weit vor Bottle). Allerdings sind 3500 Follower für Django schon recht wenig im Vergleich zu 13300 von Node oder 5300 von Express oder 6400 von Backbone.

Die Frage, ob Python den Zenit überschritten hat, kann jeder wohl nur persönlich oder für seine persönliche Community bzw. das Interessengebiet beantworten.

Ich würde das für mich bejahen, denn ich wüsste jetzt nicht, in welchem (mich interessierenden) Teilgebiet Python "cool" und die "goto"-Sprache mit passender "Killer-App" ist. Django war das vor einigen Jahren für mich, doch inzwischen interessiert mich Web-Entwicklung nur noch am Rande und wenn, würde ich den Alphas zu JavaScript folgen.

Der eine oder andere mag darauf hinweisen, dass im Linux-Umfeld Python weit verbreitet wird, aber da mich Linux genau so wenig wie Windows begeistert und ich es höchstens als User benutzen würde, ist mir das egal. Und von innovativen Apps in Python z.B. im Ubuntu-Umfeld habe ich jetzt auch nicht gehört.

Wenn jemand meint, Python wäre praktisch und ein gutes Arbeitstier (z.B. für die Systemverwaltung), dann respektiere ich das, doch für mich ist das leider ein Ausdruck von Langeweile. Das begeistert mich nicht.

Die fehlende Bereitschaft der Python-Community, die gut-genug-Sprache Python 2.x zugunsten von Python 3.x zu verlassen ist ein Pragmatismus, den ich ebenfalls als langweilig empfinde und persönlich wenig ansprechend. Das lässt mich dazu tendieren, Python 3 als gescheitertes Experiment zu sehen, was die Community angeht. Eine "es geht doch auch mit Python 2.x"-Einstellung erzeugt keine verrückten neuen Ideen, wie ich sie gerne im Umfeld einer Sprache sehen wollen würde. Selbst wenn das bedeutet, dass es 30+ Testrahmenwerke gibt.

Allgemein vermisse ich in der Python-Gemeinde den brennenden Enthusiasmus, der bei Ruby oder JavaScript (den typischen Github-Usern eben) viel häufiger gibt.

Natürlich wird Python nicht aussterben. Python 2.x schon mal gar nicht.

Aber die Gründe, warum man sich Python beibringen sollte - außer das es relativ einfach zu erlernen ist - sind immer schwerer zu finden. Ich glaube, da geht es Python ähnlich wie Perl. Das war einmal der Star der ersten Tages des Webs, doch inzwischen ist es (aus meiner Sicht) bedeutungslos geworden und dümpelt seit Jahren in dem Versuch dahin, die 6-te Version von sich zu erschaffen.

Welche Gründe habt ihr denn?

Wofür eignet sich eurer Meinung nach Python - oder eine bestimmte Python-Bibliothek - besser als die Konkurenz?

Stefan
Benutzeravatar
snafu
User
Beiträge: 6740
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

Hier ein kritischer Beitrag zu Tiobe. Dort wird einem, wie auch schon hier, klargemacht, dass die Häufigkeit der Benutzung von irgendwelchen Suchbegriffen nichts über die Popularität einer Sprache aussagt.

Wenn jetzt ein Jahr lang niemand mehr nach "python" sucht, dann würde ich mir vielleicht Sorgen machen... ;)
derdon
User
Beiträge: 1316
Registriert: Freitag 24. Oktober 2008, 14:32

Ach, es wird immer ein paar Schüler geben, die für ihre Bio-Referate recherchieren müssen, mach dir da keine Sorgen ;)
deets

Python war meiner Meinung nach nie "sexy" - sondern einfach eine wirklich gut funktionierende Sprache fuer ein sehr breites Spektrum an Einsatzgebieten. 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.

Python hat daher langsam und stetig eine immer groesser Basis erworben.

Und das, was momentan *wirklich* sexy ist - naemlich PyPy - erwaehnst du noch nicht mal.

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.

Genauso Javascript, hautptsaechlich durch Node.js und client-seitige Entwicklung. Wobei bei letzterer die *richtig* geilen Dinge sowas wie GWT sind, oder coffee-script. 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.

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.

Und nur weil Node.js asynchrones programmieren ermoeglicht (twisted, anyone?!?) das jetzt dolle zu finden ... das ist einfach nur Hype. Sonst nix. Naturelich hat der positive Effekte, weil er Aufmerksamkeit erzeugt. Aber ob das langfristig reicht - ich bezweifele es.

Natuerlich ist Py3 weniger erfolgreich als gewuenscht. Aber nach dem 1 1/2jaehrigen Moratorium ist jetzt auch wieder das Potential fuer neue Entwicklungen da.
lunar

@deets: Der Hype um Node.js rührt wohl eher, dass es als erstes und eigentlich bisher auch als einziges Projekt Javascript als ernsthafte Sprache außerhalb des Browsers etabliert hat. Dass man mit asynchron programmieren kann, war da nicht so die Neuigkeit, dass wusste man schon vorher. Neu an node war allerdings, dass es konsequent asynchrone Operationen bietet, selbst für Dinge wie Dateisystemzugriffe, die vorher nicht zu den typischen asynchronen Operationen gehörten.

@sma: Also aus der Anzahl der "Follower" kann man imho bestenfalls ablesen, wie viele Leute mal einen cooles fancy Blog-Posting über XY gelesen haben und dann das "Follow" mit "Like" verwechselt haben...
deets

lunar hat geschrieben:@deets: Der Hype um Node.js rührt wohl eher, dass es als erstes und eigentlich bisher auch als einziges Projekt Javascript als ernsthafte Sprache außerhalb des Browsers etabliert hat. Dass man mit asynchron programmieren kann, war da nicht so die Neuigkeit, dass wusste man schon vorher. Neu an node war allerdings, dass es konsequent asynchrone Operationen bietet, selbst für Dinge wie Dateisystemzugriffe, die vorher nicht zu den typischen asynchronen Operationen gehörten.
Na, das sind doch ne ganze Menge Dinge, die in ihrer Asynchronizitaet Aufmerksamkeit generiert haben.

Und generell finde ich das ja auch durchaus erstrebenswert, diesen Stil zu propagieren - Threads fuer blockierende Operationen hat mir noch selten geschmeckt.

Das Thema an sich hat dadurch gewonnen. Auch durch sowas wie NGINX. Aber ich wuerde da jetzt vorsichtig sein, was die Langzeitfolgen angeht...
sma
User
Beiträge: 3018
Registriert: Montag 19. November 2007, 19:57
Wohnort: Kiel

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
Antworten