Динамический язык для изучения ради любопытства

Это своего рода вопрос "лучшего языка", но, надеюсь, с достаточным поворотом, чтобы сделать его стоящим.

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

Дело в том, что моей мотивацией является не обязательно создание каких-либо "реальных" проектов или проектов, которые интегрируются с другими системами, а скорее просто изучение.

С учетом сказанного, для кого-то только знакомые языки, такие как те, что я упомянул, и, возможно, игнорируя безвестность и отсутствие поддержки..

  • Какой динамический язык будет самым большим отъездом?
  • Что представило бы самые новые концепции?
  • Какой пример динамических языков?

9 ответов

Решение
  • Какой динамический язык будет самым большим отъездом?
  • Что представило бы самые новые концепции?

Я думаю, что это будет включать в себя схемы, Эрланг и Оз

  • Какой пример динамических языков?

Я бы сказал, Ruby и Python

Функциональные языки (LISP, Scheme и т. Д.) Всегда стоит проверить. Они могут быть одними из самых больших отъездов.

JavaScript - отличная ступенька для перехода от C-арены к функциональной. Оттуда вы можете возиться с JQuery, который, хотя и не является языком, заставляет вас делать что-то непроцедурным образом.

Другой часто пропускаемый язык - это SQL. Очевидно, что это нишевый язык, и, как отмечает Джош, на самом деле не "динамичный", но глубокое понимание того, как работают языки на основе множеств, действительно может улучшить кодера.

Будьте осторожны, если вы много "учитесь", вы можете разочароваться в старых языках.

Я бы предложил изучить IronPython. Как язык это все еще будет значительным уходом для вас, но вы сможете использовать все, что вам знакомо в.NET Framework. (Я обычно думаю, что это хорошая идея, чтобы попытаться радикально изменить только один аспект развития за раз... прорабатывать различные аспекты по одному, и вы всегда будете довольны частью того, что вы делаю, что поможет вам быстрее освоить новую часть, ИМО.)

Кроме того, с помощью C# 4 вы сможете вызывать IronPython из своего кода C#, в том числе с использованием его динамических функций.

Я бы предложил любой диалект Lisp или Smalltalk. Они динамичны и сильно повлияли на дизайн других, более распространенных языков. Они также включают интересные понятия, которых нет в других языках.

Другой интересный динамический язык - Lua.

Трудно сказать, это определенно вопрос личного вкуса во многих отношениях. Мне нравится изучать Python, но я уверен, что вы могли бы узнать столько же хороших вещей от Ruby о динамически типизированном языке.

Если вы привыкли к C и C#, то любой язык с динамической типизацией станет отправной точкой. Поэтому я говорю, что вы должны использовать Python, потому что это то, что мне нравится, и, надеюсь, вам тоже понравится. Если вы начинаете использовать его и ненавидите, попробуйте что-нибудь другое (например, Ruby, Perl, PHP и т. Д.).

Я бы сказал, что Лисп соответствует большинству, если не всем, ваших критериев. Это определенно большой отход от C/C++ и C#. В нем много новых концепций, и многие утверждают, что трудно найти более динамичный язык.

Если бы не Лисп, я бы сам пошел на Руби.

Мне придется голосовать за Common Lisp здесь. Это очень динамичный язык, который можно адаптировать практически ко всему. Вы получаете не только функциональное программирование, но и ОО, и даже процедурное, если хотите. И макросы на Лиспе очень интересны для изучения, так как, насколько мне известно, ни у одного другого языка нет аналога.

Кроме того, разработка в функциональном стиле, как правило, помогает развитию и на других языках. Например, я заметил, что я делаю ОО в основном с неизменяемыми объектами, благодаря концепциям, на которые влияют Лисп и Схема. И с этим я заметил улучшение стабильности и ремонтопригодности моих приложений OO. Просто мои два цента.

Если вы действительно хотите сойти с ума, но хотите, чтобы вещи были хотя бы немного знакомыми (я знаю, это звучит как противоречие, но это правда), посмотрите на F#. Это язык с выводом типа, но он поддерживает множество динамических свойств типа. Это функциональный язык, построенный поверх CLR, так что вы получаете полное использование объектной системы.Net, что здорово. Поскольку это функциональный язык, есть достаточно новых концепций, чтобы по-настоящему работать ваш мозг.

Если вы действительно хотите пойти на "самый большой отъезд", Clojure может быть интересен. Это диалект Lisp, построенный на JVM. Он получает довольно серьезное внимание как в мире Java, так и в Lisp. Это может удовлетворить ваши цели.

Я долгое время работал на C++ и C#, а недавно начал экспериментировать и изучать другие языки. Я играл с Руби некоторое время и мне это нравилось, но это было не то, что я хотел.

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

Мне действительно нравится этот язык до сих пор. Прошло всего около месяца, и синтаксис до сих пор иногда дает мне понять, но я действительно вижу силу сопоставления с образцом и с энтузиазмом пишу его снова. Сначала я боролся с концепцией того, что все не изменчиво. Но это было в основном потому, что я "вырос" на C# и C++. C# - отличный язык и имеет несколько удивительных инструментов, но вы действительно развлекаетесь с некоторыми другими языками, особенно с Erlang. Только не ожидайте получить работу в качестве разработчика Erlang на полный рабочий день. (По крайней мере пока).

Для всех, кто интересуется, мой хобби-проект - это многопользовательское приложение для iPhone, подключающееся к серверу Erlang. Для разработчика Windows это стало серьезным изменением. Но это обновило мою страсть к программированию, которая действительно была моей целью.

Другие вопросы по тегам