Pull to refresh

Comments 55

Я как-то наткнулся на короткую заметку Управление сложностью или почему хорошо программировать — это сложно

Цитирую:

Почему же тогда провалились идеи «менеджер-программист» (COBOL), «бухгалтер-программист» (1C), «аналитик программист» (SQL) и подобные? Ответ хорошо известен. Полезные программы сложны, а для разработки сложных программ требуется уметь прилагать дополнительные усилия, чтобы с этой сложностью бороться, как ещё иногда говорят, управлять сложностью.
SQL и 1С провалились? а мужики-то и не знают…
Эти «мужики» определённо в школе не учились, и читать не умеют.
Все в рамках здравого смысла и до определённого предела, учитывая технические ограничения того времени.

По изначальной задумке отцов-основателей: менеджер использует COBOL для решения своих задач — отсюда такой синтаксис, аналитик использует SQL для получения необходимых ему данных — отсюда такой синтаксис, бухгалтер «автоматизирует» свою работу используя программы в 1С — без комментариев.

И тут как бы внезапно — не осилили! А по этому: COBOL-программист, SQL-программист, 1C-программист, и т.д. И нормальным программистам такое разделение и ограничение не нравится. Про COBOL вообще забыли, SQL ненавидят (особенно синтаксис), над 1С потешаются.

И все на самом деле очень просто: если система требует программирования, то им должны заниматься программисты, а не абы кто, и использовать для этого универсальные инструменты, а не очередной велосипед.
Не знаю насчет ненависти к SQL, но точно знаю — он не провалился… Он жил, жив и будет жить… Весь корпоративный мир никуда не денется от SQL. SQL востребован сейчас и будет востребован дальше. Тоже самое и с 1С. Да. варится в своей каше, да не популярен и IT-шников, но работает уже многие годы в подавляющем большинстве компаний нашей страны и будет работать дальше, фактически, у 1С нет конкуренции.
Провалились идеи «бухгалтер/аналитик/менеджер-программист»? Возможно, но не совсем так… Все вылилось в «программист-бухгалтер/аналитик/менеджер». По сути, реальность такова, что сейчас программист, работающий, например в банке, просто обязан знать банковский/бухгалтерский учет, основы менеджента, etc… вообщем, программист должен знать все о предметной области фирмы, в которой работает. Именно поэтому программист в большинстве известных мне случаев получает больше, например, бухгалтера…
Я пишу о прошлом, вы категорично о будущем. Я пишу только о языке, о синтаксисе, вы, похоже, о технологии вообще.

«Весь корпоративный мир никуда не денется от SQL. SQL востребован сейчас и будет востребован дальше» — в том же стиле можно говорить и о наркотиках, наркоторговле.

SQL — один из самых ярких провалов в создании специализированных языков. В большинстве случаев запросы генерируются, и иметь их в виде строки которую мог бы написать человек, это то самое, что называют костыль. Сейчас везде стараются миновать этот этап.

Есть очень много унаследованного и там будет и sql, и фортран, и всё, всё, всё.
1С: я не вижу ни одной серьёзной причины ограничивать используемые в нем языки одним велосипедом, раз уж ограничились виндой, раз уж прикрутили com, можно было использовать active script .

Здесь я с вами согласен. Сейчас «программист» на самом деле совмещает три «профессии»: «технолог», «собственно программист», и «аналитик». «Технолог» — приходится знать все особенности системы, «собственно программист» — собственно «делать» программу, «аналитик» — приходится понимать бухгалтеров, менеджеров и т.д., потому, что они не хотят понимать программистов. Поэтому минимум тройная зарплата ;-)
Вы просто не в курсе, где-то что-то услышали и теперь пересказываете страшилки.
Ничего не мешает написать код на C# или там VB и прикрутить его к 1С. Пожалуйста, цепляйтесь, ядро это позволяет. Только зачем? 1С это очень мощная среда с аспект-ориентированным языком программирования для решения конкретно своей группы задач. С которой она справляется неидеально, но очень и очень хорошо. Если вы думаете, что какой-нибудь SAP R3 или MS Dynamix чем-то существенно лучше, знайте — вас подло обманули.
Да, когда-то очень давно 1С дейсвительно продвигалась как программа, в которой грамотный бухгалтер сможет подкрутить пару коэффициентов, поставить десяток галочек и настроить учет под свою фирму и свою налоговую. В-общем, так и осталось, но с тех пор добавили еще один слой — конфигурации — в котором программисты и только программисты могут реализовать любой вариант учета, необходимый данной конкретной организации.
Некоторое непонимание между мейнстрим-программистами и 1С-никами связано с тем, что вторые решают конкретные ограниченные задачи и им не нужны новомодные абстракции высокого уровня, такие как IoC и прочий SOLID. Вместо мифической расширяемости в этой сфере нужно думать о многоуровневой отказоустойчивости, идиотоустойчивости и надежности. Именно поэтому намного более продвинутые Java и .Net, которые в теории создавались для решения тех же задач, что и 1С с Динамиксом, на практике используются для чего угодно, но не для создания конкурентов 1С.
C SQL же вообще смешно, никуда он не денется и никакие nosql-системы ему не угрожают. Да, конечно, там где нужно просто хранить пары ключ-значение, NoSQL оправдан, но допустим BerkleyDB используется для этих целей много десятков лет. Всплеск статей на данную тему в последнее время есть просто следствие работы пиарщиков команд, которые создали свой BDB, с ключами и значениями.
В задачах, в которых требуется реализация полноценных теоретико-множественных операций, никакой nosql не справится, и только идиоты будут пытаться реализовать ЭТО самостоятельно поверх nosql-движка.
В-общем, в программировании есть модные и не очень модные области, но ваши слова о провале это просто смех. Просто посмотрите на обороты оракла и 1С.
Я участвовал в создании конфигурации для 8.0. Так что нефиг гнать пургу.
Где я говорю про «новомодные абстракции» (которым по факту уже пару десятков лет)?
Где вы у меня увидели nosql?
Свои фантазии оставьте при себе.

«Слухи о вреде наркотиков сильно преувеличенны, просто посмотрите на обороты наркокартелей.» Обороты оракла и 1С такой же показатель как и обороты микрософта — нифига не значит. Есть очень много унаследованного, есть некомпетентность, есть решения в которых «программистов не спрашивали», часто хотят «здесь», «сейчас», «подешевле», «что у всех», «что налоговая посоветовала». Часто «программиста» рассматривают как придаток к системе, а не как участника процесса… Продолжать можно бесконечно.
Нда, ну если вы сравниваете оракл с наркокартелями…
Простите, но вы несете откровенную пургу, никак не подкрепляя фактами и приводя какие-то странные ассоциации с накрокартелями…
Вы почему-то называете Microsoft и Orcale (самые успешные IT-компании, бизнес которых завязан в том числе и с SQL) некомпетентными.
Обоснуйте несостоятельность и провал SQL! Обоснуйте это для нас, которые с ним работают и вполне довольны, которым он кажется вполне логично построенной и удавшейся технологией.
Вы ошибаетесь по поводу 1С. Для него можно писать на многих языках, пишите и подключайте DLL на C/C++, используйте COM, используйте .NET. Все это вполне возможно в 1C. Конечно для этого придется писать обертки на языке 1С. Но для этот есть куча вполне очевидных и логичных причин.
Где я назвал Microsoft и Orcale некомпетентными? Давайте следовать контексту.
SQL — это не технология, это язык. Где это он устоялся, если все разработчики баз постоянно его расширяют, часто гарантируя только sql-92? А иногда и того хуже?
В конфигурации для 1С можно писать только на одном языке — встроенном. Внешние компоненты — на любом. «Внешние компоненты», модули, классы, и т.д. есть везде, это не показатель.
Где я назвал Microsoft и Orcale некомпетентными?
… Обороты оракла и 1С такой же показатель как и обороты микрософта — нифига не значит. Есть очень много унаследованного, есть некомпетентность...

Где это он устоялся, если все разработчики баз постоянно его расширяют, часто гарантируя только sql-92? А иногда и того хуже?
Ну расширяют, и? это показатель провала? Но тем не менее бизнес Oracle построен на SQL. Они ничего не понимают?

В конфигурации для 1С можно писать только на одном языке — встроенном. Внешние компоненты — на любом. «Внешние компоненты», модули, классы, и т.д. есть везде, это не показатель.
По вашему лучше зоопарк языков программирования в одной платформе?

Я так и не услышал от вас доводов в сторону провала ни SQL ни 1C.
Там энтер потерялся, это разные абзацы.

В технологическом плане Oracle не авторитет. В плане продавливания своих продуктов через «администрации» — «впереди планеты всей». Вы сказали, что язык устоялся, я сказал, что это не так. Каким боком здесь оракл, который использует модификацию языка sql как интерфейс к некоторым из своих продуктов?

Выбор всегда лучше, вас выбирать никто не заставляет, пишите на «встроенном», а Я хочу на «своём». Как программист Я к 1С никогда и близко не подойду, даже если буду с голоду умирать. И даже не по тому, что платформа плоха, как платформа 1С более-менее ничего. Но сложившиеся «стандарты» и представления… Я не Дон Кихот, чтоб с мельницами бороться.

Доводов вполне достаточно. Он не соответствует решаемым задачам. При декомпозиции задачи до уровня sql, часто получается слишком трудный для реализации и поддержки монстр. Не сложный, а именно трудный.
Все эти «можно прикрутить» тут не к месту.

Речь про явно избыточный якобы «человекопонятный» синтаксис COBOL и, например, ABAP. Отчего он именно такой. Предполагалось, что любой бухгалтер или экономист сможет открыть исходник программы на этих языках, прочитать все эти «DIVIDE WS-B BY WS-A GIVING WS-RESULT» как будто по-английски и модифицировать программу под свои нужны.

На деле же программы — программистам, пользу — пользователям. И куча накладных расходов на ужасный синтаксис.

«Провал» тут относится именно к этой затее.
А может быть это потому, что у нас пользователи, те же бухгалтера, аналитики и менеджеры зачастую не то, что «программировать», а кнопку Пуск самостоятельно найти не могут благодаря изощренной форме образования и влиянию «корпораций зла», играющих на человеческих слабостях и лени? (да да, я верю в некоторые теории заговора! ;-) )
И я сильно сомневаюсь, что SQL или 1C создавался для того, чтобы сами бухгалтера на них писали, COBOL же так вообще создавался как легко читаемый для «управленца» язык, чтобы программист (а никто в 1959 году и не мог помышлять о том, чтобы финансист сам что-то там «кодил» на мэйнфрейме!) понимали друг друга легко и помоему со своей целью язык справлялся и во-многом справляется.

А по поводу универсальных инструментов… спорно, очень спорно) Почему же до сих пор не создали суперуниверсальный? )
Насчёт 1С — в 6.0 именно так и было, бухгалтеры писали сами. Немногие конечно, но было такое. Вот только возможностей с гулькин нос, и язык кривой до ужаса. А увеличение возможностей языка бухгалтеры осилить не смогли, и появились те самые «программисты-бухгалтеры».
с историей 1С и SQL к сожалению слабо знаком, поэтому и выразил сомнения)
В своё время я помню в гвайде по юниксу (ред бук) Неймет сильно высмеивал программистов на коболе. Я думал, для меня это будет абстрактной конструкцией, с которой я никогда не столкнусь.

А потом я столкнулся. Ближайшим аналогом «программиста на коболе» является «программист на 1С».

И отношение к коболу ровно такое же. Это штука для кодирования бизнес-логики, от которой сводит зубы у любого уважающего себя программиста.
Но ведь никто и не предлагает кодировать на ней нечто отличающееся от бизнес-логики, да он для этого и не предназначен в принципе, нет, конечно, на нем можно и текстовый редактор, а может и плеер написать, а может и что-то заслуживающее восторженного «аххх!»… но зачем же? Язык доказал свою пригодность, мало того, множество программистов его искренне любят и продолжают работать на нем, видимо они себя не уважают, но это их выбор и выбор тех, кто когда то его у себя применил… и «оно» продолжает работать и не кашлять…
«P.S. И наверняка вас удивляют цифры, которые мы получили на выводе и количество нулей в них? Это мы рассмотрим в следующей статье.» — Интрига на протяжении всего цикла статей?) Отличный способ заставить с нетерпением ждать следующего выпуска :) Еще раз спасибо.
Ну куда ж без интриги)
Мдя… всегда любил лаконичный С подобный синтаксис, здесь же просто мясо какое-то. В каком-то плане даже 1С и тот покрасивше выглядит.
Одного не понимаю, язык бизнес-ориентированный, то есть ориентирован не на программистов-математиков, а на манагеров, которые чуть-чуть смыслят в коде, но какого черта он такой непонятный? Смотрю на код как идиот! Количество избыточной информации на строчку кода просто зашкаливает.
не знаю, кому как, но мне после текста этой программы-калькулятора непонятным осталось только объявление переменных. Кобола, естественно, не знаю.
Проблему с объявлением переменных мы уже решаем) Ждите сегодня)
А после бейсика меня воротит от подобной нумерации строк. Понимаю еще оно было оправдано для перфокарт, но для человека это не читабельно. Не удивлюсь, если там и GOTO такой же, как в бейсике.
Дейкстра все такие ЯП не зря ругал.
Хотя COBOL конечно важную роль сыграл, он показал, каким НЕ ДОЛЖЕН БЫТЬ язык программирования, хорошо, что авторы насобирали на нем кучу граблей и развитие двинулось дальше.
ну, COBOL, как собравший больше всех реально написанного (а не общедоступного) кода, показал, каким не должен быть ЯП.
Windows — какой не должна быть ОС.

какие ещё примеры распространённого того, чего не должно было быть? PHP вон тоже не должен быть :-)
Не нужны не Жигули, а те люди, которые поддерживают условия при которых новые Жигули разваливаются раньше советских… и собственно не развиваются толком (утрированно конечно и пафосно, но мне кажется это более точно выражает)
Вот тоже можно и про Кобол сказать, он вообще не развивается, можно сказать он уже мумифицировался. Это всё-таки не лисп, который до сих пор жив.
последний стандарт COBOL 2002 года) В разработке следующий, компиляторы (тем более «ентерпрайз») развиваются и пишутся, код вертится и жужжит, и где здесь мумификация? Да, я согласен, к сожалению COBOL-разработчики не кричат на каждом углу, хотя стоило бы возможно, но это не признак мифической смерти языка, который обрабатывает миллиарды транзакций в день )
О да… это же как раз они решали проблему 2K.
да, именно, и почему то когда все вспоминают про нее, никто не помнит что когда эти программы писались экономили на всем, включая первые две цифры года, а теперь умножьте 2 на несколько млнов или млрдов записей… были ли эти гигабайты носителей тогда? Так что проблема 2000 это проблема не языка и программистов, а больше поздно зачесавшихся руководителей, которые неожиданно вспомнили (да и то сами ли)
Это тот самый «классический», как я писал в первой части, вид кода, современный кобол и к отступам не так требователен и большие буквы ему не обязательно нужны, и нумерация, да даже некоторые разделы можно выкинуть, НО… лично я считаю, что даже для хобби лучше научиться «как надо», чтобы понимать что написано в старом, чтобы «прочувствовать» всю «глубину» и, наконец, мне это просто нравится, в какой то мере это заставляет концентрироваться на коде и приучает к аккуратности.
именно. как и с goto — лучше понять пользу, чем пытаться себя от вреда обезопасить :-)
Этот ваш кобол омерзительно многословен. До рвоты. Желаю его авторам (если еще живы) кодить на Malbolge вручную.
прикрутить сниппеты и нормально будет, только успевай tab нажимать )
А к мозгу тоже сниппеты прикрутишь, когда это потом читать и модифицировать понадобиться?
Подобные ЯП называют ещё иногда write-only
Многословность в любом случае можно так или иначе решить редактором. Когда в бизнес-логике на С стоит не тот символ не в том месте — мозг alarm не включает. Можно и поподробнее, лишь бы оно на самом деле делало то, что написано.
Я смотрю на многих таких писал? ) А простите, что-нибудь еще про Дейкстру кроме той цитаты знаем? )
Во write only можно любой ЯП превратить, но есть такие, где по другому нельзя, например, brainfuck. Cobol же, судя по примерам, очень быстро превращается в плохочитаемый студень. Современным ЯП в этом плане до него далеко. Можно сказать, что наряду с бейсиком и отчасти Фортраном, Кобол был одними из наиболее больших грабель в развитии программирования.
И вообще
«Проекты, предлагающие программирование на естественном языке, гибельны по своей сути.»(с) Дейкстра

Про алгоритм его имени я в курсе ;)

Лично для меня плохочитаемый студень это С++ и Java, которые я в прямом смысле плохо переношу даже просто глядя на них (к С как ни странно отношусь намного лучше).

Кобол, бейсик и фортран — одни из наибольших грабель? Оставлю без прямых комментариев… В конце концов мое мнение, что язык нужно судить не по мифической и субъективной красоте слога, а по тому, что он в этот мир принес, в качестве пользы… Теоретические же рассуждения о красоте и читаемости… в конце концов… что вы вообще делаете в таком случае в этом топике? пришли потроллить? )

А уж сравнивать с эзотерикой, это совсем мне кажется кощунство.
>Кобол, бейсик и фортран — одни из наибольших грабель?

Вот именно, что грабель.

>В конце концов мое мнение, что язык нужно судить не по мифической и субъективной красоте слога, а по тому, что он в этот мир принес, в качестве пользы…

Это уже история. Да и в конце концов то, что они выявили собой огромные проблемы тоже польза и огромная. Но тем не менее, эти языки были ну уж очень далеки от совершенства.
Да вы просто слишком много требований выдвигаете к языку образца 59-го года, в конце концов C почти на 15 лет моложе, было бы удивительно, если бы он был хуже Кобола :)
А раз блг называется «Старое железо» будут ли примеры работы с коболом на старом железе?
а что именно вы ждете? Историю из жизни? Или некий конкретный код?
да что угодно. Я просто очень люблю ретрокомпьютинг и было бы интересно всякое
Кобол обычно критикуется за многословность и громоздкость, поскольку одной из целей создателей языка было максимально приблизить конструкции к английскому языку. (До сих пор Кобол считается языком программирования, на котором было написано больше всего строк кода).
ого, не знал…
мало того, до сих пор ооочень большая часть всей «денежной» информации в мире проходит через ПО на Коболе, оценивают от 60 и выше %.
Хм, а ведь OpenCOBOL транслирует в C. Значит, на ARM'е заработает. Хы ;-)
Насколько я помню есть и сборка под АРМ, во всяком случае, что-то такое я слышал и регулярно в IRC пролетают слова об идеях/реализациях на различных мини-«киосках». Не углублялся в эту тему правда.
это конечно никто не прочитает, но
000540 01 WS-RESULT PIC9(6).
надо записать как:
000540 01 WS-RESULT PIC9 (6).

Нет же, пробел между PIC и 9(6), гуглится везде, например, http://www.3480-3590-data-conversion.com/article-reading-cobol-layouts-1.html


ЗЫ но за то, что в принципе обратили внимание спасибо, эта статья переживает уже 5 если не больше "итерацию" хабра и видно опять где то что-то поехало )

Ниже в тексте пробел есть, но я копипастил сверху и не скомпилилось, подумал, что ещё кто-то наткнётся и не сможет с первой попытки в очередной (как будто каждые 10 лет случающийся) ренессанс Кобола:)

Просто ваш вариант "надо записать как" тоже неправильный был)


ЗЫ кстати кнопку редактировать уже не могу найти ( хабр уже не торт)

Sign up to leave a comment.

Articles