В качестве краткого ответа я бы сказал: Да, это действительно.
В качестве длинного ответа я бы сказал: да, он действителен, но есть некоторые важные различия, которые вы также можете описать.
У банки есть некоторые качества, которые сильно отличают ее от драгоценного камня. JAR - это упакованные исполняемые библиотеки, от которых обычно требуется явное объявление зависимости при выполнении программы Java во время вызова (путем объявления jar как зависимости при вызове интерпретатора java). В банке реализована небольшая структура, за исключением нескольких четко определенных мест для файлов (например, структура каталогов должна отражать путь пакета).
Gem - это дескриптор для постоянной установки библиотеки в систему, а также пакет функций, предоставляемый для объявления зависимости во время выполнения. Gem имеет строгий синтаксис контроля версий как часть своего определения, и самоцветы, как правило, распространяются из нескольких централизованных репозиториев, которые тратят приличное количество усилий для обеспечения уникальности в именах гемов. Драгоценные камни могут явно объявить свои зависимости от других драгоценных камней. (Сравните с JAR-файлами, где вы должны убедиться, что у вас есть все зависимости для jar-файла, удовлетворенного во время вызова, а jar-файлы не принимают на себя ответственность за объявление зависимости ИЛИ разрешение). Кроме того, в инструмент gem встроены некоторые дополнительные функции, которые могут быть весьма удобными, например, вы можете объявить исполняемый файл по умолчанию для вызова gem, если пользователь хочет «запустить gem», и вы можете объявить набор для модульного тестирования. для драгоценного камня, чтобы пользователь, устанавливающий драгоценный камень, мог гарантировать его функциональность.
Также вы можете захотеть рассказать своим студентам, что RubyGems - это инструмент, созданный независимо от самого языка Ruby, и что он выигрывает после многих неудобств и жалоб, возникающих из-за управления jar-файлами, которые хорошо проявились в годы разработки Java. .