Есть ли причины использовать COBOL, кроме как для устаревшего программного обеспечения?

11

COBOL по-прежнему (в значительной степени?) Используется для финансовых вычислений. Это старый язык, и большинство программистов AFAIK ненавидят или, по крайней мере, не любят COBOL. Возникает вопрос: единственная ли причина, по которой COBOL все еще используется, это то, что его использует устаревшее программное обеспечение, или же оно имеет какие-то реальные преимущества перед другими языками программирования?

Просто любопытно.

Анто
источник
3
Старое само по себе не является причиной.
Нет, но, скорее всего, ему не хватает современных функций. Это не так важно, если язык хорошо продуман.
Anto
Также все еще активно используется в правительстве, а не только в банковской сфере.
BBlake
6
«Большинство программистов ненавидят COBOL» - я уверен, что большинство программистов никогда не использовали его. Я был бы удивлен, если бы более 5% этих «ненавистников» имели представление о его синтаксисе или форме. Они просто используют это как пример зла устаревших систем, не зная, что происходит на самом деле. Подобно тому, как часто рассматривают Фортран.
TZHX
@TZHX: Однако вся цитата должна звучать так: «AFAIK большинство программистов ненавидят или, по крайней мере, не любят COBOL». Я не говорю, что это так, просто я интерпретировал ситуацию. Но то, что вы говорите, может быть правдой, но я не знаю этого достаточно хорошо, чтобы сказать что-либо сам, все, что я использовал, это личные наблюдения за мнениями людей (которые могут пострадать именно от того, что вы сказали).
Anto

Ответы:

12

Сейчас это в основном наследие. Многие критические бизнес-системы все еще находятся в COBOL просто потому, что они настолько велики и интегрированы, что стоимость переписывания не стоит того. Написание новой системы на языке COBOL, вероятно, уже неосуществимо, поскольку большинство разработчиков на языке COBOL настолько скудны, что могут потратить немало денег на специализированные навыки (аналогично тому, как сейчас разработчик Foxpro). Существует несколько причин, по которым приложение COBOL не поддерживается, но, к сожалению, общая причина заключается в том, что приложение COBOL уже установлено, надежно и тесно связано с другими системами, где его практически невозможно заменить. Именно по этой причине его следует заменить, прежде чем он попадет в ситуацию, когда единственное оборудование, на котором работает приложение, должно быть изготовлено на заказ из деталей Ebay из 80/90-х годов.

Райан Хейс
источник
Что заставляет вас говорить: «Сейчас это в основном наследие»? Я не думаю, что вы действительно знаете, о чем говорите. Сейчас я работаю над новым проектом COBOL за несколько миллионов долларов. Я также знаю несколько других очень крупных новых проектов разработки, использующих COBOL в качестве основного языка реализации. Желаемое мышление с вашей стороны не делает это реальностью.
NealB
1
Не принимай это от меня. Исследования О'Рейли говорят, что продажи книг на языке кобол практически отсутствуют по сравнению с другими языками. Это либо потому, что разработчики не проявляют интереса, либо их недостаточно. Я уверен, что вы можете найти новую разработку, используя COBOL, но это все еще НАСТОЯЩЕЕ наследие (не все наследие). Я уверен, что кто-то вроде вас, кто специализируется на COBOL, будет иметь связи с другими людьми, которые также используют только COBOL. Точно так же, как это было бы со мной, только наличие друзей, которые используют один язык, не означает, что я не меньшинство.
Райан Хейс
В нашей компании мы в значительной степени копируем / вставляем существующий код, настраиваем его в соответствии с нашими потребностями и говорим «сделано». К счастью, я занимаюсь разработкой на C # / VB
Уэйн Вернер
4

COBOL по-прежнему (в значительной степени?) Используется для финансовых вычислений.

Это?

Это зависит от того, что вы называете финансовыми вычислениями. Если вы называете весь код, которым управляют финансовые учреждения, то да, это, вероятно, так. Большинство из них имеют бизнес-правила, написанные в 60-х и 70-х годах. Риск + стоимость обновления подобных систем до новой среды не стоит. Я сомневаюсь, что есть кто-то, кто пишет новый код на языке COBOL. Например, сегодня существуют компиляторы COBOL, которые интегрируются в стек .NET. Часто существуют инструменты для интеграции и использования унаследованных приложений в современных программных стеках, но эти инструменты часто неизвестны людям, которым не нужно их использовать, поскольку это очень нишевый рынок.

Теперь, если вы называете финансовые вычисления чем-то более похожим на программное обеспечение для количественного финансирования, я никогда не слышал о ком-то, кто использует КОБОЛ. C ++ гораздо более распространен среди некоторых нишевых языков, таких как k, производная APL.

Vitor Py
источник
kи это потомки qтакие боли
Андрей
@ Андрей Это дело вкуса. Мне нравится это.
Вит Пи
вам повезло. Одна из самых больших проблем для меня - отсутствие нормальной IDE и бесполезные сообщения об ошибках
Андрей
2
@ Андрей Да, отход от основной среды разработки - самая большая проблема при использовании нишевых языков. Раньше я использовал шаблонный тяжелый код C ++, прежде чем использовать его, поэтому я несколько привык к бесполезным сообщениям об ошибках :)
Vitor Py
@ Андрей, у IBM есть инструменты на основе Eclipse для Cobol.
4

Кобол в основном видит устаревшее использование сейчас. Его пользовательская база медленно истощается из-за истощения, поскольку новые приложения не пишутся, а старые медленно, но верно, постепенно сокращаются.

Большинство систем COBOL, которые можно быстро и дешево заменить, уже были заменены. Те, которые не имеют, продолжают становиться все более и более дорогими для ремонта или замены, но дешевле и дешевле в обслуживании по сравнению с более новыми системами - они хорошо работают на дешевом, устаревшем оборудовании и, после многих лет эксплуатации, не являются больше показывая какие-либо новые ошибки. Большинство ошибок либо исправлены, либо имеют давние традиции, которые подходят в качестве обходных путей. Техническое обслуживание обычно сводится к одному или двум специализированным сотрудникам, которые, после долгого времени работы над системой, знают это более глубоко, чем вы можете себе представить.

Даже с технической точки зрения, обычно существуют веские причины для сохранения старых систем. Они относительно стабильны, в основном исправлены и хорошо известны конечному пользователю.

Вы увидите, что система в конечном итоге будет заменена. Как правило, этот шаг исходит от деловой стороны вещей:

  • Пользователи нынешней системы заменены более молодыми пользователями, которых нельзя убедить научиться использовать архаичный интерфейс.
  • Компания не может найти никого, чтобы нанять ее для поддержания системы, с зарплатой, которая не возмутительна по сравнению с зарплатой других сотрудников
  • Кто-то с большим бюджетом смущается, узнав, что основная система компании работает на оборудовании, которое можно заменить виртуальной машиной на ноутбуке
  • Появляется новая товарная система, которую действительно дешево начать использовать.
  • Компания, использующая старые системы, приобретена, обанкротилась или прекратила существование.
  • Крайне важная часть новой, срочно необходимой функциональности не может быть дешево сделана для взаимодействия с устаревшей системой
blueberryfields
источник
2
Каково ваше происхождение, чтобы быть таким уверенным?
Я могу категорически заявить, что ваша уверенность неуместна - у нас есть несколько молодых (20-30-х) новых сотрудников, пишущих новый код Cobol (обновление и / или копирование и модификация существующих систем), и у нас есть по меньшей мере 10% наших ~ 200 разработчиков, которые тратить 80% своего времени на разработку в Коболе. Я думаю, вы обнаружите, что большинство мест, где используется Кобол, совершенно противоположны тому, что вы описываете.
Уэйн Вернер
4

интересно, что вы имели в виду под «большинством программистов». Я работаю в большом IT-магазине на одном этаже с программистами на cobol, Java-программистами, .NET-программистами (в единственном числе), старыми программистами на VB. Там нет ненависти или неприязни. Cobol - это такой же язык, как и любой другой язык программирования. Люди, программирующие на Cobol, делают это потому, что для них это работа, не отличающаяся от программирования на Java или вождения грузовика. Вопреки распространенному в США представлению о том, что по-прежнему пишется много кобола, только большая его часть находится в Индии, где каждый день начинают работать новые программисты на Cobol.

Я думаю, что причина того, что в Cobol написано не так много новых сетевых систем, заключается в том, что все системы, для которых подходит cobol (обработка файлов большого объема), уже написаны. Очень немногие новые крупные корпорации создаются в эти дни. И те, которые делают, могут быть аутсорсинг таких вещей, как заработная плата и льготы для компаний, которые используют устаревшие системы cobol.


источник
2

Большая часть основного кода в PeopleSoft написана на языке COBOL.

бит-бездельник
источник
После беседы с представителями PeopleSoft на ИТ-конференции в 2004 году до того, как Oracle приобрел их, мне дано понять, что в то время это был только один модуль продукта, который все еще был в COBOL.
Кенна
Как это дает COBOL преимущество перед другими языками?
Матье
2

Имея 20-летний опыт работы с COBOL на трех различных мэйнфреймах, я считаю, что настоящих программистов на COBOL немного, и вместо этого есть программисты IBM, программисты Sperry (Unisys 2200), программисты Burroughs (Unisys MCP) и Tandem (HP NonStop) программисты. В знак уважения к ним я должен также упомянуть присутствие программистов HP 3000, программистов BULL и программистов DEC.

COBOL работает на больших железных коробках, по большей части. Возможно, единственными настоящими программистами на COBOL, по моим собственным стандартам, являются те, кто пишет на COBOL в UNIX-боксе. Вау, я собираюсь услышать об этом.

Поскольку аппаратное обеспечение является центральной частью, большинство программистов, пишущих на языке COBOL, идентифицируют себя по оборудованию, на котором выполняется код, который они пишут. На протяжении многих лет, слушая, как другие программисты рассказывают мне о достоинствах Сперри, Берроуза или Тандема, я часто задавался вопросом, что за война произойдет, если я соберу их и соберу их в комнате, неспособной уйти, пока они договорились об одной аппаратной платформе для всего COBOL. Я не упомянул другие платформы, потому что никогда не работал над ними.

Я встречался и говорил со многими программистами IBM, и они будут называть себя программистами на COBOL. Однако, если кто-то вовлекает их в разговор, они быстро начинают ссылаться на конкретные процедуры и инструменты IBM. Учитывая аппаратно-ориентированную природу COBOL, это очень понятно для всех аппаратных платформ.

Поскольку COBOL обычно привязан к очень дорогому оборудованию, поскольку на этом оборудовании выполняются скомпилированные на нем программы COBOL, поэтому нет особого желания мигрировать с COBOL ради миграции. Однако со стареющим населением программистов на COBOL миграция неизбежна.

Поскольку все большие железные блоки, на которых работает COBOL, также будут работать на Java, Java - естественный путь перехода от COBOL. Код может быть преобразован, особенно сейчас, в экономику, по довольно экономичной цене. Если на этом дорогостоящем оборудовании нет COBOL, только Java, то кто-то из высшего руководства начнет задумываться о том, можно ли перенести код Java на другое, гораздо менее дорогое оборудование.

Программисты IBM, Sperry, Burroughs и Tandem знают об этом, поэтому они, скорее всего, НИКОГДА не предложат эту идею. Это было бы кощунством для некоторых.

Kennah
источник
+1, действительно очень дорого. Кроме того, я хочу отметить, что Java становится Новым Коболом, который я сам видел, и я всего лишь молодой доллар, поэтому интересно видеть, что кто-то со стажем делает такое же наблюдение.
Уэйн Вернер