Welche Programmiersprache nehmen? Python oder PHP

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • Welche Programmiersprache nehmen? Python oder PHP

    Hi.

    Ich plane längerfristig ein komplexeres Webprojekt, bei dem ich mit PHP Webscripts alleine nicht mehr gut auskomme.
    Doch zuerst muss ich mal eine normale Homepage machen, als Übungsprojekt.

    Später ist ein System geplant, welches auf dem Server automatisch Accounts anlegt und die Abrechnung übernimmt.
    Da es sich nicht um ein 0815 Webhosting handelt, kann ich auch kein fertiges System aus dem Webhosting Bereich nutzen.
    Andere, allgemeine Systeme zur Administration sind auch nicht geeignet, da diese nicht zur Abrechnung geeignet sind. Ich will mich auch selbst nicht um das Accountanlegen/löschen kümmern.
    Erschwerend kommt dazu, dass es ein Prepaid System ist, ich also keine Postpaid Abrechnungssysteme brauchen kann, und die Accounts quasi nur temporär sind.
    Ich brauche ein Webinterface, wo der User den "Guthabencode" eingibt. Danach muss der Useraccount im System angelegt werden, die Zugangsdaten müssen ausgegeben werden.
    Nach Verbrauch des Trafficguthabens muss der Account nach kurzer Karenzzeit (wo eine Reaktivierung möglich sein soll) inclusive aller abgelegten Dateien gelöscht werden.
    Zusätzlich ist eine Webseite mit Diskussionsforum erforderlich.

    Für die Hintergrundscripte müsste ich dann entweder auf PHP-Shellscripte setzen (Will ich nicht)
    Oder ich müsste normale Bash Shellscripte schreiben und mit Pipes und co arbeiten
    Oder ich müsste Perl nehmen.
    Aber ich mag weder komplexe Shellscripte mit Pipes und co, und Perl noch weniger.

    Also habe ich mich für Python entschieden.

    Aber das ist das "Zielprojekt". das dauert noch bis ich da hin komme. Zuerst muss mal eine Webseite gemacht werden, zur Übung und zum Programmieren lernen (Und damit später was da ist, auf dem man aufbauen kann)



    Ich weiß also nicht, was für mich jetzt am Besten ist.

    Mache ich die Webseite in PHP, kann ich aus einer Vielzahl vorgefertigter Kompnenten, CMS, Foren und Shopsysteme wählen.
    Außerdem hat PHP eine sehr große Nutzergemeinde (=Viel Support und Hilfe, viele Beispiele und Doku im Netz)
    Es ist außerdem Quasi-Standard und wird fast überall unterstützt.
    Dazu kommt, dass ich in PHP schon einige Erfahrungen gesammelt habe.

    Alles in Python zu machen, wäre besser, weil ich dann nur eine Spache lernen muss.
    Aber mit Python fangen die Probleme auf der anderen Seite an.
    Man kann zwar eine Webseite mit Python machen, es gibt ja Frameworks wie Django und co. Aber es ist immer noch komplizierter als bei PHP, alles einzurichten.
    Es gibt auch nicht so viel Auswahl bei Forensystemen usw. Mit der Zeit werden da zwar auch noch Sachen rauskommen. Momentan ist es aber ehr mager.
    Ein "einheitliches" Websystem, rein Python ohne PHP Bestandteile wäre machbar, aber ist viel mehr Aufwand.
    De Facto würde es darin enden, dass ich wesentlich mehr selber machen muss, als bei einer PHP basierten Seite (Dafür nur 1 Sprache lernen)


    Ich könnte auch in Hybridsystem bauen, d.H. das was ich selber mache in Python, und den Rest wie z.B. phpBB. aus der "php Welt" nutzen.
    Ich könnte aber auch hin gehen, den Webteil komplett (also auch meine Teile) in PHP machen, und nur die "shellscripte" in Python.
    Nachteil: Ich müsste mich mit 2 Programmiersprachen befassen.
    Aber lieber Python zusätzlich zu PHP lernen (Für die Backgroundscripte), als Perl oder komplexes Bash Scripting mit Pipes und co.
    Der "Unterbau" selber bräuchte kein Webinterface, ich könnte die Python Scripte also gut von PHP aus aufrufen und die Ausgabe über PHP leiten.


    Fragestellung

    Ich kann mich nicht entscheiden, wie ich die Sache angehen soll und welches System ich nutzen soll.

    Jetzt am Anfang wäre es egal, meine Übungswebseite könnte ich locker in PHP machen.

    Nehme ich jetzt PHP, bleibts auch dabei. Das heißt, dann wird später nur noch der Unterbau in Python gemacht, und diese Scripte von PHP aus aufgerufen. Ich habe dann erst mal schnelle Erfolge dank vieler vorgefertigter Komponenten und teilweise vorhandenen PHP Kenntnissen, aber ich muss 2 Sprachen komplett lernen.

    Oder ich mache meine Homepage jetzt mit Python, und bleibe dabei. D.H. dann baue ich auch keine Sachen aus der PHP Welt (Forensystem usw) Befasse mich also nur mit einer Programmiersprache und habe eine schnelle Lernkurve aber viel mehr Arbeit. (Würde ich phpBB einsetzen, hätte ich doch wieder PHP zu lernen, um das für mein System passend zu modden)


    Was auch wichtig ist:
    Alles muss für umme sein. Ich will keinerlei Sachen verwenden, die Lizenzkosten verursachen (Auch bei kommerzieller Nutzung nicht). Ich will auch keinerlei Dienstleister für die grundlegenden Funktionen (z.B. für ein Shopsystem, Adminpanel, Abrechnungssystem) beanspruchen. Was nicht for free verfügbar und geeignet ist, muss selber gebaut werden.



    Im Vorgriff auf das später geplante Projekt und eine schnelle Lernkurve muss ich bei der Erstellung meiner Webseite jetzt klug wählen.

    Was würdet ihr machen? PHP oder Python?

    The post was edited 4 times, last by Buffalo ().

  • Die "Roadmap" sieht wie folgt aus:

    1. Erstellung einer Privaten Homepage mit eigenem Template und Menüsystem.
    Frontend Entweder selber gemacht (unter Verwendung von vorgefertigten Komponenten soweit möglich) oder auf Basis eines CMS.
    Bei Verwendung eines CMS muss grundlegend gemodded werden, so dass im Frontend das verwendete CMS nicht mehr auf den ersten Blick erkannt werden kann (z.B. an "typischen Merkmalen" )

    2. Eventuell Einrichtung Forum/Shopsystem usw, und Designanpassung an die Homepage. Das Verwendete System kann hier aber offensichtlich sein.

    3. Experimentieren mit der Homepage, einfache selbstgemachte Sachen verwirklichen

    4. Erstellung eines Linux Servers und Ausbau zum Luxus Homerouter / Homeserver, um die Administration zu erlernen. D.H. Einrichtung von Hand.
    Erstellung erster Shellscripte

    1-4 habe ich in verschiedener Art und Weise grundlegend irgendwann schonmal gemacht, muss alles ausgebaut werden.

    Ich fange jetzt nochmal bei Nr. 1 an, und gehe alles nochmal durch, aber richtig. Jedoch weiß ich eben noch nicht, ob ich für die Homepage PHP oder Python oder beides lernen/nutzen soll. Ich muss im Hinblick auf das, was ich irgendwann mal vor habe, taktisch klug wählen.


    Zukunftsmusik:


    5. Erstellung eines ersten Admininterfaces für den Homeserver unter Verwendung von Bestandteilen der bestehenden Homepage

    6. Erstellung eines Accountig und Abrechnungssystems für den Homeserver

    7. Online bringen mittels vServer/Rootserver und als Free Service mit Advertisement testen.

    8. Geld verlangen.
  • Aus Sicht des Softwareentwicklers mit Hang zu sauberen Architekturen und Code würde ich eher zu Python raten. Was die Qualität und Sauberkeit der Sprache und der API angeht liegen Lichtjahre zwischen Python und PHP. PHP ist eher ein abschreckendes Beispiel dafür, was man alles beim Design einer Programmiersprache alles falsch machen kann. Gut, PHP ist auf jedem Wald- und Wiesenserver verfügbar, hat eine riesige Nutzergemeinschaft und es laufen auch etliche große Webseiten drauf. Der Anfänger kann damit sehr schnell sehr schrottigen aber halbwegs funktionierenden Code fabrizieren. Aber die darunterliegende Sprache ist und bleibt eine "Frickelsprache", bei der nie sowas wie eine professionelle Konzeption, Einheitlichkeit und ein konsequentes Entmisten von Altlasten Einzug gehalten hat. Mir wäre als Entwickler ehrlich gesagt meine Zeit zu schade, mehr um die Absurditäten der Sprache "herumzubauen" und für jede API-Funktion nachschauen zu müssen, wie denn diesmal die Benennung der Funktion und die Reihenfolge der Parameter gelöst ist, anstatt mich auf mein eigentliches Kernvorhaben konzentrieren zu können.
  • Hi, ja da ist was dran.

    Gut, jetzt bei meiner Homepage ist es quasi egal, aber im Hinblick auf später muss ich klug wählen.

    Python gefällt mir so gut, weil so schön übersichtlicher und gut lesberer Code dabei heraus kommt Auch bei Anfängern.
    Python zwingt einen dazu, zu strukturieren, weil Einrückungen nicht nur schön aussehen, sondern auch eine Funktion haben.
    Außerdem hat mein keine ewig langen Kostrukte mit Regulären Ausdrücken wie in Perl. Perl ist schwer lesbar.
    Damit ich PHP Shellsripte mache, müsste schon viel passieren, da würde ich lieber noch normale Bash Scripts mit Pipes und co machen.
    Aber in Sachen Shellscripts habe ich mich ja sowieso schon für Python entschieden.

    Bei Python in der Webentwicklung ist die "Einstiegshürde" höher.
    Man kann zwar mit Bottle und dem integrierten Webserver relativ leicht Ergebnisse erzielen.
    Aber WSGI und Django ist dann nicht mehr ganz so Einsteigerfreundlich.
    Dafür hat man schon einige Vorteile, wenn man sich durchbeißt.
    Stärkere Lernkurfe bei Python und bessere Vorbereitung für das spätere Zielprojekt wäre der Hauptvorteil, weil ich ja nicht nur die Background Scripte mit Phyton mache sondern die ganze Seite.

    Leider gibt es weniger Doku und Community als bei PHP im Netz, was für Anfänger auch ein Nachteil ist.
    Dass es weniger Python Hoster gibt, und PHP Hosting standard ist, ist kein Nachteil, da ich für mein späteres Projekt sowieso mindestens einen vServer brauche.

    Auf das Forensystem muss ich noch warten, aber ich werde eh nicht von heute auf morgen fertig werden. Bis dahin ist das Python basierte Forensystem von ubuntuusers vielleicht schon opensource.
    Einen Shop würde ich mir notfalls selbst machen, da der nicht besonders komplex sein muss und ich eh eine besondere Abrechnungssystem brauche. Ich hole mir, wenn ich jetzt schon für die einfache Homepage auf Python gehe, auch keine Sachen aus der "PHP welt" mehr ins Boot (Wie z.B. phpBB) sondern warte lieber auf die releases oder baue selber.


    Also würdet ihr mir empfehlen, jetzt auf "schnelle Ergebnisse" zu verzichten, und soweit es geht auf Python zu setzen, also auch schon die "simple Homepage" mit Django statt PHP+CMS zu bauen?