суббота, 26 сентября 2009 г.

[comp.prog.bugs] SQLite 3.6.18 и VC++ 7.1: слишком много строк

Сейчас выкачал amalgamation-версию SQLite 3.6.18 и попытался скомпилировать ее Visual C++ 7.1. Получил замечательный результат:

sqlite3\sqlite3.c(65536) : warning C4049: compiler limit : terminating line number emission
        Compiler limit for line number is 65535

Всего в sqlite3.c около ста девяти тысяч строк. Слишком много :)

Ситуация элементарно разрешилась посредством утилиты split и превращения sqlite3.c всего лишь в набор #include-ов. Но интересно, а новые версии Visual C++ переваривают такое количество строк? Или у них те же проблемы ;)

[comp.prog.flame] Споры о языках программирования – не могу смолчать

За прошедшую неделю ознакомился с несколькими (почти эпическими) говносрачамисвященными войнами вокруг языков программирования. Если кому-то интересно, то вот ссылки:
Google разрабатывает язык Noop для замены Java
DragonFly BSD 2.4
Хамелеоны быстрые и очень быстрые
Noop - новый язык для JVM
шаблоны С++ и дженерики С#

Ругают, как водится, C/C++ (в основном C++). Доходит до такого:

На С++ без ошибок хрен напишешь.

Но и Java так же перепадает:

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

Но апофеозом всего этого действа оказалась ссылка на запись в ЖЖ Сергея Зефирова (aka thesz) от 2007-го года:

Языки программирования можно условно разделить на "делаем нужное" и "делаем интересное."
Нужное, обычно, решает какую-то частную проблему, закрывая пластырем ее большую часть и обкладывая заплатками окрестность.
Интересное, обычно, вскрывает целый пласт проблем и дает решение к ним всем, обычно же, без заплаток.
Эрланг, C - это "нужные" языки.
Хаскель, Схема, Камл, Пролог - "интересные."
Нужные языки, безусловно, нужны, но неинтересны. Решив задачу на нужном языке, не проходишь мимо чего-либо интересного.
Интересные языки, безусловно, интересны, но про них существует неправильное мнение, что они не нужны. Типичный вопрос: "Где (как) мне использовать Хаскель?"
А дальше рассуждать мне лень. ;)

Мое отношение ко всему этому: “Я х*ею, дорогая редакция!”

Во-первых, мне интересно, откуда в программистах (не знаю во всех ли или только у гиперактивной их части) такая страсть в обсуждении языков программирования. Даже не столько обсуждения, сколько охаивания. В общем-то, я и сам был этим грешен, хотя и сейчас не могу понять почему. Может быть, из-за того, что язык программирования – это привычный и знакомый всем инструмент? Поэтому каждый мнит себя экспертом и желает отстоять свою точку зрения. А может это вообще свойство человека – хвалить свое, ругать чужое? Вроде бы между владельцами Nikon-ов и Canon-ов (равно как и Mersedes vs BMW) священные войны так же никогда не стихают…

Во-вторых, не понятно, почему столько дерьма выливается на на C++ (а теперь уже и на Java)? Ну да, далеко не образец совершенного дизайна. Но ведь он не один-единственный язык на свете. Были, есть и будут более грамотно спроектированные и красивые языки. Которые почему-то ни фига не используются. Может быть большинство критиков C++ (Java) забывают, что мир вообще не совершенен? И уродливый C++ оказывается к этому миру приспособлен лучше, чем десятки его более “правильных” конкурентов. Не зря все-таки Страуструп сказал, что есть всего два типа языков – те, которые ругают и те, которыми не пользуются. Видимо, ругают именно то, что в жизни оказывается приспособленным к насущным задачам и имеющимся программистам (не нужно забывать, что подавляющее большинство программистов далеко не корифеи в своей области).

В-третьих, не понятно, почему на языках программирования вообще такой акцент делается? Да, одни языки для конкретных задач подходят лучше, чем другие. И постепенное развитие техники все больше и больше позволяет уйти от низкоуровневой оптимизации в сторону высокоуровневых и безопасных языков. Но ведь этот процесс не нов. Еще двадцать лет назад было понятно, что тот же C++ в классе бухгалтерских программ просто ничто по сравнению с Clipper и FoxBase. Так что сейчас-то чего трындеть зазря – выбираете себе язык по вкусу и по задаче – и вперед, на мины! А уж если от C++ (Java, COBOL, …) нет возможности отказаться из-за большой кодовой базы, так опять же, в чем проблема? Если новые языки такие крутые, так чего бы весь этот старый хлам не выбросить? Ан нет, так просто не выбросишь. Потому, что круты не настолько, чтобы раз-раз и переделать все. А раз не переделаешь, зачем катить бочки на то, что было сделано давно и что сейчас дает вам средства на жизнь?

В-четвертых, какое-то странное деление языков на “интересные” и “нужные”. Язык – это инструмент, как молоток. Уместно ли говорить про молотки, что бывают “интересные” и “нужные”?

Так и представляю себе – нужно повесить шкафчик – берем “нужный” молоток. А если блоху подковать, то требуется “интересный”. Наверное, действительно, подковывать блох интереснее.

И, опять же, причем здесь языки? В принципе, можно понять, что тот же thesz оказался в ситуации, где он в одиночку лабает для себя модели процессоров, где у него собственные планы и ограничения. Такой маленький уютный мирок, полностью соответствующий его потребностям. Но есть прорва задач, где т.н. “интересные” языки ни ухом, ни рылом. Поставят вам задачу – сделать систему приема электронных платежей с нагрузкой в 5000 транзакций в секунду и что? Интересные языки здесь будут использованы или нужные C++ с Java?

Наверное сторонникам “интересных” языков такие задачи интересными не кажутся. Ну ёптыть, это же не математические модели на Haskell-е/OCaml-е обсчитывать. Только вот понимают ли они, что в такой задаче язык – это так, один из факторов, далеко не самый важный.

Отдельно я не понимаю утверждения, что нужное решает какую-то частную проблему, обкладывая пластырем общую часть. Например, написанные на C/C++ Web-браузеры (IE, Safari, FireFox, Opera, Chrome) – это все решения частных проблем? А что тогда общая часть?

В-пятых, я не понимаю, почему сейчас так модно стало ругать ООП. Это типа прозрение наступило или просто подрасло новое поколение, для которых ООП – это такая же норма, как структурное программирование в мое время? Или же это вера в серебрянность пули под названием “Функционально программирование”? В прочем, это уже другая история.

Прошу прощение за объем и эмоциональность текста. Наболело.

Таки хотелось бы посмотреть на какой-нибудь большой, полезный и реально эксплуатирующийся проект, который был написан без ошибок… А то сдается мне, что фразу “На C++ без ошибок хрен напишешь” можно адресовать любому языку программирования. А то ведь даже разработчики компилятора Haskell-я ошибки допускают. Куда уж все нам, простым смертным (кстати, не приведи Господь сопровождать тот код, на котором была найдена эта ошибка – пусть это достанется слишком умным товарищам, вроде thesz).

PS. А Java, все-таки must die! ;)

[life.politic] Михаил Горбачёв в жюри “Минуты славы”

Вчера у нас по каналу ОНТ показали очередной выпуск передачи “Минута славы”. В жюри присутствовал бывший президент СССР Михаил Горбачёв.

На мой взгляд, это просто 3.14здец. В руках этого человека была судьба всего мира (все-таки ему досталась супердержава с охренительным ядерным боекомплектом). А сейчас он судит новых скоморохов… Судьба Союза была предрешена в марте 1985-го…

Я бы еще выделил тот момент, что Горбачёв засветился в юмористической передаче. На мой взгляд, в распаде Союза т.н. юмористы (типа Задорнова и Хазанова) сыграли не последнюю роль. По крайней мере я могу рассказать о том, как их “творчество” повлияло на меня.

В начале 80-х у меня, подростка, начало формироваться впечатление, что сделанное в Союзе быть хорошим не может по определению. Я сталкивался с этим на бытовом уровне – считалось, что наши аудиокассеты гораздо хуже импортных; наши магнитофоны хуже ихних; наши телевизоры постоянно нужно было чинить; владельцам наших машин приходилось быть, по совместительству, автомеханиками. Да даже наши ядреные электростанции сами по себе взрываются, да еще у тебя под боком! А потом на сцену выходит тов.Задорнов и наша маразматичность начинает культивироваться и возводиться в абсолют. Ну как же, как мы можем жить нормально, если у нас в гостиницах выключатель света в шкафу находится, тогда как в ФРГ по сорок сортов колбасы в магазине. В результате штамп “отечественное = плохое” отложился в моей голове очень и очень надолго. И теперь я еще не полностью от него избавился.

Другой эффект произвели массовые пародии на бывших лидеров СССР (в первую очередь Брежнева и Сталина). Кто только этими пародиями не занимался. Но я почему-то помню, в основном, Хазанова. Кажется у моего знакомого была пластинка (или кассета) с несколькими его монологами. Что в итоге? В итоге возникла непреодолимая уверенность в том, что лидерам стран нельзя верить вообще. Никаким. С тех пор я никому и не верю. Ни Горбачеву, ни Ельцину, ни Кебичу, ни Шушкевичу, ни Лукашенко, ни Путину с Медведевым. Они сами по себе, обычные люди сами по себе. Забавно, но главным толчком к этому мнению стали именно пародии на Брежнева.

Что в итоге деятельности всех тогдашних юмористов-пародистов? Вспоминаются такие чувства времен 1989-1991 – я живу в говеной стране, народ которой ни хера сделать не может, которой управляют какие-то клоуны, в которой местами идут локальные гражданские войны и которая трещит по всем швам. Разительное отличие от собственных же впечатлений годов эдак 1980-1985: мы живем в самой большой и сильной стране, мы выиграли Войну, мы запустили человека в космос, мы перекрыли Енисей… Но когда мне было 10 лет, мне хотя бы было чем гордиться – я жил в великой стране. И я помню эту гордость. Чем могут гордиться те, чье детство попало на распад Союза?

Все-таки судейство в “Минуте славы” стало закономерным итогом рекламы пиццы. Клоуны, мать вашу…

пятница, 25 сентября 2009 г.

[life] Мне понравилось: Ювенильное человечество

Ювенильное человечество – свежая статья в Блоге Разнузданного Гуманизма.

Сдается мне, что ответственность человека за порученную ему работу – из той же оперы. Ситуации “ну ты исправил это? – да, исправил. – а проверял? – нет” раньше были допустимы разве что для студентов и молодых специалистов. Теперь, мне кажется, возрастная планка сдвигается в большую сторону – сейчас такая же фигня может случиться и с человеком, который и 5 лет отработал, и даже 10.

[life.wine] Дегустация самогона из Дудуток

Коллектив у нас, в основном, молодой и инициативный. Вот недавно самые активные товарищи организовались и съездили на экскурсию в музей Дудутки. Я же, из-за своего врожденного раздолбайства, был вынужден провести это время на работе. Но! Зато я попросил коллегу привезти из поездки тамошего самогона. Да, в этом музее народных промыслов гонят самогон, по старинным шляхетским рецептам. И, как показала состоявшаяся вчера дегустация, очень и очень неплохой.

Так уж получилось, что на работе у нас сложилась небольшая неформальная группа под условным названием “Клуб любителей винишка”. Время от времени мы собираемся и тихо, спокойно и очень культурно дегустируем разные спиртные напитки. Не ради пьянства окоянного, а токмо вкус и запах не забыть. Вчерашнее заседание, посвященное дегустации дудутковского самогона, оказалось особенно удачным. Во-первых, потому что качество продукта оказалось чрезвычайно высоким. Во-вторых, все действо сопровождалось рассказом об экскурсии по Дудуткам с демонстрацией слайдов. Вот, например, самогонный аппарат (основная его часть):

© Роман Орышко

Интересные вещи связаны с эти самогоном. Оказывается, его качество можно проверить следующим образом – нужно капнуть его себе на ладонь и сильно растереть эту каплю ладонями. В результате ладони должны пахнуть хлебом и только хлебом. Так и есть, кстати.

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

Но особо яркие впечатления оставила “традиционная белорусская закуска”. На черный хлеб намазывается мёд(!), а сверху кладутся кружочки соленого (маринованного) огурчика. Звучит дико? Зато как закуска – просто потрясающе. Я не ожидал. Правда не знаю, будет ли она производить такой же эффект для других крепких спиртных напитков (с водкой, например). Но с этим самогоном она шла только в путь! :)

В общем, чего хочу сказать: если представиться возможность, нужно будет съездить в Дудутки. Со своей тарой (поскольку производить самогон им разрешено, а вот разливать в бутылки – нет, поэтому неподготовленным товарищам приходиться закупать на месте там же изготовленные глиняные кувшинчики).

четверг, 24 сентября 2009 г.

[life.cruelty] Бывают же козлы

Когда смотришь на такие снимки, то кажется, что человеческой тупости и жестокости нет предела. Можно ли найти какое-нибудь логическое объяснение вот этому?

Эта кошка, замотанная в скотч, была найдена в Пенсильвании. Общество по защите животных объявила награду в $1000 за информацию о тех козлах, который это сотворили. Имхо, $1000 – это мало.

С самой кошкой все нормально.

среда, 23 сентября 2009 г.

[comp.utils] CPUMon – удобная, оказывается, штука

Давно искал какой-нибудь монитор загрузки процессора под Windows. В основном, пользовался минимизированным Task Manager-ом. А на днях случайно наткнулся на утилиту CPUMon. Маленькая, удобная, бесплатная – лепота!

А нужен мне монитор процессора был не столько для профилирования собственных программ, сколько для отлова повисшего Jabber-клиента Psi. До версии 0.13.0 эта зараза временами подвисала и начинала жрать процессорное время как не в себя (причем почему-то только в офисе, в одной локалке с jabber-сервером). Когда я работал на одноядерной машине, моменты зависания были видны очень хорошо – все начинало жутко тормозить. Но вот когда пересел на двухядерные, то мог часами не замечать проблемы – одно ядро загружено под плашку, но все неплохо шевелится на втором. А то, что сообщения по Jabber-у не ходят, так это даже хорошо, никто не отвлекает :) Зато при наличии монитора загрузки процессора проблемы Psi (и не только его) обнаруживаются быстро :)

Кстати, подумалось. Вот сейчас пока еще эра однопоточных десктопных программулек. Поэтому, если какая-то из них из-за глюка входит в бесконечный цикл, то загружается всего одно ядро. Но ведь грядет следующая эпоха – тотальная многопоточность и максимальное использование всех доступных ядер! ;) Как бы тогда повисший Psi не сожрал все имеющиеся в наличии ресурсы…

вторник, 22 сентября 2009 г.

[life.humour] Современное воплощение старой притчи о главе семьи

Сначала притча:

Когда-то давным-давно один человек решил узнать, кто же глава семьи – муж или жена. Пришел он за советом к мудрецу. А мудрец сказал: “Возьми 100 куриц и 100 лошадей. Ходи по свету, стучись в дома и предлагай хозяевам бесплатно на выбор курицу или лошадь. Если первыми у тебя разберут куриц, значит глава семьи – жена. Если лошадей – значит глава муж”. Так и сделал это человек. Ходил, ходил он по свету. Раздал 99 куриц и 99 лошадей. Думает: “Ну, сейчас-то я точно узнаю, кто в семье главный” и стучится в очередной дом. Дверь открывает мужчина, выслушивает предложение о бесплатных курице или лошади, задумывается… А потом говорит: “А можно лошадь, но только белую?”

Вот интересно, имеют ли джипы-внедорожники белого цвета отношение к этой притче? ;)

понедельник, 21 сентября 2009 г.

[comp.prog] COBOL – “состояние бессмертности” в цифрах

В связи с тем, что по некоторым источникам, COBOL-у этой осенью исполняется 50 лет, было бы интересно ознакомиться с впечатляющими цифрами. Согласно статистике от Datamonitor за 2008 год:

  • более 200 миллиардов строк COBOL-овского кода используются в данный момент;
  • 75% бизнес-данных и 90% финансовых транзакций обрабатываются программами на COBOL-е;
  • во всем мире приблизительно 1.5-2 миллиона человек программируют на COBOL-е;
  • каждый год в работающие COBOL-приложения добавляется порядка 5 миллиардов строк кода;
  • по некоторым сведениям, вложения в COBOL разработки в прошлом составили порядка 2 триллионов долларов.

Внушаить!

Кто там у нас еще достиг состояния бессмертности? Fortran, C, C++, Java, Visual Basic, Perl, Python – наверняка. Может еще Ada, PHP, Lisp/Scheme. Кто еще?

Источник: Undead COBOL celebrates (another) 50th birthday (via www.linux.org.ru).

воскресенье, 20 сентября 2009 г.

[comp.prog.flame] C++ вызвал стагнацию мысли…

Феноменальная цитата из очередного флейма на linux.org.ru. Даже не буду комментировать, чтобы не испортить впечатление.

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

[life.politic] Вот так отправишь SMS-ку – и уже враг народа

Маразм крепчал:

Несколько дней назад стало известно, что Министерство национальной безопасности Азербайджана вызвало к себе несколько жителей этой страны, на конкурсе голосовавших за исполнительниц Ингу и Ануш, представлявших Армению. По словам одного из приглашенных на беседу, в министерстве заявили, что голосование на "Евровидение" - это вопрос национальной безопасности и попросили объяснить в письменном виде, почему он голосовал за Армению.

Как ранее сообщало "Радио Свобода", информация о личностях голосовавших за Армению азербайджанцев могла быть получена от оператора сотовой связи Azercell - баллы, полученные тем или иным участником, начислялись по результатам SMS-голосования.

Источник: Правила "Евровидения" изменили из-за скандала в Азербайджане.

PS. Даже не знаешь, что страшнее – когда у нас отпечатки пальцев у всего мужского населения собирают, или когда в Азербайджане вот так вот SMS-ки своих граждан анализируют…

[comp.wow] Симметричный ответ на Project Natal от Sony

Чуть меньше месяца назад я упоминал Project Natal от Microsoft. Теперь подоспел ролик с описанием потенциального конкурента от Sony (так же найденный в тупичке Гоблина):

Респект разработчикам этого девайса. Надеюсь, они получают удовольствие от того, что создают.