Здравствуйте, ML380, Вы писали:
ML>Здравствуйте, silverwolf, Вы писали:
S>>
S>> В том что (в Киеве) человек который знает, что Java — это язык программирование, хочет за эти знания 1+Кбагзов. S>>ML>И получает?
Да, не всегда, но довольно часто. ML> Почему ж тогда все не рвутся в программисты (в том числе и выпускники профильных ВУЗов),
Патамушо, не уверены в себе. Кроме того многие выпускники профильных ВУЗов не знают что джава -- это язык программирования ML> как например, рвутся в фотографы (конкурс порядка 100 чел на место)?
Вот ни разу не замечал такого.
S>>
S>> В том что люди увольняются из компаний, потому что там нет зеленого чая (это реальный факт) S>>ML>Это может быть просто повод. О причинах человек, видимо, решил не распространяться.
Причина была в том что его менеджер имел наглость ему заявить, что контора покупает только самый простой чай/кофе, а ценители изящества могут сами купить себе то что им нравится, благо ЗП позволяет. Разговор был публичный, я знаю нескольких присутствующих (в том числе и "пострадавшего") и не один не сказал что менеджер грубил во время разговора.
У меня нет повода считать что причина была другая.
Здравствуйте, silverwolf, Вы писали:
DB>>Чувак не понимает одного. В современном IT большей части программистов нафиг не нужно знать, чем абстрактный класс отличается от интерфейса. S>Позвольте не согласится. Понимание основ очень важно. Совсем недавно столкнулся с ситуацией: S>Простенькое веб-приложение. Отправляет запрос (запрос №0) на сервер, по приходу ответа, отправляет еще 3 запроса. Проблема в том что для обработки этих запросов необходимы результаты запроса №0. И как разработчик решил эту проблему? … Внимание … Класс в котором статические поля KABOOM!!
Ну давай твою версию: чем абстрактный класс отличается от интерфейса в С++?
Здравствуйте, kaa.python, Вы писали:
DB>>Я и сам в 23 года мог дать фору многим 30летним программистам с 10+ годами опыта работы. И сейчас есть знакомые примерно такого возраста, которые успешно руководят отделами.
KP>И могут дать фору тебе, с твоими 10+ годами, верно?
Есть. Причём ситуация усугубляется тем, что я программирую всё меньше и меньше и всё проще и проще. А всякие молодые начинают знать технологии про которые я даже не слышал
Здравствуйте, silverwolf, Вы писали:
S>Я привел пример (выше в этой ветке), когда продукт нельзя было продавать: S>То есть, по факту, не работало, а этого можно было избежать имея базовое представления о многопоточности и многопользовательских системах.
Я читал. А по факту — не надо было вообще такого разработчика брать на работу. Но работодателю на это пофиг. Найдем полуграмотных студентов, знающих много страшных слов и готовых работать за еду — вот девиз современного работодателя. Никогда не приходилось на собеседованиях слышать: "У вас слишком много опыта, чтобы работать в нашей компании"? Нет? А я такое регулярно выслушиваю вот уже четыре месяца... Пятый пошел.
Здравствуйте, SkyDance, Вы писали:
SD> H>Нет не правы. У меня небыло дома компьютера, когда я занял первое место на республике
SD> По _какой_ республике и в _каком_ году? "Первый парень на деревне, а в деревне один дом" (С)
Я себя деанонимизировать не буду. Год 1996.
SD> Были ли компьютеры у ваших, гм, "конкурентов"? И вообще, о какой олимпиаде речь? О 5м школьном классе ?
Были-ли компьютеры у них дома? А мне почем знать? Знаю, что там были представители двух сильнейших школ с мат.уклоном города-миллионника. Олимпиада среди выпускников. После победы получил приглашение на поступление в тех.вуз без вступительных экзаменов.
Здравствуйте, NikeByNike, Вы писали:
NBN>Ну давай твою версию: чем абстрактный класс отличается от интерфейса в С++?
Абстрактный класс -- это частично-реализованный класс, то есть он может содержать реализацию.
Интерфейс описывает протокол. То есть описывает что должен делать класс который его реализует, но при этом полностью абстрагируется от реализации этого поведения.
В контексте реализации на ЦПП, интерфейс отличается тем что не может содержать деталей реализации (типа полей и реализованных методов). И фактически является скорее шаблоном проектирования.
Здравствуйте, De-Bill, Вы писали:
DB>А что плохого в 23-летних сеньёрах? Я и сам в 23 года мог дать фору многим 30летним программистам с 10+ годами опыта работы. И сейчас есть знакомые примерно такого возраста, которые успешно руководят отделами.
В 23 года программист еще просто физически не может быть адекватным специалистом. Допустим, он что-то там серьезно изучать начал лет в 13 — но ровно тогда же начинали и многие "сеньеры" за 30. Более-менее приличную математическую подготовку он все равно получить мог только в ВУЗе, на первых двух курсах — после чего нужно как раз лет десять опыта, чтобы перевязать теоретические знания с практикой. При этом, с таким коротеньким опытом программист не может научиться адекватно оценивать трудоемкость задач, у него не будет достаточного кругозора для адекватного выбора инструментов под задачу, и у его будет еще слишком много юношеского максимализма — вместо рационального выбора он будет истошно верещать на форумах о том, что "Си круче чем Паскаль", или еще какую чушь в том же роде.
Я работал с самыми разными людьми, с очень разным уровнем подготовки. Видел и очень талантливую молодежь — в том смысле, что очень многообещающую, когда-то потом, в будущем. Но адекватных программистов в 23 года — такого не видел никогда!
Здравствуйте, silverwolf, Вы писали:
NBN>>Ну давай твою версию: чем абстрактный класс отличается от интерфейса в С++? S>Абстрактный класс -- это частично-реализованный класс, то есть он может содержать реализацию. S>Интерфейс описывает протокол. То есть описывает что должен делать класс который его реализует, но при этом полностью абстрагируется от реализации этого поведения.
Ага, только это твои персональные определения не имеющие отношения к С++.
S>В контексте реализации на ЦПП, интерфейс отличается тем что не может содержать деталей реализации (типа полей и реализованных методов). И фактически является скорее шаблоном проектирования.
Нет, точнее это типичный мутант, бессмысленное совмещение понятий из разных областей.
Абстрактный класс — это класс объект которого не может быть создан.
Интерфейс (класса) — это его объявление.
Здравствуйте, silverwolf, Вы писали:
S>Причина была в том что его менеджер имел наглость ему заявить, что контора покупает только самый простой чай/кофе, а ценители изящества могут сами купить себе то что им нравится, благо ЗП позволяет. Разговор был публичный, я знаю нескольких присутствующих (в том числе и "пострадавшего") и не один не сказал что менеджер грубил во время разговора. S>У меня нет повода считать что причина была другая.
Это банально могло быть "последней каплей", которая обрушила лавину терпения. У самого такое было (не по работе).
А может быть банально чел не адекватный. Ну ведь в любой профессии бывают.
Здравствуйте, NikeByNike, Вы писали:
NBN>Здравствуйте, silverwolf, Вы писали:
NBN>>>Ну давай твою версию: чем абстрактный класс отличается от интерфейса в С++? S>>Абстрактный класс -- это частично-реализованный класс, то есть он может содержать реализацию. S>>Интерфейс описывает протокол. То есть описывает что должен делать класс который его реализует, но при этом полностью абстрагируется от реализации этого поведения.
NBN>Ага, только это твои персональные определения не имеющие отношения к С++.
Я не скрываю что это мое понимание, и то что было выше написано это общее из теории ООП.
S>>В контексте реализации на ЦПП, интерфейс отличается тем что не может содержать деталей реализации (типа полей и реализованных методов). И фактически является скорее шаблоном проектирования.
NBN>Нет, точнее это типичный мутант, бессмысленное совмещение понятий из разных областей.
Каких областей?
NBN>Абстрактный класс — это класс объект которого не может быть создан.
Я с ЦПП дано не работал, поэтому вопрос: Из вашего определения получается что простой класс с одним конструктором который бросает исключение -- это абстрактный класс? Ведь если вывалится исключение, то экземпляр не будет создан? Или будет? NBN>Интерфейс (класса) — это его объявление.
А какой смысл сравнивать "Абстрактный класс" и то что вы назвали "Интерфейс класса" (Я помню термин "Объявление класса")? А вот сравнивать "Протокол" (который часто называют интерфейсом, а не "интерфейсом класса") и "Абстрактный класс", на мой взгляд куда логичнее. И именно в этом контексте "интерфейс" используется в начальной статье.
Здравствуйте, ML380, Вы писали:
ML>Здравствуйте, silverwolf, Вы писали:
S>>У меня нет повода считать что причина была другая.
ML>Это банально могло быть "последней каплей", которая обрушила лавину терпения. У самого такое было (не по работе). ML>А может быть банально чел не адекватный. Ну ведь в любой профессии бывают.
Это так забавно, когда тебе рассказывают про твоих знакомых люди которые их не знают и не знают ситуацию
Здравствуйте, Пофигист, Вы писали:
П>Я дико извиняюсь за свою дремучесть, но может кто разъяснит на пальцах мне, сипиписту, чем же у вас явистов и шарпистов так уж принципиально отличаются абстрактный класс от интерфейса? Понаплодили, блин, сущностей зачем-то.
у них нет множественного наследования от классов (наследования реализации), но есть множественное наследование интерфейсов. благодаря этому у них нет проблемы с ромбовой иерархией и виртуального наследования.
Здравствуйте, De-Bill, Вы писали:
DB>А что плохого в 23-летних сеньёрах? Я и сам в 23 года мог дать фору многим 30летним программистам с 10+ годами опыта работы. И сейчас есть знакомые примерно такого возраста, которые успешно руководят отделами.
Сейчас куча старпёров будет доказывать, что их 10 лет опыта программирования на С/C++ не были потрачены зря и несомненно каким-то непонятным способом делают их лучшими специалистами.
Здравствуйте, silverwolf, Вы писали:
S>>>У меня нет повода считать что причина была другая.
ML>>Это банально могло быть "последней каплей", которая обрушила лавину терпения. У самого такое было (не по работе). ML>>А может быть банально чел не адекватный. Ну ведь в любой профессии бывают. S>Это так забавно, когда тебе рассказывают про твоих знакомых люди которые их не знают и не знают ситуацию
Вам, конечно же, виднее
Просто я хочу сказать, что человек не всегда распространяется о своих идеях и проблемах.
Здравствуйте, silverwolf, Вы писали:
S>>>В контексте реализации на ЦПП, интерфейс отличается тем что не может содержать деталей реализации (типа полей и реализованных методов). И фактически является скорее шаблоном проектирования.
NBN>>Нет, точнее это типичный мутант, бессмысленное совмещение понятий из разных областей. S>Каких областей?
Явы, шаблонов, может COM. Но это не С++.
NBN>>Абстрактный класс — это класс объект которого не может быть создан. S>Я с ЦПП дано не работал, поэтому вопрос: Из вашего определения получается что простой класс с одним конструктором который бросает исключение -- это абстрактный класс? Ведь если вывалится исключение, то экземпляр не будет создан? Или будет?
Хорошее замечание. Добавим пункт: на этапе компиляции.
NBN>>Интерфейс (класса) — это его объявление. S>А какой смысл сравнивать "Абстрактный класс" и то что вы назвали "Интерфейс класса" (Я помню термин "Объявление класса")?
Никакого, это ортогональные понятия. О том и речь.
S>А вот сравнивать "Протокол" (который часто называют интерфейсом, а не "интерфейсом класса") и "Абстрактный класс", на мой взгляд куда логичнее.
Не вижу логики, если честно. Протокол, контракт, интерфейс — это то через что автор класса предлагает работать клиенту.
Абстрактный класс — это деталь реализации.
S>И именно в этом контексте "интерфейс" используется в начальной статье.
Начальная статья была, видимо, написана джаваистом, я над тем и посмеялся.
NBN>Ну давай твою версию: чем абстрактный класс отличается от интерфейса в С++?
В плюсах нет такого понятия. Компилятор "не знает" никаких интерфейсов, паттернов и кто такой Александреску и даже Страус Трупп. Чисто семантическое понятие, имеющее отношение к архитектуре. Есть чисто абстрактные классы, есть множественное наследование — хотите делайте интерфейсы, хотите нет. Для плюсов нормальная ситуация.
Он может сколько хочет говорить. Есть спрос на "головоломщиков", есть предложение. Кадровая политика каждой компании индивидуальна и ответственность за кадровые решения несет сама компания. Поучения о том что "какаямододежьпошла", "вотраньшетакогонебыло", "явамговорилчтотакибудет" они всегда были и будут. Не нашел в статье главного — что предлагает автор?
Здравствуйте, Alexander G, Вы писали:
П>>Я дико извиняюсь за свою дремучесть, но может кто разъяснит на пальцах мне, сипиписту, чем же у вас явистов и шарпистов так уж принципиально отличаются абстрактный класс от интерфейса? Понаплодили, блин, сущностей зачем-то. AG>у них нет множественного наследования от классов (наследования реализации), но есть множественное наследование интерфейсов. благодаря этому у них нет проблемы с ромбовой иерархией и виртуального наследования.
Да я в курсе. Но, по-моему, это крайне незначительная ерунда. Как там модно говорить, синтаксический сахар.
Здравствуйте, NikeByNike, Вы писали:
NBN>>>Абстрактный класс — это класс объект которого не может быть создан. S>>Я с ЦПП дано не работал, поэтому вопрос: Из вашего определения получается что простой класс с одним конструктором который бросает исключение -- это абстрактный класс? Ведь если вывалится исключение, то экземпляр не будет создан? Или будет? NBN>Хорошее замечание. Добавим пункт: на этапе компиляции.
И опять неверно. В Дельфи, например, можно создать экземпляр абстрактного класса. Невозможность создания экземпляра абстрактного класса — это фича конкретных языков, которая скорее является следствием других особенностей понимания абстрактных классов в языке.
Здравствуйте, NikeByNike, Вы писали:
NBN>>>Абстрактный класс — это класс объект которого не может быть создан. S>>Я с ЦПП дано не работал, поэтому вопрос: Из вашего определения получается что простой класс с одним конструктором который бросает исключение -- это абстрактный класс? Ведь если вывалится исключение, то экземпляр не будет создан? Или будет? NBN>Хорошее замечание. Добавим пункт: на этапе компиляции.
О, так это не определение, а ваше творчество? А если найти в компиляторе то место которое проверяет создание классов и "подфиксить"? Вам не кажется что
Абстрактный класс -- это частично-реализованный класс
Если оно не корректно, то укажите где.
Но это мы отклоняемся от темы.
NBN>>>Интерфейс (класса) — это его объявление. S>>А какой смысл сравнивать "Абстрактный класс" и то что вы назвали "Интерфейс класса" (Я помню термин "Объявление класса")? NBN>Никакого, это ортогональные понятия. О том и речь.
Почему ортогональные. Скорее параллельные, даже в контексте конкретного языка. Вот только тут другой вопрос: Насколько человек мыслит в ООП, а на сколько в терминах языка? И насколько это хорошо?
S>>А вот сравнивать "Протокол" (который часто называют интерфейсом, а не "интерфейсом класса") и "Абстрактный класс", на мой взгляд куда логичнее. NBN>Не вижу логики, если честно. Протокол, контракт, интерфейс — это то через что автор класса предлагает работать клиенту. NBN>Абстрактный класс — это деталь реализации.
А если посмотреть так: Абстрактный класс -- это частично реализованный протокол.
Абстрактный класс, как и любой другой класс может сам объявлять протокол.
S>>И именно в этом контексте "интерфейс" используется в начальной статье. NBN>Начальная статья была, видимо, написана джаваистом,
По ходу, дотНетчиком. И говорил он в контексте ООП, а не конкретной реализации в конкретном языке. Кстати, есть люди которые отвечают, что интерфейс просто объявляется другим ключевым словом. NBN>я над тем и посмеялся.
Вы очень забавно посмеялись, продемонстрировав что вы более привязаны к конкретной реализации концепции чем в общем к подходу.
Если же вернуться к первоначальной статье, то разница "абстрактный класс/интерфейс" -- это синоним "знание теории" (пусть ответ и будет, в некотором плане, зависеть от сферы деятельность/языка). Понимание этого, кстати, демонстрирует возможность человека к созданию абстракций.