avva: (Default)
[personal profile] avva
Очередной наезд на C++, в виде презентации на этот раз. Есть кое-какие неплохие примеры, хотя, как и в прошлый раз, много энергии растрачено на специально выдуманные примеры не из реальной практики.

Date: 2007-11-30 05:07 pm (UTC)
From: [identity profile] theukrainian.livejournal.com
у нас с presenter есть как минимум одно отличие. он выучил C++ чтобы пользоваться: OOP with Inline Member Functions, (Operator) Overloading, Templates

Я выучил C++ to get a job. Наверное поэтому я легче переношу недостатки C++

:)

Date: 2007-11-30 05:13 pm (UTC)
From: [identity profile] avva.livejournal.com
Логично :)

Date: 2007-11-30 05:17 pm (UTC)
From: [identity profile] cmm.livejournal.com
он выучил C++ чтобы пользоваться: OOP with Inline Member Functions, (Operator) Overloading, Templates

for all the wrong reasons, короче. :)

Date: 2007-11-30 06:35 pm (UTC)
From: [identity profile] theukrainian.livejournal.com
хорошо! :)

Date: 2007-12-01 05:48 pm (UTC)
From: [identity profile] e2pii1.livejournal.com
Использование конструкторов/деструкторов для надёжной инициализации/освобождения ресурсов, или "const" - это тоже wrong reasons ?

Что вы посоветуете использовать вместо Templates и inline functions там где нужна эффективность выполнения кода ? Препроцессор ?

(no subject)

From: [identity profile] cmm.livejournal.com - Date: 2007-12-01 06:35 pm (UTC) - Expand

(no subject)

From: [identity profile] e2pii1.livejournal.com - Date: 2007-12-01 07:26 pm (UTC) - Expand

(no subject)

From: [identity profile] cmm.livejournal.com - Date: 2007-12-01 07:55 pm (UTC) - Expand

(no subject)

From: [identity profile] e2pii1.livejournal.com - Date: 2007-12-01 09:16 pm (UTC) - Expand

(no subject)

From: [identity profile] cmm.livejournal.com - Date: 2007-12-01 09:30 pm (UTC) - Expand

(no subject)

From: [identity profile] e2pii1.livejournal.com - Date: 2007-12-02 03:15 pm (UTC) - Expand

(no subject)

From: [identity profile] cmm.livejournal.com - Date: 2007-12-02 03:36 pm (UTC) - Expand

Date: 2007-11-30 05:25 pm (UTC)
From: [identity profile] neatfires.livejournal.com
А какие языки, по вашему мнению, лучше подходят для general-purpose programming (если предположить, что остальные условия равные - библиотеки, поддержка ОС, лицензия итд)? Конкретизирую:
1. Average case: в проектах с переменным или заранее неизвестным уровнем профессионализма разработчиков.
2. Best case.

Date: 2007-11-30 06:32 pm (UTC)
From: [identity profile] jerom.livejournal.com
А существует сколь-нибудь существенный рынок haskell программистов?

Я вообще не видел ни одной вакансии в Москве.

(улыбаясь)

From: [identity profile] neograff.livejournal.com - Date: 2007-11-30 06:35 pm (UTC) - Expand

нет

From: [identity profile] jerom.livejournal.com - Date: 2007-11-30 06:44 pm (UTC) - Expand

Re: нет

From: [identity profile] neograff.livejournal.com - Date: 2007-11-30 06:46 pm (UTC) - Expand

Украина

From: [identity profile] jerom.livejournal.com - Date: 2007-11-30 06:49 pm (UTC) - Expand

Re: Украина

From: [identity profile] neograff.livejournal.com - Date: 2007-11-30 06:53 pm (UTC) - Expand

(no subject)

From: [identity profile] jerom.livejournal.com - Date: 2007-11-30 09:44 pm (UTC) - Expand

Re: нет

From: [identity profile] squadette.livejournal.com - Date: 2007-11-30 09:08 pm (UTC) - Expand

(no subject)

From: [identity profile] e2pii1.livejournal.com - Date: 2007-12-01 05:36 pm (UTC) - Expand

(no subject)

From: [identity profile] squadette.livejournal.com - Date: 2007-12-01 07:18 pm (UTC) - Expand

(no subject)

From: [identity profile] e2pii1.livejournal.com - Date: 2007-12-01 08:43 pm (UTC) - Expand

(no subject)

From: (Anonymous) - Date: 2007-11-30 07:26 pm (UTC) - Expand

Date: 2007-11-30 06:34 pm (UTC)
From: [identity profile] neatfires.livejournal.com
Это к какому пункту ответ? :)

(no subject)

From: [identity profile] neograff.livejournal.com - Date: 2007-11-30 06:37 pm (UTC) - Expand

Date: 2007-11-30 06:41 pm (UTC)
stas: (Don't panic!)
From: [personal profile] stas
Хорошая шутка, смешная.

(no subject)

From: [identity profile] neograff.livejournal.com - Date: 2007-11-30 06:42 pm (UTC) - Expand

(no subject)

From: [personal profile] stas - Date: 2007-11-30 06:51 pm (UTC) - Expand

(no subject)

From: [identity profile] neograff.livejournal.com - Date: 2007-11-30 06:54 pm (UTC) - Expand

(no subject)

From: [identity profile] vasja-iz-aa.livejournal.com - Date: 2007-11-30 08:10 pm (UTC) - Expand

(no subject)

From: [personal profile] stas - Date: 2007-11-30 08:11 pm (UTC) - Expand

(no subject)

From: [identity profile] vasja-iz-aa.livejournal.com - Date: 2007-11-30 08:38 pm (UTC) - Expand

(no subject)

From: [personal profile] stas - Date: 2007-11-30 08:44 pm (UTC) - Expand

(no subject)

From: [identity profile] vasja-iz-aa.livejournal.com - Date: 2007-11-30 08:57 pm (UTC) - Expand

(no subject)

From: [identity profile] neatfires.livejournal.com - Date: 2007-11-30 06:50 pm (UTC) - Expand

Date: 2007-11-30 07:14 pm (UTC)
vitus_wagner: My photo 2005 (Default)
From: [personal profile] vitus_wagner
Ключевым здесь является использование множественного числа - какие языки а не какой язык.

Одним из языков несомненно окажется старый добрый C. Писать на нем врапперы к посторонним библиотекам и очень иногда, после длительного профайлинга, переписывать на него критичные по времени куски.

Вторым - что-нибудь из Tcl Perl Python Ruby. Что больше нравится. Мне для GUI-приложений больше нравится Tcl, для Web-приложений perl. Командно-строчный инструментарий 50/50 то и другое.

Третьим Erlang/Haskell/Oz.

Четвертым - make. Можно, конечно попробовать его заменить на какой-нибудь Bras, т.е. свести к пункту 2, но лучше не надо. Не исключено что этот инструмент стоит использовань не только в процессе сборки, но и в процессе работы.

Старый добрый shell тоже пригодится (в основном для автоматизированных тестов, сборочных скриптов и т.д. юзеру лучше sh-скрипты не давать).
Следует всячески избегать использования в sh-скриптах sed, а может и awk. Лучше сразу заменять на то, что выбрано в п.2.

ECMAScript и VBScript могут также быть использованы. Наряду с остальными и не заменяя никого из них.

Между п. 1 и 2 может вклиниться жаба. Но лучше её сразу задавить, пока она вас не задавила.

(no subject)

From: [personal profile] nine_k - Date: 2007-11-30 07:30 pm (UTC) - Expand

Date: 2007-12-01 10:57 am (UTC)
From: [identity profile] avva.livejournal.com
Сильно зависит от размера проекта, дополнительных требований типа скорости итд. И главное - какие языки знают эти разработчики.

В случае, если известно, что есть средние или плохие программисты, и ничего с этим не поделать, надо использовать Джаву или C++ с железной дисциплиной стиля (или C, что не сильно отличается от C++ с железной дисциплиной стиля). Это и есть одна из главных причин, по которой эти два языка стали самыми популярными - они дают возможность изолировать вред от дураков, по крайней мере в большой степени.

Если люди хорошие, и команда небольшая, то в зависимости от того, что они знают или готовы выучить, один из таких языков, как Perl, Python, Ruby, Common Lisp, Haskell... языков, в которых профессионал может быть очень продуктивным. Конкретный выбор языка не так важен, как многим кажется. Если проект большой и людей много, и трудно обеспечить, чтобы они все знали/выучили один из этих языков, но они все еще действительно на высоком уровне, то Джава или C++ с вышеупомянутой дисциплиной.

При любом выборе грамотно настроенный процесс обязательных code reviews может оказаться более важным, чем выбор языка. То же самое касается грамотно составленного style guide, нейтрализующего многие недостатки данного языка/среды путем жесткого или мягкого запрета на использование определенных частей языка.

Date: 2007-11-30 05:28 pm (UTC)
From: [identity profile] gdy.livejournal.com
Там есть просто ошибочные примеры. Страница 17, хотя бы.

Date: 2007-11-30 06:04 pm (UTC)
From: [identity profile] spamsink.livejournal.com
Поясните. Лично мне пример кажется не ошибочным, но глупым. Потому что во-первых, правила языка надо знать, а во-вторых, все компиляторы на неверный порядок инициализации так ругаются, что только слепой не заметит.

(no subject)

From: [identity profile] gdy.livejournal.com - Date: 2007-11-30 07:05 pm (UTC) - Expand

(no subject)

From: [identity profile] spamsink.livejournal.com - Date: 2007-11-30 07:21 pm (UTC) - Expand

(no subject)

From: [identity profile] gdy.livejournal.com - Date: 2007-12-01 07:49 am (UTC) - Expand

(no subject)

From: [identity profile] http://users.livejournal.com/malfet_/ - Date: 2007-11-30 08:00 pm (UTC) - Expand

(no subject)

From: [identity profile] spamsink.livejournal.com - Date: 2007-11-30 08:19 pm (UTC) - Expand

(no subject)

From: [identity profile] http://users.livejournal.com/malfet_/ - Date: 2007-12-02 08:09 am (UTC) - Expand

(no subject)

From: [identity profile] spamsink.livejournal.com - Date: 2007-12-02 05:14 pm (UTC) - Expand

(no subject)

From: [identity profile] e2pii1.livejournal.com - Date: 2007-12-01 11:42 am (UTC) - Expand

(no subject)

From: [identity profile] http://users.livejournal.com/malfet_/ - Date: 2007-12-02 08:39 am (UTC) - Expand

Date: 2007-11-30 06:39 pm (UTC)
stas: (Engage brain)
From: [personal profile] stas
Наезжать на C++ примерно так же полезно, как наезжать, скажем, на электричество. Ну да, высокое напряжение опасно для жизни и все дела, но индустрия-то на этом построена.
А то тут люди, я вижу, советуют индустриальное программирования на Хаскеле. Ага, щаз.

Date: 2007-11-30 07:06 pm (UTC)
From: [identity profile] migmit.livejournal.com
"Огонёк" наехал на неодноразовые шприцы. И выиграл.

(no subject)

From: [identity profile] itman.livejournal.com - Date: 2007-11-30 07:47 pm (UTC) - Expand

Date: 2007-11-30 08:24 pm (UTC)
From: [identity profile] neatfires.livejournal.com
Я бы скорее сравнил это с наездами на марксизм с точки зрения новой экономической теории. В кружке по экономике.

(no subject)

From: [personal profile] stas - Date: 2007-11-30 08:27 pm (UTC) - Expand

(no subject)

From: [identity profile] neatfires.livejournal.com - Date: 2007-11-30 08:33 pm (UTC) - Expand

(no subject)

From: [personal profile] stas - Date: 2007-11-30 08:42 pm (UTC) - Expand

(no subject)

From: [identity profile] neatfires.livejournal.com - Date: 2007-11-30 09:32 pm (UTC) - Expand

(no subject)

From: [personal profile] stas - Date: 2007-11-30 09:44 pm (UTC) - Expand

(no subject)

From: [identity profile] neatfires.livejournal.com - Date: 2007-11-30 10:05 pm (UTC) - Expand

(no subject)

From: [personal profile] stas - Date: 2007-11-30 10:19 pm (UTC) - Expand

(no subject)

From: [identity profile] neatfires.livejournal.com - Date: 2007-11-30 10:44 pm (UTC) - Expand

(no subject)

From: [personal profile] stas - Date: 2007-11-30 10:52 pm (UTC) - Expand

(no subject)

From: [identity profile] neatfires.livejournal.com - Date: 2007-11-30 11:11 pm (UTC) - Expand

(no subject)

From: [personal profile] stas - Date: 2007-11-30 11:26 pm (UTC) - Expand

(no subject)

From: [identity profile] neatfires.livejournal.com - Date: 2007-11-30 11:41 pm (UTC) - Expand

(no subject)

From: [personal profile] stas - Date: 2007-11-30 11:58 pm (UTC) - Expand

Date: 2007-11-30 06:40 pm (UTC)
From: [identity profile] http://users.livejournal.com/malfet_/
По моемому, ближе к концу(раздел C++ is too powerful) автор презентации делает удивительно верное утверждение: "Most people can't handle all that flexibility".

Date: 2007-12-01 03:01 am (UTC)
From: [identity profile] zigmar.livejournal.com
Ага. Верно подмечено. Особенно учитывая, что этот "most" явно включает автора этого опуса :)

Date: 2007-11-30 07:27 pm (UTC)
From: [identity profile] bbb.livejournal.com
У тебя опечатка - в предложении "Очередной наезд на СПС" две последние буквы пропечатались плюсиками. Поправь, а то люди путаются.

Date: 2007-11-30 09:44 pm (UTC)
From: [identity profile] avva.livejournal.com
Нет уж, пусть будет как есть! В морг так в морг.

Date: 2007-11-30 09:40 pm (UTC)
From: [identity profile] degor.livejournal.com
в чем смысл таких наездов? все эти проблемы давно известны. с появлением java и с# плюсы с каждым годом становятся все более нишевым языком. все меньше софта, который есть смысл разрабатывать на плюсах.

мне кажется, это такой способ самоутверждения.

Date: 2007-11-30 11:35 pm (UTC)
From: [identity profile] ban-dana.livejournal.com
открыл, пролистал, увидел кучу фигни двух основных видов:

1. Фактические ошибки (типа утверждения о том, что при выбросе исключения из конструктора нет раскрутки)
2. Наезды на фичи которые работают иначе (by design), чем автор считает нужным. Например, все разговоры об ущербности auto_ptr. Я, например, могу с таким же успехом начать возмущаться, что не могу использовать свою тойоту ярис в качестве грузовика, и заявить, что, дескать, тойота - говно.

Date: 2007-11-30 11:36 pm (UTC)
From: [identity profile] ban-dana.livejournal.com
Я, собственно, не утверждаю, что автор сего опуса вообще не сказал ничего дельного, но оно, если и есть, как-то теряется на общем фоне...

Date: 2007-12-01 03:07 am (UTC)
From: [identity profile] zigmar.livejournal.com
1. да
2. auto_ptr таки да ущербный. У него не должно было быть семантики передачи владения, потому что получается что он прикидывается смартпоинтером, таковым даже близко не являясь и только вводя наивных пользователей в заблуждение. Насколько я слышал, что во всех драфтах, это был нормальный аналог нынешнего boost::scoped_ptr, но в финальную версию стандарта, каким-то образом проскочил в модифицированном виде, в которым мы имеет "счастье" наблюдать его теперь.

(no subject)

From: [identity profile] ban-dana.livejournal.com - Date: 2007-12-01 06:36 am (UTC) - Expand

(no subject)

From: [identity profile] a-bronx.livejournal.com - Date: 2007-12-01 08:58 am (UTC) - Expand

December 2025

S M T W T F S
  123 4 56
78 9 10 11 1213
1415 1617181920
21 22 23 24 2526 27
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Dec. 28th, 2025 02:51 am
Powered by Dreamwidth Studios