LINUX.ORG.RU

Муки выбора первого юзабельного языка (pascal за язык не считается). Есть два ООП ЯП: лиспы точеные и питоны золоченые...

 , ,


2

5

Решил изучать первый (после псевоязыка: паскаля) ООП ЯП. Всё думаю, куда сесть то: на лиспы точеные или на питоны золоченые? Цели: нейронные сети, работа с БД, ФС, мелкие поделки школьного уровня (типа машинного обучения на SVM).

Какие преимущества и недостатки у того и другого ЯП?

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



Последнее исправление: ymn (всего исправлений: 1)
Ответ на: комментарий от monk

Я больше не советую изучать Python как первый язык, потому что он развивается как-то в стороне от лучших достижений и имеет известные проблемы. Лучше посмотреть в сторону Go, JS, Java в зависимости от сферы применения.

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

Кстати, очень выгодно окупится по деньгам, я серьезно.

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

Полтора безграмотных утёнка это теперь ЛОР?

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

Без джавы (и её библиотек) clojure был бы совсем бесполезным.

Собственно это и есть та единственная причина по которой кложура работает поверх JVM (кстати есть ещё ClojureScript, который сейчас дрифтует в сторону JS-based).

(:troll-mode Именно поэтому на Clojure пишут реальные проекты, а на CL - кластеры метапарадигм, а на Racket - разные курсачи и прочий никому не нужный мусор. )

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

Лучше посмотреть в сторону Go, JS, Java в зависимости от сферы применения.

Java еще может быть.

JS как первый язык вообще крайне вреден.

Go - слишком «свежий» для новичка.

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

а на Racket - разные курсачи и прочий никому не нужный мусор

Например такая симпатичная демка:

http://www.hashcollision.org/whalesong/examples/raphael-demo/raphael-demo.html

Исходник: http://hashcollision.org/whalesong/examples/raphael-demo/raphael-demo.rkt

К слову, Racket->JS преобразователь неплохо обфусцирует исходники :-)

monk ★★★★★
()

Питон, конечно. Вторым бери Си. А третьим уже можно и Лисп.

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

Например такая симпатичная демка:

прочий никому не нужный мусор

Не вижу противоречий.

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

Ок, дай мне нейронные сети на Go, с хорошей документацией.

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

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

Python как первый язык, потому что он развивается как-то в стороне от лучших достижений

Лучше посмотреть в сторону Go

Бггггг.

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

Если брать лисп, который racket, то там также есть наиболее полная система типов и тонны учебной литературы.

Тонна литературы? Где её найти? Только именно по ракету, не по схеме. Речь ведь не о документации?

DarkEld3r ★★★★★
()

после псевоязыка: паскаля

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

компилируется и летает после этого

скобки мне импонируют

C++. Уж всяко лучше петухона.

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

Например такая симпатичная демка:
http://www.hashcollision.org/whalesong/examples/raphael-demo/raphael-demo.html

Error: unable to load http://yandex.st/raphael/1.5.2/raphael.js: unknown error
Stacktrace:
at #<path:/gpfs/main/home/dyoo/work/whalesong-web/examples/raphael-demo/raphael-demo.rkt>, line 15, column 0

отличная реклама рaкету, чо.

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

(по-немецки)

Ну...

Риалм оф ракет тоже весьма специфическая, по моему. В остальном спасибо. Я почему-то думал, что в «How to Design Programs» схема используется. Или там просто не рассматриваются такие нюансы на которых различия были бы видны?

Ну и ты эти книги читал? Они именно про ракет или «более абстрактные»? В смысле, если хочу именно с фичами ракета ознакомиться, то они подойдут?

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

Ну и ты эти книги читал? Они именно про ракет или «более абстрактные»?

Именно про ракет.

В смысле, если хочу именно с фичами ракета ознакомиться, то они подойдут?

Не совсем. Для каждой из этих книг (кроме Realms of Racket) есть специальный язык (подмножество Racket). 90% возможностей языка прекрасно изложены в Racket Guide, а остальные 10% лучше читать по статьям, перечисленным на http://docs.racket-lang.org/reference/doc-bibliography.html .

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

а threads не скейлятся на многопроцессоров

place + thread скейлятся.

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

Именно про ракет.

Получается всё-таки не совсем.

Ну и мне не ради спора, просто не совсем понимаю идею. Да, ракет хорош создания ДСЛ, но зачем для каждой книги свой язык создавать? Ведь когда читаешь (нормальную) литературу по языку, особенно, если не для совсем начинающих, то одновременно и возможности языка изучаешь и «лучшие практики» и всё такое. А тут получается отдельный язык.

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

Ведь когда читаешь (нормальную) литературу по языку, особенно, если не для совсем начинающих, то одновременно и возможности языка изучаешь и «лучшие практики» и всё такое. А тут получается отдельный язык.

Не совсем отдельный. Аналогия примерно с книгой Кернигана и Ричи по отношению к современному Си (в котором есть, например, glib и gobject). Или книги Майерса и Александреску по отношению к современному С++. Или книги по Паскалю при обучении Delphi или FPC.

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

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

не, 1с и прочая бухгалтерия не в счёт, ибо vendor lock-in и могут (по отдельности) внезапно сдохнуть. вот что будет сейчас с 1с на Украине, например?

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

ибо vendor lock-in и могут (по отдельности) внезапно сдохнуть

Так и Java может внезапно сдохнуть. Живёт она на честном слове Oracle.

1с и прочая бухгалтерия не в счёт, ибо vendor lock-in

С чего это? Учебная версия (с ограничением на размер БД) freeware. Платная тоже на самом деле вполне доступна. так что lock in там не больше, чем на Delphi, например.

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

с ним вот это, например.

Проблема с Blender'ом

а так, я ещё не встречал ни одной программы на питоне длиннее 3-х строк, которая бы не имела привычки ВНЕЗАПНО переставать работать.

все фатальные глюки во внешних сишных библиотеках.

достаточно на блендер посмотреть. сишные и плюсовые части работают нормально, зато в питонячей вечно всё через известное место.

Вроде, как и на лиспе

в отличие от лиспа, в питоне динамическое ООП прибито гвоздями, так что нет, питон похуже даже сишки будет. ну и маловменяемые разработчики тоже дело усугубляют: За что я не люблю питонистов.

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

Живёт она на честном слове Oracle.

и Google

так что lock in там не больше, чем на Delphi, например.

Delphi — это вообще классический вендор-лок ин, вендорлокинестей разве что ябл да мс со своими языками. кстати, для дельфи до сих пор, вроде, под онтопик ничего вменяемого нет.

Учебная версия (с ограничением на размер БД) freeware.

микровизуалка тоже, но жизнь шарпа, однако, полностью зависит от МС

next_time ★★★★★
()

nim

уже советовали nim ?

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

к современному Си (в котором есть, например, glib и gobject).

С каких это пор указанные вещи стали частью Си? Ты ещё скажи, что в C++ есть QtCore.

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

PicoLisp тоже лисп.

Пожалуй, PicoLisp больше лисп чем CL или Ракет. Во всяком случае, по духу он ближе к первоисточнику.

Хотя в нём даже массивов нет.

Причем, что удивительно, они там и не нужны.

Зато изучать легко.

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

Без джавы (и её библиотек) clojure был бы совсем бесполезным.

Он и с явой не нужен. Если так уж надо, то лучше дергать яву из PicoLispа ;-)

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

с ним вот это, например.

Блендер, внешняя библиотека. Вот аналог для SBCL

«как и на лиспе, все фатальные глюки во внешних сишных библиотека»

я ещё не встречал ни одной программы на питоне длиннее 3-х строк, которая бы не имела привычки ВНЕЗАПНО переставать работать

Например, Gentoo portage. Она у тебя хоть раз работала не так, как задумано? Или что ты имеешь в виду?

в отличие от лиспа, в питоне динамическое ООП прибито гвоздями

В CL тоже гвоздями. Или что ты имеешь в виду?

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

Гм. Ну скажи, что выведет

(use-package :iterate)
(iter (for i from 1 to 4) 
      (collect i) 
      (when (> i 7) 
          (finally (return i))))

И попробуй объяснить почему именно так. И этот код (пакета iterate) является общепризнанным образцом хорошего кода на Common Lisp.

monk ★★★★★
()
Последнее исправление: monk (всего исправлений: 1)
Ответ на: комментарий от hobbit

С каких это пор указанные вещи стали частью Си? Ты ещё скажи, что в C++ есть QtCore.

Если указанные вещи не считать частью языка, то в указанных мною книжках весь язык Racket. Если же рассматривать язык вместе с распространяемым с ним библиотеками, то, действительно, glib часть Си, а Qt и boost часть Си++.

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

STM — синтаксический сахар для set!-values.

У set!-values есть возможность откатить/повторить транзакцию?

Что уникального в clojure?

Каналы с корутинами (core.async), атомы, агенты и тд. А thread + futures используются редко, слишком низкоуровнево.

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

Или книги Майерса и Александреску по отношению к современному С++

Талмуд и Книго Страшных Колдунств О Которых Вы Боялись Спросить Ребе, бггг

практики как раз по этим книгам

Практики по книгам приводят к цитатам из книг в продукшын коди... Потому что без цитаты автор патча не придумал обоснований, зачем оно именно тут. Например, синглтон, который консидеред хармфул.

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

Если же рассматривать язык вместе с распространяемым с ним библиотеками, то, действительно, glib часть Си, а Qt и boost часть Си++.

Ну буст и Qt с плюсами автоматически в комплекте не идут.

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