Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 Re: Klasse, Stefan! Kategorie: Verschiedenes (von Dietmar, Homepage - 14.12.2004 16:12)
 Als Antwort auf Re: Klasse, Stefan! von Christian - 14.12.2004 11:11

Hallo Christian.

> Hingegen sind einzeilige IFs in sämtlichen Programmiersprachen mittlerweile verpönt. Jeder erfahrene Softwareentwickler meidet solche Konstrukte und Funktionen wie IIF oder "bedingung ? zweig 1 : zweig 2". [...]
>
> IF SensorInput1 < 200 AND SensorInput2 > 350 THEN TemperatureOutput = SensorInput * 2 - TEMPCONST ELSE TemperatureOutput = SensorInput2 * 3 / 4 - TEMPCONST2
>
> Solche Konstrukte sehe ich in vielen "Programmen" mit dem Ergebnis, dass nur die Hälfte der Zeile im Editor sichtbar ist. Wo ist da die Lesbarkeit besser?

Selbstverständlich lassen sich immer Negativ-Beispiele finden. Aber schaue Dir einmal das folgende aus den Beispielen zur C-Control stammende Beispiel an. Mit mehrzeiligen IFs werden aus recht übersichtlichen 12 Zeilen sage und schreibe 36 Zeilen.

IF Key_Nr = KEY_ASTERIX THEN PRINT "Taste *"
IF Key_Nr = KEY_7 THEN PRINT "Taste 7"
IF Key_Nr = KEY_4 THEN PRINT "Taste 4"
IF Key_Nr = KEY_1 THEN PRINT "Taste 1"
IF Key_Nr = KEY_0 THEN PRINT "Taste 0"
IF Key_Nr = KEY_8 THEN PRINT "Taste 8"
IF Key_Nr = KEY_5 THEN PRINT "Taste 5"
IF Key_Nr = KEY_2 THEN PRINT "Taste 2"
IF Key_Nr = KEY_CROSS THEN PRINT "Taste #"
IF Key_Nr = KEY_9 THEN PRINT "Taste 9"
IF Key_Nr = KEY_6 THEN PRINT "Taste 6"
IF Key_Nr = KEY_3 THEN PRINT "Taste 3"

> Ich bin seit über 10 jahren Softwareentwickler (C/C++, Java, Assembler, Perl, Python, C#/VB.NET, VB6, PHP, Pascal) in nun 2 Softwarehäusern (insgesamt habe ich rund 20 Jahre Erfahrung im Bereich Softwareentwicklung) und ich weiss, dass in der professionellen Softwareentwicklung niemand den ich kenne so denkt.

Ich finde, Deine Ansprüche an die C-Control-Programmierer sind ganz schön hoch. Die C-Control ist/war in erster Linie für Privatleute, die meist froh sind, überhaupt ein Programm zustande zu bringen. Im übrigen habe ich starke Zweifel, daß Du Programmiersprachen wie C#, VB, PHP, Java, etc. auf einem Mikrokontroller wie der C-Control benutzt hast. Auf Mikrokontrollern ist es durchaus noch üblich, in Assembler zu arbeiten, was auf dem PC nur in Ausnahmefällen gemacht wird. Daß konditionale Operatoren und ähnliche Dinge á la C-Programm-in-einer-Zeile im professionellen Bereich nicht gern gesehen sind, brauchst Du mir nicht zu erzählen.

Ich wollte mit meiner Ausgabe 'einzeilige IFs können nützlich sein und den Quellcode übersichtlicher machen' nicht die Fehler von CCBASIC rechtfertigen. NUR einzeilige IFs sind ganz sicher schlechter Programmierstil. Da stimme ich Dir voll zu. Du siehst das schon daran, daß ich bereits vor längerer Zeit versucht habe, mehrzeilige IFs in CCBASIC zu implementieren. Siehe C-Control/BASIC-Parser in der Download Area. Aber soweit mir bekannt, hatte niemand daran Interesse. Man sollte es eben jedem selbst überlassen, welchen Programmierstil er bevorzugt. Insofern ist IMHO *jede* Bevormundung durch die Programmiersprache negativ.

Gruß, Dietmar

Meine Homepage: http://ccintern.dharlos.de

 Antwort schreiben

Bisherige Antworten:

Re: Klasse, Stefan! (von Christian - 14.12.2004 18:15)
    Re: Klasse, Stefan! (von Dietmar - 14.12.2004 19:17)
Re: Klasse, Stefan! (von Patrick - 14.12.2004 16:30)
    Re: Klasse, Stefan! (von Dietmar - 14.12.2004 18:18)
        bitte kein BASIC ohne goto (von Kay - 14.12.2004 18:41)
    Re: Klasse, Stefan! (von Kay - 14.12.2004 17:07)
        Re: Klasse, Stefan! (von Patrick - 14.12.2004 17:32)
            Re: Klasse, Stefan! (von Kay - 14.12.2004 17:38)
                Re: Klasse, Stefan! (von Stefan Tappertzhofen - 14.12.2004 18:15)
                    Re: Klasse, Stefan! (von Kay - 14.12.2004 18:30)