哼。。。
似乎我在这次讨论中有点晚了 - 但我现在才发现它。我感谢你们所有人提供如此多的投入。
我是G-WAN的作者,这清楚地表明我已经认真地研究了这个问题:G-WAN既比所有其他Web服务器(没有处理)和所有其他Web应用程序服务器(您可以想象的任何处理)都快。
是的,ANSI C还可以处理更多的静态内容 - 使用功能较弱的CPU(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"); ...
菲律宾比索
number_format($amount, 2); ...
安西 C
sprintf("%'.2f", amount);
“...”意味着一些预配置或后处理是必要的。ANSI C显然更易于使用和记忆。
当 PHP 有超过 5900 个 API 调用(C# 和 Java 就在不远处)时,找到正确的 API 调用本身就是一个挑战。找到这个(然后发现原生API调用的实现有多糟糕),下次需要它时通过hart学习它的时间,所有这些时间都剥夺了你解决应用程序问题所需的时间。
我已经读过(上面)PHP比ANSI C更简洁?那么为什么使用而不是?为什么有一个如此愚蠢的复杂“相当数千”的语法?"//:: this is a comment ::"
"// this is a comment"
另一个常见的论点是Java等为Web应用程序提供专用调用。
我无法找到任何在Java中转义HTML的东西,所以我写了我的版本:
// 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没有这个现在完全愚蠢(过时)的要求。
那么,现代语言是否声称取得了如此明显的进步呢?我仍然在寻找它。
真诚地
皮尔。