ต่อเนื่องจากข่าวเมื่อเดือนสิงหาคม มาตรฐาน C++0x ผ่านการโหวตเป็นทางการ, เปลี่ยนชื่อเป็นมาตรฐาน C++11
ล่าสุดทาง ISO ออกมาประกาศมาตรฐาน ISO/IEC 14882:2011 หรือชื่ออย่างเป็นทางการ Information technology – Programming languages – C++ เรียบร้อย โดยภาษา C++11 ถือเป็นการปรับปรุงครั้งใหญ่ของ C++ นับตั้งแต่ปี 1998
ของใหม่ใน C++11 ส่วนมากดึงมาจากภาษาและแพลตฟอร์มการพัฒนาที่เกิดขึ้นภายหลัง เช่น lambda function หรือการปรับปรุงหน่วยความจำให้รองรับมัลติคอร์ (ยังไม่มี garbage collector เพราะทำไม่ทัน แต่จะตามมาในรุ่นอนาคตจากนี้)
Herb Sutter ผู้ประสานงานยกร่างมาตรฐาน C++11 (ทำงานอยู่ที่ไมโครซอฟท์) ให้สัมภาษณ์ว่าระยะหลัง โลกของโปรแกรมมิ่งหันมาสนใจการเขียน managed code มากขึ้น แต่งานที่ยังต้องใช้ C++ ก็คงอยู่ไม่หายไปไหน และเมื่อปรับปรุงเป็น C++11 แล้ว ตัวภาษาจะเขียนง่าย โค้ดสะอาดกว่าเดิม ในขณะที่ "ประสิทธิภาพ" อันเป็นจุดขายของ C++ ก็ยังอยู่เหมือนเดิม
ที่มา - ISO, The Register
Comments
แปลกใจนิดหน่อย ว่า ไมโครซอฟท์ก็ช่วยพัฒนา C++ ด้วย
นึกว่าไปทำ C# ของตัวเองเป็นหลักซะอีก
รู้สึกว่า C,C++ มีอายุยืนยาวมาก ถ้าเทียบความนิยมที่ยังมีอยู่
เขายังต้องกินต้องใช้อยู่ครับ พัฒนาไปการใช้งานเขาก็ง่ายขึ้นด้วย :)
ถ้าผมเข้าใจไม่ผิด ตัวฐาน Windows พัฒนาจาก C หรือ C++ อยู่ครับ
ล่าสุดทาง ISO ออกมาประกาศมารฐาน <<< มารฐาน
I think he's Herb Sutter instead of Bob Sutter na krub.
C กับ C++ จะทำงานกับ Hardware ได้เร็วกว่า ยังไงก็ไม่ตายหรอกครับ
C# เอง Microsoft ก็ดันสุดๆ ผมว่า tools ของ Ms ในการเขียนโปรแกรมค่อนข้างดีมากๆ หลายตัวน่าใช้มากๆ ติดอยู่แค่ราคาค่อนข้างสูงมาก ไปโหลดตัว express มาใช้ก็ไม่ค่อยซะใจเท่าไหร่ ตอนนี้เลยยังพึ่ง Java ไปก่อน
C++ ถ้าทำ Tool ให้ดีแบบ Borland C++ Builder ละน่าใช้มากเลย มากกว่า C# อีก
เพราะมันเข้าถึง OS โดยตรงมากกว่า แล้วก็ library ต่างๆส่วนใหญ่ก็เป็น C++ ด้วย
@fb.me/frozenology@
แต่ managed code มันให้ความสะดวกในการพัฒนาแอพฯกว่านะครับ เหมือนแข่งดาบจริง ใส่เกราะ ใส่หมวกเครื่องป้องกันพร้อม บล็อคดาบ(เจอบั๊ก)ไม่ทัน ก็ยังเห็นว่าดาบฟันมาจากทางไหน โดนตรงไหน
ตรงข้าม พวกโปรฯ (C,C++) ชอบแข่งฟันดาบแบบไม่ใส่เครื่องป้องกัน บอกว่าใบหน้าไม่โดนลม ไม่ชอบ!!! พอแข่งจริง โดนฟันตูมที รู้ตัวก็ตายไปแล้ว ยังมางงอีกว่าตายได้ไง โดนฟันตรงไหน?!? แล้วอย่างงี้เมื่อไรจะเก่งล่ะ (core dump ตลอด)
คือถ้าคุณต้องพัฒนาพวก library, native hardware อันนั้นก็คงต้องเล่นของจริงอย่างเดียว แต่เดี๋ยวนี้เครื่องมันเร็วพอที่จะรองรับการรัน managed code แล้วนี่ครับ
ไมโครซอฟต์พูดแบบนี้มาตั้งแต่ตอนเปิดตัว .net เมื่อ 10 ปีที่แล้ว แล้วครับ
แต่ถือได้ว่า microsoft คาดการณ์ผิดแบบร้ายแรง เพราะไม่กีปีหลังมานี่
โลก computer ประสบกับปัญหาความร้อนของ cpu ที่ทำให้ไม่สามารถเพิ่ม
clock speed ทวีคูณขึ้นไปได้เหมือนแต่ก่อน และระยะหลัง Apple พิสูจน์ให้เห็นแล้วว่า
การใช้ native code อย่างเหมาะสมสามารถทำให้ได้ระบบที่น่าใช้ และกินทรัพยากร
(cpu, memory, battery) น้อยกว่าระบบแบบ managed code มากๆ
รวมไปถึงแนวโน้มกาารมี device ที่เล็กลงเรื่อยๆ เช่น tablet และ smart-phone
ยิ่งทำให้การใช้ native code มีความจำเป็นสูงขึ้นมากๆ
Android เปิดตัวมาโดยมี Dalvik VM แต่สุดท้ายก็ต้องเพิ่มระบบ native RenderScript
เพื่อให้มีประสิทธิภาพที่สามารถเทียบเคียงกับ iOS ได้
ทิศทางของ Windows 8 ที่ขุดเอา COM/OLE มาปรับปรุงใหม่ และการ reimplement
WPF ใหม่ด้วย native code แสดงให้เห็นได้ชัดเจนว่าไมโครซอฟต์เองก็ให้ความสำคัญ
กับ managed code น้อยลงไปมาก
native code มี core dump ..
manage code ก็มี NullReferenceException ครับ :)
มันสำคัญด้วยกันทั้งคู่ล่ะครับ ทุกวันนี้เรามี App ที่ต้องใช้ความเร็ว และ App ที่ต้องเปลี่ยนแปลงได้เร็วทันความต้องการของโลก
(แต่อย่างหลังเริ่มจะโดน Web App กลืนเข้าไปเรื่อยๆ แล้วนะ 55)
ถ้าสามารถสร้างภาษาที่เป็น Native ที่เร็วแต่สามารถเขียนได้ง่ายและใช้เวลาพัฒนาโปรแกรมน้อยได้ด้วยนี่มันจะเป็น Ideal มาก ซึ่งผมว่าเรายังไม่ถึงจุดนั้นนะ
ผมสนใจ Managed Code ที่เร็วเท่า Native มากกว่าครับ
LLVM มั้ยครับ?
+1
"Apple พิสูจน์ให้เห็นแล้วว่า การใช้ native code อย่างเหมาะสมสามารถทำให้ได้ระบบที่น่าใช้ และกินทรัพยากรน้อยกว่า"
manage code ที่สะดวกก็เพราะเครื่องมือแบบ visual c# ไม่ใช่หรือ ลองไปครีโปรเจ็ค c++ ดูแล้วเหมือนกับว่าเครื่องมือไม่ค่อยจะพัฒนาสักเท่าไร
กลายเป็นว่าคนเขียนต้องมาเช็คและตรวจสอบโค้ดเอง
สำหรับ manage กับงานหนักๆแบบเกม ก็ยังไม่มีเกมหนักๆเกมไหนใช้
จะมีแต่อินดี้ที่ใช้เพราะง่ายและรวดเร็ว
พวก engine ใหญ่ๆ ใช้ native หมด
เครื่องสมัยนี้เร็วก็จริง แต่นักพัฒนาก็ไม่ควรตะมักง่ายสักแต่ใส่โค้ดพัฒนาเหมือนกัน
เพราะถ้าใช้จริงๆละก็คงได้ต้องถอยเครื่องระดับ high end
ส่วนเรื่องความปลอดภัย มันก็ขึ้นกับคนเขียนอีกแหละว่า เขียนให้มีจุรั่วเยอะแค่ไหน
managed code ก็ยังเขียนให้รั่วได้เลย
@fb.me/frozenology@
"One of the biggest changes in the spec helps make C++ a little more Java-ier" อู้ววววว
แฟนพันธุ์แท้สตีฟจ็อบส์ | MacThai.com
ที่บอกว่าเวอร์ชั่นต่อไปจะมี garbage collector หมายความว่า C++ เวอร์ชั่นต่อไปจะ จะมีความสามารถของ
Manage code หรอครับ
จะได้ใช้เมื่อไหร่น้อ
C++ พ่อ C ทุกสถาบัน 555555
C++ จงเจริญ :)