ฮึบ ...
ดูเหมือนว่าฉันจะคุยช้าไปหน่อย แต่ตอนนี้ฉันเพิ่งค้นพบ และฉันรู้สึกขอบคุณทุกท่านสำหรับข้อมูลมากมาย
ฉันเป็นผู้เขียนของ G-WAN ซึ่งทำให้ชัดเจนว่าฉันได้ดำเนินการอย่างจริงจังในเรื่องนี้: G-WAN ทั้งเร็วกว่าเว็บเซิร์ฟเวอร์อื่น ๆ ทั้งหมด (ไม่มีการประมวลผล) และเซิร์ฟเวอร์ Web Application อื่น ๆ ทั้งหมด (การประมวลผลใด ๆ ที่คุณสามารถจินตนาการได้)
ใช่ ANSI C ยังช่วยให้สามารถประมวลผลเนื้อหาแบบคงที่ได้มากขึ้นด้วยซีพียูที่มีประสิทธิภาพน้อยกว่า (ANSI C ไม่ได้เป็นเพียงแค่การทำให้เนื้อหาไดนามิกบินเท่านั้น)
อย่างไรก็ตาม G-WAN ใช้สคริปต์ C (ไม่จำเป็นต้องใช้คอมไพเลอร์ C และตัวเชื่อมโยง) ดังนั้นจึงไม่มีวงจรการคอมไพล์ / ลิงก์ / หน่วงเวลา
ในกระบวนการเปรียบเทียบ G-WAN กับ. NET Java และ PHP ฉันเขียนแอปพลิเคชันที่คล้ายกันในทั้ง 4 ภาษา: http://gwan.ch/source/
และที่ทำให้ฉันตกใจคือภาษาสคริปต์สมัยใหม่คือ ไม่ได้ใช้ง่ายกว่านี้
ส่วนหนึ่งของงานที่น่าหงุดหงิดเป็นพิเศษคือ ค้นหาการเรียก API 'เวทย์มนตร์' ที่จะทำในสิ่งที่คุณต้องการทำ
ลองคิดดูว่าจะทำอย่างไรให้ 'สวยหลายพัน' ใน:
ค#
String.Format("{0:n}"...
Java
new DecimalFormat("0.00"); ...
PHP
number_format($amount, 2); ...
ANSI C.
sprintf("%'.2f", amount);
"... " หมายความว่าจำเป็นต้องมีการกำหนดค่าล่วงหน้าหรือการประมวลผลภายหลัง ANSI C ใช้งานง่ายกว่าและจำง่ายกว่าอย่างชัดเจน
เมื่อ PHP มีการเรียก API มากกว่า 5900 รายการ (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 ไม่มีข้อกำหนดโง่ (ล้าสมัย) อย่างสมบูรณ์ในขณะนี้
ดังนั้นความก้าวหน้าที่ชัดเจนในการอ้างสิทธิ์โดยภาษาสมัยใหม่คืออะไร? ฉันยังคงมองหามัน
ขอแสดงความนับถือ
ปิแอร์.