Christian Huml: Python

Hallo zusammen,

würde mich mal intressieren wer von euch schon Python einsetzt und ob es überhaupt Sinn macht es auf Websites einzusetzen. Denn vieles kann ja auch über PHP realisiert werden JavaScript usw.

Mit freundlichen Grüßen

Christian Huml

  1. Tach!

    würde mich mal intressieren wer von euch schon Python einsetzt und ob es überhaupt Sinn macht es auf Websites einzusetzen.

    Diese Frage kann man so pauschal nicht beantworten. Es kommt auf die näheren Umstände an, ob sich der eine oder der andere Aufwand lohnt. Es ist jedenfalls so, dass aufgrund der geringen Verbreitung von Python im Webumfeld der Bedarf an einfachen Lösungen nicht so hoch ist und vor allem auch das Wissen darum. Es werden sich mehr Hilfestellungen bei Problemen für andere Systeme finden lassen als für Python. Man kann Python mit dem Webserver betreiben, dafür gibt es Module, und es gibt auch mit Django ein bekanntes Framework. Aber dann hört es auch schon fast auf. (Stimmt vermutlich nicht ganz, aber ich verfolge die Python-Entwicklung nicht.) Alles steht und fällt auch mit der Unterstützung beim Hoster. Vielleicht hat sich da was in letzter Zeit verbessert. Vor ein paar Jahren war da jedoch oft zwar der Name Phyton in der Feature-Liste, die Unterstützung dafür aber auf Basisniveau und kaum geeignet, damit komfortabel zu arbeiten. (Vielleicht ist es heutzutage besser.) Ich würde es nicht einsetzen wollen außer zu Lernzwecken oder wenn Bedarf besteht dass man für ein bereits vorhandenes in Python geschriebenes Programm eine Web-Bedienoberfläche erstellen muss. Und nicht vergessen, vorher zu prüfen, ob die Unterstützung auf dem geplanten Hostsystem vorhanden ist und wie sie aussieht.

    Denn vieles kann ja auch über PHP realisiert werden JavaScript usw.

    Können kann man vieles. Bewerten muss man den Aufwand für die Zielerreichung.

    dedlfix.

  2. würde mich mal intressieren wer von euch schon Python einsetzt und ob es überhaupt Sinn macht es auf Websites einzusetzen.

    Ich habe mal angefangen eine Stundenplaner-Software mit Django und Gurobi zu schreiben, die ich allerdings nie fertig gestellt habe. Meine Wahl fiel damals auf Python, weil es für lineare Optimierungsprobleme ein weit vebreitetes Werkzeug ist. Ich mag die Syntax von Python, die den Programmierer zwingt Code immer richtig einzurücken, und die Semantik ist in vielerlei Hinsicht auch besser zu durchschauen als die von JavaScript oder PHP, zum Beispiel mochte ich die Scoping-Regeln sehr: In Pyhton gibt es kein implizites this oder $this, man muss bei der Methoden-Deklaration explizit die Objekt-Instanz als ersten formalen Parameter notieren.

    Denn vieles kann ja auch über PHP realisiert werden JavaScript usw.

    Mit PHP hab ich noch beruflich zu tun, empfinde es aber zunehmend eher als Last denn als Helfer. Der Vorteil von PHP ist seine weite Verbreitung, die schiere Anzahl an Bibliotheken, Frameworks, Tools und Dokumentation, die dafür existiert. Selbiges trifft auch auf JavaScript zu, dazu ist JavaScript durch den Wettbewerbsdruck unter den Browsern inzwischen gefühlt 100 mal performanter als PHP und es hat den Vorteil dass es für JavaScript einen offenen Standard gibt. Beide Sprachen sind allerdings auch wesentlich komplexer als Python und animieren eher dazu Spaghetti-Code zu schreiben. Ein zusätzlicher Vorteil von JavaScript ist natürlich, dass es gleichermaßen auf dem Server und auf dem Client ausgeführt werden kann. Eine weitere Gemeinsamkeit aller drei Sprachen ist die dynamische Typisierung, für mich persönlich überwiegen aber die Vorteile statischer Typisierung.

    Fazit: Pyhton ist auf jeden Fall eine Sprache, die sich lohnt zu lernen, auch wenn du möglicherweise keinen Production-Code darin schreiben wirst.

    1. Hallo 1unitedpower,

      Mit PHP hab ich noch beruflich zu tun, empfinde es aber zunehmend eher als Last denn als Helfer. Der Vorteil von PHP ist seine weite Verbreitung, die schiere Anzahl an Bibliotheken, Frameworks, Tools und Dokumentation, die dafür existiert. Selbiges trifft auch auf JavaScript zu, dazu ist JavaScript durch den Wettbewerbsdruck unter den Browsern inzwischen gefühlt 100 mal performanter als PHP und es hat den Vorteil dass es für JavaScript einen offenen Standard gibt…

      wenn ich das hier als Neuling lesen würde, hätte ich den Eindruck Javascript wäre vergleichbar mit PHP, quasi JS vs. PHP, es ließe sich mit beiden das gleiche Ergebnis erreichen, wobei ich lieber Javascript nehmen sollte.

      Also, wenn da nicht irgendwas in der Entwicklung an mir vorbei gelaufen ist, hast du das doch bestimmt nicht so gemeint oder doch?

      Gruss
      Henry

      1. Tach!

        wenn ich das hier als Neuling lesen würde, hätte ich den Eindruck Javascript wäre vergleichbar mit PHP, quasi JS vs. PHP, es ließe sich mit beiden das gleiche Ergebnis erreichen, wobei ich lieber Javascript nehmen sollte.

        Warum nicht? Es ist möglich, mit SPAs den Großteil der Geschäftslogik in den Client zu verlagern und den Server nur noch als einfachen REST-Service laufen zu haben. Ob das sinnvoll ist, steht auf einem anderen Blatt und kann ohne Anwendungsfall nur schwer bis gar nicht beurteilt werden.

        Und seit JavaScript auch auf dem Server läuft, sind sogar Client-Server-Anwendungen allein damit erstellbar.

        dedlfix.

  3. Hallo Christian,

    ich habe vor zwei Jahren mal eine Webanwendung testweise mit Python und Django erstellt. Sowohl Framework als Sprache sind gut benutzbar. Es gibt für Python einige Webframeworks. Sehr bekannt ist Django. Von den Features und vom Aufbau her ist Django grob mit Symfony vergleichbar. Ein anderes sehr großes Webprojekt ist Plone. Dieses basiert auf dem Zope Framework. Das spielt aber in einer etwas anderen Liga (eher richtig Spring/Java EE).

    Wenn man mit der Sprache warm wird, kann es sinnvoll sein Python zu benutzen, da die Sprache ein relativ sauberes Design hat. Das ganze ist aber immer auch eine Sache der persönlichen Vorlieben.

    Was bei Python noch zu beobachten ist: Die deutsche Community, organisiert im Python Software Verband, ist sehr aktiv.

    Beste Grüße

    Jens

  4. Hi @Christian Huml ,

    ich hatte vor Jahren mal mit Zope zu tun also auch mit Python. Die Arroganz mit welcher in den diesen Entwicklerkreisen entsprechenden Kommunities umgegangen wurde, fand ich einfach nur ekelhaft. Vor allem deren Voreingenommenheit gegenüber Perl obwohl Python mit Perls OOP Fähigkeiten zu dieser Zeit (2001) nicht einmal ansatzweise vergleichbar war.

    Das Einzige was ich von Zope mitgenommen habe, war die Idee, ein Framework zu entwicklen. Was ich dann auch tat in Perl und PHP. In den vielen Jahren dieser Entwicklung zeigte es sich immer wieder daß zuviel Magic und Pragmatismus in PHP eher hinderlich ist und oftmals trickreich umgangen werden muss, was in Perl nicht der Fall ist.

    So kann man in Perl z.B. Interfaces einer bestimmten Klasse per Konfiguration zuweisen und zwar zur Laufzeit, also erst nach der Instanzerstellung. Wobei die Instanz damit selbst zum Interface wird ohne daß sie sämtliche Methoden definieren muss. Damit kann man huges of redundanten Code vermeiden, weil man praktisch eine n:n Beziehung zwischen verfügbaren Klassen und Interfaces hat. Praktisches Beispiel:

    Man hat eine Seite und braucht das aktuelle Datum. Ein entsprechendes Interface wird hinzukonfiguriert und der Platzhalter gesetzt -- erledigt im Handumdrehen. Oder an eine bestehende Seite ein Forum hängen.. Seiten also auch um Interaktion erweitern.

    Des Weiteren kann Perl hervorragend mit Referenzen umgehen und an welcher Stelle dieser Kontext wechselt, ist dem Code bereits von Weitem anzusehen. Mit anderen Worten, man weiß zu jeder Zeit ob man mit einer Referenz oder mit einer Kopie arbeitet. Typeglobs sind in diesem Zusammenhng natürlich ebenfalls sehr praktisch.

    Perl unterstützt Unicode seit 1998, auch ganz wichtig wenns um Webanwendungen geht. Und OOP, Overload usw. usf. Also ich würde die Eignung einer PL wie Python für's Web nach ganz bestimmten Kriterien prüfen. Der Overkill ist z.B. daß sich PHP spontan seines Ausgabepuffers entledigt wenn man aus Versehen ein Leerzeichen zuviel hat. Python scheint ja in dieser Hinsicht noch allergischer zu sein.

    ALso für mich als einen der im Editor öfter mal die Schriftgröße ändert, wäre das der Killer.

    MfG

    1. Perl unterstützt Unicode seit 1998

      Ich glaube da siehst du die Vergangenheit mit einer etwas rosigen Brille: lt. [https://perldoc.perl.org/perl56delta.html#Experimental-features](Perl 5.6), das erste Release mit Unicode-Unterstützung von 2000 ist die Unicode-Unterstützung noch expirementell. In 5.7.0 heißt es „Unicode Support Still Far From Perfect“. In 5.8.0 „Unicode in general should be now much more usable than in Perl 5.6.0 (or even in 5.6.1). Unicode can be used in hash keys, Unicode in regular expressions should work now, Unicode in tr/// should work now, Unicode in I/O should work now. See perluniintro for introduction and perlunicode for details.“, das war aber erst 2002.

      1. Perl unterstützt Unicode seit 1998

        Ich glaube da siehst du die Vergangenheit mit einer etwas rosigen Brille:

        Vll. hab ich mich da allenfalls im Jahr geirrt. Ansonsten ist auch die Unicodeunterstützung in Perl mitnichten eine Konstante. Das wurde also ständig weiterentwickelt.

        In 5.6.1 war die UCunterstützung jedenfalls schon ziemlich weit entwickelt. Mit 5.8 kam Encode.pm zum Core, womit es überhaupt erst möglich wurde /äöü/i auch in ISO-Kodierung caseinsensitive zu matchen, das war davor nämlich noch gar nicht möglich.

        Von 5.8 zu 5.10 gab es weitere einschneidende Änderungen insbesondere im Verhalten der pack()~Schablonen U und C.

        Bis heute ist diese Entwicklung natürlich auch noch ständig in Bewegung und zwar ohne daß ganze Sriptn neu geschrieben werden müssen. Auf jeden Fall ist die Unicodeunterstützung in Perl vorbildlich respective ihrer geschichtlichen Entwicklung!

        MfG