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