Hum...
Il semble que je sois un peu en retard dans cette discussion - mais je viens juste de la découvrir. Et je vous suis reconnaissant à tous pour vos nombreuses contributions.
Je suis l'auteur du G-WAN, ce qui indique clairement que j'ai sérieusement travaillé sur le sujet : G-WAN est à la fois plus rapide que tous les autres serveurs Web (sans traitement). et tous les autres serveurs d'applications Web (tout traitement que vous pouvez imaginer).
Oui, l'ANSI C a également permis de traiter davantage de contenu statique - avec des processeurs moins puissants (l'ANSI C ne sert pas uniquement à faire voler les contenus dynamiques).
D'ailleurs, G-WAN utilise des scripts en C (pas besoin de compilateur et de linker en C) donc le cycle/retard de compilation/liaison n'existe pas.
En comparant le G-WAN à .NET Java et PHP, j'ai écrit similaire dans les 4 langues : http://gwan.ch/source/
Et, à mon grand désarroi, les langages de script modernes étaient pas plus facile à utiliser.
Une partie du travail qui est particulièrement frustrante est de chercher désespérément pour trouver l'appel API "magique" qui fera ce que vous voulez faire.
Réfléchissez à la manière de faire des "milliers de jolis" :
C#
String.Format("{0:n}"...
Java
new DecimalFormat("0.00"); ...
PHP
number_format($amount, 2); ...
ANSI C
sprintf("%'.2f", amount);
Les "..." signifient qu'une certaine pré-configuration, ou post-traitement, est nécessaire. Le C ANSI est clairement plus facile à utiliser et à mémoriser.
Lorsque PHP compte plus de 5900 appels d'API (C# et Java ne sont pas loin), trouver l'API la plus appropriée est une tâche difficile. droite L'appel API est un défi en soi. Le temps perdu pour trouver cela (et ensuite pour trouver à quel point l'appel de l indigène L'appel API est implémenté), le temps d'apprendre à cœur ouvert pour la prochaine fois que vous en aurez besoin, tout ce temps vous prive du temps nécessaire pour résoudre vos problèmes d'application.
J'ai lu (ci-dessus) que le PHP est plus concis que le C ANSI ? Pourquoi alors utiliser "//:: this is a comment ::"
plutôt que "// this is a comment"
? Pourquoi avoir une syntaxe "pretty thousands" aussi stupidement complexe ?
L'autre argument habituel est que Java et ses semblables fournissent des appels dédiés aux applications Web.
Je n'ai pas réussi à trouver quelque chose pour échapper au HTML en Java, alors j'ai écrit ma propre version :
// 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();
}
Pensez-vous vraiment que le même code en ANSI C serait plus complexe ? Non, il serait à la fois immensément plus simple et plus rapide.
Java (dérivé du C) est nécessitant les programmeurs peuvent relier des chaînes de caractères de plusieurs lignes avec un '+'.
C# (dérivé de C) est nécessitant les programmeurs peuvent relier des chaînes de caractères de plusieurs lignes avec un '+'.
PHP (dérivé de C) est nécessitant les programmeurs peuvent relier des chaînes de caractères de plusieurs lignes par un ".".
L'ANSI C n'a pas cette exigence désormais complètement stupide (obsolète).
Alors, où est le so évident les progrès revendiqués par les langues vivantes ? Je suis toujours à la recherche de ces progrès.
Sincèrement,
Pierre.
3 votes
Mais C es utilisé pour la création de CGI scripts. Une seule application web peut contenir des composants écrits dans de nombreux langages différents.
34 votes
Pourquoi utilisons-nous des poêles et ne cuisinons-nous pas nos repas directement avec le feu ? Pourquoi utilisons-nous des voitures alors que marcher ou utiliser le vélo est bien plus sain ? Pourquoi... Je pourrais continuer...
16 votes
@Felix - comme je l'ai dit, citez d'autres raisons que la difficulté. Ce qui implique que je suis conscient que d'autres langages existent pour abstraire la difficulté.
2 votes
Facebook dispose d'un transformateur de code php vers c++ appelé Hip Hop qui peut améliorer vos performances lorsque votre CPU devient votre goulot d'étranglement.
15 votes
Je n'ai jamais vraiment considéré la difficulté du C.
0 votes
La différence de performance se réduit assez rapidement grâce aux nombreuses fonctionnalités intégrées (qui sont déjà sous forme compilée) et au JIT pour presque tous les langages dynamiques.
10 votes
David Lively Si vous n'avez pas mis le "c" de difficile exprès, c'est vraiment très drôle. Bien joué :)
11 votes
@MrMisterMan il n'a fallu que quatre mois à quelqu'un pour le repérer. =)
0 votes
@Lucas NB : Cette question concerne le C, pas le C++. Prenez soin de vous pas à confondre le site deux .
0 votes
Avez-vous essayé Kore Framework ? Il s'agit d'un cadre Web pour le langage C.
0 votes
J'élève votre G-WAN à la programmation des prises ! C'est là que les vrais programmeurs se distinguent des autres. C'est faisable mais vous devez être non seulement bon en C mais aussi en tant que programmeur en général.