Это было странно и для меня;в моем случае это фон C / C ++.
Что меня заинтересовало, так это то, что вы можете значительно сократить время итерации с помощью нескольких настроек рабочей среды.Идея состоит в том, чтобы уменьшить его настолько, чтобы вы могли писать код небольшими порциями и очень часто тестировать его.
При отсутствии проверок времени компиляции: Вы привыкнете к нему,Как и значительный пробел, отсутствие проверки типов во время компиляции просто тает через несколько недель.Трудно сказать, как именно, но, по крайней мере, я могу вам сказать, что это случилось со мной.
По поводу отсутствия интерфейсов: это сложно.Было бы неплохо получить немного больше помощи в больших системах, чтобы напомнить вам о реализации целых интерфейсов.Если вы обнаружите, что вы действительно тратите на это много времени, вы можете написать свои собственные проверки времени выполнения и вставить их в случае необходимости.Например, если вы регистрируете свои объекты у центрального менеджера, это было бы хорошим временем, чтобы убедиться, что объекты соответствуют той роли, которой они подчиняются.
В общем, хорошо иметь в виду, чтоу вас есть приличные способности к отражению.
По поводу отсутствия инкапсуляции : Учитывая, что coffeescript реализует очень хорошую оболочку класса для схемы прототипа, я предполагаю, что вы имеете в виду отсутствие частногопеременные?На самом деле есть несколько способов скрыть детали от клиентов, если вы чувствуете необходимость, и я это делаю;обычно, чтобы не позволить себе выстрелить ногой в будущем.Ключ обычно состоит в том, чтобы спрятать вещи в замыканиях.
Кроме того, взгляните на Object.__defineGetter__
/ Object.defineProperty?
Геттеры и сеттеры могут очень помочь в этих ситуациях.
Об уменьшении времени итерации:
Я использовал встроенный наблюдатель файлов в кофе для компиляции сценариев при изменении.В сочетании со способностью TextMate сохранять все открытые файлы при потере фокуса это означало, что при тестировании требовалось переключиться с textmate на chrome / firefox и перейти на обновление.Довольно быстро.
В проекте node.js я настроил свои представления так, чтобы они просто компилировались и работали на лету, поэтому даже средство просмотра файлов является излишним.Они кешируются в выпуске, но в режиме отладки они всегда перезагружаются с диска, перекомпилируются, и при обнаружении ошибок я просто отображаю их.Поэтому теперь каждые несколько минут я переключаюсь в браузер, нажимаю обновление и вижу, что мой тест запущен, или ошибки компилятора.