Programming Trends 2012

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



เว็บไซต์ http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html ได้เปรียบเทียบ Rating รวมถึงตำแหน่งโดยเรียงลำดับตามความนิยมใช้ในการพัฒนาครับ ตารางนี้ก็เปรียบเทียบตำแหน่งในปี 2011 กับ 2012 ครับว่ามีการเปลี่ยนลำดับอย่างไรบ้าง มีหลายภาษาที่ผมคุ้นชื่อ แต่ไม่เคยมีโอกาสได้เขียนครับ ถ้าอยากดูข้อมูลต้นฉบับก็ตามลิงค์ไปได้เลยนะครับ (คลิกที่ชื่อภาษา จะเป็นการแสดงกราฟสำหรับแต่ละภาษา)

Position
Jan 2012
Position
Jan 2011
Delta in PositionProgramming LanguageRatings
Jan 2012
Delta
Jan 2011
Status
1 1 Java 17.479% -0.29%   A
2 2 C 16.976% +1.15%   A
3 6 C# 8.781% +2.55%   A
4 3 C++ 8.063% -0.72%   A
5 8 Objective-C 6.919% +3.91%   A
6 4 PHP 5.710% -2.13%   A
7 7 (Visual) Basic 4.531% -1.34%   A
8 5 Python 3.218% -3.05%   A
9 9 Perl 2.773% -0.08%   A
10 11 JavaScript 2.322% +0.73%   A
11 12 Delphi/Object Pascal 1.576% +0.29%   A
12 10 Ruby 1.441% -0.34%   A
13 13 Lisp 1.111% +0.00%   A
14 14 Pascal 0.798% -0.12%   A
15 17 Transact-SQL 0.772% +0.01%   A
16 24 PL/SQL 0.709% +0.15%   A
17 20 Ada 0.634% -0.05%   B
18 39 Logo 0.632% +0.29%   B
19 25 R 0.609% +0.07%   B
20 21 Lua 0.559% -0.08%   B

ผมขอหยิบยกมาบางตัวที่ผมพอจะรู้จักและเคยเล่นมาบ้าง เอามาวิเคราะห์ในฉบับ LordGiftBlog นะครับ ^^

Java หลายๆคนอาจสงสัยว่่า Java เป็นภาษาที่มีการทำงานค่อนข้างช้า แต่ทำไมถึงได้รับความนิยมสูง สิ่งนึงที่ผม ในฐานะผู้ที่เคยเขียน Java EE มาในระดับนึง ก็พอจะเข้าใจได้ว่า package คือสิ่งที่เหนือชั้นสำหรับ Java มาก อีกทั้ง Library มากมายก่ายกอง อยู่ที่ว่าผู้พัฒนาจะหาเจอหรือไม่ก็เท่านั้นเอง นอกจากนี้ ภาษา Java ยังพัฒนาได้ทั้ง Desktop Application, Mobile Application, Web Application (ทั้ง Java เพียวๆ(Servlet) และลักษณะ Script(JSP) ที่ทำงานร่วมกับ HTML เหมือนกับ PHP , ASP) และยังมีความสามารถในการทำงานได้ทุก Platform มีความปลอดภัย(Security) สูง การพัฒนา Web Application ถ้าจะเช่า Host ก็จะต้องเสียค่าใช้จ่ายสูงกว่า Apache Host มาก ส่วนใหญ่เว็บที่พัฒนาด้วย Java มักจะเป็นขององค์กรใหญ่ๆ ที่มี Servlet Server เป็นของตัวเอง เช่น ThaiAirwaysK-Cyber BankingTMB Direct เป็นต้น

เพิ่มเติมนิดนึงสำหรับภาษา Java นะครับ เคยได้ยินได้อ่านมาว่า ภาษา Java กำลังจะตายหรือเปล่า ลองใช้วิจารณญาณดูนะครับว่า ภาษานี้จะตายจริงหรือ? ดูอย่าง COBOL ซึ่งเป็นภาษาที่เก่าแก่มาก โค้ดอลังการ แต่กลับไม่ตายจากโลกไปซักที ผมว่าอนาคต Java ยังอีกยาวไกลครับ

C เป็นภาษาโปรแกรมขั้นพื็นฐาน ซึ่งหลายๆภาษาก็พัฒนาขึ้นมาจาก C การเขียนก็จะคล้ายๆกันซะส่วนใหญ่ แต่ในแง่ของการทำงาน C มักถูกใช้ในงาน Embedded System มากกว่าจะใช้เขียน Application ที่ยังคงนิยมอยู่คงเพราะว่า เป็นภาษาที่เข้าใกล้ภาษาเครื่อง (Machine Language) ที่สุดแล้วครับ

C# ผมว่าภาษานี้เป็นคู่แข่ง Java ได้ดีที่สุดแล้วครับ เพราะว่าภาษานี้จะมาควบคู่กับ Microsoft .NET Framework ซึ่งทำให้ C# สามารถสร้างได้ทั้ง Web Application (ASP), Desktop Application, Mobile Application การพัฒนาส่วนใหญ่แล้วก็จะติด "Microsoft" มาด้วย อย่างเช่นส่วนของมือถือ ก็จะมีเฉพาะ Windows Phone ที่ใช้ .NET แต่ถ้ามองในแง่ดีก็คือ เมื่อมี License แล้ว ก็จะมี Vendor ครับ ซึ่ง Vendor จะต้องคอยดูแลแก้ปัญหา Bug ต่างๆที่เป็นข้อผิดพลาดที่เป็นความผิดของ Microsoft ทำให้ผู้ใช้งาน Framework สามารถทำได้โดยไม่ต้องกังวล (แต่ก็ต้องเสียค่า Maintenance นะ) ตัวอย่างเว็บที่พัฒนาด้วย ASP ก็เช่น หน้าแสดงผลข้อมูลทั่วไปของ KasikornBankw3schools

ข้อแตกต่างระหว่าง C# กับ Java คือ ความเป็น License กับ Open Source (จริงๆ แล้วไม่ Open Source แล้ว กลายเป็น Freeware มากกว่า หลังจากที่ Oracle เข้าซื้อกิจการของ Sun Microsystem) ขอนอกเรื่องนิดนึง หลังจากที่ Oracle ซื้อ Sun แล้ว อะไรหลายๆอย่างของ Sun ก็กลายเป็นระบบปิด ซึ่งมีเพียง MySQL ที่ยังคงความ Open Source อย่างแท้จริงไว้ ทำให้ Google กลายเป็นยักษ์ใหญ่แห่ง Open Source แทน

Objective-C ภาษานี้ก็จะมาควบคู่กับ "Apple" ซึ่งใช้เป็นภาษาหลักในการพัฒนา Software ของ Apple ผมเองมีโอกาสได้เห็น Source Code ภาษานี้มาบ้าง รู้สึกว่าเป็นภาษาที่ง่าย Compiler ของภาษานี้มีความเก่งพอสมควร ผู้พัฒนาสามารถศึกษาได้ไม่ยาก ทำให้ได้รับความนิยม ประกอบกับเทคนิคด้านการตลาดของบริษัท Apple แต่ก็มีผู้พัฒนาอื่นๆ (รวมถึงผมเองด้วย) มองว่าการพัฒนา Software ไม่ควรขึ้นอยู่กับ Hardware ที่ใช้ในการพัฒนา ในฝั่งผู้ใช้ Apple ก็จะมองว่ามันคือความสะดวก สามารถควบคุมได้ง่าย แต่สำหรับผมแล้ว ผมต้องการอะไรที่อิสระ มีอะไรให้ทดลอง มากกว่าการใช้งานในแบบที่อยู่ในขอบเขตของบริษัทผู้ผลิต

PHP เป็นภาษา Script สำหรับการทำ Web Application ที่นิยมมากที่สุด เนื่องจากพัฒนาได้ง่าย หาโฮสต์ได้ไม่ยาก ทั้งฟรีทั้งเสียเงินมีมากมายให้เลือก แต่ PHP จะเสียเปรียบตรงที่ไม่สามารถสร้าง Desktop Application, Mobile Application ได้ แม้ว่าจะมีวิธีการที่สามารถให้ทำได้ก็จริง แต่ก็ไม่ได้รับความนิยมด้วยปัจจัยหลายๆอย่าง ผมว่า PHP เหมาะแล้วที่จะใช้เขียนเว็บ เพราะมันถูกออกแบบมาให้เป็นอย่างนั้น สำหรับใครที่สนใจจะเป็น Web Developer ก็ต้องภาษานี้แหละครับ

Visual Basic(VB) หลายคนคงคุ้นหูคุ้นตากันดีกับภาษานี้นะครับ ผมว่าเป็นภาษาที่ง่ายที่สุดเท่าที่เคยเรียนมา เพียงไม่กี่ชั่วโมง เราก็สร้าง Desktop Application ขำๆได้แล้ว ถ้าใครมีโอกาสได้สังเกตหน้าจอคอมพิวเตอร์ของหน่วยงานราชการ ไม่ว่าจะเป็นที่ว่าการอำเภอ มหาวิทยาลัย ฯลฯ ถ้าคนที่พอจะเคยเล่นมาก็จะรู้ว่า มันคือ Visual Basic แน่ๆ (ถ้าเป็นผมทำโปรแกรมพวกนี้ ที่ถึงเวลาก็กรอกใส่ช่อง แล้วก็เก็บลงฐานข้อมูล แล้วก็ให้ค่าจ้างถูกๆ ผมก็คงใช้ VB เหมือนกัน ฮาๆ) ความง่ายของการใช้งาน คงเป็นเหตุผลให้เราได้เห็นมันอยู่บ่อยๆ

Python ผมมีโอกาสได้เขียน Python อย่างจริงจังก็ตอนได้เขียนโปรแกรมเกี่ยวกับ Computer Vision ซึ่งนักวิจัยด้านนี้ส่วนใหญ่มักจะเขียนภาษา Python กัน แต่ความสามารถของมันไม่ได้มีแค่นั้น Python มี Library ให้เลือกใช้มากมายเช่นกัน เขียน Desktop Application ก็ได้ ในส่วน Web Application ก็เคยเห็น Google หลุด .py มาให้เห็นใน path เว็บบ้าง ผมว่า Python เหมาะสำหรับการทำงานเบื้องหลังมากกว่า อย่างเช่นโปรแกรมบน Server หรือโปรแกรมที่ให้โปรแกรมอื่นมาเรียกใช้เพื่อให้ผลลัพธ์กลับไปบนโปรแกรมหลัก อะไรทำนองนี้

Javascript จริงๆ แล้วถ้าเขียน Web Application กันจริงๆ ยังไงก็คงหนี Javascript ไม่พ้น การทำงานของ Web หลักๆก็จะมีอยู่ 3 ภาษาด้วยกัน ก็คือ HTML สำหรับแสดงผล, Javascript สำหรับควบคุม event, CSS สำหรับแต่งให้สวยงาม (PHP/ASP/JSP เอามาช่วยในการคำนวณ logic ของโปรแกรม) ผมว่าคนที่เขียน Javascript เป็น ก็น่าจะเป็นความสามารถที่ติดมาจาก PHP/ASP/JSP มากกว่า

ABAP ภาษานี้ขอแถมครับ ไม่มีใน list ด้านบน เพียงแต่ได้คุยกับพี่ๆ ที่เป็น programmer และอยู่ในวงการด้านนี้มาพอสมควร ผมเองก็ยังไม่ค่อยเข้าใจมันนัก แต่มันเป็นภาษาที่จะมาพร้อมกับระบบ SAP ซึ่งเป็นระบบจัดการฐานข้อมูลที่พัฒนาด้วย ABAP (Advance Business Application Programming) ซึ่งน่าจะรู้กันดีว่า SAP คืออะไรที่ใช้กันเกือบจะทุกองค์กรเลยทีเดียว ดังนั้นหมายความว่าองค์กรเหล่านี้ก็ต้องการ ABAP Programmer มาช่วยดูแล ผมคิดว่าหลายๆคนก็คงสงสัยไว่ามันคืออะไร แล้วทำไมผมต้องแถมให้ เพราะว่า ภาษานี้เป็นภาษาที่ แทบจะไม่มีมหาวิทยาลัยที่ไหนสอน แถมคอร์สอบรมก็แพงหูฉี่ ก็เลยทำให้หาตัว ABAP Programmer ได้ยากขึ้น ค่าจ้างก็เลยสูงตามไปด้วยเช่นกัน หากใครสนใจก็ลองหาข้อมูลศึกษาดูนะครับ สำหรับผมมันคงสายไปแล้ว ฮ่าๆๆ

บทความนี้นับได้ว่าเป็นการแตกประเด็นจาก PHP versus JSP ที่ได้เคยเขียนแบบกากๆไป คราวนี้มาแบบเต็มสูบหน่อย จะได้เห็นกันไปเลยว่าเราควรเริ่มศึกษาภาษาไหนดี อันไหนควรฝึกฝีมือให้เก่ง อันไหนตรงกับความต้องการในส่วนลึกของจิตใจ เลือกโดนกันได้นะครับ



มีความเห็นอะไรมาแลกเปลี่ยนกันได้ครับ
แหล่งข้อมูล
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
http://www.blognone.com/news/19469/7-ภาษาโปรแกรมที่กำลังมาแรง
http://guru.google.co.th/guru/thread?tid=7086b728d36e47d4&pli=1
www.esarn.com/review-zone/ยักษ์ใหญ่แห่ง-opensource.อีสานดอทคอม

Facebook Comment

Recent Posts

Popular post of 7 days

Portal คืออะไรกันนะ???

Port Forwarding สำหรับคนใช้ AIS Fibre

[Java] ความแตกต่างระหว่าง Overloading กับ Overriding

Popular

[Java] Java 8 DateTime ใหม่ ไฉไลกว่าเดิม

Portal คืออะไรกันนะ???

[Java] ความแตกต่างระหว่าง Overloading กับ Overriding

มาตรฐานการตั้งชื่อตัวแปร (Naming Convention)

เรื่องของ ++i กับ i++

ลืมรหัสปลดล็อค Android เข้าเครื่องไม่ได้ มีทางออกครับ

[Java] Java Static Variable และ Static Method

[Java] รู้จัก OR-Mapping และ Hibernate เบื้องต้น

Android Auto & Apple Carplay คืออะไร ใช้งานยังไง

Port Forwarding สำหรับคนใช้ AIS Fibre