Чи все ще має сенс навчання COBOL?
Чи все ще має сенс навчання COBOL?
Відповіді:
Я не думаю, що якщо ви вже не знаходитесь на ринку ніш, де COBOL все ще підтримується.
Нуо, звичайно ні. Зрештою, COBOL - це мертва мова. Або це?
Проблема такої точки зору полягає в тому, що програмісти на таких сайтах зазвичай працюють з високотехнологічними, швидко працюючими (і однаково швидко вигораючими) компаніями. Для них COBOL - це мертва мова - її ніде не можна побачити. Не було вже певний час, це правда.
Але COBOL не був призначений для них. В індустрії програмного забезпечення є більше, ніж у цьому. Комп'ютери не були винайдені для людей з певною ірраціональною потребою в оновленні та заміні старих на нові весь час. Вони були зроблені для ділових цілей.
Ви хочете побачити COBOL? Перейдіть до компанії, яка обробляє заробітну плату, або обробляє вантажні перевезення товарів, або доставку (як на кораблях), або обробляє ваш банківський рахунок. Існує величезна невидима система коду, яка практично непомітна для користувачів, і більшість з них ніколи не замислюються над цим, хоча стикаються з ним так чи інакше щодня (банкомати?)
Ні, він не мертвий. Але це "спадщина" точно ... чи це?
Знову ж таки, залежить, як ви на це дивитесь. В даний час багато людей будуть використовувати Java, C або будь-що інше замість COBOL, переписуючи з нуля ... вводячи нові помилки, коли вони йдуть разом, природно. Це не означає, що COBOL не має помилок і примх. Це так само, як і наступна мова. Звичайно, так і є. Але в "часи COBOL" компанії, які сприймали помилки серйозніше, ніж зазвичай (страхування, банки), як правило, випускали код вищої якості зі спеціальними групами якості послуг; сьогодні існують терміни, коли час і бюджет завжди перемагають над якістю. Крім того, ці системи спочатку розроблялися протягом більш тривалих періодів тоді порівняно з еквівалентом зараз.
Якщо якесь програмне забезпечення працює 30+ років, де стимул перейти? Цілі компанії припинили свою діяльність, тому що вони ігнорували стару приказку про те, що "якщо вона не зламається, не виправляйте". Багато хто намагався переписати річ ... тоді перший перегляд коштував дорожче, потім другий коштував навіть дорожче ... і жоден із нових та вдосконалених не зміг його замінити. Як я вже говорив, ця галузь швидко горіє, і вона, як правило, швидко забуває.
У 70-х роках COBOL помер або скоро помер, C / C ++ збиралися правити. Потім знову на початку 80-х Паскаль перебирав на себе. Тоді в 90-ті роки це була Java як мова ...
Подумайте про Unisys Mapper, dBase, Clipper, Cold Fusion ... чи люди навіть пам’ятають це? Кожен з них збирався бути могильником COBOL.
Враховуючи це, і той факт, що він відмінно підходить для обробки великих обсягів транзакцій, пакетної обробки або обробки / орієнтованої на транзакцію обробку, і що можна скласти (без помилок) підпрограму, написану 30 років, як керований код COBOL та виклик це від керованого COBOL.NET, якщо хочеться перейти до Windows та .NET, у мене виникають проблеми з пошуком відповідної заміни для нього. (У мене також виникають проблеми з пошуку технології Microsoft, яка тривала більше десяти років.)
Так, новий код COBOL пишеться сьогодні. Треба просто знати, де шукати.
Для тих, хто сміється з COBOL, ІМХО, це як сміятися з Єгипетських пірамід, вони є там з 5000 років, і вони все ще будуть там у наступні 5000 років, тоді як сьогоднішнє житло "привітного світу", для якого потрібно 24 управління, буде видалено, замінений, забутий наступного місяця.
То де ж усі ці COBOL програмісти?
Ах, бо тут лежить руб. Річ у тім, що багато з них не мають жодного наукового обчислення. Багато з них не є професійними програмістами (як у випускників університету за програмою CS / SE). Здебільшого це люди, які знаходяться в кінці 30–50-х років, з усіх галузей, які повністю пройшли навчання компанією спеціально для цієї роботи. Тому вони не є "програмістами COBOL" - навчання, яке вони отримали, є специфічним для компанії, яка так сильно просувається зсередини. І це робить їх майже непомітними.
Якщо ви можете бачити себе програмістом COBOL, тоді займіться цим. Є ще мільярди рядків, написаних на COBOL, які потребують обслуговування.
Власне, немає такого поняття, як зайві знання, тому розширюйте знання та ширші можливості, які ви (будете) мати.
Чи має сенс навчання?
Ну, це ніша, і є тонни робочого застарілого коду, який потрібно підтримувати і не може бути просто переписаний. Тому, хоча це насправді не варіант для величезної маси всіх програмістів, це перспектива для стабільного доходу для людей.
Однак якщо вам цікаво створити нові рішення, а не повільно вдосконалювати ті, що існують з десятиліть, COBOL, ймовірно, не є правильною мовою.
Багато європейських компаній все ще сильно покладаються на мейнфрейми, що працюють як програми z / vse та cobol. Існує попит на кваліфікованих програмістів коболів, що ніхто не думає, що ринок заповнить, що збільшує зарплату, багато.
Питання повинно бути таким: "Чи буду я коли-небудь розробляти щось нове за допомогою кобола?" оскільки майже все - це обслуговування або зміни існуючих важливих місій.
Раніше я працював у IBM, де кожен день писали код COBOL та PL / I. Також від великих компаній, що покладаються на мейнфрейми IBM, як багато банків, які вимагають тисячі транзакцій в секунду, ці мови все ще активно використовуються.
Якщо ви не хочете працювати в такому місці (тому я просто працював там 6 місяців), тоді навіть не думайте вивчати ці мови.
Ми щодня пишемо новий код Cobol і постійно шукаємо нових програмістів. Тут пропозиція занадто мала.
Якщо ви хочете влаштуватися на роботу програмістом COBOL, то обов'язково продовжуйте та вивчайте її.
З будь-якої іншої причини, як, наприклад, намагатися дізнатися щось корисне, що може допомогти вам у сучасних методиках програмування, ні, не турбуйте.
У 2000 році я прочитав статистику про те, що написано більше рядків COBOL, ніж всі інші мови разом.
Додайте до цього гарантію IBM, що будь-яка колода TEXT (об'єктний код), зібрана в будь-якій системі MVS, може бути виконана на всіх їхніх системах MVS, і ви маєте гарантію, що буде програмування COBOL навколо, поки світить сонце.
Я можу вам сказати, як я це "дізнався":
я був працевлаштований працювати з ним, не маючи поняття, про що йдеться, і не мав труднощів з його вивченням за ніч.
Отже, якщо вам це потрібно, ви можете це навчитися. Не потрібно перевантажувати себе марними знаннями. Нічого цікавого в ньому чи в його заходах немає, якщо у вас немає реальної практичної потреби в цьому.
Загальна відповідь: вивчіть принципи кодування, а не їх конкретні реалізації (наприклад, мови тощо)
Я б не витрачав на це час.
У будь-якому випадку COBOL є складовими багатьох застарілих прикладних програм, які є критично важливими для декількох великих компаній, розпочатих 20 \ 30 років тому.
Отже, якщо ви наймаєтесь на компанію, яка має частину свого основного бізнесу в COBOL, є шанси, що вам доведеться почати її вивчати.
Вивчіть це, якщо вам подобається, зрештою, знати, як все працює (або використовується раніше) не може бути поганою справою.
Однак я б рекомендував не наголошувати на вашому резюме надто сильних навичок COBOL
У деяких місцях (наприклад, у Кремнієвій долині, де я проживаю) наявність COBOL у вашому резюме несе відповідальність. Ну звичайно, ви можете знайти місце тут і там, хто потребує вашої експертизи, і в такому випадку продовжуйте рекламувати лише ті місця . Але загалом, зробіть собі прихильність і забудьте згадати, що ви знаєте COBOL.
Так що так, навчіться це, якщо вам цікаво, просто не кажіть нікому.
Можливо, це не варто з точки зору ринку праці, але ви, можливо, захочете поглянути на це лише для того, щоб відчути, як це робилося "в добрий день". ^^
З особистої точки зору я б сказав, що краще навчитися спочатку. Однак багато великих компаній мають дуже великі інвестиції у свою кодову базу COBOL, яку вони, ймовірно, ніколи не зможуть залишити, створюючи галузь для програмістів COBOL, щоб підтримувати кодову базу, а також писати новий код. Компанія, над якою я працюю, - це велика фінансова компанія, і наша технологія для розробників - приблизно 30% COBOL, 40% Java та 30% C #.
Я щойно шукав "cobol" на найбільшому веб-сайті в Австралії. Він повернув 87 результатів, і (з швидкого знецінення) вони, як правило, є застарілими посадами з обслуговування в банках та фінансових установах. Переважно краще оплачувані, ніж більш "сучасні" мовні роботи - імовірно, через рідкість досвіду Кобола.
Так, так, здається, що Коболу варто було б навчитися, якщо ви 1) не проти робити застаріле обслуговування і 2) ви хочете потрапити в нішу, яка є добре оплачуваною і, мабуть, не дуже конкурентоспроможною, оскільки це вже мало хто навчається.
(Я припускаю, що ринок Кобола був би подібним у більшості країн Першої світової, але міг помилитися?)
Подумайте про види проблемних доменів, над якими ви хочете працювати. Зазвичай ці домени мають набір мов, які зазвичай використовуються для цієї мети. Якщо COBOL відповідає, то продовжуйте.
Ні в якому разі я б не торкнувся ні кобола, ні проблемних доменів, які активно використовують його за допомогою 10-футового полюса. Я б швидше фліп гамбургери.
Також врахуйте, чи мова пропонує певний бонус / покращення вашим можливостям / концепціям програмування. Я не можу придумати що-небудь, що COBOL може зробити / реалізувати / виконувати функції, що не робиться краще або може бути продемонстровано краще на іншій мові.
Ви та інші можете відчувати себе по-різному.
Існує ще багато застарілої системи, написаної в COBOL. Незалежно від того, хочете ви їх підтримувати чи пересилати на інші мови програмування, все ж варто вивчити COBOL.
Незалежно від того, що це таке, деякі знання з декількох мов програмування стануть плюсом, оскільки знання, які ви маєте, дозволяють вибрати мову програмування або підхід для різних потреб проекту. Ви можете використовувати свої знання з мов програмування для створення кращих, більш чистих та ефективних кодів та уникнення підводних каменів.