WinFuture-Forum.de: Quereinstieg in die Web-Entwicklung, umfassende Fachbücher gesucht! - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
  • 3 Seiten +
  • 1
  • 2
  • 3

Quereinstieg in die Web-Entwicklung, umfassende Fachbücher gesucht!

#16 Mitglied ist offline   DerTommy22 

  • Gruppe: aktive Mitglieder
  • Beiträge: 202
  • Beigetreten: 05. Januar 12
  • Reputation: 17

geschrieben 28. Juli 2012 - 13:05

Beitrag anzeigenZitat (Holger_N: 28. Juli 2012 - 11:13)

Mit str_replace kann man zum Beispiel schön Teile von Zeichenketten ersetzen. Ich finde das gut.

Ist das jetzt ein merkwürdiger Sarkasmus oder der Versuch zu verschleiern, dass du nicht zu wissen scheinst, wovon hier gerade geredet wird?

Es geht nicht darum, was diese Funktion tut, sondern a) wie diese aufgerufen wird und b) was sie intern macht.

Es geht darum, den Nutzer nicht zu verwirren, weil das üble Konsequenzen haben kann, annähernd alle Sprachen machen das richtig, aber PHP hat derbe ausreisser drin.

Das folgende ist Pseudo, sollte aber das Problem veranschaulichen: Nehmen wir an, wir haben eine Variable 'text', die einen String enthält, dann wäre es logisch und berechenbar, das Funktionen so ge-called werden könnten:

text.lower(arg), text.upper(arg), text.capitalize(arg), ...

Das ist nachvollziehbar, da alle Aktionen rund um das Objekt dem gleichen Aufbau entsprechen; ob der Trenner hier jetzt ein '.', '::' oder sonstwas ist, ist egal, hauptsache er ist immer der selbe.

PHP macht da aber einfach mix-n-match, mal text.foo, mal text->bar, etc.

Das ist unlogisch, sinnfrei, Mist und in vielen Fällen, wie schon erwähnt, nichtmal ausreichend dokumentiert. Im Endeffekt heist das, man kann nicht logisch ableiten, wie etwas funktioniert, man muß über alle Spirenzchen bescheid wissen und alles auswendig lernen.

Das aber wiederum widerspricht den Grundprinzipien einer Programmiersprache, die Klarheit, Berechenbarkeit und ordentliche Syntax vorraussetzen.
@EA Sports: Ich will wieder Hallenfußball ala FIFA98 :(
1

Anzeige



#17 Mitglied ist offline   __42__ 

  • Gruppe: aktive Mitglieder
  • Beiträge: 38
  • Beigetreten: 10. März 12
  • Reputation: 5

geschrieben 28. Juli 2012 - 13:08

Beitrag anzeigenZitat (Holger_N: 28. Juli 2012 - 11:47)

Ich hab mehrere Pullover. Muß ich von den mehrfach vorhandenen jetzt soviele wegwerfen, dass ich von jedem nur noch ein Exemplar habe, weil das sonst keinen Sinn im Kleiderschrank ergibt?

Die Funktionen machen nicht das gleiche, es geht lediglich um den einheitlichen Aufbau einer Library.

Dieser Beitrag wurde von __42__ bearbeitet: 28. Juli 2012 - 13:11

1

#18 Mitglied ist offline   Holger_N 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.170
  • Beigetreten: 11. September 10
  • Reputation: 458
  • Geschlecht:Männlich

geschrieben 29. Juli 2012 - 12:05

Beitrag anzeigenZitat (DerTommy22: 28. Juli 2012 - 13:05)

Ist das jetzt ein merkwürdiger Sarkasmus oder der Versuch zu verschleiern, dass du nicht zu wissen scheinst, wovon hier gerade geredet wird?

...


Letzteres, ich hab wirklich nicht verstanden, was der Beitrag mir sagen sollte. "Merkwürdiger Sarkasmus" klingt aber auch gut.

Beitrag anzeigenZitat (DerTommy22: 28. Juli 2012 - 13:05)



text.lower(arg), text.upper(arg), text.capitalize(arg), ...

Das ist nachvollziehbar, da alle Aktionen rund um das Objekt dem gleichen Aufbau entsprechen; ob der Trenner hier jetzt ein '.', '::' oder sonstwas ist, ist egal, hauptsache er ist immer der selbe.

PHP macht da aber einfach mix-n-match, mal text.foo, mal text->bar, etc.

Das ist unlogisch, sinnfrei, Mist und in vielen Fällen, wie schon erwähnt, nichtmal ausreichend dokumentiert. Im Endeffekt heist das, man kann nicht logisch ableiten, wie etwas funktioniert, man muß über alle Spirenzchen bescheid wissen und alles auswendig lernen.



Das sehe ich pragmatischer. Wenn es am Ende so funktioniert wie es soll, dann muß es logisch sein, was da passiert. Was in dem Beispiel als "logisch" oder "unlogisch" bezeichnet wird, hat nichts mit der eigentlichen Logik zu tun. Das ist Syntax schön oder nicht schön finden und das widerum ist für mich reine Geschmackssache.
Bauernregel: Regnets mächtig im April, passiert irgendwas, was sich auf April reimt.
0

#19 Mitglied ist offline   __42__ 

  • Gruppe: aktive Mitglieder
  • Beiträge: 38
  • Beigetreten: 10. März 12
  • Reputation: 5

geschrieben 29. Juli 2012 - 13:43

Beitrag anzeigenZitat (Holger_N: 29. Juli 2012 - 12:19)

Das sehe ich pragmatischer. Wenn es am Ende so funktioniert wie es soll, dann muß es logisch sein, was da passiert. Was in dem Beispiel als "logisch" oder "unlogisch" bezeichnet wird, hat nichts mit der eigentlichen Logik zu tun. Das ist Syntax schön oder nicht schön finden und das widerum ist für mich reine Geschmackssache.

Das Weltbild funktioniert bei 100 Zeilen Codebasteleien vielleicht ganz gut, bei über 100.000 wird daraus ganz schnell ein Trümmerhaufen.
0

#20 Mitglied ist offline   DerTommy22 

  • Gruppe: aktive Mitglieder
  • Beiträge: 202
  • Beigetreten: 05. Januar 12
  • Reputation: 17

geschrieben 29. Juli 2012 - 14:07

Beitrag anzeigenZitat (Holger_N: 29. Juli 2012 - 12:19)

Das sehe ich pragmatischer. Wenn es am Ende so funktioniert wie es soll, dann muß es logisch sein, was da passiert. Was in dem Beispiel als "logisch" oder "unlogisch" bezeichnet wird, hat nichts mit der eigentlichen Logik zu tun. Das ist Syntax schön oder nicht schön finden und das widerum ist für mich reine Geschmackssache.

Das mag für dich ja zutreffen, aber wahrscheinlich hast du bisher weder eine andere Sprache umfassend genutzt, noch irgendwie im Team gearbeitet.

Die Klarheit des Codes ist extrem wichtig, deswegen hat jedes (größere) Projekt Guidelines - hier zum Beispiel die des Linux-Kernels - oder die Sprache selbst forciert Sachen bzw. macht sie überhaupt notwendig, um ein Programm laufen zu lassen, siehe Python.

Diese Probleme mit PHP tragen einen großen Teil dazu bei, dass die Sprache so unsicher ist bzw. so unsicher eingesetzt wird, weil viele Sachen einfach mal nicht so funktionieren, wie der Programmierer - oder in dem Falle eher Scripter - sich das gedacht hat.

Ich möchte dir deine Meinung nicht abreden, aber nur, weil du als Anfänger in deinem begrentzen Rahmen damit zurecht kommst bzw. dich darauf eingestellt hast, heist das nicht, dass es so sein muß. Bringe mal mindestens eine andere (vergleichbare) Sprache auf dein PHP-Niveau und dann lies und vor allem versteh den oben verlinkten Text nocheinmal.
Threading und das Handlen von Exceptions ist z.B. auch unter aller Kanone, da gibt es keine sauberen Wege, alles was existiert sind fiese Hacks.

PHP wird vor allem von denen verteidigt, die keine Ahnung haben, was daran liegen mag, dass PHP den Ruf der Einfachheit für Einsteiger hat und in der Tat scheinen sich viele Kinder damit gerade soweit zu beschäftigen, dass sie ein Mini-Seitchen zurechtfriemeln können, was irgendwie läuft.
Dieser Einfachheitsvorteil ist aber seit Jahren nicht mehr gegeben, gerade in Sachen Web sind Python und Ruby mindestens genauso einfach, aber einfach logischer und sicherer. Die beiden stürzen im Zweifel einfach mal ab, was man debuggen muss, das ist aber wesentlich besser, als wie im Falle von PHP mal so ziemlich alles zu akzeptieren und im Endeffekt mit falschen Variablen-Werten weiter zu machen.

Kurz, nimm's mir nicht übel, aber dir fehlt die Kompetenz, wirklich adäquat mitreden zu können, sorry.
@EA Sports: Ich will wieder Hallenfußball ala FIFA98 :(
0

#21 Mitglied ist offline   Holger_N 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.170
  • Beigetreten: 11. September 10
  • Reputation: 458
  • Geschlecht:Männlich

geschrieben 29. Juli 2012 - 15:31

Beitrag anzeigenZitat (DerTommy22: 29. Juli 2012 - 14:07)

Das mag für dich ja zutreffen, aber wahrscheinlich hast du bisher weder eine andere Sprache umfassend genutzt, noch irgendwie im Team gearbeitet.


Nee ich versuche seit 9 Jahren andere Programmiersprachen aber bis auf Visual Basic finde ich alle anderen Sprachen "unlogisch" aber ich bin dann auch so ehrlich zum mir und gebe zu, dass ich scheinbar für andere Sprachen zu doof bin. Im Team kann ich nicht arbeiten, da ich Anderen in ihrem Tun erstmal nicht traue. Wenn in einer Bewerbung drinsteht "Ich bin teamfähig." dann ist der Kandidat bei mir schon durchgefallen weil es für mich sinngemäß bedeutet "Ich bin zu blöd, alleine etwas auf die Reihe zu kriegen."

Beitrag anzeigenZitat (DerTommy22: 29. Juli 2012 - 14:07)

Die Klarheit des Codes ist extrem wichtig, deswegen hat jedes (größere) Projekt Guidelines - hier zum Beispiel die des Linux-Kernels - oder die Sprache selbst forciert Sachen bzw. macht sie überhaupt notwendig, um ein Programm laufen zu lassen, siehe Python.


Da sehe ich jetzt keinen großen Unterschied zu PHP. Dieses switch-case-Dingsbums ist ja sogar zu 100% identisch.


Beitrag anzeigenZitat (DerTommy22: 29. Juli 2012 - 14:07)

Ich möchte dir deine Meinung nicht abreden, aber nur, weil du als Anfänger in deinem begrentzen Rahmen damit zurecht kommst bzw. dich darauf eingestellt hast, heist das nicht, dass es so sein muß. Bringe mal mindestens eine andere (vergleichbare) Sprache auf dein PHP-Niveau und dann lies und vor allem versteh den oben verlinkten Text nocheinmal.
Threading und das Handlen von Exceptions ist z.B. auch unter aller Kanone, da gibt es keine sauberen Wege, alles was existiert sind fiese Hacks


Es gibt für mich keine vergleichbare Sprache zu PHP. Den Teil mit "Threading und das Handlen von Exceptions" verstehe ich inhaltlich nicht. Son Schweinkram kommt auf meinen Seiten nicht vor.

Beitrag anzeigenZitat (DerTommy22: 29. Juli 2012 - 14:07)

PHP wird vor allem von denen verteidigt, die keine Ahnung haben, was daran liegen mag, dass PHP den Ruf der Einfachheit für Einsteiger hat und in der Tat scheinen sich viele Kinder damit gerade soweit zu beschäftigen, dass sie ein Mini-Seitchen zurechtfriemeln können, was irgendwie läuft.

Kann man auch andersrum sehen, dass diejenigen die darüber schimpfen keine Ahnung haben, denn die sind es ja die damit nicht klarkommen.

Beitrag anzeigenZitat (DerTommy22: 29. Juli 2012 - 14:07)

Dieser Einfachheitsvorteil ist aber seit Jahren nicht mehr gegeben, gerade in Sachen Web sind Python und Ruby mindestens genauso einfach, aber einfach logischer und sicherer. Die beiden stürzen im Zweifel einfach mal ab, was man debuggen muss, das ist aber wesentlich besser, als wie im Falle von PHP mal so ziemlich alles zu akzeptieren und im Endeffekt mit falschen Variablen-Werten weiter zu machen.

Kurz, nimm's mir nicht übel, aber dir fehlt die Kompetenz, wirklich adäquat mitreden zu können, sorry.


Ach wo, wenn ich was übel nehme, dann muß da schon ordentlich was passieren. Da reicht so eine Pillepalle nicht.

(Hab mir gerede mal ein paar Beispiele in Ruby und Python angeguckt und sehe das jetzt auch nicht wirklich einen Unterschied. Ist doch von der struktur her alles das Gleiche - Wenn das so ist, dann mach dieses und jenes, sonst was Anderes - ist überall gleich vom Aufbau her. Da ist mal ein anderes Wort bei aber sonst?)
Bauernregel: Regnets mächtig im April, passiert irgendwas, was sich auf April reimt.
0

#22 Mitglied ist offline   __42__ 

  • Gruppe: aktive Mitglieder
  • Beiträge: 38
  • Beigetreten: 10. März 12
  • Reputation: 5

geschrieben 29. Juli 2012 - 16:34

Beitrag anzeigenZitat (Holger_N: 29. Juli 2012 - 15:31)

Im Team kann ich nicht arbeiten, da ich Anderen in ihrem Tun erstmal nicht traue. Wenn in einer Bewerbung drinsteht "Ich bin teamfähig." dann ist der Kandidat bei mir schon durchgefallen weil es für mich sinngemäß bedeutet "Ich bin zu blöd, alleine etwas auf die Reihe zu kriegen."

Klar, du programmierst wohl auch Windows alleine? Teamfähigkeit bedeutet dass man die Fähigkeit besitzt im Team zu arbeiten, das heisst sich in ein Team zu integrieren und darin zu interagieren. Mit nichts alleine auf die Reihe bekommen hat das nichts zu tun. Dass diese Aussage bei einer Bewerbung auf Korrektheit geprüft werden sollte versteht sich von alleine. In großen Projekten kommt man aber nur schwer drum rum auf Leute zu bauen die teamfähig sind, denn wenn 15 Leute ihr eigenes Süppchen kochen wird daraus selten eine große Suppe die genießbar ist. Und wenn du Leute aussiebst die bei ihrer Bewerbung ehrlich und vollständig ihre Kompetenzen auflisten tust mir auch leid.

Zitat

Da sehe ich jetzt keinen großen Unterschied zu PHP. Dieses switch-case-Dingsbums ist ja sogar zu 100% identisch.

Frei nach dem Motto "Hauptsache was gesagt...". Es geht nicht darum wie das Ding aussieht sondern, dass exakt vorgegeben ist wie es formatiert zu sein hat. Damit es nicht jeder anders schreibt. Quellcode ließt sich nämlich wirklich gut wenn einer mit 8 Tabs einrück und der andere mit 4, wenn einer die Blöcke in der Statement-Zeile beginnt und der andere vorher umbricht...

Zitat

Es gibt für mich keine vergleichbare Sprache zu PHP. Den Teil mit "Threading und das Handlen von Exceptions" verstehe ich inhaltlich nicht. Son Schweinkram kommt auf meinen Seiten nicht vor.

Und was ich nicht brauche existiert folglich auch nicht in meinem Weltbild. Das ist auch okay, aber nimm das Weltbild dann bitte nicht als Grundlage wenn du jemand anderen Ratschläge gibst der ein anderes Weltbild hat.

Zitat

Kann man auch andersrum sehen, dass diejenigen die darüber schimpfen keine Ahnung haben, denn die sind es ja die damit nicht klarkommen.

Wenn das nächste mal jemand sich darüber beschwert, dass mein Auto unterm fahren abstirbt erzähle ich ihm auch, dass er lernen soll damit klar zu kommen.

Zitat

(Hab mir gerede mal ein paar Beispiele in Ruby und Python angeguckt und sehe das jetzt auch nicht wirklich einen Unterschied. Ist doch von der struktur her alles das Gleiche - Wenn das so ist, dann mach dieses und jenes, sonst was Anderes - ist überall gleich vom Aufbau her. Da ist mal ein anderes Wort bei aber sonst?)

call-by-value und call-by-ref sind ja auch fast das gleiche. Und wenn deswegen mal eine Rakete vom Himmel fällt, was solls, auf den ersten Blick hat's ja gepasst.
0

#23 Mitglied ist offline   Holger_N 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.170
  • Beigetreten: 11. September 10
  • Reputation: 458
  • Geschlecht:Männlich

geschrieben 29. Juli 2012 - 16:59

Beitrag anzeigenZitat (__42__: 29. Juli 2012 - 16:34)

Klar, du programmierst wohl auch Windows alleine? Teamfähigkeit bedeutet dass man die Fähigkeit besitzt im Team zu arbeiten, das heisst sich in ein Team zu integrieren und darin zu interagieren. Mit nichts alleine auf die Reihe bekommen hat das nichts zu tun. Dass diese Aussage bei einer Bewerbung auf Korrektheit geprüft werden sollte versteht sich von alleine. In großen Projekten kommt man aber nur schwer drum rum auf Leute zu bauen die teamfähig sind, denn wenn 15 Leute ihr eigenes Süppchen kochen wird daraus selten eine große Suppe die genießbar ist. Und wenn du Leute aussiebst die bei ihrer Bewerbung ehrlich und vollständig ihre Kompetenzen auflisten tust mir auch leid.

Frei nach dem Motto "Hauptsache was gesagt...". Es geht nicht darum wie das Ding aussieht sondern, dass exakt vorgegeben ist wie es formatiert zu sein hat. Damit es nicht jeder anders schreibt. Quellcode ließt sich nämlich wirklich gut wenn einer mit 8 Tabs einrück und der andere mit 4, wenn einer die Blöcke in der Statement-Zeile beginnt und der andere vorher umbricht...


Kein Mensch hindert die Leute, sich vor einem Projekt abzustimmen. Auch in PHP kann man doch untereinander abstimmen "Eingerückt wird mit 4 Tabs und umbrochen wird nur an dieser oder jener Stelle..." Dann ist doch deswegen PHP nicht unlogisch, wenn sich die Leute nicht dran halten.

Beitrag anzeigenZitat (__42__: 29. Juli 2012 - 16:34)


Und was ich nicht brauche existiert folglich auch nicht in meinem Weltbild. Das ist auch okay, aber nimm das Weltbild dann bitte nicht als Grundlage wenn du jemand anderen Ratschläge gibst der ein anderes Weltbild hat.


Falsch - jemand, der noch gar kein Weltbild hat, fragt Andere nach ihrem und dann stelle ich meins vor. Das bedeutet weder, dass er es übernehmen muß, noch dass es globale Gültigkeit hat.

Beitrag anzeigenZitat (__42__: 29. Juli 2012 - 16:34)

Wenn das nächste mal jemand sich darüber beschwert, dass mein Auto unterm fahren abstirbt erzähle ich ihm auch, dass er lernen soll damit klar zu kommen.


Nein, wenn jemand mit einem Automatikwagen fährt und nicht damit klarkommt, weil er lieber kuppelt und schaltet, dann gibts neben der Option sich einen Schaltwagen zu kaufen, nunmal auch noch die Möglichkeit zu lernen wie man mit einem Automatikgetriebe umgeht. Man kann sich dann natürlich auch hinstellen und behaupten Automatikgetriebe sind unlogisch, so bei der Argumentation hier.

Beitrag anzeigenZitat (__42__: 29. Juli 2012 - 16:34)

call-by-value und call-by-ref sind ja auch fast das gleiche. Und wenn deswegen mal eine Rakete vom Himmel fällt, was solls, auf den ersten Blick hat's ja gepasst.


Es ist nicht das Gleiche aber auf diesen Thread bezogen wäre die Frage ja nicht ob die Rakete runterfällt, sondern wenn sie fällt, ob sie dann einen logischen Grund hat. Wenn sie einen hat, wäre der Absturz von der Logik her ok.
Bauernregel: Regnets mächtig im April, passiert irgendwas, was sich auf April reimt.
0

#24 Mitglied ist offline   __42__ 

  • Gruppe: aktive Mitglieder
  • Beiträge: 38
  • Beigetreten: 10. März 12
  • Reputation: 5

geschrieben 29. Juli 2012 - 17:19

Beitrag anzeigenZitat (Holger_N: 29. Juli 2012 - 16:59)

Kein Mensch hindert die Leute, sich vor einem Projekt abzustimmen. Auch in PHP kann man doch untereinander abstimmen "Eingerückt wird mit 4 Tabs und umbrochen wird nur an dieser oder jener Stelle..." Dann ist doch deswegen PHP nicht unlogisch, wenn sich die Leute nicht dran halten.

Hat mit meiner Aussage nicht so viel zu tun aber gut.

Zitat

Falsch - jemand, der noch gar kein Weltbild hat, fragt Andere nach ihrem und dann stelle ich meins vor. Das bedeutet weder, dass er es übernehmen muß, noch dass es globale Gültigkeit hat.

Naja, wer fragt einen Medizinstudenten im ersten oder zweiten Semester nach einer ernsthaften Diagnose? Nichts für ungut, aber das technische Kompetenzlevel vermittelst du irgendwie...

Zitat

Nein, wenn jemand mit einem Automatikwagen fährt und nicht damit klarkommt, weil er lieber kuppelt und schaltet, dann gibts neben der Option sich einen Schaltwagen zu kaufen, nunmal auch noch die Möglichkeit zu lernen wie man mit einem Automatikgetriebe umgeht. Man kann sich dann natürlich auch hinstellen und behaupten Automatikgetriebe sind unlogisch, so bei der Argumentation hier.

Kommt drauf an, wenn bei einem Schaltgetriebe der erste Gang vorne rechts ist und der zweite hinten links, dann würde ich mich schon dazu erdreisten zu fragen ob der Ingenieur des ganzen nicht irgendwo vielleicht doch mist gebaut hat?
Ebenso verhält es sich mit PHP, es ist und bleibt ein großes rumgebastel, aber kein durchdachtes sauberes System.

Zitat

Es ist nicht das Gleiche aber auf diesen Thread bezogen wäre die Frage ja nicht ob die Rakete runterfällt, sondern wenn sie fällt, ob sie dann einen logischen Grund hat. Wenn sie einen hat, wäre der Absturz von der Logik her ok.

Abstürze passieren meistens aus logischen Gründen, das Problem ist nur, dass diese Logik keines Falls in de Intention des Autors lag (ist übrigens schon passiert, und genau deshalb sind die Sachen die auf den ersten Blick harmlos und einfach sind nicht zu unterschätzen).
0

#25 Mitglied ist offline   DerTommy22 

  • Gruppe: aktive Mitglieder
  • Beiträge: 202
  • Beigetreten: 05. Januar 12
  • Reputation: 17

geschrieben 29. Juli 2012 - 18:14

Zu deinem Raketenbeispiel reicht es eigentlich, aus dem verlinkten Text das folgende zu zitieren:

Zitat

In C, functions like strpos return
-1 if the item isn’t found. If you don’t check for that case
and try to use that as an index, you’ll hit junk memory and your program will blow up. (Probably. It’s C. Who the fuck knows. I’m sure there are tools for this, at least.)

In, say, Python, the equivalent .index methods will raise an exception if the item isn’t found. If
you don’t check for that case, your program will blow up.

In PHP, these functions return false. If you use FALSE as an index, or do much of anything with
it except compare with ===, PHP will silently convert it to
0 for you. Your program will not
blow up; it will, instead, do the wrong thing with no warning, unless you remember to include the right boilerplate around every place you use strpos and certain other functions.


Die Folge hier ist nicht, die Rakete stürzt ab, die Folge ist, anstatt in $Ziel einzuschlagen, dreht sie um und macht dich platt.

Konsistenz:

Zitat

Chunks of the library are wildly inconsistent from one another.
‣Underscore versus not: strpos/str_rot13, php_uname/phpversion, base64_encode/urlencode, gettype/get_class
‣“to” versus 2: ascii2ebcdic, bin2hex, deg2rad, strtolower, strtotime
‣Object+verb versus verb+object: base64_decode, str_shuffle, var_dump versus create_function,
recode_string
und so weiter.

Keiner sagt, PHP kann man überhaupt nicht nutzen, aber während es z.B. bei Perl für allgemeine Grundlagen mit zwei Büchern getan ist, nämlich dem für Einsteiger und dem für Fortgeschrittene, braucht man bei PHP zusätzlich ein drittes, was all die nicht offensichtlichen Stolperfallen beinhaltet.

PHP hatte lange Zeit Bugs, dass Hex-Zahlen nicht korrekt addiert werden, dass der Prozess beim Vergleich großer Zahlen einfach mal komplett abschmiert, etc.

Software gehört vor einem Release ordentlich getestet, PHP macht das aber teils so schwer, dass man wesentlich mehr Code für den Debug einer Funktion braucht, als die Funktion selber hat und selbst dieser Debug-Code greift nicht alles, wenn man eben nicht um jene Spezialitäten weis.

Dieser Beitrag wurde von DerTommy22 bearbeitet: 29. Juli 2012 - 18:14

@EA Sports: Ich will wieder Hallenfußball ala FIFA98 :(
2

#26 Mitglied ist offline   Holger_N 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.170
  • Beigetreten: 11. September 10
  • Reputation: 458
  • Geschlecht:Männlich

geschrieben 29. Juli 2012 - 18:36

Beitrag anzeigenZitat (__42__: 29. Juli 2012 - 17:19)

Naja, wer fragt einen Medizinstudenten im ersten oder zweiten Semester nach einer ernsthaften Diagnose? Nichts für ungut, aber das technische Kompetenzlevel vermittelst du irgendwie...



Wo ist dabei das Problem? Die Geschichte hier wäre dann aber so, dass einem - meinetwegen schon fertig studiertem - Biologen einfällt, er möchte nun auch noch Medizin studieren und fragt nach einem möglichen Einstieg. Da kann ein Student im ersten oder zweiten Semester doch von seinem Einstieg berichten. Vielleicht hilft das mehr als ein fertiger Arzt, der alles unlogisch findet.

Beitrag anzeigenZitat (DerTommy22: 29. Juli 2012 - 18:14)

Zu deinem Raketenbeispiel reicht es eigentlich, aus dem verlinkten Text das folgende zu zitieren:

Zitat

In C, functions like strpos return
-1 if the item isn’t found. If you don’t check for that case
and try to use that as an index, you’ll hit junk memory and your program will blow up. (Probably. It’s C. Who the fuck knows. I’m sure there are tools for this, at least.)

In, say, Python, the equivalent .index methods will raise an exception if the item isn’t found. If
you don’t check for that case, your program will blow up.

In PHP, these functions return false. If you use FALSE as an index, or do much of anything with
it except compare with ===, PHP will silently convert it to
0 for you. Your program will not
blow up; it will, instead, do the wrong thing with no warning, unless you remember to include the right boilerplate around every place you use strpos and certain other functions.


Die Folge hier ist nicht, die Rakete stürzt ab, die Folge ist, anstatt in $Ziel einzuschlagen, dreht sie um und macht dich platt.



Noja dann dreht die Rakete eben um und wenn das vorhersehbar ist, was passiert, was ist dann unlogisch daran?
Bauernregel: Regnets mächtig im April, passiert irgendwas, was sich auf April reimt.
0

#27 Mitglied ist offline   DerTommy22 

  • Gruppe: aktive Mitglieder
  • Beiträge: 202
  • Beigetreten: 05. Januar 12
  • Reputation: 17

geschrieben 29. Juli 2012 - 18:46

Zitat

Noja dann dreht die Rakete eben um und wenn das vorhersehbar ist, was passiert, was ist dann unlogisch daran?
So wie du hier versuchst mitzureden, ist das Problem, dass es für dich eben nicht vorhersehbar sein wird.

Wenn z.B. die Profis hinter Wordpress und Facebook über solche Sachen gestolpert sind(einfach mal Google anschmeissen), dann willst du mir erklären, du wüßtest das von vorneherein?

Es ist unlogisch, weil selbst und gerade erfahrene Programmierer mit so einem Verhalten niemals rechnen würden, weil sie eben die Konsequenzen eines solchen Verhaltens wüßten und somit davon ausgehen dürfen, dass die Entwickler einer Sprache soetwas erst gar nicht so bekloppt implementieren.

Zitat

Den Teil mit "Threading und das Handlen von Exceptions" verstehe ich inhaltlich nicht. Son Schweinkram kommt auf meinen Seiten nicht vor.
Schweinkram? Exceptions sind Warnungen-/Fehlermeldungen bei inkorrekten Werten, die man abfangen sollte und entsprechend darauf reagieren - simpelstes und für Laien wie dich wohl verständliches Beispiel, wie verhält sich dein Programm, wenn ich statt einer Telefonnummer einen Namen eintrage?
Mit Threading lässt man Abläufe parallel verarbeiten, eben um "schneller zum Ziel" zu kommen und das maximale aus den Ressourcen zu machen(und einiges mehr, aber das ist dir wahrscheinlich zu hoch?!).
@EA Sports: Ich will wieder Hallenfußball ala FIFA98 :(
1

#28 Mitglied ist offline   DerTommy22 

  • Gruppe: aktive Mitglieder
  • Beiträge: 202
  • Beigetreten: 05. Januar 12
  • Reputation: 17

geschrieben 29. Juli 2012 - 19:06

Vergessen, nehmen wir ein simples Beispiel:

Sei x = 0.0.

Nun möchtest du 10 mal 0.1 hinzuzählen.

In Python geht das zum Beispiel so:
>>> x = 0.0
>>> for i in range(10):
...     x += 0.1
... 
>>> x
0.9999999999999999
>>> print x
1.0
>>>
Das mag ein kleiner Unterschied sein, ist aber für manche Sachen relevant und signifikant. Das gezeigte Ergebnis ist abhängig von der Architektur des Systems und wie du den Wert abfragst.

Was wäre nun, wenn du, wie ein normaler Mensch davon ausgeht, denkst 1.0 käme raus, es kommt aber das andere raus, weil der Entwickler sich das so gedacht hast. Damit hättest du nicht gerechnet, obwohl der Code sauber und korrekt aussieht und eben das kann derbe Bugs verursachen - und das ist nur eines der simpelsten Beispiele, die man z.B. im ersten Semester beigebracht bekommt.
@EA Sports: Ich will wieder Hallenfußball ala FIFA98 :(
0

#29 Mitglied ist offline   Holger_N 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.170
  • Beigetreten: 11. September 10
  • Reputation: 458
  • Geschlecht:Männlich

geschrieben 29. Juli 2012 - 19:27

Beitrag anzeigenZitat (DerTommy22: 29. Juli 2012 - 19:06)

Vergessen, nehmen wir ein simples Beispiel:

Sei x = 0.0.

Nun möchtest du 10 mal 0.1 hinzuzählen.

In Python geht das zum Beispiel so:
>>> x = 0.0
>>> for i in range(10):
...     x += 0.1
... 
>>> x
0.9999999999999999
>>> print x
1.0
>>>
Das mag ein kleiner Unterschied sein, ist aber für manche Sachen relevant und signifikant. Das gezeigte Ergebnis ist abhängig von der Architektur des Systems und wie du den Wert abfragst.

Was wäre nun, wenn du, wie ein normaler Mensch davon ausgeht, denkst 1.0 käme raus, es kommt aber das andere raus, weil der Entwickler sich das so gedacht hast. Damit hättest du nicht gerechnet, obwohl der Code sauber und korrekt aussieht und eben das kann derbe Bugs verursachen - und das ist nur eines der simpelsten Beispiele, die man z.B. im ersten Semester beigebracht bekommt.


Ahja und das Python das falsch macht, soll mir jetzt beweisen, dass PHP unlogisch ist. Das ist aber dann schon höhere Beweisführung.

Beitrag anzeigenZitat (DerTommy22: 29. Juli 2012 - 18:46)


Schweinkram? Exceptions sind Warnungen-/Fehlermeldungen bei inkorrekten Werten...



Ja dann schreib doch einfach Warnmeldungen. In einem normalen Text alles mit Fremdwörtern vollballern, wo es genügend verständliche Entsprechungen gibt aber Programmcode genau deswegen unlogisch finden. Na das sind mir die Richtigen.
Bauernregel: Regnets mächtig im April, passiert irgendwas, was sich auf April reimt.
0

#30 Mitglied ist offline   DerTommy22 

  • Gruppe: aktive Mitglieder
  • Beiträge: 202
  • Beigetreten: 05. Januar 12
  • Reputation: 17

geschrieben 29. Juli 2012 - 19:36

Zitat

Ahja und das Python das falsch macht, soll mir jetzt beweisen, dass PHP unlogisch ist. Das ist aber dann schon höhere Beweisführung
Ähm, wie kommst du auf das schmale Brett, das Python hier irgendwas falsch machen würde?

Zitat

Ja dann schreib doch einfach Warnmeldungen. In einem normalen Text alles mit Fremdwörtern vollballern, wo es genügend verständliche Entsprechungen gibt aber Programmcode genau deswegen unlogisch finden.
Ähm2, die Welt der Programmierung spricht englisch, in jedem Fachbuch, selbst den deutschen, steht exception(s), in den meisten (mir bekannten) Sprachen werden die mit eben diesem Schlüsselwort abgefangen, ...

Irgendwie werd ich so langsam das Gefühl nicht mehr los, das du mich hier veräppeln willst :(
@EA Sports: Ich will wieder Hallenfußball ala FIFA98 :(
0

Thema verteilen:


  • 3 Seiten +
  • 1
  • 2
  • 3

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0