Google App Engine ประกาศรองรับภาษาโปรแกรมแบบ standard environment เพิ่มเติมอีก 2 เวอร์ชันคือ Python 3.7 และ PHP 7.2
ปกติแล้ว App Engine มีสภาพแวดล้อมการทำงาน 2 แบบคือ standard environment ที่ใช้รันไทม์จากกูเกิลโดยตรง ราคาถูกกว่า กับ flexible environment ที่ผู้ใช้ติดตั้งรันไทม์เอง ราคาแพงกว่า
ผู้ใช้ Visual Studio คงคุ้นเคยกับฟีเจอร์ช่วยแนะนำการเขียนโค้ด IntelliSense กันเป็นอย่างดี ล่าสุดไมโครซอฟท์จะเปิด IntelliSense ให้กับ IDE ตัวอื่นๆ ที่ไม่ใช่ของตัวเองแล้ว
เบื้องหลังการทำงานของ IntelliSense ในยุคปัจจุบัน ไม่ได้รันอยู่บน Visual Studio โดยตรง แต่รันบน Language Server ที่ทำหน้าที่อ่านและวิเคราะห์โค้ดในแต่ละภาษา แล้วส่งข้อมูลกลับไปยังตัว IDE ผ่าน Language Server Protocol (LSP) ที่ใช้ฟอร์แมตแบบ JSON
ไมโครซอฟท์พัฒนา Language Server Protocol (LSP) ขึ้นมาเพื่อใช้กับ Visual Studio Code สามารถเพิ่มภาษาใหม่ๆ ได้ง่าย เพราะเพียงแค่เพิ่มเซิร์ฟเวอร์ของภาษาใหม่มาอีกตัวเท่านั้น
หลังจากต้นปีที่ผ่านมา Github เปิดบริการสแกนช่องโหว่อัตโนมัติจากโครงการที่มีภาษา Ruby และ Javascript ล่าสุด Github ประกาศเพิ่มภาษา Python เข้าไปเป็นภาษาที่ 3 แล้ว
เช่นเดิม โครงการที่มีภาษา Python และเปิดเป็นสาธารณะจะสามารถเข้าถึง dependency graph พร้อมบริการแจ้งเตือนโดยอัตโนมัติ ส่วนโครงการแบบเสียเงินจะต้องเปิดสิทธิ์ให้ Github เข้าถึง โดยโครงการที่จะใช้ฟีเจอร์นี้ได้จะต้องมีไฟล์ requirements.txt และ Pipfile.lock อยู่ในโครงการด้วย
ที่มา - Github
Guido van Rossum ผู้สร้างภาษาไพธอน ประกาศลาออกจากตำแหน่ง "Benevolent dictator for life" (BDFL) ของโครงการไพธอน ซึ่งผู้ถือตำแหน่งนี้มีสิทธิ์ชี้ขาดการตัดสินใจทั้งหมดในโครงการตามที่เห็นสมควร แม้การตัดสินใจนั้นจะสวนทางกับมุมมองของชุมชน
การประกาศลาออกครั้งนี้เป็นผลมาจากการถกเถียงอย่างหนักว่าด้วยการออกมาตรฐาน PEP 572 ของตัวภาษาไพธอน ทั้งนี้มาตรฐาน PEP 572 พยายามเพิ่มตัวดำเนินการ :=
ที่สามารถใช้เป็นตัวดำเนินการแจกแจงค่า (assignment operator) และตัวดำเนินการทางตรรกศาสตร์ (boolean operator) ได้พร้อมกัน
Guido van Rossum กล่าวไว้ในจดหมายของเขาว่า
Digilent ผู้ผลิตบอร์ดพัฒนา FPGA มาเป็นเวลานานเปิดตัวบอร์ด PYNQ-Z1 บอร์ดพัฒนาที่ใช้ชิป Xilinx ZYNQ XC7Z020-1CLG400C ที่ภายในมีซีพียู ARM Cortex-A9 สองคอร์ และวงจรส่วนที่โปรแกรมได้ สามารถใช้ไลบรารี PYNQ วางวงจรลงไปแทนที่จะใช้โค้ด VHDL หรือ Verilog ในการพัฒนา
PYNQ เปิดให้นักออกแบบวงจรสร้างไลบรารีฮาร์ดแวร์ขึ้นมา และให้นักพัฒนาแอปพลิเคชั่นเรียกใช้ได้โดยง่ายผ่านทางไลบรารีไพธอนและ Jupyter แนวทางนี้ทำให้นักพัฒนาสามารถแยกงานระหว่างคนออกแบบฮาร์ดแวร์และซอฟต์แวร์ออกจากกัน โดยยังได้ความเร็วของฮาร์ดแวร์อยู่
นักพัฒนาไพธอนส่วนมากคงใช้เครื่องมือฟรีกันจนชินเป็นปกติ เช่น VSCode หรือ IPython แต่ชุดซอฟต์แวร์ Humble Bundle ชุดใหม่อาจจะเปิดเส้นทางสู่การเสียเงิน
ชุด Python Dev Kit รวมเอาตั้งแต่ IDE อย่าง PyCharm และไคลเอนต์ git อย่าง GitKraken บริการตรวจสอบความปลอดภัยไลบรารี PyUP และ Postman บริการสภาพแวดล้อมสำหรับพัฒนา API สำหรับหนังสือและความรู้ก็ยังมีสมาชิก Egghead.io เป็นเวลา 6 เดือนและหนังสือ Fluent Python สำหรับผู้ที่เขียนไพธอนเป็นอยู่แล้วแต่ต้องการพัฒนาความรู้เพิ่มเติม
ที่มา - Humble Bundle
Red Hat ประกาศออก Red Hat Enterprise Linux (RHEL) เวอร์ชัน 7.5 ที่มีของใหม่เป็นจำนวนมาก
การเปลี่ยนแปลงพื้นฐานคืออัพเดตเวอร์ชันของซอฟต์แวร์ที่ใช้งาน เช่น GNOME 3.26, LibreOffice 5.3, รองรับฮาร์ดแวร์รุ่นใหม่ๆ ตามเวอร์ชันของเคอร์เนล, ปรับปรุงการทำงานร่วมกับ Active Directory บน Windows Server 2016, รองรับ Distributed File System (DFS) บน SMB v2/v3, ผนวกเอาเครื่องมือจัดการอย่าง Cockpit และปรับปรุงการทำงานร่วมกับ Ansible
RHEL 7.5 ยังรองรับสถาปัตยกรรมอื่นนอกจาก x86-64 ได้แก่ ARM64, IBM POWER9 และ IBM z Systems
เมื่อไม่นานมานี้ Anaconda, Inc. ผู้พัฒนาแพลตฟอร์ม data science ชื่อดังได้ประกาศความร่วมมือกับไมโครซอฟท์ เพื่อนำ Anaconda Python ไปใช้งานภายในผลิตภัณฑ์และบริการของไมโครซอฟท์เริ่มต้นจาก Azure Machine Learning, Machine Learning Server, Visual Studio และ SQL Server (อ่านรายละเอียดทั้งหมดที่นี่)
ผลจากข้อตกลงดังกล่าวทำให้ทางฝั่ง Anaconda ได้รับสิทธิแจกจ่ายเครื่องมือพัฒนาของไมโครซอฟท์อย่าง Visual Studio Code เช่นกัน โดยตั้งแต่กลางเดือนกุมภาพันธ์ที่ผ่านมาทางบริษัทได้ผนวก VS Code เข้ามาในตัวติดตั้งของ Anaconda distribution เครื่องมือจัดการแพคเกจ Python ซึ่งกำลังเป็นที่นิยมอย่างมาก เพื่อช่วยให้ผู้ใช้ Anaconda ใช้งาน VS Code ได้สะดวกขึ้น
การแข่งขันเขียนโปรแกรมแก้โจทย์ปัญหาระดับอุดมศึกษา ACM-ICPC รองรับการส่งคำตอบด้วยภาษาโปรแกรม Python และ Kotlin สำหรับรอบการแข่งขันรอบชิงแชมป์โลก 2018 แล้ว
การรองรับภาษา Python นั้นเริ่มตั้งแต่ปีที่ผ่านมา โดยผู้เข้าแข่งขันสามารถเลือกได้ว่าจะใช้ Python 3.5 พร้อม interpreter จากผู้พัฒนาภาษาเพื่อความสามารถใหม่ๆ หรือจะถอยไปใช้ Python 2.7 ที่รันบน PyPy อีกที เพื่อเร่งความเร็วในการคำนวณก็ย่อมได้
ส่วนภาษา Kotlin 1.1 ที่เพิ่งเพิ่มเข้ามาในปีนี้ ก็ทำให้การแข่งขันดังกล่าวรองรับการส่งคำตอบมากถึง 5 ภาษา ซึ่งภาษาอื่นๆ ได้แก่ C, C++ และ Java ที่อยู่คู่การแข่งขันมาอย่างยาวนานนั่นเอง
ทีมพัฒนา Django ได้ปล่อย Django 2.0 เวอร์ชันจริงแล้ว โดยมีการปรับปรุงหลายรายการ ซึ่งมีสิ่งที่น่าสนใจดังนี้
ไมโครซอฟท์รับ Don Jayamanne ผู้สร้างส่วนเสริม Python สำหรับ VSCode เข้าทำงานในบริษัท หลังจากส่วนเสริม Python ได้รับความนิยมสูงสุด มีจำนวนการติดตั้งกว่าสี่ล้านครั้ง
ความเปลี่ยนแปลงครั้งนี้ทำให้ส่วนเสริม Python จะเปลี่ยนชื่อผู้ผลิตเป็นไมโครซอฟท์เอง และโค้ดหลักก็จะย้ายจาก https://github.com/DonJayamanne/pythonVSCode ไปยัง https://github.com/microsoft/vscode-python โดยไมโครซอฟท์สัญญาว่าจะให้ความสำคัญกับส่วนเสริมนี้มากขึ้นพร้อมกับประกาศรับสมัครคนมาช่วยพัฒนาเพิ่มเติม โดยให้ส่งเมลไปที่ pythonjobs@microsoft.com
ตอนนี้ส่วนเสริมสำหรับการรองรับภาษาใน VSCode สามอันดับแรกกลายเป็นของไมโครซอฟท์ทั้งหมด ได้แก่ ภาษา Python, C/C++, และ C#
Uber เปิดตัวภาษาโปรแกรมมิ่งแบบใหม่ชื่อว่า Pyro โดยมีจุดประสงค์สำหรับการเน้นให้นักพัฒนาสร้างโมเดลความเป็นไปได้ (probabilistic model) สำหรับการวิจัยด้าน AI ซึ่งถือเป็นโครงการที่เผยสู่สาธารณะครั้งแรกของ Uber AI Labs ซึ่งเป็นแล็บพัฒนาด้าน machine learning และนำผลวิจัยมาประยุกต์ใช้กับสิ่งต่าง ๆ เช่น รถยนต์ขับเคลื่อนอัตโนมัติ, การบินในเมือง, การปรับปรุงเมือง และความปลอดภัยในการขับขี่ยานพาหนะ
Stack Overflow เผยสถิติความนิยมของภาษาโปรแกรมมิ่งบนเว็บไซต์ของตัวเอง โดย Python เป็นภาษาที่มีอัตราการเติบโตสูงมากในรอบ 5 ปีที่ผ่านมา โดยจะเฉพาะจากกลุ่มประเทศพัฒนาแล้ว-รายได้สูงที่มีสัดส่วนทราฟฟิก 64% ของเว็บไซต์
สถิติของ Stack Overflow ย้อนกลับไปถึงปี 2011 พบว่าอัตราการเติบโตของ Python เพิ่มสูงมาก และในเดือนมิถุนายน 2017 แท็ก Python กลายเป็นแท็กอันดับหนึ่งของเว็บไซต์ แซงหน้า Java/JavaScript เป็นที่เรียบร้อย
กูเกิลออก Python Fire เครื่องมือช่วยเหลือคนเขียนโปรแกรมภาษา Python ที่จะช่วยสร้างอินเทอร์เฟซผ่านคอมมานด์ไลน์ (CLI) ให้อัตโนมัติ ไม่ต้องเขียนส่วนนี้เอง โดย Python Fire จะอ่านโค้ดของเราแล้วเขียนส่วนการรับอาร์กิวเมนต์ (argument) รวมถึงส่วนของ Help ให้เลย ตัวโปรแกรมจะอ่านค่าวัตถุประเภทต่างๆ ไม่ว่าจะเป็นฟังก์ชัน คลาส หรือตัวแปรให้เรา
Python Fire ออกมาเป็นตัวช่วยให้พัฒนาและตรวจสอบโค้ดในภาษา Python ได้ง่ายขึ้น และเชื่อมการทำงานระหว่าง Bash กับ Python ด้วย
ชื่อ Fire ในที่นี้หมายถึง 'พ่น' หรือ 'ยิง' (fire off) ซึ่งหมายถึงการยิงคำสั่งผ่านคอมมานด์ไลน์นั่นเอง
ตัวอย่างโค้ดภาษา Python
Dropbox เปิดตัว Pyston ที่คอมไพล์โค้ดเป็นส่วนๆ ด้วย LLVM เพื่อเร่งประสิทธิภาพมาตั้งแต่ปี 2014 แต่ล่าสุดบริษัทก็ประกาศหยุดสนับสนุนโครงการนี้แล้ว
สาเหตุที่ Dropbox หยุดโครงการ คือพบว่าการทำคอมไพล์เลอร์ให้เข้ากับ CPython นั้นทำได้ลำบาก และมีข้อกังวลเรื่องการใช้หน่วยความจำ ขณะเดียวกันภายใน Dropbox ก็ย้ายโค้ดส่วนที่ต้องการประสิทธิภาพไปใช้ภาษา Go มากขึ้นเรื่อยๆ
กูเกิลเปิดตัวโครงการ Grumpy ตัวแปลงโค้ดภาษา Python เป็นภาษา Go แล้วรันได้ในตัว โดยเป้าหมายของโครงการคือโค้ดที่เป็นภาษา Python ล้วนทั้งหมดจะสามารถรันบน Grumpy ได้ทันที
Grumpy เกิดจากความต้องการของกูเกิลที่รันโค้ด Python จำนวนมาก แต่โค้ดเหล่านั้นกลับไม่สามารถกระจายโหลดไปตามจำนวนเธรดได้ดีพอ จากข้อจำกัด global interpreter lock (GIL) ที่เป็นข้อจำกัดของ Python มาเป็นเวลานาน ทำให้บริการที่ใช้ Python มากๆ เช่น YouTube มีปัญหาไม่สามารถขยายระบบได้ดีนัก
โค้ดที่เขียนสำหรับ Grumpy โดยเฉพาะจะสามารถ import โมดูลของภาษา Go มาใช้งานได้ด้วย เช่น การเรียกโมดูล net/http
Python ออกเวอร์ชั่น 3.6 หลังออกเวอร์ชั่น 3.5 มาตั้งแต่กันยายนปีที่แล้ว ในเวอร์ชั่นนี้มีฟีเจอร์สำคัญๆ เพิ่มเข้ามาหลายอย่าง
ฟีเจอร์ที่คนทั่วไปจะเห็นชัดที่สุดคือการฟอร์แมตสตริงแบบใหม่ โดยสั่งเรียกตัวแปรจากในสตริงได้เลย ซึ่งใน bash หรือ ruby มีใช้กันอยู่แล้ว แต่สำหรับ Python ผู้ที่ต้องการใช้งานจะต้องประกาศสตริงเป็นแบบ f คล้าย unicode หรือ raw ที่ต้องประกาศคล้ายๆ กัน ฟีเจอร์ต่อมาคือการใช้ขีดล่าง (_) เพื่อแยกกลุ่มตัวเลขออกจากกัน เพิ่มความสะดวกในการเขียนตัวเลขขนาดใหญ่ๆ เช่น 100_000
สำหรับการรับการรันแบบ asynchronous ในเวอร์ชั่นนี้รองรับเพิ่มเติม เช่นการสร้างฟังก์ชั่น generator แบบ async และการทำ comprehension แบบ async ก็ได้ทั้งคู่
เมื่อต้นปี ไมโครซอฟท์ออกชุดเครื่องมือพัฒนา Deep Learning สำหรับเทรน AI ในชื่อ CNTK (ย่อมาจาก Microsoft Cognition Toolkit) พร้อมเปิดซอร์สขึ้นบน GitHub
ล่าสุดไมโครซอฟท์ออกชุดเครื่องมือเวอร์ชันใหม่ 2.0 Beta แล้ว พร้อมเปลี่ยนชื่อมันจากตัวย่อ มาเป็นชื่อเต็มๆ คือ Microsoft Cognitive Toolkit แทน
ของใหม่ที่สำคัญในเวอร์ชันนี้คือรองรับภาษา Python เพิ่มเข้ามาจากรุ่นแรกที่รองรับแต่ C++ (ในอนาคตจะรองรับภาษาอื่นๆ อย่าง R และ C#), ปรับปรุงประสิทธิภาพ และทำงานร่วมกับ Visual Studio ได้แล้ว
MicroPython เปิดระดมทุนปีที่แล้วเพื่อพัฒนาโค้ดสำหรับ ESP8266 ให้ทำงานได้เต็มประสิทธิภาพ และได้เงินไปถึง 28,534 ปอนด์จากเป้าหมาย 6,000 ปอนด์ ตอนนี้ผลจากการระดมทุนก็เริ่มชัดเจนเมื่อโค้ดปรับปรุงการทำงานสำหรับ ESP8266 รวมเข้ามาใน MicroPython 1.7 ชุดแรกแล้ว
รายการปรับปรุงเช่น ระบบไอพี, รองรับ Bignum, เปิดใช้งานโมดูลเพิ่มเติมจำนวนมาก
ทางทีมพัฒนา MicroPython แสดงผลโหวตโมดูลเพิ่มเติมสำหรับการระดมทุน สองโมดูลหลักที่ได้รับการโหวตสูงสุดคือ MQTT และ OTA ดังนั้นทีมงานจะเริ่มพอร์ตสองโมดูลนี้ก่อน
โครงการ Python ประกาศแผนการหลัง Python 3 พร้อมใช้งานเต็มที่แล้วว่าถึงเวลาวางแผนถึงเวอร์ชั่นต่อไป และตอนนี้ก็ประกาศว่ารุ่นต่อไปจะเป็น Python 8
สาเหตุที่ต้องประกาศแผนอย่างรวดเร็วเพราะในสมัย Python 2 นั้นมีการวางแผนยาวนานจน Python 2 มีการใช้งานเป็นวงกว้างและการอัพเกรดทำได้ยาก เช่น เหตุการณ์ล่าสุดที่ Ubuntu ถอด Python 2 ไม่ได้ เพื่อให้การอัพเกรดได้รวดเร็วก็จะต้องรีบออกเวอร์ชั่นใหม่ ส่วนสาเหตุที่ต้องเป็น Python 8 เพื่อให้เลขเวอร์ชั่นนำหน้า Perl 6 และ PHP 7 และหลังจากนั้นจะออกเวอร์ชั่นใหม่ทุกๆ 2 ปี พร้อมกับปรับเลขเวอร์ชั่นเป็นการคูณสองจากเวอร์ชั่นก่อนหน้าไปเรื่อยๆ คาดว่าเลขเวอร์ชั่นจะแซงหน้าไฟร์ฟอกซ์ในปี 2022 เพราะไฟร์ฟอกซ์จะเป็นเวอร์ชั่น 44 แต่ Python จะเป็นเวอร์ชั่น 64
Python 3 ออกมาตั้งแต่ปลายปี 2008 แต่จนทุกวันนี้ลินุกซ์ส่วนมากก็ยังต้องติดตั้ง Python 2 มาด้วยเสมอ เพราะไลบรารีและแอปพลิเคชั่นต่างๆ ยังต้องการ Python 2 อยู่มาก แต่ Ubuntu 16.04 ก็พร้อมแทบทุกประการแล้วที่จะติดตั้ง Python 3 อย่างเดียว
Barry Warsaw จาก Canonical รายงานว่าตอนนี้ Ubuntu 16.04 ติดเงื่อนไขที่ต้องติดตั้ง Python 2 มาด้วยเพียงอย่างเดียวคือ samba-libs ที่ยังต้องใช้ libpython2.7 และ samba-libs นี้จำเป็นสำหรับการใช้พรินเตอร์ที่แชร์จากวินโดวส์ การถอด Python 2 จะทำให้ Ubuntu Desktop มองไม่เห็นพรินเตอร์ที่วินโดวส์แชร์อยู่ในเครือข่าย
เมื่อเดือนที่แล้ว Pycom ผู้ผลิตบอร์ด IoT ประกาศระดมทุนบอร์ด LoPy เกตเวย์สำหรับ IoT ที่เชื่อมต่อกับอุปกรณ์ด้วยมาตรฐาน LoRa ตอนนี้โครงการระดมทุนได้เกินเป้าหมายไปเรียบร้อย (ตั้งเป้า 50,000 ปอนด์ตอนนี้เกิน 100,000 ปอนด์แล้ว) แต่ความคืบหน้าล่าสุดกลับน่าสนใจกว่า เมื่อทาง Pycom ระบุว่าจะใช้ชิป ESP32 จาก Espressif
โครงการ LIGO ที่เพิ่งประกาศค้นพบคลื่นความโน้มถ่วง (gravitational wave) เปิดเผยข้อมูลดิบชุด GW150914 สู่สาธารณะพร้อมกระบวนการประมวลผล
ข้อมูลเป็นไฟล์ในฟอร์แมต HDF5 การประมวลผลใช้ไลบรารีไพธอนที่ใช้งานกันทั่วไปอย่าง numpy และ matplotlib เอกสารที่เปิดมาพร้อมข้อมูลมีโค้ดสอนการประมวลผลข้อมูลจากข้อมูลดิบออกมาเป็นกราฟที่ใช้ในรายงานวิจัยทีละขั้นอย่างละเอียด
ต่อให้ไม่ได้ทำวิจัยด้านดาราศาสตร์ แต่ไปโหลดมาทำตามเล่นๆ ศึกษาการประมวลผลข้อมูลก็น่าจะคุ้มอยู่ดี
ที่มา - LIGO
หนึ่งในองค์ประกอบสำคัญของกระแส IoT คือเครือข่ายที่ครอบคลุม ตอนนี้ยังมีหลายมาตรฐานแข่งกันอยู่ สำหรับคนที่สนใจจะพัฒนาเครือข่ายเอง pycom บริษัทที่เคยพัฒนาบอร์ด WiPy สำหรับการเชื่อมต่ออุปกรณ์ IoT สู่อินเทอร์เน็ตผ่าน Wi-Fi ก็หันมาพัฒนา LoPy บอร์ดเกตเวย์ขนาดจิ๋วสำหรับให้บริการเครือข่าย LoRa
LoPy ไม่ได้บอกว่าใช้ชิปอะไรภายในแต่ระบุว่าเป็น Cortex-M4 สองคอร์เป็น Wi-Fi SoC ฝั่ง LoRa นั้นใช้ชิป Samtech SX1272 ให้บริการอุปกรณ์ได้ถึง 100 ตัวในระยะทางถึง 5 กิโลเมตร (ในที่โล่ง) บนตัวบอร์ดของรับการเชื่อมต่อ Wi-Fi และ Bluetooth ในตัว
ทีมงาน MicroPython โครงการพัฒนาไพธอนเพื่อใช้งานบนซีพียูขนาดเล็กๆ เช่น Cortex-M ตอนนี้ทางโครงการก็ออกมาระดมทุนเพื่อพอร์ต MicroPython ไปรันบน ESP8266 แล้ว
ผู้ที่ร่วมระดมทุนจะได้รับสิทธิ์ในการโหวตว่าจะพอร์ตโมดูลใดบ้าง พร้อมกับสิทธิ์เข้าถึงเฟิร์มแวร์ล่วงหน้า พร้อมกับการอัพเดตต่อเนื่องอีกหนึ่งปี โครงการตั้งเป้าหมายไว้ที่ 6,000 ปอนด์และหากระดมได้ 12,000 ปอนด์ทางทีมงานจะเปิดซอร์สโค้ดทั้งหมดให้เข้าถึงได้ทันที
ที่มา - KickStarter