Статьи по меткам ‘c’

Об опасности исключений

Ноябрь 12th, 2009

Об опасностях, таящихся в мороженом корме коде, генерирующем исключения.
Исключения в C++ достаточно опасны, именно поэтому я стараюсь их не использовать.
Давайте разберёмся вот с этим кодом:
» Читать дальше: Об опасности исключений

Функциональное программирование там, где оно не нужно.

Сентябрь 28th, 2009

В современном программистском мире появилась тенденция к изучению функциональных языков программирования. И на них сейчас пытаются выразить всё, что только под руку попадётся. Я называю это никак иначе как мозговым онанизмом.

Сразу оговорюсь: я не знаю парадигмы функционального программирования. И вряд ли её буду изучать до тех пор, пока мне это не понадобится. Но то, что, извините, вытворяют функциональщики, порой меня шокирует: решать элементарные задачи через, простите меня, жопу — это выше моих сил и нервов. Зато это повышает ЧСВ аффтаров до уровня over 9000, что очень настораживает и порой порождает сомнения в их адекватности.
Вот характерный разговор с товарищем ivansorokin (осторожно, русский мат).
» Читать дальше: Функциональное программирование там, где оно не нужно.

Кодирование Хаффмана.

Апрель 16th, 2009

Забавно, но стал в последнее время замечать, что на мой сайт регулярно заходят в поисках алгоритмов сжатия по Хаффману. Да, будучи студентом второго курса, я изучал этот метод кодирования и даже написал демонстрационные программы для сжатия/распаковки файлов (от реальных их отличают некоторые ограничения в использовании). И даже написал три статьи (по теории, кодированию и декодированию) в набиравшем в своё время обороты журнале eXcode eZine, который, к сожалению, скончался.

Тем не менее, статьи у меня остались, и две я уже выложил у себя на вики в разделе «Статьи». Третью всё пока не соберусь перевести из html в wiki-формат.

Тем не менее, мой сервер регулярно штурмуют вопросами вроде «Пример реализации алгоритма Хаффмана на языке C++». Что ж, мне приятно, что труд мой не пропал для кого-то даром. Тем не менее, также берёт обида за то, что такие вещи можно и самостоятельно реализовать, благо алгоритм кодирования/декодирования очень прост.

C мёртв? $#%&!!!

Май 30th, 2007

Вот, почитал статью:

http://www.xakep.ru/post/38388/default.asp

Такое ощущение, что автор только всю жизнь и программировал на паскале.
Он пытается сравнить системные языки программирования с чисто прикладными.
Возникновение монструозно сложного языка C++, сочиненного путем тупого добавления к C без исправления его многочисленных дефектов модных конструкций объектно-ориентированного программирования
Ну уж извольте. Если бы не было потребности, то язык не возник бы. Язык не сложный, просто нужно иметь пару извилин и помнить, что можно делать, а что нельзя.
Отсюда понятно, почему серьезные специалисты употребляют такие сильные выражения как «развращение малолетних», «интеллектуальная зараза» и т.п., говоря о языках C/C++.
Нет, не понятно. Это понятно автору статьи, который не в состоянии часок-другой посидеть с языком и разобраться в его тонкостях. Я понимаю «развращение малолетних» как тот факт, что С++ новичкам освоить сложно. Хотя бы потому, что в нём много тонкостей.
Подчеркнем, что BlackBox, хотя и аналогичен виртуальным машинам Java и .NET, но работает с эффективным компилируемым кодом. Благодаря этому программы, написанные на Компонентном Паскале в Блэкбоксе, качественно более эффективны, чем программы на Java и С#.
Бред. Откровенный бред. И меня больше всего добило это:
При создании C была проигнорирована вся накопленная к тому времени мудрость создания высоконадежных языков программирования. В результате на C легко написать совершенно нечитаемые конструкции.
А зачем эти конструкции писать? Чтобы выпендриться перед кем-то? А про искусство оформления кода мы вообще забыли, да? Про то, что надо писать программы понятно, чтобы любой другой человек с минимумом усилий их понимал.

Итог: намешали в кучу Pascal, C, C++, C#, Java, Oberon, Blackbox. При этом не было сказано, для какой конкретной задачи используется тот или иной язык. C++ не подойдёт для написания всяких веб-систем, работающих через браузеры — имхо очень сложно. В то время, как Java или тот же C# не подойдут для написания операционной системы. Из-за их прикладного характера.