เช้านี้อ่านผลสรุปเกี่ยวกับการสำรวจเรื่อง
เครื่องมือและเทคโนโลยีสำหรับ Java Developer
ว่ามีอะไรบ้างที่ช่วยเพิ่ม productivity ของการพัฒนา
สามารถดูผลแบบเต็ม ๆ ได้ที่
RebelLabs Developer Productivity Report 2017: Why do you use the Java tools you use?
หรือทำการ Download PDF มาอ่าน
แถมมีข้อมูลดิบ ๆ มาให้ด้วยนะ เผื่อใครจะนำไปวิเคราะห์เพิ่มเติม

มาดูสิ่งที่น่าสนใจจากผลการสำรวจครั้งนี้ดูหน่อยสิ

ข้อมูลพื้นฐานของผู้ทำแบบสำรวจ

การสำรวจในปี 2017 มีผู้ตอบจำนวน 2,060 คน
มีรายละเอียดดังนี้

  • 103 ประเทศ แบ่งเป็น USA 15%, เยอรมัน 8%, UK 6%, อินเดีย และ บราซิล 5%
  • ทำงานในตำแหน่ง Developer 54%, Architect 18% และ Team Lead 17%
  • ขนาดของทีมที่ทำงาน 3-9 คนมาถึง 50%, 10-19 คนจำนวน 22% และ 20-49 คน จำนวน 9%
  • ประสบการณ์การทำงาน 6-15 ปีมากกว่า 50% โดยเฉลี่ยอยู่ที่ 13 ปี
  • ขนาดของบริษัทจะมีตั้งแต่ Enterprise 36%, ขนาดกลาง 30%, ขนาดเล็ก 21% และ StartUp 5%

จะมีหัวข้อต่าง ๆ ดังนี้

  • IDE ที่ใช้
  • ภาษา program หลักที่ใช้งาน (JVM language)
  • Application stack หรือ framework ต่าง ๆ ที่นำมาใช้งาน
  • Architecture ของระบบงาน
  • Database ที่ใช้งาน

มาดู IDE ที่ใช้ในการพัฒนา ซึ่งยังคงเป็น IntelliJ IDEA ที่ยังแรงต่อเนื่อง
ส่วน Eclipse IDE ก็สวนทางกัน
ส่วน NetBeans ก็ทรง ๆ ตัว
แสดงดังรูป

ภาษาโปรแกรมสำหรับ Java Developer ส่วนใหญ่คือ Java 8 นะ

ปล. Java 5, 6 ไม่มีนะ หรือน้อยมาก
ส่วนพวก Groovy, Scala และ Kotlin ซึ่งเป็น JVM language รวมกันยังไม่ถึง 10%เลย
ส่วนภาษา Kotlin ที่กำลังได้รับความนิยมก็มีเพียง 1% เท่านั้น
ยังคงเป็นส่วนน้อยมาก ๆ
แปลกใจตรงที่ JavaScript มันมายังไง ?

แต่ดูจากคนทำแบบสำรวจแล้ว อาจจะพอเกาได้จากประสบการณ์ทำงานก็ได้ !!
ไว้ต้องไปดูข้อมูลแบบละเอียดอีกที

แสดงดังรูป

แต่เมื่อดูความพึงพอใจของนักพัฒนากลับพบว่า
Kotlin และ Scala นำโด่งมาเลย

พวก framework ที่นิยมใช้งานก็ไม่หนีไปจาก Spring framework และ Java EE

Java EE กำลังจะ open source แล้วนะ
ส่วนตัวอื่น ๆ ก็มีเล็กน้อยเช่น Dropwizard, SparkJava, Ratpack และ Play framework เป็นต้น
อีกตัวที่น่าสนใจคือ Reactive ที่กำลังมา

แสดงดังรูป

มาดู Architecture ของระบบกันหน่อย

ซึ่งมีหลายรูปแบบดังนี้

  • 34% ทำการแยกส่วนของ frontend และ backend ออกจากกัน
  • 25% ยังคงเป็นแบบ monolith
  • 23% เป็น Microservice
  • 8% เป็น SOA
  • 1% สำหรับ Serverless

ปิดท้ายด้วย Database ที่ใช้งานกัน ยังคงเป็น Oracle

มี MySQL และ PostgreSQL ตามมาติด ๆ
ส่วนพวก NoSQL database มีประมาณ 10% เช่น MongoDB, Cassandra และ Redis เป็นต้น
แต่ถ้ามองในแง่ของ Commercial vs Open source จะพบว่าเท่า ๆ กันเลยนะ
แต่เอียงไปทาง Open source นิดหน่อย
แสดงดังรูป

เมื่อพูดถึงการเปลี่ยนแปลง !!

พบว่าประมาณ 45% ไม่สามารถเปลี่ยนอะไรได้เลย
เนื่องจากต้องแก้ไขระบบไปเรื่อย ๆ ตาม requirement
และประมาณ 29% รู้ว่าสิ่งใหม่ ๆ มันดีนะ
แต่ว่าเราไม่มีเงินและไม่มีเวลามาเปลี่ยน

ที่น่าสนใจคือ มีเพียง 5% เท่านั้นที่บอกว่า ไม่มีเวลาศึกษา

 

โดยรวมเป็นอีกอีกแหล่งข้อมูลที่น่าสนใจ
สำหรับ Java Developer นะครับ

ขอให้สนุกกับการ coding ครับ