LINUX.ORG.RU

[для_интереса]Помогите выбрать


0

1

Решил изучить какой-нибудь новый ЯП для интереса, гимнастики для мозгов и ради удовольствия. Таким образом родился небольшой перечень из языков, которые показались наиболее интересными: OCaml, Haskell, Clojure, REBOL2.7/REBOL3, Factor, Eiffel, Open Euphoria. Собственно возник вопрос по поводу того, что именно взять. Круг решаемых задач - гуевые приложение, работа с SDL (или любой подобной библиотекой для 2Д графики), обработка больших матриц и автоматизация расчета экономических моделей, БД (самописные, key-valued). Что можете сказать по поводу этих языков? Какой из них предпочтительней? Заранее спасибо.



Последнее исправление: i_overdose (всего исправлений: 2)

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

Zhbert ★★★★★
()
Ответ на: комментарий от Zhbert

Сейчас этим и занимаюсь (только на python в основном, с ним чаще всего приходится работать), но хочется параллельно что-нибудь поковырять интересное

i_overdose
() автор топика
Ответ на: комментарий от note173

Для гимнастики мозгов — APL :)

ТСу:

Круг решаемых задач - гуевые приложение, работа с SDL (или любой подобной библиотекой для 2Д графики)

Eiffel, Smalltalk, Factor

обработка больших матриц и автоматизация расчета экономических моделей

APL, J, K

БД (самописные, key-valued)

А вот тут Пролог.

buddhist ★★★★★
()

Учи LISP.

В LISP полно работы с DSL (язык специфицированной области).

iZEN ★★★★★
()
Ответ на: комментарий от i_overdose

Таких тракторов я еще не видел :) Изя правильно советует Lisp. Там легко все реализовать самому.

buddhist ★★★★★
()

В смысле гуя можно посмотреть на rebol, clean, k3.

В остальном — см. ответ buddhist.

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

Чем «навороченней» язык, тем, скорее всего, сложнее в нем делать вещи, для которых он не предназначен.

Вообще полезнее всего, на мой взгляд, для каждой задачи (или даже подзадачи, если в одной задаче требуется все перечисленное ТС) выбирать свой (новый для себя) ЯП, наиболее применимый в требуемой области.

anonymous
()
Ответ на: комментарий от Zhbert

Посмотри F#, там и отступы, и по морде за каждый косяк. А питон то, как раз, очень либерален в этом плане.

Norgat ★★★★★
()
Ответ на: комментарий от Zhbert

Учить нужно не язык, а алгоритмы.

Это оффтопик, человек спрашивал про другое.

бьют по морде за любой небольшой косяк

В чем это выражается?

начнешь понимать их на уровне интуиции

Что это значит? По каким факторам пожно отделить «понимание» от «непонимания»?

h0x00
()
Ответ на: комментарий от Zhbert

Брейнфак же.

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

h0x00
()
Ответ на: комментарий от h0x00

Это оффтопик, человек спрашивал про другое.

В каком месте оффтопик? Имелось ввиду, что если знаешь алгоритмы основные, то накодить приложение сможешь на любом языке, без разницы каком. НУ а дальше уже можно лезть вглубь языка и изучать его более сильные стороны.

В чем это выражается?

В паскале, например, весьма сложно допустить небольшой косяк, который в С или С++ искал бы потом 2 часа.

Что это значит? По каким факторам пожно отделить «понимание» от «непонимания»?

Когда смотришь на код, и видишь его струкруту, а не просто набор букв и цифр.

Zhbert ★★★★★
()
Ответ на: комментарий от h0x00

Не смешно, ты с таким заявлением выглядишь глупо и неуместно.

Да ну? Что понимается под «гимнастикой мозгов»? Чем брейнфак не «гимнастика»?

Zhbert ★★★★★
()
Ответ на: комментарий от h0x00

Тем, что они динамические, многомерные массивы в них — основной тип данных (даже некоторая дополнительная теория сформирована) и у них своеобразное сообщество, которое ввело массу новых принципов и алгоритмов в этой области. Для

интереса, гимнастики для мозгов и ради удовольствия

самое то. Если важна производительность — то, разумеется, фортран.

buddhist ★★★★★
()
Ответ на: комментарий от Zhbert

В каком месте оффтопик? Имелось ввиду, что если знаешь алгоритмы основные, то накодить приложение сможешь на любом языке, без разницы каком. НУ а дальше уже можно лезть вглубь языка и изучать его более сильные стороны.

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

В паскале, например, весьма сложно допустить небольшой косяк, который в С или С++ искал бы потом 2 часа.

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

Когда смотришь на код, и видишь его струкруту, а не просто набор букв и цифр.

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

h0x00
()
Ответ на: комментарий от h0x00

Языки программирования, знаете ли, просто огромный пласт знаний, зубрешка пары-десятков алгоритмов не заменит эти знания.

+1

Собственно поэтому я бы еще порекомендовал ТСу книги вроде «Основные принципы языков программирования» и Masterminds of Programming.

buddhist ★★★★★
()
Ответ на: комментарий от Zhbert

Чем брейнфак не «гимнастика»?

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

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

h0x00
()

Круг решаемых задач - гуевые приложение, работа с SDL (или любой подобной библиотекой для 2Д графики)

Явно не функциональщина.

Deleted
()
Ответ на: комментарий от anonymous

Вот меня всегда интересовал вопрос: КАК мне выбрать НОВЫЙ ЯП для какой-то задачи, если я НЕ ЗНАЮ этого языка, его плюсов минусов и особенностей.

Jetty ★★★★★
()

Конечно J. Ну и K для баз.

psv1967 ★★★★★
()
Ответ на: комментарий от h0x00

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

Ой, да ну? Учти, что взглядов на одну проблему может быть несколько. Ты считаешь так, я так.

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

Т.е. ты не согласен, что зная основы, например, ООП, и банальные иф, фор, вайл и т.д., можно легко смотреть на код, написанный на питоне, джаве, С, С++, паскале, делфи и других распространенных языках, и видеть там не кашу их букв, а осмысленный код? Я имел ввиду именно это, ибо ТСу для «гуевые приложение, работа с SDL (или любой подобной библиотекой для 2Д графики), обработка больших матриц и автоматизация расчета экономических моделей, БД (самописные, key-valued)» другого и не нужно. А знает он, как я понял, чуть меньше, чем ничего.

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

Чуть выше написал.

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

Покажи мне, где я говорил про С?

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

Сложный словесный понос, ну да ладно. Если что, я и имел ввиду самые основы, поволяющие видеть структуру кода, а не целый алгоритм всей поделки.

Zhbert ★★★★★
()
Ответ на: комментарий от h0x00

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

Ты на лоре или где?

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

Пытаясь мне доказать, что я глупый и раздражающий, ибо ты мне там что-то «доказал», ты лишь доказываешь, что ты нифига не толераст, так как «есть только две точки зрения - моя и неправильная». Задумайся.

Про брейнфак было сказано в шутку, если чо. man LOR.

Zhbert ★★★★★
()
Ответ на: комментарий от Rzhepish

Был вне зоне доступа, только сегодня приехал :) Пока круг сузился до Clojure, REBOL2.7/REBOL3, Eiffel. Кто нибудь на них писал что-нибудь серьезное? Кстати - Clojure имеет фреймворки для работы с 2D (или лучше аналоги PyGame)? Для Eiffel как я понял с SDL плачевно очень все, придется самому биндинг писать? Или я не прав?

i_overdose
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.