Hallo $begrüßung,
PHP wurde nicht zur Veranschaulichung moderner OOP im Informatik-Studium entwickelt,
sondern für den konkreten Einsatzzweck, Webseiten serverseitig dynamisch gestalten
zu können. Deswegen sehe ich es nicht ein, warum es sämtliche Features einer
ausgewachsenen OOP-Sprache mitbringen sollte.
Das ist, wie Du mir unten selbst vorgeworfen hast, _deine_ Meinung.
Meine Aussage, dass es als OOP-Sprache nicht "ernst zu nehmen" ist, ist an dieser
Stelle berechtigt. Ich verstehe ja die Existenzberechtigung von PHP. Man kann
sehr schnell, und mit Disziplin auch relativ schoen, kleinere Projekte realisieren.
Des weiteren ist LAMP fast bei jedem Provider installiert. Das ist tatsaechlich ein
definitivert Vorteil von PHP.
Typsicherheit,
Braucht es das bei einer Sprache, die nicht streng typisiert ist?
Genau das sagte ich ja, dass die Nicht-Typisierung ein sehr grosses, wenn nicht
sogar DAS Manko schlechthin darstellt.
Für den geplanten Anwendungsfall PHPs ist die Typsicherheit meist kein ausschlaggebendes
KO-Kriterium. Wenn es für deine Zwecke eins ist, nur zu ...
Naja, in Bezug auf Sicherheit ist es schon nicht so schoen. ein typisches Beispiel: Man
schleift eine ID in der URL mit und moechte diese spaeter verwenden. Wer garantiert, dass
es tatsaechlich ein integer Wert ist und kein String oder Amount? Die bereits oben
erwaehnte Disziplin hilft hier natuerlich weiter (man hat ja mitterweile sein Bibliothek,
wuie zB isIntAndNotNull() oder so was). Aber jeden Typ manuell zu ueberpruefen ist
schon ein wenig nervenraubend..
bitwise enums,
Braucht es das bei einer Sprache, die nicht streng typisiert ist?
Hae? Das hat doch rein _gar nichts_ mit Typisierung zu tun! Und ja, da braucht es.
Was ist es dann, wenn nicht ein Typ, konkret ein Aufzählungstyp? (Kann ja sein, dass
ich mir darunter grad was anderes vorstelle als du beabsichtigt hast.)
Ich habe wohl ein wenig zu lakonisch geantwortet.
M.M.n. sind enums unersaetzlich. Denn es ist sehr muehsam den Anwendungsbereich haendisch
nachzuahmen. Man stelle sich vor, eine Kalkulationsmethode Methode bedarf einer Waehrung
als Parameter.
Beispeil enum:
public enum Currency {
USD,
EUR
}
public double Calculate(Currency cur)
{
[..]
}
Bsp. manuell:
public double Calculate(string cur) {
if(cur=="USD") ...
if(cur=="EUR") ...
}
Oder man muss extra eine neue Klasse erstellen, die lediglich den Wert Currency beinhaltet
und dessen Setter-Methode - hier auch wieder manuell - ueberprueft, ob es eine gueltige
Waehrung ist oder nicht. Alles viel zu aufwaendig.
Enums sind ein wohl-definierte Werte, mit denen sich komfortabler arbeiten laesst. Es ist
quasi ein Garant fuer einen korrekten Wert.
Warum verallgemeinerst du das und stellt es nicht nur als deine persönliche Meinung dar?
Es sei dir ja unbenommen, die eierlegende Wollmilchsau zu bevorzugen. Nur sind deshalb nicht gleich alle Nur-Hühner nicht ernst zu nehmen, wenn sie fürs Eierlegen ausreichen.
OK, da gebe ich Dir recht. Es ist vllt. zu subjektiv, als dass ich es als allgemeines Kriterium
verwenden kann.
Gruesse aus Berlin,
Christopher