Summen...
Es scheint, dass ich etwas spät in dieser Diskussion bin - aber ich habe es gerade erst entdeckt. Und ich bin Ihnen allen für so viel Input dankbar.
Ich bin der Autor von G-WAN, was deutlich macht, dass ich ernsthaft an der Sache gearbeitet habe: G-WAN ist sowohl schneller als alle anderen Webserver (keine Verarbeitung) als auch alle anderen Webanwendungsserver (jede erdenkliche Verarbeitung).
Ja, ANSI C hat es auch ermöglicht, mehr statische Inhalte zu verarbeiten - mit weniger leistungsstarken CPUs (bei ANSI C geht es nicht nur darum, dynamische Inhalte zum Fliegen zu bringen).
Übrigens verwendet G-WAN C-Skripte (kein C-Compiler und Linker erforderlich), sodass der Kompilierungs- / Verknüpfungszyklus / die Verzögerung nicht vorhanden ist.
Beim Vergleich von G-WAN mit .NET Java und PHP habe ich ähnliche Anwendungen in allen vier Sprachen geschrieben: http://gwan.ch/source/
Und zu meiner Bestürzung waren die modernen Skriptsprachen nicht einfacher zu verwenden.
Ein Teil des Jobs, der besonders frustrierend ist, besteht darin, verzweifelt nach dem 'magischen' API-Aufruf zu suchen , der das tut, was Sie tun möchten.
Überlegen Sie, wie Sie "hübsche Tausende" in:
C #
String.Format("{0:n}"...
Java
new DecimalFormat("0.00"); ...
PHP
number_format($amount, 2); ...
ANSI C.
sprintf("%'.2f", amount);
Das "..." bedeutet, dass eine Vorkonfiguration oder Nachbearbeitung erforderlich ist. ANSI C ist deutlich einfacher zu bedienen und zu merken.
Wenn PHP mehr als 5900 API-Aufrufe hat (C # und Java nicht weit entfernt), ist es eine Herausforderung , den richtigen API-Aufruf zu finden. Die Zeit, die verschwendet wird, um dies zu finden (und dann herauszufinden, wie schlecht der native API-Aufruf implementiert ist), die Zeit, um es für das nächste Mal, wenn Sie es benötigen, von hart zu lernen, entzieht Ihnen all diese Zeit die Zeit, die zum Auflösen Ihrer Anwendung erforderlich ist Probleme.
Ich habe (oben) gelesen, dass PHP prägnanter ist als ANSI C? Warum dann "//:: this is a comment ::"lieber verwenden als "// this is a comment"? Warum eine so dumm komplexe 'hübsche Tausend'-Syntax?
Das andere übliche Argument ist, dass Java und dergleichen dedizierte Aufrufe für Webanwendungen bereitstellen.
Ich konnte in Java nichts finden, um HTML zu entkommen, also schrieb ich meine Version davon:
// all litteral strings provided by a client must be escaped this way
// if you inject them into an HTML page
public static String escape_html(String Name) {
int len = Name.length();
StringBuffer sb = new StringBuffer(len);
boolean lastWasBlankChar = false;
int c;
for(int i=0; i<len; i++) {
c = Name.charAt(i);
if(c == ' ') sb.append(" "); else
if(c == '"') sb.append("""); else
if(c == '&') sb.append("&"); else
if(c == '<') sb.append("<"); else
if(c == '>') sb.append(">"); else
if(c == '\n') sb.append("<br/>"); else {
c = c&0xffff; // unicode
if(c < 32 || c > 127) {
sb.append("&#");
sb.append(new Integer(c).toString());
sb.append(';');
} else
sb.append(c);
}
}
return sb.toString();
//szName = sb.toString();
}
Glauben Sie wirklich, dass der gleiche Code in ANSI C komplexer wäre? Nein, es wäre immens einfacher und schneller.
Java (abgeleitet von C) erfordert Programmierer Link mehrzeiligen strings mit einem ‚+‘
C # (abgeleitet von C) ist erforderlich Programmierer Link mehrzeiligen strings mit einem ‚+‘
PHP (abgeleitet von C) erfordert Programmierer Verknüpfen Sie mehrzeilige Zeichenfolgen mit einem '.'
ANSI C hat diese jetzt völlig dumme (veraltete) Anforderung nicht.
War der so offensichtliche Fortschritt, den die modernen Sprachen fordern? Ich suche immer noch danach.
Mit freundlichen Grüßen,
Pierre.