Когда я говорил...
От: о_О
Дата: 17.06.12 18:59
Оценка: 17 (3) +1 -1 :)
Воскресный вброс на хабрэ. Ничего сверх, исключительно для ознакомления
Re[10]: Когда я говорил...
От: SkyDance Земля  
Дата: 18.06.12 05:58
Оценка: 2 (2) +1
DB>Да и вообще Гугл, Майкрософт, Фейсбук и куча других компаний были организованы ребятами возраста около 20 лет.

Угу. Живущими (а) в США (б) на деньги родителей (в) в хорошем университете (д) имеющими 100% времени в своем распоряжении

Заметь. Все твои примеры объединяют именно эти факторы. Как думаешь, случайно ли?
Re[12]: Когда я говорил...
От: SkyDance Земля  
Дата: 18.06.12 06:53
Оценка: 1 (1) +2
DB>Нет, не случайно. Важные факторы, но недостаточные. Это также как у меня на районе пацаны говорили, что я занял призовое место на республиканской олимпиаде по программированию потому, что у меня был персональный компьютер дома.

Самое смешное, что ведь те парни были правы
Потому что если бы у тебя компьютера не было (как у меня до 10-го класса), фига с два бы что где получилось занять.

Это в математике зовется "необходимым, но не достаточным" условием.
Re[4]: Когда я говорил...
От: oldjackal Россия  
Дата: 18.06.12 08:35
Оценка: +2 :)
Здравствуйте, De-Bill, Вы писали:

DB>А что плохого в 23-летних сеньёрах? Я и сам в 23 года мог дать фору многим 30летним программистам с 10+ годами опыта работы. И сейчас есть знакомые примерно такого возраста, которые успешно руководят отделами.


В 23 года программист еще просто физически не может быть адекватным специалистом. Допустим, он что-то там серьезно изучать начал лет в 13 — но ровно тогда же начинали и многие "сеньеры" за 30. Более-менее приличную математическую подготовку он все равно получить мог только в ВУЗе, на первых двух курсах — после чего нужно как раз лет десять опыта, чтобы перевязать теоретические знания с практикой. При этом, с таким коротеньким опытом программист не может научиться адекватно оценивать трудоемкость задач, у него не будет достаточного кругозора для адекватного выбора инструментов под задачу, и у его будет еще слишком много юношеского максимализма — вместо рационального выбора он будет истошно верещать на форумах о том, что "Си круче чем Паскаль", или еще какую чушь в том же роде.

Я работал с самыми разными людьми, с очень разным уровнем подготовки. Видел и очень талантливую молодежь — в том смысле, что очень многообещающую, когда-то потом, в будущем. Но адекватных программистов в 23 года — такого не видел никогда!
Re[4]: Когда я говорил...
От: Brutalix  
Дата: 19.06.12 23:53
Оценка: -1 :))
Здравствуйте, De-Bill, Вы писали:

DB>А что плохого в 23-летних сеньёрах?


23х летние Сеньоры Програмисты, они как — как там в классическом анекдоте — и не сеньоры и не программисты. А так ничего плохого конечно. Есть такой прием организации производства — вместо бабок давать название должности попышнее. Типа требуются специалисты в лизинге и маркетинге. На почту марки клеить. 23х летние на это ведутся чаще чем 33х летние. А так, ответ на вопрос "что плохого?": да ничего плохого, если детишки довольны.

DB>Я и сам в 23 года мог дать фору многим 30летним программистам с 10+ годами опыта работы.


а вот моему соседу 93 и он свою жену каждый день е имеет. А я недавно нашел старый диск где записано что (и главное — как) писал в нежном возрасте. Бггггг. А тогда ведь тоже круче яик и эвереста был.

DB>И сейчас есть знакомые примерно такого возраста, которые успешно руководят отделами.


А вот 15ти летние капитаны в россии и аналогичных странах — это вообще песня. И это только в комерческих конторах, если это слово тут применимо. А вот эсли контора хоть каким боком связана с государством, то это не песня, а Песня. Да хором. Да с танцами. Тема слишком обширна, что бы ее тут раскрыть.
Re[4]: Когда я говорил...
От: silverwolf  
Дата: 18.06.12 05:12
Оценка: 7 (2)
Здравствуйте, De-Bill, Вы писали:

S>>

S>>Теперь у нас куча 23-летних синьоров и все равно х*р его знает, чем абстрактный класс отличается от интерфейса.

S>>Посмотрите тот же линкедин, там много "синьоров" в возрасте до 30 лет, при этом сильных технологических компаний в Украине нет (по факту), в России, по слухам, немного веселее, но осуждаемая статья скорее про Украину, чем про все СНГ.

DB>А что плохого в 23-летних сеньёрах? Я и сам в 23 года мог дать фору многим 30летним программистам с 10+ годами опыта работы. И сейчас есть знакомые примерно такого возраста, которые успешно руководят отделами.

Ну что тут скажешь, молодцы! Только вот есть несколько вопросов:
Где Украинские технологические компании? Почему вы и ваши знакомые не создали убийцу гугла и фейсбука? Где "Галя" -- БД котороя в 100500 раз круче западной кассандры, разработанная вами?
Re[2]: Когда я говорил...
От: о_О
Дата: 17.06.12 19:34
Оценка: 2 (2)
Здравствуйте, Alex Dav, Вы писали:

AD>Хабрики хорошо закрылись, а так бы получил он -100500 в карму

есть возражения? может озвучишь здесь?
Re[2]: Когда я говорил...
От: VovkaMorkovka  
Дата: 17.06.12 20:05
Оценка: +2
Здравствуйте, ML380, Вы писали:

ML>Кто мне объяснит в чем же состоит "зажратость" программистов?


В том, что в СНГ-шных крупных городах, получают "много" относительно "не программистов", при этом не перенапрягаются и чудес не показывают.
При этом смеют(!!!) требовать ещё чего то помимо зарплаты. Каких то условий, какого то нормального руководства и (о боже!) выполнения буквы договора
А прижмешь чуть — чуть, так уволится, сволочь такая.
Re[3]: Когда я говорил...
От: De-Bill  
Дата: 18.06.12 03:42
Оценка: +1 -1
S>

S>Теперь у нас куча 23-летних синьоров и все равно х*р его знает, чем абстрактный класс отличается от интерфейса.

S>Посмотрите тот же линкедин, там много "синьоров" в возрасте до 30 лет, при этом сильных технологических компаний в Украине нет (по факту), в России, по слухам, немного веселее, но осуждаемая статья скорее про Украину, чем про все СНГ.

А что плохого в 23-летних сеньёрах? Я и сам в 23 года мог дать фору многим 30летним программистам с 10+ годами опыта работы. И сейчас есть знакомые примерно такого возраста, которые успешно руководят отделами.
Re: Когда я говорил...
От: Пофигист Россия  
Дата: 18.06.12 05:30
Оценка: -1 :)
Здравствуйте, о_О, Вы писали:

о_О>Воскресный вброс на хабрэ. Ничего сверх, исключительно для ознакомления


Когда я говорил, что нельзя платить тысячи долларов тем, кто не знает, чем абстрактный класс отличается от интерфейса, вы продолжали им платить. Теперь у нас все зарабатывают тысячи долларов, но х*р его знает, чем абстрактный класс отличается от интерфейса.

Я дико извиняюсь за свою дремучесть, но может кто разъяснит на пальцах мне, сипиписту, чем же у вас явистов и шарпистов так уж принципиально отличаются абстрактный класс от интерфейса? Понаплодили, блин, сущностей зачем-то.
Re[2]: Когда я говорил...
От: MTD https://github.com/mtrempoltsev
Дата: 18.06.12 06:14
Оценка: -2
Здравствуйте, Пофигист, Вы писали:

П>Я дико извиняюсь за свою дремучесть, но может кто разъяснит на пальцах мне, сипиписту, чем же у вас явистов и шарпистов так уж принципиально отличаются абстрактный класс от интерфейса? Понаплодили, блин, сущностей зачем-то.


Я тоже с плюсов, могу предположить, что отличается тем же, чем и у нас — абстрактный класс в отличии от интерфейса может содержать детали реализации.
Re[14]: Когда я говорил...
От: SkyDance Земля  
Дата: 18.06.12 07:45
Оценка: -2
H>Нет не правы. У меня небыло дома компьютера, когда я занял первое место на республике

По _какой_ республике и в _каком_ году? "Первый парень на деревне, а в деревне один дом" (С)
Были ли компьютеры у ваших, гм, "конкурентов"? И вообще, о какой олимпиаде речь? О 5м школьном классе ?
Re[3]: Когда я говорил...
От: SkyDance Земля  
Дата: 18.06.12 23:49
Оценка: +1 -1
З
A>
A>class IFoo
A>{
A>public:
A>    virtual void doSomething() = 0;

A>protected:
A>    ~IFoo() {}
A>};
A>

A>это интерфейс

Правда ?

Это не то что не интерфейс, это еще и класс с ошибкой.
Re: Когда я говорил...
От: TimurSPB Интернет  
Дата: 18.06.12 09:56
Оценка: 6 (1)
Он может сколько хочет говорить. Есть спрос на "головоломщиков", есть предложение. Кадровая политика каждой компании индивидуальна и ответственность за кадровые решения несет сама компания. Поучения о том что "какаямододежьпошла", "вотраньшетакогонебыло", "явамговорилчтотакибудет" они всегда были и будут. Не нашел в статье главного — что предлагает автор?
Make flame.politics Great Again!
Re[13]: Когда я говорил...
От: hattab  
Дата: 18.06.12 07:21
Оценка: 2 (1)
Здравствуйте, SkyDance, Вы писали:

SD> DB>Нет, не случайно. Важные факторы, но недостаточные. Это также как у меня на районе пацаны говорили, что я занял призовое место на республиканской олимпиаде по программированию потому, что у меня был персональный компьютер дома.


SD> Самое смешное, что ведь те парни были правы

SD> Потому что если бы у тебя компьютера не было (как у меня до 10-го класса), фига с два бы что где получилось занять.

Нет не правы. У меня небыло дома компьютера, когда я занял первое место на республике
avalon 1.0rc3 build 428, zlib 1.2.3
Re[4]: Когда я говорил...
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 18.06.12 03:53
Оценка: 1 (1)
Здравствуйте, De-Bill, Вы писали:

DB>Я и сам в 23 года мог дать фору многим 30летним программистам с 10+ годами опыта работы. И сейчас есть знакомые примерно такого возраста, которые успешно руководят отделами.


И могут дать фору тебе, с твоими 10+ годами, верно?
Re[6]: Когда я говорил...
От: silverwolf  
Дата: 18.06.12 09:25
Оценка: 1 (1)
Здравствуйте, ML380, Вы писали:

ML>Здравствуйте, silverwolf, Вы писали:


S>>У меня нет повода считать что причина была другая.


ML>Это банально могло быть "последней каплей", которая обрушила лавину терпения. У самого такое было (не по работе).

ML>А может быть банально чел не адекватный. Ну ведь в любой профессии бывают.
Это так забавно, когда тебе рассказывают про твоих знакомых люди которые их не знают и не знают ситуацию
Re: Когда я говорил...
От: Alex Dav Россия  
Дата: 17.06.12 19:30
Оценка: -1
о_О>Воскресный вброс на хабрэ. Ничего сверх, исключительно для ознакомления
Хабрики хорошо закрылись, а так бы получил он -100500 в карму
Re[3]: Когда я говорил...
От: De-Bill  
Дата: 18.06.12 03:44
Оценка: +1
S>Позвольте не согласится. Понимание основ очень важно. Совсем недавно столкнулся с ситуацией:
S>Простенькое веб-приложение. Отправляет запрос (запрос №0) на сервер, по приходу ответа, отправляет еще 3 запроса. Проблема в том что для обработки этих запросов необходимы результаты запроса №0. И как разработчик решил эту проблему? … Внимание … Класс в котором статические поля KABOOM!!

И в чём проблема? Я уверен, что ты нашёл проблему за 10 минут и за следующие 10 минут исправил. А разработчик, скорее всего, продолжил работать разработчиком. Или его уволили?
Re[4]: Когда я говорил...
От: SkyDance Земля  
Дата: 18.06.12 05:00
Оценка: +1
DB>А что плохого в 23-летних сеньёрах? Я и сам в 23 года мог дать фору многим 30летним программистам с 10+ годами опыта работы. И сейчас есть знакомые примерно такого возраста, которые успешно руководят отделами.

Да-да, я в 23 года тоже думал, что мог дать фору многим 30-летним с 10-ю годами опыта.
Гайдар (или кто там?) полком тоже командовал (или вроде того) в 16 (?) лет.

Вот только ни я ни разу не сеньором был в 23, ни тот самый командир полка — настоящим боевым командиром. И дело вовсе не в знаниях, как раз знаний-то в 23 у меня было пожалуй что и побольше, чем сейчас: систему дифуров мог решить легко. А сейчас — нет.
Re[8]: Когда я говорил...
От: MTD https://github.com/mtrempoltsev
Дата: 18.06.12 06:26
Оценка: :)
Здравствуйте, De-Bill, Вы писали:

DB>Ну заработало же через несколько часов. Вообще не вижу проблемы .


Увидишь когда твоими деньгами другой человек нечаянно оплатит покупку
Re[2]: Когда я говорил...
От: Alexander G Украина  
Дата: 18.06.12 09:30
Оценка: -1
Здравствуйте, Пофигист, Вы писали:

П>Я дико извиняюсь за свою дремучесть, но может кто разъяснит на пальцах мне, сипиписту, чем же у вас явистов и шарпистов так уж принципиально отличаются абстрактный класс от интерфейса? Понаплодили, блин, сущностей зачем-то.


у них нет множественного наследования от классов (наследования реализации), но есть множественное наследование интерфейсов. благодаря этому у них нет проблемы с ромбовой иерархией и виртуального наследования.
Русский военный корабль идёт ко дну!
Re[3]: Когда я говорил...
От: Пофигист Россия  
Дата: 18.06.12 10:08
Оценка: -1
Здравствуйте, Alexander G, Вы писали:

П>>Я дико извиняюсь за свою дремучесть, но может кто разъяснит на пальцах мне, сипиписту, чем же у вас явистов и шарпистов так уж принципиально отличаются абстрактный класс от интерфейса? Понаплодили, блин, сущностей зачем-то.

AG>у них нет множественного наследования от классов (наследования реализации), но есть множественное наследование интерфейсов. благодаря этому у них нет проблемы с ромбовой иерархией и виртуального наследования.
Да я в курсе. Но, по-моему, это крайне незначительная ерунда. Как там модно говорить, синтаксический сахар.
Re: Когда я говорил...
От: Son of Northern Darkness  
Дата: 18.06.12 10:34
Оценка: -1
Здравствуйте, о_О, Вы писали:

о_О>Воскресный вброс на хабрэ. Ничего сверх, исключительно для ознакомления


Юзергрупп какой-то... Нафиг надо. Теннисный стол лучше.
Re[2]: Когда я говорил...
От: Abyx Россия  
Дата: 18.06.12 18:19
Оценка: -1
Здравствуйте, Пофигист, Вы писали:

П>Здравствуйте, о_О, Вы писали:


о_О>>Воскресный вброс на хабрэ. Ничего сверх, исключительно для ознакомления


П>

П>Когда я говорил, что нельзя платить тысячи долларов тем, кто не знает, чем абстрактный класс отличается от интерфейса, вы продолжали им платить. Теперь у нас все зарабатывают тысячи долларов, но х*р его знает, чем абстрактный класс отличается от интерфейса.

П>Я дико извиняюсь за свою дремучесть, но может кто разъяснит на пальцах мне, сипиписту, чем же у вас явистов и шарпистов так уж принципиально отличаются абстрактный класс от интерфейса? Понаплодили, блин, сущностей зачем-то.

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

собственно отличие состоит в возможности владения объектом.

class IFoo
{
public:
    virtual void doSomething() = 0;

protected:
    ~IFoo() {}
};

это интерфейс.
мы не можем владеть объектом с интерфейсом IFoo, т.е. мы не можем использовать smart_owning_ptr<IFoo> (или сделать delete fooPtr

class AFoo
{
public:
    virtual void doSomething() = 0;

    virtual ~AFoo() {}
};

это абстрактный класс.
мы можем владеть объектами абстрактного класса AFoo, т.е. мы можем использовать smart_owning_ptr<AFoo> (или сделать delete fooPtr

в качестве дополнительного материала можно почитать про interface (!) segregation principle, и заодно подумать о
class IDestructible { public: virtual ~IDestructible() {} };
In Zen We Trust
Re: Когда я говорил...
От: ML380 Земля  
Дата: 17.06.12 19:34
Оценка:
Здравствуйте, о_О, Вы писали:

Когда вы говорите, что программисты зажрались, то вы правы – ведь вы сделали все правильно!

Кто мне объяснит в чем же состоит "зажратость" программистов?
Re[3]: Когда я говорил...
От: SingleUseAccount  
Дата: 17.06.12 21:24
Оценка:
Здравствуйте, VovkaMorkovka, Вы писали:
VM>В том, что в СНГ-шных крупных городах, получают "много" относительно "не программистов", при этом не перенапрягаются и чудес не показывают.

Не только в СНГ, но даже и в годных странах скилл работы головой (программизм, математика, исследования) стоит дешевле умения "руками водить", но дороже, чем "балаболить гуманитарную чушь" и "продавать".
Пруф
Re: Когда я говорил...
От: Karn  
Дата: 17.06.12 21:43
Оценка:
Здравствуйте, о_О, Вы писали:

о_О>Воскресный вброс на хабрэ. Ничего сверх, исключительно для ознакомления


кучка недоказанных безосновательных утверждений. Слог неплох, читается легко.
И прежде чем вы напишите "Опровергните!", попробуйте для начала доказать хотя бы пару утверждений.

А то онтологическое доказательство Бога напоминает — "Бог есть, потому что мы в нашей голове есть мысль, что он есть"
Re: Когда я говорил...
От: Octothorp  
Дата: 18.06.12 00:14
Оценка:
Здравствуйте, о_О, Вы писали:

о_О>Воскресный вброс на хабрэ. Ничего сверх, исключительно для ознакомления


яростно плюсую, заодно прошу заметить такой момент: если бы все спрашивали действительно полезные вещи а не про круглые люки, то соответсвенно и правильные и самое главное полезные ответы бы знало бы реально больше народу
именно поэтому я счетаю что Россией необходим сильный лидер уровня Сталина
Мы не отступили, а изменили направление атаки!
Re: Когда я говорил...
От: De-Bill  
Дата: 18.06.12 02:29
Оценка:
о_О>Воскресный вброс на хабрэ. Ничего сверх, исключительно для ознакомления

Чувак не понимает одного. В современном IT большей части программистов нафиг не нужно знать, чем абстрактный класс отличается от интерфейса.
Re[2]: Когда я говорил...
От: silverwolf  
Дата: 18.06.12 02:54
Оценка:
Здравствуйте, ML380, Вы писали:

ML>Здравствуйте, о_О, Вы писали:

ML>

ML>Когда вы говорите, что программисты зажрались, то вы правы – ведь вы сделали все правильно!

ML>Кто мне объяснит в чем же состоит "зажратость" программистов?
Например:
Re[2]: Когда я говорил...
От: silverwolf  
Дата: 18.06.12 03:18
Оценка:
Здравствуйте, Karn, Вы писали:

K>Здравствуйте, о_О, Вы писали:


о_О>>Воскресный вброс на хабрэ. Ничего сверх, исключительно для ознакомления


K>кучка недоказанных безосновательных утверждений. Слог неплох, читается легко.

K>И прежде чем вы напишите "Опровергните!", попробуйте для начала доказать хотя бы пару утверждений.

Теперь у нас много средненьких теннисистов и нет коммюнити.

Прекрасное коммюнити http://dou.ua/ "28 344 специалиста" из них в "коммюнити" принимают участие хорошо если 200 и почитайте о чем говорят. Кстати, раз уж заговорили про сообщества, может подкинете парочку живих Java-сообществ (в идеали в Киеве)

Теперь у нас никто не работает, а все рекомендуют.

Из соседнего отдела так увели 3 человек. И меня тоже порекомендовали, но я не поддалсо, ибо они были не готовы платить со старта на 500-800 багзов больше рынка, а на меньшее мне нет смысла поднимать свою Ж. Так мы переходим к пункту 3

Когда вы говорите, что программисты зажрались

№4

Теперь у нас куча 23-летних синьоров и все равно х*р его знает, чем абстрактный класс отличается от интерфейса.

Посмотрите тот же линкедин, там много "синьоров" в возрасте до 30 лет, при этом сильных технологических компаний в Украине нет (по факту), в России, по слухам, немного веселее, но осуждаемая статья скорее про Украину, чем про все СНГ.

По сути, я сталкивался со всеми пунктами перечисленными в статье. Если такого "доказательства" вам достаточно, то теперь ваша очередь: Опровергайте!
Если не достаточно, то могу вас обрадовать: мир в котором вы живете, куда лучше моего.
Re[2]: Когда я говорил...
От: silverwolf  
Дата: 18.06.12 03:34
Оценка:
Здравствуйте, De-Bill, Вы писали:

о_О>>Воскресный вброс на хабрэ. Ничего сверх, исключительно для ознакомления


DB>Чувак не понимает одного. В современном IT большей части программистов нафиг не нужно знать, чем абстрактный класс отличается от интерфейса.

Позвольте не согласится. Понимание основ очень важно. Совсем недавно столкнулся с ситуацией:
Простенькое веб-приложение. Отправляет запрос (запрос №0) на сервер, по приходу ответа, отправляет еще 3 запроса. Проблема в том что для обработки этих запросов необходимы результаты запроса №0. И как разработчик решил эту проблему? … Внимание … Класс в котором статические поля KABOOM!!

Можно привести еще несколько примеров, когда люди не могут повесить обработчик на кнопку который должен сохранить форму AJAX-ом и вывести сообщение, потому что не понимают как работает this в javascript-е.
Re[5]: Когда я говорил...
От: De-Bill  
Дата: 18.06.12 04:43
Оценка:
DB>>Я и сам в 23 года мог дать фору многим 30летним программистам с 10+ годами опыта работы. И сейчас есть знакомые примерно такого возраста, которые успешно руководят отделами.
KP>И могут дать фору тебе, с твоими 10+ годами, верно?

Да, верно.
Re[6]: Когда я говорил...
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 18.06.12 04:51
Оценка:
Здравствуйте, De-Bill, Вы писали:

DB>>>Я и сам в 23 года мог дать фору многим 30летним программистам с 10+ годами опыта работы. И сейчас есть знакомые примерно такого возраста, которые успешно руководят отделами.

KP>>И могут дать фору тебе, с твоими 10+ годами, верно?

DB>Да, верно.


И таких много, насколько я понимаю?
Re[4]: Когда я говорил...
От: silverwolf  
Дата: 18.06.12 05:02
Оценка:
Здравствуйте, De-Bill, Вы писали:

S>>Позвольте не согласится. Понимание основ очень важно. Совсем недавно столкнулся с ситуацией:

S>>Простенькое веб-приложение. Отправляет запрос (запрос №0) на сервер, по приходу ответа, отправляет еще 3 запроса. Проблема в том что для обработки этих запросов необходимы результаты запроса №0. И как разработчик решил эту проблему? … Внимание … Класс в котором статические поля KABOOM!!

DB>И в чём проблема?

Проблема в том что "заказчик" (работодатель) хочет получать хоть сколько-то качественный продут, а для этого исполнители должны быть профессионалами, то есть им таки

нужно знать, чем абстрактный класс отличается от интерфейса.


DB> Я уверен, что ты нашёл проблему за 10 минут и за следующие 10 минут исправил.

Проблему нашел таки я, и не за 10 минут, а за меньше (ибо она очевидна) ... и где-то 30 минут оф..вал. А исправляли ее 2 таки синьора в течении нескольких часов.
DB> А разработчик, скорее всего, продолжил работать разработчиком. Или его уволили?
Не уволили, и в этом проблема. Сегодня повезло, а завтра не повезет и KABOOM.
Re[7]: Когда я говорил...
От: De-Bill  
Дата: 18.06.12 05:04
Оценка:
DB>>>>Я и сам в 23 года мог дать фору многим 30летним программистам с 10+ годами опыта работы. И сейчас есть знакомые примерно такого возраста, которые успешно руководят отделами.
KP>>>И могут дать фору тебе, с твоими 10+ годами, верно?
DB>>Да, верно.
KP>И таких много, насколько я понимаю?

Нет, не много. Но таких, которые в 23 года работают практически наравне со средними программистами 10+ годами опыта — гораздо больше.
Вполне вероятно, что лет 20 назад картина была другая: любой недостаток архитектуры или недостаточная квалификация в написании кода приводила к фатальной потере производительности, утечкам памяти, коду который невозможно развивать дальше.
Re[5]: Когда я говорил...
От: De-Bill  
Дата: 18.06.12 05:09
Оценка:
SD>Да-да, я в 23 года тоже думал, что мог дать фору многим 30-летним с 10-ю годами опыта.

Рад за тебя .
Re[8]: Когда я говорил...
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 18.06.12 05:24
Оценка:
Здравствуйте, De-Bill, Вы писали:

DB>Нет, не много. Но таких, которые в 23 года работают практически наравне со средними программистами 10+ годами опыта — гораздо больше.


Сурово у вас там все... Лично я не знаю ни одного такого, хотя, допускаю что подобные юные вундеркинды существуют. В количестве близком к статистической погрешности.
Re[5]: Когда я говорил...
От: LuciferArh Россия  
Дата: 18.06.12 05:34
Оценка:
Здравствуйте, silverwolf, Вы писали:

S>Проблема в том что "заказчик" (работодатель) хочет получать хоть сколько-то качественный продут,


ИМХО, заказчик (работодатель) хочет получить не просто качественный продукт, а хоть какой-то и хоть как-то работающий, чтоб его можно было продать. А для этого
S>а для этого исполнители должны быть профессионалами, то есть им таки
S>

S>нужно знать, чем абстрактный класс отличается от интерфейса.

знать совершенно не обязательно. Работает — ну и чудненько. На продажу!

S>Не уволили, и в этом проблема. Сегодня повезло, а завтра не повезет и KABOOM.


Для начала их не нужно принимать на работу, чтоб потом не мучиться с увольнением, которое в наших реалиях довольно проблематично. Но для этого на собечедованиях нужно прекратить задавать идиотские вопросы про "перспективы в нашей компании", "круглые люки vs сферические люки в вакууме" и прочую подобную чушь.
... << RSDN@Home 1.2.0 alpha 5 rev. 52>>
Re[9]: Когда я говорил...
От: De-Bill  
Дата: 18.06.12 05:34
Оценка:
KP>Сурово у вас там все... Лично я не знаю ни одного такого, хотя, допускаю что подобные юные вундеркинды существуют. В количестве близком к статистической погрешности.

Не понимаю скептицизма в отношении молодых. Кармак в 20 с небольшим организовал id Software и был лидером в разработке. Да и вообще Гугл, Майкрософт, Фейсбук и куча других компаний были организованы ребятами возраста около 20 лет.
Re[6]: Когда я говорил...
От: silverwolf  
Дата: 18.06.12 05:53
Оценка:
Здравствуйте, LuciferArh, Вы писали:

LA>Здравствуйте, silverwolf, Вы писали:


S>>Проблема в том что "заказчик" (работодатель) хочет получать хоть сколько-то качественный продут,


LA>ИМХО, заказчик (работодатель) хочет получить не просто качественный продукт, а хоть какой-то и хоть как-то работающий, чтоб его можно было продать. А для этого

S>>а для этого исполнители должны быть профессионалами, то есть им таки
S>>

S>>нужно знать, чем абстрактный класс отличается от интерфейса.

LA>знать совершенно не обязательно. Работает — ну и чудненько. На продажу!
Я привел пример (выше в этой ветке), когда продукт нельзя было продавать:

Простенькое веб-приложение. Отправляет запрос (запрос №0) на сервер, по приходу ответа, отправляет еще 3 запроса. Проблема в том что для обработки этих запросов необходимы результаты запроса №0. И как разработчик решил эту проблему? … Внимание … Класс в котором статические поля KABOOM!!

То есть, по факту, не работало, а этого можно было избежать имея базовое представления о многопоточности и многопользовательских системах.
Re[11]: Когда я говорил...
От: De-Bill  
Дата: 18.06.12 06:01
Оценка:
SD>Угу. Живущими (а) в США (б) на деньги родителей (в) в хорошем университете (д) имеющими 100% времени в своем распоряжении
SD>Заметь. Все твои примеры объединяют именно эти факторы. Как думаешь, случайно ли?

Нет, не случайно. Важные факторы, но недостаточные. Это также как у меня на районе пацаны говорили, что я занял призовое место на республиканской олимпиаде по программированию потому, что у меня был персональный компьютер дома.
Re[7]: Когда я говорил...
От: De-Bill  
Дата: 18.06.12 06:02
Оценка:
S>То есть, по факту, не работало

Ну заработало же через несколько часов. Вообще не вижу проблемы .
Re[10]: Когда я говорил...
От: MTD https://github.com/mtrempoltsev
Дата: 18.06.12 06:22
Оценка:
Здравствуйте, De-Bill, Вы писали:

KP>>допускаю что подобные юные вундеркинды существуют. В количестве близком к статистической погрешности.


DB>Не понимаю скептицизма в отношении молодых. Кармак в 20 с небольшим организовал id Software и был лидером в разработке. Да и вообще Гугл, Майкрософт, Фейсбук и куча других компаний были организованы ребятами возраста около 20 лет.


О том и речь.
Re[8]: Когда я говорил...
От: silverwolf  
Дата: 18.06.12 06:24
Оценка:
Здравствуйте, De-Bill, Вы писали:

S>>То есть, по факту, не работало


DB>Ну заработало же через несколько часов. Вообще не вижу проблемы .

Проблема с точки зрения работодателя + (сколько-то часов * (2 синьора + 1 работника который налажал + 1 меня) * на их ЗП в час).
А этого можно было бы избежать.
Возвращаясь к контексту:
DB>В современном IT большей части программистов нафиг не нужно знать, чем абстрактный класс отличается от интерфейса.
Оказывается, что для решения задачи большинству (в нашем случае 3 из 4) таки пригодились основы.
Оказывается, что всякие там понимание интерфейсов/сортировок/замыканий/других_умных_слов может таки пригодится в самых простых случаях.
Re[3]: Когда я говорил...
От: маген Россия https://ru.linkedin.com/pub/alexey-smorkalov/4/283/8b8
Дата: 18.06.12 06:32
Оценка:
MTD>Я тоже с плюсов, могу предположить, что отличается тем же, чем и у нас — абстрактный класс в отличии от интерфейса может содержать детали реализации.

Ну и плюс к тому, класс может быть унаследован от многих интерфейсов, но не от многих абстрактных классов.
Re[3]: Когда я говорил...
От: Пофигист Россия  
Дата: 18.06.12 06:58
Оценка:
Здравствуйте, MTD, Вы писали:

П>>Я дико извиняюсь за свою дремучесть, но может кто разъяснит на пальцах мне, сипиписту, чем же у вас явистов и шарпистов так уж принципиально отличаются абстрактный класс от интерфейса? Понаплодили, блин, сущностей зачем-то.

MTD>Я тоже с плюсов, могу предположить, что отличается тем же, чем и у нас — абстрактный класс в отличии от интерфейса может содержать детали реализации.
Так в чём принципиальное отличие, зачем несколько названий? Сделал все методы виртуальными — получил интерфейс, захотел, какие-то методы реализовал — получил абстрактный класс. Разница-то исчезающе мала, не понимаю, чего тут на собеседованиях выяснять? Про виртуальный деструктор — и то гораздо полезнее спросить.
Re[3]: Когда я говорил...
От: ML380 Земля  
Дата: 18.06.12 07:05
Оценка:
Здравствуйте, silverwolf, Вы писали:


S>
И получает? Так это каждый второй знает, бери — не хочу тогда, у них конкуренция должна быть дичайшая. Почему ж тогда все не рвутся в программисты (в том числе и выпускники профильных ВУЗов), как например, рвутся в фотографы (конкурс порядка 100 чел на место)?

S>
Это может быть просто повод. О причинах человек, видимо, решил не распространяться.
Re[4]: Когда я говорил...
От: silverwolf  
Дата: 18.06.12 07:52
Оценка:
Здравствуйте, ML380, Вы писали:

ML>Здравствуйте, silverwolf, Вы писали:



S>>
ML>И получает?
Да, не всегда, но довольно часто.
ML> Почему ж тогда все не рвутся в программисты (в том числе и выпускники профильных ВУЗов),
Патамушо, не уверены в себе. Кроме того многие выпускники профильных ВУЗов не знают что джава -- это язык программирования
ML> как например, рвутся в фотографы (конкурс порядка 100 чел на место)?
Вот ни разу не замечал такого.

S>>
ML>Это может быть просто повод. О причинах человек, видимо, решил не распространяться.
Причина была в том что его менеджер имел наглость ему заявить, что контора покупает только самый простой чай/кофе, а ценители изящества могут сами купить себе то что им нравится, благо ЗП позволяет. Разговор был публичный, я знаю нескольких присутствующих (в том числе и "пострадавшего") и не один не сказал что менеджер грубил во время разговора.
У меня нет повода считать что причина была другая.
Re[3]: Когда я говорил...
От: NikeByNike Россия  
Дата: 18.06.12 07:57
Оценка:
Здравствуйте, silverwolf, Вы писали:

DB>>Чувак не понимает одного. В современном IT большей части программистов нафиг не нужно знать, чем абстрактный класс отличается от интерфейса.

S>Позвольте не согласится. Понимание основ очень важно. Совсем недавно столкнулся с ситуацией:
S>Простенькое веб-приложение. Отправляет запрос (запрос №0) на сервер, по приходу ответа, отправляет еще 3 запроса. Проблема в том что для обработки этих запросов необходимы результаты запроса №0. И как разработчик решил эту проблему? … Внимание … Класс в котором статические поля KABOOM!!

Ну давай твою версию: чем абстрактный класс отличается от интерфейса в С++?
Нужно разобрать угил.
Re[5]: Когда я говорил...
От: NikeByNike Россия  
Дата: 18.06.12 07:59
Оценка:
Здравствуйте, kaa.python, Вы писали:

DB>>Я и сам в 23 года мог дать фору многим 30летним программистам с 10+ годами опыта работы. И сейчас есть знакомые примерно такого возраста, которые успешно руководят отделами.


KP>И могут дать фору тебе, с твоими 10+ годами, верно?


Есть. Причём ситуация усугубляется тем, что я программирую всё меньше и меньше и всё проще и проще. А всякие молодые начинают знать технологии про которые я даже не слышал
Нужно разобрать угил.
Re[7]: Когда я говорил...
От: LuciferArh Россия  
Дата: 18.06.12 07:59
Оценка:
Здравствуйте, silverwolf, Вы писали:

S>Я привел пример (выше в этой ветке), когда продукт нельзя было продавать:

S>То есть, по факту, не работало, а этого можно было избежать имея базовое представления о многопоточности и многопользовательских системах.

Я читал. А по факту — не надо было вообще такого разработчика брать на работу. Но работодателю на это пофиг. Найдем полуграмотных студентов, знающих много страшных слов и готовых работать за еду — вот девиз современного работодателя. Никогда не приходилось на собеседованиях слышать: "У вас слишком много опыта, чтобы работать в нашей компании"? Нет? А я такое регулярно выслушиваю вот уже четыре месяца... Пятый пошел.
... << RSDN@Home 1.2.0 alpha 5 rev. 52>>
Re[15]: Когда я говорил...
От: hattab  
Дата: 18.06.12 08:04
Оценка:
Здравствуйте, SkyDance, Вы писали:

SD> H>Нет не правы. У меня небыло дома компьютера, когда я занял первое место на республике


SD> По _какой_ республике и в _каком_ году? "Первый парень на деревне, а в деревне один дом" (С)


Я себя деанонимизировать не буду. Год 1996.

SD> Были ли компьютеры у ваших, гм, "конкурентов"? И вообще, о какой олимпиаде речь? О 5м школьном классе ?


Были-ли компьютеры у них дома? А мне почем знать? Знаю, что там были представители двух сильнейших школ с мат.уклоном города-миллионника. Олимпиада среди выпускников. После победы получил приглашение на поступление в тех.вуз без вступительных экзаменов.
avalon 1.0rc3 build 428, zlib 1.2.3
Re[4]: Когда я говорил...
От: silverwolf  
Дата: 18.06.12 08:21
Оценка:
Здравствуйте, NikeByNike, Вы писали:

NBN>Ну давай твою версию: чем абстрактный класс отличается от интерфейса в С++?

Абстрактный класс -- это частично-реализованный класс, то есть он может содержать реализацию.
Интерфейс описывает протокол. То есть описывает что должен делать класс который его реализует, но при этом полностью абстрагируется от реализации этого поведения.

В контексте реализации на ЦПП, интерфейс отличается тем что не может содержать деталей реализации (типа полей и реализованных методов). И фактически является скорее шаблоном проектирования.
Re[5]: Когда я говорил...
От: NikeByNike Россия  
Дата: 18.06.12 08:38
Оценка:
Здравствуйте, silverwolf, Вы писали:

NBN>>Ну давай твою версию: чем абстрактный класс отличается от интерфейса в С++?

S>Абстрактный класс -- это частично-реализованный класс, то есть он может содержать реализацию.
S>Интерфейс описывает протокол. То есть описывает что должен делать класс который его реализует, но при этом полностью абстрагируется от реализации этого поведения.

Ага, только это твои персональные определения не имеющие отношения к С++.

S>В контексте реализации на ЦПП, интерфейс отличается тем что не может содержать деталей реализации (типа полей и реализованных методов). И фактически является скорее шаблоном проектирования.


Нет, точнее это типичный мутант, бессмысленное совмещение понятий из разных областей.

Абстрактный класс — это класс объект которого не может быть создан.
Интерфейс (класса) — это его объявление.
Нужно разобрать угил.
Re[5]: Когда я говорил...
От: ML380 Земля  
Дата: 18.06.12 09:17
Оценка:
Здравствуйте, silverwolf, Вы писали:

S>Причина была в том что его менеджер имел наглость ему заявить, что контора покупает только самый простой чай/кофе, а ценители изящества могут сами купить себе то что им нравится, благо ЗП позволяет. Разговор был публичный, я знаю нескольких присутствующих (в том числе и "пострадавшего") и не один не сказал что менеджер грубил во время разговора.

S>У меня нет повода считать что причина была другая.

Это банально могло быть "последней каплей", которая обрушила лавину терпения. У самого такое было (не по работе).
А может быть банально чел не адекватный. Ну ведь в любой профессии бывают.
Re[6]: Когда я говорил...
От: silverwolf  
Дата: 18.06.12 09:23
Оценка:
Здравствуйте, NikeByNike, Вы писали:

NBN>Здравствуйте, silverwolf, Вы писали:


NBN>>>Ну давай твою версию: чем абстрактный класс отличается от интерфейса в С++?

S>>Абстрактный класс -- это частично-реализованный класс, то есть он может содержать реализацию.
S>>Интерфейс описывает протокол. То есть описывает что должен делать класс который его реализует, но при этом полностью абстрагируется от реализации этого поведения.

NBN>Ага, только это твои персональные определения не имеющие отношения к С++.

Я не скрываю что это мое понимание, и то что было выше написано это общее из теории ООП.

S>>В контексте реализации на ЦПП, интерфейс отличается тем что не может содержать деталей реализации (типа полей и реализованных методов). И фактически является скорее шаблоном проектирования.


NBN>Нет, точнее это типичный мутант, бессмысленное совмещение понятий из разных областей.

Каких областей?

NBN>Абстрактный класс — это класс объект которого не может быть создан.

Я с ЦПП дано не работал, поэтому вопрос: Из вашего определения получается что простой класс с одним конструктором который бросает исключение -- это абстрактный класс? Ведь если вывалится исключение, то экземпляр не будет создан? Или будет?
NBN>Интерфейс (класса) — это его объявление.
А какой смысл сравнивать "Абстрактный класс" и то что вы назвали "Интерфейс класса" (Я помню термин "Объявление класса")? А вот сравнивать "Протокол" (который часто называют интерфейсом, а не "интерфейсом класса") и "Абстрактный класс", на мой взгляд куда логичнее. И именно в этом контексте "интерфейс" используется в начальной статье.
Re[4]: Когда я говорил...
От: Паблик Морозов  
Дата: 18.06.12 09:36
Оценка:
Здравствуйте, De-Bill, Вы писали:

DB>А что плохого в 23-летних сеньёрах? Я и сам в 23 года мог дать фору многим 30летним программистам с 10+ годами опыта работы. И сейчас есть знакомые примерно такого возраста, которые успешно руководят отделами.


Сейчас куча старпёров будет доказывать, что их 10 лет опыта программирования на С/C++ не были потрачены зря и несомненно каким-то непонятным способом делают их лучшими специалистами.
Re[7]: Когда я говорил...
От: ML380 Земля  
Дата: 18.06.12 09:38
Оценка:
Здравствуйте, silverwolf, Вы писали:

S>>>У меня нет повода считать что причина была другая.


ML>>Это банально могло быть "последней каплей", которая обрушила лавину терпения. У самого такое было (не по работе).

ML>>А может быть банально чел не адекватный. Ну ведь в любой профессии бывают.
S>Это так забавно, когда тебе рассказывают про твоих знакомых люди которые их не знают и не знают ситуацию

Вам, конечно же, виднее
Просто я хочу сказать, что человек не всегда распространяется о своих идеях и проблемах.
Re[7]: Когда я говорил...
От: NikeByNike Россия  
Дата: 18.06.12 09:40
Оценка:
Здравствуйте, silverwolf, Вы писали:

S>>>В контексте реализации на ЦПП, интерфейс отличается тем что не может содержать деталей реализации (типа полей и реализованных методов). И фактически является скорее шаблоном проектирования.


NBN>>Нет, точнее это типичный мутант, бессмысленное совмещение понятий из разных областей.

S>Каких областей?
Явы, шаблонов, может COM. Но это не С++.

NBN>>Абстрактный класс — это класс объект которого не может быть создан.

S>Я с ЦПП дано не работал, поэтому вопрос: Из вашего определения получается что простой класс с одним конструктором который бросает исключение -- это абстрактный класс? Ведь если вывалится исключение, то экземпляр не будет создан? Или будет?
Хорошее замечание. Добавим пункт: на этапе компиляции.

NBN>>Интерфейс (класса) — это его объявление.

S>А какой смысл сравнивать "Абстрактный класс" и то что вы назвали "Интерфейс класса" (Я помню термин "Объявление класса")?
Никакого, это ортогональные понятия. О том и речь.

S>А вот сравнивать "Протокол" (который часто называют интерфейсом, а не "интерфейсом класса") и "Абстрактный класс", на мой взгляд куда логичнее.

Не вижу логики, если честно. Протокол, контракт, интерфейс — это то через что автор класса предлагает работать клиенту.
Абстрактный класс — это деталь реализации.

S>И именно в этом контексте "интерфейс" используется в начальной статье.

Начальная статья была, видимо, написана джаваистом, я над тем и посмеялся.
Нужно разобрать угил.
Re[4]: Когда я говорил...
От: TimurSPB Интернет  
Дата: 18.06.12 09:48
Оценка:
NBN>Ну давай твою версию: чем абстрактный класс отличается от интерфейса в С++?
В плюсах нет такого понятия. Компилятор "не знает" никаких интерфейсов, паттернов и кто такой Александреску и даже Страус Трупп. Чисто семантическое понятие, имеющее отношение к архитектуре. Есть чисто абстрактные классы, есть множественное наследование — хотите делайте интерфейсы, хотите нет. Для плюсов нормальная ситуация.
Make flame.politics Great Again!
Re[8]: Когда я говорил...
От: Donz Россия http://donz-ru.livejournal.com
Дата: 18.06.12 10:23
Оценка:
Здравствуйте, NikeByNike, Вы писали:

NBN>>>Абстрактный класс — это класс объект которого не может быть создан.

S>>Я с ЦПП дано не работал, поэтому вопрос: Из вашего определения получается что простой класс с одним конструктором который бросает исключение -- это абстрактный класс? Ведь если вывалится исключение, то экземпляр не будет создан? Или будет?
NBN>Хорошее замечание. Добавим пункт: на этапе компиляции.

И опять неверно. В Дельфи, например, можно создать экземпляр абстрактного класса. Невозможность создания экземпляра абстрактного класса — это фича конкретных языков, которая скорее является следствием других особенностей понимания абстрактных классов в языке.
Re[8]: Когда я говорил...
От: silverwolf  
Дата: 18.06.12 10:27
Оценка:
Здравствуйте, NikeByNike, Вы писали:

NBN>>>Абстрактный класс — это класс объект которого не может быть создан.

S>>Я с ЦПП дано не работал, поэтому вопрос: Из вашего определения получается что простой класс с одним конструктором который бросает исключение -- это абстрактный класс? Ведь если вывалится исключение, то экземпляр не будет создан? Или будет?
NBN>Хорошее замечание. Добавим пункт: на этапе компиляции.
О, так это не определение, а ваше творчество? А если найти в компиляторе то место которое проверяет создание классов и "подфиксить"? Вам не кажется что

Абстрактный класс -- это частично-реализованный класс

Если оно не корректно, то укажите где.
Но это мы отклоняемся от темы.

NBN>>>Интерфейс (класса) — это его объявление.

S>>А какой смысл сравнивать "Абстрактный класс" и то что вы назвали "Интерфейс класса" (Я помню термин "Объявление класса")?
NBN>Никакого, это ортогональные понятия. О том и речь.
Почему ортогональные. Скорее параллельные, даже в контексте конкретного языка. Вот только тут другой вопрос: Насколько человек мыслит в ООП, а на сколько в терминах языка? И насколько это хорошо?

S>>А вот сравнивать "Протокол" (который часто называют интерфейсом, а не "интерфейсом класса") и "Абстрактный класс", на мой взгляд куда логичнее.

NBN>Не вижу логики, если честно. Протокол, контракт, интерфейс — это то через что автор класса предлагает работать клиенту.
NBN>Абстрактный класс — это деталь реализации.
А если посмотреть так: Абстрактный класс -- это частично реализованный протокол.
Абстрактный класс, как и любой другой класс может сам объявлять протокол.

S>>И именно в этом контексте "интерфейс" используется в начальной статье.

NBN>Начальная статья была, видимо, написана джаваистом,
По ходу, дотНетчиком. И говорил он в контексте ООП, а не конкретной реализации в конкретном языке. Кстати, есть люди которые отвечают, что интерфейс просто объявляется другим ключевым словом.
NBN>я над тем и посмеялся.
Вы очень забавно посмеялись, продемонстрировав что вы более привязаны к конкретной реализации концепции чем в общем к подходу.

Если же вернуться к первоначальной статье, то разница "абстрактный класс/интерфейс" -- это синоним "знание теории" (пусть ответ и будет, в некотором плане, зависеть от сферы деятельность/языка). Понимание этого, кстати, демонстрирует возможность человека к созданию абстракций.
Re[9]: Когда я говорил...
От: NikeByNike Россия  
Дата: 18.06.12 10:32
Оценка:
Здравствуйте, Donz, Вы писали:

NBN>>>>Абстрактный класс — это класс объект которого не может быть создан.

S>>>Я с ЦПП дано не работал, поэтому вопрос: Из вашего определения получается что простой класс с одним конструктором который бросает исключение -- это абстрактный класс? Ведь если вывалится исключение, то экземпляр не будет создан? Или будет?
NBN>>Хорошее замечание. Добавим пункт: на этапе компиляции.

D>И опять неверно. В Дельфи, например, можно создать экземпляр абстрактного класса.

Причёт тут дельфи?
Нужно разобрать угил.
Re[6]: Когда я говорил...
От: MTD https://github.com/mtrempoltsev
Дата: 18.06.12 10:50
Оценка:
Здравствуйте, NikeByNike, Вы писали:

S>>В контексте реализации на ЦПП, интерфейс отличается тем что не может содержать деталей реализации (типа полей и реализованных методов). И фактически является скорее шаблоном проектирования.


NBN>Нет, точнее это типичный мутант, бессмысленное совмещение понятий из разных областей.


NBN>Абстрактный класс — это класс объект которого не может быть создан.

NBN>Интерфейс (класса) — это его объявление.

Вот — посиди, подумай:

// Интерфейс
class Openable
{
public:
    virtual void Open() = 0;
    virtual bool IsOpen() const = 0;
};

// Абстрактный класс
class AbstractPort
    : public Openable
{
public:
    void Open()
    {
        ...
        DoOpen();
        ...
    }

    bool IsOpen() const
    {
        return IsOpen_;
    }

protected:
    Descriptor Port_;

private:
    virtual void DoOpen() = 0;

    bool IsOpen_;
};

// Конкретный класс
class Can
    : public Openable
{
public:
    Can()
        : IsOpen_(false)
    {
    }

    void Open()
    {
        IsOpen_ = true;
    }

    bool IsOpen() const
    {
        return IsOpen_;
    }

private:
    bool IsOpen_;
};
Re[9]: Когда я говорил...
От: NikeByNike Россия  
Дата: 18.06.12 10:54
Оценка:
Здравствуйте, silverwolf, Вы писали:

S>>>Я с ЦПП дано не работал, поэтому вопрос: Из вашего определения получается что простой класс с одним конструктором который бросает исключение -- это абстрактный класс? Ведь если вывалится исключение, то экземпляр не будет создан? Или будет?

NBN>>Хорошее замечание. Добавим пункт: на этапе компиляции.
S>О, так это не определение, а ваше творчество? А если найти в компиляторе то место которое проверяет создание классов и "подфиксить"?
Есть много способов выстрелить себе в ногу. Например можно легко создавать объекты класса с приватными конструкторами:
Test t = t;

S>Вам не кажется что

S>

S>Абстрактный класс -- это частично-реализованный класс

S>Если оно не корректно, то укажите где.
Нормальное определение, немного с другой стороны.

NBN>>>>Интерфейс (класса) — это его объявление.

S>>>А какой смысл сравнивать "Абстрактный класс" и то что вы назвали "Интерфейс класса" (Я помню термин "Объявление класса")?
NBN>>Никакого, это ортогональные понятия. О том и речь.
S>Почему ортогональные. Скорее параллельные, даже в контексте конкретного языка. Вот только тут другой вопрос: Насколько человек мыслит в ООП, а на сколько в терминах языка? И насколько это хорошо?
На разных уровнях по разному, чем выше — тем более обще, но тем не менее язык и парадигма всё-таки оказывают серьёзно влияние.

NBN>>Не вижу логики, если честно. Протокол, контракт, интерфейс — это то через что автор класса предлагает работать клиенту.

NBN>>Абстрактный класс — это деталь реализации.
S>А если посмотреть так: Абстрактный класс -- это частично реализованный протокол.
Протокол не может быть частично реализованным.

S>Абстрактный класс, как и любой другой класс может сам объявлять протокол.

Деталь реализации. Пользователю это безразлично.

NBN>>я над тем и посмеялся.

S>Вы очень забавно посмеялись, продемонстрировав что вы более привязаны к конкретной реализации концепции чем в общем к подходу.
Мы говорили именно о С++. Не о программировании вообще, не об архитектуре и не о шаблонах.

Кроме того, мне всегда казалось глупым самоограничение связанное с отказом от обычных функций в абстрактных классах в С++, которым страдают многие программисты.

S>Если же вернуться к первоначальной статье, то разница "абстрактный класс/интерфейс" -- это синоним "знание теории" (пусть ответ и будет, в некотором плане, зависеть от сферы деятельность/языка). Понимание этого, кстати, демонстрирует возможность человека к созданию абстракций.

Тем не менее эти понятия определяются совершенно однозначно в C# и Java и не совсем однозначно и совершенно по другому в С++, где класс с приватными конструкторами может быть абстрактным.
Нужно разобрать угил.
Re[7]: Когда я говорил...
От: NikeByNike Россия  
Дата: 18.06.12 11:00
Оценка:
Здравствуйте, MTD, Вы писали:

NBN>>Абстрактный класс — это класс объект которого не может быть создан.

NBN>>Интерфейс (класса) — это его объявление.

MTD>Вот — посиди, подумай:


Над чем?
Нужно разобрать угил.
Re[10]: Когда я говорил...
От: Donz Россия http://donz-ru.livejournal.com
Дата: 18.06.12 11:01
Оценка:
Здравствуйте, NikeByNike, Вы писали:

D>>И опять неверно. В Дельфи, например, можно создать экземпляр абстрактного класса.

NBN>Причёт тут дельфи?

Как пример, опровергающий твое определение. Я про общее понятие абстрактного класса без учета конкретного языка, если что.
Re[11]: Когда я говорил...
От: NikeByNike Россия  
Дата: 18.06.12 11:01
Оценка:
Здравствуйте, Donz, Вы писали:

D>>>И опять неверно. В Дельфи, например, можно создать экземпляр абстрактного класса.

NBN>>Причёт тут дельфи?

D>Как пример, опровергающий твое определение. Я про общее понятие абстрактного класса без учета конкретного языка, если что.


Мы говорим про С++.
Нужно разобрать угил.
Re[8]: Когда я говорил...
От: MTD https://github.com/mtrempoltsev
Дата: 18.06.12 11:01
Оценка:
Здравствуйте, NikeByNike, Вы писали:

MTD>>Вот — посиди, подумай:


NBN>Над чем?


Ну раз тебе не над чем
Re[9]: Когда я говорил...
От: NikeByNike Россия  
Дата: 18.06.12 11:04
Оценка:
Здравствуйте, MTD, Вы писали:

MTD>>>Вот — посиди, подумай:


NBN>>Над чем?


MTD>Ну раз тебе не над чем


Я так понял, что ты намекал на свой комментарий?
Нужно разобрать угил.
Re[9]: Когда я говорил...
От: Паблик Морозов  
Дата: 18.06.12 11:18
Оценка:
Здравствуйте, silverwolf, Вы писали:

S>О, так это не определение, а ваше творчество?


Мальчики, не ссорьтесь, нет ничего бесплоднее терминологических споров за пределами точных наук, допускающих применение формальных методов к формальным же определениям. Давайте просто сойдёмся на том, что ООПе — набор базвордов чтобы понтоваться перед девочками, и толку от него примерно столько же, сколько от скрама с аджайлом, как метко заметил автор.
Re[10]: Когда я говорил...
От: MTD https://github.com/mtrempoltsev
Дата: 18.06.12 11:20
Оценка:
Здравствуйте, NikeByNike, Вы писали:

NBN>Я так понял, что ты намекал на свой комментарий?


Я показал на конкретном примере отличия абстрактного класса и интерфейса. Хотя конечно, разделение этих понятий в компетенции программиста и языком не описываются (С++).
Re[11]: Когда я говорил...
От: NikeByNike Россия  
Дата: 18.06.12 11:31
Оценка:
Здравствуйте, MTD, Вы писали:

NBN>>Я так понял, что ты намекал на свой комментарий?


MTD>Я показал на конкретном примере отличия абстрактного класса и интерфейса. Хотя конечно, разделение этих понятий в компетенции программиста и языком не описываются (С++).


Ничего ты не показал. Твой AbstractPort является точно таким же интерфейсом, как и твой Openable. И то и другое — абстрактные классы и предоставляют интерфейсы, Can — предоставляет интерфейс и это не абстрактный класс.
Нужно разобрать угил.
Re[12]: Когда я говорил...
От: MTD https://github.com/mtrempoltsev
Дата: 18.06.12 11:33
Оценка:
Здравствуйте, NikeByNike, Вы писали:

NBN>Твой AbstractPort является точно таким же интерфейсом, как и твой Openable. И то и другое — абстрактные классы и предоставляют интерфейсы, Can — предоставляет интерфейс и это не абстрактный класс.


Как все запущено
Re[13]: Когда я говорил...
От: NikeByNike Россия  
Дата: 18.06.12 11:35
Оценка:
Здравствуйте, MTD, Вы писали:

NBN>>Твой AbstractPort является точно таким же интерфейсом, как и твой Openable. И то и другое — абстрактные классы и предоставляют интерфейсы, Can — предоставляет интерфейс и это не абстрактный класс.


MTD>Как все запущено


Кстати, меня в твой Акронис брали на должность кодеревьюера ещё до того как ты начал там работать
Нужно разобрать угил.
Re[14]: Когда я говорил...
От: MTD https://github.com/mtrempoltsev
Дата: 18.06.12 11:42
Оценка:
Здравствуйте, NikeByNike, Вы писали:

NBN>Кстати, меня в твой Акронис брали на должность кодеревьюера ещё до того как ты начал там работать


Ну раз по делу сказать больше нечего, то можно и пофлудить, но для начала несколько поправок:
1. Акронис не мой
2. Я там не работаю уже 3 года
3. Должности кодеревьюера когда я там работал не было — ревьюили все люди код которых затрагивал твой код
Re[7]: Когда я говорил...
От: TimurSPB Интернет  
Дата: 18.06.12 11:48
Оценка:
С точки зрения С++
1. Абстрактный класс(abstract class). В народе "чисто абстрактный класс", хотя в стандарте и нет такого определения. Содержит только виртуальные методы (pure virtual)
2. Абстрактный класс. Содержит один виртуальный метод.
3. Класс не содержащий чисто виртуальных методов (pure virtual). В народе "конкретный" класс.

Первый класс стал "интерфейсом" только от того что в вашей архитектуре он является интерфейсом в общепринятом определении.
Make flame.politics Great Again!
Re[8]: Когда я говорил...
От: NikeByNike Россия  
Дата: 18.06.12 11:52
Оценка:
Здравствуйте, TimurSPB, Вы писали:

TSP>1. Абстрактный класс(abstract class). В народе "чисто абстрактный класс", хотя в стандарте и нет такого определения. Содержит только виртуальные методы (pure virtual)

TSP>2. Абстрактный класс. Содержит один виртуальный метод.
Это какие-то очень странные условности

TSP>Первый класс стал "интерфейсом" только от того что в вашей архитектуре он является интерфейсом в общепринятом определении.

Интерфейс класса — это совокупность его публичных мемберов.

Тому кто продолжает настаивать на особой сущности interface в С++ нужно предложить дать определение виртуальному наследованию в рамках Java.
Нужно разобрать угил.
Re[9]: Когда я говорил...
От: TimurSPB Интернет  
Дата: 18.06.12 12:01
Оценка:
Здравствуйте, NikeByNike, Вы писали:

NBN>Здравствуйте, TimurSPB, Вы писали:


TSP>>1. Абстрактный класс(abstract class). В народе "чисто абстрактный класс", хотя в стандарте и нет такого определения. Содержит только виртуальные методы (pure virtual)

TSP>>2. Абстрактный класс. Содержит один виртуальный метод.
NBN>Это какие-то очень странные условности
С++ вообще штука странная, но писание гласит:

An abstract class is a class that can be used only as a base class of some other class; no objects of an
abstract class can be created except as sub-objects of a class derived from it. A class is abstract if it has at
least one pure virtual function. [Note: such a function might be inherited: see below. ]

Т.е. оба класса абстрактные.

Стих 10.4.1

An abstract class can also be
used to define an interface for which derived classes provide a variety of implementations.

Описание понятия интерфейса не приводится, т.к. выходит за рамки. Моё толкование такое. Абстрактный класс есть реализация концепции интерфейса в С++.



TSP>>Первый класс стал "интерфейсом" только от того что в вашей архитектуре он является интерфейсом в общепринятом определении.

NBN>Интерфейс класса — это совокупность его публичных мемберов.
"Интерфейс класса" это другое.
Make flame.politics Great Again!
Re[4]: Когда я говорил...
От: TimurSPB Интернет  
Дата: 18.06.12 12:36
Оценка:
П>Да я в курсе. Но, по-моему, это крайне незначительная ерунда. Как там модно говорить, синтаксический сахар.
Эта ерунда очень значительная.
Make flame.politics Great Again!
Re[3]: Когда я говорил...
От: minorlogic Украина  
Дата: 18.06.12 13:26
Оценка:
Здравствуйте, Alexander G, Вы писали:

AG>у них нет множественного наследования от классов (наследования реализации), но есть множественное наследование интерфейсов. благодаря этому у них нет проблемы с ромбовой иерархией и виртуального наследования.


Какой проблемы с ромбовой иерархией ?
... << RSDN@Home 1.2.0 alpha 5 rev. 1539>>
Ищу работу, 3D, SLAM, computer graphics/vision.
Re[4]: Когда я говорил...
От: Codechanger Россия  
Дата: 18.06.12 13:38
Оценка:
Программисты делятся на две категории — те, которые больше создают, чем решают проблемы и те, которые больше решают проблем, чем создают.

Все остальное особого значения не имеет. Корреляции с объемом знаний/навыков/умений тоже не выявлено.
Re[4]: Когда я говорил...
От: Glas  
Дата: 19.06.12 05:45
Оценка:
Вы бы хоть у автора статьи спросили, о каких интерфейсах и абстрактных классах он говорит. В С++ вообще нет ключевого слова interface, так значит и их как таковых там нет

An interface contains only the signatures of methods, properties, events or indexers. A class or struct that implements the interface must implement the members of the interface that are specified in the interface definition.

The abstract modifier indicates that the thing being modified has a missing or incomplete implementation. The abstract modifier can be used with classes, methods, properties, indexers, and events. Use the abstract modifier in a class declaration to indicate that a class is intended only to be a base class of other classes.
Re[5]: Когда я говорил...
От: о_О
Дата: 19.06.12 05:54
Оценка:
Здравствуйте, Glas, Вы писали:

G>Вы бы хоть у автора статьи спросили, о каких интерфейсах и абстрактных классах он говорит. В С++ вообще нет ключевого слова interface, так значит и их как таковых там нет

Ну наконец
Re[5]: Когда я говорил...
От: Пофигист Россия  
Дата: 19.06.12 05:56
Оценка:
Здравствуйте, TimurSPB, Вы писали:

П>>Да я в курсе. Но, по-моему, это крайне незначительная ерунда. Как там модно говорить, синтаксический сахар.

TSP>Эта ерунда очень значительная.

Бедные, несчастные сипипишные программисты! Они ведь даже слов таких, интерфейс и абстрактный класс, не имеют, а программируют же как-то.
Re[9]: Когда я говорил...
От: zubr Россия  
Дата: 19.06.12 06:28
Оценка:
Здравствуйте, Donz, Вы писали:

D>Здравствуйте, NikeByNike, Вы писали:


D>И опять неверно. В Дельфи, например, можно создать экземпляр абстрактного класса. Невозможность создания экземпляра абстрактного класса — это фича конкретных языков, которая скорее является следствием других особенностей понимания абстрактных классов в языке.


Мне кажется просто при написании копмилятора поленились Ибо все практически стараются придерживаться идеи абстрактность — противоположность конкретике, как следствие невозможность создавать экземпляры абстрактных классов; что очень даже логично.


The superclass is called “abstract” because its implementation is incomplete so clients do not create instances of it. The subclasses that a client can create instances of are referred to as “concrete.” [WWW90, page 27]

взято здесь
Re[6]: Когда я говорил...
От: TimurSPB Интернет  
Дата: 19.06.12 06:31
Оценка:
П>Бедные, несчастные сипипишные программисты! Они ведь даже слов таких, интерфейс и абстрактный класс, не имеют, а программируют же как-то.
Да ниче. Привыкли. Справляемся.
Make flame.politics Great Again!
Re[2]: Когда я говорил...
От: TimurSPB Интернет  
Дата: 19.06.12 06:38
Оценка:
SON>Юзергрупп какой-то... Нафиг надо. Теннисный стол лучше.
Если ставят теннисный стол и настольный хоккей, значит айчеры запустили очередную "программу нематериальной мотивации". Короче, все эти плюшечки плохая примета — зп не поднимут.
Make flame.politics Great Again!
Re[3]: Когда я говорил...
От: Son of Northern Darkness  
Дата: 19.06.12 06:56
Оценка:
Здравствуйте, TimurSPB, Вы писали:

SON>>Юзергрупп какой-то... Нафиг надо. Теннисный стол лучше.

TSP>Если ставят теннисный стол и настольный хоккей, значит айчеры запустили очередную "программу нематериальной мотивации". Короче, все эти плюшечки плохая примета — зп не поднимут.

На прошлом месте был и стол и зарплата. На текущем вообще есть отдельный клуб, который получает финансирование от компании и тратит деньги на совместные выходы на природу, спонсирование спорта, всякие одноразовые события, типа обучения дайвингу или гольфу.
Re[6]: Когда я говорил...
От: carpenter Голландия  
Дата: 19.06.12 09:16
Оценка:
Здравствуйте, NikeByNike, Вы писали:

NBN>Есть. Причём ситуация усугубляется тем, что я программирую всё меньше и меньше и всё проще и проще. А всякие молодые начинают знать технологии про которые я даже не слышал


учиться учиться и еще раз учиться, как завещал В.И.

а вообще — я сам за простоту в коде, новые технологии должны упрощать код а не усложнять, если их, конечно пользовать не через Ж
Весь мир — Кремль, а люди в нем — агенты
Re[5]: Когда я говорил...
От: carpenter Голландия  
Дата: 19.06.12 09:21
Оценка:
Здравствуйте, Паблик Морозов, Вы писали:

ПМ>Сейчас куча старпёров будет доказывать, что их 10 лет опыта программирования на С/C++ не были потрачены зря и несомненно каким-то непонятным способом делают их лучшими специалистами.


Да да — так и есть

ирония, если че

Если серьезно — мое улучшение с возрастом стало не то что я стал лучше программировать — а стал более четко различать приоритет задач
не только в программировании но и по жизни — и искать наиболее оптимальные их решения
Весь мир — Кремль, а люди в нем — агенты
Re[2]: Когда я говорил...
От: carpenter Голландия  
Дата: 19.06.12 09:22
Оценка:
Здравствуйте, De-Bill, Вы писали:

о_О>>Воскресный вброс на хабрэ. Ничего сверх, исключительно для ознакомления


DB>Чувак не понимает одного. В современном IT большей части программистов нафиг не нужно знать, чем абстрактный класс отличается от интерфейса.


вы еще скажите что про виртуальный деструктор знать не обязательно
Весь мир — Кремль, а люди в нем — агенты
Re[3]: Когда я говорил...
От: о_О
Дата: 19.06.12 09:27
Оценка:
DB>>Чувак не понимает одного. В современном IT большей части программистов нафиг не нужно знать, чем абстрактный класс отличается от интерфейса.

C>вы еще скажите что про виртуальный деструктор знать не обязательно


не можешь перевернуть в уме список??? НА ПОМОЕЧКУ!!!11
Re[7]: Когда я говорил...
От: Nikе Россия  
Дата: 19.06.12 09:32
Оценка:
Здравствуйте, carpenter, Вы писали:

NBN>>Есть. Причём ситуация усугубляется тем, что я программирую всё меньше и меньше и всё проще и проще. А всякие молодые начинают знать технологии про которые я даже не слышал


C>учиться учиться и еще раз учиться, как завещал В.И.


Я учусь постоянно, только уже совсем другим вещам
Нужно разобрать угил.
Re[3]: Когда я говорил...
От: SkyDance Земля  
Дата: 19.06.12 22:35
Оценка:
C>вы еще скажите что про виртуальный деструктор знать не обязательно

Судя по приведенному совсем рядом
Автор: Abyx
Дата: 18.06.12
примеру, и вправду, не обязательно Только не говорите мне, что трава раньше зеленее была, я это тоже знаю.
Re[5]: Когда я говорил...
От: Brutalix  
Дата: 20.06.12 00:16
Оценка:
Здравствуйте, Паблик Морозов, Вы писали:

ПМ>Сейчас куча старпёров будет доказывать, что их 10 лет опыта программирования на С/C++ не были потрачены зря и несомненно каким-то непонятным способом делают их лучшими специалистами.


Во во. Наверняка даже списки на время на бумажке обращать не умеют.
Re[9]: Когда я говорил...
От: abibok  
Дата: 22.06.12 17:44
Оценка:
D>И опять неверно. В Дельфи, например, можно создать экземпляр абстрактного класса. Невозможность создания экземпляра абстрактного класса — это фича конкретных языков, которая скорее является следствием других особенностей понимания абстрактных классов в языке.

Верно. А в C# можно создать даже экземпляр интерфейса.
Re: Когда я говорил...
От: ResidentR6  
Дата: 22.06.12 21:09
Оценка:
Спасибо, в точку!
Лучше только в Нашей Раше показано как организован изнутри омский
ГазМяс. Делается всё что угодно, любые "методы" кроме собственно игры в
футбол.

Кстати, а как достать инвайт на Хабр?
Технически меня должны пригласить, но чтобы это приглашение получить я
должен быть знаком с теми, кто уже там. А нормальный способ такое
знакомство получить — сам Хабр. То есть фактически я должен [по их
мнению] просто купить его.
Posted via RSDN NNTP Server 2.1 beta
Re[2]: Когда я говорил...
От: о_О
Дата: 22.06.12 23:23
Оценка:
Здравствуйте, ResidentR6, Вы писали:

RR>Кстати, а как достать инвайт на Хабр?

написать говно-статью

RR>Технически меня должны пригласить, но чтобы это приглашение получить я

RR>должен быть знаком с теми, кто уже там. А нормальный способ такое
RR>знакомство получить — сам Хабр. То есть фактически я должен [по их
RR>мнению] просто купить его.
ты должен онаноирвать на технологии и кликать рекламу 50 раз за день
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.