LINUX.ORG.RU

Подскажите ЯП.


1

3

Есть желание познакомится с новым языком программирования. Цель использования — программирование «для себя». Что хочу — максимум синтаксического сахара, ООП, лёгкие биндинги С либ, мультипарадигменность желательна, есс-но свободный и есс-но с компиляторами, очень желательно и с IDE тоже, под онтопик.

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

Tcl/Tk уже предлагали?

Под него есть IDE?

а это зачем?

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

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

Удобный интерфейс — не всегда тот, к которому ты привык.

ни подсветки синтаксиса

И… всё? Если тебе больше ничего не надо, то ладно, я умываю руки, как скачать gedit ты уже знаешь.

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

автодополнение, подсветка синтаксиса, дебаг режим, консоль вывода ошибок, удобная настройка флагов компиляции из гуя — если всё это вместе присутствует в приличном состоянии и из коробки, это есть минимум, к которым можно работать, если нет — то такая среда разработки не нужна

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

Емакс — не среда разработки. Он редактор. Но из него можно сделать удобную среду, если почитать вики, открыть для себя ELPA и github. В портежах генты целый класс отведён под его расширения

# ls /usr/portage/app-emacs/ | wc -l
195
как думаешь, зачем? ,)

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

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

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

Программа должна поставять всё необходимое из коробки.

Ну емакс и поставляет.

Всё ненужное должно быть выключено, всё нужное включено.

Ну для новичков-то кнопки нужны. А у опытных пользователей они и выключены искаробки, т.к. файл настроек свой.

Не хочу.

Ну это твои проблемы, а не емакса.

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

Но всё равно, она лучше, чем аналогичный код на racket, вами же приведённый.

Чтоа? Он настолько хуже, что это даже описать нельзя. Его распарсить реально в несколько раз труднее. В коде на racket тривиальные аппликации, в коде на скале - куча невнятных лямбд, скобочек, что-то куда применяется/передается (непонятно что и куда, т.к. отступов в отличии от лиспа ставить не принято). Короче тиких ужас. И да, на скале так ирл никто не будет писать, потому что руки за такое говно оторвут.

то как можно описать код на racket я и представить боюсь

На racket-то как раз удовлетворительный, читабельный код - с первого взгляда ясно, что происходит, что к чему применяетсЯ, парсить ничего не нужно (хотя, опять же, ИРЛ так не пишут, как и в случае со скалой). Естественно, я говорю, как человек, который знает и Racket и Скалу. Если ты ракетки не знаешь, что и код тебе понятен не будет, но это вообще верно - если не знаешь языка Х, то код понятен не будет.

Например тот же код на скале с чемоданами и table будет хорошо понятен только в том случае, если ты знаешь case-синтаксис для лямбд (что вообще нетривиально) и соглашения по code-style в котором лямбды-аргументы оборачиваются в {}, а не в ().

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

Это у вас тонкий английскию юмор такой?

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

Знаете, когда я впервые открыл исходники программки на питоне, я почти всё сразу понял, несмотря на то, что питон до этого не то, что не учил, но и в глаза не видел.

Да? Может пояснишь тогда, что значит на питоне «урожай»? А то я все никак не могу разобраться :(

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

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

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

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

если всё это вместе присутствует в приличном состоянии и из коробки

То это говно, а не иде. Все должно быть опциональным, нахуя мне твои гуевые чекбоксы или дебагеры, если, может, я их не хочу? Или хочу поставить какие-то другие?

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

Потому что готовое иде неудобно и малофункционально, очевидно же.

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

Зато через 2 года после изучения лиспа даже близко не могу догадаться что значит «автомобиль» и «сиди диск одноразовой записи» на лиспоязыках.

Фактически, даже обозначения в J более интуитивны: если «{» — выбрать по индексам, то легко предположить, что «{.» — голова (первые N в диадном случае), «{:» — последний элемент списка, а «}.» — хвост.
Но у лисперов священная традиция автомобиля и диска одноразовой записи.

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

обозначения в J более интуитивны: если «{» — выбрать по индексам, то легко предположить, что «{.» — голова (первые N в диадном случае), «{:» — последний элемент списка, а «}.» — хвост.

Ну это уже настолько толсто, что у меня жир с монитора закапал.

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

«автомобиль» и «сиди диск одноразовой записи»

В кложуре этот глюк исправили, там оно называется first и rest соответственно.

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

Тебе непонятна аналогия между «{.» и «}.», или ты просто знаешь, что такое ДИСК ОДНОРАЗОВОЙ ЗАПИСИ, и тебе кажется это обозначение очевидным?

quantum-troll ★★★★★
()
Ответ на: комментарий от ados

Хм, я из лиспов знаком только со схемой и кложурой. Первый Ъ, второй юзабельный.

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

не хочу

Тогда жирнющие жабаидэе и пихтон — твой удел.

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

Да везде есть first и rest. Но нормальные люди пишут car/cdr

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

Тебе непонятна аналогия между «{.» и «}.», или ты просто знаешь, что такое ДИСК ОДНОРАЗОВОЙ ЗАПИСИ, и тебе кажется это обозначение очевидным?

Мне понятно, что ДИСК ОДНОРАЗОВОЙ ЗАПИСИ - так же очевидно, как и {.

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

Так же - то есть никак, если ты заранее не знаешь, что оно обозначает. Так же как «чемоданы», «урожаи» и прочее.

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

Только вот знание того, что такое диск одноразовой записи, ничего не говорит о том, что такое автомобиль. А знание того, что такое «{.» позволяет предположить, что такое «}.», равно как знание, что такое ⌊x⌋, позволяет предположить, что такое ⌈x⌉, или знание, что такое =, позволяет предположить, что такое ≠.

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

Только вот знание того, что такое диск одноразовой записи, ничего не говорит о том, что такое автомобиль.

Почему же? Говорит. car от cdr как раз отличается так же как и {. от .}. Алсо, оно сразу говорит о caar, cddr, cadr, cdar, caaar,...

Именно из-за этого car/cdr и предпочтительнее, чем first/rest.

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

Ну и, да, car/cdr - это не «голова и хвост», а «первый/второй элемент конс-ячейки», которая изначально в лиспе была равна 36-битному машинному слову, а car/cdr - аббревиатура от названия частей, на которые дробилось слово.

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

head & tail отчего то минорити.

«что для одних константа , для других переменная»

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

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

это есть минимум, к которым можно работать, если нет — то такая среда разработки не нужна

Notable Sam Users
Ken Thompson, inventor of Unix and many other things.
Brian Kernighan, of K&R and K&P fame, the ‘K’ in awk, and much more.
Tom Duff (of Duff’s Device and Star Wars' Death Star fame).
Bjarne Stroustrup, inventor of C++.

&

Notable Acme Users
Dennis Ritchie
Russ Cox
Rob Pike (obviously)

всё ещё не достигли твоего уровня требований к среде разработке - им есть куда стремится.

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

head & tail отчего то минорити.

потому что трудно найти head/tail у произвольного графа. Тогда надо fst/scd.

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

да хоть питон(абс точнее)like структурирование через табы(их число уровень) и переводы строк(завершение элемента(возможно составного но уже конструированного через синтаксис)) - важно что бы код был непосредственно в AST форме - что упрощает «программирование программирования» - либо наличие встроенного конвертера в эталонное представаленние .

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

мы про точечные пары. - ну и произвольный граф имеет более одного представления через пары - всяко для эталонности необходимо приводить посредством некоторых «эвристик»

ну а задача (проверки эквивалентности 2ух граффов) известно какого типа/класса/рода

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

ну старпёры, да, крутые мужики, конечно, но гуй, например, они, наверное, никогда и не писали

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

разве? емнип, на коммон лисп такое невозможно, всё равно всё сведётся к префиксной нотации, функциям/макросам да скобочкам

//производных от лиспа не знаю, там может и по-другому

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

разве? емнип, на коммон лисп такое невозможно, всё равно всё сведётся к префиксной нотации, функциям/макросам да скобочкам

Я уже упоминал в этом треде - скобки изоморфны индентации. Так что синтаксис питона и синтаксис лиспа - один и тот же синтаксис.

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

да чхать на скобочки, чему они там изоморфны, это просто пример того от чего в лиспе не избавиться — неважно плохи они, или хороши, важно, что от них не избавиться, точно также как не избавиться от лишних круглых скобок в плюсоподобных языках: зачем писать скобки каждый раз после if while и for и вовсе загадка.

вопрос не в этом: вопрос в том, как в лиспе избавиться от функций, макросов и префиксной нотации?

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

как в лиспе избавиться от функций, макросов и префиксной нотации

Как в си избавиться от указателей?

Как в питоне избавиться от идентации?

Как в хаскеле избавиться от типизации?

Как в С++ избавиться от классов и шаблонов?

Как в lua избавиться от таблиц?

Как в js избавиться от объектов?

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

т.е. чтоб вы не делали на ЛИСПе, всё всё равно сведётся к нечитабельной префиксной нотации и огороду из макросов, с портянками из функций?

ну вот, наконец-то, честный ответ

Как в С++ избавиться от классов и шаблонов?

не пользоваться ими, ваш кэп

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

S-выражения просто напросто лингва франко - а вариантов как(в каком виде) иметь М-выражения было очень много предложенно . - в том числе и используя форматирование лесенкой.

что же касается гуи - как то - когда уже после дельфей - увидил как реализованна автогенерация формы для типа запись ( гуи-визарде)толи оберона толи tk - запомнил на всю жизнь - ибо простая форма -предназначена для ввода /отображения структуры - и вопрос как конкретно располагать хоть и существенен то должен решаться несколько на другом этапе - чем досих пор во многих местах делается ( попиксельное позиционирование это слишком константо-прошитое)

чем примечательны тулзы sam|acme - наличием компактного языка управления и расширяемостью :)

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

ну если пропатчить ридер лиспа для парсинга некоторых инфиксный и многоарных операций/операторов - ага.

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

патч ридер

тот же пролог это лисп- расшерение т.е в прологе в первых версиях был напрямую доступен репл лиспа для трюков.

тот же эрланг это переточеный пролог.

ну ты понял .

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

Java

этот урезок плюсов вы хотите навязать как язык с «максимум синтаксического сахара», ну-ну

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

ну хорошо, допустим, это субъективно, но вопрос-то в топике про удобство для меня, в первую очередь, а уж потом для кого-то ещё

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