Там внутри таблица связных списков поверх массива с ресайзом этого самого массива, в ходе которого элементы могут быть заново переразложены по спискам с пересчетом хэшкодов со случайной солью. То есть, никто не гарантирует, что при пересчете элементы хэш-таблицы «случайно» не обменяются хэшкодами.
Давайте вот прям на примере. Я вот тут делал тупенький вебинар для пары друзей с ответом на вопрос «как работает это ваше машинное обучение» — www.youtube.com/watch?v=1B6-aH25EU8
По пути демонстрируется сборка и проверка решения с помощью REPL. Это не Юпитер, это обычный емакс с лиспом.
Ну вот смотрите. Приходите вы и на вас смотрит 50 пар глаз из которых интересно вас слушать хорошо если 10-ку. Если вы первую лекцию посвятите тому как открыть IDEA, как в ней создать проект, что такое «скомпилировать», то на следующую к вам уже придет не 50 человек, а 25 (я напоминаю, что это вчерашние дети и подростки).
Альтернативный вариант — вы приходите, запускаете ОДНУ программу с минимальным интерфейсом и начинаете объяснять простейшие принципы показывая выполнение по одной команде с мгновенной реакцией и результатом. Потом подлкючаете черепашку и начинаете ей рисовать что-нибудь интересное по пути объясняя как вводимые команды влияют на поведение черепашки. Я вам гарантирую, что все 50 пар глаз будут наблюдать за «магией».
Чтобы заинтересовать нужно быть немножко фокусником и REPL позволяет им стать.
А вот потом уже практическая часть, IDE, компиляция и домашние задания сдаваемые через github. Потому что стало понятно и интересно.
Собственно, вы сами упомянули IDEA. Посмотрите на то, что предлагает сам JetBrains, они пришли к примерно такому же подходу — www.jetbrains.com/pycharm-edu
Я строил курс обучения вокруг REPL.
Он позволяет тупо открыть его на проекторе и показывать вживую как работает код с практически мгновенной обратной связью и мгновенными ответами на вопросы студентов.
А если подключить turtle graphics, который как раз заточен под репл, то все становится совсем-совсем хорошо.
Может вы просто не умеете готовить? Или в Unity плохо приготовленный ECS.
Крайне успешно использую собственный ECS с расширениями в своем домашнем велосипеде (не на юнити).
Честно говоря, не знаю что за проблемы у Unity со спрайтами и чем они вообще могут мешать ECS'у. И почему 3д-объекты в этом плане должны отличаться от спрайтовых.
UPD github.com/Microsoft/referencesource/blob/60a4f8b853f60a424e36c7bf60f9b5b5f1973ed1/mscorlib/system/collections/generic/dictionary.cs#L386
З. Ы. Блокировка на делегате — это совсем жесть, конечно.
По пути демонстрируется сборка и проверка решения с помощью REPL. Это не Юпитер, это обычный емакс с лиспом.
UPD Что не отменяет удобства REPL для кучи других задач.
Альтернативный вариант — вы приходите, запускаете ОДНУ программу с минимальным интерфейсом и начинаете объяснять простейшие принципы показывая выполнение по одной команде с мгновенной реакцией и результатом. Потом подлкючаете черепашку и начинаете ей рисовать что-нибудь интересное по пути объясняя как вводимые команды влияют на поведение черепашки. Я вам гарантирую, что все 50 пар глаз будут наблюдать за «магией».
Чтобы заинтересовать нужно быть немножко фокусником и REPL позволяет им стать.
А вот потом уже практическая часть, IDE, компиляция и домашние задания сдаваемые через github. Потому что стало понятно и интересно.
Собственно, вы сами упомянули IDEA. Посмотрите на то, что предлагает сам JetBrains, они пришли к примерно такому же подходу — www.jetbrains.com/pycharm-edu
Он позволяет тупо открыть его на проекторе и показывать вживую как работает код с практически мгновенной обратной связью и мгновенными ответами на вопросы студентов.
А если подключить turtle graphics, который как раз заточен под репл, то все становится совсем-совсем хорошо.
Честно говоря, сложно представляю себе нормальную реализацию на языке в котором нормальные массивы придется подключать через numpy.
Крайне успешно использую собственный ECS с расширениями в своем домашнем велосипеде (не на юнити).
Честно говоря, не знаю что за проблемы у Unity со спрайтами и чем они вообще могут мешать ECS'у. И почему 3д-объекты в этом плане должны отличаться от спрайтовых.
UPD Я не уверен, что это даже тот же самый пул, но мало ли :)