Может ли быть так, что в MS SQL неявные транзакции запускаются при выполнении операторов DDL и DML. Если вы отключите эту опцию, это поможет, используйте SET IMPLICIT_TRANSACTIONS
РЕДАКТИРОВАТЬ: другая возможность - вы не можете комбинировать CREATE VIEW с другими операторами в том же пакете. CREATE TABLE в порядке. Вы разделяете партии с помощью GO.
EDIT2: вы МОЖЕТЕ использовать несколько DDL в транзакции, если они разделены GO для создания разных пакетов.
APF. Вам, вероятно, повезло, что вы никогда не слышали об этом кошмаре. Это было дорогостоящее дополнение к IMS-системе иерархической базы данных / мониторинга транзакций мэйнфрейма IBM. С чего начать.
Не было поддержки массивов. Если у вас есть массив из десяти элементов, вы хорошо закодировали ITEM1, ITEM2 и т. Д. И написали десять строк кода для обработки каждого элемента.
Ваш код был сохранен в базе данных и интерполирован во время выполнения. Сделайте внутреннюю структуру того, что ваш код был разбит и сохранен в нескольких записях. Было абсурдно легко перезаписать чужой код.
Часть вашего кода была связана с транзакцией (IMS означает услугу), но часть вашего кода была связана с записью базы данных - если вы ошиблись, части вашего кода программа запускалась каждый раз, когда кто-то обращался к записи.
Нет отладчика, «компилятор» только проверял базовый синтаксис большинства ошибок, обнаруженных во время выполнения, с одним из четырех сообщений об ошибках.
Одно из этих сообщений об ошибках было «НЕВЕРНО» DATA TYPE '- вот и все,
Что касается языков, с которыми я сталкивался, я буду голосовать за COBOL и Scheme.
COBOL был окончательным доказательством того, что крупные бизнес-компании никогда не должны писать язык программирования (и это скоро по специальности бизнес - СНГ). У вас не должно быть возможности писать полусвязные романы и компилировать их во что-то. Я знаю, что его использовали 40 лет назад, но кто-то портировал его на COBOL.NET, чтобы громко кричать.
Второе место заняла Scheme, у которой был ровно один тип переменных: связанный список. Пытаться научиться думать в нем - все равно что пытаться научиться думать как белый медведь, если вы марсианин американского происхождения. Это совершенно чуждо всему остальному.
С точки зрения языков, которые я использовал профессионально, VBScript безнадежно. Это как VB только хуже. Однажды я попытался реализовать алгоритм MD5 в VBScript. Первое, что мне нужно было сделать, это реализовать долбанные операции битового сдвига. Вместо того, чтобы изобретать велосипед, я пошел искать воплощение. Тот, который я нашел, я не шучу, следовал следующему алгоритму:
Это был полный беспорядок . И это был лучший алгоритм, который я нашел.
(Предостережение: это алгоритм, насколько я помню. Это было 6 лет назад. :))
Вместо того, чтобы изобретать велосипед, я пошел искать воплощение. Тот, который я нашел, я не шучу, следовал следующему алгоритму:Это был полный беспорядок . И это был лучший алгоритм, который я нашел.
(Предостережение: это алгоритм, насколько я помню. Это было 6 лет назад. :))
Вместо того, чтобы изобретать велосипед, я пошел искать воплощение. Тот, который я нашел, я не шучу, следовал следующему алгоритму:Это был полный беспорядок . И это был лучший алгоритм, который я нашел.
(Предостережение: это алгоритм, насколько я помню. Это было 6 лет назад. :))
0x08 -> «08»Это был полный беспорядок. И это был лучший алгоритм, который я нашел.
(Предостережение: это алгоритм, насколько я помню. Это было 6 лет назад. :))
0x08 -> «08»Это был полный беспорядок. И это был лучший алгоритм, который я нашел.
(Предостережение: это алгоритм, насколько я помню. Это было 6 лет назад. :))
Оберон.
В первый год обучения в университете все должны были программировать на Обероне. Я думаю, что идея заключалась в том, чтобы убедиться, что никто не получит фору. Язык был привязан к Oberon OS / GUI, что было ужасно! Не уверен, что что-то изменилось, но это определенно был мой худший опыт программирования.
Определенно худший язык, который я когда-либо использовал, был Оз . Это неудачная попытка создать многопарадигмальный язык программирования. Как вы понимаете, в конечном итоге он оказывается очень непонятным и имеет чрезвычайно сложный синтаксис. У вас есть разные разделители, чтобы отметить, что вы работаете функционально или императивно. Я всегда нахожу несколько странным определение классов с функциональными частями методов без побочных эффектов.
Lingo, для Shockwave Flash (или что там было). Довольно ужасная, простая вещь с слишком динамичной системой типов. Редактор - отстой, отладчик - отстой.
Наверное, не помогло то, что приложение, которое мне пришлось взять на себя, было написано scriptkiddies, которое использовало тип переменной для управления потоком управления. (Если это строка, мы находимся в режиме A, поэтому это означает X, если это int, мы в режиме B, поэтому это означает Y). $ £ € £ @ £ $ # "¤ #" !!
Мне нравится Python, и я полагаю, что там можно было сделать что-то не менее ужасное, но сообщество и инструменты намного лучше и точнее.
FOCUS, рекламируется как «4GL» (язык четвертого поколения). Некоторые системы могли использовать FOCUS, например SQL, для выполнения запросов к базе данных, результаты которых были заключены в BASIC или какой-либо другой процедурный язык, но система, над которой я работал в Boeing в 80-х, этого не имела. Вроде как очень плохой специалист для ведения бизнеса. Это была единственная работа программиста, которую я ненавидел.
Для моего старшего дизайнера мы запрограммировали камеру Canon для создания карт глубины с использованием CHDK . Большая часть кода была написана на C, но вы должны взаимодействовать с ним с помощью этого нелепого языка под названием uBasic. По сути, это не было реализовано с использованием подходящего парсера, поэтому переменные могут состоять только из одной буквы, это безумно медленно, и если вы сделаете ошибку, камера просто отключится.
PC-FOCUS
Я работал над системой управления складскими запасами, в которой подсистема бэк-офиса была реализована в PC-FOCUS.
Все, что нужно сказать об этом языке, это что в руководстве по программированию есть глава из 100+ страниц под названием «Обходные пути».
Я собирался ворчать и стонать насчет Java, но, очевидно, это не ТАК плохо, и это было бы равносильно троллингу, и, кроме того, я только что вспомнил кое-что похуже:
Магия II.
Его едва ли можно квалифицировать как язык. На самом деле, ее можно было бы более точно описать как систему баз данных до SQL с моделью программирования, управляемой данными. Это было основано на проницательном наблюдении, что почти все, что вы когда-либо делали с таблицами базы данных, включает в себя выполнение каких-либо действий, прежде чем вы начнете повторять данные, затем повторять данные, а затем, возможно, делать что-то после того, как вы закончите.
Магия «программирования» включает в себя заполнение полей в таблицах, описывающих эти три фазы жизни программы. У него также был дизайнер экрана в текстовом режиме, связанный со всем этим беспорядком. Обученный пользователь Magic мог быстро выводить отчеты и экраны ввода данных, что порадовало руководство.
Проблема для меня заключалась в том, что язык имел минимальные возможности абстракции. Вы можете определять подпрограммы, которые вы можете вызывать из других подпрограмм. Вот и все. Никаких структур данных, кроме таблиц базы данных, никаких массивов в памяти (хотя вы могли бы определять новые таблицы!)
Никаких хэш-таблиц, никакого способа организовать переменные (которые язык поддерживал) каким-либо значимым образом. Никаких списков. Ничего. Конечно, никаких классов или чего-то похожего на объектную модель, но, честно говоря, я бы без этого прожил. И я это сделал.
Что еще хуже, в «программе» были фрагменты, которые были спрятаны в полях, которые нужно было увеличивать, чтобы увидеть - определенные выражения и т. Д. Поэтому вы никогда не сможете просто прочитать экран кода и узнать, что он делает.
Эта штука довела программирование, управляемое данными, до печальной вершины. Это навязчивая идея, проявляющаяся в инструментах программирования. Я был рад оставить этот жалкий кусок хлама позади.
Недавно я встретил бывшего коллегу, который работал со мной, пока я использовал Magic. Прошло почти 20 лет с тех пор, как я сделал это, но она была очень рада рассказать мне, как ей было поручено поддерживать один из моих проектов, и что она объявила поражение, когда где-то там обнаружила рекурсивную процедуру. Она никогда не видела, чтобы кто-нибудь реализовал рекурсию в Magic. Ни у кого никогда не было. Это была неизведанная территория. Я не думаю, что кто-то осознал, что этот инструмент способен к рекурсии.
Проект пришлось переписывать в спешке, прежде чем это заставило чей-то мозг взорваться.
Эта штука довела программирование, управляемое данными, до печальной вершины. Это навязчивая идея, проявляющаяся в инструментах программирования. Я был рад оставить этот жалкий кусок хлама позади.
Недавно я встретил бывшего коллегу, который работал со мной, пока я использовал Magic. Прошло почти 20 лет с тех пор, как я сделал это, но она была очень рада рассказать мне, как ей было поручено поддерживать один из моих проектов, и что она объявила поражение, когда где-то там обнаружила рекурсивную процедуру. Она никогда не видела, чтобы кто-нибудь реализовал рекурсию в Magic. Ни у кого никогда не было. Это была неизведанная территория. Я не думаю, что кто-то осознал, что этот инструмент способен к рекурсии.
Проект пришлось переписывать в спешке, прежде чем это заставило чей-то мозг взорваться.
Эта штука довела программирование, управляемое данными, до печальной вершины. Это навязчивая идея, проявляющаяся в инструментах программирования. Я был рад оставить этот жалкий кусок хлама позади.
Недавно я встретил бывшего коллегу, который работал со мной, пока я использовал Magic. Прошло почти 20 лет с тех пор, как я сделал это, но она была очень рада рассказать мне, как ей было поручено поддерживать один из моих проектов, и что она объявила поражение, когда где-то там обнаружила рекурсивную процедуру. Она никогда не видела, чтобы кто-нибудь реализовал рекурсию в Magic. Ни у кого никогда не было. Это была неизведанная территория. Я не думаю, что кто-то осознал, что этот инструмент способен к рекурсии.
Проект пришлось переписывать в спешке, прежде чем это заставило чей-то мозг взорваться.
проявляется в средстве программирования. Я был рад оставить этот жалкий кусок хлама позади.Недавно я встретил бывшего коллегу, который работал со мной, пока я использовал Magic. Прошло почти 20 лет с тех пор, как я сделал это, но она была очень рада рассказать мне, как ей было поручено поддерживать один из моих проектов, и что она объявила поражение, когда где-то там обнаружила рекурсивную процедуру. Она никогда не видела, чтобы кто-нибудь реализовал рекурсию в Magic. Ни у кого никогда не было. Это была неизведанная территория. Я не думаю, что кто-то осознал, что этот инструмент способен к рекурсии.
Проект пришлось переписывать в спешке, прежде чем это заставило чей-то мозг взорваться.
проявляется в средстве программирования. Я был рад оставить этот жалкий кусок хлама позади.Недавно я встретил бывшего коллегу, который работал со мной, пока я использовал Magic. Прошло почти 20 лет с тех пор, как я сделал это, но она была очень рада рассказать мне, как ей было поручено поддерживать один из моих проектов, и что она объявила поражение, когда где-то там обнаружила рекурсивную процедуру. Она никогда не видела, чтобы кто-нибудь реализовал рекурсию в Magic. Ни у кого никогда не было. Это была неизведанная территория. Я не думаю, что кто-то осознал, что этот инструмент способен к рекурсии.
Проект пришлось переписывать в спешке, прежде чем это заставило чей-то мозг взорваться.
Прошло почти 20 лет с тех пор, как я сделал это, но она была очень рада рассказать мне, как ей было поручено поддерживать один из моих проектов, и что она объявила поражение, когда где-то там обнаружила рекурсивную процедуру. Она никогда не видела, чтобы кто-нибудь реализовал рекурсию в Magic. Ни у кого никогда не было. Это была неизведанная территория. Я не думаю, что кто-то осознал, что этот инструмент способен к рекурсии.Проект пришлось переписывать в спешке, прежде чем это заставило чей-то мозг взорваться.
Прошло почти 20 лет с тех пор, как я сделал это, но она была очень рада рассказать мне, как ей было поручено поддерживать один из моих проектов, и что она объявила поражение, когда где-то там обнаружила рекурсивную процедуру. Она никогда не видела, чтобы кто-нибудь реализовал рекурсию в Magic. Ни у кого никогда не было. Это была неизведанная территория. Я не думаю, что кто-то осознал, что этот инструмент способен к рекурсии.Проект пришлось переписывать в спешке, прежде чем это заставило чей-то мозг взорваться.
Я голосую за DB / C DX, основанный на DATABUS. Я уверен, что большинство из вас никогда не слышали об этом, а те, кто слышал ... Мне очень жаль ...
Худший язык программирования? - Brainfuck
Я сам с этим не работал, но я бы назвал это худшим. Это обычно используется как вызов, а не для производства (скорее, мне скучно в эти выходные, давайте посмотрим, смогу ли я переписать в нем крестики-нолики). Ознакомьтесь с программой Hello World на вики.
PowerDynamo
Это был продукт Sybase, который хранил код веб-приложения прямо в базе данных вместе с вашими данными. Не было области видимости переменных, а функция strlen () по сути была генератором случайных чисел.
CodeGear Delphi
Это действительно не тот язык, который мне не нравился, а IDE: CodeGear RAD Studio для Delphi. Это, пожалуй, худшая, самая глючная и безотказная IDE, которую я когда-либо использовал. Я и другие программисты Delphi обычно теряли часов времени разработки каждый день из-за сбоя или зависания среды IDE.
После того, как мы установили CodeRush, приложение стало практически непригодным для использования. Он падал с регулярными интервалами в 5-15 минут, даже без вмешательства пользователя. Хуже того, таинственные ошибки были вызваны базовой отладкой, например, достижением точки останова (обычно отладчик попадал в точку останова и просто зависал на своей дорожке на тривиальной строке, например, при назначении переменной. Ничего подобного. do заставит его двигаться дальше). Если вы оставили программу в покое, он оставался стабильным до получаса, прежде чем генерировал какое-то исключение памяти.
Итак, после того, как мы потратили тысячи долларов на лицензии CodeGear RAD Studio, никто не захотел его использовать. К тому времени, как я ушел из компании, все наши проекты Delphi были написаны на VIM.
Smalltalk.
Мне пришлось выучить его в университете. Ненавидел каждый аспект языка. Возможно, наши профессора просто сделали глупый выбор в отношении реализации языка, но в основном это работало следующим образом:
Не было исходного кода, который вы могли бы просмотреть. Было просто дерево классов, в котором вы могли создавать и редактировать реализации методов. Нет возможности сохранить код, кроме как вырезать и вставить их в блокнот. Вы можете сохранять сеансы, но это бинарные дампы.
Вся среда была написана на Smalltalk, и, черт возьми, это было медленно. Вы могли видеть, как весь экран перерисовывается каждый раз, когда вы нажимаете клавишу. В редакторе (который вам пришлось использовать из-за отсутствия исходного кода загрузки / сохранения) не хватало основных функций редактирования, таких как режим вставки / переопределения.
Язык был чистым, так что невозможно было преждевременно завершить цикл. Все вещи, которые делали программирование простым и эффективным, запрещены в языке.
Все было объектом. Переопределите оператор сравнения логического значения, и вся система потерпит крах.
Webspeed и SpeedScript .. Просто ужасно, без объяснений :)
У SNOBOL были некоторые изящные особенности и возможности обработки строк, более широкие, чем у Perl. Он также имел один тип оператора: <базовая строка> <строка соответствия> = <строка замены>: S (<метка>): F (<метка>)
, где можно было опустить большинство компонентов. Структуры управления создавались путем перехода к той или иной метке (если она есть) в зависимости от того, можно ли найти строку соответствия в базовой строке. Строки могут включать в себя различные функции и подстроки, поэтому разумная строка SNOBOL может включать все синтаксические деревья, упомянутые в конце вашего любимого стандарта языка программирования.
Было тривиально написать в нем синтаксический анализатор (хотя это не обязательно быть хоть сколько-нибудь эффективным), но что-либо вроде арифметики или циклов было проблемой.
Без сомнения, это был SmallTalk. Но только формально: реальный язык был в порядке, но IDE, которую мы использовали для этого класса, была VisualWorks, которая, по отдельности, является худшей IDE из всего, что я когда-либо испытывал. Вот несколько примеров ужасов:
-Вы не можете сохранить изображение (которое представляет собой весь ваш проект, завернутый в один файл), если каждый бит кода не является полностью синтаксически и семантически правильным. -Он часто дает сбой, а интерфейс ужасно оформлен. Кнопки будут вытягиваться из окна и тому подобное. - Однажды VisualWorks завис на мне после того, как я сделал около 2-3 часов новой работы, к сожалению, без сохранения. К счастью (подумал я), кнопка сохранения все еще работала. Так что, вздохнув с облегчением, я сохранил свой проект. Но из-за метода VisualWorks сохранения вашего проекта как изображения, когда я повторно открыл свой файл, он сохранил мой проект в замороженном состоянии. В итоге мне пришлось вернуться к более ранней версии моего кода и потерять пару часов работы.
И единственный худший симптом ужасного дизайна IDE: -Есть только один шаг отмены. И НЕ ТОЛЬКО ЭТО. Слышать это. Если вы удалите строку кода, переместите курсор в другое место, а затем нажмете «отменить», она вставит строку кода туда, где сейчас находится курсор, а не туда, где изначально была строка. Что это за хрень?? Я думаю, что у чертов LOTUS 1-2-3 были лучшие возможности отмены, чем у этого!
PS Я знаю, что не говорю о языке, но поскольку это отражало мой опыт работы с языком, я чувствовал, что все еще могу разумно дать мой ответ в этой ветке. :)
dBase II (это 2, а не 3): К счастью, я не часто им пользовался, прошло уже более двадцати лет, так что я мало что помню, кроме боли! IIRC, его либеральное использование специальных символов в именах переменных (и других местах?) Сделало его почти невозможным для чтения, и ему не хватало управления потоком. Казалось, что 3 получил гораздо больше применения (и уже было, когда я использовал 2, но мой работодатель был слишком дешев для обновления), но я не знаю, было ли это лучше.
«Visual C ++» .... Так много устаревшего кода переплетено .... повсюду.
Заставило меня полюбить Obj-C.
OPS5. Теперь даже мысль об этом заставляет меня плакать.
For me, the answer is Crystal Syntax, the BASIC-like language used by Crystal Reports. Trying to accomplish anything other than mere comparisons is difficult at best and impossible at worst. Granted, they do arrays fairly well:
{some_database_field} IN ["firstValue", "secondValue", "thirdValue"]
But the following doesn't work at all:
{some_database_field} NOT IN ["firstValue", "secondValue", "thirdValue"]
Even though the language does have a NOT operator.
Полусырое объектно-ориентированное расширение для C. Во встроенных системах по-прежнему существует множество проектов только на C. Таким образом, время от времени кто-то думает, что его объектно-ориентированное решение - это все, что требуется для придания этому проекту формы ... оставляя где-то в конечном итоге огромную неразбериху.
Обычно человек начинает со скромных и благородных целей, но он просто ускользает от него каждый раз. Он передает другому программисту, который так хорошо думает. ООП на языке C, как аккуратно, а затем убивает и без того трагический код, который он не понимает. Вскоре он уже не подлежит ремонту. Худший из тех, что я видел: ни один драйвер не мог скомпилировать без включения всех заголовков объектов, которые собираются его использовать, а также файлов заголовков для этого пользователя компонента до самого высокого уровня.
LabVIEW (это вообще считается языком?)
Это было ужасно. Если вы хотите расширить этот термин, HTML тоже отстой, как и XML.
Javascript before the existence of FireBug and coding it using a Notepad.
It was the most horrible code in my life, JS was case sensitive and I had lot of headaches. IE detect errors in a weired way...
Да ладно. На 3 страницах нет упоминания о Forth ? Серьезно?
Конечно, как и APL, он мощный и имеет свое место. Но, как и APL, он претендует на первое место в категории «Язык только для записи». Я до сих пор проклинаю профессора физики, который навязал мне это в конце 80-х, потому что он был убежден, что это захватит мир программного обеспечения.
Мои искренние сожаления пяти людям во Вселенной, которые обрабатывают реальность в обратной полированной нотации. Или я должен сказать что-то вроде «извинения +»?
Любой язык может быть худшим в умелых руках. А неправильная командная работа только усугубляет ситуацию. Я имею в виду, что если вам не нравится стрелять себе в ногу, вы всегда можете попробовать прострелить ногу коллеге. Пока что лучший язык, который я видел, - это C ++. Этим вы действительно можете навредить коллегам.
Не говоря уже о ролевых играх, ребята. В колледже я изучал COBOL, а также RPG IV. Если и есть какой-то язык, который заставляет меня выкопать себе глаз вилкой, то это RPG. Это в значительной степени «основанный на столбцах» код, поскольку вы не просто пишете код слева направо, вы должны быть уверены, что находитесь в правильных столбцах. Причина этого в том, что язык изначально был создан для разработки перфокарт.
Я не могу записывать в файл!
Ну да, манекен, вы забыли заглавную F в столбец 68.
Господи, вы хотите сказать, что никто не использовал PL / SQL ? Порождение ада, которое является Oracle, интерпретируется и живет в контексте Oracle Server. Весь вывод буферизуется, пока программа не будет завершена. Отладить практически невозможно. Га ... Я чувствую, что просто подумаю об этом.
Dataflex 2.3 и VDF4.
VDF 4 - это то, что меня оттолкнуло от Dataflex.
Одной из самых глупых вещей, которые они сделали, было использование сообщения Windows для третьей кнопки мыши для связи между IDE и компилятором. Он работал нормально, если у вас не была трехкнопочная мышь.