LINUX.ORG.RU

Фраза Пола Грэма


1

0

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

The great languages have been the ones that good programmers designed for their own use-- C, Smalltalk, Lisp. The languages that were consciously designed for "average" programmers (Cobol, Pascal, Ada) have tended to be evolutionary dead ends.

http://www.paulgraham.com/design.html

ЗЫ: К Cobol, Pascal, Ada нужно добавить Java и C#.

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

Ну правильно, большинство ЛОРовцев — школьники, которые юзают Ъ-редактор, вторая часть — админы, которые разрабатывают скрипты в 200 строк длиной. vim здесь рулит, ага.

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

> После такого вот: "Because making programs short is what high level languages are for" можно дальше и не читать. Или читать, но только чтоб посмеяться.

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

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

>Мне кажется или у тебя раньше было прямо обратное мнение, неоднократно тобой отстаиваемое на L.O.R.?

vsl вернулся??!

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

Например автодополнение работает безотказно , про рефакторинг лучше промолчу :-)
Хотя есть вещи которые мне очень нравятся еклипсе , но нет в сликэдите .

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

> Например автодополнение работает безотказно

Да, автодополнение в CDT не супер. Но мне бы хватило, если бы не баг с extern "C"

> про рефакторинг лучше промолчу :-)

И что, рефакторингом в VSE в самом деле можно пользоваться? o_O

> Хотя есть вещи которые мне очень нравятся еклипсе , но нет в сликэдите

?

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

Они что, туда в Eclipse уже Internet Explorer встроили?

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

>а браузер, отличный от w3m-ного убожества там появился? В Eclipse есть

Ага, ну давайте теперь в Eclipse встроим Gnome и будем радоваться.

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

>Ну правильно, большинство ЛОРовцев — школьники, которые юзают Ъ-редактор, вторая часть — админы, которые разрабатывают скрипты в 200 строк длиной. vim здесь рулит, ага.

http://www.linux.org.ru/view-message.jsp?msgid=1677654

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

ЛОР - это сайт пользователей Linux, а уж кто им пользуется - уже другой вопрос (хотя программисты все равно в большинстве). Я конечно уважаю Ваше мнение о том, что популярность IDE надо оценивать по опросам домохозяек, шахтеров и администрации президента, т.к. их выбор не будет зацикливаться на стереотипах и привычках пользователей Linux, но я считаю этот подход ошибочным.

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

>говорит будто лисп два месяца назад увидел.

Ага, и "теплое сообщество пых-пых кодеров" О_о Хотя может так требует новый Эксперимент...

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

ну да.

А как вот это прикажешь оценивать?

2+2 на питоне и будет 2+2

на лиспе = (+ 2 2)

Вроде на питоне проще.

А если заглянуть в питоново дерево, то увидим вот чо: ./parse_python.py | echo "2 + 2" [257, [266, [267, [268, [269, [326, [303, [304, [305, [306, [307, [309, [310, [311, [312, [313, [314, [315, [316, [317, [2, '2']]]]], [14, '+'], [314, [315, [316, [317, [2, '2']]]]]]]]]]]]]]]]]], [4, '']]], [0, '']] ['symbol=file_input', ['symbol=stmt', ['symbol=simple_stmt', ['symbol=small_stmt', ['symbol=expr_stmt', ['symbol=testlist', ['symbol=test', ['symbol=or_test', ['symbol=and_test', ['symbol=not_test', ['symbol=comparison', ['symbol=expr', ['symbol=xor_expr', ['symbol=and_expr', ['symbol=shift_expr', ['symbol=arith_expr', ['symbol=term', ['symbol=factor', ['symbol=power', ['symbol=atom', ['token=NUMBER', 'value=2']]]]], ['token=PLUS', 'value=+'], ['symbol=term', ['symbol=factor', ['symbol=power', ['symbol=atom', ['token=NUMBER', 'value=2']]]]]]]]]]]]]]]]]], ['token=NEWLINE', 'value=']]], ['token=ENDMARKER', 'value=']]

вторая строчка в аутпуте - просто предсталение цифирок выше.

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

т.е. Отформатировано:

./parse_python.py | echo "2 + 2"

[257, [266, [267, [268, [269, [326, [303, [304, [305, [306, [307, [309, [310, [311, [312, [313, [314, [315, [316, [317, [2, '2']]]]], [14, '+'], [314, [315, [316, [317, [2, '2']]]]]]]]]]]]]]]]]], [4, '']]], [0, '']]

['symbol=file_input', ['symbol=stmt', ['symbol=simple_stmt', ['symbol=small_stmt', ['symbol=expr_stmt', ['symbol=testlist', ['symbol=test', ['symbol=or_test', ['symbol=and_test', ['symbol=not_test', ['symbol=comparison', ['symbol=expr', ['symbol=xor_expr', ['symbol=and_expr', ['symbol=shift_expr', ['symbol=arith_expr', ['symbol=term', ['symbol=factor', ['symbol=power', ['symbol=atom', ['token=NUMBER', 'value=2']]]]], ['token=PLUS', 'value=+'], ['symbol=term', ['symbol=factor', ['symbol=power', ['symbol=atom', ['token=NUMBER', 'value=2']]]]]]]]]]]]]]]]]], ['token=NEWLINE', 'value=']]], ['token=ENDMARKER', 'value=']]

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

Анонимный брат, опубликуй-ка parse_python.py Сдается мне, передергиваешь ты слегонца.

И обясни, причем тут вообще свертка грамматики.

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

> Анонимный брат, опубликуй-ка parse_python.py Сдается мне, > передергиваешь ты слегонца.

Отсюда: http://roman.gritsulyak.googlepages.com/

А пример у Норвига еще был.

Гуглится по Python for lisp programmers.

> И обясни, причем тут вообще свертка грамматики. > tailgunner (*) (10.02.2008 21:54:38)

Это к тому что простота языка определяется AST.

При буквальном понимании AST - как реализовано в машине - спорно.

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

> Это к тому что простота языка определяется AST.

Аха, и совершенно так случайно у Лиспа самый простой AST :D

Почему не количеством токенов? Хотя бы количеством инструкций VM?

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

Говорите что угодно, но факт останется фактом - самые сложные алгоритмы на Лиспе занимают неприлично мало строк; настолько мало, что даже не веришь, что это и есть та самая программа. А на других языках - горы кода. Продолжайте мерить, у кого короче 2*2, пишите на Яве спагетти из классов и методов, с Питоном развлекайтесь. А раздувание синтаксиса, свойственное скриптовым языкам, только ускоряет вбивание бывших функций Си, а язык мощнее не делает.

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

> Eclipse + CDT знимает 70 мегабайт. Даже если учесть JRE, ты ошибся на полрядок-два.

Полтора года назад на p4-3.2/512mb в эклипсе плюсатые программы можно было только редактировать. Отключив автокомпит, т.к. он всё равно не работал. При компиляции лезло в своп.

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

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

Опыт Руслана Косолапова (grundik.livejournal.com) показывает, что успешно программировать на лиспе можут даже обезъяны. Опыт многих людей показывает, что найти вменяемого плюсатого программиста взамен ушедшего - это на грани фантастики.

> И каким боком тут может пригодиться тормозной интерпретируемый Лисп?

Не знаю, я использую быстрый компилятор Лиспа

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

И вообще - я не буду ради питоновых отступов покупать широкоформатный монитор в три версты.

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

> я не буду ради питоновых отступов покупать широкоформатный монитор в три версты.

"if you need more than 3 levels of identation, you're screwed anyway" (c) Linus Torvalds. Если в твой теперешний монитор не влезают 3 уровня отступов, скажу одно - не фиг программировать на мобиле :D

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

>> Eclipse + CDT знимает 70 мегабайт. Даже если учесть JRE, ты ошибся на полрядок-два.

>Полтора года назад на p4-3.2/512mb в эклипсе плюсатые программы можно было только редактировать

1.5 года назад - это какой CDT, 3.1? В CDT4 дела намного лучше. В CDT5 будут еще лучше.

Кстати, 70М - это на диске

> При компиляции лезло в своп

Странно, если учесть, что в процессе компиляции Eclipse не участвует :D Впрочем, при достаточно большой и криво сделанной Си++-программе это возможно.

> Опыт многих людей показывает, что найти вменяемого плюсатого программиста взамен ушедшего - это на грани фантастики.

А что опыт говорит по поводу вменяемых Лисповых прогеров? Ничего? Я так и думал.

tailgunner ★★★★★
()

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

The great languages have been the ones that good programmers designed for their own use-- C, Smalltalk, Lisp. The languages that were consciously designed for "average" programmers (Cobol, Pascal, Ada) have tended to be evolutionary dead ends.

>http://www.paulgraham.com/design.html

>ЗЫ: К Cobol, Pascal, Ada нужно добавить Java и C#.

xTERM, глубокость меня просто убивает. Бывают цитатники, которые собирают именно хорошие высказывания (как этот: http://www.cs.kuleuven.ac.be/~dirk/quotes.html в моём случае), а бывают такие, которые тащат всё подряд, что матчится под кейворд. И это дискредитирует цитатник в целом.

Насчёт Ады совершенно мимо. Или, например, о SmallTalk не все Лисперы долюбливают. А тут, смотрите-ка, great language. Зыбко это всё.

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

> 1.5 года назад - это какой CDT, 3.1?

Хз

> В CDT4 дела намного лучше. В CDT5 будут еще лучше.

Может, стоит подождать CDT6? Который к столетию Революции выпустят?

> Кстати, 70М - это на диске

А кого такие объёмы сейчас волнуют? :) Впрочем, про тот эклипс: даже редактировать текст программ было некомофортно, пока памяти 1 гб не стало и все фенечки не поотключал, из-за которых эклипс вообще имело смысл ставить. Емакс, впрочем, на многокилометровых плюсатых текстах тоже не подарок, но всё равно лучше.

> Странно, если учесть, что в процессе компиляции Eclipse не участвует :D

Конечно. Он просто тихим сапом всю оперативку съедает.

> Впрочем, при достаточно большой и криво сделанной Си++-программе это возможно.

Без больших и кривых boost'ов и loki на плюсах вообще писать смысла нет. С бустом g++ на моей практике до 600-700 мб памяти в пике отъедал.

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

>> В CDT4 дела намного лучше. В CDT5 будут еще лучше.

> Может, стоит подождать CDT6? Который к столетию Революции выпустят?

Если хочешь, можешь подождать даже CDT8, не вопрос. Я предпочитаю пользоваться тем, что есть, поскольку меня оно устраивает. Кстати, CDT выходит каждый год, и при сохранении темпа CDT6 будет в 2009. Какая там революция была в 1909? :D

>> Кстати, 70М - это на диске

>А кого такие объёмы сейчас волнуют? :)

Ну я и пытался объяснить товарищу с Emacs, что никого.

> Впрочем, про тот эклипс: даже редактировать текст программ было некомофортно, пока памяти 1 гб не стало и все фенечки не поотключал

Ну что ж, если ты не можешь назвать версию CDT, о чем тут можно говорить... а с отключенными фенечками Eclipse примерно соответствует Emacs ;)

>> Странно, если учесть, что в процессе компиляции Eclipse не участвует :D

>Конечно. Он просто тихим сапом всю оперативку съедает.

> С бустом g++ на моей практике до 600-700 мб памяти в пике отъедал.

Я запутался - оперативу съедал Эклипс или g++? 8)

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

> А что опыт говорит по поводу вменяемых Лисповых прогеров? Ничего? Я так и думал.

Учитывая, что несколько лет назад отечественных программистов готовили на C++ (сейчас, говорят, на С# переключаются), а на Лисп вообще не готовят, то ситуация другой быть и не может. У товарищей за океаном на Лисп готовят, у них проблем нет. Дофига информационных систем в экономике, технике и науке на лиспах написано. Если бы всё так плохо было, то как могли бы существовать конторы типа LispWorks и Franz с их нефиговой стоимости продуктами?

Вообще, если интересует моё мнение, то современные Лиспы для большинства задач приемлемо быстрые (компиляторами с оптимизацией, на сколько это возможно). Базовый синтаксис у Лиспа очень простой, проще даже, чем у C. Опять же, в базовом виде (Common) Lisp предоставляет много полезных абстракций прямо из коробки. В плюсах приходится мучаться, а в итоге совершенно нечитабельные программы получаются, которые по полдня пересобираются (с нуля) и содержат вагон глюков из-за ляпов программистов (очень запутанный синтаксис) и банальных багов в огромных и сложных компиляторах. В Лиспе более мощные абстракции с помощью макросов спокойно в нормальный синтаксис заворачиваются (возьмите не-lispway макрос loop - программируется буквально на литературном английском). Опять же, возможности отладки и модификации "живой" программы гораздо шире. Возможности языка позволяют совершенно прозрачно делать persistent-объекты, АОП, не говоря уж о колоссальном пинке, которое получило ООП в виде CLOS. Вокруг компиляторов/интерпретаторов Лиспа существуют мощные коммьюнити, которые вполне нормально и быстро реагируют на вопросы (я не знаю, почему тот анонимус не нашёл помощи). Всё вышесказанное похоже на рекламу Лиспа из-под копирки, но это реально, что впечатляет, когда начинаешь с ним работать.

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

В России - не знаю. Спросите у тех, кто ищет их взамен ушедших :)

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

> Кстати, как всё-таки насчет практики нахождения вменяемых кодеров на Лисп взамен ушедших? :D

Если предыдущие тоже были вменяемыми, значит условия неподходящие - значит других вменяемых на этих-же условиях действительно будет трудно найти... ;)

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

> Ну что ж, если ты не можешь назвать версию CDT, о чем тут можно говорить... а с отключенными фенечками Eclipse примерно соответствует Emacs ;)

Я не слежу за темпом и графиком выхода eclipse, не отслеживаю версии cdt и их отличия друг от друга. То же самое с Емаксом - он у меня всегда из коробки. Но сдаётся мне, что у вас есть проблемы с cdt, раз вы так за свежие версии беспокоитесь ;)

> Я запутался - оперативу съедал Эклипс или g++? 8)

Вестимо, оба. Но на обоих не хватало: либо текст редактировать, либо собирать программу.

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

> Вообще, если интересует моё мнение

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

> Всё вышесказанное похоже на рекламу Лиспа из-под копирки

Всего лишь похоже? 8)

> но это реально, что впечатляет, когда начинаешь с ним работать.

То есть - ты работаешь на Лиспе? На каком и в какой области? Пока что из аудитории ЛОР только Darkman прямо ответил на этот вопрос.

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

> сдаётся мне, что у вас есть проблемы с cdt, раз вы так за свежие версии беспокоитесь ;)

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

> с Емаксом - он у меня всегда из коробки.

а у меня такое с mc/mcedit :D

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

> лисперы и приближенные к ним выдают этот ролик постоянно, я его запомнил помимо воли.

Отлично, теперь осталось только осознать, что запомнил :)

> То есть - ты работаешь на Лиспе? На каком и в какой области? Пока что из аудитории ЛОР только Darkman прямо ответил на этот вопрос.

Работаю я сидя в кресле. Работа заключается в мейнтейнинге пары пакетов в дистрибутиве одной известной компании. Непосредственно программированием, по моим меркам, я не занимаюсь уже месяца три. Те незначительные проблемы, которые нужно устранить, требуют только Си. Ну ещё немножко шелла и совсем чуть-чуть питона. В освободившееся время я вожусь с лиспом (sbcl и elisp). Результаты, полезные для общественности, есть, но не особо колоссальные: имплементированная фича в xml-rpc.el, пофикшенный русский язык в ljupdate.el и посильное участие в локализации одного бага в sbcl. Остальное касается только автоматизации моего же труда (скрипты для емакса), связанное непосредственно с выполняемой работой, и широкой публике недоступно. До этого полтора года писал линуксовую мультимедию на плюсах, ещё раньше - биллинг (не сетевой) на сях и перле. Ещё что-нибудь из моей биографии интересует?

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

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

Я рад. Для емакса вменяемых штуковин для C++ нет (xrefactory денег хочет и медленно работает), но мне плюсы больше не нужны. С остальным cscopt справляется хорошо.

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

>> лисперы и приближенные к ним выдают этот ролик постоянно, я его запомнил помимо воли.

> Отлично, теперь осталось только осознать, что запомнил :)

А что там осознавать? Кроме AOP, всем этим технологиям уж лет 20-30, а AOP - не такой уж прорыв. Если учесть, что я занимаюсь встроенными системами, то всё это меня касается мало.

> Ещё что-нибудь из моей биографии интересует?

Конечно, но я не спрашивал о биографии :) Впрочем, на мой вопрос ты вполне ответил.

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

> А что там осознавать? Кроме AOP, всем этим технологиям уж лет 20-30, а AOP - не такой уж прорыв.

Большинство технологий из Лиспа же и выросло. А АОП привёл для примера лёгкости добавления новых возможностей в язык. На сколько я знаю, для АОП в java пришлось вносись изменения в схему генерации и обработки байт-кода.

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

> а у меня такое с mc/mcedit :D

Если бы mc не приходилось патчить на предмет "The shell is already running a command", а также на кривую вставку текста, то адептов у него было бы гораздо больше.

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

>> А что там осознавать? Кроме AOP, всем этим технологиям уж лет 20-30, а AOP - не такой уж прорыв.

> Большинство технологий из Лиспа же и выросло

Да ни разу. ООП - это Симула67 и Смоллток, прозрачная "перзистентность" - языки 70-х вроде PLAIN. Макросы и навороченные препроцессоры были и вне Лиспа (в PL/I препроцессором работало довольно общирное подмножество языка). MOP, на котором основан AOP - может быть... в общем, при всем уважении, приписывать изобретение всех элегантных технологий Лиспу - это как приписывать MS изобретение Интернета :)

tailgunner ★★★★★
()

> К Cobol, Pascal, Ada нужно добавить Java и C#.

Java написана Джеймсом Гослингом потому, что его не устраивали те языки, которые уже существовали. Он пошел к начальству и сказал об этом. Ему дали команду разработать такой язык, какой он хочет. Фактически Java была разработана для себя.

naryl ★★★★★
()

> Каким образом в список попал язык Ada? +1 Как то области в которых применяется Ada и "average programmers" не стыкуются. Бортовые системы для Боингов, Аирбусов и Илов делают полудурки, раз выбрали ЯП отличный от великого и ужасного. Софт для АЭС делают посредственные программеры на быдло-Аде. Кодеры из NASA и европейского космического агенства идиоты.

> В третьих (хоть это и лечится) - абсолютно невменяемый синтаксис. А вот синтаксис у лиспа как раз самый красивый и единообразный - его почти нет.

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

> А что ты думаешь про метапрограммирование?

Ничего хорошего. Это лучший способ прострелить себе ногу из миномёта. Слишком опасное оружие даже в руках грамотных и аккуратных кодеров (каковые не встречаются в дикой природе). Ну и см. выше про AST и IDE.

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

> Ничего хорошего. Это лучший способ прострелить себе ногу из миномёта. Слишком опасное оружие даже в руках грамотных и аккуратных кодеров (каковые не встречаются в дикой природе). Ну и см. выше про AST и IDE.

Верной дорогой идёте, товарищ. Сначала взять как можно менее выразительный язык (йабба?), потом наклепать на ней горы кода (в том числе, с помощью кодогенераторов), а потом ещё и придумывать IDE, которые помогают эти горы дерьмища перекладывать с места на место. Чучело моё луковое, усвой: чем тратить силы на создание многословного кода, а потом тратить вдесятеро большие силы на его поддержку, проще сразу взять нормальный язык, и тогда твои IDE с афтокамплишеном окажутся банально не нужны.

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

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

>почему нормальный человек небудет писать на лиспе?

другой стиль программирования нужно у себя вырабатывать. Не все на это готовы.

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

> Бортовые системы для Боингов, Аирбусов и Илов делают полудурки, раз выбрали ЯП отличный от великого и ужасного.

Honeywell софт для гражданских бортов пишет на C/C++

> Софт для АЭС делают посредственные программеры на быдло-Аде.

Жизненно важные функции АЭС программно не управляются. В системе управления даже электроники как таковой нет. Даже на обычной ТЭЦ костяк системы управления софту не доверяют. А на чем написан софт для бухгалтерии этой АЭС - ну кого волнует?

> Кодеры из NASA и европейского космического агенства идиоты.

На DeepSpace I есть лисповый софт.

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