), на что это Питер ответил, среди прочего, следующее:
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.
---------
Я думаю, что выбор языка не столь важен по сравнению с другими факторами: если у вас правильная в целом архитектура, подходящая комманда программистов, правильный процесс разработки, который позволяет вести быструю разработку с постоянными улучшениями, тогда многие языки подойдут вам; если у вас нет этого, то вы в беде независимо от выбора языка (программирования).
К>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.
К>---------
К>Я думаю, что выбор языка не столь важен по сравнению с другими факторами: если у вас правильная в целом архитектура, подходящая комманда программистов, правильный процесс разработки, который позволяет вести быструю разработку с постоянными улучшениями, тогда многие языки подойдут вам; если у вас нет этого, то вы в беде независимо от выбора языка (программирования).
Все зависит от задачи. Описанные им факторы являются обязательными. Но чем сложнее задача, тем больше влияние инструмента (и его знания командой) на успех их решения.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
К>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.
К>---------
К>Я думаю, что выбор языка не столь важен по сравнению с другими факторами: если у вас правильная в целом архитектура, подходящая комманда программистов, правильный процесс разработки, который позволяет вести быструю разработку с постоянными улучшениями, тогда многие языки подойдут вам; если у вас нет этого, то вы в беде независимо от выбора языка (программирования).
проще говоря, если вы ничего не умеете, то смена цвета молотка вам не поможет..
очевидно..
), на что это Питер ответил, среди прочего, следующее:
К>
К>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.
К>---------
К>Я думаю, что выбор языка не столь важен по сравнению с другими факторами: если у вас правильная в целом архитектура, подходящая комманда программистов, правильный процесс разработки, который позволяет вести быструю разработку с постоянными улучшениями, тогда многие языки подойдут вам; если у вас нет этого, то вы в беде независимо от выбора языка (программирования).
Мне кажется, помимо прочего, здесь содержится имплицитное утверждение, что хорошая команда не станет работать неподходящими инструментами.
Здравствуйте, Курилка, Вы писали:
К>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;
Заметим, что "любой язык подойдёт" не говорилось.
Значит, успех зависит и от того, из какого подмножества будет сделан случайный выбор
К>I think that language choice is not as important as all the other choicesК>
это довольно очевидное, если не сказать — банальное утверждение. С другой стороны, приходится иной раз слышать фразы типа "проект такой проблемный, потому что выбрали <такой-то язык>". Я не очень понимаю, почему до людей не доходит, что мастер — да, выбирает удобный для себя и подходящий для изделия инструмент. Но какой инструмент не вручи плохому мастеру, изделие будет дерьмовым, при этом даже с не очень подходящим инструментом хороший мастер сделает изделие, которое будет успешно выполнять свои функции... ну, может, глянца меньше будет ))
), на что это Питер ответил, среди прочего, следующее:
Жесть, этот вопрос задал я, kung-fu-master
Вот уж не ожидал, что там появится Питер Норвиг, я там о нем упомянул в самом вопросе, как о человеке перешедшего с Лиспа на Питон. Вообще, там довольно много супер-звезд засветились, включая Питера Сейбела, автора хитовой книги Practical Common Lisp.
Computer science is no more about computers than astronomy is about telescopes (c) Edsger Dijkstra
Кстати говоря, если кому интересно, я нагуглил два интересных проекта:
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
Здравствуйте, __lambda__, Вы писали:
___>Так вот, попробую реализовать Паскаль поверх Лиспа. Я знаю, на РСДН много очень умных и толковых людей, может кто советом подсказать, куда и в какую сторону копать?
___>Основное чего хотелось бы добиться, это, чтобы дети могли программировать собранного на коленке нашего робота на базе Arduino используя привычный им Паскаль. На данный момент он программируется на подмножестве языка Си. А учить еще один язык только для того, чтобы программировать эту штуковину, как-то накладно получается.
А зачем такой сложный путь? Транслятор упрощенного Паскаля в С это уровень курсовой работы на 3 курсе ВУЗа.
... << RSDN@Home 1.2.0 alpha 4 rev. 1476 on Windows 7 6.1.7600.0>>
Здравствуйте, 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
Здравствуйте, AndrewVK, Вы писали:
AVK>А зачем такой сложный путь? Транслятор упрощенного Паскаля в С это уровень курсовой работы на 3 курсе ВУЗа.
Не, а вообще, если так подумать, то это сложно, в том смысле, что на 3-м курсе ВУЗа не дают пользоваться парсер-генераторами, придется ручками писать лексеры и парсеры. Отдельная проблема, расширять язык новыми конструкциями. А мы народ ленивый, хочется найти путь попроще
Computer science is no more about computers than astronomy is about telescopes (c) Edsger Dijkstra
Здравствуйте, __lambda__, Вы писали:
___>Не, а вообще, если так подумать, то это сложно, в том смысле, что на 3-м курсе ВУЗа не дают пользоваться парсер-генераторами, придется ручками писать лексеры и парсеры. Отдельная проблема, расширять язык новыми конструкциями. А мы народ ленивый, хочется найти путь попроще
Здравствуйте, VladD2, Вы писали:
VD>Все зависит от задачи. Описанные им факторы являются обязательными. Но чем сложнее задача, тем больше влияние инструмента (и его знания командой) на успех их решения.
осталось только обьяснить, почему самые сложные задачи по факту решают на самом примитивном языке — на С
Здравствуйте, __lambda__, Вы писали:
___>Основное чего хотелось бы добиться, это, чтобы дети могли программировать собранного на коленке нашего робота на базе Arduino используя привычный им Паскаль. На данный момент он программируется на подмножестве языка Си. А учить еще один язык только для того, чтобы программировать эту штуковину, как-то накладно получается.
Посмотрите на сайт Информатика-21 и Компонентный паскаль в среде BlackBox. Автор проекта Информатика-21 обучает школьников-пятиклассников в этой среде. Среда — саморасширяемая: Ткачев без проблем на КП нарисовал черепашку и включил ее в среду.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Настойчиво рекомендую Компонентный паскаль.
Ориентиры еще: Виталий Потопахин — директор хабаровской шеколы программистов. Недавно написал книгу Программирование с нуля.
Недавно вышли также последние версии книжек Никлауса Вирта. В частности Алгоритмы и структуры данных. К книжкам Вирта и Потопахина прилагается сидюк, на котором среда БлэкБокс и куча дополнительной документации на русском языке.
Среда абсолютно бесплатная, работает с любой флехи. Русифицирована. Опробована как в обучении (кроме Ткачева еще и Ермаков в Орловском универе использует. И еще ряд товарищей).
Есть форум: oberoncore.ru — все вопросы можно решить там.
Настоятельно рекомендую.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, __lambda__, Вы писали:
___>Жесть, этот вопрос задал я, kung-fu-master
Пошлите мне письмо по адресу в профиле, подробности с паскалем освещу.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
VD>>Все зависит от задачи. Описанные им факторы являются обязательными. Но чем сложнее задача, тем больше влияние инструмента (и его знания командой) на успех их решения.
T>осталось только обьяснить, почему самые сложные задачи по факту решают на самом примитивном языке — на С
С — не самый примитивный язык
Всё сказанное выше — личное мнение, если не указано обратное.
Здравствуйте, Skelterer, Вы писали:
S>Здравствуйте, Курилка, Вы писали:
К>>
К>>I think that language choice is not as important as all the other choicesК>
S>это довольно очевидное, если не сказать — банальное утверждение. С другой стороны, приходится иной раз слышать фразы типа "проект такой проблемный, потому что выбрали <такой-то язык>". Я не очень понимаю, почему до людей не доходит, что мастер — да, выбирает удобный для себя и подходящий для изделия инструмент. Но какой инструмент не вручи плохому мастеру, изделие будет дерьмовым, при этом даже с не очень подходящим инструментом хороший мастер сделает изделие, которое будет успешно выполнять свои функции... ну, может, глянца меньше будет ))
Я знаю контору, которая до сих пор Clarion использует. Для тех кто не в курсе: кларион не годится для сложных проектов вообще. Люди там мечтают хотя-бы о делфях...
Всё сказанное выше — личное мнение, если не указано обратное.
Здравствуйте, Фанатик, Вы писали:
Ф>Здравствуйте, Skelterer, Вы писали:
S>>Здравствуйте, Курилка, Вы писали:
К>>>
К>>>I think that language choice is not as important as all the other choicesК>
S>>это довольно очевидное, если не сказать — банальное утверждение. С другой стороны, приходится иной раз слышать фразы типа "проект такой проблемный, потому что выбрали <такой-то язык>". Я не очень понимаю, почему до людей не доходит, что мастер — да, выбирает удобный для себя и подходящий для изделия инструмент. Но какой инструмент не вручи плохому мастеру, изделие будет дерьмовым, при этом даже с не очень подходящим инструментом хороший мастер сделает изделие, которое будет успешно выполнять свои функции... ну, может, глянца меньше будет ))
Ф>Я знаю контору, которая до сих пор Clarion использует. Для тех кто не в курсе: кларион не годится для сложных проектов вообще. Люди там мечтают хотя-бы о делфях...
А что это должно продемонстрировать?
Ну и что там относительно других пунктов, про которые говорит Норвиг?
Здравствуйте, __lambda__, Вы писали:
___>Не, а вообще, если так подумать, то это сложно, в том смысле, что на 3-м курсе ВУЗа не дают пользоваться парсер-генераторами, придется ручками писать лексеры и парсеры.
В случае Паскаля там писать нечего. И вам то вроде никто не мешает генераторами пользоваться. Берете antlr, берете готовую грамматику Паскаля, корректируете, и через пару часов имеете готовый парсер.
... << RSDN@Home 1.2.0 alpha 4 rev. 1476 on Windows 7 6.1.7600.0>>