Khác với phần mềm cũ, có lý do nào để sử dụng COBOL không?


11

COBOL vẫn còn (nặng?) Được sử dụng cho máy tính tài chính. Đó là một ngôn ngữ cũ và AFAIK hầu hết các lập trình viên ghét, hoặc ít nhất là không thích, COBOL. Điều này mang đến một câu hỏi: là lý do duy nhất mà COBOL vẫn được sử dụng mà phần mềm cũ sử dụng nó, hay nó có bất kỳ lợi thế thực sự nào so với các ngôn ngữ lập trình khác không?

Chỉ tò mò thôi.


3
Cũ không phải là một lý do của chính nó.

Không, nhưng rất có thể nó thiếu các tính năng hiện đại vì điều đó. Điều đó không quá quan trọng mặc dù nếu ngôn ngữ được thiết kế tốt.
Anto

Cũng vẫn được sử dụng nhiều trong chính phủ, không chỉ ngân hàng.
BBlake

6
"Hầu hết các lập trình viên đều ghét COBOL" - tốt, tôi khá chắc chắn rằng hầu hết các lập trình viên cũng chưa từng sử dụng nó. Tôi sẽ ngạc nhiên nếu hơn 5% trong số những "kẻ thù ghét" này có bất kỳ ý tưởng nào về cú pháp hoặc hình thức của nó. Họ chỉ sử dụng nó như một ví dụ về sự xấu xa của các hệ thống di sản mà không thực sự biết điều gì đang xảy ra. Tương tự như cách FORTRAN thường được xem xét.
TZHX

@TZHX: Tuy nhiên, toàn bộ trích dẫn phải là "AFAIK hầu hết các lập trình viên ghét, hoặc ít nhất là không thích, COBOL". Tôi không nói nó như thế, đó chỉ là cách tôi diễn giải tình huống. Nhưng những gì bạn nói có thể đúng, nhưng tôi không biết đủ để nói bất cứ điều gì về bản thân mình, tất cả những gì tôi sử dụng là những quan sát cá nhân về ý kiến ​​của mọi người (có thể chịu chính xác những gì bạn nói).
Anto

Câu trả lời:


12

Bây giờ chủ yếu là di sản. Nhiều hệ thống kinh doanh quan trọng vẫn còn trong COBOL chỉ đơn giản vì thực tế là chúng rất lớn và được tích hợp đến mức chi phí viết lại dường như không xứng đáng. Viết một hệ thống mới trong COBOL có lẽ không còn khả thi nữa, vì hầu hết các nhà phát triển COBOL rất khan hiếm đến nỗi họ có thể kiếm được một số tiền đáng kể cho kỹ năng chuyên dụng (tương tự như nhà phát triển Foxpro hiện nay). Có rất ít hoặc không có lý do để giữ ứng dụng COBOL, nhưng thật không may, lý do phổ biến là khi ứng dụng COBOL đã sẵn sàng, đáng tin cậy và kết hợp chặt chẽ với các hệ thống khác mà gần như không thể thay thế. Lý do đó chính xác là lý do tại sao nó nên được thay thế trước khi nó rơi vào tình huống mà phần cứng duy nhất chạy ứng dụng phải được tùy chỉnh được xây dựng từ các bộ phận Ebay từ những năm 80/90.


Điều gì khiến bạn nói "Bây giờ chủ yếu là di sản"? Tôi không nghĩ rằng bạn thực sự biết những gì bạn đang nói về. Tôi đang làm việc trên một dự án COBOL mới trị giá hàng triệu đô la ngay bây giờ. Tôi cũng biết một số dự án phát triển mới rất lớn khác sử dụng COBOL làm ngôn ngữ triển khai chính của họ. Suy nghĩ mong muốn từ phía bạn không biến nó thành hiện thực.
NealB

1
Đừng lấy nó từ tôi. Nghiên cứu từ O'Reilley cho biết doanh số bán sách của Cobol gần như không có so với mọi ngôn ngữ khác. Điều đó là do thiếu sự quan tâm đến các nhà phát triển hoặc không có đủ nhà phát triển sử dụng nó. Tôi chắc chắn rằng bạn có thể tìm thấy sự phát triển mới bằng cách sử dụng COBOL, nhưng nó vẫn là di sản NHẤT (không phải tất cả các di sản). Tôi chắc chắn rằng ai đó giống như bạn, người chuyên về COBOL cũng sẽ có kết nối với những người khác, những người chỉ sử dụng COBOL. Cũng giống như với tôi, chỉ có những người bạn sử dụng một ngôn ngữ không có nghĩa là tôi không phải là thiểu số.
Ryan Hayes

Tại công ty của chúng tôi, chúng tôi sao chép / dán mã hiện có khá nhiều, điều chỉnh nó cho phù hợp với nhu cầu của chúng tôi và nói "đã hoàn thành". May mắn thay, tôi có được sự phát triển của mình trong C # / VB
Wayne Werner

4

COBOL vẫn còn (nặng?) Được sử dụng cho máy tính tài chính.

Là nó?

Nó phụ thuộc vào những gì bạn gọi là máy tính tài chính. Nếu bạn gọi tất cả các mã được điều hành bởi các tổ chức tài chính thì có, đó có thể là. Hầu hết có các quy tắc kinh doanh được viết trong thập niên 60 và 70. Rủi ro + chi phí nâng cấp các hệ thống như thế này sang một môi trường mới là không đáng. Tôi nghi ngờ rằng có ai đó đang viết mã COBOL mới. Ví dụ, có các trình biên dịch COBOL tích hợp vào ngăn xếp .NET. Thường có những công cụ để tích hợp và tận dụng các ứng dụng cũ vào các ngăn xếp phần mềm hiện đại nhưng những công cụ đó thường không được biết đến với những người không phải sử dụng chúng, vì đây là một thị trường rất thích hợp.

Bây giờ nếu bạn gọi điện toán tài chính một cái gì đó giống như phần mềm cho tài chính định lượng, tôi chưa bao giờ nghe nói về ai đó sử dụng COBOL. C ++ là cách phổ biến hơn, cùng với một số ngôn ngữ thích hợp như k, một dẫn xuất APL.


kvà hậu duệ của nó qlà nỗi đau như vậy
Andrey

@Andrey Đó là vấn đề của hương vị. Tôi thích nó.
Vitor Py

thật may mắn cho bạn. Một trong những vấn đề lớn nhất đối với tôi là thiếu IDE bình thường và các thông báo lỗi vô dụng
Andrey

2
@Andrey Có, di chuyển ra khỏi môi trường phát triển chính là vấn đề lớn nhất khi sử dụng ngôn ngữ thích hợp. Tôi đã từng làm mẫu mã C ++ nặng trước khi sử dụng vì vậy tôi phần nào quen với các thông báo lỗi vô dụng :)
Vitor Py

@Andrey, IBM có công cụ dựa trên Eclipse cho Cobol.

4

COBOL chủ yếu thấy sử dụng di sản bây giờ. Cơ sở người dùng của nó đang dần bị thu hẹp bởi sự tiêu hao, vì không có ứng dụng mới nào được viết và những ứng dụng cũ chậm, nhưng chắc chắn, sẽ bị loại bỏ.

Hầu hết các hệ thống COBOL có thể được thay thế nhanh chóng và rẻ tiền, đã được thay thế. Những cái không, tiếp tục ngày càng trở nên đắt hơn để sửa chữa hoặc thay thế, nhưng rẻ hơn và rẻ hơn để duy trì so với các hệ thống mới hơn - chúng chạy tốt trên phần cứng rẻ tiền, lỗi thời và sau nhiều năm phục vụ, không có còn hiển thị bất kỳ lỗi mới. Hầu hết các lỗi đã được sửa chữa hoặc có truyền thống lâu đời phù hợp với công việc. Bảo trì thường được giảm xuống còn một hoặc hai nhân viên chuyên ngành, sau một thời gian dài làm việc trên hệ thống, biết điều đó một cách mật thiết hơn bạn có thể tưởng tượng.

Ngay cả từ góc độ kỹ thuật, thường có một số lý do hợp lý để giữ các hệ thống cũ xung quanh. Chúng tương đối ổn định, hầu hết đã được sửa lỗi và được người dùng cuối biết đến / hiểu rõ.

Bạn sẽ thấy hệ thống cuối cùng được thay thế, mặc dù. Thông thường, động thái này xuất phát từ khía cạnh kinh doanh của mọi thứ:

  • Người dùng của hệ thống hiện tại được thay thế bằng người dùng trẻ hơn, những người không thể bị thuyết phục để học cách sử dụng giao diện cổ xưa
  • Công ty không thể tìm thấy bất cứ ai thuê để duy trì hệ thống, với mức lương không quá đáng so với mức lương của nhân viên khác
  • Một người có ngân sách lớn trở nên bối rối khi phát hiện ra rằng một hệ thống cốt lõi của công ty đang chạy trên phần cứng có thể được thay thế bằng vm trên máy tính xách tay
  • Một hệ thống hàng hóa mới, đi kèm, thực sự rẻ khi bắt đầu sử dụng
  • Công ty sử dụng các hệ thống cũ bị mua lại, phá sản hoặc dừng thực sự tồn tại
  • Một chút quan trọng của chức năng mới, được yêu cầu khẩn cấp, không thể được thực hiện với giá rẻ để tương tác với hệ thống cũ

2
Nền tảng của bạn là gì để chắc chắn là gì?

Tôi hoàn toàn có thể tuyên bố rằng sự chắc chắn của bạn bị đặt sai chỗ - chúng tôi có một số nhân viên mới (20-30 tuổi) mới viết mã Cobol mới (cập nhật và / hoặc sao chép và sửa đổi các hệ thống hiện có) và chúng tôi có ít nhất 10% trong số ~ 200 nhà phát triển của chúng tôi dành 80% + thời gian phát triển của họ trong Cobol. Tôi nghĩ rằng bạn sẽ thấy rằng hầu hết những nơi sử dụng Cobol hoàn toàn ngược lại với những gì bạn mô tả.
Wayne Werner

4

tự hỏi những gì bạn có nghĩa là "Hầu hết các lập trình viên". Tôi làm việc trong một cửa hàng CNTT lớn trên cùng tầng với các lập trình viên cobol, lập trình viên Java, lập trình viên .NET (số ít), lập trình viên VB kiểu cũ. Không có ghét hay không thích. cobol là một ngôn ngữ giống như bất kỳ ngôn ngữ lập trình nào khác - mọi người lập trình trong cobol làm như vậy bởi vì đó là công việc đối với họ không khác gì lập trình trong java hoặc lái xe tải. Trái ngược với quan niệm phổ biến ở Mỹ, có rất nhiều cobol tiếp tục được viết, chỉ có phần lớn là ở Ấn Độ nơi mỗi ngày lập trình viên Cobol mới bắt đầu làm việc.

Tôi nghĩ lý do tại sao không có quá nhiều hệ thống mới được viết bằng Cobol là vì loại hệ thống phù hợp với (xử lý tệp khối lượng lớn) đều đã được viết. Rất ít tập đoàn lớn mới được tạo ra những ngày này. Và những người có thể thuê ngoài những thứ như bảng lương và lợi ích cho các công ty chạy các hệ thống cobol kế thừa.


2

Một phần lớn mã lõi trong PeopleSoft được viết bằng COBOL.


Tôi được cho hiểu, từ việc nói chuyện với đại diện PeopleSoft tại một hội nghị CNTT hồi năm 2004 trước khi Oracle mua lại, đó là lúc đó chỉ có một mô-đun của sản phẩm vẫn còn trong COBOL.
Kennah

Làm thế nào điều này mang lại lợi thế cho COBOL so với các ngôn ngữ khác?
Matthieu

2

Với 20 năm kinh nghiệm về COBOL, trên ba máy tính lớn khác nhau, theo ý kiến ​​khiêm tốn của tôi, có rất ít lập trình viên COBOL thực thụ và thay vào đó là các lập trình viên của IBM, lập trình viên Sperry (Unisys 2200), lập trình viên Burroughs (Unisys MCP) và Tandem (HP NonStop) lập trình viên. Để thể hiện sự tôn trọng với họ, tôi cũng phải đề cập đến sự hiện diện của các lập trình viên HP 3000, lập trình viên BULL và lập trình viên DEC.

COBOL chạy trên các hộp sắt lớn, phần lớn. Có lẽ các lập trình viên COBOL thực sự duy nhất, theo tiêu chuẩn của riêng tôi, là những người viết COBOL trên hộp UNIX. Wow, tôi sẽ nghe về điều này.

Bởi vì phần cứng là phần trung tâm, hầu hết các lập trình viên viết COBOL đều tự nhận mình bằng phần cứng mà mã họ viết chạy. Trong những năm qua, nghe các lập trình viên khác nói với tôi về công trạng của Sperry, Burroughs hoặc Tandem, tôi thường tự hỏi loại chiến tranh nào sẽ xảy ra nếu tôi làm tròn chúng và đặt chúng trong một căn phòng cùng nhau không thể rời đi cho đến khi chúng đồng ý với một nền tảng phần cứng cho tất cả các COBOL. Tôi đã không đề cập đến các nền tảng khác bởi vì tôi chưa bao giờ làm việc trên chúng.

Tôi đã gặp và nói chuyện với nhiều lập trình viên của IBM và họ sẽ tự gọi mình là lập trình viên của COBOL. Tuy nhiên, nếu một người lôi kéo họ vào cuộc trò chuyện, họ sẽ nhanh chóng bắt đầu tham khảo các quy trình và công cụ cụ thể của IBM. Với tính chất tập trung vào phần cứng của COBOL, điều này rất dễ hiểu đối với tất cả các nền tảng phần cứng.

Bởi vì COBOL thường được gắn với một phần cứng rất đắt tiền, miễn là phần cứng đó chạy các chương trình COBOL được biên dịch trên đó thì không có mong muốn mạnh mẽ để di chuyển từ COBOL vì mục đích di chuyển. Tuy nhiên, với dân số lập trình viên COBOL già nua, việc di cư là không thể tránh khỏi.

Vì tất cả các hộp sắt lớn chạy COBOL cũng sẽ chạy Java, Java là con đường di chuyển tự nhiên ra khỏi COBOL. Mã có thể được chuyển đổi, đặc biệt là bây giờ trong một nền kinh tế xuống, với một mức giá khá kinh tế. Một khi không có COBOL, chỉ có Java, trên phần cứng lớn đắt tiền đó, thì ai đó cao hơn trong tổ chức sẽ bắt đầu tự hỏi liệu có thể chuyển mã Java sang một phần cứng rẻ hơn nhiều khác không.

Các lập trình viên IBM, Sperry, Burroughs và Tandem biết điều này, vì vậy họ có thể KHÔNG BAO GIỜ đưa ra ý tưởng. Nó sẽ là một đặc quyền đối với một số người.


+1, thực sự rất tốn kém. Thêm vào đó chỉ ra rằng Java đang trở thành Cobol mới - điều mà tôi đã nhìn thấy bản thân mình và tôi chỉ là một người trẻ tuổi, vì vậy thật thú vị khi thấy ai đó có kinh nghiệm thực hiện cùng một quan sát.
Wayne Werner
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.