Разработчик Тибор Лейц представил Copper как язык, которым сам пользуется вместо C. Главная цель проекта — минимализм: синтаксис должен оставаться простым, поведение преимущественно явным, а набор конструкций — достаточно небольшим, чтобы программист мог полностью понять язык. При этом Copper добавляет возможности, которых нет в классическом C.
Среди них — наследование для любых типов, generics, несколько возвращаемых значений, option types, deferred statements и простые итераторы. Определения можно размещать не по порядку использования. Система import устраняет заголовочные файлы, а пространство имён не сводит все объявления к одной глобальной области. Синтаксис выполнен в стиле Ruby; отдельно заявлена быстрая компиляция.
Пример на странице описывает class Point с целочисленными атрибутами x и y. Метод init сохраняет координаты, translate изменяет их на переданные смещения. В main создаётся переменная Point, после чего вызываются инициализация со значениями 3 и 5 и сдвиг по x на единицу. Затем println выводит координаты, а main возвращает 0. Методы вызываются через точку, изменяемые переменные объявляются через var, а тип результата main указывается после имени функции. Импорт стандартной библиотеки записывается как import "std" и находится в конце демонстрационного файла, что иллюстрирует out-of-order definitions.
Copper не позиционируется как обширная экосистема с множеством скрытых механизмов. Напротив, автор подчёркивает, что выбрал знакомые конструкции и явность ради понятности. ООП и обобщённое программирование сочетаются здесь с низкоуровневой нишей C, а не переносят язык в категорию высокоуровневых managed-платформ.
Проект распространяется под лицензией BSD. На представленной странице нет сравнительных бенчмарков, описания модели памяти или совместимости с существующим C-кодом, поэтому заявленную быструю компиляцию и практическую пригодность для чужих проектов из публикации оценить нельзя.