welche scriptsprache soll ich nehmen?



  • ich habe gehört, python sei ganz toll. stimt das?
    ich lese, der apache kann mit python ganz nett umgehen. perl hat mir ne zu suspekte synax. php tut sich mit o sehr schwer.
    mir gehts drum, so richtig komplexe sachen zu basteln. zum beispiel ein wartbares forum und ein content management system für meinen c++-kurs.
    gebts noch alternativen neben perl, php, python, die öfters mal auf webservern zu finden sind?



  • java natürlich;)

    servlets und jsps bieten sich an. du brauchst -klar- einen tomcat.. also einen provider, der den fährt. aber gibt es einige. frag mal im javaforum.

    ansonsten würde ich bei python bleiben, oder es doch mit php5 und den neuen "objektorientiert gemeinten" features versuchen.



  • elise schrieb:

    java natürlich;)
    servlets und jsps bieten sich an. du brauchst -klar- einen tomcat.. also einen provider, der den fährt. aber gibt es einige. frag mal im javaforum.

    ja, technisch ist das wohl korrekt. aber ich kann keinen ordentlichen java-code erzeugen. er mutiert immer in richtung c++. und dort brauche ich einfach sofort zuschlagende destruktoren und so leckere sachen.

    ansonsten würde ich bei python bleiben, oder es doch mit php5 und den neuen "objektorientiert gemeinten" features versuchen.

    tja, php5 hat endlich destruktoren. ich werde drauf zurückfallen, falls ich python nicht kapiere.
    aber bevor ich jetzt python lerne, warte ich erstmal, ob hier noch sehenswerte alternativen vorgeschlagen werden.



  • nur so nebenbei: mein apache hier zuhause kann auch lispeln... -mal eben neben dem thema geredet- wollte schon lange mal mehr damit machen, verstehe aber leider zuwenig von diesen klammern 😉 (gibt ein apache modul für lisp)



  • Du willst wirklich Alternativen?
    ASP.NET, CGI/PERL...

    Ich könnte mir nix anderes als PHP vorstellen...



  • @volkard,

    vor der Frage stand ich vor kurzem auch.
    Ich habe mich dann aber für die Entwicklung eines kleinen
    ShopSystems für PHP4 entschieden. Bei PHP5 warte ich erstmal
    die ersten Erfahrungsberichte ab 🙂

    Eigendlich wollte ich ja mit Python beginnen, aber die Zeit
    für die Einarbeitung hatte ich zu der Zeit nicht.

    Bye Peter.



  • Morgen,

    also ich persönlich finde auch die Syntax von Perl mehr als gewöhnungsbedürftig. 🙄

    Schau Dir auf jeden Fall mal diese Seite an. Dort bekommst Du einen guten Überblick über die neuen OO Features von PHP 5. Allerdings handelt es sich noch um einen Release Candidate.

    Zu Python: Es soll sehr gut OO sein und ist laut unserem Netwerk-Admin die beste Skriptsprache... 😉

    Aber da Du Fit in c++ bist, was spricht dagegen mit c++ CGI Anwendungen zu schreiben(Entwicklungszeit, Fehleranfälligkeit?)?

    Grüssle



  • danke an alle für die tips.

    ich werde wohl mit nem forum anfangen.
    serverseitig PHP/mySQL
    gesendet wird XML
    clientseitig wirds mit XSLT/DTD und JS/DOM angezeigt

    dann würden als seiten (hier ne thread-übersicht) immer nur sachen wie

    <forum name="C++">
     <thread id="1" subject="ist schnell, oder?" author="heini" />
     <thread id="2" subject="ist unpraktisch, oder?" author="susi" />
     <thread id="3" subject="ist schwer, oder?" author="klausi" />
    </forum>
    

    geschickt werden. das begeistert mich irgendwie.



  • php5 rockt! 👍
    Leider habe ich ausser der changelog und der seite von zend keine doku gefunden...aber das, zusammen mit dem alten php-handbuch, muss langen.

    Vor ein paar wochen habe ich jemanden über ruby schwärmen hören. Sollte man sich angucken.


  • Mod

    @volkard:

    Warum Clientseitig transformieren?

    Meistens macht man es so, dass man dann einfach einen Transformer Serverseitig davor schaltet, der je nachdem eben ein RSS Feed, HTML, WML oder vielleicht sogar Flash daraus macht.

    Denn im Web versucht man normalerweise dem Client so wenig arbeit wie moeglich aufzubrummen 😉



  • Shade Of Mine schrieb:

    @volkard:
    Warum Clientseitig transformieren?

    weil es noch mehr leute mit 56-er modem gibt. und wenn ich mir anschaue, daß die seite, in der ich gerade diese message editiere 56k groß ist, kommt's mir hoch.

    Denn im Web versucht man normalerweise dem Client so wenig arbeit wie moeglich aufzubrummen 😉

    warum das denn? der client hat doch eh nix zu tun. js werd ich ja sparsam einsetzen. aber xsl ist doch ne prima erfindung. ahso, rüchsicht auf die leute, die den ie3.0 verwenden. nee, die hab ich net.



  • Hi

    @alle die die Perlsynthax nicht mögen.

    Was habt ihr dagegen ? Verstehe ich ehrlich gesagt nicht, ist doch C sehr ähnlich. Hat sogar ein paar gut zu gebrauchene extra features. In Perl ist wirklich nichts unmöglich. Und man kann es eigentlich immer "kürzer" schreiben.
    Ich finde besonders die One-line-statements gut und natürlich das eingebaute Patternmatching.
    Ab Perl5 ist auch OOP kein Problem. Ein nachteil von Perl als CGI-script ist natürlich dass das modPerl nicht so wirklich gut ist und so i.d.R. ein Perl process auf der ausführenden Maschine geforked wird. Bei PHP ist das ja anders.

    @elise
    Hast du schon mal versucht dich ernsthaft mit LISP zu beschäftigen ?
    Ich hab das mal eine Zeitlang gemacht, bin aber auch auf diverse Schwierigkeiten gestoßen. Ich krieg das Lambda-Kalkul einfach nicht in den Kopf. 😞



  • ahso, rüchsicht auf die leute, die den ie3.0 verwenden. nee, die hab ich net.

    War das nicht die 56K Zeit?

    warum das denn? der client hat doch eh nix zu tun.

    Wenn du schon so nett bist und an die langsamen denkst, dann bitte auch richtig 😃 Denn ich hänge hier zum Beispiel mit nem P200 und der streikt schon fast wenns Visual Studio, das MSDN und nen aktueller Browser läuft. JS kann man inzwischen doch eigentlich nur noch als (manche nennen es nette) Ergänzung nutzen, also isses doch zu 99% auch unnötig übertragenes Volumen.

    wenn ich mir anschaue, daß die seite, in der ich gerade diese message editiere 56k groß ist, kommt's mir hoch.

    Wenn man es sich mal ansieht, dann ist mindestens 1/3 des Codes JS.

    Und dann zum XLS übertragen: Joa, ist ja ganz nett gemeint. Aber wenn du die richtig an die Verwendung von HTML und CSS hälst dann sind die HTML Dateien auch nciht sooo viel größer als XLS Dateien. Externe Stylesheets kann der Benutzer dann ja bei bedarf deaktivieren.

    mfg
    tobi



  • Wenn du schon so nett bist und an die langsamen denkst, dann bitte auch richtig 😃 Denn ich hänge hier zum Beispiel mit nem P200 und der streikt schon fast wenns Visual Studio, das MSDN und nen aktueller Browser läuft.

    hab selber nen celeron400, werde es also nicht übertreiben.

    JS kann man inzwischen doch eigentlich nur noch als (manche nennen es nette) Ergänzung nutzen, also isses doch zu 99% auch unnötig übertragenes Volumen.

    js übertrage ich nur einmal. als externe forum.js und benutze sie innen nur ür sachen, die verzichtbar sind. jeder wird bei mir js ausschalten können und nicht ausgesperrt sein.

    Und dann zum XLS übertragen: Joa, ist ja ganz nett gemeint. Aber wenn du die richtig an die Verwendung von HTML und CSS hälst dann sind die HTML Dateien auch nciht sooo viel größer als XLS Dateien. Externe Stylesheets kann der Benutzer dann ja bei bedarf deaktivieren.
    

    die xls-datei wird so wie die js-datei statisch sein. da schickt der server immer nur "hey, die kennste schon". nur die xml-dateien werden geschickt geschickt.



  • also.
    ich hatte mich für php entschieden. gute doku. viele user. man findet auch sachen wie "pgp mit php benutzen" im netz.

    mein forum soll richtig stark templates benutzen.
    habe mir für php folgendes format überausgedacht.

    <?xml version="1.0" encoding="ISO-8859-1" ?>
    query
     select name from forum where id={fid}
     <forum name="$">
    query
      SELECT id,title FROM topic WHERE forum_id={fid}
     <topic id="$" title="$" />
    </forum>
    

    wenn ne zwile mit wuery beginnt, werden die folgenden beiden zeilen entsprechend behandelt, indem ne mySQL-abfrage gemacht wird und die ergebnisse in die ganzen $s eingesetzt werden. ne query kann viele zeilemn erzeugen, je nachdem, wieviele datensätze kommen.

    der php-code (sicher nicht optimal)

    <?php
    
    mysql_connect('localhost','volkard','volkard');
    mysql_select_db('volkard');
    
    function processquery($sql,$mask){
     $result=mysql_unbuffered_query($sql);
     if(!$result){
      echo $sql,"<br>";
      echo "unbekannter Fehler:<br>",mysql_error();
      return;
     }
     $parts=explode('$',$mask);
     $start=array_shift($parts);
     while($row=mysql_fetch_row($result)){
      print $start;
      foreach($parts as $part){
       print htmlspecialchars(array_shift($row));
       print $part;
      }
      print "\n";
     }
    }
    
    function processtemplate($filename){
     $trans=array();
     foreach($_GET as $k=>$v){
      $trans['{'.$k.'}']=$v;
     }
     $in=fopen($filename,"r");
     while(!feof($in)){
      $line=$sql=strtr(trim(fgets($in)),$trans);
      switch(trim($line)){
       case 'query':
        $sql=strtr(trim(fgets($in)),$trans);
        $tpl=strtr(trim(fgets($in)),$trans);
        processquery($sql,$tpl);
        break;
       default:
        echo "$line\n";
      }
     }
     fclose($in);
    }
    processtemplate("test.tpl");
    
    ?>
    

    und dann hab ichs mit python versucht:

    query
     select name from forum where id=%(fid)s
     <forum name="%s">
    query
      SELECT id,title FROM topic WHERE forum_id=%(fid)s
     <topic id="%s" title="%s" />
    </forum>
    
    from mod_python import apache
    from mod_python import util
    import MySQLdb
    
    dbc=MySQLdb.Connect(host='localhost',db='volkard',user='volkard',passwd='volkard')
    
    def processquery(req,fs,sql,tpl):
     c=dbc.cursor()
     c.execute(sql%fs);
     req.write("".join([tpl%row for row in c]))
    
    def handler(req):
     fs=util.FieldStorage(req)
     req.content_type="text/plain"
     req.send_http_header()
     file=open('htdocs/f2/main.tpl')
     for line in file:
      line=line.strip()
      if line=="query":
       sql=file.next().strip()
       tpl=file.next().strip()
       processquery(req,fs,sql,tpl)
      else:
       req.write(line)
     return apache.OK
    

    irgendwie werd ich das gefühl nicht los, php ist scheiße.



  • Wenn Du das an der Quantität deines PHP Codes ausmachst, dann schreib Dir z. B. eine Klasse für die mySql Geschichten. Dadurch wird Dein Code erheblich gekürzt. Ebenso wenn Du Dir eine Klasse für das File I/O schreibst.

    Eine andere Frage: Kann man Python Code kompilieren(Bytecode)?


  • Mod

    volkard schrieb:

    weil es noch mehr leute mit 56-er modem gibt. und wenn ich mir anschaue, daß die seite, in der ich gerade diese message editiere 56k groß ist, kommt's mir hoch.

    Unter uns gesagt: dieses Forum ist auch mies.

    Es gibt massenweise Einrückungen und ausserdem ist hier alles eine Tabelle. Das bläht den HTML Code gewaltig auf. Ich wette man könnte es auf etwa 50% kürzen.

    Denn im Web versucht man normalerweise dem Client so wenig arbeit wie moeglich aufzubrummen 😉

    warum das denn? der client hat doch eh nix zu tun. js werd ich ja sparsam einsetzen. aber xsl ist doch ne prima erfindung. ahso, rüchsicht auf die leute, die den ie3.0 verwenden. nee, die hab ich net.

    Das stimmt zwar - der Client hat oft Rechenzeit en masse (Ausnahme sind natürlich zB Handhelds - aber wer surft schon mit nem Handheld in einem Forum?).

    Allerdings hast du das Problem der Kompatibilität zwischen den Browsern. Es ist teilweise mit HTML schon ein Problem, CSS und JS sowieso - da artet das dann richtig aus.

    Das Problem: du kannst für IE, Opera und Mozilla die Seite zum laufen bekommen, allerdings gerade auf exotischen Sachen wie Unix oder vorallem MAC (MAC Browser sind die Schlimmsten!) gibts massenweise Probleme.

    btw: bei Templates kannst du dir auch mal Smarty (smarty.php.net) ansehen. Damit kannst du dich schön ans MVC halten 😉 Und die Templates werden kompiliert, so dass du nur nen sehr geringen Overhead hast.
    Wenn du nicht alles selber schreiben willst: es gibt auch ganze Frameworks für PHP, zB Mojavi (www.mojavi.org)

    Und ja: PHP ist scheisse. Du endest immer mit einem Mischmasch aus n bisschen OOP 😞 Der Vorteil ist allerdings: es ist nahezu idiotensicher (wenn man sich dann allerdings pear ansieht, weiss man, dass das nicht nur ein Vorteil ist)



  • Shade Of Mine schrieb:

    Es gibt massenweise Einrückungen und ausserdem ist hier alles eine Tabelle. Das bläht den HTML Code gewaltig auf. Ich wette man könnte es auf etwa 50% kürzen.

    Da hast Du sicherlich recht, aber IMO kannst Du mit Layern kein 100% identisches komplexes Layout für die gängigen Browser erreichen(Mozialla >= 1.3, IE >= 5.0)... Es gibt immer hier und da Probleme...

    Falls Du mich eines besseren belehren könntest, wär ich Dir sogar echt dankbar! 🙂

    Shade Of Mine schrieb:

    Und ja: PHP ist scheisse. Du endest immer mit einem Mischmasch aus n bisschen OOP 😞 Der Vorteil ist allerdings: es ist nahezu idiotensicher (wenn man sich dann allerdings pear ansieht, weiss man, dass das nicht nur ein Vorteil ist)

    Genau aus diesem Grund programmiere ich PHP nahezu nur noch prozedural... Die einzigsten Klassen die ich verwende sind smarty und eine für meine Datenbank.

    Falls PHP 5 irgendwann wirklich rockstable ist > 5.2 werde ich mir überlegen, alles neu umzuschreiben, aber im moment fährt man prozedural einfach besser(sicherlich subjektiv)...


  • Mod

    Mr. White schrieb:

    Da hast Du sicherlich recht, aber IMO kannst Du mit Layern kein 100% identisches komplexes Layout für die gängigen Browser erreichen(Mozialla >= 1.3, IE >= 5.0)... Es gibt immer hier und da Probleme...

    Ich will ja auch kein identisches Layout 🙂

    Aber nimm zB mal das 'Wenn Codezeilen zu lang sind, wird der ganze Thread verschoeben'-Problem. Das habe ich bei Layern nicht.

    Ausserdem ist ein Forum wirklich nix komplexes von der Darstellung her. Ich habe ein mit Layern gemacht und es war absolut kein Problem, sofern der Browser CSS konnte. Und wenn er das nicht kann, dann hat es halt mies ausgesehen - genau wie dieses Forum hier, ohne CSS gibt es grafisch nix her. Aber es war benutzbar 😉

    Shade Of Mine schrieb:

    Und ja: PHP ist scheisse. Du endest immer mit einem Mischmasch aus n bisschen OOP 😞 Der Vorteil ist allerdings: es ist nahezu idiotensicher (wenn man sich dann allerdings pear ansieht, weiss man, dass das nicht nur ein Vorteil ist)

    Genau aus diesem Grund programmiere ich PHP nahezu nur noch prozedural... Die einzigsten Klassen die ich verwende sind smarty und eine für meine Datenbank.

    Ja, aber es gibt halt Sachen die für einen C++ Programmierer wie mich einfach nach einer Klasse schreien...

    Falls PHP 5 irgendwann wirklich rockstable ist > 5.2 werde ich mir überlegen, alles neu umzuschreiben, aber im moment fährt man prozedural einfach besser(sicherlich subjektiv)...

    Das Problem ist: die PHP Programmierer sind fast alles C'ler. Deshalb wird PHP wahrscheinlich nie vernünftig OO sein 😞

    Und pear führt uns vor Augen, was die PHP Community unter OOP versteht 😞



  • Apache schrieb:

    Wenn Du das an der Quantität deines PHP Codes ausmachst, dann schreib Dir z. B. eine Klasse für die mySql Geschichten. Dadurch wird Dein Code erheblich gekürzt. Ebenso wenn Du Dir eine Klasse für das File I/O schreibst.

    ob klassen oder funktionen ist doch egal. dir ist entgangen, daß die processquery() keine funktion für nur eine benutzung ist.

    Apache schrieb:

    Eine andere Frage: Kann man Python Code kompilieren(Bytecode)?

    jup, bytecode. aber strikt unoptimiert. aber ich denke mal, in sachen rechenlast gibts eh keine probleme mehr.


Anmelden zum Antworten