นอกเหนือจากซอฟต์แวร์เก่าแล้วมีเหตุผลในการใช้ภาษาโคบอล?


11

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

แค่สงสัย.


3
เก่าไม่ใช่เหตุผลด้วยตัวเอง

ไม่ แต่ก็น่าจะขาดคุณสมบัติที่ทันสมัยเพราะสิ่งนั้น มันไม่สำคัญเท่าไรนักหากว่าภาษานั้นถูกออกแบบมาอย่างดี
Anto

นอกจากนี้ยังมีการใช้อย่างมากในภาครัฐไม่ใช่เฉพาะธนาคาร
BBlake

6
"โปรแกรมเมอร์ส่วนใหญ่เกลียดภาษาโคบอล" - ผมค่อนข้างมั่นใจว่าโปรแกรมเมอร์ส่วนใหญ่ไม่เคยใช้มันเช่นกัน ฉันจะแปลกใจถ้ามากกว่า 5% ของ "ผู้เกลียดชัง" เหล่านี้มีความคิดเกี่ยวกับไวยากรณ์หรือรูปแบบของมัน พวกเขาใช้มันเป็นตัวอย่างของความชั่วร้ายของระบบมรดกโดยไม่รู้ตัวว่าเกิดอะไรขึ้น คล้ายกับวิธีที่ FORTRAN ได้รับการยกย่องบ่อยครั้ง
TZHX

@TZHX: ข้อความทั้งหมดควรเป็น "AFAIK โปรแกรมเมอร์ส่วนใหญ่เกลียดชังหรืออย่างน้อยก็ไม่ชอบ COBOL" ฉันไม่ได้บอกว่ามันเป็นอย่างนั้นมันเป็นเพียงวิธีที่ฉันตีความสถานการณ์ แต่สิ่งที่คุณพูดอาจเป็นความจริง แต่ฉันไม่รู้ว่าจะพูดอะไรดีพอตัวฉันเองสิ่งที่ฉันใช้ก็คือการสังเกตความเห็นส่วนตัวของผู้คน (ซึ่งอาจจะเป็นไปตามที่คุณพูด)
Anto

คำตอบ:


12

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


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

1
อย่าเอาไปจากฉัน งานวิจัยจาก O'Reilley กล่าวว่าการขายหนังสือของ Cobol นั้นแทบจะไม่มีเลยเมื่อเทียบกับภาษาอื่น ๆ นั่นเป็นเพราะผู้พัฒนาไม่สนใจนักพัฒนาหรือมีนักพัฒนาไม่เพียงพอที่จะใช้งาน ฉันแน่ใจว่าคุณจะพบการพัฒนาใหม่โดยใช้ COBOL แต่ก็ยังคงเป็นมรดกส่วนใหญ่ (ไม่ใช่มรดกทั้งหมด) ฉันแน่ใจว่าคนอย่างคุณที่มีความเชี่ยวชาญในภาษาโคบอลจะมีการเชื่อมต่อกับคนอื่น ๆ ที่ใช้ภาษาโคบอลได้เช่นกัน เหมือนกับว่าฉันจะอยู่กับฉันแค่มีเพื่อนที่ใช้ภาษาเดียวไม่ได้แปลว่าฉันไม่ใช่คนกลุ่มน้อย
Ryan Hayes

ที่ บริษัท ของเราเราค่อนข้างคัดลอก / วางรหัสที่มีอยู่ปรับแต่งให้เหมาะกับความต้องการของเราและพูดว่า "เสร็จสิ้น" โชคดีที่ฉันได้ทำการพัฒนาใน C # / VB
Wayne Werner

4

COBOL ยังคงใช้เป็นอย่างมากในการคำนวณทางการเงิน

ใช่ไหม?

ขึ้นอยู่กับสิ่งที่คุณเรียกว่าการคำนวณทางการเงิน หากคุณเรียกรหัสทั้งหมดที่สถาบันการเงินดำเนินการใช่อาจเป็นไปได้ ส่วนใหญ่มีกฎเกณฑ์ทางธุรกิจที่เขียนขึ้นในยุค 60 และ 70 ความเสี่ยง + ค่าใช้จ่ายในการอัพเกรดระบบเช่นนี้เป็นสภาพแวดล้อมใหม่ไม่คุ้มค่า ฉันสงสัยว่ามีใครบางคนออกไปเขียนโค้ดภาษาโคบอลใหม่ มีคอมไพเลอร์ COBOL ในวันนี้ที่รวมเข้ากับ. NET stack เช่น บ่อยครั้งที่มีเครื่องมือสำหรับการรวมและการใช้ประโยชน์จากแอปพลิเคชันแบบดั้งเดิมในซอฟต์แวร์ที่ทันสมัย ​​แต่เครื่องมือเหล่านั้นมักไม่เป็นที่รู้จักสำหรับผู้ที่ไม่ต้องใช้เพราะเป็นตลาดที่เฉพาะ

ตอนนี้ถ้าคุณเรียกการประมวลผลทางการเงินบางอย่างคล้ายกับซอฟต์แวร์สำหรับการเงินเชิงปริมาณ C ++ เป็นวิธีที่ใช้กันโดยทั่วไปตามภาษาเฉพาะเช่น k, อนุพันธ์ APL


kและมันเป็นลูกหลานqที่เจ็บปวดเช่นนี้
Andrey

@Andrey มันเป็นเรื่องของรสนิยม ฉันสนุกกับมัน.
Vitor Py

โชคดีที่คุณเป็น หนึ่งในปัญหาที่ยิ่งใหญ่ที่สุดสำหรับฉันคือการขาด IDE ปกติและข้อความแสดงข้อผิดพลาดที่ไร้ประโยชน์
Andrey

2
@Andrey ใช่การย้ายออกจากสภาพแวดล้อมการพัฒนาเป็นปัญหาใหญ่ที่สุดเมื่อใช้ภาษาเฉพาะ ฉันเคยทำแม่แบบรหัส C ++ หนักก่อนที่จะใช้ดังนั้นฉันค่อนข้างคุ้นเคยกับข้อความแสดงข้อผิดพลาดที่ไม่มีประโยชน์ :)
Vitor Py

@Andrey, IBM มีเครื่องมือที่ใช้ Eclipse สำหรับ Cobol

4

COBOL ส่วนใหญ่เห็นการใช้งานแบบดั้งเดิมในขณะนี้ ฐานผู้ใช้ช้าลงเนื่องจากการขัดสีเนื่องจากไม่มีการเขียนแอปพลิเคชันใหม่และแอปพลิเคชันเก่า ๆ อย่างช้าๆ แต่แน่นอนจะค่อย ๆ หมดไป

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

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

คุณจะเห็นว่าระบบจะถูกแทนที่ในที่สุด โดยทั่วไปแล้วการย้ายนี้มาจากด้านธุรกิจของสิ่งต่าง ๆ :

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

2
พื้นหลังของคุณเป็นอะไรที่แน่นอน?

ฉันสามารถระบุได้อย่างชัดเจนว่าความมั่นใจของคุณถูกวางผิดที่ - เรามีพนักงานใหม่อายุน้อยกว่า (20-30 วินาที) ที่เขียนโค้ด Cobol ใหม่ (อัปเดตและ / หรือคัดลอกและแก้ไขระบบที่มีอยู่) และเรามีอย่างน้อย 10% ของนักพัฒนา ~ 200 ของเรา ใช้เวลาพัฒนา 80% + ใน Cobol ฉันคิดว่าคุณจะพบว่าสถานที่มากที่สุดที่ใช้ภาษาโคบอลเป็นว่าตรงข้ามกับสิ่งที่คุณอธิบาย
Wayne Werner

4

สงสัยว่าคุณหมายถึงอะไรโดย "โปรแกรมเมอร์ส่วนใหญ่" ฉันทำงานในร้านไอทีขนาดใหญ่บนชั้นเดียวกันกับโปรแกรมเมอร์โคบอล, โปรแกรมเมอร์ Java, โปรแกรมเมอร์. NET (เป็นเอกเทศ), โปรแกรมเมอร์ VB แบบเก่า ไม่มีความเกลียดชังหรือไม่ชอบ cobol เป็นภาษาเช่นเดียวกับการเขียนโปรแกรมภาษาอื่น ๆ คนเขียนโปรแกรมใน cobol ทำเพราะมันเป็นงานให้พวกเขาไม่แตกต่างจากการเขียนโปรแกรมในจาวาหรือขับรถบรรทุก ตรงกันข้ามกับความคิดที่ได้รับความนิยมในสหรัฐอเมริกามีโคบอลจำนวนมากที่เขียนต่อไป แต่ส่วนใหญ่อยู่ในอินเดียที่โปรแกรมเมอร์โคบอลต์ใหม่ทุกวันเริ่มทำงาน

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


2

ส่วนใหญ่ของรหัสหลักใน PeopleSoft เขียนในภาษาโคบอล


ฉันได้รับความเข้าใจจากการพูดคุยกับ PeopleSoft reps ในการประชุม IT ย้อนกลับไปในปี 2004 ก่อนที่ Oracle จะซื้อพวกเขาว่าในเวลานั้นมีเพียงโมดูลเดียวของผลิตภัณฑ์ที่ยังอยู่ใน COBOL
Kennah

สิ่งนี้ให้ประโยชน์กับภาษาโคบอลมากกว่าภาษาอื่น ๆ อย่างไร?
Matthieu

2

จากประสบการณ์ของโคบอล 20 ปีในสามเมนเฟรมที่แตกต่างกันมันเป็นความเห็นที่ต่ำต้อยของฉันมีโปรแกรมเมอร์ COBOL ตัวจริงเพียงไม่กี่คน โปรแกรมเมอร์ ในการแสดงความเคารพต่อพวกเขาฉันต้องพูดถึงการปรากฏตัวของโปรแกรมเมอร์ HP 3000, โปรแกรมเมอร์ BULL, และโปรแกรมเมอร์ DEC

COBOL ทำงานบนกล่องเหล็กขนาดใหญ่ส่วนใหญ่ บางทีโปรแกรมเมอร์ภาษาโคบอลที่แท้จริงเพียงคนเดียวตามมาตรฐานของฉันเองคือผู้เขียนภาษาโคบอลบนกล่อง UNIX ว้าวฉันจะได้ยินเกี่ยวกับเรื่องนี้

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

ฉันได้พบและพูดคุยกับโปรแกรมเมอร์ IBM หลายคนและพวกเขาจะอ้างถึงตัวเองในฐานะโปรแกรมเมอร์โคบอล อย่างไรก็ตามหากมีส่วนร่วมในการสนทนาพวกเขาจะเริ่มอ้างถึงขั้นตอนและเครื่องมือเฉพาะของ IBM ด้วยลักษณะที่เน้นฮาร์ดแวร์เป็นศูนย์กลางของ COBOL สิ่งนี้เป็นสิ่งที่เข้าใจได้มากสำหรับแพลตฟอร์มฮาร์ดแวร์ทั้งหมด

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

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

โปรแกรมเมอร์ของ IBM, Sperry, Burroughs และ Tandem รู้เรื่องนี้ดังนั้นพวกเขาจึงไม่เคยเสนอแนวคิดนี้ มันจะเป็นสิ่งศักดิ์สิทธิ์สำหรับบางคน


+1 แพงมากแน่นอน นอกจากนี้ชี้ให้เห็นว่า Java กำลังกลายเป็น New Cobol - ซึ่งฉันได้เห็นตัวเองและฉันเป็นเพียงเจ้าชู้ตัวน้อยดังนั้นจึงน่าสนใจที่จะเห็นคนที่มีประสบการณ์ทำการสังเกตแบบเดียวกัน
Wayne Werner
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.