Có phải học COBOL vẫn có ý nghĩa?
Có phải học COBOL vẫn có ý nghĩa?
Câu trả lời:
Tôi không nghĩ vậy, trừ khi bạn đã ở trong thị trường ngách, nơi vẫn duy trì COBOL.
Không, tất nhiên là không. Rốt cuộc, COBOL là một ngôn ngữ chết. Hoặc là nó?
Vấn đề với quan điểm đó là các lập trình viên tại các trang web như thế này thường làm việc với các công ty công nghệ cao, hoạt động nhanh (và không kém phần nhanh chóng). Đối với họ, COBOL là một ngôn ngữ chết - không nơi nào có thể nhìn thấy. Đã không được một thời gian, 'đây là sự thật.
Nhưng COBOL không dành cho họ. Có nhiều thứ cho ngành công nghiệp phần mềm hơn thế này. Máy tính không được phát minh cho những người có nhu cầu phi lý để nâng cấp và thay thế cái cũ bằng cái mới mọi lúc. Chúng được làm cho mục đích kinh doanh.
Bạn muốn xem COBOL? Đến một công ty xử lý bảng lương, hoặc xử lý vận tải hàng hóa, hoặc vận chuyển (như trên tàu) hoặc xử lý tài khoản ngân hàng của bạn. Có một hệ thống mã vô hình khổng lồ ngoài kia thực tế là vô hình đối với người dùng và hầu hết họ không bao giờ nghĩ về nó mặc dù họ gặp nó theo cách này hay cách khác hàng ngày (ATM?)
Không, nó không chết. Nhưng đó là "di sản" chắc chắn ... hay là nó?
Một lần nữa, phụ thuộc vào cách bạn nhìn vào nó. Ngày nay, rất nhiều người sẽ sử dụng Java, C hoặc bất cứ thứ gì khác thay vì COBOL, viết lại từ đầu ... giới thiệu các lỗi mới khi chúng đi cùng, một cách tự nhiên. Điều đó không có nghĩa là COBOL không có lỗi và sự kỳ quặc. Nó làm, nhiều như ngôn ngữ tiếp theo. Tất nhiên nó. Nhưng trong "thời gian COBOL", các công ty gặp lỗi nghiêm trọng hơn bình thường (bảo hiểm, ngân hàng) có xu hướng sản xuất mã chất lượng cao hơn với các nhóm dịch vụ chất lượng đặc biệt; ngày nay, có thời hạn mà thời gian và ngân sách luôn chiến thắng về chất lượng. Ngoài ra, các hệ thống này ban đầu được phát triển trong thời gian dài hơn so với tương đương bây giờ.
Nếu một số phần mềm đã hoạt động được hơn 30 năm, thì đâu là động lực để chuyển đổi? Toàn bộ các công ty đã phá sản vì họ bỏ qua câu ngạn ngữ cũ là "nếu nó không bị hỏng , đừng sửa nó." Nhiều người đã cố gắng viết lại điều đó ... sau đó, lần viết lại đầu tiên tốn rất nhiều tiền, sau đó lần thứ hai thậm chí còn tốn kém hơn ... và không ai trong số những người mới và được cải tiến quản lý để thay thế nó. Như tôi đã nói, ngành công nghiệp này đang phát triển nhanh, và nó cũng có xu hướng quên nhanh.
Vào những năm 70, COBOL đã chết hoặc sắp chết, C / C ++ sẽ cai trị. Sau đó, một lần nữa vào đầu những năm 80, Pascal đã tiếp quản. Sau đó, vào thập niên 90, Java là Ngôn ngữ ...
Hãy nghĩ về Unisys Mapper, dBase, Clipper, Cold fusion ... mọi người thậm chí còn nhớ những thứ đó chứ? Mỗi người trong số họ sẽ trở thành người đào mộ cho COBOL.
Nếu tính đến điều đó, và thực tế là nó rất tuyệt để xử lý khối lượng giao dịch lớn, xử lý hàng loạt hoặc xử lý theo định hướng / giao dịch và người ta có thể biên dịch (không có lỗi) một chương trình con được viết 30 năm dưới dạng mã COBOL được quản lý và gọi nó từ một COBOL.NET được quản lý nên người ta muốn dùng Windows và .NET, tôi gặp khó khăn khi tìm một sự thay thế phù hợp cho nó. (Tôi cũng gặp khó khăn khi tìm kiếm một công nghệ của Microsoft tồn tại hơn một thập kỷ.)
Có, mã COBOL mới đang được viết ngày hôm nay. Người ta chỉ cần biết nơi để tìm.
Đối với những người cười nhạo tại COBOL, IMHO, giống như cười với Kim tự tháp Ai Cập, họ ở đó từ 5000 năm và họ sẽ vẫn ở đó trong 5000 năm tới, trong khi nhà ở "xin chào thế giới" ngày nay cần 24 điều khiển để hoạt động sẽ bị xóa, Thay thế, quên vào tháng tới.
Vậy tất cả những lập trình viên COBOL đó ở đâu?
Ah, vì đây là sự cọ xát. Vấn đề là rất nhiều người trong số họ không có nền tảng khoa học máy tính. Rất nhiều người trong số họ không phải là lập trình viên chuyên nghiệp (như sinh viên tốt nghiệp đại học từ chương trình CS / SE). Phần lớn, họ là những người ở độ tuổi 30 đến 50, từ tất cả các lĩnh vực chuyên môn, được đào tạo hoàn toàn bởi công ty dành riêng cho công việc đó. Vì vậy, họ không phải là "lập trình viên COBOL" - chương trình đào tạo mà họ nhận được là dành riêng cho công ty được quảng bá rất nhiều từ bên trong. Và điều đó làm cho họ khá nhiều vô hình.
Nếu bạn có thể thấy mình là lập trình viên của COBOL, thì hãy tìm nó. Vẫn còn hàng tỷ dòng được viết bằng COBOL yêu cầu bảo trì.
Trên thực tế, không có thứ gọi là kiến thức không cần thiết, vì vậy hãy mở rộng kiến thức và cơ hội rộng lớn hơn mà bạn (sẽ) có.
Học nó có ý nghĩa không?
Chà, đó là một lối đi riêng và có hàng tấn mã kế thừa đang hoạt động cần được duy trì và không thể viết lại. Vì vậy, trong khi nó không thực sự là một lựa chọn cho số đông lập trình viên, thì đó là viễn cảnh cho thu nhập ổn định cho các cá nhân.
Tuy nhiên, nếu bạn quan tâm đến việc tạo ra các giải pháp mới, thay vì từ từ cải thiện những giải pháp đã có từ nhiều thập kỷ, thì COBOL có lẽ không phải là ngôn ngữ phù hợp.
Rất nhiều công ty châu Âu vẫn phụ thuộc nhiều vào các máy tính lớn chạy như các chương trình z / vse và cobol. Có một nhu cầu cho các lập trình viên cobol lành nghề mà không ai nghĩ rằng thị trường sẽ lấp đầy, điều này làm tăng lương, rất nhiều.
Câu hỏi nên là, "tôi có bao giờ phát triển thứ gì đó mới bằng cách sử dụng cobol không?" vì hầu hết mọi thứ là bảo trì hoặc biến thể của các công cụ quan trọng hiện có.
Tôi đã từng làm việc cho IBM, nơi mã COBOL và PL / I được viết mỗi ngày. Ngoài ra, từ các công ty lớn dựa vào các máy tính lớn của IBM như nhiều ngân hàng yêu cầu hàng nghìn giao dịch mỗi giây, các ngôn ngữ này vẫn được sử dụng rất nhiều.
Nếu bạn không muốn làm việc ở một nơi như thế (Đó là lý do tại sao tôi mới làm việc ở đó được 6 tháng) thì đừng nghĩ đến việc học những ngôn ngữ đó.
Chúng tôi viết mã Cobol mới mỗi ngày và chúng tôi luôn tìm kiếm các lập trình viên mới. Nguồn cung quá nhỏ quanh đây.
Nếu bạn muốn có một công việc như một lập trình viên COBOL, thì chắc chắn, hãy tiếp tục và học nó.
Vì bất kỳ lý do nào khác, như cố gắng học một cái gì đó hữu ích có thể giúp bạn với các kỹ thuật lập trình hiện đại, không, đừng bận tâm.
Vào năm 2000, tôi đã đọc một thống kê rằng có nhiều dòng viết về COBOL hơn tất cả các ngôn ngữ khác cộng lại.
Thêm vào đó, IBM đảm bảo rằng mọi sàn văn bản (mã đối tượng), được biên dịch trên bất kỳ hệ thống MVS nào đều có thể thực thi được trên tất cả các hệ thống MVS của họ và bạn có đảm bảo rằng sẽ có lập trình COBOL xung quanh miễn là mặt trời chiếu sáng.
Tôi có thể nói cho bạn biết tôi đã "học" nó như thế nào:
Tôi được tuyển dụng để làm việc với nó, không biết nó nói về cái gì và không gặp khó khăn gì khi học nó qua đêm.
Vì vậy, nếu bạn cần nó, bạn có thể tìm hiểu nó. Không cần phải quá tải với kiến thức vô dụng. Không có gì thú vị trong đó hoặc sự tham gia của nó trừ khi bạn có nhu cầu thực tế thực sự cho nó.
Câu trả lời chung chung: tìm hiểu các nguyên tắc mã hóa, chứ không phải các triển khai cụ thể của chúng (như ngôn ngữ, v.v.)
Tôi sẽ không dành thời gian cho nó.
Dù sao, COBOL là khối xây dựng của nhiều chương trình ứng dụng cũ là nhiệm vụ quan trọng đối với một số Công ty lớn bắt đầu từ 20 \ 30 năm trước.
Vì vậy, nếu bạn được thuê cho một công ty có một phần hoạt động kinh doanh chính trong COBOL, có nhiều khả năng bạn phải bắt đầu tìm hiểu nó.
Tìm hiểu nó nếu bạn thích, sau tất cả, biết cách mọi thứ hoạt động (hoặc được sử dụng để làm việc) có thể là một điều xấu.
Tuy nhiên tôi sẽ khuyên bạn không nên nhấn mạnh các kỹ năng COBOL của bạn quá nhiều trong sơ yếu lý lịch của bạn.
Ở một số nơi (ví dụ, tại Thung lũng Silicon nơi tôi sống) có COBOL trong sơ yếu lý lịch của bạn sẽ là một trách nhiệm pháp lý. Ồ chắc chắn, bạn có thể tìm thấy một nơi ở đây và những người cần chuyên môn của bạn, và trong trường hợp đó hãy tiếp tục và quảng cáo nó đến những nơi đó . Nhưng nói chung, hãy tự làm cho mình và quên đề cập rằng bạn biết COBOL.
Vì vậy, có, tìm hiểu nó nếu bạn tò mò, đừng nói với bất cứ ai.
Có thể không có giá trị từ góc độ thị trường làm việc, nhưng bạn có thể muốn xem xét nó chỉ để cảm nhận về cách thức công cụ được thực hiện "trong một ngày tốt đẹp". ^^
Từ quan điểm cá nhân tôi sẽ nói rằng có những điều tốt hơn để tìm hiểu đầu tiên. Tuy nhiên, nhiều công ty lớn có khoản đầu tư rất lớn vào cơ sở mã COBOL của họ mà có lẽ họ sẽ không bao giờ thực sự có thể bỏ lại phía sau, tạo ra một ngành công nghiệp cho các lập trình viên của COBOL để duy trì cơ sở mã cũng như viết mã mới. Công ty tôi làm việc là một công ty tài chính lớn và sự phân chia công nghệ của chúng tôi dành cho các nhà phát triển là khoảng 30% COBOL, 40% Java và 30% C #.
Tôi vừa thực hiện tìm kiếm "cobol" trên trang web việc làm lớn nhất của Úc. Nó đã trả lại 87 kết quả, và (từ một cách lướt qua nhanh) họ dường như là vị trí bảo trì di sản trong các ngân hàng và tổ chức tài chính. Chủ yếu được trả lương cao hơn nhiều so với các công việc dựa trên ngôn ngữ "hiện đại" hơn - có lẽ là do sự hiếm có của kinh nghiệm Cobol.
Vì vậy, vâng, có vẻ như Cobol sẽ đáng để học nếu bạn 1) không bận tâm đến việc bảo trì di sản và 2) bạn muốn vào một thị trường thích hợp được trả lương cao và có lẽ không còn cạnh tranh vì đó là điều mà ít người đang học nữa.
(Tôi cho rằng thị trường Cobol sẽ tương tự ở hầu hết các nền kinh tế của Thế giới thứ nhất, nhưng có thể sai?)
Hãy suy nghĩ về các loại miền vấn đề bạn muốn làm việc. Thông thường, các miền đó có một bộ ngôn ngữ thường được sử dụng cho mục đích này. Nếu COBOL phù hợp với điều đó thì hãy tiếp tục.
Không có cách nào tôi có thể chạm vào cobol hoặc (các) miền vấn đề sử dụng nó nhiều với cực 10 feet. Tôi thà lật bánh mì kẹp thịt.
Cũng xem xét nếu ngôn ngữ cung cấp một số phần thưởng / ngẫu hứng cho khả năng / khái niệm lập trình của bạn. Tôi không thể nghĩ ra bất cứ điều gì mà COBOL có thể làm / thực hiện / các tính năng không được thực hiện tốt hơn hoặc có thể được thể hiện tốt hơn bằng ngôn ngữ khác.
Bạn và những người khác có thể cảm thấy khác nhau.
Vẫn còn rất nhiều hệ thống kế thừa được viết bằng COBOL. Cho dù bạn muốn duy trì chúng hoặc chuyển chúng sang các ngôn ngữ lập trình khác, thì vẫn đáng để học hỏi COBOL.
Bất kể đó là gì, một số kiến thức trong nhiều ngôn ngữ lập trình sẽ là một điểm cộng bởi vì kiến thức bạn có cho phép bạn chọn ngôn ngữ lập trình hoặc phương pháp tiếp cận cho các nhu cầu dự án khác nhau. Bạn có thể sử dụng kiến thức của mình trong các ngôn ngữ lập trình để xây dựng mã tốt hơn, sạch hơn và hiệu quả hơn và để tránh những cạm bẫy.