Python 3.5 มาแล้วครับ จุดเด่นรอบนี้เป็นการพัฒนาการคำนวณทางคณิตศาสตร์ และการทำงานแบบไม่ประสานเวลา โดยมีสามารถใหม่ๆ บางส่วน ดังนี้
เมื่อกลางปีที่แล้ว ไมโครซอฟท์เปิดตัว Azure Machine Learning บริการวิเคราะห์ข้อมูลผ่านกลุ่มเมฆที่ใช้หลัก machine learning เรียนรู้รูปแบบในอดีตเพื่อพยากรณ์อนาคต วันนี้บริการนี้เปิดบริการเชิงพาณิชย์ (general availability)
ฟีเจอร์สำคัญที่เพิ่มเข้ามาในรุ่นจริงคือรองรับการเขียนโปรแกรมด้วยภาษา Python (ก่อนหน้านี้รองรับแค่ R), ปรับระบบการควบคุมผ่านเว็บให้ง่ายขึ้น, รองรับการเทรนซ้ำ (retrain) ให้โปรแกรมเมื่อได้รับข้อมูลชุดใหม่ๆ ตามระยะเวลาที่กำหนด, รองรับการประมวลผลข้อมูลใหญ่ขนาด TB โดยทำงานร่วมกับ Azure HDInsight ที่เป็นบริการ big data ของไมโครซอฟท์
คุณ Philip Guo ผู้ก่อตั้งเว็บ Online Python Tutor เขียนตัววิเคราะห์การเลือกภาษาโปรแกรมสำหรับการเรียนเขียนโปรแกรมในมหาวิทยาลัยชั้นนำของสหรัฐ พบว่าภาษา Python มีการใช้งานขึ้นนำแทนภาษา Java แล้ว
เกณฑ์การเลือกมหาวิทยาลัยใช้ข้อมูลจาก US News หมวดมหาวิทยาลัยที่ขึ้นชื่อในคณะวิทยาการคอมพิวเตอร์ โดยเขาเลือกมหาวิทยาลัย 39 ชื่อแรกมาประมวลผล
ภาษา Python นั้น โดยทางการแล้วตัวแปลภาษาเขียนอยู่บนภาษา C อีกที (เรียกว่า CPython) แต่เราได้รู้จักตัวแปล Python อื่นๆ เช่น PyPy.js ที่เขียนบน JavaScript มาแล้ว วันนี้มีของเล่นใหม่คือ Micro Python ภาษา Python 3 สำหรับอุปกรณ์ไมโครคอนโทรลเลอร์โดยเฉพาะ
แม้ว่า Micro Python จะยังคงเขียนอยู่บน C เช่นเดิม แต่ภายในนั้นมีการปรับแต่งรีดปริมาณการใช้ RAM ให้ลดลงจนสามารถนำไปใช้บนไมโครคอนโทรลเลอร์ได้ ฟีเจอร์หลักๆ คือ
ปรกติผมไม่ค่อยได้เข้าหน้าแรกของเว็บ Python.org (เว็บโครงการของภาษา Python) เท่าไหร่ (จะเปิดหน้าเอกสารซึ่งเป็นเว็บย่อยของโครงการโดยตรงเลยเสียมากกว่า) แต่วันนี้ผมได้พบว่าหน้าเว็บถูกแปลงโฉมใหม่แล้ว
การออกแบบครั้งนี้เน้นสร้างความประทับใจให้มือใหม่ ด้วยตัวอย่างโค้ดพร้อมทั้งคอนโซลให้ทดลองเล่นจริง และปรับตำแหน่งและโครงสร้างเมนูให้หาสิ่งต่างๆ ได้ง่ายขึ้นครับ
ใครนึกไม่ออกว่าเว็บเก่าเป็นอย่างไร เปลี่ยนแล้วดูดีขึ้นแค่ไหน สามารถย้อนเวลาไปชมได้ที่ web.archive.org
โครงการ PyPy.js พอร์ต PyPy มาเป็นจาวาสคริปต์ให้รันบน asm.js ล่าสุดโครงการแถลงผลว่าสามารถรันได้เร็วกว่า CPython ในบางกรณีที่โค้ดเดิมถูกรันซ้ำๆ จำนวนรอบมากพอแล้ว
Dropbox ประกาศเปิดตัวไพธอนที่พัฒนาใช้เองชื่อว่า Pyston อีมพลีเมนต์ไพธอนโดยแปลงเป็นภาษากลางของ LLVM แล้วคอมไพล์ออกมาเป็นโค้ดแบบเนทีฟ
เหตุผลที่ Dropbox ไม่ร่วมกับโครงการที่มีอยู่แล้วอย่าง PyPy เพราะว่าโครงสร้างของโครงการนั้นแก้ไขเพิ่มฟีเจอร์ที่ต้องการได้ยาก เช่น กระบวนการจัดการหน่วยความจำแบบใหม่ที่ Dropbox ต้องการทดลองใช้งานก็แพตซ์เข้าไปยัง PyPy ได้ลำบาก ขณะที่แก้ไขผ่าน LLVM นั้นง่ายกว่ามาก
วงการคอมพิวเตอร์บนกลุ่มเมฆตอนนี้ น่าจะพอเรียกได้ว่าโครงการโอเพนซอร์ส OpenStack กลายเป็นมาตรฐานกลายๆ (de facto) ไปเรียบร้อยแล้ว การพัฒนาซอฟต์แวร์บนกลุ่มเมฆที่อยู่บน OpenStack API จึงได้เปรียบกว่าในแง่การย้ายงานข้ามผู้ให้บริการกลุ่มเมฆกัน
อย่างไรก็ตาม ยังมีระบบกลุ่มเมฆอีกไม่น้อยที่ถูกพัฒนาขึ้นมาก่อน OpenStack จะดัง และการพัฒนาระบบเหล่านี้ให้รองรับ OpenStack API เป็นเรื่องที่ต้องใช้เวลาและทรัพยากรอีกมาก
บริษัทกลุ่มเมฆ SoftLayer (ที่เพิ่งถูก IBM ซื้อกิจการเมื่อปีที่แล้ว) เห็นโอกาสตรงนี้ จึงพัฒนาซอฟต์แวร์ชื่อ Jumpgate ขึ้นมาเป็นมิดเดิลแวร์แปลง API ของกลุ่มเมฆเดิมให้กลายเป็น OpenStack API
บริษัทผู้ถือโดเมน Python.co.uk กำลังยื่นขอจดเครื่องหมายการค้า Python สำหรับซอฟต์แวร์, บริการ, และเซิร์ฟเวอร์ ให้ครอบคลุมทั้งเครือสหภาพยุโรป ทำให้มูลนิธิ Python ต้องออกมาขอให้ทุกคนช่วยกันรวบรวมหลักฐานการใช้ชื่อ Python ที่เกิดขึ้นในยุโรป
ทางมูลนิธิ Python ระบุว่าได้ติดต่อเจ้าของโดเมน Python.co.uk มานาน แต่ล่าสุดทางบริษัทได้หันไปยื่นจดเครื่องหมายการค้าแทน ทำให้ทางมูลนิธิต้องยื่นคำขอจดเครื่องหมายการค้าเข้าไปแข่งเพราะใช้ชื่อนี้มาก่อน โดยภาษา Python เกิดมานานถึง 20 ปีแล้วขณะที่ตัวโดเมนจดทะเบียนมานาน 13 ปี
Aaron Swartz ผู้ร่วมสร้างมาตรฐาน RSS 1.0 (ตั้งแต่อายุ 14 ปี) ในปี 1995 และมีผลงานด้านคอมพิวเตอร์และการทำกิจกรรมเพื่อเสรีภาพได้เสียชีวิตลงแล้วจากการฆ่าตัวตายในวันที่ 11 มกราคมที่ผ่านมา
Swartz มีอาการเครียดเรื้อรัง (chronic depression) มาตั้งแต่ปี 2007 ในช่วงปี 2011 เขาได้เขียนโปรแกรมเข้าไปดาวน์โหลดงานวิจัยจาก JSTOR จำนวนกว่าสี่ล้านไฟล์จนทำให้ถูกฟ้องและยังคงเป็นคดีมาจนทุกวันนี้
เมื่อวันที่ 18 ธันวาคม 2555 ที่ผ่านมาทางทีมงาน Pylons Project ได้ประกาศออกรุ่น Pyramid (Python web framework ที่พัฒนาขึ้นใหม่จากทีมงาน Pylons เดิม ซึ่ง Pyramid ไม่ใช่ full stack framework อย่าง Django) เวอร์ชัน 1.4 อย่างเป็นทางการ หลังจากปล่อยรุ่นทดสอบมาพักใหญ่ โดยมีคุณสมบัติเด่นๆ ดังประกาศไว้ที่ What’s New In Pyramid 1.4 ต่อไปนี้
วันนี้ Guido van Rossum ประกาศว่าเขากำลังทำงานในกูเกิลเป็นวันสุดท้ายเพื่อไปทำงานยัง Dropbox ในเดือนมกราคมที่จะถึงนี้
Dropbox ใช้ภาษา Python เป็นภาษาหลักในการพัฒนาเสมอมา เพื่อให้สามารถพัฒนาบนหลายแพลตฟอร์มไปได้พร้อมๆ กัน
ที่ผ่านมางานของ Guido ในกูเกิลไม่ชัดเจนนัก ที่เราเห็นได้บ้างเช่น Google Apps Engine รองรับภาษา Python เป็นภาษาแรก ก่อนจะรองรับภาษาอื่นๆ ในเวลาต่อมา ส่วนโครงการ unladen-swallow ที่ตั้งเป้าจะสร้าง Python ให้ทำงานได้เร็วกว่าเดิม 5 เท่านั้นก็แทบจะไม่มีข่าวอะไรออกมาอีกเลยหลังเปิดตัวไปหนึ่งปี โดยระหว่างนั้นมีโครงการอย่าง PyPy เข้ามาแทนที่ไปได้แล้ว
หลังจากได้รับรายงานจุดที่เสี่ยงต่อการถูกเจาะระบบเป็นจำนวน 24 รายการโดยทีมรักษาความปลอดภัยและผู้ใช้งาน ตอนนี้ Plone ก็ได้ออก hotfix ปิดจุดเสี่ยงเหล่านั้นแล้วครับ
ดาวน์โหลด hotfix และอ่านวิธีติดตั้งได้ที่นี่ โดยมันถูกทดสอบแล้วว่าสามารถใช้ได้กับ Plone เวอร์ชั่น 4 และ 3 (ส่วนรุ่นต่ำกว่านั้นต้องทดสอบกันเอง) สำหรับรายงานจุดเสี่ยงทั้งหมดที่ถูกจัดการในคราวนี้สามารถอ่านได้จากที่นี่
Plone เป็น CMS ยอดนิยมตัวหนึ่งจากฝั่ง Python ครับ
ตามปรกติของรอบ release ที่ผ่านๆ มา Python 2.x และ 3.x เวอร์ชันใหม่จะถูกปล่อยในเวลาใกล้เคียงกัน แต่สำหรับรอบนี้จะไม่มีเวอร์ชันใหม่สำหรับ Python 2 อีกแล้ว (อ้างอิง: PEP 404)
ส่วน Python 3.3.0 ซึ่งเป็นเวอร์ชันใหม่ของสาย 3.x ก็มีลูกเล่นเพิ่มเติมดังนี้
Codecademy เว็บสอนการเขียนโปรแกรมแบบโต้ตอบ (มี interpreter ให้เล่นผ่านเว็บ) ได้เพิ่มหลักสูตรการเขียนโปรแกรมด้วยภาษา Python แล้ว
แต่เดิมนั้น Codecademy มีเพียงแค่หลักสูตรเขียนเว็บด้วยเทคโนโลยีฝั่ง client-side เท่านั้น (HTML, JavaScript, CSS) สำหรับ Python ถือเป็นหลักสูตรแรกที่ไม่ได้เจาะจงไปยังเทคโนโลยีเว็บโดยตรง ซึ่งนับเป็นนิมิตหมายอันดีที่จะได้เห็นภาษาอื่นๆ อีกมากมายในอนาคตครับ
เข้าไปเริ่มต้นเรียน Python ได้เลยทันที งานนี้ฟรีทุกอย่างถ้ามีเวลาให้ครับ
ที่มา: TechCrunch
ไมโครซอฟท์ประกาศขยายขีดความสามารถของแพลตฟอร์ม Windows Azure อีกหลายอย่าง
ในส่วนของ Azure ที่เป็น PaaS แบบเดิม ไมโครซอฟท์เพิ่มไลบรารีภาษา Python และ Java เข้ามา (จากเดิมที่รองรับ .NET, PHP, Node.js) ออกปลั๊กอินสำหรับ Eclipse/Java, รองรับ MongoDB, ใช้งาน Memcached สำหรับภาษาที่ไม่ใช่ตระกูล .NET และรองรับ Apache Solr/Lucene
สำหรับงานด้านเว็บก็มี Windows Azure Web Sites ที่รองรับเฟรมเวิร์คด้านการพัฒนาเว็บหลายตัว เช่น ASP.NET, PHP, Node.js รวมไปถึง CMS ยอดนิยมอย่าง WordPress, Joomla!, Drupal, Umbraco, DotNetNuke โดยเชื่อมต่อกับ MySQL หรือ Windows Azure SQL ก็ได้
ข่าวนี้เก่าไปหลายเดือน แต่น่าจะเป็นประโยชน์สำหรับคนที่อยากรู้ว่าบริการยอดฮิตอย่าง Instagram สามารถรองรับโหลดปริมาณมหาศาลจากผู้ใช้ทั่วโลกได้อย่างไร
เรื่องนี้มีอธิบายไว้ในบล็อก Instagram Engineering
เซิร์ฟเวอร์
ระบบปฏิบัติการเซิร์ฟเวอร์เป็น Ubuntu 11.04 โดยทีมงานบอกว่า Ubuntu รุ่นก่อนๆ มีปัญหากับ EC2 แต่ในรุ่นนี้ไม่มีแล้ว
Load Balancing
เดิมที Instagram ใช้เซิร์ฟเวอร์ NGINX สองตัว สลับกันแบบ DNS Round-Robin
จากที่ได้มีผู้แจ้งปัญหาการชนกันของ hash ในงาน 28C3 เมื่อปลายปีที่ก่อน ตอนนี้ Python ก็ได้ออกอัพเดตแก้ปัญหานี้แล้วครับ
ปัญหาการชนกันของ hash นี้ทำให้ผู้โจมตีสามารถสร้างข้อมูลที่มีแนวโน้มว่าจะใช้ key ชนกันได้ ทำให้ระบบต้องเสียเวลามากขึ้นในการค้นหาข้อมูลจาก hash table ที่มี key ชนกัน ซึ่งทำให้สามารถนำไปสู่การโจมตีแบบ DoS ได้ในที่สุด ปัญหานี้ถูกแก้โดยการเปลี่ยนไปใช้ฟังก์ชัน hash แบบสุ่มสำหรับ Python และแก้ไขไลบรารี Expat XML ที่เขียนบน C
อัพเดตนี้มีเป็น installer ให้สำหรับ Python 2.7.3 และ 3.2.3 ส่วนเวอร์ชัน 2.6.8 และ 3.1.5 ต้องดาวน์โหลดโค้ดไปคอมไพล์กันเองนะครับ
นอกเหนือจากภาษายอดนิยมอย่าง C++, Java แล้ว กลุ่มภาษาที่กำลังมาแรงน่าจับตามองคงหนีไม่พ้น PHP, Python และ Ruby ที่ต่างยึดพื้นที่การใช้งานในด้านต่างๆ เป็นของตัวเอง
บล็อกของ Udemy ซึ่งเป็นวิทยาลัยออนไลน์ในต่างประเทศ ได้สร้าง infographic ข้อมูลของภาษาทั้ง 3 เปรียบเทียบกัน ผมคัดข้อมูลที่น่าสนใจบางส่วนมาไว้ตรงนี้ ข้ามไปดูที่รูปสำหรับข้อมูลเต็มๆ ได้ในข่าวเลยครับ
ช่วงนี้มีงาน VMworld 2011 ของบริษัท VMware ดังนั้นจะมีข่าวผลิตภัณฑ์ใหม่ๆ สายนี้ออกมาค่อนข้างเยอะ คัดมาเฉพาะข่าวสำคัญๆ บางส่วนนะครับ
ในที่สุด Django 1.3 ก็มาจนได้ โดย Django 1.3 นั้นจำเป็นต้องทำงานร่วมกับ Python 2.4 ซึ่งนับเป็นเวอร์ชั่นสุดท้ายของ Django แล้วที่ทำงานร่วมกับ Python 2.4 เนื่องจาก Django 1.4 จะเปลี่ยนไปทำงานร่วมกับ Python 2.5 แทน (release notes - ดาวน์โหลด)
ที่มา - Django Blog
ฟีเจอร์ที่เพิ่มเข้ามาใหม่ใน Django 1.3 มีดังนี้
หลังจากไมโครซอฟท์เริ่มถอนตัวออกจากภาษาในกลุ่ม dynamic เช่น Python และ Ruby ก็สัญญาว่าจะเริ่มส่งเครื่องมือสำหรับการใช้ภาษาเหล่านี้ให้กับชุมชนโอเพนซอร์ส วันนี้ไมโครซอฟท์ก็เปิดตัว Python Tools for Visual Studio Beta หรือ PTVS ที่งาน PyCon 2011
PTVS จะมาพร้อมกับเครื่องมืออย่างครบถ้วนเช่น Intellisense, การเบราซ์โค้ด, รวมถึงการพัฒนาและดีบั๊กบนคลัสเตอร์ และมันใช้งานได้ทั้ง IPython ที่รันบนแพลตฟอร์ม .NET และ CPython
Bluebream ออกรุ่น 1.0 released (18 มกราคม 2554) แล้วหลังจากเป็นเบต้ามานานส่วนทางด้าน Grok ก็ออกรุ่น 1.3 ในเวลาไล่ๆกัน (20 มกราคม 2554) ทั้งคู่เป็น python web application framework ที่พัฒนาบน Zope3 ใช้ Zope toolkit (ZTK) เป็นหลัก
แม้ Python 3 จะยังไม่ได้รับความนิยมมากนัก แต่ก็ยังมีการพัฒนาต่อเนื่อง (พร้อมกับกำหนดการหยุดซัพพอร์ต Python 2.x ที่ใกล้เข้ามาเรื่อยๆ) ใน Python 3.2 beta 1 ที่น่าจะมีฟีเจอร์เท่าๆ กับตัวจริงแล้วก็มีฟีเจอร์ที่น่าสนใจเพิ่มเข้ามาสองเรื่องคือ การรับประกัน ABI และระบบประมวลผลแบบ Executor
การระบประกัน ABI จะช่วยให้ส่วนขยายของ Python ไม่ต้องคอมไพล์ใหม่ทุกครั้งที่มีรุ่นใหม่ออกมา โดยมีข้อจำกัดคือผู้พัฒนาส่วนขยายจะต้องใช้โครงสร้างข้อมูลและฟังก์ชั่นตามที่กำหนดเท่านั้น ที่แน่ๆ คือสามารถ รวมไลบรารีของ Python ได้เพียงสองไฟล์คือ Python.h
และ pyconfig.h
พร้อมกับต้องประกาศมาโคร Py_LIMITED_API
เพื่อซ่อนฟังก์ชั่นที่ไม่รับประกันความเข้ากันได้ระหว่างรุ่นไปทั้งหมด
ActiveState ผู้พัฒนาซอฟต์แวร์เพื่ออำนวยความสะดวกในการพัฒนาภาษาสคริปต์ได้เปิดตัว ActivePython Amazon EC2 AMI สำหรับการพัฒนาแอพลิเคชั่นด้วยภาษาไพธอนบนกลุ่มเมฆประมวลผลของอเมซอน
ทาง ActiveState ระบุว่าสินค้าใหม่นี้ไม่ได้เป็นคู่แข่งกับ Google App Engine โดยตรงเพราะ App Engine นั้นจำกัดการประมวลผลอยู่ที่แต่ละครั้งของการเรียกขอข้อมูลเท่านั้น และการคิดราคาก็เป็นการคิดราคาต่อครั้งที่มีการเรียกใช้โดยตรง ขณะที่ EC2 ของอเมซอนนั้นเราสามารถเลือกซื้อทรัพยากรสำหรับการประมวลผลจากอเมซอนได้อย่างอิสระ