Так как эти языки более высокого уровня
управлять памятью для вас, что бы
вы используете структуры данных для?
Основная причина использования структуры данных не в сборке мусора. Но речь идет о хранении данных способом, который в некотором роде эффективен. Так что самое главное, как вы организуете данные. Это именно то, что язык не может автоматически определить для вас.
Конечно, язык высокого уровня будет поставляться с несколькими предварительно загруженными структурами данных (и вы должны 100% использовать эти предварительно загруженные структуры данных, когда они предоставляются, вместо того, чтобы создавать свои ), но не все структуры данных предоставляются что вам может понадобиться.
Структуры данных каким-то образом организуют хранение памяти, так что алгоритмы, работающие на них, могут быть реализованы, давая эффективные результаты.
Для большинства задач вам не нужно реализовывать свои собственные структуры данных. Но это полностью зависит от того, что вы кодируете.
Я могу понять необходимость очередей
и стеки, но вам когда-нибудь нужно
использовать двоичное дерево в Ruby?
Существует множество примеров использования бинарного дерева, но они не распространены в повседневных проектах, например, вам может понадобиться реализовать кодирование Хаффмана.
Другие структуры данных могут быть использованы для экономии места и быстрого поиска при использовании дерева, или вам может понадобиться хранить МНОГО данных с быстрым поиском с помощью btree. Несколько структур данных имеют специфическое использование и оптимизированы для разных целей. Современный язык или нет, и имеет ли он сборку мусора или нет, это не меняет этого.
Тенденция заключается в том, что пользовательские структуры данных меньше кодируются, а думают меньше. Аналогичный аргумент происходит с общими алгоритмами. В более современных языках, таких как LINQ, вы просто указываете сортировку. Вы на самом деле не говорите, как сортировать.