Концепт - это просто функция, принимающая тип и возвращающая булевое значение - соответствует ли тип набору требований. Плюс немного сахарка чтобы этим было удобно пользоваться. Говорить о них в категориях метатипов (в отличие от трейтов) мешает их "утиность" и ленивость. В качестве доказательства - функция, принимающая значение типа T, ограниченного концептом C, должна быть корректной относительно T, а не C.
Погодите, task это тип возвращаемого значения, которое содержит coroutine_handle<promise>, являющуюся по сути указателем на фрейм корутины (полностью сгенерированный компилятором), содержащий promise. Разработчик нигде не обязан кастить coroutine_handle<promise> в coroutine_handle<void> или обратно, по крайней мере до тех пор, пока не захочет смешивать разнотипные корутины между собой.
Эти 2 "таски" делают разные вещи, под ними внутри генерируются разные типы "стейт машин", но для наблюдателя их тип одинаковый. А вот поведение при исполнении - разное.
и что что поведение разное? Типы же не стираются, вся типизация описана в task<T>. Как минимум при использовании корутин мы нигде не обязаны восстанавливать T из возвращаемых корутиной значений, это само по себе является весьма однозначным критерием отсутствия стирания типов.
вы спорите об эффективности LSP исходя из предположения, что перед нами всегда стоит задача, которую он решает. Спор же был как раз не о таких случаях. Какой смысл в LSP если мы вообще не собираемся использовать потомка в качестве родителя? Наследование ведь может являться и просто деталью реализации объекта.
LSP это рекомендация по проектированию архитектуры приложения. Она не диктует ни то, что такое наследование, ни то, как оно может применяться. Повторюсь: я говорил про общий случай, а не распространенную конкретику.
Простейший пример на c++:
class Derived : Base {};
Ну-ка, кто скажет почему при таком наследовании нет полиморфизма?
Наследование описывает отношение "является" между двумя объектами
Нет, это полиморфизм описывает отношение "является". Наследование именно про переиспользование логики и данных, в общем случае объект потомка не обязан "являться" корректным экземпляром родителя.
как я понял, задача в общем виде - есть N мьютексов, защищающих M переменных, при этом иногда может потребоваться доступ сразу к нескольким переменным, защищенным разными мьютексами. В с++ мы можем просто сделать std::lock на несколько мьютексов, не боясь deadlock'а, а потом свободно использовать все защищенные ими переменные.
Грубо говоря, возможно в rust нужен некоторый метод, который по аналогии с std::lock залочит сразу несколько мьютексов через deadlock avoidance алгоритм и вернет кортеж ссылок на unwrapped значения. А может быть он уже существует и надо лишь его найти.
А следовательно, Медведев очень немало сделал для развития информационных технологий в России. Прошу вас, не надо посмеиваться над человеком, который внимательно относился к нуждам IT-отрасли.
вот если бы он это сделал за пару месяцев, а не десятков лет, был бы другой разговор
вот с одной стороны, хочется посмотреть сколько они там "оценят", "проанализируют", "выявят", "скоординируют", "подготовят" и "разработают". А с другой смотришь на роскомпозор и думаешь - пусть лучше просто бабло пилят и вообще ничего не делают...
Тезис: "вы плохой программист если просто следуете бумажке по пунктам". Доказательство: "смотрите, вот вам бумажка, в которой по пунктам написано что надо делать чтобы быть хорошим программистом". Ирония
Неожиданно, что пошли навстречу сообществу и прислушались к комментариям. Все таки побольше людей теперь смогут воспользоваться.
недоприслушались всё-таки - хоть 50к, хоть 100к это мало из ~2млн айтишников в стране. Насколько я знаю, у большинства IT-специалистов есть либо "высшее", либо "профильное" образование, но не "высшее профильное".
Собрать команду из десятка осиляторов за 21 день, начать лепить IT-продукт и зарегистрироваться как IT-компания тоже просто так не выйдет. И за примерами далеко ходить не надо - даже яндексу несколько лет назад понадобилась формальная реорганизация чтобы получить статус IT-компании.
Ну и конечно же "официально работающих в российских компаниях" тоже сильно сужает выборку и, что хуже, создает прецедент когда сотрудники будут выбирать компанию не по принципу "больше ЗП", а по принципу "здесь дадут отсрочку и льготную ипотеку а там нет".
Это всего за два месяца. А еще это больше, чем у нас подготавливают за год. А еще как правило уезжают не джуны, а миддлы/сеньоры. А еще обычно мало кто возвращается.
Думаете, если бы это всё не имело столь существенного значения, стало бы правительство вводить налоговые и ипотечные льготы для и без того относительно зажиточного пласта работников?
ну вы перечисляете страны куда едут ради воды и песка. А я вот например уже годами мечтаю по европе поездить, и кажется приехать туда на ПМЖ проще чем туристом...
по оценкам РАЭК за март и апрель страну покинут 110-170к айтишников, их в России всего порядка 2 млн. И в апреле бегство не закончится. Не похоже на "незначительную часть".
В США полицейский может просто застрелить тебя если ты на нервах сделаешь не то движение при задержании. И это законно, ничего ему за это не будет. Но тут мы обобщать не будем, правда?
разница не в том, что в россии нет полицейского произвола, а в том, что такие случаи не получат широкую огласку
не остаться без работы для опытного IT-специалиста не проблема, спрос только растет, особенно сейчас когда все кто может бежит лишь бы куда. Опасение в том, что раньше российские IT-шники получали "неплохо" именно из-за конкуренции зарубежных компаний на нашем рынке. Сейчас эти зарубежные компании рвут партнерские отношения и десять раз подумают прежде чем вернуться, а если и будут возвращаться, то закладывая значительно более высокие риски, в счет зарплаты местных сотрудников конечно же. С ослаблением конкуренции из-за рубежа доход IT-шников будет стремиться к суровым российским реалиям, и так недавно пробившим новое дно.
сидит такой молодой IT-специалист скажем в Таджикистане, и думает "блин, я могу попытаться мигрировать скажем в Чехию или Польшу, а могу в Россию, даже не знаю что выбрать..."
"как красиво преподнести новость о том, что с начала года покупательская способность рубля упала на треть"
Какой-то ментальный фристайл начался...
Концепт - это просто функция, принимающая тип и возвращающая булевое значение - соответствует ли тип набору требований. Плюс немного сахарка чтобы этим было удобно пользоваться. Говорить о них в категориях метатипов (в отличие от трейтов) мешает их "утиность" и ленивость. В качестве доказательства - функция, принимающая значение типа
T
, ограниченного концептомC
, должна быть корректной относительноT
, а неC
.Погодите,
task
это тип возвращаемого значения, которое содержитcoroutine_handle<promise>
, являющуюся по сути указателем на фрейм корутины (полностью сгенерированный компилятором), содержащийpromise
. Разработчик нигде не обязан каститьcoroutine_handle<promise>
вcoroutine_handle<void>
или обратно, по крайней мере до тех пор, пока не захочет смешивать разнотипные корутины между собой.и что что поведение разное? Типы же не стираются, вся типизация описана в
task<T>
. Как минимум при использовании корутин мы нигде не обязаны восстанавливать T из возвращаемых корутиной значений, это само по себе является весьма однозначным критерием отсутствия стирания типов.вы сами-то в это верите? Или это с позиции человека, который не работал на с++ достаточно, чтобы даже освоить основы с++11?
вы спорите об эффективности LSP исходя из предположения, что перед нами всегда стоит задача, которую он решает. Спор же был как раз не о таких случаях. Какой смысл в LSP если мы вообще не собираемся использовать потомка в качестве родителя? Наследование ведь может являться и просто деталью реализации объекта.
LSP это рекомендация по проектированию архитектуры приложения. Она не диктует ни то, что такое наследование, ни то, как оно может применяться. Повторюсь: я говорил про общий случай, а не распространенную конкретику.
Простейший пример на c++:
Ну-ка, кто скажет почему при таком наследовании нет полиморфизма?
Нет, это полиморфизм описывает отношение "является". Наследование именно про переиспользование логики и данных, в общем случае объект потомка не обязан "являться" корректным экземпляром родителя.
как я понял, задача в общем виде - есть N мьютексов, защищающих M переменных, при этом иногда может потребоваться доступ сразу к нескольким переменным, защищенным разными мьютексами. В с++ мы можем просто сделать std::lock на несколько мьютексов, не боясь deadlock'а, а потом свободно использовать все защищенные ими переменные.
Грубо говоря, возможно в rust нужен некоторый метод, который по аналогии с std::lock залочит сразу несколько мьютексов через deadlock avoidance алгоритм и вернет кортеж ссылок на unwrapped значения. А может быть он уже существует и надо лишь его найти.
вот если бы он это сделал за пару месяцев, а не десятков лет, был бы другой разговор
вот с одной стороны, хочется посмотреть сколько они там "оценят", "проанализируют", "выявят", "скоординируют", "подготовят" и "разработают". А с другой смотришь на роскомпозор и думаешь - пусть лучше просто бабло пилят и вообще ничего не делают...
Тезис: "вы плохой программист если просто следуете бумажке по пунктам". Доказательство: "смотрите, вот вам бумажка, в которой по пунктам написано что надо делать чтобы быть хорошим программистом". Ирония
недоприслушались всё-таки - хоть 50к, хоть 100к это мало из ~2млн айтишников в стране. Насколько я знаю, у большинства IT-специалистов есть либо "высшее", либо "профильное" образование, но не "высшее профильное".
Собрать команду из десятка осиляторов за 21 день, начать лепить IT-продукт и зарегистрироваться как IT-компания тоже просто так не выйдет. И за примерами далеко ходить не надо - даже яндексу несколько лет назад понадобилась формальная реорганизация чтобы получить статус IT-компании.
Ну и конечно же "официально работающих в российских компаниях" тоже сильно сужает выборку и, что хуже, создает прецедент когда сотрудники будут выбирать компанию не по принципу "больше ЗП", а по принципу "здесь дадут отсрочку и льготную ипотеку а там нет".
Это всего за два месяца. А еще это больше, чем у нас подготавливают за год. А еще как правило уезжают не джуны, а миддлы/сеньоры. А еще обычно мало кто возвращается.
Думаете, если бы это всё не имело столь существенного значения, стало бы правительство вводить налоговые и ипотечные льготы для и без того относительно зажиточного пласта работников?
ну вы перечисляете страны куда едут ради воды и песка. А я вот например уже годами мечтаю по европе поездить, и кажется приехать туда на ПМЖ проще чем туристом...
по оценкам РАЭК за март и апрель страну покинут 110-170к айтишников, их в России всего порядка 2 млн. И в апреле бегство не закончится. Не похоже на "незначительную часть".
разница не в том, что в россии нет полицейского произвола, а в том, что такие случаи не получат широкую огласку
не остаться без работы для опытного IT-специалиста не проблема, спрос только растет, особенно сейчас когда все кто может бежит лишь бы куда. Опасение в том, что раньше российские IT-шники получали "неплохо" именно из-за конкуренции зарубежных компаний на нашем рынке. Сейчас эти зарубежные компании рвут партнерские отношения и десять раз подумают прежде чем вернуться, а если и будут возвращаться, то закладывая значительно более высокие риски, в счет зарплаты местных сотрудников конечно же. С ослаблением конкуренции из-за рубежа доход IT-шников будет стремиться к суровым российским реалиям, и так недавно пробившим новое дно.
Трамп помнится попытался. Получилась эхо-камера для тех, кто не согласен с пропагандой более распространенных соцсетей, хах
сидит такой молодой IT-специалист скажем в Таджикистане, и думает "блин, я могу попытаться мигрировать скажем в Чехию или Польшу, а могу в Россию, даже не знаю что выбрать..."