Тут можно посмотреть с разных сторон.
Например, есть язык
Malbodge, который специально спроектирован чтобы быть неимоверно сложным, так что для написания Hello World пришлось писать программу на Lisp, которая за два года его всё таки сгенерировала.
Ещё можно взять
PL/I, и сам по себе он не плох, но его проектировал огро-о-омный комитет в течение слишком большого времени (60-е года), и в него решили запихнуть сразу всё, с синтаксисом похожим на английский для "неспециалистов" и перегруженным буквально всем. В результате, до сих пор не существует компилятора поддерживающего и двух третей фич стандарта, плюс их разработка сопровождается огромным количеством сложностей с парсингом, а изучение - опять таки требует слишком большого времени.
Ещё можно обозвать "самым худшим" язык приведший к ошибам с человеческими жертвами. Это обычно C и плохое тестирование: можно вспомнить лучевой диагностический аппарат Therac-25, где одна и та же переменная использовалась для определения угла поворота и ввода чисел, в результате несколько (десятков?) человек погибли после обследования устройством от облучения. Или авиационное ПО, где самолёт иногда думает что верх это низ, и делает крутое пике в землю (а переход на ручное управление не куплен авиакомпанией и заблокирован).
Тут разумеется проблема не в языке, а в том что C очень широко используется, особенно в хардваре, а хардваря чаще контактирует непосредственно с живыми людьми.
Ну и бытовое определение "плохого языка" - тот на который жалуются. Он должен быть достаточно популярным, и иметь достаточно новичков которые жалуются (специалисты уже привыкли, и им пофигу на плохие места). Тут вполне можно взять JavaScript.