JAVA, C++, Delphi - IT-Klasse
-
volkard schrieb:
Und ich bin noch nichtmal Verfechter von SESE, wie willst du also mit so einem Beispiel überhaupt irgendwen überzeugen?
ich versteh nicht, warum du den SESE-code nicht für total häßlich hältst.
Ich finde ihn häßlich, aber nicht so übermäßig, dass mich das überzeugen würde, wenn ich SESE für eine gute Idee halten würde.
Wenn es je einen gab, warum gibts den dann nicht mehr?
weil wir sutter gelesen haben und exceptionsicheren code bauen. falls die funktion SESE braucht, dann wegen close oder delete oder sowas am exit-point. so code ist aber sicher nicht exceptionsicher. machen wir ihn sicher durch destruktoren, und wenn's als auto_ptr ist, dann gibt es keinen grund für SESE mehr. da die funktion überall durch eine exception verlassen werden kann, kann sie auch überall durch return verlassen werden.
Da brauchst du gar nicht bis Sutter ausholen. Code, der Exceptions nutzt, ist im Allgemeinen prinzipiell nicht SESE.
Was hältst du hier von (das ist nach echtem Code):
int foobar() { int result = 0; if (f) { result = blablub ... if (result) { result = blublub ... if (result == 1) { if (was anderes) { Buffer = malloc(irgendwas); if (Buffer) { result = blubdiwub if (result == l) { blabla if (quux) { .... } else { // handle error ... } } else { // handle error ... } free(Buffer); } else { // handle error ... } } //etc.
Da hat jemand SESE zur obersten Maxime gemacht und sich nichts dabei gedacht, dass der Code nicht mehr schmerzfrei lesbar war.
-
Hi
Sorry mein Fehler. Hab mich verschrieben es sind die MISRA regeln. Das Document das du gefunden hast meinte ich eigentlich nicht. Es gibt auch ein Regelwerk speziel für c. C ist nicht C++ somit nicht vergleichbar und mein Fehler.
Ich persönlich find SESE eine nette Idea die ihre daseinsberechtigung hat. Das wichtigste sollte aber sein das der Code lesbar bleibt.
gruss Termite
-
Also da ich auch mal Info-Grunzkurs hatte, hier mal meine persönlichen Erfahrungen:
Wir haben angefangen mit Delphi, das wir bis zum Ende der 12. gemacht haben wenn mich net alles trügt. Dann Lehrerwechsel und die Frage was machen wir, einer (Schüler) schlug html vor, der Lehrer wollte bissl Linux-Grundlagen machen, irgendwer erwähnte Applets und weil ich auf den ganzen Webkrams keinen Bock hatte hab ich dann nur Java durchgeboxt, irgendwie... (Ich hatte vorher schon n guten Batzen Progerfahrung, u.a. Java)
Wie schlug sich also der Grunzkurs in den Disziplinen Delphi und Java?
Delphi:
Grausam, einfach grausam... Angefangen mit der Tatsache das 90% der Schüler 90% ihrer Zeit mit dem herumschieben und basteln von schicken Fenstern beschäftigten, um dann ihren "button_click" Source von irgendwem zu kopieren oder von Vorlagen abzutippen, hin zur totalen verstümelung von Quelltext (ich durfte ja als etwas Fähigerer helfen). Naja, ich glaube in den 2 Jahren oder so hat nur durch Delphi + Unterricht keiner was gelernt, nichtmal den Segen den tab bringen kann...
Java:
Da wir in Java keine GUI's gemacht haben, sondern alles über Konsole wars hier schon etwas besser... Ich hab zwar n referat am Anfang zu OOP gehalten, aber das hat eigentlich nur gezeigt, dass das Thema recht anspruchsvoll ist vom Konzept herPersönlich würd ich sagen nehmt Python (hab das vor n paar Tagen entdeckt als ich mich mit bash-scripts beschäftigt hatte (#!/usr/bin/python)), das ist recht einfach zu erlernen und die bessere variante zu Beginn als qbasic (damit hab ich auch mal angefangen!), und wenn Python rausfällt, hm, schwierig...
Ich würd glaub ich Java empfehlen... Wenn man OOP einigermaßen erklärt, kann man da wohl noch am meisten bei lernen...
-
Jap Python ist ne sehr feine Sprache, schau ich mir gerade selbst so nebenher an.
Das dumme ist nur, dass ich Python gerne für kleinere Tools einsetzen würde, aber meist greif ich doch auf C++ zurück da ich für Python extra nachschlagen müsste.
Aber das Problem betrifft natürlich nicht jeden *g*
-
Jo, das Nachschlagen bzw angewöhnen einer neuen Lib ist mir auch bissl nervig... da fehlt mir derzeit einfach der Biss... Werd mir wohl irgendwann Lektüre dafür zulegen müssen...
-
Termite schrieb:
Hi
Hab mich verschrieben es sind die MISRA regeln. Das Document das du gefunden hast meinte ich eigentlich nicht. Es gibt auch ein Regelwerk speziel für c.
gruss TermiteWeißt du überhaupt wofür die MISRA Regeln geschaffen wurden? Die gehören nicht in normalen PC Bereich! Die werden vor allen in automobiler Software eingesetzt weil es da wirklich um Sicherheit geht, und da bietet C von Haus aus ja viel Möglichkeiten um was falsch zu machen
Zeig mir mal bitte einen aktuellen C Compiler/Linker der den Misra Standard unterstützt und für Windows oder Unix Code erzeugt. Gibts meiner Meinung nach kaum einen *gg* Abgesehen davon sind alle Regeln eh net einzuhalten da man extremst in seiner künstlerischen Gestaltung eines Programms gehindert wird.
-
Jetzt hab ich gar nichts zum eigentlichen Thema gesagt
Ich würde ohne Bedenken Java empfehlen! Die Sprache ist leicht zu erlernen und bietet keine arg großen Schwierigkeiten, wenn der Lehrer es ordentlich rüberbringt müssten selbst Ahnungslose was lernen.
Was ich damals bei uns gut fand als wir in der 11. Klasse angefangen haben zu programmieren, war, dass wir erstmal bestimmt ein viertel Jahr nur theoretische Programmierung hatten. Alles Sprachunabhängig und ging darum wie Programmieren allgemein funktioniert, Konzepte ( auch OOP! ), Designmöglichkeiten usw. Im Prinzip wars echt so das wir theoretisch programmieren konnten ohne was gesehen zu haben und als es dann anfing eine spezifische Sprache zu lernen war das kinderleicht! Wir haben zwar C++ statt Java gemacht, aber egal. Es war wirklich nur noch das man das was man theoretisch wusste in die richtige Syntax bringt und schon funktioniert alles! Dann versteht man auch sprachspezifische sehr leicht weil man den Sinn dahinter leichter versteht. Mittlerweile hass ich C++(VB.Net gerade noch viel mehr weils keine unsigned Datentypen gibt *aaarggghhh*) aber das ist eine andere Geschichte *gg*
-
OK, dann gebe ich jetzt meinen Senf auch noch dazu.
Wir haben in der 10. Klasse mit Pascal angefangen. Da haben wir erstmal so die Grundlagen gelernt, anschließend dann ein wenig mit Units gespielt und sogar ein wenig Grafikprogrammierung unter DOS.
Wenn man das mal so nennen möchte.
Das ging bis zum Ende der 12, da hatten wir ein rudimentäres Pong unter DOS fertig. Da sind (rückblickend) sogar sehr viele bei der Stange geblieben, die das eigentlich gar nicht so interessiert hat. Zwischendurch gab es immer wieder einige Referate bzgl. Rechnerarchitektur und Geschichte und Entwicklung von z.B. auch Software-Entwicklung (auch Lochkarten, etc.). Am Ende der 12 hatten wir schon so einiges an Wissen, denke ich. Die, die es nicht interessiert hat, die hatten das halt relativ schnell wieder vergessen, aber die, die es interessiert hat, die konnten das sehr gut gebrauchen. In der 13.1 haben wir dann u.a. Bäume besprochen und haben dann (zur Entspannung :)) mit HTML und Javascript abgeschlossen.Was ich damit sagen will: Ich habe mich, nachdem ich die Grundlagen in Pascal verstanden hatte, schnell privat mit Delphi beschäftigt, wo dann nichts draus geworden ist, aber ich hatte schon meine Erfolgserlebnisse. Evtl. ist das ja eine Alternative zuerst über Pascal zu gehen und dann nach ObjectPascal bzw. Delphi zu wechseln. Wenn Delphi in Betracht gezogen wird, dann ist Pascal ja nicht so schlimm.
Was den Stil betrifft: Ich denke die Leute, die es interessiert, die kümmern sich darum, dass es einigermaßen schön aussieht und auslernen tut man sowieso nie. Und die Leute, die sich danach nicht weiter damit beschäftigen wollen, da ist es sowieso egal.
Mir hat es meinen Stil eher versaut, dass ich nach der Schule (bis heute) PHP programmiert habe, aber ich bin dabei das wieder aufzuholen.
-
ja, php hat mir auch den stil versaut, bin voll am ende und weiß echt nicht mehr was ich machen soll.
-
frosty schrieb:
Aber es sind nicht die "kleinen" Sachen die C++ schwieriger machen. Es sind z.B. der Umgang mit Zeigern
zeiger? träfe das auch zu, wenn man gleich c++ lehren würde und nicht c?
-
volkard schrieb:
frosty schrieb:
Aber es sind nicht die "kleinen" Sachen die C++ schwieriger machen. Es sind z.B. der Umgang mit Zeigern
zeiger? träfe das auch zu, wenn man gleich c++ lehren würde und nicht c?
Ich habe mit Zeigern nie große Probleme gehabt. (zuerst C++ gelernt)
Was soll an denen in C denn anders sein?Ach ja: Unser Lehrer hat sich entschieden Delphi zu nehmen, ich und 4 andere dürfen aber stattdessen C++ Projekte entwickeln.
Jetzt muss ich nur noch die anderen Vier ordentlich auf trab bringen...
...naja hab ja noch knapp ein halbes Jahr.
-
roan312 schrieb:
Ich habe mit Zeigern nie große Probleme gehabt. (zuerst C++ gelernt) Was soll an denen in C denn anders sein?
man wird sofort gezwungen, zeiger zu benutzen. fängt bei scanfs an. und strings sind char*, die man sich mit malloc holt. man schreibt alle variaben an den anfang des blocks (uninitialisiert oder mit 0 initialsisiert), vergisst ne zuweisung und kriegt nen schutzfehler. bei c++ kann man sich mit std::string und std::vector enorm lange drücken, bis man zeiger benutzen *muss*. und bis dahin ist man so gut, daß man damit auch keine probleme hat.