Web-Development in C?

23/12/2008 - 14:17 von Stefan Scholl | Report spam
Ich benutze Programme, von denen ich weiß dass sie in C
geschrieben sind: Mailreader, Newsreader, Editor, Kernel, Tools,
Interpreter von Programmiersprachen usw.

Und es ist völlig normal. Nichts Außergewöhnliches.


Warum ist das bei Web-Entwicklung nicht der Fall, abseits von
Webservern selbst?

Wir haben umfangreiche Bibliotheken für GUIs und sonstigen,
soften Programmierthemen. Sehe ich aber nach Lösungen fürs Web,
dann finde ich nur ein paar CGI Bibliotheken; teilweise
aufgegebene Projekte.


Als Argument hört man immer die schlechte String-Behandlung (was
Erlang-Fans übrigens auch nicht stört). Doch dafür gibt es ja
fertige Bibliotheken, wie z. B. glib, die viele, gute
Datenstrukturen bereit stellt.

FastCGI ist als C-Bibliothek verfügbar und mit libevent kann man
sogar einen eigenen Mini-Webserver (ideal hinter Proxy)
schreiben.

Nur das Parsen von POST- und GET-Requests muss man selbst per
Hand hinfummeln. :-(
Jedes Rad neu erfinden.


Web (en): http://www.no-spoon.de/ -*- Web (de): http://www.frell.de/
 

Lesen sie die antworten

#1 ram
23/12/2008 - 15:45 | Warnen spam
Stefan Scholl writes:
Warum ist das bei Web-Entwicklung nicht der Fall, abseits von
Webservern selbst?



Vielleicht setzt man dort anders ausgebildete Programmierer ein?

Ein Compiler-Schreiber hat vielleicht eine andere Ausbildung
hinter sich als ein Web-Programm-Autor.

schlechte String-Behandlung



Das kommt auf die Anforderungen und den Ausbildungsstand an.

Eine interessante Übungsaufgabe wàre vielleicht folgendes:

»Schreibe und dokumentiere eine Funktion in C, die in
einem nullterminierten Text T einen gegebene Text S
möglichst laufzeiteffizient überall durch einen anderen
Text R ersetzt.

Dabei sind in der Aufgabenstellung nicht bestimmte Details
der Implementation von Dir festzulegen und zu dokumentieren.

Es ist natürlich zulàssig, daß die Funktion als Ergebnis
einen anderen Zeiger liefert (der Originaltext braucht
nicht an Ort und Stelle veràndert zu werden, es darf eine
neue Kopie mit dem Ergebnis angelegt werden).

Erweitere das Programm so, daß T aus einer Textdatei
gelesen und S und R aus der Kommandozeile übernommen
werden und vergleiche Deine Laufzeit mit einem
entsprechenden sed-Skript.«

Um die Kettenbehandlung ging es nach dem Titel wohl auch in
»Convert builin-mailinfo.c to use The Better String Library«,
wo Linus Torvalds 2007 schrieb:

»C++ is a horrible language. It's made more horrible by
the fact that a lot of substandard programmers use it (...)

I've come to the conclusion that any programmer that would
prefer the project to be in C++ over C is likely a
programmer that I really *would* prefer to [move on], so
that he doesn't come and [disturb] any project I'm involved
with. (...)

[zu C++-Standardbibliotheken: T]wo years down the road you
notice that some abstraction wasn't very efficient, but
now all your code depends on all the nice object models
around it, and you cannot fix it without rewriting your app.«

http://lwn.net/Articles/249460/

Wenn ich schon eine dickere Abstraktionsschicht über der
realen Maschine haben will, dann würde ich eher erwàgen,
gleich Java zu verwenden.

"One the one hand, I think nobody in their right mind
would try to write a gigantic system in C++ now that Java
has become an obviously far superior way to build large
systems.«

http://steve.yegge.googlepages.com/practical-magic

»Java books are usually about doing stuff. C++ books are
mostly about not shooting yourself in the foot. that just
about sums up how you use the two environments too.«

Bjorn Borud

Ähnliche fragen