Methoden mit bool-Parametern und "Lesbarkeit" im Kontext
-
Was macht ihr da? Ihr wollt Code schreiben um irgendwelche Sachen auszurechnen und vom Compiler Fehlermeldungen, wenn die Einheiten nicht passen? Ich hab noch nie eine größere Anwendung geschrieben, die sowas macht, aber ich denke die Formeln sind beim schreiben des Programms doch bekannt. Also ich würde mir nicht irgendwelche Klassen für Spannung Strom usw.. machen und mit denen dann rechnen, dass ist doch viel zu langsam. Wenn ich irgendwelche Echtzeitberechnungen machen muss, würde ich das direkt int den Code schreiben mit int und/oder double und die Einheit erst bei der Anzeige (falls vorhanden) hinschreiben. Wenn ich ein Formelnbastelprogramm schreiben will, dann könnte man sowas machen, aber da stell ich es mir viel zu Aufwendig vor, bis ich alle Kombinationen habe. Hat von euch schon einer ein Programm geschrieben, dass viele Berechnungen macht und denn Code so geschrieben, dass es Compilerfehler gibt, wenn man falsche Formeln baut (nicht für sich privat)?
-
Xin, dass ich von Typsicherheit keine Ahnung habe kam von dir - ich habe es lediglich wiederholt. Lies deine Posts bei Zeiten mal

Und ich nenne dich ja auch nicht ein dummes kleines Kind weil du eine andere Meinung hast als die Forengrößen. Es ist dein gutes Recht eine andere Meinung zu haben. Aber genauso ist es unser Recht ebenfalls anderes zu denken als du. Deshalb wäre es sehr schön wenn nicht alles gleich Kindergarten ist oder sowieso von garnix eine Ahnung hat, was nicht deine Meinung vertritt.
Das Problem für mich ist, dass du alle Fehler als "Schuld vom Programmierer" abstempelst. Das ist es zwar auch, aber es geht darum dem Programmierer bei der Fehlersuche zu helfen. Die Fehlermeldungen der Compiler sind super dafür. Sie sind nicht die besten der Welt - aber ich kenne jetzt spontan keine Plattform die mir deutlich bessere Fehlerbeschreibungen bringen als die modernen C++ Compiler.
Unser Ziel ist es, korrekte Software zu schreiben. Wir tun deshalb alles was in unserer Macht steht um Fehler zu verhindern. Fehler passieren aber - jede Software ist Fehlerhaft. Es geht nun darum die Fehler so gering wie möglich zu halten. Jeder Programmierer macht Fehler. Jedes Tool dass wir dem Programmierer geben um die Fehlerquote zu reduzieren ist Gold Wert.
Dein Ansatz verhindert keine Fehler. Natürlich sind Fehler immer Fehler und somit Schuld des Programmierers - aber es ist lächerlich zu behaupten, dass der Programmierer einfach keine Fehler machen soll. Denn die wird er machen. Typsicherheit soll nun dem Programmierer helfen weniger Fehler zu machen - indem unlogische Operationen wie "kilogramm - meter" nicht erlaubt sind. Du erlaubst sie aber und hast dadurch eine potenzielle Gefahrenquelle.
In C++ ist es generell so, dass der Weg weg von operator int und hin zu non-explicit CTor geht. std::string hat keinen operator char* aber eine Methode c_str() für die Fälle wo es mal nötig ist. Weiters hat er einen non-explicit CTor für char*. Natürlich ist std::string nicht das beste Beispiel für gutes Klassendesign - aber jede gute String Klasse wird so arbeiten.
Denn operator int ist problematisch. Es wird dadurch nämlich eine Art "ist-ein" Beziehung gebaut, die nicht vorhanden sein sollte. Es mag zwar logisch klingen zu sagen, ein Meter ist ein int. Aber das ist ein Trugschluss. Wenn Meter ein int wäre - dann wäre Meter eng mit Celsius verwandt. Tatsächlich haben Meter und Celsius miteinander aber nichts am Hut. Sie haben beide nur zufällig eine Beziehung zu int.
Durch den operator int sind beide aber plötzlich miteinander eng verbunden und können Operationen aufeinander ausführen die der Programmierer ursprünglich garnicht wollte. Das kann zu Problemen führen.
Wenn man den operator int einfach nicht anbietet für diese beiden Typen, spart man sich diese ganzen Probleme.
Auch non-explicit CTors sollten mit Bedacht eingesetzt werden, da sie ebenfalls Typkonvertierungen sind - aber im Gegensatz zu operator int findet kein Verlust der Typinformationen statt. In den meisten Situationen macht es wenig Unterschied ob ich einen explicit oder non-explicit CTor habe. Denn wenn "foo=bar;" nicht geht, weil ich einen Fehler bekomme kann ich einfach "foo=Foo(bar);" schreiben und schon ist der Fehler weg. Es gibt nur wenige Situationen mit Überladung wo ein non-explicit CTor Probleme bereitet. Dafür ist er in vielen Situationen unheimlich praktisch:
Meter m(7); m+=3;ich brauche hier keinen operator += für int definieren - der operator+= für Meter reicht. Das reduziert den nötigen Code.
Weiters kann man
Millimeter mm(convertMeter2Millimeter(12));und ähnliches schreiben ohne nochmal explizit Meter(12) schreiben zu müssen. Die hält den Code schlanker und ist lediglich dann relevant wenn convertMeter2Millimeter eine Überladung für int hat die etwas anderes macht als die Überladung für Meter.
Es geht dabei eigentlich nur darum sich so gut es geht gegen Murphy zu schützen. Oberstes Prinzip bei der Programmierung ist: es muss funktionieren. Wenn es nicht funktioniert kann es noch so schön, elegant, schnell oder sonstwas sein - es ist wertlos. Deshalb sollte jeder Programmierer so weit es ihm möglich ist alle eventualitäten Abfangen die Fehler produzieren können. Denn der Code wird Fehler enthalten - die Programmierer die damit arbeiten müssen werden Fehler rein machen. Es liegt nun an uns unseren Code so zu gestalten, dass es möglichst schwer wird Fehler unabsichtlich einzubauen.
Zu erlauben "Meter - Brot" zu rechnen ist ganz witzig, aber es zu verbieten verhindert schonmal viele Tippfehler.
Deine Methode verbietet zum Beispiel ein
Meter m; Brot b; Kilogramm k; m=b*k;Aber sie verbietet auch ein:
m=2*10;also gewöhnt man sich sowieso an
m=Meter(x);zu schreiben und da du einen CTor für int hast - hast du wieder ein Problem. Non-explicit CTors schützen nicht vor ungewollten Konvertierungen wenn man einen operator int anbietet.
Deshalb ist das Argument, dass "m=k*b;" nicht geht sehr fragwürdig. Denn genausowenig geht ein "m=m+10*millimeter;" oder andere sinnvolle Konstrukte. Man wird also oft einfach den expliziten Weg gehen und damit deine Sicherung ungewollt aushebeln.
Oder anders ausgedrückt:
m=a+b;liefert mir die Meldung dass die Konvertierung von int nach Meter nur explizit möglich ist - erste Aktion von mir:
m=Meter(a+b);und schon ist das Problem umgangen - ich habe aber einen Fehler eingebaut, den ich so wunderschön vertuscht habe. Der Compiler meldet mir ja extra "Konvertierung implizit nicht möglich". Dass das Problem woanders liegt, fällt kein bisschen auf. Genau das ist problematischer Code.
-
Xin schrieb:
Theston schrieb:
Meiner Ansicht nach dürfte nur
cos_alpha = Meter/Kilogramm*Meter*Kilogrammlegal sein, denn nur das hat physikalisch einen Sinn.
Grüße vom Planeten Erde!
So langsam wird mir hier einiges klar. Das Forum muss also ein Tor in ein anderes Universum mit anderen Naturgesetzen darstellen...
Sehr gut, dass du dich an Tippfehlern aufziehst, man merkt, du hasts drauf!
-
Hallo
Xin schrieb:
Grüße vom Planeten Erde!
So langsam wird mir hier einiges klar. Das Forum muss also ein Tor in ein anderes Universum mit anderen Naturgesetzen darstellen...
Xin schrieb:
Danke für's Mitspielen, leider nicht gewonnen.
Dein Posting fiel aber durch besonderen Unterhaltungswert positiv auf.
Xin schrieb:
Was man so hört. Keine Sorge, Du musst ihn nicht wieder erstellen. Die älteren Leute gucken mal durch den Zaun auf den Spielplatz und gehen weiter.
Für Xin: Nur mal eine Zusammenfassung deiner Art in nur einem Posting. Vielleicht solltest du wirklich langsam anfangen auch dein eigenes Verhalten nicht als unfehlbar einzuschätzen. Du regst dich auf, dass du nicht ernst genommen wirst und lässt hier eine dermaßen überhebliche Art durchscheinen. Keine Ahnung, ob es hilft, aber sie es als konstruktive Kritik.
chrische
-
Shade Of Mine schrieb:
aber ich kenne jetzt spontan keine Plattform die mir deutlich bessere Fehlerbeschreibungen bringen als die modernen C++ Compiler.
na, nun übertreib' mal nicht. ein C++ compiler macht doch bloss statische code checks, und oft sind die fehlermeldungen alles andere als gut.
das kann z.b. http://www.splint.org/ viel besser, ist für 'C++' aber nur bedingt einsetzbar.
bei sprachen, die eine weniger wirre syntax als C++ haben, sind solche automatischen überprüfungen ohnehin einfacher. kennst du vielleicht 'IntelliJ IDEA'? es ist schon faszinierend, was das teil an potentiellen fehlerquellen aufdecken kann.

-
Undertaker schrieb:
Shade Of Mine schrieb:
aber ich kenne jetzt spontan keine Plattform die mir deutlich bessere Fehlerbeschreibungen bringen als die modernen C++ Compiler.
na, nun übertreib' mal nicht. ein C++ compiler macht doch bloss statische code checks, und oft sind die fehlermeldungen alles andere als gut.
das kann z.b. http://www.splint.org/ viel besser, ist für 'C++' aber nur bedingt einsetzbar.
bei sprachen, die eine weniger wirre syntax als C++ haben, sind solche automatischen überprüfungen ohnehin einfacher. kennst du vielleicht 'IntelliJ IDEA'? es ist schon faszinierend, was das teil an potentiellen fehlerquellen aufdecken kann.

Lass uns doch bitte in Ruhe mit deinem lächerlichen Kreuzzug gegen C++.
-
rüdiger schrieb:
ROFL Das ist gut. Damit kannst du glaube ich jeden Physiker mit vor lachen vom Stuhl hauen. Falls der Beitrag kein Spaß war, würde ich dir aber mal zum lesen eines Physik Buches (da reicht was simples, ist ja ein sehr grundlegendes und einfaches Thema) raten.
Ein bißchen weiter gelesen und Du hättest gemerkt, dass Du kalten Kaffee aufwärmst. Was CStoll da erklärt hat ist mir bis jetzt unverständlich, Jester glaubt, dass er Spannung und Volt unterscheiden möchte, was ich für sehr gut möglich halte, aber für irrelevant bei Typsicherheit. CStoll äußerte ein "Du kapierst es nicht" und wird das Geheimnis was er erklärte wohl mit ins Grab nehmen.
merker schrieb:
Xin schrieb:
Falsch, ergibt Unit, konvertierbar auf typlos.
Sowas erschwert nur die Strategie zur Aufspürung logischer Fehler im Programm. Finde mal heraus, welches Objekt die Daten versemmelt haben könnte.
??
Okay... ich gebe zu, dass ich gewisse Grundfähigkeiten als Voraussetzung ansehe, z.B. eine Expression zu debuggen, die inkompatible Typen aufweist. Ist ja nicht so, als wäre das ein Problem, dass in C++ sonst nie auftreten würde...Shade 0f Mine schrieb:
Ich hab noch nie eine größere Anwendung geschrieben, die sowas macht, aber ich denke die Formeln sind beim schreiben des Programms doch bekannt. Also ich würde mir nicht irgendwelche Klassen für Spannung Strom usw.. machen und mit denen dann rechnen, dass ist doch viel zu langsam.
...
Shade 0f Mine schrieb:
Hat von euch schon einer ein Programm geschrieben, dass viele Berechnungen macht und denn Code so geschrieben, dass es Compilerfehler gibt, wenn man falsche Formeln baut (nicht für sich privat)?
Yepp, habe ich.
Shade Of Mine schrieb:
Xin, dass ich von Typsicherheit keine Ahnung habe kam von dir - ich habe es lediglich wiederholt. Lies deine Posts bei Zeiten mal

Ich weiß das schon... aber Du schriebst dass Du keine Ahnung hast, nicht dass ich Dir das zuschreiben würde. Weiterhin hast Du anschließend einen netten Beweis hingelegt, dass Du keine Ahnung hast.
Vergleiche mal Dein den Ausschnitt aus Deinem letzten Posting, dass ich hier mit "..." kommentiert habe.
Ich halte Dich nicht für unfähig, aber es fällt stark auf, dass Du Dich bei diesem Thema im Grenzbereich Deiner Kenntnisse bewegst.
Und da Du keine Fragen stellst, sondern Feststellungen triffst, die Du bestenfalls vom Forumskindergarten bestätigt bekommst, macht das ganze einfach keinen guten Eindruck.Shade Of Mine schrieb:
Das Problem für mich ist, dass du alle Fehler als "Schuld vom Programmierer" abstempelst. Das ist es zwar auch,
Es ist ein Problem für Dich, dass ich das Problem korrekt erkannt habe... geile Argumentation

Wäre ich Deiner Meinung, wäre die Diskussion auch viel einfacher für Dich... kann ich schon nachvollziehen.Shade Of Mine schrieb:
aber es geht darum dem Programmierer bei der Fehlersuche zu helfen. Die Fehlermeldungen der Compiler sind super dafür. Sie sind nicht die besten der Welt - aber ich kenne jetzt spontan keine Plattform die mir deutlich bessere Fehlerbeschreibungen bringen als die modernen C++ Compiler.
Die alten Compiler.
Der Compiler des SAS-Institute wird seit über 10 Jahren nicht mehr entwickelt, aber die Fehlermeldungen waren punktgenau und die Beschreibung häufig so exakt und gut erklärt, dass ich mich häufig ärgerte, dass der Compiler den Fehler nicht einfach selbst korrigiert.
Für den GCC habe ich auf der Homepage eine kleine Ecke mit Übersetzungen von unverständlichen Compilermeldungen und mir schrieb mal jemand ein Dankeschön, weil er die Fehlermeldungen auch erst durch meine HP entschlüsseln konnte.
Die Fehlermeldungen des GCC und des MSVC sind unterirdisch schlecht.
Ich nehme mir für das Fehlermeldungen meines Compilers etwas mehr Zeit und kann aus Erfahrung sagen, dass es kein Problem ist, hier mehr zu leisten.Shade Of Mine schrieb:
Unser Ziel ist es, korrekte Software zu schreiben. Wir tun deshalb alles was in unserer Macht steht um Fehler zu verhindern.
Wen bezeichnest Du denn mit "wir"? "Ihr", die gegen Xin texten?
Mit der Typsicherung habe ich hier angefangen und CStoll kritisierte es.
"Ihr" habt alles in eurer Macht stehende getan, um gegen etwas zu sein, was praktisch handhabbar ist. Das dann als "wir tun alles um Fehler zu verhindern" zu verkaufen, zeugt von einem gesunden Selbstbewußtsein.Shade Of Mine schrieb:
Denn operator int ist problematisch. Es wird dadurch nämlich eine Art "ist-ein" Beziehung gebaut, die nicht vorhanden sein sollte. Es mag zwar logisch klingen zu sagen, ein Meter ist ein int. Aber das ist ein Trugschluss. Wenn Meter ein int wäre - dann wäre Meter eng mit Celsius verwandt. Tatsächlich haben Meter und Celsius miteinander aber nichts am Hut. Sie haben beide nur zufällig eine Beziehung zu int.
Das haben wir schon als Geschmackssache erledigt.
Beides sind Zahlenwerte mit Zahlen darf man meiner Überzeugung arbeiten, mit Einheiten nicht.
Das ist (immernoch) kein Gefahrenpotential, weil man kann diese Zahlen nicht einfach so zuweisen.Shade Of Mine schrieb:
Auch non-explicit CTors sollten mit Bedacht eingesetzt werden, da sie ebenfalls Typkonvertierungen sind - aber im Gegensatz zu operator int findet kein Verlust der Typinformationen statt. In den meisten Situationen macht es wenig Unterschied ob ich einen explicit oder non-explicit CTor habe.
Richtig. Der Punkt ist, dass genau hier eine Situation ist, wo es nicht nur wenig Unterschied macht.
Es entscheidet zwischen typsicher und nicht typsicher.
Es macht den Unterschied.Shade Of Mine schrieb:
Denn wenn "foo=bar;" nicht geht, weil ich einen Fehler bekomme kann ich einfach "foo=Foo(bar);" schreiben und schon ist der Fehler weg. Es gibt nur wenige Situationen mit Überladung wo ein non-explicit CTor Probleme bereitet. Dafür ist er in vielen Situationen unheimlich praktisch:
Meter m(7); m+=3;ich brauche hier keinen operator += für int definieren - der operator+= für Meter reicht. Das reduziert den nötigen Code.
Meter m(7); m += array.GetIndex( Element );Worum ging die Diskussion noch gleich? Typsicherheit?

Shade Of Mine schrieb:
Weiters kann man
Millimeter mm(convertMeter2Millimeter(12));und ähnliches schreiben ohne nochmal explizit Meter(12) schreiben zu müssen. Die hält den Code schlanker
Super, gleich mit redundanten Klassen nochmal einen nachlegen und das dann auch noch als schlanken Code bezeichnen.
Die Situation erinnert mich an einen Dreijährigen, der sich verbotenerweise ein Bonbon geklaut hat und nun mit vollen Mund nuschelt, dass er kein Bonbon genommen hat, während das Papier in seinen Fingern raschelt.
Es hilft nicht, einen Fehler mit einem anderen auszutauschen. Eine sinnvollere Lösung für den Wunsch mit Millimetern zu arbeiten, findest im Thread.
Shade Of Mine schrieb:
Deine Methode verbietet zum Beispiel ein
Meter m; Brot b; Kilogramm k; m=b*k;Aber sie verbietet auch ein:
m=2*10;also gewöhnt man sich sowieso an
m=Meter(x);zu schreiben und da du einen CTor für int hast - hast du wieder ein Problem. Non-explicit CTors schützen nicht vor ungewollten Konvertierungen wenn man einen operator int anbietet.
Das kann passieren.
C++ setzt Grenzen. Ein expliziter Konstruktor ist ein Gefahrenhinweis. Wer darüber unbesorgt hinweggeht, weil 'hat ja immer geklappt', den kann und will ich in C++ nicht beschützen.
Wenn er es verkehrt gemacht hat, wird er nicht behaupten, dass es immer geklappt hat.Menschen sind dumm, aber sie in Watte zu packen, lässt sie total verdummen.
Shade Of Mine schrieb:
Oder anders ausgedrückt:
m=a+b;liefert mir die Meldung dass die Konvertierung von int nach Meter nur explizit möglich ist - erste Aktion von mir:
m=Meter(a+b);und schon ist das Problem umgangen
Als Du geschrieben hast, dass Du ja keine Ahnung hast, klang das wenigstens noch intelligent.
Wenn das Deine erste Reaktion ist, dann werde bitte niemals professioneller Entwickler.Debuggen bedeutet nicht Symptome zu bekämpfen, sondern Fehler zu entfernen, so dass keine Symptome auftreten. Es geht nicht darum den Compiler zufrieden zu stellen, sondern den Kunden.
Deine erste Reaktion sollte also nicht sein, den Compiler zum schweigen zu bringen, sondern Dich zu fragen, warum der Compiler meckerte. Bevor Du das nicht genau verstanden hast, änderst Du an dem Code überhaupt nichts, um auf keinen Fall zu riskieren, dass Du die Fehlermeldung verlierst.Theston schrieb:
Xin schrieb:
Theston schrieb:
Meiner Ansicht nach dürfte nur
cos_alpha = Meter/Kilogramm*Meter*Kilogrammlegal sein, denn nur das hat physikalisch einen Sinn.
Grüße vom Planeten Erde!
So langsam wird mir hier einiges klar. Das Forum muss also ein Tor in ein anderes Universum mit anderen Naturgesetzen darstellen...
Sehr gut, dass du dich an Tippfehlern aufziehst, man merkt, du hasts drauf!
Gerne doch.
Wieso gehst Du nicht darauf auf die Zeile ein, wo ich Dir leider vorrechnen muss, dass Meter/Meter (wenn ich Deinen Tippfehler also korrigiere) im Template leider immernoch typlos ist, Deinem Posting also komplett die Grundlage fehlt?
Warum regst Du Dich darüber auf, dass man sich über Deine Fehler amüsiert, aber nicht darüber, dass Du meine Zeit verschwendest, weil Du nicht nachgedacht hast, bevor Du etwas gepostet hast, was nicht mehr als einen Tippfehler enthielt?Du hattest Deinen Spaß, als Du mir zeigen konntest, dass meine Lösung zu blöd ist Meter/Meter von typlos zu unterscheiden und ich hatte meinen Spaß Dein Posting als sinnfrei entlarvt in der Luft zu zerreißen.
Wir hatten beide unseren Spaß, damit ist die Sache doch fair.
Wenn Du Angst hast, dass ich mir aus Dir einen Spaß mache oder ernst genommen werden möchtest, dann schreib doch einfach etwas Entsprechendes.Hier wird soviel Sch.... gepostet und dann erklärt, dass das auch noch ein Argument ist und ob Du das als Beleidigung auffasst oder nicht - was Du gepostet hast hatte auch nicht mehr Wert, wenn es keinen Tippfehler hätte. Durch den Tippfehler war es wenigstens noch amüsant.
chrische5 schrieb:
Nur mal eine Zusammenfassung deiner Art in nur einem Posting. Vielleicht solltest du wirklich langsam anfangen auch dein eigenes Verhalten nicht als unfehlbar einzuschätzen. Du regst dich auf, dass du nicht ernst genommen wirst und lässt hier eine dermaßen überhebliche Art durchscheinen. Keine Ahnung, ob es hilft, aber sie es als konstruktive Kritik.
Ich stehe hier seit bald 30 Seiten im Kreuzfeuer und jeder postet hier ohne 2 Sekunden nachzudenken wertlose Argumente. Was Shade da grade "argumentiert" ist alles, abgesehen von Typsicherung.
Theston ist dafür ein schönes Beispiel - guckt sich das Template nicht an, behauptet, dass es Meter/Meter abbildet, baut auch noch einen Tippfehler ein, der dazu führt, dass es nur physikalisch Sinn macht, Winkel in Quadratmetern zu messen und wundert sich dann, dass ich ihn nicht für voll nehme?
Ich soll hier brav eine Antwort schreiben. Das habe ich jetzt 25 Seiten gemacht. Ich bin keine kostenlose Servicenummer.Seit 15 Seiten kippt jeder hier mal seinen geistigen Abfall rein und erwartet, dass ich mir die Zeit nehme, das freundlich lächelnd wieder sauberzu machen und dabei nichts äußere, was Kritik vermuten lässt.
Wer den Mut hat, ohne zu denken zu posten, muss auch ertragen, wenn er dafür nicht in den Himmel gelobt wird.
Wenn es überheblich ist, auf Denkfehler hinzuweisen und Texte, die bereits vor 20 Seiten Seiten erklärt wurden nur noch zu in der Luft zu zerreißen, dann ist es halt so. Eine Diskussion ist nunmal nicht möglich in dem man Gegenargumente analysiert und anschließend auseinandernimmt oder anerkennt. Ich nehme hier mehr auseinander als ich anerkenne. Würde hier nicht soviel Unsinn behauptet, könnte ich mehr anerkennen und ich würde nicht so überheblich wirken. Leider kann ich die Qualität der Beiträge nicht steuern.
Wer werden hier aber auch nicht mehr weiterkommen, wir bewegen uns an einer Grenze von C++.
Wir haben das, was ich vorgeschlagen habe, als Grenze des praktisch machbaren, vor ~15 Seiten im Detail durch Unit verbessert. Wir haben CStolls Klassen, die gleichwertig sind. Er macht das gleiche wie ich, er erzeugt sie nur über ein Template. Ich habe nie verboten, meine Klassen per Template zu erzeugen.
Wir haben eine theoretisch perfekte Lösung.
Es gibt Gründe, warum ich eine eigene Programmiersprache schreibe und das ist nunmal, dass C++ auch hier Grenzen setzt, die ich gerne überschreiten möchte, weil ich mit den Lösungen hier auch nicht zufrieden bin.
Aber mehr haben wir nicht und mehr können wir in C++ nicht erreichen, ob "ihr" nun davon begeistert seid oder nicht.
-
Mr. N schrieb:
Undertaker schrieb:
Shade Of Mine schrieb:
aber ich kenne jetzt spontan keine Plattform die mir deutlich bessere Fehlerbeschreibungen bringen als die modernen C++ Compiler.
na, nun übertreib' mal nicht. ein C++ compiler macht doch bloss statische code checks, und oft sind die fehlermeldungen alles andere als gut.
bei sprachen, die eine weniger wirre syntax als C++ haben, sind solche automatischen überprüfungen ohnehin einfacher.Lass uns doch bitte in Ruhe mit deinem lächerlichen Kreuzzug gegen C++.
Ich halte C++ für die beste Sprache am Markt.
Für die syntaktische und semantische Analyse ist sie allerdings wirklich nicht optimal ausgelegt.
-
Xin schrieb:
Mr. N schrieb:
Undertaker schrieb:
Shade Of Mine schrieb:
aber ich kenne jetzt spontan keine Plattform die mir deutlich bessere Fehlerbeschreibungen bringen als die modernen C++ Compiler.
na, nun übertreib' mal nicht. ein C++ compiler macht doch bloss statische code checks, und oft sind die fehlermeldungen alles andere als gut.
bei sprachen, die eine weniger wirre syntax als C++ haben, sind solche automatischen überprüfungen ohnehin einfacher.Lass uns doch bitte in Ruhe mit deinem lächerlichen Kreuzzug gegen C++.
Ich halte C++ für die beste Sprache am Markt.
Für die syntaktische und semantische Analyse ist sie allerdings wirklich nicht optimal ausgelegt.Trotzdem passen Undertakers willkürliche C++-Feindseligkeiten nicht hier her. Hier darfst nur du (Xin) rumpöbeln! :p
-
Xin schrieb:
Ich halte C++ für die beste Sprache am Markt.
Für die syntaktische und semantische Analyse ist sie allerdings wirklich nicht optimal ausgelegt.

-
Mr. N schrieb:
Xin schrieb:
Mr. N schrieb:
Undertaker schrieb:
Shade Of Mine schrieb:
aber ich kenne jetzt spontan keine Plattform die mir deutlich bessere Fehlerbeschreibungen bringen als die modernen C++ Compiler.
na, nun übertreib' mal nicht. ein C++ compiler macht doch bloss statische code checks, und oft sind die fehlermeldungen alles andere als gut.
bei sprachen, die eine weniger wirre syntax als C++ haben, sind solche automatischen überprüfungen ohnehin einfacher.Lass uns doch bitte in Ruhe mit deinem lächerlichen Kreuzzug gegen C++.
Ich halte C++ für die beste Sprache am Markt.
Für die syntaktische und semantische Analyse ist sie allerdings wirklich nicht optimal ausgelegt.Trotzdem passen Undertakers willkürliche C++-Feindseligkeiten nicht hier her. Hier darfst nur du (Xin) rumpöbeln! :p
oh nein, leidest du jetzt auch unter verfolgungswahn?

ich hab' nur shady's aussage kommentiert, weil ich der meinung bin, dass C++'s teilweise groteske syntax nicht gerade eine einfache fehlererkennung zulässt. es hatte weder etwas mit feindseligkeiten noch 'nem kreuzzug zu tun. du weisst sicher selbst, wie leicht man einen C++ compiler überfordern kann und welche undurchsichtigen fehlermeldungen von solchen compilern manchmal produziert werden.

-
Undertaker schrieb:
groteske syntax
Jaja einfach mal sich die mühe machen die sache zu verstehen und schon gibt es keine problemen mehr. Wobei ich lieber syntax als maskulinum sehen würde: Der syntax hört sich doch besser an als die syntax... Wo sind wir denn? Naja mal abgesehen von dem oberen bedeutungsfreien text, kann ich dir mit grotesk z.B. bei der std lib teilweise zustimmen. std::tütü<std::allocator<std::useless_template<int>>> : public std::char_traits<std::self<templates_are_complicated<int>>
{
typedef riesen_gewäsch<this> that;
};Da kann ich nur sagen: Viele danke, ich war auch auf universität
-
Undertaker schrieb:
Mr. N schrieb:
Xin schrieb:
Mr. N schrieb:
Undertaker schrieb:
Shade Of Mine schrieb:
aber ich kenne jetzt spontan keine Plattform die mir deutlich bessere Fehlerbeschreibungen bringen als die modernen C++ Compiler.
na, nun übertreib' mal nicht. ein C++ compiler macht doch bloss statische code checks, und oft sind die fehlermeldungen alles andere als gut.
bei sprachen, die eine weniger wirre syntax als C++ haben, sind solche automatischen überprüfungen ohnehin einfacher.Lass uns doch bitte in Ruhe mit deinem lächerlichen Kreuzzug gegen C++.
Ich halte C++ für die beste Sprache am Markt.
Für die syntaktische und semantische Analyse ist sie allerdings wirklich nicht optimal ausgelegt.Trotzdem passen Undertakers willkürliche C++-Feindseligkeiten nicht hier her. Hier darfst nur du (Xin) rumpöbeln! :p
oh nein, leidest du jetzt auch unter verfolgungswahn?

ich hab' nur shady's aussage kommentiert, weil ich der meinung bin, dass C++'s teilweise groteske syntax nicht gerade eine einfache fehlererkennung zulässt. es hatte weder etwas mit feindseligkeiten noch 'nem kreuzzug zu tun. du weisst sicher selbst, wie leicht man einen C++ compiler überfordern kann und welche undurchsichtigen fehlermeldungen von solchen compilern manchmal produziert werden.

Verfolgungswahn? Nein, ich weiß nur, (a) wie deine Meinung zu C++ ist und (b) dass du keine Ahnung von C++ hast. Du kannst gerne versuchen, über Typsicherheit mitzudiskutieren, aber ich glaube, das ist nicht dein Interesse. Über die Typsicherheit von anderen Sprachen möchte ich zumindest an dieser Stelle nicht diskutieren. Sorry.
-
so n schei* schrieb:
ich les hier nix mehr ist doch nur müll
Och komm ein bisscehn optimismus hat doch noch niemanden geschadet
Und xin bitte verzeihe mir mein ungebühliches einfach-als-unreg-schreibendes verhalten, es tut mir ja sooo leid, aber der borherige post von shade war doch sehr überzeugend oder etwa nicht?
-
Und Undertaker und MrN:
Bitte nich in die haare kriegen, ich seid doch so nette leute.
Herr Undertaker mag kein C++,
Mister Moe jedoch sehr,
Undertaker sagt MrN hat nen Schuss,
dabei holt sich MrN ein gewehrund weiter will ich mal nicht fortführen...
-
Xin schrieb:
rüdiger schrieb:
ROFL Das ist gut. Damit kannst du glaube ich jeden Physiker mit vor lachen vom Stuhl hauen. Falls der Beitrag kein Spaß war, würde ich dir aber mal zum lesen eines Physik Buches (da reicht was simples, ist ja ein sehr grundlegendes und einfaches Thema) raten.
Ein bißchen weiter gelesen und Du hättest gemerkt, dass Du kalten Kaffee aufwärmst. Was CStoll da erklärt hat ist mir bis jetzt unverständlich, Jester glaubt, dass er Spannung und Volt unterscheiden möchte, was ich für sehr gut möglich halte, aber für irrelevant bei Typsicherheit. CStoll äußerte ein "Du kapierst es nicht" und wird das Geheimnis was er erklärte wohl mit ins Grab nehmen.
Wenn es irrelevant für Typsicherheit ist, dann nimm doch bitte keine Maßeinheiten als Vorlage, wenn du sie nicht verstehst. Was CStoll gesagt hat war übrigens sehr eindeutig. Es ist auch einfach kein Geheimnis was er schreibt, das steht in jedem (Schul-)Physik-Buch.

-
Xin schrieb:
merker schrieb:
Sowas erschwert nur die Strategie zur Aufspürung logischer Fehler im Programm. Finde mal heraus, welches Objekt die Daten versemmelt haben könnte.
Okay... ich gebe zu, dass ich gewisse Grundfähigkeiten als Voraussetzung ansehe, z.B. eine Expression zu debuggen, die inkompatible Typen aufweist.
Ist ja nicht so, als wäre das ein Problem, dass in C++ sonst nie auftreten würde...Logische Fehler findet man aber nicht in einzelnen Zeilen. Die (mögliche) Kombination der Zeilen ist immer der Fehler.

-
Wozu Fehler vermeiden, wenn man doch debuggen kann?

-
fxgdfgfdg schrieb:
Undertaker schrieb:
groteske syntax
Jaja einfach mal sich die mühe machen die sache zu verstehen und schon gibt es keine problemen mehr.
naja, aber dadurch wird die sache auch nicht besser

Mr. N schrieb:
Du kannst gerne versuchen, über Typsicherheit mitzudiskutieren, aber ich glaube, das ist nicht dein Interesse.
richtig. ich hab' nur ein bestimmtes statement herausgepickt und kommentiert.
Mr. N schrieb:
Über die Typsicherheit von anderen Sprachen möchte ich zumindest an dieser Stelle nicht diskutieren. Sorry.
ich auch nicht. ich schrieb was von zusatz-tools, die codes nach fehlern durchsuchen können und die machen einen besseren job als compiler (deshalb gibt es diese tools ja auch).
äääh, dazu fällt mir gerade ein: vielleicht wird von euch typsicherheit ein klein wenig überbewertet.aber nun - zurück zum thema...

-
fxgdfgfdg schrieb:
Wobei ich lieber syntax als maskulinum sehen würde: Der syntax hört sich doch besser an als die syntax...
komsmt du aus österreich oder wat? der syntax? *kopfschüttel*eh
