Здравствуйте, Тёмчик, Вы писали:
Тё>Т.е. у них слабые программисты сделали API на уровне школьное сочинение "как я провёл лето". А ты почему-то априори записал всех плюсников в "сильные" а неплюсников в "слабые".
Когда писали STL не было. Или был, но "сырой", например. А в чём проблема с изменениями в API. Ты его на века гвоздями приколачиваешь?
Тё>Какой C#? Это типа серьёзные программисты завязаны на форточку?
CADы и игры чаще да, чем нет. Но я C# для примера привёл.
Тё>Ты путаешь навык обходить грабли укуренного языка с умением дизайнить архитектуру и применять алгоритмы. Всё это вот с граблями- от непоследовательности и противоречивости C++, а не признак "настоящейности" программиста.
Вот для меня Python непоследовательный и противоречивый. Потому что я его плохо знаю. Для тебя C++. Архитектура и алгоритмы идут параллельно языкам. Тут ты прав.
Тё>Я правильно всё понял- отобранные программисты забивают гвозди микроскопом. Дальше уже непринципиально, какой именно марки микроскоп.
Отобранные программисты решают поставленные задачи наиболее подходящим инструментом. А не строят резюме или экспериментируют с новыми модными фреймворками.
Здравствуйте, sergey2b, Вы писали:
S>Здравствуйте, IID, Вы писали:
S>я сейчас пишу на Си но на easyelectronics есть люди которые еще пишут на Pascal
S>скажите пожалуйста, а вы знаетте какие нибудь дешовые микроконтролеры, что бы у них было 128k RAM и больше и частота 24 Мгц и выше
ESP32 конечно, девборда стоит ~ 6$ (сам чип еще дешевле), полмегабайта памяти и много флеш памяти, 160-240 МГц, питон есть
Здравствуйте, ned, Вы писали:
Тё>>Т.е. у них слабые программисты сделали API на уровне школьное сочинение "как я провёл лето". А ты почему-то априори записал всех плюсников в "сильные" а неплюсников в "слабые".
ned>Когда писали STL не было. Или был, но "сырой", например. А в чём проблема с изменениями в API. Ты его на века гвоздями приколачиваешь?
Тем более, зачем они плюснутый класс экспортировали в API? Не от большого ума. Типа «мы крутые плюсныки, круче нас только яйца всмятку».
Тё>>Какой C#? Это типа серьёзные программисты завязаны на форточку?
ned>CADы и игры чаще да, чем нет. Но я C# для примера привёл.
Для меня плюсник, завязанный на форточку (WINAPI, пончик)- хреновый плюсник. Говнокодер. Код должен собираться и работать на 3 основных платформах как минимум (а возможно ещё и на консоли).
Тё>>Ты путаешь навык обходить грабли укуренного языка с умением дизайнить архитектуру и применять алгоритмы. Всё это вот с граблями- от непоследовательности и противоречивости C++, а не признак "настоящейности" программиста.
ned>Вот для меня Python непоследовательный и противоречивый. Потому что я его плохо знаю. Для тебя C++. Архитектура и алгоритмы идут параллельно языкам. Тут ты прав.
Ты почему-то нападаешь на меня что я «плохо знаю C++». И тут же камин аут что make_unique затащили в стандарт только в 2014г. Это не показатель непоследовательности и непротиворечивости? И ты не указал, как можно было обойтись без make_unique- значит ты не понял его смысл?
Тё>>Я правильно всё понял- отобранные программисты забивают гвозди микроскопом. Дальше уже непринципиально, какой именно марки микроскоп.
ned>Отобранные программисты решают поставленные задачи наиболее подходящим инструментом. А не строят резюме или экспериментируют с новыми модными фреймворками.
Единственным инструментом, который они типа знают. Зашоренные с отсутствием кругозора.
Здравствуйте, mmu, Вы писали: mmu>Вот примеры:
А Джава или Сисярп магическим образом находят все зависимости, угадывая мысль программиста?
mmu>(CAD, gamedev, telco, trading) — это на любителя
Еще автомотив и аероспейс в этом списке. Но, видимо, тоже копейки и на любителя. Но вот ынтырпрайз и веб любят все, да?
Здравствуйте, Тёмчик, Вы писали:
Тё>Тем более, зачем они плюснутый класс экспортировали в API? Не от большого ума. Типа «мы крутые плюсныки, круче нас только яйца всмятку».
Тема, ты дурак или прикидываешься? string и vector — это стандартные типы C++, примерно как String и List в твоей любимой яве. Или ты их тоже в API не будешь использовать?
Тё>Для меня плюсник, завязанный на форточку (WINAPI, пончик)- хреновый плюсник. Говнокодер. Код должен собираться и работать на 3 основных платформах как минимум (а возможно ещё и на консоли).
Это твои личные проблемы. Код должен решать реальные задачи, а не удовлетворять твоим вкусам.
Тё>Ты почему-то нападаешь на меня что я «плохо знаю C++».
Так ты это явно тут демонстрируешь.
Тё>И тут же камин аут что make_unique затащили в стандарт только в 2014г. Это не показатель непоследовательности и непротиворечивости?
make_unique — это сахар. Без него спокойно можно жить.
Тё>И ты не указал, как можно было обойтись без make_unique- значит ты не понял его смысл?
Или он не захотел обсуждать очевидные вещи.
Тё>Единственным инструментом, который они типа знают. Зашоренные с отсутствием кругозора.
Ты много видел хороших программистов, которые знают единственный инструмент?
Здравствуйте, Lexey, Вы писали:
L> Тема, ты дурак или прикидываешься? string и vector — это стандартные типы C++, примерно как String и List в твоей любимой яве. Или ты их тоже в API не будешь использовать?
API предоставляет фабрику для его обьектов и максимум что- интерфейс к аллокатору/деаллокатору. Ну почему я должен, как школьнику, обьяснять очевидные вещи? Таким как ты только из кубиков лего собирать
Тё>>Для меня плюсник, завязанный на форточку (WINAPI, пончик)- хреновый плюсник. Говнокодер. Код должен собираться и работать на 3 основных платформах как минимум (а возможно ещё и на консоли).
L>Это твои личные проблемы. Код должен решать реальные задачи, а не удовлетворять твоим вкусам.
У меня нет проблем. Иногда сталкиваюсь с поделиями рукожопых что только под форточкой работают- приходится брезгливо потерпеть 5 минут.
Тё>>Ты почему-то нападаешь на меня что я «плохо знаю C++».
L>Так ты это явно тут демонстрируешь.
Ок. Надо будет- подтяну.
Тё>>И тут же камин аут что make_unique затащили в стандарт только в 2014г. Это не показатель непоследовательности и непротиворечивости?
L>make_unique — это сахар. Без него спокойно можно жить.
Ты либо трусы надень, либо крестик сними. Меня за неиспользование Make_unique тут грвзью поливают, а оно вон как оказывается.
Тё>>И ты не указал, как можно было обойтись без make_unique- значит ты не понял его смысл?
L>Или он не захотел обсуждать очевидные вещи.
Или не знает. Как многие слились на развороте строки.
Тё>>Единственным инструментом, который они типа знают. Зашоренные с отсутствием кругозора.
L> Ты много видел хороших программистов, которые знают единственный инструмент?
Ни одного. Ты к ним не относишься.
Здравствуйте, Тёмчик, Вы писали:
Тё>API предоставляет фабрику для его обьектов и максимум что- интерфейс к аллокатору/деаллокатору.
Ты, похоже, наглухо укушен бандой GoF и явой. Какие в пень фабрики? Их может вообще не быть. А аллокаторы (не, я подозреваю, что ты что-то свое имеешь в виду, а не то, что в плюсах под этим понимают) наружу выставляют крайне редко.
Тё>Ну почему я должен, как школьнику, обьяснять очевидные вещи? Таким как ты только из кубиков лего собирать
Я не знаю, кому и чего ты там должен, но, судя по уровню твоих высказываний, только доверчивым школьникам тебе и можно пытаться что-то объяснять. Ибо, более-менее взрослый тебя просто пошлет нафиг с твоими "объяснениями".
Тё>У меня нет проблем.
А мне видится, что есть.
Тё>Иногда сталкиваюсь с поделиями рукожопых что только под форточкой работают- приходится брезгливо потерпеть 5 минут.
Ну, с одним твоим поделием мы тут уже познакомились. У меня стажеры лучше на плюсах пишут.
Тё>Ок. Надо будет- подтяну.
Вот, когда подтянешь, тогда и рассуждай на темы правильности выставления стандартных типов через плюсовые API.
Тё>Ты либо трусы надень, либо крестик сними. Меня за неиспользование Make_unique тут грвзью поливают, а оно вон как оказывается.
Тебя грязью полили не за неиспользование make_unique, а за то, что ты передавал голый владеющий указатель в метод emplace_back, который может память перевыделять, и, соответственно, кидать исключения. make_unique — это всего лишь один из способов решения проблемы.
С тем же успехом можно было явно завернуть указатель в unique_ptr: unique_ptr<T>(new T) или push_back использовать вместо emplace_back.
Тё>Или не знает. Как многие слились на развороте строки.
Кто, многие? Большинство там просто в остроумии решило поупражняться, придумывая возможные каверзные варианты.
Тё>Ни одного. Ты к ним не относишься.
Разумеется. Тебе не светит меня увидеть из Австралии.
Здравствуйте, Тёмчик, Вы писали:
Тё> API предоставляет фабрику для его обьектов и максимум что- интерфейс к аллокатору/деаллокатору. Ну почему я должен, как школьнику, обьяснять очевидные вещи? Таким как ты только из кубиков лего собирать
А как ты строчку передашь? А массив? Указателями в стиле голого C? А вернёшь как?
Фабрики любят городить бывшие джависты там где они совершенно не нужны.
Тё>У меня нет проблем. Иногда сталкиваюсь с поделиями рукожопых что только под форточкой работают- приходится брезгливо потерпеть 5 минут.
Мне знакомый клавиатуру подарил вчера с русскими буковками. Дочке в русской школе задания делать. Так вот там все Windows клавиши вырваны с корнем. Ты тоже из таких ненавистников?
Тё>>>И ты не указал, как можно было обойтись без make_unique- значит ты не понял его смысл?
Не нужно обходиться. Копируешь и вставляешь проект если твой компилятор его не поддерживает. Ссылку я приводил. Там всё разжёвано.
Тё>Или не знает. Как многие слились на развороте строки.
Ну это смешно. Это настолько заезженная задачка что стыдно не знать. Даже если туп (или rusty как модно у нас оправдываться) и решить за пару минут не можешь. Первая задачка в любой книжке по подготовке к собеседованиям. Могу подарить пару если хочешь
Здравствуйте, Lexey, Вы писали:
Тё>>API предоставляет фабрику для его обьектов и максимум что- интерфейс к аллокатору/деаллокатору.
L> Ты, похоже, наглухо укушен бандой GoF и явой. Какие в пень фабрики? Их может вообще не быть. А аллокаторы (не, я подозреваю, что ты что-то свое имеешь в виду, а не то, что в плюсах под этим понимают) наружу выставляют крайне редко.
Разные dll могут линковаться к разным версиям С dll и C++ dll. Это если там и там C++. Это если там и там C++ — уже привет грабли с выделением в одном аллокаторе, а попыткой удаления в другом. Но API как бы подразумевает максимальную открытость. Ты похоже с C++ толком и не работал, не знаю чем ты вообще занимаешься на работе
Тё>>Ну почему я должен, как школьнику, обьяснять очевидные вещи? Таким как ты только из кубиков лего собирать
L>Я не знаю, кому и чего ты там должен, но, судя по уровню твоих высказываний, только доверчивым школьникам тебе и можно пытаться что-то объяснять. Ибо, более-менее взрослый тебя просто пошлет нафиг с твоими "объяснениями".
Я и не обьясняюсь перед баранами Только лишнее подтверждение моим наблюдениям- процент программистов не зависит от языка, но в некоторых нишах накапливается отстойничек тех, кого в более модные проекты не берут.
Тё>>У меня нет проблем.
L>А мне видится, что есть.
Тё>>Иногда сталкиваюсь с поделиями рукожопых что только под форточкой работают- приходится брезгливо потерпеть 5 минут.
L>Ну, с одним твоим поделием мы тут уже познакомились. У меня стажеры лучше на плюсах пишут.
Наверное, умные стажеры. Умнее тебя например
Тё>>Ок. Надо будет- подтяну.
L>Вот, когда подтянешь, тогда и рассуждай на темы правильности выставления стандартных типов через плюсовые API.
Заставь дурака богу молиться- лоб расшибет. Это про авторов "плюсовые API"
Тё>>Ты либо трусы надень, либо крестик сними. Меня за неиспользование Make_unique тут грвзью поливают, а оно вон как оказывается.
L>Тебя грязью полили не за неиспользование make_unique, а за то, что ты передавал голый владеющий указатель в метод emplace_back, который может память перевыделять, и, соответственно, кидать исключения. make_unique — это всего лишь один из способов решения проблемы.
L>С тем же успехом можно было явно завернуть указатель в unique_ptr: unique_ptr<T>(new T) или push_back использовать вместо emplace_back.
Т.е. я зря бездумно использовал новый для меня метод emplace_back вместо привычного push_back. Если "emplace_back+ make_unique" это то, чем "улучшили" C++, то это же ппц. Что там за травокуров набрали в комитет?
Тё>>Или не знает. Как многие слились на развороте строки. L>Кто, многие? Большинство там просто в остроумии решило поупражняться, придумывая возможные каверзные варианты.
У тебя грамматическая ошибка в слове "остроумии".
Тё>>Ни одного. Ты к ним не относишься.
L>Разумеется. Тебе не светит меня увидеть из Австралии.
По твоим заявлениям- типичный говнокодер на аутсорсе за 3 рубля пучок.
Здравствуйте, ned, Вы писали:
ned>Ну это смешно. Это настолько заезженная задачка что стыдно не знать. Даже если туп (или rusty как модно у нас оправдываться) и решить за пару минут не можешь. Первая задачка в любой книжке по подготовке к собеседованиям. Могу подарить пару если хочешь
Со строкой задачка то простая, но если годами не работать с нуль-терминированными строками (что норма для питона, явы, c++), то такой вопрос может поставить в тупик и нужно будет дополнительное время переключить контекст. Строка, которая не хранит длину, это ж цирк с конями, если разобраться, кому нафиг такое надо? Любой язык программирования после си начинает с того а как мы со строками работать то будем и у всех другой ответ, чем у си.
Ну ладно, я то с такими строками всё ещё работаю (у меня ж си), так что для меня пример такой заезженной задачки — это breadth-first search в графе. Оно, вроде, примитивно, когда знаешь, а когда внезапно первый раз надо придумать самому — наступает ступор. И таких задачек куча, к повседневной жизни отношения не имеют, решения в голове не задерживаются дольше недели, надо спецом учить к собеседованиям.
Здравствуйте, aik, Вы писали:
aik>И таких задачек куча, к повседневной жизни отношения не имеют, решения в голове не задерживаются дольше недели, надо спецом учить к собеседованиям.
Согласен со всем.
Если на собеседование идёшь с целью пройти, а не развлечься, то нужно готовиться. А эту задачку сложно пропустить. Она везде, на всех ресурсах. Вместе с бинарным поиском, обходом графа, отзеркаливанием дерева и т.п.
Можно включить cowboy mode и завалиться на собеседование в Гугль/ФБ/Амазон прямо с работы, не повторив теорию и не порешав задачки, но результат будет предсказуем. Таковы уж правила игры
Здравствуйте, ned, Вы писали:
ned>Здравствуйте, Тёмчик, Вы писали:
Тё>> API предоставляет фабрику для его обьектов и максимум что- интерфейс к аллокатору/деаллокатору. Ну почему я должен, как школьнику, обьяснять очевидные вещи? Таким как ты только из кубиков лего собирать
ned>А как ты строчку передашь? А массив? Указателями в стиле голого C? А вернёшь как?
Прикинь- такой API будет работать не только между прилагой и плагином, скомпиленными с той же версией C dll, и обязательно dynamically-linked оно и с static, и с go, и с питоном полетит. Даже с жаваскриптом
ned>Фабрики любят городить бывшие джависты там где они совершенно не нужны.
Я задолго до жава открыл для себя GoF
Тё>>У меня нет проблем. Иногда сталкиваюсь с поделиями рукожопых что только под форточкой работают- приходится брезгливо потерпеть 5 минут.
ned>Мне знакомый клавиатуру подарил вчера с русскими буковками. Дочке в русской школе задания делать. Так вот там все Windows клавиши вырваны с корнем. Ты тоже из таких ненавистников?
Форточка недружелюбна к программисту. Все через задницу, к сожалению.
Тё>>>>И ты не указал, как можно было обойтись без make_unique- значит ты не понял его смысл?
ned>Не нужно обходиться. Копируешь и вставляешь проект если твой компилятор его не поддерживает. Ссылку я приводил. Там всё разжёвано.
Но там и emplace_back не нужен. Знаешь DRY principle?
Тё>>Или не знает. Как многие слились на развороте строки.
ned>Ну это смешно. Это настолько заезженная задачка что стыдно не знать. Даже если туп (или rusty как модно у нас оправдываться) и решить за пару минут не можешь. Первая задачка в любой книжке по подготовке к собеседованиям. Могу подарить пару если хочешь
Т.е. без книжки ты б не придумал?
Здравствуйте, aik, Вы писали:
aik>Со строкой задачка то простая, но если годами не работать с нуль-терминированными строками (что норма для питона, явы, c++), то такой вопрос может поставить в тупик
Может быть, добавить задачку на нахождение индекса элемента в массиве? Я то думаю, оно слишком просто, а вдруг кого срежет? Я тут после парочки опытных с отличным резюме уже не знаю, чему удивляться.
aik>Ну ладно, я то с такими строками всё ещё работаю (у меня ж си), так что для меня пример такой заезженной задачки — это breadth-first search в графе. Оно, вроде, примитивно, когда знаешь, а когда внезапно первый раз надо придумать самому — наступает ступор.
Там нужно использовать стек (структуру данных). Боюсь, для отметившихся тут переворачивальщиков это гарантированный meltdown.
aik> И таких задачек куча, к повседневной жизни отношения не имеют
Имеют- везде, где работа с данными (бэкенд). Ну и у игроделов тоже.
Здравствуйте, Тёмчик, Вы писали:
aik>> breadth-first search в графе. Оно, вроде, примитивно, когда знаешь, а когда внезапно первый раз надо придумать самому — наступает ступор. Тё>Там нужно использовать стек (структуру данных). Боюсь, для отметившихся тут переворачивальщиков это гарантированный meltdown.
Здравствуйте, ned, Вы писали:
ned>Можно включить cowboy mode и завалиться на собеседование в Гугль/ФБ/Амазон прямо с работы, не повторив теорию и не порешав задачки, но результат будет предсказуем. Таковы уж правила игры
Ну чего сразу ковбой. Эти правила — они ж не везде такие, часто обходятся без графов. Я просто спрашиваю заранее компанию напрямую или знакомых кто туда собеседовался, и уже от этого пляшу, а не так что пока не вызубрю теорию графов — к снаряду и не подходи.
Здравствуйте, aik, Вы писали:
aik>Ну чего сразу ковбой. Эти правила — они ж не везде такие, часто обходятся без графов. Я просто спрашиваю заранее компанию напрямую или знакомых кто туда собеседовался, и уже от этого пляшу, а не так что пока не вызубрю теорию графов — к снаряду и не подходи.
Вот в эти три без "графов" никак. В компаниях поменьше задачки годами не меняются. Знакомый — лучший вариант. У него интерес обычно свой На худой конец и glassdoor поможет.
Здравствуйте, Тёмчик, Вы писали:
Тё>cout << api->getVersion()
Хорошо тут константная строка. А если нет? Как передать временную строку? Городить xxx(char* str, size_t maxSize)?
Тё>Прикинь- такой API будет работать не только между прилагой и плагином, скомпиленными с той же версией C dll, и обязательно dynamically-linked оно и с static, и с go, и с питоном полетит. Даже с жаваскриптом
Во-первых, с питоном не полетит без пинка. Обёртку всё равно писать (или автогенерить). Во-вторых, обычно попытки сделать что-то универсальное подходящее любому сферическому коню в вакууме заканчиваются плохо. Premature pessimization в чистом виде.
Тё>Я задолго до жава открыл для себя GoF
А я открыл Alexandrescu задолго до GoF. Но фанатом шаблонов в ненужных местах не стал.
Тё>Форточка недружелюбна к программисту. Все через задницу, к сожалению.
Мне все равно. Что Windows, что Linux. Везде свои особенности.
Тё>Но там и emplace_back не нужен. Знаешь DRY principle?
Там не к месту. Вот если бы ты вместо указателя сам объект конструировал на месте был бы нужен.
Тё>Т.е. без книжки ты б не придумал?
Вот точно не вспомню, но я эту или очень похожую задачу решил ещё на олимпиаде в школе на Turbo C
Здравствуйте, ned, Вы писали:
Тё>>cout << api->getVersion()
ned>Хорошо тут константная строка. А если нет? Как передать временную строку? Городить xxx(char* str, size_t maxSize)?
Паттерн Visitor. Это не только название из банды четырех, а ещё и полезная вещь.
Тё>>Прикинь- такой API будет работать не только между прилагой и плагином, скомпиленными с той же версией C dll, и обязательно dynamically-linked оно и с static, и с go, и с питоном полетит. Даже с жаваскриптом
ned>Во-первых, с питоном не полетит без пинка. Обёртку всё равно писать (или автогенерить). Во-вторых, обычно попытки сделать что-то универсальное подходящее любому сферическому коню в вакууме заканчиваются плохо. Premature pessimization в чистом виде.
Обертку к чистому C писать всяко легче, чем трахаться с конфликтующими C dll в процессе.
Тё>>Я задолго до жава открыл для себя GoF
ned>А я открыл Alexandrescu задолго до GoF. Но фанатом шаблонов в ненужных местах не стал.
При чём тут "ненужных местах"? Вот обьекты C++ в ненужных местах- признак говнодизайна. И потом чувак ещё на митапе хвастается наивностью.
Тё>>Форточка недружелюбна к программисту. Все через задницу, к сожалению.
ned> Мне все равно. Что Windows, что Linux. Везде свои особенности.
grep в форточке как сделаешь? А эти её api с пончиками.
Тё>>Но там и emplace_back не нужен. Знаешь DRY principle?
ned>Там не к месту. Вот если бы ты вместо указателя сам объект конструировал на месте был бы нужен.
Ну и чего докопались? Песец какая страшная ошибка.
Тё>>Т.е. без книжки ты б не придумал?
ned>Вот точно не вспомню, но я эту или очень похожую задачу решил ещё на олимпиаде в школе на Turbo C
Она на олимпиадную не тянет. Разве для 3-классника.