ตอนนั้นเริ่มต้นในปี 2557 เราได้เฉลิมฉลองจาวาที่มีอายุครบ 20 ปีแล้ว  จริง ๆ แล้วมันเป็นงานที่ประกาศข้อมูลที่เกี่ยวกับจาวา (ไม่ว่าจะเป็นบราวเซอร์ HotJava  มันไม่ค่อยจะประสบความสำเร็จซักเท่าไร) โดยจาวาเปิดเผยต่อสาธารณะชนในวันที่ 28 มีนาคม พ.ศ.2538  ปล่อย JDK อย่างเป็นทางการครั้งแรกวันที่ 23 มกราคม 2539 จริง ๆ แล้วจาวามีอายุเพียง 20 ปีเท่านั้นเอง  มีอะไรหลายอย่างให้คิดถึงในจาวา แต่ผมคิดว่าน่าจะดีกว่าถ้ามองถึงความประสบความสำเร็จต่าง ๆ ของจาวาในตลอด 20 ปีที่ผ่าน   

Simon Ritter @speakjava

มันยากมากที่จะวัดการเติบโตของความนิยมในการภาษาโปรแกรมต่าง ๆ ได้  แต่หนึ่งในผลการสำรวจเป็นที่ยอมรับกันนั่น คือ TIOBE index นี้เป็นจับตามองภาษาที่ได้รับการค้นหาในเครื่องมือค้นหาต่าง ๆ รวมไปถึง กูเกิ้ลบล๊อก  วิกิมีเดีย และกระทั้ง YouTube ก็ตาม (ในตอนผมเขียนบทความนี้ขึ้นมา ผมได้เรียนรู้สิ่งใหม่ ๆ มากมาย  นั่นคือ TIOBE นั่นย่อมาจาก The Importance Of Being Ernest ที่ถูกบรรเลงโดย Osar Wilde แต่ก็นั่นแหละภาษาโปรแกรมที่คุณต้องการ)

เมื่อได้หันกลับไปมองตลอด 15 ปีนั่น  จาวาก็คงอยู่ที่เบอร์ 1 ไม่ก็ 2 จาวาสามารถชิงตำแหน่งนี้มาจากภาษา C ซึ่งภาษา C เป็นภาษาที่ได้รับความนิยมมากที่สุดก่อนที่ จาวาจะเปิดตัว (แล้วมันมีหลายสิ่งเป็นไปได้อย่างไงกันละ ลองย้อนกลับไปปี 2529 ภาษา Lisp เป็นอันดับ 2 และ Ada เป็นอันดับ 3) TIOBE ยังประกาศให้ภาษาจาวา  เป็นภาษาโปรแกรมแห่งปี 2558 ความประสบสำเร็จครั้งยิ่งใหญ่โดยเฉพาะ จาวาได้รับรางตั้งแต่ 10 ปีก่อนแล้ว

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

คำถามที่ว่าทำไมจาวาถึงเป็นที่นิยมกัน  ทำให้ผมครุ่นคิดว่ามีเหตุผลกี่ข้อกัน แต่สุดท้ายผมก็สรุปมาได้ 4 ข้อ ดังนี้

  1. การใช้งานจริง

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

  1. เข้ากับหลังบ้านได้เป็นอย่างดี

Sun และบริษัทลูก Oracle  ได้สร้างปรากฎการณ์อันยิ่งใหญ่ที่ทำให้แน่ใจว่าโค้ดที่ถูกเขียนไปใน 1 รุ่นของจาวานั้นจะได้สามารถรันได้อย่างต่อเนื่องไม่ว่าจะเปลี่ยนเวอร์ชั่นหรือไม่เปลี่ยนก็ตาม  ถึงแม้ว่านี้ไม่ใช่กรณีที่จะพบเห็นได้บ่อยนัก (โดยมีการขอใช้ Java SE 1.4 ให้ทำงานใน Java SE 5 ได้) และมันมีบางสิ่งที่ทำให้ดีขึ้นได้โดยปราศจาการทำให้เข้ากันได้ มันเป็นเพียงฟีเจอร์ที่สุดยอดมากสำหรับนักพัฒนาเลย  ไม่มีสิ่งที่แย่ไปกว่าการทำโค้ดให้ทำงานท่ามการเปลี่ยนแปลงว่ามันจะสามารถทำงานในรุ่นที่ใหม่กว่าได้ไหม ในแพลตฟอร์มใด ๆ ก็ได้ นั้นเป็นอะไรที่เสียเวลามากมาย

  1. ขนาดของโปรแกรม/ประสิทธิภาพ/ความน่าเชื่อถือ

กว่า 20 ปีมาแล้ว  และหลายพันคนกับการพัฒนาที่อย่างยาวนาน  จาวาเป็นแพลตฟอร์มที่แข็งแกร่งดั่งหินผาที่แสดงให้เห็นว่าระดับความเหมาะในการใช้งานบางทีสามารถทำงานได้ดีกว่า Native code (ขอบคุณสำหรับการปรับสมดุลของ JVM ที่ใช้การวิเคราะห์ทางสถิติให้มีความยืดหยุ่นนั่น)  เมื่อมันสามารถจะปรับขนาดของตัวเองได้ ดั่งที่เห็นว่าองกรค์ใหญ่ก็ยังใช้จาวา อาทิเช่น Twitter (โดยได้เปลี่ยนจากภาษารูบี้ มาเป็นภาษาจาวา เพราะว่า รูบี้มันปรับขนาดไม่ได้) Spotify, Facebook, Salesforce, eBay เป็นต้น  Oracle, Hadoop, Cassandra และ Spark เป็นพื้นฐานของโครงการ Big Data หลากหลายโครงการ โดยจะถูกเขียนในภาษาจาวา หรือสกาลาเป็นหลัก และทำงานบน JVM ถ้าคุณต้องการจะปรับขนาด และคงประสิทธิภาพนั้นจาวา และ JVM ก็เป็นตัวเลือกที่ดีตัวนึงเลยนะ

  1. ความสดใหม่

ลองดูความยิ่งใหญ่อีกซักข้อนึงซิ  การดูกราฟของ TIOBE เป็นการแสดงให้เห็นถึงการพุ่งขึ้นของความนิยมจาวาตั้งแต่ ตุลาคม 2557  ที่มีการปล่อยตัว JDK8 ในระยะสั้น ๆ JDK 8 ได้เปลี่ยนแปลงนักพัฒนาที่ใช้จาวาไปตลอดกาล เพราะว่ามีการแนะนำในส่วนของ Lambda Expressions และชุดข้อมูล API ทันใดนั้นนักพัฒนาจาวาก็สามารถทำอะไรได้มากขึ้น  ใส่ฟังชั่นได้อีกมากมาย โดยไม่จำเป็นต้องเรียนภาษาใหม่เหมือนกับสกาลา มีฟีเจอร์ที่ทำให้เขียนง่ายขึ้นมีประสิทธิภาพขึ้น เพื่อให้เป็นผลดีกับ พวกระบบประมวลผลหลายแกน (Multi-Core) โดยไม่จำเป็นต้องเขียนอะไรให้ซับซ้อนและยุ่งยาก  กับตารางการโครงการจิ๊กซอว์เพื่อส่งให้ใน JDK9 พวกเราสามารถเห็นโมดูลต่าง ๆ ทำให้แอพพลิชั่นสำหรับองค์กรใหญ่ขึ้น และง่ายต่อการสร้าง ปรับใช้ และปรับปรุง ตอนนี้มีแผนที่พัฒนาสำหรับภาษาใหม่และฟีเจอร์ใหม่  ใน JDK10

ตอนนี้ผมยังเฝ้ามองดูจาวาได้รับรางวัลภาษาโปรแกรมมาตลอดหลาย 10 เลยละครับ