Python Hype



  • Shade Of Mine schrieb:

    Bei PHP hab ich alles und was ich nicht habe ist in 10 minuten in C als extension geschrieben.

    das gilt aber auch für die meisten anderen sprachen.



  • DrGreenthumb schrieb:

    das gilt aber auch für die meisten anderen sprachen.

    mag sein, aber macht es php deswegen schlecht? im prinzip ist doch kein feature einzigartig. alles gibt es woanders auch. aber die _masse_ macht es. PHP bietet hier einfach wahnsinnig viel.



  • und gerade der ansatz mit dem embedden von PHP _in_ HTML ist wahnsinnig mächtig. auch wenn es 95% aller leute falsch verwenden...

    Ich kann auch JSP in HTML Code einbetten und beliebig viele Scriptlets einsetzen um ähnlich unübersichtlichen Code zu bekommen, wie in PHP, allerdings macht das halt keiner. Weiß jetzt auch nicht, warum ich nicht auch für kleine Dinge JSP verwenden sollte, hab ja bereits viel mit JSTL und eigenen Actions zur Verfügung, muss mich aber zustzlich nicht um jeden Rotz wie Sessions selbst kümmern.

    Bei JSP habe ich alles und was ich nicht habe ist in 10 Minuten in Java als eigene Action geschrieben.



  • Shade Of Mine schrieb:

    PHP _ist_ gefrickel, keine Frage. Aber es ist einfach wahnsinnig effektiv.

    Welche Vorteile bzgl. Effektivität hat denn PHP da zum Beispiel gegenüber JSP? Ich komme für meinen Teil da auch nicht schneller zum Ziel. Ob ich in HTML jetzt PHP- oder Java-Code embedde, da schenk' ich mir nicht viel. Bei größeren Projekten bin ich mit JSP sowieso produktiver, weil es einfach viel mehr Möglichkeiten gibt, Code wieder zu verwenden.

    Außerdem ist das textuelle includen in PHP einfach nur scheiße. Wie ich textuelles includen hasse! Da geht mal wirklich Produktivität verloren, bei sowas debuggen zu müssen.



  • Optimizer schrieb:

    sarfuan schrieb:

    Optimizer schrieb:

    Weiterhin ist die Objektorientierung nur so nachträglich reingefrickelt worden, man könnte fast meinen, nur damit es dann da ist.

    Kennst du Perl? 😃

    Nein, ich kann das nur für PHP beurteilen. Reicht mir auch schon. 😉

    Naja, ich sag mal so:

    # Klasse A
    package A;
    use fields qw(varA);
    
    sub neues {
    	my $self = shift;
    	unless (ref $self) { $self = fields::new($self); }
    	$self->{varA} = 'Servus';
    	return $self;
    }
    
    sub servus {
    	my $self = shift;
    	print $self->{varA}, "\n";
    }
    
    # Klasse B
    package B;
    use base 'A';
    
    sub neues {
    	my $self = shift;
    	unless (ref $self) { $self = fields::new($self); }
    	$self->SUPER::neues;
    	$self->servus;
    	$self->{varA} = 'Hallo';
    	return $self;
    }
    
    # Und jetzt das Programm:
    package main;
    my $var = B->neues('B'); # Konstrukturaufruf Variante 1
    $var->servus;
    $var = neues A; # Konstrukturaufruf Variante 2
    $var->servus;
    

    Jetzt könnte man natürlich behaupten, dass Perl überhaupt keine OOP kennen würde - dann gibt's aber doch "use base" und "SUPER"? Es gibt also OOP, selbige ist aber eben nur extrem "gefrickelt" 😃
    An dem Beispiel sieht man auch hübsch, was Perl alles für Möglichkeiten bietet. Sehr flexibel und ebenso mächtig. Wenn du willst tut Perl alles für dich und ist alles, was du willst. In dem Sinn ist Perl der Wilde Westen und Java z.B. eine Diktatur *g*
    Und PHP ist natürlich nichts Halbes und nichts Ganzes ...

    Shade Of Mine schrieb:

    Bei PHP hab ich alles und was ich nicht habe ist in 10 minuten in C als extension geschrieben.

    Bei Perl hab ich allerdings mehr 🙂
    Mal angenommen mein Perl kennt keine Datenbanken, dann tipp ich mal eben "install DBI" und schon brauch ich im Quellcode nur noch "use DBI" schreiben und ein datanbankunabhängiges Interface steht zur Verfügung z.B.:
    use DBI;
    dbi=newDBI;dbi = new DBI; dbi->connect(...)
    vollkommen egal ob es eine MySQL oder PostgreSQL oder Textdatei (CSV) oder sonstwas ist. Und das funktioniert in Perl schon seit 10 Jahren so ... PHP ist eben erst mit PHP 5 und PEAR halbwegs nachgezogen. Bei Perl gibt's ne Menge solcher Sachen, deswegen: bei Perl hab ich mehr. 😃
    Ach, und wenn du unbedingt darauf stehst, Perl kann man auch in HTML einbetten - macht nur keiner 😉



  • Shade Of Mine schrieb:

    DrGreenthumb schrieb:

    das gilt aber auch für die meisten anderen sprachen.

    mag sein, aber macht es php deswegen schlecht? im prinzip ist doch kein feature einzigartig. alles gibt es woanders auch. aber die _masse_ macht es. PHP bietet hier einfach wahnsinnig viel.

    Nein, aber man kann es eben nicht als Argument dafür zählen, dass PHP überlegen ist.

    PHP hat sich vermutlich durchgesetzt, weil es als Konkurrent zu Perl gesehen wurde und gegenüber Perl wirklich effektiver Einsetzbar im Webbereich ist. Nicht nur, dass es JSP damals schon gab, aber heute gibt es einfach eine Menge besserer Alternativen.

    Natürlich kann man schnell mit PHP etwas basteln, aber das geht mit anderen Webtools und Programmiersprachen auch verdammt schnell. Die haben im Gegensatz zu PHP sogar weniger Sicherheitslücken 🙄

    Wir sollten PHP langsam zu Grabe tragen.



  • beurteiler schrieb:

    Ich kann auch JSP in HTML Code einbetten und beliebig viele Scriptlets einsetzen um ähnlich unübersichtlichen Code zu bekommen, wie in PHP, allerdings macht das halt keiner.

    Wie wird es denn gemacht? Hab schon seit Ewigkeiten nichts mehr im Web-Bereich
    gemacht, also verzeiht mir meine Unwissenheit 😉



  • energyzer schrieb:

    beurteiler schrieb:

    Ich kann auch JSP in HTML Code einbetten und beliebig viele Scriptlets einsetzen um ähnlich unübersichtlichen Code zu bekommen, wie in PHP, allerdings macht das halt keiner.

    Wie wird es denn gemacht? Hab schon seit Ewigkeiten nichts mehr im Web-Bereich
    gemacht, also verzeiht mir meine Unwissenheit 😉

    Man schreibt sich z.B. eigene Tags, die dann intern ne Menge Code ausführen können. Oder man included die Ausgabe eines anderen Servlets (nicht den Quelltext des anderen Servlets!).



  • Wie wird es denn gemacht? Hab schon seit Ewigkeiten nichts mehr im Web-Bereich
    gemacht, also verzeiht mir meine Unwissenheit

    Eigentlich ganz einfach alles was in <% .. %> wird als Scriptlet interpretiert, bzw. damit man JSP-Dateien auch z.B:
    mit einem XML-Editor ganz einfach bearbeiten kann (um z.B: im voraus bereits sicherstellen zu können, dass die
    Seite XHTML valid ist) gibts extra Tags dazu jsp:scriptlet ... </jsp:scriptlet>.

    In diesem Abschnitt kann man dann jeglichen Java-Code einbetten, der auch in einer Methode gültig ist (imports
    funktionieren zum Beispiel nicht, fuer alles was hier nicht funktioniert gibts eigene Tags).

    <%@ page contentType="text/html" pageEncoding="UTF-8">
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
    	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    
    <html xmlns="http://www.w3.org/1999/xhtml">
    	<head>
    		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    		<title>Hello World</title>
    	</head>
    	<body>
    
    		<% 
    			out.println("<h1>Hello, World</h1>");
    		%>
    
    	</body>
    </html>
    

    Wie man sieht fast genau so wie in PHP und afaik genauso wie in ASP.NET, aber sowas macht man eben nicht ..



  • Hab gerade mal nach einem Beispiel für die Tags gesucht und gefunden:
    http://java.sun.com/products/jsp/tutorial/TagLibraries16.html#62510

    Scheint ja eine wirklich interessante Technologie zu sein. Sollte ich nochmal
    was im Web machen, wird JSP sicherlich in die ganz Enge Wahl kommen. Das PHP
    embedded Gefrickel hat mich eh immer genervt.



  • @energyzer: Der ganz große Vorteil von JSP/Servlets gegenüber fast allen anderen Technologien ist einfach, dass dahinter eine ausgereifte Sprache steht. Du kannst die volle Java API benutzen und hast sehr gute Frameworks für MVC, wie z.B. struts oder die neue offizielle Spezifikation JavaServerFaces. Ob die Anbindung an einen J2EE AppServer, WebServices, LDAP/ActiveDirectory Anbindung, etc. ist alles schon vorhanden und von sehr guter Qualität.

    Zudem muss man noch sagen, dass aufgrund der VM und dem HotSpotter die Ausführungsgeschwindigkeit und das Verhalten unter großen Lasten sehr gut ist.



  • Hallo energyzer,

    eigene Actions sind schon toll nicht? Wobei man sagen muss, dass dein Link noch mit veralteten Mitteln arbeitet. Ich geb dir dazu am besten nochmal ein kleines Beispiel.

    <%@page contentType="text/html" pageEncoding="UTF-8"%>
    <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
    	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    
    <html>  
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>Guestbook</title>
        </head>    
        <body>
    
            <jsp:useBean id="guestbook" class="core.GuestbookEntry" scope="request" />
    
            <c:forEach items="guestbook.entrys" var="entry">
                <table>
                    <tr>
                        <td>Name:    </td> <td>${entry.name}   </td>
                    </tr>
                    <tr>
                        <td>EMail:   </td> <td>${entry.email}  </td>
                    </tr>
                    <tr>
                        <td>Content: </td> <td>${entry.content}</td>
                    </tr>
                </table>
            </c:forEach> 
    
        </body>        
    </html>
    

    Ich bin mir jetzt nicht sicher ob man das useBean-Statement benötigt, oder nicht schon reicht, dass es als Parameter übergeben wird.

    Wie man sieht ist hier minimalst an Programmlogik vorhanden und das bisschen was vorhanden ist, soll möglichst JavaScript ähnlich sehen (da das eine Sprache ist, mit der ein typischer Designer wohl sehr vertraut sein wird).

    Ich nutze JSPs eben hauptsächlich so wie oben angeführt als Views, die mir lediglich definieren, wie ich aus einer JavaBean (in diesem Fall core.GuestbookEntry) eine HTML-Seite erzeuge. JSP wird erst in der Kombination mit Servlets und JavaBeans richtig angenehm 🙂


Anmelden zum Antworten