Tags:
Node Thumbnail

กูเกิลประกาศบริจาคเงินมูลค่า 1 ล้านดอลลาร์ ให้มูลนิธิ Rust Foundation เพื่อนำไปพัฒนาภาษา Rust ให้ทำงานร่วมกับโค้ดภาษา C++ ได้ดียิ่งขึ้น

กูเกิลนำ Rust มาใช้งานใน Android และผลิตภัณฑ์อื่นๆ มาระยะหนึ่งแล้ว รวมถึงเป็นสปอนเซอร์ร่วมก่อตั้ง Rust Foundation ในปี 2021 แต่ก็ชี้ว่า Rust ยังไม่สามารถทำงานร่วมกับโค้ดเก่าที่เขียนด้วย C++ ได้ทุกกรณี จึงเข้ามาสนับสนุนให้ Rust ทำงานร่วมกับ C++ ผ่านโครงการต่างๆ ของ Rust Foundation ซึ่งทางมูลนิธิก็ตั้งทีม Interop Initiative ขึ้นมารับผิดชอบภารกิจนี้

Tags:
Node Thumbnail

รายงานดัชนีความนิยมภาษาโปรแกรม TIOBE Index ประจำเดือนกรกฎาคม 2023 มีประเด็นที่น่าสนใจ โดยหลังจาก C++ แซง Java มีความนิยมขึ้นมาเป็นอันดับ 3 แทน ตั้งแต่ปลายปีที่แล้ว แนวโน้มส่วนแบ่งของ C++ นั้นเข้าใกล้อันดับ 2 ภาษา C มากขึ้น ระยะห่างเหลือเพียง 0.76%

ส่วนอันดับอื่นที่ TIOBE พูดถึง JavaScript ขึ้นมาเป็นอันดับ 6 สูงสุดเท่าที่เคยทำได้ เช่นเดียวกับ Matlab, Scratch และ Rust ขึ้นมาอันดับสูงสุดที่ 10, 12 และ 17 ตามลำดับ ขณะที่ COBOL กลับขึ้นมาในอันดับ 20

อันดับ 1-2-3 ได้แก่ Python (13.42%), C (11.56%) และ C++ (10.80%)

ที่มา: TIOBE

Tags:
Node Thumbnail

รายงานดัชนีความนิยมภาษาโปรแกรม TIOBE Index ประจำเดือนธันวาคม 2022 เกิดความเปลี่ยนแปลงที่น่าสนใจ หลัง Java ความนิยมตกลงไปอยู่อันดับสี่ และ C++ แซงขึ้นมาเป็นอันดับสาม ถือเป็นครั้งแรกในประวัติศาสตร์ TIOBE ที่เริ่มตั้งแต่ปี 2001 ที่ C++ ได้รับความนิยมสูงกว่า Java และถือเป็นครั้งแรกที่ Java หลุด Top 3

แชมป์ยังเป็นของ Python ที่แซงหน้า C ขึ้นมาเป็นอันดับหนึ่งเมื่อปีที่แล้ว ส่วนการเปลี่ยนแปลงอื่นๆ ที่น่าสนใจในรอบเดือนนี้คือ SQL แซง Assembly ขึ้นมาอยู่อันดับ 8, ภาษา Go ไต่จากอันดับ 19 ขึ้นมาอยู่อันดับ 12, ภาษา Swift ร่วงจากอันดับ 10 ลงมาอยู่อันดับ 15

Tags:
Node Thumbnail

ทีมพัฒนาจากกูเกิลเสนอโครงการภาษา Carbon ภาษาโปรแกรมมิ่งใหม่ที่ตั้งเป้าหมายว่าจะใช้ทดแทนภาษา C++ มุ่งเป้าองค์กรที่มีโครงการภาษา C++ ขนาดใหญ่ และโยกย้ายไปภาษาอื่นได้ยาก โดย Carbon มีเป้าหมายที่จะทำงานร่วมกับ C++ ได้เป็นเนื้อเดียวกัน

โค้ดภาษา Carbon สามารถเรียกโค้ด C++ ได้ และโค้ด C++ ก็เรียกโค้ด Carbon ได้ ในแง่ประสิทธิภาพและการทำงานกับฟีเจอร์ระดับล่างของซีพียูก็ทำได้ระดับเดียวกัน รวมถึงในอนาคตก็จะพัฒนาเครื่องมือที่แปลงโค้ดภาษา C++ เป็น Carbon โดยอัตโนมัติได้ด้วย แม้จะทำงานร่วมกันได้อย่างแนบแน่น แต่ภาษา Carbon ก็จะพยายามสร้างฟีเจอร์ของตัวเอง เช่น พยายามปรับปรุงความปลอดภัยในการในงานหน่วยความจำให้ดีขึ้น

Tags:
Node Thumbnail

ไมโครซอฟท์โชว์ฟีเจอร์ Hot Reload ตัวใหม่ของ Visual Studio 2022 Preview 2 ที่รองรับทั้งการเขียน .NET และ C++ แบบเนทีฟ

Hot Reload เป็นฟีเจอร์ของ IDE หลายตัวที่ช่วยให้แก้โค้ดแล้วเห็นการเปลี่ยนแปลงทันที ไม่ต้องรอรีสตาร์ตโปรแกรมที่เขียนอีกครั้ง ทำให้จังหวะการทำงานของโปรแกรมเมอร์เร็วขึ้นมาก อย่างไรก็ตาม การทำ Hot Reload ขึ้นกับภาษาและแพลตฟอร์มที่ใช้งานด้วย

ก่อนหน้านี้ Visual Studio รองรับ Hot Reload เฉพาะการเขียน .NET และ XAML สำหรับส่วน UI เท่านั้น รอบนี้ไมโครซอฟท์กลับไปทำการบ้านมาใหม่ ให้ Hot Reload เวอร์ชันใหม่รองรับการเขียนโปรแกรมหลากหลายมากขึ้น ได้แก่

Tags:
Node Thumbnail

ไมโครซอฟท์มีส่วนขยาย C/C++ ให้กับ Visual Studio Code มานานแล้ว (และเป็นส่วนขยายยอดนิยมอันดับ 2 ของ VS Code รองจาก Python) ล่าสุดไมโครซอฟท์ออกเวอร์ชัน 1.0 ของส่วนขยายตัวนี้สักที

ของใหม่ที่สำคัญในเวอร์ชันนี้คือ รองรับการใช้งานบนลินุกซ์สถาปัตยกรรม ARM/ARM64 ทำให้สามารถใช้ VS Code เขียนแอพ C++ บนอุปกรณ์อย่าง Raspberry Pi ได้แล้ว, เพิ่มตัวปรับแต่งคอนฟิก C++ IntelliSense และตั้งค่าฟอร์แมตของโค้ด C++ แบบเดียวกับ Visual Studio ตัวเต็มได้

Tags:
Node Thumbnail

กลุ่มมาตรฐาน ISO ลงมติเอกฉันรับรอง C++20 เข้าเป็นมาตรฐาน โดยฟีเจอร์ทั้งหมดได้รับเห็นชอบแล้ว และจะตีพิมพ์เผยแพร่ตัวมาตรฐานเป็นเล่มสมบูรณ์ภายในปลายปีนี้ โดยฟีเจอร์สำคัญ 4 ประการของ C++20 ได้แก่

Tags:
Node Thumbnail

บริการ AWS Lambda เปิดตัวเมื่อปี 2014 และเป็นผู้บุกเบิกการประมวลผลแบบ serverless ที่ไม่ต้องเปิดเครื่องค้างไว้รอรับคำสั่งตลอดเวลา ก่อนหน้านี้ Lambda รองรับโค้ดภาษา Java, Node.js, C#, Python และเมื่อต้นปีนี้คือ Go

ล่าสุด AWS Lambda ประกาศรองรับการนำเข้ารันไทม์ภาษาใดก็ได้แล้ว (custom runtime) พร้อมทั้งประกาศรองรับภาษาใหม่คือ Ruby, C++ และ Rust ผ่านระบบรันไทม์ใหม่นี้

Tags:
Node Thumbnail

มาตรฐาน C++ ในช่วงหลังๆ มีพัฒนาการอย่างต่อเนื่องหลายอย่างนับแต่ C++11 เป็นต้นมา แต่หลายครั้งคอมไพลเลอร์ก็รองรับไม่ครบหรือบางฟีเจอร์ก็ใช้งานได้ยาก ตอนนี้กูเกิลเปิดตัวไลบรารี Abseil สำหรับการทำ abstract เพื่อรองรับฟีเจอร์ใหม่ๆ

Tags:
Node Thumbnail

มาตรฐานภาษา C++ ในช่วงหลังอยู่ภายใต้การดูแลขององค์กรกลาง ISO และเราเห็นการพัฒนาสเปกของภาษา C++ โดยเพิ่มฟีเจอร์ใหม่ๆ เข้ามาทุกสามปี นับตั้งแต่ C++11, C++14 และล่าสุด C++17 ที่ตอนนี้ยังมีสถานะเป็นฉบับร่าง และมีกำหนดจะออกในปีนี้ (หรืออาจเป็น C++18 ถ้ากระบวนการล่าช้า)

Tags:
Node Thumbnail

CERT หน่วยงานแจ้งเตือนช่องโหว่ความปลอดภัยซอฟต์แวร์ภายใต้สถาบันวิศวกรรมซอฟต์แวร์ (Software Engineering Institute - SEI) ประกาศปล่อยมาตรฐานการเขียนโค้ดให้ปลอดภัยสำหรับภาษา C++ ที่รวมกฎ 83 รายการสำหรับการเขียนโค้ดให้ปลอดภัย หลังจากก่อนหน้านี้ทาง CERT เคยปล่อยคู่มือสำหรับ ภาษา C, ภาษาจาวา, ภาษา Perl, และการเขียนแอปบนแอนดรอยด์

กฎบางข้อจะตรงกันหลายภาษาเช่นเช็คอินพุตว่าปิดท้ายสตริงด้วย null เสมอ แต่บางข้อก็จะค่อนข้างเฉพาะเช่นการใช้ lambda ในภาษา C++14

ทุกกฎมีตัวอย่างโค้ดที่มักเขียนผิดให้ แม้จะค่อนข้างยาวแต่ก็อ่านไม่ยากนัก ผู้สนใจน่าลองไล่จากต้นจนจบกัน

Tags:
Node Thumbnail

ไมโครซอฟท์เปิดซอร์สของแพลตฟอร์ม .NET มาตั้งแต่สองปีที่แล้ว แต่การพอร์ตไปใช้งานบนแพลตฟอร์มใหม่ๆ ก็ยังทำได้ยาก ตอนนี้ทีมงาน .NET ก็ออกมาระบุว่ากำลังทดลองแนวทางใหม่คือการแปลงโค้ด .NET ให้เป็น C++

แนวทางนี้ทำให้กระบวนการคอมไพล์ได้ไฟล์ executatable ของระบบปฎิบัติการโดยตรง ไม่ใช่ไฟล์ที่ต้องรันบนรันไทม์ของ .NET อีกที แม้ว่าจะต้องใช้รันไทม์ในรูปแบบไลบรารีอยู่ก็ตาม

การทดลองนี้ยังอยู่ในขั้นต้น ปัญหาหลายอย่างยังไม่มีทางออกอย่างตกผลึก การแปลงโค้ดยังไม่สมบูรณ์ อย่างไรก็ดีหากการแปลงโค้ดทำได้สำเร็จ โค้ดที่ได้จะสามารถไปรันบนทุกแพลตฟอร์มที่คอมไพล์เลอร์ C++ ไปถึง

Tags:
Node Thumbnail

หลังจากไมโครซอฟท์ซื้อ MinecraftEDU (คนละส่วนกับตัวเกมหลัก) แล้วเตรียมออก Minecraft: Education Edition เพื่อบุกภาคตลาดการศึกษา

ล่าสุด Jack Schofield จาก ZDNet รายงานว่าตัวเกมจะเขียนขึ้นด้วยภาษา C++ ต่างจากตัวเกมหลักที่เขียนขึ้นด้วยภาษา Java ซึ่งทำให้ม็อดเก่าๆ ใช้งานไม่ได้ และอาจกระทบกับสังคมผู้เล่นเกม ที่เป็นหนึ่งในตัวแปรสำคัญของการประสบความสำเร็จของ Minecraft

การเปลี่ยนมาใช้ภาษา C++ จะช่วยแก้ปัญหาอาการกินสเปคหนักที่เกิดขึ้นในเกมเวอร์ชัน Java และจะรองรับการรันบนหลายแพลตฟอร์ม ตัวเกมจะมีฟีเจอร์อย่างการรองรับโหมดผู้เล่นหลายคนแบบ peer-to-peer ในห้องเรียน และผู้สอนสามารถใส่คำสั่งต่างๆ ได้มากกว่าเดิม

Tags:
Node Thumbnail

โครงการนำ Clang มาใช้คอมไพล์โค้ดภาษา C++ ของไมโครซอฟท์ มีความก้าวหน้าอย่างจับต้องได้อีกขั้นเมื่อไมโครซอฟท์ได้นำเสนอวิธีการคอมไพล์โค้ดวินโดวส์แอพด้วย Clang ในงาน CPPCon 2015 ที่ผ่านมา และคาดว่าจะเพิ่มวิธีการคอมไพล์นี้ในชุดอัพเดตสำหรับ Visual C++ ที่จะออกมาในเดือนหน้าด้วย

Tags:
Node Thumbnail

Bjarne Stroustrup บิดาภาษา C++ ร่วมกับ Herb Sutter ออกคู่มือแกนของภาษา C++ เพื่อสนับสนุนให้คนเขียนภาษา C++ ในรูปแบบสมัยใหม่ โดยจะเปิดเป็นโครงการโอเพนซอร์สที่เปิดให้คนอื่นๆ มาดัดแปลงไปเป็นข้อแนะนำในองค์กรได้

นอกจากคำแนะนำในการเขียนโปรแกรมแล้ว โครงการนี้ยังมาพร้อมกับโครงการคู่ขนานอีกสองโครงการ ได้แก่

Tags:
Node Thumbnail

Avi Kivity นักพัฒนาผู้สร้าง KVM เปิดตัวระบบฐานข้อมูล NoSQL ที่ชื่อว่า ScyllaDB ทำงานเข้ากับฐานข้อมูล Cassandra ผ่าน CQL

ความต่างของ ScyllaDB คือมันพัฒนาด้วยภาษา C++ บนเฟรมเวิร์ค Seastar ขณะที่ Cassandra พัฒนาด้วยจาวา

ในงาน Cassandra Summit ทาง Avi นำเสนอผลการทดสอบประสิทธิภาพของ ScyllaDB เทียบกับ Cassandra แสดงให้เห็นว่าประสิทธิภาพการทำงานดีขึ้นกว่า 8 เท่าตัว

ตอนนี้โครงการอยู่ในสถานะเบต้า และคาดว่าจะปล่อยตัวเต็มได้ภายในเดือนมกราคมนี้

ที่มา - ScyllaDB

Tags:
Node Thumbnail

Matt Bierner สาธิตการใช้ Template ในภาษา C++ ด้วยการเขียนเกม Tetris ที่ต้องเล่นขณะ "คอมไพล์" เท่านั้นโดยโค้ดที่ได้จะแสดงหน้าจอล่าสุดของเกมออกมา ชื่อว่า Super Template Tetris

ไฟล์เซฟของเกมนี้เป็นไฟล์ header ในภาษา C++ ที่ใช้ template อย่างหนักเพื่อเก็บสถานะล่าสุดของตัวเอง (ดูตัวอย่างไฟล์เริ่มต้นเกมใหม่)

ผู้เล่นจะควบคุมการเคลื่อนไหวของบล็อคด้วยการประกาศ define ให้กับคอมไพล์เลอร์ขณะที่กำลังคอมไพล์โปรแกรม เช่น -D RIGHT เพื่อไปทางขวา และ -D LEFT เพื่อไปทางซ้าย

โค้ดทั้งหมดอยู่บน GitHub ดาวน์โหลดมาเล่นกันได้

Tags:
Topics: 
Node Thumbnail

เมื่อไม่นานนี้ นายลี เซียนลุง นายกรัฐมนตรีสิงคโปร์ ได้กล่าวปาฐกถาในงาน Founders Forum โดยส่วนหนึ่งของปาฐกถามีเรื่องราวที่ตนเองเขียนโปรแกรมภาษา C++ เพื่อแก้ Sudoku ด้วยตัวเอง

หลังจากนั้นไม่นาน นายลีก็ได้โพสต์ภาพ source code ของโปรแกรมดังกล่าวลงใน Facebook page ของตนเอง พร้อมเสียงตอบรับล้นหลามจากผู้ติดตาม

( ชมภาพ source code ท้ายข่าว )

เขาระบุในโพสต์ว่า โปรแกรมนี้เป็นโปรแกรมง่ายๆ สามารถรันบน DOS ได้ วิธีใช้คือให้ใส่ข้อมูลของกระดาน Sudoku บรรทัดต่อบรรทัด หลังจากนั้นโปรแกรมจะแสดงผลวิธีแก้ Sudoku กระดานนั้นออกมา และหากโปรแกรมเจอมากกว่าหนึ่งวิธี มันก็จะแสดงผลออกมาทั้งหมด พร้อมแสดงผลวิธีการที่โปรแกรมหาคำตอบด้วย!

Tags:
Node Thumbnail

นายลี เซียนลุง นายกรัฐมนตรีสิงคโปร์ บุตรชายคนโตของนายลี กวนยู กล่าวปาฐกถาในงาน Founders Forum แสดงวิสัยทัศน์ถึงนโยบาย Smart Nation ของสิงคโปร์ แม้เนื้อหาส่วนมากจะพูดถึงภาพรวมของนโยบายไอทีประเทศ แต่ช่วงหนึ่งเขาก็พูดถึงเรื่องส่วนตัว ว่าเขาเคยเพลิดเพลินกับการเขียนโปรแกรม โดยโปรแกรมสุดท้ายที่เขาเขียน คือโปรแกรมแก้ Sudoku ที่เขียนด้วย C++ เขาระบุว่าเพราะเขาเขียน C++ จึงค่อนข้างล้าสมัยแล้ว และลูกชายทั้งสองคนของเขาเรียนด้านไอทีจบจาก MIT แนะนำให้เขาอ่านหนังสือสอนภาษา Haskell เขาคิดว่าจะอ่านมันหลังจากเกษียณอายุแล้ว

Tags:
Node Thumbnail

มาตรฐาน C++ รุ่นใหม่ผ่านการโหวตไปแล้วเมื่อวันศุกร์ที่ผ่านมา ทำให้มาตรฐาน C++14 สามารถออกได้ตามกำหนด ต่างจาก C++11 ที่เลยกำหนดไปหลายปี (ชื่อเดิมคือ C++0x แต่เลื่อนจนออกมาตรฐานได้ปี 2011)

C++14 เพิ่มส่วนขยายเข้ามาหลายส่วน เช่น การรองรับ Transactional Memory ที่จะทำให้เขียนโปรแกรมมัลติคอร์ได้ง่ายขึ้น, นิยามพฤติกรรมในหลายส่วน, ปรับปรุงประสิทธิภาพการทำงาน

มาตรฐาน C++98 ใช้เวลาห้าปีก่อนจะมีคอมไพล์เลอร์ที่รองรับเต็มรูปแบบตัวแรก ส่วน C++11 ใช้เวลาสองปี

ที่มา - ISO CPP

Tags:
Node Thumbnail

กูเกิลเปิดโครงการ FlatBuffers สำหรับนักพัฒนาเกมที่ต้องการเซฟไฟล์แบบไบนารี ทำให้สามารถเซฟและอ่านไฟล์ได้จากทั้ง C++ และจาวา รวมถึงสามารถอ่านและเขียนไฟล์ json ได้อีกด้วย

ฟอร์แมต FlatBuffers จะซ้ำซ้อนกับ Protobuf ของกูเกิลเองพอสมควร แต่ FlatBuffer จะใช้พื้นที่น้อยกว่า ความต่างที่ชัดเจนคือ FlatBuffers จะตัดหมายเลขประจำฟิลด์ต่างๆ ออกทำให้ทำงานระหว่างเวอร์ชั่นของ API ไม่ได้ แต่ความได้เปรียบคือ FlatBuffers จะไม่ใช้หน่วยความจำเพิ่มเติมจากขนาดไบนารีที่อ่านขึ้นมา ต่างจากโปรโตคอลอื่นๆ ที่ต้องแตกไบนารีขึ้นมาเสียก่อน

รองรับแพลตฟอร์ม ลินุกซ์, วินโดวส์, OS X, และแอนดรอยด์

Tags:
Node Thumbnail

นักพัฒนาของ LLVM คู่แข่ง GCC (อ่านรายละเอียดได้ในข่าวเก่า) ได้ประกาศเปิดตัว LLVM 3.3 ที่รองรับภาษา C++11 อย่างเป็นทางการ โดย frontend ของ LLVM ที่ใช้คอมไพล์ภาษา C/C++ ชื่อ Clang จะรองรับ AArch64 (ชื่อในกลุ่ม open-source ของ ARMv8), AMD R600 GPU, S390 และบางส่วนของ IBM System Z โดยนักพัฒนาได้กล่าวว่า LLVM 3.3 นี้เป็น "คอมไพเลอร์ที่รองรับมาตรฐาน C++11 รวมทั้งไลบราลี่สำคัญ ๆ ของ C++11 อย่าง std::regex"

Clang ยังมีเครื่องมือ C++11 migration เพื่อช่วยนักพัฒนาอัพเกรดโค้ดของพวกเขาเพื่อรองรับมาตรฐานใหม่อีกด้วย

Tags:
Node Thumbnail

GCC เริ่มพัฒนาด้วย C++ มาตั้งแต่กลางปี 2010 ระหว่างนี้กระบวนการพัฒนาเกิดขึ้นหลายอย่าง โดยเฉพาะกำหนดมาตรฐานว่าต้องใช้ฟีเจอร์ใดของ C++ บ้าง

ในแง่ของผู้ใช้งานคงไม่ต่างอะไรนัก แต่ฟีเจอร์อย่างการจัดการหน่วยความจำตาม scope ของโค้ด จะช่วยให้ตัว GCC คืนหน่วยความจำเร็วขึ้น ทำให้การใช้หน่วยความจำลดลง

ฟีเจอร์ของ GCC 4.8 ใหม่ที่สำคัญ เช่น

Tags:
Node Thumbnail

ถึงแม้โนเกียจะหันไปสนใจ Windows Phone เป็นหลักแล้ว แต่เทคโนโลยีอย่าง Qt ก็ยังไม่ตายและยังพัฒนาอย่างต่อเนื่อง

ล่าสุดมีข้อมูลว่า Qt รุ่นหน้า 5.0 จะใช้ประโยชน์จากฟีเจอร์ใหม่ๆ ของภาษา C++11 ที่เพิ่งออกเมื่อปีที่แล้ว เช่น lambda expressions for slots, UTF-16 unicode literals, the constexpr keyword, static_assert, virtual function overriding, final attribute, deleted functions/members

Tags:
Node Thumbnail

เฟชบุ๊กเป็นหนึ่งในบริษัทยุคใหม่ที่เปิดซอร์สโครงการใหญ่ๆ ออกมาอย่างต่อเนื่อง ก่อนหน้านี้ที่เด่นๆ คือ HipHop ที่เป็นคอมไพล์เลอร์สำหรับภาษา PHP, และ Thrift โปรโตคอลสำหรับสื่อสารข้ามภาษา เมื่อสองวันก่อนก็มีการเปิดตัวอีกหนึ่งโครงการ คือ Folly ไลบรารีพื้นฐานสำหรับภาษา C++11

ตัวไลบรารีนั้นค่อนข้างกระจัดกระจาย ยังไม่สมบูรณ์เป็นชุดเหมือน Boost อย่างไรก็ดีมีหลายตัวที่น่าสนใจ เช่น Format.h ที่ยกเอาระบบฟอร์แมตของไพธอนมาใช้บน C++ ตรงๆ หรือ AtomicHashMap.h ที่สร้างโครงสร้างข้อมูลแบบแมบโดยทุกคำสั่งนั้นเป็นปลอดภัยต่อการใช้งานพร้อมกันหลายเธรด

Pages