ภาษา COBOL กลับมาเป็นที่สนใจอีกครั้งในช่วง COVID-19 จากกรณี รัฐนิวเจอร์ซีย์ขอโปรแกรมเมอร์ COBOL เข้าไปช่วยแก้ระบบสวัสดิการช่วง COVID-19 ทำให้โลกกลับมาสนใจโค้ดเดิมที่เขียนไว้หลายสิบปีแล้ว และสนใจว่าจะหาทางแก้ปัญหาในระยะยาวได้อย่างไร
เว็บไซต์ InfoWorld รวบรวมข้อมูลประเด็นการย้ายระบบ COBOL ว่ามีหลายแนวทาง ตั้งแต่การเขียนใหม่ทั้งหมด (rewrite) ซึ่งมีข้อเสียว่าโค้ดเก่า 30 ปี เอกสารไม่มี อาจไม่มีใครเข้าใจมันอีกแล้ว ไปจนถึงการยกโค้ดเก่ามารันบนโครงสร้างพื้นฐานยุคใหม่ (lift-and-shfit) ซึ่งมีข้อเสียว่าไม่สามารถปรับซอฟต์แวร์เพื่อสนองความต้องการของคนรุ่นนี้ได้อีก
ทางเลือกที่อยู่ตรงกลางคือ code refactoring ที่ยังคง logic ทางธุรกิจเดิมเอาไว้ แต่ปรับโค้ดให้ประสิทธิภาพดีขึ้น ไม่ผูกติดกับฮาร์ดแวร์มากเหมือนเดิม ซึ่งมีกรณีศึกษา 2 กรณีคือ
- กระทรวงแรงงานและบำนาญของอังกฤษ (UK Department of Work and Pension)เคยพยายามเขียนโค้ด COBOL จำนวน 25 ล้านบรรทัดใหม่มาหลายครั้งแต่ไม่สำเร็จ สุดท้ายหันมาใช้ Micro Focus Visual Cobol ซึ่งเป็นภาษา COBOL เวอร์ชันใหม่ มีฟีเจอร์อย่างภาษาสมัยใหม่แทน ผลคือลดภาระการดูแล และประสิทธิภาพของระบบดีขึ้นมาก โค้ดย้ายจากเมนเฟรม VME มาเป็นลินุกซ์ RHEL และภายหลังจะย้ายมารันบน AWS ด้วย
- หนังสือพิมพ์ The New York Timesเดิมรัน COBOL บนเมนเฟรม IBM Z ใช้อีกวิธีคือแปลงโค้ดมาเป็น Java ด้วยเครื่องมือ automated refactoring ของบริษัท Modern Systems ใช้เวลาแปลงทั้งหมด 2 ปี ตอนแรกรันบนเซิร์ฟเวอร์ภายใน ภายหลังย้ายมาบน AWS เช่นกัน ลดต้นทุนค่าดูแลลงได้ 70%
ข้อมูลของ The New York Times มีเป็นกรณีศึกษาบนเว็บไซต์ของ AWS
หน้าตาของ Micro Focus Visual Cobol ที่รันอยู่ใน Visual Studio (รองรับ Eclipse ด้วย)
tech stack ของ The New York Times ระหว่างเก่ากับใหม่
ที่มา - InfoWorld
Comments
จากตาราง นี่มันย้ายค่ายจาก IBM -> Oracle นิ 555
Ooh
ประกันสังคมไทยเราเอง ก็พบเจออะไรแบบนี้ล่ะ...
เมื่อระบบ IT มันเก่า เราก็ต้อง(ทน)รอไป? สรุปปัญหา ‘ประกันสังคม’ จ่ายเงินชดเชยให้ผู้เดือดร้อนจาก COVID-19 ล่าช้า https://thematter.co/brief/recap/recap-1588856403/110978
"กระทรวงแรงงานและบำนาญของอังกฤษ (UK Department of Work and Pension) เคยพยายามเขียนโค้ด COBOL จำนวน 25 ล้านบรรทัดใหม่"
มองมาที่หน่วยงานรัฐแห่งหนึ่ง เขียนเวปแอป CRUD มี 5 เพจ โดย front-end พื้นๆ กับ back-end มีโค๊ดรวมไม่เกิน 5,000 บรรทัด ในทีมมี 9 คน ผลาญเวลาไป 1 ปี และเงิน OT+คชจ.อื่น ร่วม 9แสน...คุณภาพคับแก้วจริมๆ 555+
บ้านเราที่ยังใช้ก็ส่วนใหญ่ก็พวกmoduleยังรันบนmainframeนี่แหละครับ ถ้าจะย้าย ก็ต้องเปลี่ยนhardware ด้วยเลย
เขียน Cobol ยังพอหาคนได้ แต่ถ้าให้ส่งเอกสาร Estimate ปริมาณงานว่า .NET Core หน้านี้ Code นับเป็นกี่บรรทัด แบบสมัย Cobol/AS400 นี่ (จะให้นับแบบจอเขียว 80x25 ด้วยเลยมั้ย แสส)อยากเอามือต่อยกำแพง ...
SOAP นี่มันทนทายาทจริง ๆ
น่าสนใจ