Re: diskless system ohne swap

From: Oliver Fromme <olli(at)lurza.secnetix.de>
Date: Mon, 17 May 2004 20:43:03 +0200 (CEST)

Bernd Walter <ticso(at)cicely12.cicely.de> wrote:
> On Mon, May 17, 2004 at 03:41:04PM +0200, Oliver Fromme wrote:
> > Ist nicht Dein Ernst, oder? C hat nichtmal strong typing.
> > Das Typensystem von C ist eher ein Witz und provoziert ge-
> > radezu Bugs.
>
> Ein Witz ist besser als gar nichts.
> Aber da aktuelle C Compiler allesamt auch C++ können kann man
> auch die Typenprüfung bis in C++ Level hochschrauben.

Ja, nur leider ist das Typsystem von C++ statisch.

> Mir machen die Hintergrund Zaubereien von Hochsprachen immer ein
> bischen Angst, da man die nicht sauber Kontrollieren kann

Will man das denn? Will ich mich um die Belegung von jedem
einzelnen Bit kümmern müssen? Nö, will ich eigentlich
nicht. Ich will meinen Krempel implementiert kriegen, und
zwar möglichst schnell. Was dann letztendlich für Bits im
RAM liegen, ist mir relativ egal. Das ist Job der Sprache.

Es gibt natürlich zweifellos auch Anwendungen, wo man das
genau kontrollieren und auf unterster Ebene herumpfriemeln
muß. Das ist dann Pech.

> Zudem ist C überall verfügbar - für sehr viele andere Sprachen gilt das
> leider nicht.

Nunja, das kommt drauf an, für welches Zielpublikum man
programmiert. In vielen Fällen muß es nicht auf hunderte
von Plattformen portabel sein.

> > nicht überlegen muß, wie lang der jetzt werden kann. Wenn
>
> Ich mag asprintf - aber nur so am Rande...

Ist nicht portabel - aber nur so am Rande...
;-)

> > ich nicht darüber nachdenken muß, ob meine Zahlen jetzt
> > in einen int reinpassen oder nicht. Wenn ich beim Program-
>
> Ich will dass eine Zahl nicht mehr Speicher belegt als diese Zahl
> braucht.

Das muß ja kein Widerspruch sein.

> Und ich will, dass ein uint8_t mit dem Wert 0xff bei der Addition
> von 1 auf 0x00 springt, weil ich in vielen Fällen darauf angewiesen
> bin.

Ich brauche üblicherweise eher eine arithmetisch korrekt
funktionierende Addition. Und wenn man eine Addition mit
Spezialverhalten braucht, dann kann man sie sich definie-
ren.

> Es gibt da etliche Kniffe auf Assemblerebene, die ich in C Problemlos
> umsetzen kann, aber in einer anderen Sprache nicht oder nur sehr
> schlecht.

Ja, wie gesagt, da sieht man die Verwandtschaft von Assem-
bler und C ganz deutlich.

> > mieren nicht ständig um Einschränkungen der Programmier-
> > sprache herumarbeiten muß, sondern mich auf das konzent-
> > trieren kann, was ich implementieren will.
>
> Genau - und mangelnde Kontrolle ist für meine Anwendungen die größte
> Einschränkung.

Dann sind Deine Programmieraufgaben eher untypisch.

> > Ich könnte noch viel mehr aufzählen, was komfortabel ist
> > und was C nicht bieten kann.
>
> Ich weiß Sprachen wie Java, Eiffel und sonstige durchaus zu schätzen,

Das sind auch nicht gerade High-Level-Sprachen, und in bei-
den ist das Programmieren (meiner Meinung nach) eher ziem-
lich unbequem und unflexibel (beide haben ein rein stati-
sches Typsystem). Eiffel kennt nicht einmal native Arrays.
Und in Java programmiert man sich schon für die einfachsten
Dinge einen Wolf (z.B. um eine Datei zeilenweise einzule-
sen).

Das ist natürlich auch ein bißchen subjektiv. :-)

> Und dann habe ich oftmals das Problem dass ich durch die tägliche
> Verwendung in C einfach schneller bin.

Das kann ich überhaupt nicht nachvollziehen. Für Dienge,
die in C zehn Zeilen brauchen, braucht man z.B. in Python
(oder meinetwegen auch in Perl, Ruby etc.) eine Zeile.
In Python schreibe ich in 15 Minuten Dinge herunter, für
die ich in C einen halben Tag bräuchte -- und die Programme
sind dann sogar einfacher zu lesen (mithin wartungsfreund-
licher), weil sie sich auf das konzentrieren, was das Pro-
gramm tatsächlich tun soll.

Ich persönlich mag inzwischen (das war bei mir auch ein
längerer Prozeß) am liebsten Sprachen mit dynamischem Typ-
System, d.h. wo Werte Typen haben, nicht Variablen (diese
Sprachen haben dann zwangsläufig »weak typing«), und sol-
che mit »strong typing« verbunden mit Typinferenz.

Von C und den meisten C-Abkömmlingen (C++, Java, C#) habe
ich eher die Nase voll. :-)

Gruß
   Olli

-- 
Oliver Fromme, secnetix GmbH & Co KG, Oettingenstr. 2, 80538 München
Any opinions expressed in this message may be personal to the author
and may not necessarily reflect the opinions of secnetix in any way.
"File names are infinite in length, where infinity is set to 255 characters."
        -- Peter Collinson, "The Unix File System"
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Mon 17 May 2004 - 20:43:34 CEST

search this site