Bersenandung...
Sepertinya saya agak terlambat dalam diskusi ini - tetapi saya baru menemukannya sekarang. Dan saya berterima kasih kepada kalian semua atas masukan yang begitu banyak.
Saya penulis G-WAN, yang menjelaskan bahwa saya telah serius menangani masalah ini: G-WAN lebih cepat daripada semua Server Web lainnya (tanpa pemrosesan) dan semua Server Aplikasi Web lainnya (pemrosesan apa pun yang dapat Anda bayangkan).
Ya, ANSI C juga memungkinkan untuk memproses lebih banyak konten statis - dengan CPU yang kurang kuat (ANSI C tidak hanya tentang membuat konten dinamis terbang).
Omong-omong, G-WAN menggunakan skrip C (tidak diperlukan compiler dan linker C) sehingga siklus / penundaan kompilasi / penautan tidak ada.
Dalam proses membandingkan G-WAN dengan .NET Java dan PHP, saya menulis aplikasi serupa dalam 4 bahasa: http://gwan.ch/source/
Dan, yang membuat saya kaget, bahasa skrip modern tidak lebih mudah digunakan.
Salah satu bagian dari pekerjaan yang sangat membuat frustrasi adalah mencari dengan putus asa panggilan API 'ajaib' yang akan melakukan apa yang ingin Anda lakukan.
Pikirkan tentang bagaimana melakukan 'ribuan cantik' dalam:
C #
String.Format("{0:n}"...
Jawa
new DecimalFormat("0.00"); ...
PHP
number_format($amount, 2); ...
ANSI C
sprintf("%'.2f", amount);
"..." berarti bahwa beberapa konfigurasi awal, atau pemrosesan pasca, diperlukan. ANSI C jelas lebih mudah digunakan dan diingat.
Ketika PHP memiliki lebih dari 5.900 panggilan API (C # dan Java tidak jauh dari sana), menemukan panggilan API yang tepat merupakan tantangan tersendiri. Waktu yang terbuang untuk menemukan ini (dan kemudian untuk menemukan seberapa buruk penerapan panggilan API asli ), waktu untuk mempelajarinya untuk saat berikutnya Anda membutuhkannya, selama ini membuat Anda kehilangan waktu yang diperlukan untuk menyelesaikan aplikasi Anda masalah.
Saya telah membaca (di atas) bahwa PHP lebih ringkas daripada ANSI C? Lalu mengapa menggunakan "//:: this is a comment ::"
daripada"// this is a comment"
? Mengapa memiliki sintaks 'cukup ribuan' yang begitu rumit?
Argumen umum lainnya adalah bahwa Java dan sejenisnya menyediakan panggilan khusus untuk aplikasi Web.
Saya tidak dapat menemukan apa pun untuk menghindari HTML di Java, jadi saya menulis versi saya:
// 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();
}
Apakah Anda yakin bahwa kode yang sama di ANSI C akan lebih kompleks? Tidak, itu akan jauh lebih sederhana dan lebih cepat.
Java (berasal dari C) mengharuskan programmer untuk menghubungkan string multi-baris dengan '+'
C # (berasal dari C) mengharuskan programmer untuk menghubungkan string multi-baris dengan '+'
PHP (berasal dari C) mengharuskan programmer untuk hubungkan string multi-baris dengan '.'
ANSI C tidak memiliki persyaratan yang sekarang sepenuhnya bodoh (usang).
Jadi, apakah kemajuan yang begitu nyata diklaim oleh bahasa modern? Saya masih mencarinya.
Hormat kami,
Pierre.