Richtige Programmierer meiden "C"
Geizhals » Forum » Programmierung » Richtige Programmierer meiden "C" (46 Beiträge, 581 Mal gelesen) Top-100 | Fresh-100
Du bist nicht angemeldet. [ Login/Registrieren ]
.
Das ist der Output
22.03.2005, 17:27:10
Rekursion at it's best :-)

Das gibt die Strophen von "Twelve days of christmas" wieder %-)

Wer das so schreiben kann, der hat's echt drauf. Aber so richtig.


Edit:
So schaut der Output aus B-)

On the first day of Christmas my true love gave to me
a partridge in a pear tree.

On the second day of Christmas my true love gave to me
two turtle doves
and a partridge in a pear tree.

On the third day of Christmas my true love gave to me
three french hens, two turtle doves
and a partridge in a pear tree.

On the fourth day of Christmas my true love gave to me
four calling birds, three french hens, two turtle doves
and a partridge in a pear tree.

On the fifth day of Christmas my true love gave to me
five gold rings;
four calling birds, three french hens, two turtle doves
and a partridge in a pear tree.

On the sixth day of Christmas my true love gave to me
six geese a-laying, five gold rings;
four calling birds, three french hens, two turtle doves
and a partridge in a pear tree.

On the seventh day of Christmas my true love gave to me
seven swans a-swimming,
six geese a-laying, five gold rings;
four calling birds, three french hens, two turtle doves
and a partridge in a pear tree.

On the eigth day of Christmas my true love gave to me
eight maids a-milking, seven swans a-swimming,
six geese a-laying, five gold rings;
four calling birds, three french hens, two turtle doves
and a partridge in a pear tree.

On the ninth day of Christmas my true love gave to me
nine ladies dancing, eight maids a-milking, seven swans a-swimming,
six geese a-laying, five gold rings;
four calling birds, three french hens, two turtle doves
and a partridge in a pear tree.

On the tenth day of Christmas my true love gave to me
ten lords a-leaping,
nine ladies dancing, eight maids a-milking, seven swans a-swimming,
six geese a-laying, five gold rings;
four calling birds, three french hens, two turtle doves
and a partridge in a pear tree.

On the eleventh day of Christmas my true love gave to me
eleven pipers piping, ten lords a-leaping,
nine ladies dancing, eight maids a-milking, seven swans a-swimming,
six geese a-laying, five gold rings;
four calling birds, three french hens, two turtle doves
and a partridge in a pear tree.

On the twelfth day of Christmas my true love gave to me
twelve drummers drumming, eleven pipers piping, ten lords a-leaping,
nine ladies dancing, eight maids a-milking, seven swans a-swimming,
six geese a-laying, five gold rings;
four calling birds, three french hens, two turtle doves
and a partridge in a pear tree.



I will use Google before asking dumb Questions.
   Frei nach Bart Simpson

Zwei Dinge sind unendlich: Das Universum und die menschliche Dummheit, aber beim Universum bin ich mir noch nicht ganz sicher.
   Albert Einstein

Dreierlei Wege klug zu handeln: Durch Nachdenken, das ist der Edelste. Durch Nachahmen, das ist der Leichteste. Durch Erfahrung, das ist der Bitterste.
   Konfuzius

23.03.2005, 16:23 Uhr - Editiert von Wizard51, alte Version: hier
Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
..
Oder sollte der Daubert das ernst meinen ?
22.03.2005, 20:47:58
seht mal seinem Pascal/c-Vergleich...

Das Lustige dabei ist, daß sein C-Programm schlichtweg falsch geschrieben ist.
Man kann ja noch verstehen, daß er extra
static char temp [256];


einführt - damit sein C-Programm genauso limitiert ist wie Vanilla-Pascal (das erlaubt nur Strings bis 255 Zeichen, weil als erstes im String die Länge gespeichert wird - und das ist eben ein Byte). [das richtige wäre wohl ein strdup() gewesen: Das fordert gleich viel Bytes an wie übergeben wurden, belastet den Stack net, ...]

Viel seltsamer find' ich seine Fehler im Source:

  1. Sein dämliches C-Beispiel ist net Locale-Aware. toupper() [ANSI C] hätt' ihm die Hacke erspart und könnte je nach Encoding deutsche Umlaute, Kyrillischen Text umwandeln, ... und wär' einfacher gewesen. Wahrscheinlich hat er's extra so gemacht, damit's in Pascal einfacher aussieht obwohl man in Wirklichkeit _WEIT_ mehr Aufwand investieren müßte.
  2. sein temp[i]=0 hätt' er sich sparen können, indem er die Schleife anders baut.
  3. return temp; ist nun aber wirklich net nur ein Schönheitsfehler sondern _BUG_. Niemals ein return aus lokalen Variablen. Er hat sich mit einem static geholfen, damit das trotzdem klappt - nur verhaut er damit den Stack und hält sinnlos Speicher belegt. Kurzum: Er hat's _net_ überrissen.


mein Vorschlag für das C-Programm wäre


char *mein_upper(char *s)
{
        char *p, *temp;
        p=temp=strdup(s);

        while ( *p != '\0' ) {
                *p=toupper(*p);
                p++;
        }
        return temp;
}


-> Und das kann dann mit jeder bekannten Locale umgehen, wirft nicht sinnlos den ganzen String zur Parameterübergabe und return (wie Pascal es macht), ...

BTW, sogar seni Pascal-Programm ist Schrott.

Denn bei seiner for-Schleife die bis Length(zeile) geht... wird Length(zeile) jedesmal neu ausgewertet. _SEEEHR_ clever und effizient. Boaaaah.

Ich kenn' mich ja auch bei wirklich viel net aus - aber ich bau aus meinem Unwissen keine Webseiten ;-)

22.03.2005, 20:48 Uhr - Editiert von gepeinigter_aon_neukunde, alte Version: hier
Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
......
Re(4): Oder sollte der Daubert das ernst meinen ?
24.03.2005, 11:11:30
Thx für die Info...

Pascal ist laaange her bei mir.
Ich war ein riesen-Fan von Turbo Pascal 3.14 (Das war eines der ersten mit einer IDE... Der Editor hatte so Coole Sequenzen wie Ctrl-k d x um das Programm zu kompilieren und auszuführen ;-) ), später kaufte ich mir noch die 5.5er (Objektorientierung... Staunen ob der schönen neuen Welt) - und Delphi (1er).

Delphi begann sich schon mehr wie C anzufühlen... Nix mehr mit Strings bis 255 Bytes, ...
Aber Delphi war total stark, wenn dein Ziel definitiv ausschließlich Windows-Programme sind...

Mit dem Umsteigen zu anderen OSsen verliert aber Delphi (Oder Kylix oder wie-auch-immer) an Wert. Ich hab' mich dann ziemlich schlagartig in C verliebt, der OO-Welt wieder den Rücken gekehrt und staune noch immer über die Vielfältigkeit der Libs... Programmieren entartet inzwischen ja schon fast zu einem Zusammenstöpseln der vorhandenen Funktionen ;-)

IMHO siegt C, weil

  1. es eine [von der Syntax] derart einfache Sprache ist, daß sie wirklich überall rennt.
  2. die Resultate sehr kompakt und effizient sind
  3. es derart viele [auch OpenSource]-Libs dazu gibt


Pascal/Delphi find' ich für beginner total nett - nur ist der Sprachumfang bescheidener (so war's zumindest bis Delphi, dann bin ich ja von dem Zug abgesprungen). Man tut sich als "Nebenbei"-Programmierer sicher lange Zeit leichter in Pascal - weil man weniger Möglichkeiten hat, sich weh zu tun.. Wenn man aber weiß, was man tut (und das nicht nur glaubt ;-) ) - bist IMHO grundsätzlich mit der Sprache mit den meisten Freiheiten am besten dran...

Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
.
Re: Richtige Programmierer meiden "C"
23.03.2005, 08:48:50
Richtige Programmierer lieben Pascal... *schmunzel*...

Der Herr dort kennt sich ja mit C resp. C++ sehr gut aus. Das es unterschiedliche *TRÖT*s von C++ gibt erwähnt er nichtmal, und das der letzte 20 Jahre ( :) ) neuer ist als der letzte Pascal Stand wird nichtmal erwähnt.

Sowas wie Namespaces etc. kennt Pascal ja garnicht und wurschtelt den Code in einem runter. Naja wenn das "richtige" Programmierer wollen..

"C/C++ Programmierer ruhen sich auf ihrem Visual C aus und ihrer MFC, die nicht einmal komponentenbasiert ist wie es Delphi seit 6 Jahren schon ist."

-> ) kann mir sogar eigene Komponenten erstellen die überall aufzurufen sind im System.

"Wenn schlechte C Programmierer sehen, dass man mit C etwas nicht machen kann wie die Sicherheitsmechanismen von Java, dann lernen sie nicht diese sondern versuchen die Syntax C anzupassen und nennen es C#."

C# ist historisch aus Java und C++ gewachsen, hat mit C nix mehr am Hut.

" Echte Programmierer haben keine Angst vor nicht mehr so weit verbreitenden Sprachen wie Smalltalk"

Smalltalk hat auch super Support! 1 Update in 10 Jahren! Echt! :)

"C / C++ Programmierer müssen ihr Leben als Anwendungsentwickler für Windoof oder für Mikrocontroller fristen"

Cross-Compiling ? Embedded Systems ?

" Schlechte Programmierer arbeiten dagegen gern mit C und C++, am besten auf UNIX und bezeichnen Leute die mit anderen Sprachen doppelt so schnell arbeiten, gerne als "Warmduscher"."

... brauchen dafür ein eigenes Framework ( am besten Properitär sowie MicroFocus Cobol), die Performance nimmt um einiges ab etc. WARMDUSCHER einfach!

Der Typ (auch wenn ers behauptet) hat niemals was größeres Programmiert sonst würde er die Fehler seiner Schlussfolgerung bereits kennen. Wenn er mal gerne von einem Projektleiter einer großen Softwareentwicklung Tips zur Umsetzung haben will oder einfach ein gutes C/C++ lernen will (ohne div. Frameworks) -> PM ;)

@Edith: Und das waren jetzt nur 2 Absätze, Rest kann man ja nicht lesen ohne an Hirnerweichung zu erkranken.




The day Microsoft makes something that doesn't suck
is probably the day that they start making vacuum cleaners.



23.03.2005, 08:49 Uhr - Editiert von West, alte Version: hier
Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
..
Re(2): Richtige Programmierer meiden "C"
24.03.2005, 15:38:17
Der Herr dort kennt sich ja mit C resp. C++ sehr gut aus. Das es
unterschiedliche *TRÖT*s von C++ gibt erwähnt er nichtmal, und das der
letzte 20 Jahre ( :) ) neuer ist als der letzte Pascal Stand wird nichtmal
erwähnt.

Sowas wie Namespaces etc. kennt Pascal ja garnicht und wurschtelt den Code in
einem runter. Naja wenn das "richtige" Programmierer wollen..


So wie C hat sich Pascal bzw. die Algol/Wirth-Familie auch weiterentwickelt... ein Vergleich von Pascal mit C++ ist also nicht wirklich sinnvoll.

"C/C++ Programmierer ruhen sich auf ihrem Visual C aus und ihrer MFC, die
nicht einmal komponentenbasiert ist wie es Delphi seit 6 Jahren schon ist."

-> ) kann mir sogar eigene Komponenten erstellen die überall aufzurufen sind
im System.


Toll, das konnte Oberon auch schon (wann war das, ca. 1985?)


" Echte Programmierer haben keine Angst vor nicht mehr so weit verbreitenden
Sprachen wie Smalltalk"

Smalltalk hat auch super Support! 1 Update in 10 Jahren! Echt! :)


Smalltalk war bis vor kurzem wirklich sehr gut unterstützt - z.B. IBM. Leider ist man auch dort schließlich auf Java umgestiegen, weil Hype wichtiger ist als Software-Qualität...

"C / C++ Programmierer müssen ihr Leben als Anwendungsentwickler für Windoof
oder für Mikrocontroller fristen"

Cross-Compiling ? Embedded Systems ?


Bah, das ist noch immer etwas für Assembler-Programmierer. C-Leute haben da nichts verloren ;-)



Marinos J. Yannikos <mjy@geizhals.at>


EU-Recht im 21. Jhdt.: Bewährungsstrafen für Körperverletzung mit Todesfolge, Haftstrafen für Raubkopierer ...

Jetzt neu: 666kb.com

Antworten PM Übersicht Chronologisch Zum Vorgänger
 
Melden nicht möglich
 

Dieses Forum ist eine frei zugängliche Diskussionsplattform.
Der Betreiber übernimmt keine Verantwortung für den Inhalt der Beiträge und behält sich das Recht vor, Beiträge mit rechtswidrigem oder anstößigem Inhalt zu löschen.
Datenschutzerklärung