ภาษา Rust เป็นภาษาโปรแกรมที่เพิ่งสร้างขึ้นมาเมื่อปี 2010 โดยมอซิลล่า ผู้สร้างเบราว์เซอร์ไฟร์ฟอกซ์ ตอนนี้ได้รับความสนใจขึ้นมาอีกครั้ง เมื่อ Joseph Birr-Pixton ทีมงาน Rustls ทดสอบการส่งข้อมูลเข้ารหัส เทียบกับ OpenSSL ไลบรารีเข้ารหัสที่แทบจะเป็นมาตรฐานกลางสำหรับการเข้ารหัสในซอฟต์แวร์โอเพนซอร์ส แล้วพบว่าสามารถเอาชนะได้แทบทุกการทดสอบ ตั้งแต่ประสิทธิภาพไปจนถึงการใช้หน่วยความจำ
ผลทดสอบ TLS 1.3 TLS_AES_256_GCM_SHA384 นั้น ประสิทธิภาพการส่งข้อมูล Rustls เร็วกว่า OpenSSL อยู่ 13% ขณะที่ฝั่งรับเร็วกว่า 5.8% ขณะที่การใช้หน่วยความจำน้อยกว่า 54%
ดัชนีความนิยมภาษาโปรแกรม TIOBE ประกาศดัชนีเดือนมิถุนายน โดยมีความเปลี่ยนแปลงสำคัญคือภาษา Python แซงหน้าภาษา C++ ขึ้นมาอยู่อันดับสาม และมีค่าดัชนีความนิยม 8.53% สูงสุดเท่าที่ประกาศดัชนีมาตั้งแต่ปี 2001
ภาษา Python ได้รับความนิยมอย่างสูงในช่วงหลังจากการใช้พัฒนาโมเดลปัญญาประดิษฐ์ในกลุ่ม deep learning ที่ใช้ Python อย่างหนัก นอกจากนี้ในกลุ่มผู้ดูแลระบบก็ยังนิยมพัฒนาเครื่องมือง่ายๆ โดยใช้ Python แทน Perl มากขึ้นเรื่อยๆ ตามดัชนี TIOBE ภาษา Python เคยได้รับความนิยมสูงถึงอันดับ 5 ในช่วงปี 2009
กลุ่มภาษา 10 อันดับแรก ได้แก่ Java, C, Python, C++, VB .NET, C#, JavaScript, PHP, SQL, Assembly ตามลำดับ
ที่มา - TIOBE
ปี 2016 กูเกิลประกาศว่า Android ยังไม่มีแผนรองรับภาษาอื่นนอกจาก Java ส่วน ปี 2017 กูเกิลประกาศรองรับภาษา Kotlin โดยมีศักดิ์ฐานะเท่ากับ Java
ปี 2019 กูเกิลประกาศว่าจากนี้ไป แพลตฟอร์ม Android จะเป็น Kotlin-First โดยฟีเจอร์ใหม่ๆ ของชุดเครื่องมือ Android Jetpack จะถูกพัฒนาเป็นภาษา Kotlin ก่อน ส่วนภาษาอื่นๆ จะตามมาช้ากว่า
คำแนะนำของกูเกิลตอนนี้คือ ถ้าจะเริ่มโครงการพัฒนาใหม่ ควรเริ่มเป็น Kotlin ได้แล้ว เพราะเขียนโค้ดง่ายกว่า ทดสอบง่ายกว่า ดูแลรักษาโค้ดง่ายกว่า
นอกจาก C# และ F# แล้ว ไมโครซอฟท์ยังมีภาษาตระกูล # อีกหนึ่งตัวคือ Q# (อ่านว่า คิวชาร์ป) ที่ออกแบบมาสำหรับงานเขียนโปรแกรมบนควอนตัมคอมพิวเตอร์โดยเฉพาะ
ภาษา Q# เผยตัวครั้งแรกในปี 2017 โดยมีหน้าตาคล้าย C# และ F# (มีวงเล็บปีกกา ปิดท้ายบรรทัดด้วย ;) แต่ฟีเจอร์ที่เพิ่มเข้ามาคือการจัดการสถานะของคิวบิท (qubit) ซึ่งเป็นหัวใจสำคัญของควอนตัมคอมพิวเตอร์ รายละเอียดของตัวภาษาดูได้จาก The Q# Programming Language
Joe Armstrong อดีตวิศวกรอิริคสันผู้ร่วมสร้างภาษา Erlang เสียชีวิตเมื่อวันที่ 20 เมษายนที่ผ่านมา ด้วยวัย 68 ปี โดยข่าวมาจาก Francesco Cesarini ผู้ก่อตั้งบริษัท Erlang Solutions
Armstrong สร้างภาษา Erlang ร่วมกับ Robert Virding และ Mike Williams สำหรับใช้งานในอุปกรณ์เครือข่ายของอิริคสันเมื่อปี 1986 และทางอิริคสันได้ปล่อยโครงการเป็นโอเพนซอร์สในปี 1998 ตัวภาษา Erlang สร้างขึ้นเพื่อการประมวลผลแบบกระจายตัว (distributed) ในระบบที่ต้องการความน่าเชื่อถือสูง โดยมองทุกอย่างเป็นโปรเซสที่ไม่แชร์ข้อมูลกับส่วนอื่น สามารถสร้างโปรเซสใหม่ขึ้นมาได้โดยง่าย
ที่มา - @FrancescoC
รัฐบาลญี่ปุ่นประกาศนโยบายให้วิชาโปรแกรมมิ่ง กลายเป็นวิชามาตรฐานของเด็กนักเรียนชั้นประถม (เริ่มที่ ป.5) โดยจะมีผลบังคับใช้ในเดือนเมษายน 2020
กระทรวงศึกษาของญี่ปุ่นได้อนุมัติตำราเรียนวิชาโปรแกรมมิ่งพื้นฐานแล้ว ตัวอย่างเนื้อหาในตำราเล่มนี้ ได้แก่ สอนให้นักเรียนวาดรูปทรงเหลี่ยมต่างๆ บนหน้าจอ และเขียนคำสั่งให้หลอดไฟ LED กะพริบ เป็นต้น
เป้าหมายของรัฐบาลญี่ปุ่นก็ชัดเจนว่า ต้องการเตรียมคนรุ่นใหม่ให้มีทักษะด้านไอที แก้ปัญหาแรงงานด้านไอทีขาดแคลน และเด็กๆ สามารถเขียนโค้ดเพื่อจัดการข้อมูลต่างๆ ของตัวเองได้ รวมถึงเป็นการสอนวิธีคิดเชิงตรรกะให้กับเด็กๆ ผ่านวิชาโปรแกรมมิ่งด้วย
กูเกิลปล่อยโครงการย่อยสำหรับ TensorFlow บนภาษาอื่นๆ เพิ่มเติมในงาน TensorFlow Dev Summit ปีนี้ โดยอัพเดต TensorFlowJS เป็นรุ่น 1.0 พร้อมใช้งานแล้ว
TensorFlowJS มาพร้อมกับเมเดลพร้อมใช้ 5 โมเดล ได้แก่
ดาวน์โหลด TensorFlowJS ได้จาก GitHub: tensorflow/tfjs-core
OpenAI บริษัทด้านปัญญาประดิษฐ์ของ Elon Musk เพิ่งเปิดตัวปัญญาประดิษฐ์ GPT-2 ที่สามารถสร้างบทความภาษาอังกฤษเมื่อใส่อินพุตเป็นหัวข้อข่าว Brendan Dolan-Gavitt นักวิจัยจากมหาวิทยาลัยนิวยอร์คก็พบว่าจริงๆ แล้ว GPT-2 สามารถเขียนโค้ดภาษาจาวาสคริปต์และ PHP ได้ด้วย จากตัวอย่าง 195 ของผลลัพธ์ GPT-2 ที่ทาง OpenAI เปิดเผยออกมา
Python Software Foundation ร่วมกับ JetBrains จัดสำรวจโปรแกรมเมอร์ไพธอนกว่า 20,000 คนเพื่อดูว่ามีการใช้งานไปในด้านใดบ้าง โดยเป็นการสำรวจครั้งที่สอง
การใช้งานยังคงกระจุกอยู่ในหมวดการทำเว็บ (52%) และการวิเคราะห์ข้อมูล (58%) เกินครึ่งของโปรแกรมเมอร์ไพธอนทั้งหมด แต่หากให้เลือกประเภทงานที่ใช้มากที่สุดประเภทเดียว การพัฒนาเว็บยังคงนำโด่ง (27%) ส่วนการวิเคราะห์ข้อมูลตามมา (17%) แต่เมื่อมองงานด้านวิทยาศาสตร์ข้อมูลที่รวมการทำ machine learning (11%) จะพบว่าทั้งการพัฒนาเว็บและวิทยาศาสตร์ข้อมูลนั้นมีการใช้งานพอๆ กัน
ภาษา Scratch เป็นภาษาเขียนโปรแกรมแบบ drag-and-drop ที่ได้รับความนิยมมาระยะหนึ่งแล้ว หลังปีใหม่ปีนี้ทางโครงการก็เปิดตัวเวอร์ชั่น 3.0 ที่แก้ไขหลายอย่าง ที่สำคัญคือมีความร่วมมือกับผู้ให้บริการคลาวด์ทั้ง Google ที่ให้บริการแปลภาษาและ AWS ที่ให้บริการแปลงข้อความเป็นเสียงเชื่อมบริการเข้ามา และสามารถเชื่อมต่อกับฮาร์ดแวร์ได้ รองรับ micro:bit และ LEGO Mindstorms EV3
ตัวเว็บสามารถใช้งานได้ทันทีโดยไม่ต้องล็อกอินใดๆ และมีบทเรียนให้ฝึกเขียนโปรแกรมอีกนับสิบรายการ
ตัวภาษารองรับการประมวลผลข้อความดีกว่าเดิม, เพิ่มบล็อคเกี่ยวกับเสียง, และตัวบล็อคใหญ่ขึ้นเพื่อให้ใช้งานบนจอสัมผัสได้โดยง่าย
นับจากภาษา Ruby ออกเวอร์ชัน 2.0 ในปี 2013 เป็นต้นมา โครงการ Ruby เปลี่ยนมาใช้วิธีออกรุ่นใหม่ปีละครั้งในช่วงวันคริสต์มาสของทุกปี ซึ่งเวอร์ชันใหม่ของปีนี้นับมาถึง Ruby 2.6.0 แล้ว
ของใหม่ที่สำคัญใน Ruby 2.6 คือเริ่มทดลองใช้คอมไพเลอร์แบบ JIT (Just-In-Time) เพื่อประสิทธิภาพที่ดีขึ้น โดยวิธีการทำงานของ Ruby JIT จะแปลงโค้ดภาษา Ruby มาเป็นภาษา C ก่อน เพื่อให้คอมไพเลอร์ภาษา C ตัวอื่นๆ (เช่น GCC, Clang หรือ Microsoft VC++) แปลงโค้ดภาษา C เป็นเนทีฟอีกต่อหนึ่ง
บริการ AWS Lambda เปิดตัวเมื่อปี 2014 และเป็นผู้บุกเบิกการประมวลผลแบบ serverless ที่ไม่ต้องเปิดเครื่องค้างไว้รอรับคำสั่งตลอดเวลา ก่อนหน้านี้ Lambda รองรับโค้ดภาษา Java, Node.js, C#, Python และเมื่อต้นปีนี้คือ Go
ล่าสุด AWS Lambda ประกาศรองรับการนำเข้ารันไทม์ภาษาใดก็ได้แล้ว (custom runtime) พร้อมทั้งประกาศรองรับภาษาใหม่คือ Ruby, C++ และ Rust ผ่านระบบรันไทม์ใหม่นี้
เมื่อต้นเดือนที่ผ่านมาผมได้ร่วมแข่ง TechJam ที่ KBTG จัด และพบว่าทีม "Meow Meow :3" ผู้ชนะการแข่งขันเลือกใช้ภาษา MiniZinc ในการแก้โจทย์ปัญหา และแก้ปัญหาได้อย่างรวดเร็วเป็นทีมแรกๆ เสียด้วย
ด้วยความอยากรู้อยากเห็นเลยกลับมาศึกษาภาษานี้บ้าง และพบว่ามันเป็นภาษาที่ไม่เหมือนภาษาอื่นๆ ที่คุ้นเคยเลย การเขียนโปรแกรมจะไม่ใช่การบอกลำดับการทำงานต่างๆ ให้คอมพิวเตอร์ไปทำตามแล้ว แต่จะเปลี่ยนไปมองว่าผลลัพธ์ที่ต้องการนั้นมีข้อจำกัดอะไรบ้าง หลังจากเขียนข้อจำกัดต่างๆ จนครบก็ปล่อยให้คอมพิวเตอร์ไปคิดวิธีหาคำตอบเอาเอง
กูเกิลออกแพลตฟอร์มภาษา Dart เวอร์ชัน 2.1 ซึ่งถือเป็นรุ่นย่อยตัวแรกของ Dart 2 ที่เป็นการอัพเกรดครั้งใหญ่
เดิมที Dart ออกแบบมาเพื่อเป็นภาษาโปรแกรมสำหรับเว็บ แต่เมื่อ Dart เริ่มได้รับความนิยมมากขึ้น ทำให้ตัวแพลตฟอร์มต้องอัพเกรดตัวเองให้ตอบรับการใช้งานที่หลากหลายมากขึ้น ซึ่ง Dart 2 สามารถรันได้ทั้งบน VM, คอมไพล์เป็นเนทีฟ และคอมไพล์เป็น JavaScript
ของใหม่ใน Dart 2.1 เป็นการอัพเดตเพิ่มฟีเจอร์ย่อยๆ หลายจุด ที่น่าสนใจมีดังนี้
ปีนี้ไมโครซอฟท์เพิ่งโชว์ฟีเจอร์ IntelliCode ของ Visual Studio ที่ใช้ AI เรียนรู้โค้ดจากโครงการบน GitHub แล้วมาช่วยแนะนำการเขียนโค้ดให้เรา สถานะของมันยังเป็นโครงการทดลอง ต้องติดตั้งส่วนขยายเพิ่มเติม และรองรับเฉพาะภาษา C# (Visual Studio) และ Python (VS Code) เท่านั้น
JetBrains ประกาศออกแพลตฟอร์มการพัฒนาด้วยภาษา Kotlin เวอร์ชัน 1.3 มีของใหม่ดังนี้
โลกของ .NET ตอนนี้แยกเป็น .NET Standard (ตัวสเปก) กับ implementation อีกสามสายคือ .NET Core (โอเพนซอร์ส), .NET Framework (ไม่โอเพนซอร์ส), Xamarin (สำหรับเขียนแอพมือถือ)
ล่าสุดไมโครซอฟท์ประกาศออก .NET Standard เวอร์ชัน 2.1 ที่จะกลายเป็นเป้าหมายให้ .NET เวอร์ชันต่างๆ พัฒนาฟีเจอร์ตามในระยะถัดไป
สิ่งใหม่ใน .NET Standard 2.1 มีทั้งการเพิ่ม API เก่าจาก .NET Framework ของเดิม (มีอยู่แล้วแค่ปรับให้เป็นมาตรฐานกลาง) และเพิ่ม API ใหม่ โดยฟีเจอร์ใหม่ที่น่าสนใจคือการรองรับตัวแปรแบบ Span<T> เป็นตัวแปรลักษณะเดียวกับอาร์เรย์ ที่จะช่วยปรับปรุงเรื่องประสิทธิภาพของ .NET ในภาพรวม
โครงการ Google Chrome Labs ปล่อยโครงการ Carlo สำหรับเขียนแอปเดสก์ทอปด้วย Node แต่ใช้ Chrome เรนเดอร์หน้าจอแทนที่จะแพ็กเอาตัวเรนเดอร์ไปด้วยแบบ Electron
แม้จะเป็นโครงการทดลอง แต่ที่ผ่านมาเดสก์ทอปแอปที่ใช้เฟรมเวิร์คเช่น Electron มักมีปัญหาอัพเดตตัวเอนจินเรนเดอร์ไม่ทัน บางครั้งทำให้มีปัญหาความปลอดภัย การใช้เอนจินเบราว์เซอร์ในเครื่องก็ช่วยลดความเสี่ยงไปได้
เมื่อเขียนแอปเสร็จแล้ว สามารถแพ็กเป็นไฟล์ executable ไฟล์เดียว เมื่อสั่งรันมันจะหาเบราว์เซอร์ Chrome ในเครื่องและเชื่อมต่อเข้าไปเอง หากไม่มี Chrome ในเครื่องจะขึ้นข้อความผิดพลาดและรันต่อไม่ได้
รองรับ Chrome 70 ขึ้นไป
ที่มา - GitHub: GoogleChromeLabs/carlo
Zachtronics นั้นมีชื่อเสียงด้านเกมแก้ปัญหาให้ดีที่สุดภายใต้ข้อจำกัด (optimization puzzle game) มาอย่างเนิ่นนาน โดยเราเคยนำเสนอเกมก่อนๆ ไปบ้างแล้ว (รีวิวเกม [TIS-100][], [SHENZHEN I/O][]) และปีนี้ค่ายเกมดังกล่าวก็ได้ปล่อยเกมแนวเขียนโปรแกรมออกมาอีกครั้งในชื่อ EXAPUNKS ซึ่งมีที่มาจากการเอาคำนำ exa- ไปแทนที่ในคำว่า cyberpunk อันเป็นแฟนตาซีในตระกูลเดียวกับ The Matrix, Blade Runner, Ghost in the Shell นั่นเอง
แล้วเกมนี้จะวาดภาพโลกออกมาหน้าตาอย่างไร? เบื้องหลังระบบ/กฎเกณฑ์การแก้ปัญหาเป็นแบบไหน? มีอะไรเปลี่ยนแปลงเพิ่มเติมจากเกมก่อนหน้าบ้าง? มาพบคำตอบกันในรีวิวนี้ได้เลย
ก่อนหน้านี้เพิ่งมีข่าว Python ได้รับความนิยมจนติด Top 3 ของ TIOBE ที่อ้างอิงข้อมูลจากซอฟต์แวร์ทั่วไปในภาพรวม ส่วนในโลกของบรรดาแฮ็กเกอร์สายมืด Python ก็ได้รับความสนใจไม่แพ้กัน
รายงานจากบริษัทความปลอดภัย Imperva ที่ไปสำรวจโค้ดของเครื่องมือที่ใช้โจมตีที่เปิดโค้ดไว้บน GitHub พบว่า Python ได้รับความนิยมเป็นอันดับหนึ่ง ด้วยส่วนแบ่งประมาณ 25% ของเครื่องมือทั้งหมด
Imperva วิเคราะห์ว่า Python ได้รับความนิยมสูงเพราะเรียนรู้ง่าย ไม่ต้องมีทักษะการเขียนโปรแกรมมาก ก็สามารถสร้างสคริปต์ที่ใช้ในการโจมตีได้ไม่ยากนัก
สัปดาห์ที่ผ่านมา Oracle ออก Java 11 รุ่นจริง ตามนโยบายใหม่ที่ออก Java รุ่นใหม่ทุก 6 เดือน เหมือนกับซอฟต์แวร์หลายตัวในยุคหลัง
ความพิเศษของ Java 11 คือเป็นรุ่น LTS ที่ซัพพอร์ตยาวนานถึงปี 2026 หรือนาน 8 ปี โดยรุ่น LTS ตัวก่อนหน้านี้คือ Java 8 ที่ยังเป็นรอบการออกแบบเดิม ดังนั้นใครที่สนใจย้ายจาก Java 8 มาเป็นเวอร์ชันใหม่กว่านั้น ก็มองมาที่ Java 11 ได้เลย (LTS ตัวหน้าคือ Java 17 กำหนดออกปี 2021)
ในการจัดอันดับภาษาโปรแกรมยอดนิยมของ TIOBE Index ประจำเดือนกันยายน 2018 มีการเปลี่ยนแปลงที่น่าสนใจคือ Python มาแรง และสามารถเบียด C++ ขึ้นมาเป็นภาษายอดนิยมอันดับ 3 ได้สำเร็จ ถือเป็นครั้งแรกที่ Python เข้าติดชาร์ทในอันดับ Top 3
อันดับหนึ่งยังเป็น Java ที่คะแนน 17.43% ตามด้วยอันดับสอง C ที่ 15.44% ส่วนอันดับสาม Python มีคะแนน 7.65% เบียด C++ ตกไปอันดับสี่ที่ 7.39%
ทีมวิศวกรของ Facebook เปิดตัว SapFix เครื่องมือช่วยดีบั๊กด้วยพลัง AI ที่ล้ำหน้าถึงขั้นแก้บั๊กหรือเขียนแพตช์ให้อัตโนมัติด้วยในบางกรณี
SapFix ถูกนำมาใช้งานจริงแล้วในกระบวนการพัฒนาแอพ Facebook Android โดย Facebook ระบุว่าเป็นครั้งแรกที่นำ AI มาใช้ตรวจหาบั๊กในงานที่ใหญ่ระดับนี้
การทำงานของ SapFix มักใช้คู่กับเครื่องมืออีกตัวของ Facebook คือ Sapienz ซึ่งทำหน้าที่รัน automate testing ให้ก่อน เมื่อ Sapienz พบบั๊กแล้วจะส่งต่อให้กับ SapFix ช่วยวิเคราะห์หาแนวทางแก้ไข ซึ่งเป็นไปได้หลายแบบ
โครงการ HHVM หรือ HipHop Virtual Machine ของเฟซบุ๊กประกาศแยกทางจาก PHP แล้ว โดยต่อจากนี้จะซัพพอร์ตภาษา Hack อย่างเดียว
HHVM เปิดตัวสู่โลกภายนอกเมื่อปี 2010 โดยเป็นตัวคอมไพล์ภาษา PHP ให้กลายเป็น C++ เพื่อให้ประสิทธิภาพการทำงานเท่าซอฟต์แวร์แบบ native อย่างไรก็ตาม ภายหลัง HHVM เริ่มพัฒนาภาษา Hack โดยแก้ไขข้อจำกัดของ PHP เช่น การเพิ่มการตรวจสอบชนิดตัวแปร, รองรับ generics, รองรับฟังก์ชั่น lambda
HHVM รุ่น 3.30.0 จะออกปลายปีนี้ เป็นรุ่นสุดท้ายที่รองรับภาษา PHP และจะซัพพอร์ตต่อไปอีกจนถึงปลายเดือนพฤศจิกายน 2019 ส่วน HHVM 4.0 จะเป็นรุ่นแรกที่ไม่รองรับภาษา PHP อีกต่อไป มีกำหนดออกปลายเดือนมกราคม 2019
Russ Cox (@_rsc) นักพัฒนาโครงการ Go ประกาศข้อเสนอชุด Go 2 สำหรับการปรับปรุงส่วนสำคัญๆ ของภาษา Go ได้แก่การดักความผิดพลาด และการรองรับ Generic
การดักความผิดพลาดจากเดิมที่ภาษา Go ไม่ใช้ exception แต่อาศัยการคืนค่าความผิดพลาดและต้องตรวจสอบทุก statement ทำให้โค้ดค่อนข้างเลอะ การออกแบบใหม่อาศัยคำสำคัญ check และ handle โดย check ไว้ตรวจว่าฟังก์ชั่นที่ตามหลังทำงานผิดพลาดหรือไม่ และ handle ทำหน้าที่เป็นชุดคำสั่งจัดการความผิดพลาดที่เกิดขึ้น
อีกส่วนคือการรองรับ Generics ที่ระบุว่าตัวแปรที่จะถือว่าใช้งานได้ต้องมีหน้าตาเป็นอย่างไรบ้าง เช่น รองรับการเปรียบเทียบค่ากัน หรือสามารถรวมค่าเข้าด้วยกันได้