П. Норвиг о выборе языка
От: Курилка Россия http://kirya.narod.ru/
Дата: 18.10.10 19:19
Оценка: 44 (2) +1
На Hacker News задали вопрос Lisp vs Python в наши дни, в качестве "обращённых в питон" упомянут П. Норвиг (кстати, вот совсем недавняя ссылка на него с RSDN
Автор: __lambda__
Дата: 03.10.10
), на что это Питер ответил, среди прочего, следующее:

I think that language choice is not as important as all the other choices: if you have the right overall architecture, the right team of programmers, the right development process that allows for rapid development with continuous improvement, then many languages will work for you; if you don't have those things you're in trouble regardless of your language choice.
---------
Я думаю, что выбор языка не столь важен по сравнению с другими факторами: если у вас правильная в целом архитектура, подходящая комманда программистов, правильный процесс разработки, который позволяет вести быструю разработку с постоянными улучшениями, тогда многие языки подойдут вам; если у вас нет этого, то вы в беде независимо от выбора языка (программирования).

Re: П. Норвиг о выборе языка
От: VladD2 Российская Империя www.nemerle.org
Дата: 18.10.10 19:24
Оценка:
Здравствуйте, Курилка, Вы писали:

К>

К>I think that language choice is not as important as all the other choices: if you have the right overall architecture, the right team of programmers, the right development process that allows for rapid development with continuous improvement, then many languages will work for you; if you don't have those things you're in trouble regardless of your language choice.
К>---------
К>Я думаю, что выбор языка не столь важен по сравнению с другими факторами: если у вас правильная в целом архитектура, подходящая комманда программистов, правильный процесс разработки, который позволяет вести быструю разработку с постоянными улучшениями, тогда многие языки подойдут вам; если у вас нет этого, то вы в беде независимо от выбора языка (программирования).


Все зависит от задачи. Описанные им факторы являются обязательными. Но чем сложнее задача, тем больше влияние инструмента (и его знания командой) на успех их решения.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: П. Норвиг о выборе языка
От: neFormal Россия  
Дата: 18.10.10 19:31
Оценка: +1 :))
Здравствуйте, Курилка, Вы писали:

К>

К>I think that language choice is not as important as all the other choices: if you have the right overall architecture, the right team of programmers, the right development process that allows for rapid development with continuous improvement, then many languages will work for you; if you don't have those things you're in trouble regardless of your language choice.
К>---------
К>Я думаю, что выбор языка не столь важен по сравнению с другими факторами: если у вас правильная в целом архитектура, подходящая комманда программистов, правильный процесс разработки, который позволяет вести быструю разработку с постоянными улучшениями, тогда многие языки подойдут вам; если у вас нет этого, то вы в беде независимо от выбора языка (программирования).


проще говоря, если вы ничего не умеете, то смена цвета молотка вам не поможет..
очевидно..
...coding for chaos...
Re: П. Норвиг о выборе языка
От: Гест Украина https://zverok.github.io
Дата: 18.10.10 21:06
Оценка: +1 -1
Здравствуйте, Курилка, Вы писали:

К>На Hacker News задали вопрос Lisp vs Python в наши дни, в качестве "обращённых в питон" упомянут П. Норвиг (кстати, вот совсем недавняя ссылка на него с RSDN
Автор: __lambda__
Дата: 03.10.10
), на что это Питер ответил, среди прочего, следующее:


К>

К>I think that language choice is not as important as all the other choices: if you have the right overall architecture, the right team of programmers, the right development process that allows for rapid development with continuous improvement, then many languages will work for you; if you don't have those things you're in trouble regardless of your language choice.
К>---------
К>Я думаю, что выбор языка не столь важен по сравнению с другими факторами: если у вас правильная в целом архитектура, подходящая комманда программистов, правильный процесс разработки, который позволяет вести быструю разработку с постоянными улучшениями, тогда многие языки подойдут вам; если у вас нет этого, то вы в беде независимо от выбора языка (программирования).


Мне кажется, помимо прочего, здесь содержится имплицитное утверждение, что хорошая команда не станет работать неподходящими инструментами.
Re: П. Норвиг о выборе языка
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 18.10.10 21:26
Оценка: +1
Здравствуйте, Курилка, Вы писали:

К>I think that language choice is not as important as all the other choices: if you have the right overall architecture, the right team of programmers, the right development process that allows for rapid development with continuous improvement, then many languages will work for you;


Заметим, что "любой язык подойдёт" не говорилось.
Значит, успех зависит и от того, из какого подмножества будет сделан случайный выбор
The God is real, unless declared integer.
Re: П. Норвиг о выборе языка
От: Skelterer Россия  
Дата: 19.10.10 05:46
Оценка: 1 (1) +3
Здравствуйте, Курилка, Вы писали:

К>

К>I think that language choice is not as important as all the other choicesК>


это довольно очевидное, если не сказать — банальное утверждение. С другой стороны, приходится иной раз слышать фразы типа "проект такой проблемный, потому что выбрали <такой-то язык>". Я не очень понимаю, почему до людей не доходит, что мастер — да, выбирает удобный для себя и подходящий для изделия инструмент. Но какой инструмент не вручи плохому мастеру, изделие будет дерьмовым, при этом даже с не очень подходящим инструментом хороший мастер сделает изделие, которое будет успешно выполнять свои функции... ну, может, глянца меньше будет ))
Re: П. Норвиг о выборе языка
От: __lambda__ Россия http://zen-hacker.blogspot.com/
Дата: 19.10.10 09:02
Оценка: 37 (3)
Здравствуйте, Курилка, Вы писали:

К>На Hacker News задали вопрос Lisp vs Python в наши дни, в качестве "обращённых в питон" упомянут П. Норвиг (кстати, вот совсем недавняя ссылка на него с RSDN
Автор: __lambda__
Дата: 03.10.10
), на что это Питер ответил, среди прочего, следующее:


Жесть, этот вопрос задал я, kung-fu-master
Вот уж не ожидал, что там появится Питер Норвиг, я там о нем упомянул в самом вопросе, как о человеке перешедшего с Лиспа на Питон. Вообще, там довольно много супер-звезд засветились, включая Питера Сейбела, автора хитовой книги Practical Common Lisp.
Computer science is no more about computers than astronomy is about telescopes (c) Edsger Dijkstra
Re[2]: П. Норвиг о выборе языка
От: __lambda__ Россия http://zen-hacker.blogspot.com/
Дата: 19.10.10 11:35
Оценка: 11 (1)
Кстати говоря, если кому интересно, я нагуглил два интересных проекта:
1. Питон как eDSL поверх Лиспа.
2. Руби как eDSL поверх Лиспа.
Причем, что интересно, последнее получилось быстрее оригинального Руби примерно на 1.5 — 3.5 раза. И это без всяких оптимизаций.

Это все я к чему, там на HN своим ломаным английским я описал свою проблему:

As school teacher on programming I'm limited in choice of programming languages. The only language which I can study is Pascal (a lot of other reasons on it). The problem is that Pascal have not any libraries (GUI, 2D/3D, Game Development Engines, programming micro-controllers, ...). Students can write only simple console applications. So, it was be ideal to have subset of Pascal as eDSL on top of Common Lisp or Clojure. In that way I can easily extend original Pascal to access some real world libraries.
I think also on top of Common Lisp we can develop some simpler eDSL as pseudo-code for beginner students.


Так вот, попробую реализовать Паскаль поверх Лиспа. Я знаю, на РСДН много очень умных и толковых людей, может кто советом подсказать, куда и в какую сторону копать?

Основное чего хотелось бы добиться, это, чтобы дети могли программировать собранного на коленке нашего робота на базе Arduino используя привычный им Паскаль. На данный момент он программируется на подмножестве языка Си. А учить еще один язык только для того, чтобы программировать эту штуковину, как-то накладно получается.
Computer science is no more about computers than astronomy is about telescopes (c) Edsger Dijkstra
Re[3]: П. Норвиг о выборе языка
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 19.10.10 23:29
Оценка:
Здравствуйте, __lambda__, Вы писали:

___>Так вот, попробую реализовать Паскаль поверх Лиспа. Я знаю, на РСДН много очень умных и толковых людей, может кто советом подсказать, куда и в какую сторону копать?


___>Основное чего хотелось бы добиться, это, чтобы дети могли программировать собранного на коленке нашего робота на базе Arduino используя привычный им Паскаль. На данный момент он программируется на подмножестве языка Си. А учить еще один язык только для того, чтобы программировать эту штуковину, как-то накладно получается.


А зачем такой сложный путь? Транслятор упрощенного Паскаля в С это уровень курсовой работы на 3 курсе ВУЗа.
... << RSDN@Home 1.2.0 alpha 4 rev. 1476 on Windows 7 6.1.7600.0>>
AVK Blog
Re[4]: П. Норвиг о выборе языка
От: __lambda__ Россия http://zen-hacker.blogspot.com/
Дата: 20.10.10 00:20
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>А зачем такой сложный путь? Транслятор упрощенного Паскаля в С это уровень курсовой работы на 3 курсе ВУЗа.


Да, все верно. Изначально я думал это сделать как eDSL в Лиспе, с помощью макросов (как например сделан LOOP):
(pascal
    var
        a : integer;
    begin
        a := 10;
        writeln(a);
        readln;
    end.
)

По идее, тогда у меня была бы единая платформа на базе Common Lisp'а и на их базе я мог бы строить какие угодно языки с доступом к различным библиотекам. То есть, возвращаясь к примеру с роботом на базе Ардуино, младшие классы тоже смогли бы программировать его на языке близком к псевдокоду, а старшие классы на родном им Паскале. Причем, я бы смог их легко расширять, добавлять новые конструкции в язык.

Но как выяснилось в ходе той дискуссии, то это получается проблематичным (или нет?). Насколько я понимаю, eDSL в Лиспе строится в виде s-expressions, то бишь, традиционный Лисп синтаксис (например, как макрос with-open-file). А если пытаться сделать так, как я привел в примере выше, то все равно придется строить свой парсер языка. Я там приводил выше пример компилятора Руби поверх Лиспа, там они используют библиотеку meta-sexp — а это ничто иное, как парсер-генератор LL(1) грамматик.

И соответственно, у меня появляется закономерный вопрос, тогда какая разница на каком языке я это сделаю? Некоторые товарищи утверждают, что на Лиспе сделать это гораздо удобнее, чем в любом другом языке. Например, товарищ sedachv написал там:

There is also cl-javascript: http://github.com/akapav/js
The advantage of doing a "language X to CL" translator is that it's going to be much simpler than doing it in another language (the number of features offered by CL is a huge superset of that available in any other language; the only exception is continuations), the result will be faster (the example Ruby translator is faster than Ruby, cl-javascript is faster than SpiderMonkey, etc, mostly due to SBCL being a reasonably good compiler), and you will have access to really good debugging tools (Clozure is really good at this — see http://openmcl.clozure.com/ccl-documentation.html#watched-ob... for example).

Кстати говоря, этот товарищ, если мне не изменяет память является автором библиотеки parenscript. Которая делает обратное преобразование из подмножества CL в JavaScript.

Ну так вот, как-то меня терзают смутные сомнения в сказанном этим товарищем, насколько я знаю, компиляторы/трансляторы проще писать в языках с ATD & pattern matching. В общем этот вопрос для меня остается пока открытым.
Computer science is no more about computers than astronomy is about telescopes (c) Edsger Dijkstra
Re[4]: П. Норвиг о выборе языка
От: __lambda__ Россия http://zen-hacker.blogspot.com/
Дата: 20.10.10 00:25
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>А зачем такой сложный путь? Транслятор упрощенного Паскаля в С это уровень курсовой работы на 3 курсе ВУЗа.


Не, а вообще, если так подумать, то это сложно, в том смысле, что на 3-м курсе ВУЗа не дают пользоваться парсер-генераторами, придется ручками писать лексеры и парсеры. Отдельная проблема, расширять язык новыми конструкциями. А мы народ ленивый, хочется найти путь попроще
Computer science is no more about computers than astronomy is about telescopes (c) Edsger Dijkstra
Re[5]: П. Норвиг о выборе языка
От: samius Япония http://sams-tricks.blogspot.com
Дата: 20.10.10 03:26
Оценка: 8 (1)
Здравствуйте, __lambda__, Вы писали:

___>Не, а вообще, если так подумать, то это сложно, в том смысле, что на 3-м курсе ВУЗа не дают пользоваться парсер-генераторами, придется ручками писать лексеры и парсеры. Отдельная проблема, расширять язык новыми конструкциями. А мы народ ленивый, хочется найти путь попроще


А парсер-комбинаторами можно?
Re[2]: П. Норвиг о выборе языка
От: mrTwister Россия  
Дата: 20.10.10 05:17
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Все зависит от задачи. Описанные им факторы являются обязательными. Но чем сложнее задача, тем больше влияние инструмента (и его знания командой) на успех их решения.


осталось только обьяснить, почему самые сложные задачи по факту решают на самом примитивном языке — на С
... << RSDN@Home 1.2.0 alpha 4 rev. 1476>>
лэт ми спик фром май харт
Re[3]: П. Норвиг о выборе языка
От: LaptevVV Россия  
Дата: 20.10.10 05:37
Оценка:
Здравствуйте, __lambda__, Вы писали:

___>Основное чего хотелось бы добиться, это, чтобы дети могли программировать собранного на коленке нашего робота на базе Arduino используя привычный им Паскаль. На данный момент он программируется на подмножестве языка Си. А учить еще один язык только для того, чтобы программировать эту штуковину, как-то накладно получается.

Посмотрите на сайт Информатика-21 и Компонентный паскаль в среде BlackBox. Автор проекта Информатика-21 обучает школьников-пятиклассников в этой среде. Среда — саморасширяемая: Ткачев без проблем на КП нарисовал черепашку и включил ее в среду.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[5]: П. Норвиг о выборе языка
От: LaptevVV Россия  
Дата: 20.10.10 05:43
Оценка: 8 (1)
Здравствуйте, __lambda__, Вы писали:

Настойчиво рекомендую Компонентный паскаль.
Ориентиры еще: Виталий Потопахин — директор хабаровской шеколы программистов. Недавно написал книгу Программирование с нуля.
Недавно вышли также последние версии книжек Никлауса Вирта. В частности Алгоритмы и структуры данных. К книжкам Вирта и Потопахина прилагается сидюк, на котором среда БлэкБокс и куча дополнительной документации на русском языке.
Среда абсолютно бесплатная, работает с любой флехи. Русифицирована. Опробована как в обучении (кроме Ткачева еще и Ермаков в Орловском универе использует. И еще ряд товарищей).
Есть форум: oberoncore.ru — все вопросы можно решить там.
Настоятельно рекомендую.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[2]: П. Норвиг о выборе языка
От: LaptevVV Россия  
Дата: 20.10.10 05:46
Оценка:
Здравствуйте, __lambda__, Вы писали:

___>Жесть, этот вопрос задал я, kung-fu-master

Пошлите мне письмо по адресу в профиле, подробности с паскалем освещу.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[3]: П. Норвиг о выборе языка
От: Фанатик Ад http://vk.com/id10256428
Дата: 20.10.10 06:48
Оценка:
Здравствуйте, mrTwister, Вы писали:


VD>>Все зависит от задачи. Описанные им факторы являются обязательными. Но чем сложнее задача, тем больше влияние инструмента (и его знания командой) на успех их решения.


T>осталось только обьяснить, почему самые сложные задачи по факту решают на самом примитивном языке — на С


С — не самый примитивный язык
Всё сказанное выше — личное мнение, если не указано обратное.
Re[2]: П. Норвиг о выборе языка
От: Фанатик Ад http://vk.com/id10256428
Дата: 20.10.10 06:52
Оценка:
Здравствуйте, Skelterer, Вы писали:

S>Здравствуйте, Курилка, Вы писали:


К>>

К>>I think that language choice is not as important as all the other choicesК>


S>это довольно очевидное, если не сказать — банальное утверждение. С другой стороны, приходится иной раз слышать фразы типа "проект такой проблемный, потому что выбрали <такой-то язык>". Я не очень понимаю, почему до людей не доходит, что мастер — да, выбирает удобный для себя и подходящий для изделия инструмент. Но какой инструмент не вручи плохому мастеру, изделие будет дерьмовым, при этом даже с не очень подходящим инструментом хороший мастер сделает изделие, которое будет успешно выполнять свои функции... ну, может, глянца меньше будет ))


Я знаю контору, которая до сих пор Clarion использует. Для тех кто не в курсе: кларион не годится для сложных проектов вообще. Люди там мечтают хотя-бы о делфях...
Всё сказанное выше — личное мнение, если не указано обратное.
Re[3]: П. Норвиг о выборе языка
От: Курилка Россия http://kirya.narod.ru/
Дата: 20.10.10 07:46
Оценка:
Здравствуйте, Фанатик, Вы писали:

Ф>Здравствуйте, Skelterer, Вы писали:


S>>Здравствуйте, Курилка, Вы писали:


К>>>

К>>>I think that language choice is not as important as all the other choicesК>


S>>это довольно очевидное, если не сказать — банальное утверждение. С другой стороны, приходится иной раз слышать фразы типа "проект такой проблемный, потому что выбрали <такой-то язык>". Я не очень понимаю, почему до людей не доходит, что мастер — да, выбирает удобный для себя и подходящий для изделия инструмент. Но какой инструмент не вручи плохому мастеру, изделие будет дерьмовым, при этом даже с не очень подходящим инструментом хороший мастер сделает изделие, которое будет успешно выполнять свои функции... ну, может, глянца меньше будет ))


Ф>Я знаю контору, которая до сих пор Clarion использует. Для тех кто не в курсе: кларион не годится для сложных проектов вообще. Люди там мечтают хотя-бы о делфях...


А что это должно продемонстрировать?
Ну и что там относительно других пунктов, про которые говорит Норвиг?
Re[5]: П. Норвиг о выборе языка
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 20.10.10 08:25
Оценка:
Здравствуйте, __lambda__, Вы писали:

___>Не, а вообще, если так подумать, то это сложно, в том смысле, что на 3-м курсе ВУЗа не дают пользоваться парсер-генераторами, придется ручками писать лексеры и парсеры.


В случае Паскаля там писать нечего. И вам то вроде никто не мешает генераторами пользоваться. Берете antlr, берете готовую грамматику Паскаля, корректируете, и через пару часов имеете готовый парсер.
... << RSDN@Home 1.2.0 alpha 4 rev. 1476 on Windows 7 6.1.7600.0>>
AVK Blog
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.