Хм ...
Кажется, я немного опоздал в этом обсуждении - но я только что обнаружил это сейчас. И я благодарен всем вам за такой большой вклад.
Я автор G-WAN, что дает понять, что я серьезно работал над этим вопросом: G-WAN и быстрее, чем все другие веб-серверы (без обработки), и все другие серверы веб-приложений (любая обработка, которую вы можете себе представить).
Да, ANSI C также сделал возможным обрабатывать больше статического контента - с менее мощными процессорами (ANSI C не только заставляет динамическое содержимое летать).
Между прочим, G-WAN использует сценарии C (компилятор C и компоновщик не нужны), поэтому цикл / задержка компиляции / компоновки не существует.
В процессе сравнения G-WAN с .NET Java и PHP я написал похожие приложения на всех 4 языках: http://gwan.ch/source/
И, к моему разочарованию, современные языки сценариев не были проще в использовании.
Одна часть работы, которая особенно расстраивает, - это отчаянный поиск «волшебного» вызова API, который сделает то, что вы хотите.
Подумайте, как сделать "довольно тысячи" за:
C #
String.Format("{0:n}"...
Ява
new DecimalFormat("0.00"); ...
PHP
number_format($amount, 2); ...
ANSI C
sprintf("%'.2f", amount);
"..." означает, что необходима предварительная настройка или постобработка. Очевидно, что ANSI C легче использовать и запоминать.
Когда PHP имеет более 5900 вызовов API (недалеко от C # и Java), поиск правильного вызова API сам по себе является проблемой. Время, потраченное на то, чтобы найти это (а затем выяснить, насколько плохо реализован вызов собственного API), время, чтобы научиться этому в следующий раз, когда он вам понадобится, все это время лишает вас времени, необходимого для решения вашего приложения проблемы.
Я читал (выше), что PHP более лаконичен, чем ANSI C? Зачем тогда использовать, "//:: this is a comment ::"
а не "// this is a comment"
? Почему у вас такой дурацкий сложный синтаксис "довольно тысячи"?
Другой обычный аргумент заключается в том, что Java и тому подобное предоставляют специальные вызовы для веб-приложений.
Мне не удалось найти ничего, что могло бы избежать HTML в Java, поэтому я написал свою версию:
// 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();
}
Вы действительно верите, что тот же код в ANSI C был бы более сложным? Нет, это было бы намного проще и быстрее.
Java (производный от C) требует от программистов связывать многострочные строки с '+'.
C # (производный от C) требует от программистов связывать многострочные строки с '+'.
PHP (производный от C) требует программистов связывать многострочные строки с "."
В ANSI C нет этого теперь совершенно глупого (устаревшего) требования.
Итак, были ли заявлены современные языки на столь очевидный прогресс? Я все еще ищу это.
С уважением,
Пьер.