เช้านี้อ่านผลสรุปเกี่ยวกับการสำรวจเรื่อง
เครื่องมือและเทคโนโลยีสำหรับ 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 ที่ใช้งาน
ภาษาโปรแกรมสำหรับ 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 ครับ