Как вы по-разному программируете на динамических языках? - PullRequest
30 голосов
/ 18 декабря 2008

Как может кто-то, кто действительно знает, как использовать преимущества динамических языков программирования, подходить к программированию иначе, чем тот, кто работает на статическом языке?

Я знаком со всей дискуссией о статической и динамической типизации, но это не то, к чему я стремлюсь. Я хотел бы обсудить методы решения проблем, которые практичны в динамических языках, но не в статических.

Большая часть кода, написанного на динамических языках программирования, не сильно отличается от кода, написанного на статических языках программирования. Как говорится, вы можете писать на Фортране на любом языке, и многие пишут. Но некоторые люди используют динамические языки программирования для решения проблем способом, который нелегко перевести на, например, C ++. Каковы некоторые из их методов?

Какие хорошие ресурсы обсуждают, как использовать динамические языки программирования? Не книги по синтаксису языка или справочнику по API, но ресурсы по подходам к решению проблем, использующие преимущества динамических языковых возможностей.

РЕДАКТИРОВАТЬ (05.01.2009): я ценю ответы ниже, но они, кажется, не объясняют огромный рост производительности, который, по словам защитников динамического языка, они испытывают.

Ответы [ 15 ]

1 голос
/ 09 апреля 2009

У меня нет конкретного ответа, только предложение: взгляните на книгу " Шаблоны проектирования в Ruby ": она охватывает большинство классических шаблонов дизайна (а-ля Gamma et al. и не только) и кратко выразить их в Ruby :)

1 голос
/ 09 апреля 2009

Джон, только основываясь на вашем обновлении от 01.05.09, вы можете найти AMOP интересным чтением, а также подробностями о вашей мысли Это довольно шуметь, но в конце концов многие хорошие динамические идеи начались там. Поэтому, если вы можете наслаждаться (или пройти мимо) этим аспектом, авторы обсуждают динамические аспекты, необходимые и используемые для чего-то подобного. Это довольно мощный материал.

1 голос
/ 05 января 2009

больше библиотек и более важных больше используемых библиотек .

Я предполагаю, что "Duck Typing", обычно ассоциируемый с динамическими языками, помогает значительно упростить код и значительно упрощает написание универсального кода. Вы не ограничены строгой иерархией классов и, таким образом, можете легче составлять компоненты из разных библиотек вместе.

0 голосов
/ 14 октября 2009

Для меня это оборотная скорость. Динамические языки, которые я использую (Python и немного JavaScript на данный момент), интерпретируются. Это означает, что я могу испытывать вещи на лету. Если я хочу посмотреть, как ведет себя определенная часть API, я могу просто пару минут взломать интерпретатора.

Если бы я хотел сделать то же самое на языке, подобном C #, мне пришлось бы запустить VS, создать проект, а затем скомпилировать его. Если я хочу протестировать часть более крупного программного обеспечения, над которым я работаю, мне, вероятно, придется скомпилировать его, что может занять много лет. К счастью, в .Net я могу загружать сборки из большого проекта в IronPython и получать некоторые из тех же преимуществ (то есть быстрое тестирование различных частей API) интерпретируемых языков.

0 голосов
/ 19 декабря 2008

Динамические языки способны выполнять код, который был создан во время выполнения. Это очень опасно, если внедрен вредоносный код. Но очень мощный, если вы можете дезинфицировать окружающую среду.

Я думаю, что люди из Javascript делают это, выполняя файлы JSON.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...