LINUX.ORG.RU

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


1

3

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

★★★★★

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

ибо как же так, ваш ненаглядный лисп

Он не мой ненаглядный. Я на лиспах вообще не пишу. Ни на CL, ни на схеме, ни на кложе. Учитывая, сколь трепетные чувства лисп в тебе будит, он скорее твой ненаглядный.

с мегакрутой макросистемой

О, я понял, это типа подъёбка.

сливает не только по скорости плюсам

А должен не сливать? У нас тут типа специальная олимпиада?

но и по объёму написанного кода на одной и той же задаче

Ты бы еще по объёму хелловорлда языки сравнивал. Возьми реальный проект от 10 kloc хотя бы и попробуй сравни. Но ты ж не будешь: тебе не правду узнать, тебе потроллить.

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

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

Для справки: я использовал/использую в своей деятельности Си, кресты, Ruby, PHP, JS, sh и еще десяток мелких DSLей, как и любой нормальный программист. Понадобится - буду писать на CL. Понадобится - буду писать на ассемблере. Каждому инструменту своё место.

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

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

Для справки: я использовал/использую в своей деятельности Си, кресты, Ruby, PHP, JS, sh и еще десяток мелких DSLей, как и любой нормальный программист.

Дениска, до свидания.

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

также ключевое слово class как отдельная синтаксическая единица ведёт собой более удобную разметку,

Не обязательно, это детали реализации.

всякие плюшки вроде раскраски кода и автодополнение,

CLOS стандарт, часть языка. В емаксе все работает как надо.

синтаксический сахар,

Ой вей. Больше сахара чем в CLOS вообще нигде нет. Кому не хватает, там есть сахар для добавления сахара.

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

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

наконец, оно __выделяется__ среди прочего кода, а не как в лиспах — всё в каше

Если это повтор первого аргумента, то я вам так скажу: в лиспе можно, не за 5 минут, конечно, но за 1-2 часа забабахать такой синтаксис определения классов какой вам захочется. Тот синтаксис, который сделан в CLOS для лиспа естественнее.

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

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

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

что ключевое слово класс будет осилено абсолютно всеми, даже новичками

ключевое слово class как отдельная синтаксическая единица ведёт собой более удобную разметку

Ну тогда у CL более 900 ключевых слов. В том смысле, что все ANSI-совместимые реализации обязаны поддерживать их все и все lisp ide в курсе всех этих слов. И переопределять их всё равно нельзя (по стандарту undefined behaviour)

Ключевые слова относящиеся к классам: http://www.lispworks.com/documentation/HyperSpec/Body/c_object.htm

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

о за 1-2 часа забабахать такой синтаксис определения классов какой вам захочется

даже от скобочек отказаться?

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

скобочек

Вот они и выплыли, тайные причины. Очередной скобочко-хейтер, как это банально.

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

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

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

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

Морда зелёная, ты по существу будешь отвечать, нет? Перестань съезжать с ключевых слов на производительность и обратно, а так прямо и скажи: «я неосилятор и боюсь скобочек». Мы всё поймём, чай не звери. Каждый таким был когда-то.

Если повезёт, поумнеешь лет через пять.

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

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

Они тем более в курсе. Вообще «ключевых слов» в смысле C/C++ в Lisp нет. Есть макросы, функции и «специальные операторы». При этом с точки зрения использования они не различаются: все находятся в одном пакете CL, все используются одинаково.

А так можно договориться, что у C/C++ нет ввода/вывода, ведь ключевого слова writeln (как в Паскале) в ключевых словах нету... Но не думаю, что ты найдёшь программиста на Си, который не слышал про printf.

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

в том же racket есть примеры отказа от скобочек

Ну racket не только lisp-based... там и алгол и брейнфак есть.

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

там и алгол и брейнфак есть.

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

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

Но не думаю, что ты найдёшь программиста на Си, который не слышал про printf.

зато видел одного, который думал, что принтф — это с++, а cout — плюсы, и ведь без книжки не докажешь, кстати пример-то хороший — и printf и cout есть в стдлиб, а до конца понимают как с ними работать не более 50% плюсовиков, а то и все 10%, если считать школоту

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

Только пользоваться не удобно, поэтому никому не нужно

это утверждение годится и про весь Лисп

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

я к сожалению как они «в курсе», я знаю на практике

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

без фигурных скобок

я лично ни за ни против фигурных скобок

лаконично

чем оно лаконичнее Rust?

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

кстати пример-то хороший — и printf и cout есть в стдлиб, а до конца понимают как с ними работать не более 50% плюсовиков

Хм... как правильно работать с ключевыми словами class и virtual и что произойдёт в случае ромбовидного наследования понимают ещё меньше. Так что суть не в том, в какую категорию положили слово (библиотека или часть компилятора).

P.S. «cout есть в стдлиб» утверждение неверно, он в iostream, который в STL. «cout — плюсы» — с этим скорее соглашусь, или ты можешь cout из какого-то ещё языка вызвать?

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

Только пользоваться не удобно, поэтому никому не нужно

это утверждение годится и про весь Лисп

я лично ни за ни против фигурных скобок

Чем же тебе не угодили круглые скобки? Да, пользоваться фигурными вместо круглых в Лиспе можно повсеместно.

На самом деле синтаксис лиспа нацелен на удобство написания макросов. Как только уходишь в «красивый синтаксис», то либо макросы становятся неудобны, либо используешь два разных синтаксиса в макросах и остальной программе. Читать становится тяжелее.

Да. Читать лишние скобки особой проблемы нет. Всё равно читаешь по отступам. Писать — дело привычки.

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

Ну так программисты тоже вкурсе.

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

Для какой читабельности? Во всех языкох используются скобочки/идентация и именно для читабельности. Без скобок будет мешанина говна.

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

А что значит какой-нибудь template и как его использовать знает меньше, намного меньше 10%. Хотя это вроде никакая не библиотечная функция, а вполне by design фича. Что на это скажешь?

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

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

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

А на кложуре:

(def x (atom 11))
(swap! x {11 4, 21 4, 41 5, 71 1})
PolarFox ★★★★★
()
Ответ на: комментарий от next_time

Так как ты писал о Си, то приведу пример на Си.

int main(int argc, char** argv)
{
  if (argc > 1)
    {
      puts(argv[1]);
    }
}
/* Итого: 12 скобочек. */
(defun main (argc argv)
  (if (> argc 1)
      (print (nth 1 argv))))
;; Итого: 12 скобочек.

Причины скобочкохейта со стороны сишника непонятны.

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

Стоит заметить, что присутствующие здесь благородные доны ведут бессмысленный спор с автором топика «Есть ли под С++ годные библиотеки для веб девелопмента?». Придержите бисер.

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

автором топика «Есть ли под С++ годные библиотеки для веб девелопмента?». Придержите бисер.

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

Придержите бисер.

псевдоэлитизм оставьте, пожалуйста, при себе

бессмысленный спор

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

tazhate, если вас не затруднит, снесите пожалуйста, в этой теме весь не соответствующий правилам форума оффтоп

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

если вас не затруднит, снесите пожалуйста, в этой теме весь не соответствующий правилам форума оффтоп

то есть все твои сообщения? Пусть тогда и тебя забанит, чего уж там.

Waterlaz ★★★★★
()

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

ты придумал C++.

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

то есть все твои сообщения?

да, половину моих сообщений, потому, что они были ответами неадекватному анонимусу - столько страниц и всё впустую

Пусть тогда и тебя забанит, чего уж там.

как пожелает администрация

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

Чем же тебе не угодили круглые скобки?

дело не в скобках как таковых, скобки были лишь примером

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

В точку. Именно про это я и говорю: лисп очень плохо читабелен. Да, в теории на нём можно писать красивый код, но на практике, 90% кода на лиспе представляет собой вот примерно такую нечитабельную портянку:

http://benchmarksgame.alioth.debian.org/u32/program.php?test=fannkuchredux&am...

заметьте, никакого «сахара» здесь толком не используется, сравните, например, с: http://benchmarksgame.alioth.debian.org/u32/program.php?test=fannkuchredux&am...

а ведь это одна и та же программа

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

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

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

а ведь это одна и та же программа

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

Пример нормального кода на лисп:

http://dwim.hu/darcsweb/darcsweb.cgi?r=LIVE hu.dwim.web-server;a=headblob;f=/...

или

http://dwim.hu/darcsweb/darcsweb.cgi?r=LIVE hu.dwim.wiki;a=headblob;f=/source...

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

он хуже той же скалы по читабельности и скорости разработки кода

Со скалой тяжело сравнивать. Лисп на JVM — closure. Сахара там сильно больше, чем в CL.

А скалы, компилируемой в нативный код нету... :-(

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

в scala и в ocaml его оказалось больше

да... Приторно сладко.

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

Именно про это я и говорю: лисп очень плохо читабелен.

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

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

но на практике, 90% кода на лиспе представляет собой вот примерно такую нечитабельную портянку:

Код на шутауте не имеет никакого отношения к коду на каком-либо из представленных на шутауте языков. Собственно, как раз наоборот - 99% идеоматического кода в реальности написано _не так_ как на шутауте. Потому чо на шутауте выдрачивают миллисекунды, чего в реальности просто не нужно практически никогда.

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