PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ist PHP schwer?


SPiC
09.08.2002, 15:10:36
Hi!

Ich habe im Forum folgendes gefunden

ICH LIEBE EUCH !!! :o)

DAAAAAANKE ... Mensch wenn man PHP richtig können will, dann muss man echt viel lernen ...

Ich werde immer wieder jez kommen, falss ich net mehr weiter weiss :o)



Deshalb die Frage an Euch: Ist PHP schwer???
(im Gegensatz zu ASP, JSP, PERL, C++ etc.)

Was gefällt Euch an PHP, was nicht?
Was würdet Ihr Euch für zukünftige Releases wünschen?

Ich war bislang immer der Ansicht, das PHP die wohl einfachste (zu lernende) Programmiersprache ist und gleichzeitig die viele Funktionen bietet.

=:-) Sebastian

|Coding
09.08.2002, 15:32:07
also von den progsprachen die du da auf gezählt hast, kann ich mit 100% sicherheit sagen das meines erachtens nach c++ die wohl schwerste ist.

eigentlich...

c++ ist so wie so die schwerste sprache... wenn man sich alleine mal den umfang ansieht. dadurch das c++ eine objekt orientierte progsprache ist, tanz c++ ja auch in ganz anderen welten.


naja ich bin mit c++ soweit das ich sagen kann ich bin ein guter noob (ich code seit 2 jahren in c++)

dazu muss ich anmerken das ich auch nicht richtig zeit dafür habe weil ich mit php besser klar komme.

allerdings sind mir einige lämpchen in c++ an gegangen als ich mit php anfing und ich muss sagen.


PHP ist die ideeale programmiersprache für einsteiger und umsteiger, auch wenn php nicht der absolute held in datenbank unterstützung ist im verhältnis zu jsp/servlets.


und genau daran solltet ihr von php.net meiner meinung nach arbeiten... es gibs sicher noch andere punkt, aber solange bin ich noch net dabei um php rund um bewerten zukönnen.

so long...

SPiC
09.08.2002, 15:40:21
Eigentlich muss ich meine Frage ja ein wenig abändern:

Ist PHP als Programmiersprache für Webscripte schwer?

Letzendlich ist C++ natürlich die mächtigste Programmiersprache, weil damit ja nicht nur Server-Applikationen geschrieben werden, sondern auch Programme (MS-Office, Corel Draw, Netscape, IE, diverse 3D-Spiele wie Q****) oder sogar Betriebssysteme (-> Unix).

Mir geht es jedoch rein um die Server-Apps.
Ein PHP-OS wird sich wohl niemand ausmahlen können.

@|Coding: Du hast Recht, in Sachen DBs ist PHP noch nicht Top, aber an den DB-Modulen arbeiten so ziemlich die meisten Entwickler bei PHP.

Als ich mit PHP angefangen habe, war ich eigentlich sofort in der Materie drin: Variabeln aus Formulare ließen sich durch $var aufrufen (jetzt ja nicht mehr...) und Mails konnte man mit einem einzigen Befehl generieren. Im Gegensatz zu PERL war das alles schon viel Einfacher geworden.

=:-) Sebastian

Matt
09.08.2002, 15:42:32
php ist einfach, wenn man den einstieg geschafft hat, und größere Projekte aufziehen will, fällt das allerdings voll auf einen zurück, stichwort: objektorientiertheit.
Ich darf jetzt ein billiges workaround zu einer klasse hinzufügen, nur weil sich bei PHP funktionen nicht durch ihre Parameteranzahl unterscheiden können.
Weiteres problem: ich habe mein eigenes framework geschaffen, was objektorientiert ein ziemliches problem ist, da multiple vererbung von Klassen nicht möglich ist.
Ich hätte beispielsweise meine eigene error_reporting klasse, meine eigene System.out klasse (s. Java) usw. Solche dinge würden ein großes Projekt WIRKLICH vereinfachen und die performance deutlich steigern.
Meiner meinung nach sollte PHP endlich einmal einen fuß in die Oberliga setzen, indem die funktionalität hinzugefügt wird, die dafür nötig ist.
ich fände es auch sehr angenehm, wenn php projektdateien unterstützen würde, in denen man klassendateien beispielsweise nicht erst inkludieren muss, sondern in einer datei angeben kann, was zum package dazugehört.

Aja was C++ betrifft: coding, schau dir mal java an, da verlangt jede methode (funktion in einer klasse) nach parametern eines bestimmten types, wobei jeder typ ein objekt ist, und es gibt verdammt viele objekte..

so mal genug geschrieben. (ich weiss, dass meine vorschläge nicht umbedingt in die PHP linie hineinpassen, aber das hätte ich halt gerne ;) )

SPiC
09.08.2002, 16:55:42
@Matt sicherlich nutzen die wirklich großen Projekte andere Programmiersprachen (-> eBay nutzt C++!!!), aber die meisten Projekte sind sehr klein und müssen schnell realisiert werden, so dass dort php sicherlich einfacher zu administrieren ist.

In der kommerziellen Praxis ist es ja auch so, dass es u.U. sehr viele Projekte gibt, die nicht gerade sehr kompliziert sind (sagen wir mal ein PDF-Archiv oder ein Schwarzes Brett oder ganz einfach der Kantinenspeiseplan), wofür aber auch wenig Zeit/Resourcen/Geld zur Verfügung steht. Hier bietet sich natürlich PHP an. (Ich preise jetzt mal ein wenig PHP an), da es einfach und schnell zu programmieren ist.

|Coding
09.08.2002, 18:41:22
Original geschrieben von Matt

Aja was C++ betrifft: coding, schau dir mal java an, da verlangt jede methode (funktion in einer klasse) nach parametern eines bestimmten types, wobei jeder typ ein objekt ist, und es gibt verdammt viele objekte..

dazu kann ich nichts sagen, weil ich noch nie in java gecodet habe und das auch nicht machen werde.

allerdings finde ich schon, dass meine aussage über c++ richtig war...


öhm "objekt orientierte programmier/script - sprache" kann mir kleinem dummerlein nicht mal einer erklären was das eigentlich heißt "objekt......", aber bitte so das es auch ein normal sterblicher versteht?

thx

SPiC
09.08.2002, 19:26:47
Objektorientiert...hmm, beschreiben könnte ich es ja, aber das versteht dann keiner *g*.

Ich kann Dir aber ein Beispiel für das Gegenteil geben

BASIC

1: PRINT "Dies "
2: PRINT "ist"
3: GOTO 10
4: PRINT "Programmierung"
5: PRINT "und"
6: PRINT "zwar"
7: PRINT "total"
8: PRINT "zeilenorientiert"
9: GOTO 12
10: PRINT "zeilenorientierte"
11: GOTO 4
12: END

(Sorry, wenn die Syntax vielleicht nicht stimmt, aber in der Sprache habe ich als kleiner Junge meinen 8086 programmiert...)

Vielleicht kann Matt ja ein gutes und ersichtliches Beispiel für Objektorientiertheit schreiben...

Übrigens hasse ich Java. C++ ist die einzig richtig gute State-of-the-Art-Sprache und so ziemlich für die Entwicklung auf allen Plattformen (Windows, Mac, Unix) geeignet.

|Coding
09.08.2002, 21:39:55
hmm das hab ich jetzt aber überhaupt nicht verstanden... :-/

Matt
09.08.2002, 22:14:27
ok ich versuch es, allerdings, hierzu möchte ich folgendes festlegen (deshalb fett, damit SPiC es liest und mich nicht nachher flamed, was ich für mist poste ;) ) Die erklärungen, die folgen dienen dem verständnis der funktion einer klasse, können von der echten funktion einer klasse allerdings abweichen

also: Wenn du ne funktion aufrufst, hast du in dieser doch deine eigenen variablen, und die die nicht drin sind, auf die kannst du auch nicht zugreifen, sprich eine funktion ist ein für sich abgeschlossener bereich. Das problem dabei ist nur, dass bei jedem funktionsaufruf die variablen, die in der funktion gespeichert worden sind, verloren gehen. Es gibt dann bestimmte situationen, wo dies zu mehr arbeit führt, beispielsweise, wenn du mehrere werte länger speichern willst, die allerdings nichts direkt mit deinem script zu tun haben.
Beispiel: du brauchst in deinem web drei Datenbank-tabellen, und musst von denen immer nur verschiedene spalten auslesen. Noch ein zusatz: auf jeder Seite hast du immer nur mit einer bestimmten tabelle zu tun.
Wenn du jetzt deinen datenbankzugriff per funktion machst, ist das nicht gut, beispielsweise:


function connectdb($user,$pass,$host)
{
$connection=mysql_connect_db($user,$pass,$host);
mysql_select_db("datenbank",$connection);
global $connection
}

function query($sql)
{
global $connection
return mysql_query($sql,$connection);
}

connectdb("ich","geheim","localhost");
$out=query("select name,alter from typen");
while balblabla..
$out=query("select telefonnummer, plz from typen");
while blabla..

das wäre ein prozeduraler weg, ich glaube, ich muss nicht betonen, dass dieser nicht sonderlich fein ist.
anderer aufbau: Objektorientiert: mit zwei klassen.


class dbquery
{
function dbquery($user,$name,$connection,$defaulttable=false)
{
$this->connection=mysql_connect_db($user,$pass,$host);
mysql_select_db("datenbank",$connection);
}
function setdefaulttable($talbe)
{$this->defaulttable=$table}
function dbread($fields)
{
return mysql_query("select $fields from $this->defaulttable");
}
}

so was ist der vorteil?
nunja bei dem objekt, connectest du dich einmal und kannst einen defaulttable angeben, in dem objekt bleibt das bis zum ende des scriptes gespeichert (in anderen programmiersprachen solange, bis du es zerstörst, aber PHP hat keine destruktoren) jetzt brauchst du beispielsweise nur noch die felder übergeben die du haben willst, den rest merkt sich das script. Dein Vorteil ist, dass du die variablen nicht im normalen programm drin hast, die allerhöchstens stören würden, denn die kommunikation mit der Datenbank hat nichts mit der funktion deines programmes zu tun.
du hast praktisch ein "programm im programm" dass mehr oder weniger eigenständig existiert, natürlich hat es schnittstellen nach aussen (die funktionen) über die du mit diesem objekt kommunizieren kannst.
Objekte werden dafür verwendet, aufgaben, die sich widerholen auszufüren, der Vorteil hierbei ist, dass Objekte einfach viel flexibler sind, weil sie eben von dem programm mehr oder weniger abgekapselt sind. Objekte können - richtig verwendet SEHR viel Programmierarbeit ersparen, weil man mit ihnen funktionalität abstrahieren kann. Ich habe beispielsweise niemals mit den normalen mysql funktionen gearbeitet, weil ich sie von anfang an in eine ähnliche klasse wie diese oben gepackt habe.
ich hoffe, dass kommt halbwegs rüber, wenn du noch fragen hast, melde dich eifnach

SPiC
12.08.2002, 07:58:49
@Matt: Vielen Dank, dass Du mir das Leben durch Fettschrift vereinfachst!!! *G* Kompliment übrigens für die treffende Erklärung von Objektorientiertheit!!!
Ich hätte dazu bestimmt etwas geschrieben, was niemand verstehen würde...

=:-) Sebastian

Matt
12.08.2002, 12:43:27
jetzt wäre noch zu klären, ob unser zielobjekt (coding) das ganze verstanden hat.


while(!$coding->InfoIsClear())
{
$coding->feedInfo($whatIsObjectOriented);
$coding->processInfo();
if($coding->InfoOverflow())
{
$coding->~coding(); #oder um es der neuen schreibweise anzupassen: $coding->__deconstruct()
die("urks...")
}
}

SPiC
12.08.2002, 13:10:47
Um es mit den Worten von C++ zu sagen:


#include <dau.h>
#include <mattknowsit.h>
void main()
{
coding=new *Matt();
while(coding->DoesNotUnderStand())
{
$coding->LetMattExplain(TRUE);
}
}

oder

#include <superdau.h>
#include <mattknowsit.h>
void main()
{
if (coding->DoesNotUnderStand())
{
system ("basic coding.bas");
}
else
{
printf("Welcome to the wonderful World of object orientied Programming");
}
}
}


=:-) Sebastian
all->greet!

Nev
12.08.2002, 13:46:28
Hi @ll

Also PHP ist eine sehr leichte Sprache, die man mit wenig Aufwand erlernen kann.
Sie fällt leider untern Begriff "Try & Dirty"-Sprachen.

Ich würde die Haup-Web-Sprachen so reihen:
1) ASP ... wer BASIC kann, kann zumindest das Funderment von ASP meine Hass-sprache
2) PHP ... Leichte Sprache, hat viele Funktionen die das Leben erleichtern
3) PERL ... Ned schlecht, kann auch einiges und ist Server nahe
4) JAVA ... Eine Sprache wo ich sicher nie alle Funktionen kennen werde. Alles wird definiert (siehe Matt weiter oben)
5) C++ ... nette Sprache, wird auch im Web verwendet, zB Google!!

Generell wäre zu sagen, das jede Sprache jeweils einen Vorteil hat.
Mittels Perl kann man sehr gut auf Server-Configurationen eingehn siehe Confixx (Server-Verwaltungs-Tool)
PHP ist eine Sprache in der man sehr schnell was zum sehen bekommt, großer Vorteil : leicht zum lernen, viele Funktionen
ASP zu dieser Sprache erspar ich mir ein Kommentar, es gibt kaum eine die mich so sehr entäuscht hat
keine Struktur, kann kaum was, wenn man ned gerade Aktive-X verwendet
Java ist sehr gut, kann nette Oberflächen schreiben, ist sicher.
Kompliziert zum schreiben.

C++ hat den Vorteil das es sehr schnell ist, ist auch die Mutter aller Websprachen (so weit ich mich errinnern kann)

´Zusammenfassung:
Je nach Projekt haben die verschiedenen Sprachen Vorteile gegenüber den anderen.

SPiC
12.08.2002, 13:51:24
Anmerkung: C++ ist sogar die Mutter von PHP. denn PHP an sich wird vollkommen als C++.

Wer Lust hat, kann ja mal in die PHP-Sourcen sehen...

http://cvs.php.net

=:-) Sebastian

Matt
12.08.2002, 14:27:22
um die liste der webscripting sprachen noch zu vervollstänidigen, möchte ich Python anführen, auch wenn ich keine ahnung habe, was alles damit geht, was ich darüber weiß reicht mir. Eine Sprache, in der es keine klammern gibt, ist mir einfach suspekt!
ansonsten bleibt eigentlich eh nur noch Java in seiner J2EE ausführung da. Ich habe von einigen professionellen webentwicklern gehört, dass das für wirkliche enterpriseanwendungen das beste ist, was ich mir persönlich eigentlich auch vorstellen kann.
Muss ich umbedingt lernen, genauso, wie "normales java" weil java ist irgendwie eine coole sprache ;)
Aja und dann gibts ja noch C#, das auch in das .net system aufgenommen worden ist und als vollständige Web Scriptingsprache veröffentlicht wird. Ob C# wirklich was kann, weiss ich nicht.

aja, für alle, die nicht wissen, wofür java gut sein kann ;)
http://www.bluephod.net/coolpic.php4?filename=getstringfromobject.jpg (ich find das bild einfach nur genial!)


import java.net.*;
import java.dummy.dummyboard;

class Greetdummies
{

Greetdummies(DummyBoard boardofthedummies)
{
boardofthedummies->postComment("mfg, Matt");
/**
Bitte nicht allzuernst nehmen ;)
*/
}

public void main(string[] args)
{
Greetdummies dummies=new Greetdummies(new DummyBoard("http://www.selfphp.com"));
}
}

Noob
19.08.2002, 04:43:34
Hmmm objektorientierte Sachen mag ich eher nicht so gerne ich mach alles mit functions (Ich weiss man solls nicht), aber im Vergleich zu anderen Sprachen ist PHP angenehm zu lernen.
OOP ist meistnes ein paar Clocks langsamer als guter prozeduraler C Code, kommt drauf an wieviele near oder far jumps drinn sind.
Die pure Q3 Engine verwendet z.B. keinen Funken OOP.
Mal zu den Sprachen:
C: kann ich, is meine absolute Lieblingssprache, ganz einfach zu lernen, schnell und auch noch portabel (was mir aber egal ist).

C++: Kann ich auch, mag ich aber wegen dem OO Zeugs nicht grad sehr, aber wenns sein muss nehme ich auch C++

C# und VB.NET: Kann ich beides nicht, dank MSIL Optimierung aber schnell. Hab allerdings keine Lust noch eine Sprache zu lernen weil die Angeblich mal in Mode kommen soll (sollte).

VB 6.0: Kann ich auch ein bisschen, ein paar Chatprogramme und so Zeugs damit gemacht. Langsam und nicht grad gut aber naja ich wollts halt lernen

Brainf*ck: Konnte ich mal ansatzweise, das Zeugs wird seinem Namen voll gerecht. Da dreht man durch.

PHP: DIE Sprache zur "Webprogrammierung", was besseres kenne ich nicht

Java: Wurde mal als Erettung der Welt gefeiert, naja Rohrkrepierer. Eher Langsam aber sehr portabel. Meiner Meinung nach eine Fehlentwicklung, flamt mich nieder dafür (sollten hier ein paar Java-Priester sein).

JS: Ganz praktisch aber nicht immer verfügbar. Kann ich nicht grad gut, die Grundlagen gehen halt.

Assembler: DIE Sprache schlechthin, kann ich halbwegs gut, das regiert einfach nur. Sauschnell und man kann ALLES damit machen. Am grössten regiert C mit Inline ASM. Schreibt mal mit Java oder reinem C++ was schnelleres, viel Spass.
Mit Assembler kann man von der Kaffemaschine bis hin zum P4 alles Programmieren, Echt lustig wirds aber erst, wenn man keinen Assembler zur Hand hat. Die grösste Hardcore Programmierung --> Opcodes selber ausrechnen und per Hexeditor eintippen brrrr.

Ich finde PHP ist die Beste Sprache zur generierung dynamischer Webseite, einfach, schnell und auch sicher.

hmpf sowas wie in dem Bild mache ich einfach mit (Ein DS und assume Zeugs schenk ich mir hier is nur zu Demo Zwecken), TASM Intel 80386 Syntax:

CODE SEGMENT
Start:

mov eax, String ; Den String mal in die Hand nehmen
push eax ;Den Strin sichern, soll ja net ganz verloren gehen

xor eax,eax ;Und weg ist der String
call irgendwas_ohne_String ;Naja zwischenbeschäftigung, nen schönen Seiten ähhh Far-jump braucht man

pop eax ; Den String wieder aufnehmen und
mov String, eax ; Den String wieder zurückgeben, wir wollen ja nix klauen

CODE ENDS
End Start




Was man net alles für Blödsinn mit ASM machen kann tztztz.
Also zum Entfernen des Strings brauch ich mal 3 Clocks, da hat dein Java noch net mal angefangen was zu tun.
Was dazwischen kommt is mal nicht definiert, da sagen wir mal unentschieden.
Mit dem FAR Jump und dem FRET brauch ich nochmal 5 Cycles (kann sein dass 5 net stimmt, die RETS und JUMPS weiss ich net auswendig steingt mich wenns nicht stimmt).
Also ohne was dazwischen brauch ich 10 Cyles (zurückgeben jetzt auch eingerechnet).
Auf einem 2,0 GHz P4 dauert das genau --> 0,000000005 sek bis der String weg is. Da hab ih ja noch richtig Zeit für meine Zwischenbeschäftigungsfunktion.

man was für ein OT aber um die Zeit war mir ein klein wenig fad während ich auf eine Mail warte, löscht den Spamm.

mfg
Noob

SPiC
19.08.2002, 06:52:43
Dem stimme ich zu! (Allerdings möge hier gesagt sein, dass JSP und C++ DLL-ISAPI's für heavy-load Sites besser geeignet sind als PHP - Allerdings: Wer von uns programmiert schon WebSiten mit daily Hits > 500.000???)

=:-) Sebastian

Matt
20.08.2002, 13:20:47
an spic: achso? Du nicht? also ich mach täglich so ne seite für 50.000 Anwender pro sekunde ;)

SPiC
20.08.2002, 16:37:21
Nun ja, ich hatte da mal ein kleines Projekt. Vielleicht hast Du ja auch schon einmal davon gehört: Google hies es....

*G*