tag:blogger.com,1999:blog-29561155.post4955068630721043139..comments2022-03-27T13:12:25.926+03:00Comments on Веб-дневник Владимира Шабанова: Скриптовые языки — оно вам надо?Vladimir Shabanovhttp://www.blogger.com/profile/14322574042735481057noreply@blogger.comBlogger15125tag:blogger.com,1999:blog-29561155.post-13841522157962387582012-03-06T13:51:16.847+04:002012-03-06T13:51:16.847+04:00А можно было бы и основную программу на лиспе напи...А можно было бы и основную программу на лиспе написать.<br /><br />Какие продвинутые пользователи, если могут сами дописать распознавание форматов файлов.Vladimir Shabanovhttps://www.blogger.com/profile/14322574042735481057noreply@blogger.comtag:blogger.com,1999:blog-29561155.post-11579311916630592982012-03-06T00:26:28.260+04:002012-03-06T00:26:28.260+04:00У меня основная программа написана на C++, а для р...У меня основная программа написана на C++, а для расширения используется DSL а-ля Лисп. Интерпретатор написан за несколько часов, работает уже много лет, позволяет расширять функционал программы без особых проблем. И DSL там используется для описания бизнес-логики (в данном случае - описания процесса определения типов файлов) и это крайне удобно. <br /><br />И для расширения пользователю не надо учить OCaml/Haskell, и не надо иметь соотвествующие компиляторыAlex Otthttps://www.blogger.com/profile/13001951608173211050noreply@blogger.comtag:blogger.com,1999:blog-29561155.post-60108917742567881922008-01-31T13:01:00.000+03:002008-01-31T13:01:00.000+03:00Вот первый проект (C#) -- это как раз то, о чем я ...Вот первый проект (C#) -- это как раз то, о чем я говорил. <BR/><BR/>Второй (VB) -- в целом то же самое. Как я понял на компилируемых языках была только низкоуровневая библиотека. Т.е. там были скорее не скрипты на VB, а вся программа на VB.Vladimir Shabanovhttps://www.blogger.com/profile/14322574042735481057noreply@blogger.comtag:blogger.com,1999:blog-29561155.post-83006941699857508752008-01-31T11:25:00.000+03:002008-01-31T11:25:00.000+03:00Работал я над проектом, где скрипты добавлялись пр...Работал я над проектом, где скрипты добавлялись прямо на шарпе, на котором весь проект и был построен.<BR/>А еще был проект в той же фирме, где на компилируемых языках были построены только несколько контролчиков, базовая форма без наполнения и собственно запускалка — а ВСЯ бизнес-логика и ВЕСЬ UI делались в виде VB Script и лежали в БАЗЕ ДАННЫХ.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-29561155.post-1144431127313105672007-12-14T00:42:00.000+03:002007-12-14T00:42:00.000+03:00Мнения у меня, к сожалению, особого нет. Как я пон...Мнения у меня, к сожалению, особого нет. Как я понимаю K и J удобны там, где нужна работа с массивами, т.е. в области статистики, финансовых расчетов, обработки изображений, звука, некоторых научных расчетов. В принципе, много где.<BR/>Все никак не доберусь познакомиться с ними поближе.Vladimir Shabanovhttps://www.blogger.com/profile/14322574042735481057noreply@blogger.comtag:blogger.com,1999:blog-29561155.post-62776968874423339462007-12-13T23:49:00.000+03:002007-12-13T23:49:00.000+03:00Ага, верно и то и другоe. давно было, сходу не всп...Ага, верно и то и другоe. давно было, сходу не вспомнил как это делалось :)<BR/><BR/>кстати в копилку языков которые удобно использовать совместно с другими языками:<BR/>http://en.wikipedia.org/wiki/K_programming_language<BR/><BR/>или<BR/>http://en.wikipedia.org/wiki/J_(programming_language)<BR/><BR/>интересно было бы почитать ваше мнение на эту тему.invhttps://www.blogger.com/profile/02490250683872683274noreply@blogger.comtag:blogger.com,1999:blog-29561155.post-78367426119273613042007-12-13T23:43:00.000+03:002007-12-13T23:43:00.000+03:00Некоторое подобие eval -- это Toploop?А что там де...Некоторое подобие eval -- это Toploop?<BR/><BR/>А что там делалось? Какие-нибудь формулы, или что?Vladimir Shabanovhttps://www.blogger.com/profile/14322574042735481057noreply@blogger.comtag:blogger.com,1999:blog-29561155.post-72696911607755306572007-12-13T20:29:00.000+03:002007-12-13T20:29:00.000+03:00Писал бухгалтерскую программу на ocaml+gtk, понадо...Писал бухгалтерскую программу на ocaml+gtk, понадобился встроенный язык, в качестве которого решил использовать некоторое подобие eval, которое есть в ocaml.<BR/>с одной стороны встроенный язык можно было сделать свой, с другой стороны - зачем, если ocaml целиком покрывал его и не имел излишеств.invhttps://www.blogger.com/profile/02490250683872683274noreply@blogger.comtag:blogger.com,1999:blog-29561155.post-86756125168609462002007-08-25T00:23:00.000+04:002007-08-25T00:23:00.000+04:00зачем жеж так провоцировать.. ;)Уж как вышло ;)Фиг...<I>зачем жеж так провоцировать.. ;)</I><BR/><BR/>Уж как вышло ;)<BR/><BR/>Фигово только мысль изложил. Я не столько против динамических языков (несправедливо называемых скриптовыми из-за своей простоты и высокоуровневости), сколько против встраивания в программу на С++ скриптов, т.к., по моему мнению, они встраиваются туда исключительно из-за неудобности самого С++. Почему и предлагаю писать всю программу на одном, более высокоуровневом языке. И, конечно же, рекомендую OCaml или Haskell ;)<BR/><BR/>Многие подумали, что я тупо обкакал динамические языки :) Да, они мне не нравятся, но point поста в том, что скриптинг в плюсовой программе -- это не клевая фича, а костыль к плюсам.<BR/><BR/><I>Отсутствие статической типизации + duck typing =><BR/>REPL-style & Test-Driven Development =><BR/>Rapid Prototyping</I><BR/><BR/>Ocaml -- это все то же самое только со статической типизацией )))<BR/>Есть <A HREF="http://en.wikipedia.org/wiki/Duck_typing#In_OCaml" REL="nofollow">duck typing</A>, REPL. TDD вообще слабо зависит от используемого языка, разве что в статически типизированных языках часть тестов делает компилятор )Vladimir Shabanovhttps://www.blogger.com/profile/14322574042735481057noreply@blogger.comtag:blogger.com,1999:blog-29561155.post-64304877241683335682007-08-24T19:46:00.000+04:002007-08-24T19:46:00.000+04:00Эхехех, зачем жеж так провоцировать.. ;)Отсутствие...Эхехех, зачем жеж так провоцировать.. ;)<BR/><BR/>Отсутствие статической типизации + duck typing =><BR/>REPL-style & Test-Driven Development => Rapid Prototyping (тут можно было бы по русски, но мне очень нравится как это звучит ;) => все это очень полезно в некоторых областях, ин май хамбл опинион.lrrrhttps://www.blogger.com/profile/12742106367384624657noreply@blogger.comtag:blogger.com,1999:blog-29561155.post-59919546004375547912007-08-24T17:13:00.000+04:002007-08-24T17:13:00.000+04:00А как же http://vshabanov-ru.blogspot.com/2006/10/...<I>А как же <A HREF="http://vshabanov-ru.blogspot.com/2006/10/blog-post_3256.html" REL="nofollow">http://vshabanov-ru.blogspot.com/2006/10/blog-post_3256.html</A><BR/>?</I><BR/><BR/>Ну дык, для каждой задачи нужен свой инструмент. Вот и предлагается вместо связки C++/{python|lua|...} использовать один только OCaml или Haskell. Огромная экономия времени.<BR/><BR/><I>C++ гораздо удобней во многих задачах, например на стыках с Direct3D, где мы ворочаем мегабайтными массивами с текстурами и геометрией.</I><BR/><BR/>Вот только там его и надо применять. В принципе кемл (и даже хаскелл) тоже умеют ворочать массивами, но для эффективности все равно лучше плюсы. Но это должна быть очень маленькая часть кода -- никакой логики, только числодробильня и работа с низкоуровневым API.<BR/><BR/><I>... Хаскель - сначала потребует пятилетнего высшего образования в университете,</I><BR/><BR/>Необязательно. Недавно нанятый человек хаскелл знал только по тьюториалам. Первые месяца 1.5-2 задавал крайне глупые вопросы, однако сейчас уже врубился и разогнался. Так что 3-6 месяцев достаточно для изучения хаскела с нуля (при условии, что есть к нему интерес, есть работа на нем и есть кто-то, кто может подсказать как что сделать). Конечно не 2 часа, но и не 5 лет. Кстати на изучение плюсов, как раз надо примерно 3-5 лет ;)<BR/><BR/>А окемл вообще язык по сложности где-то на уровне паскаля. Месяца на изучение достаточно (это без работы на нем и подсказчика).<BR/><BR/>А если мы говорим о DSL для, положим, игрового проекта, то человеку, думаю, достаточно показать несколько примеров. Недели-двух хватит и на въезд в язык и на въезд в проект. Через месяц-полтора наш новый сотрудник начнет уже писать кусочки игры, так что посмотрим, сколько понадобится )Vladimir Shabanovhttps://www.blogger.com/profile/14322574042735481057noreply@blogger.comtag:blogger.com,1999:blog-29561155.post-30124954777188899612007-08-24T16:11:00.000+04:002007-08-24T16:11:00.000+04:00>Короче. К черту скрипты, пишем все на одном мощно...<I>>Короче. К черту скрипты, пишем все на одном мощном, удобном, кратком и продуктивном языке.</I><BR/>Ы? А как же http://vshabanov-ru.blogspot.com/2006/10/blog-post_3256.html ?<BR/><BR/>C++ гораздо удобней во многих задачах, например на стыках с Direct3D, где мы ворочаем мегабайтными массивами с текстурами и геометрией.<BR/><BR/><BR/>И ещё. Про питон я могу расказать другому человеку за пару часов. Хаскель - сначала потребует пятилетнего высшего образования в университете, для прививания математического мышления, и ещё месяц на привыкание._winniehttps://www.blogger.com/profile/04382725998308329157noreply@blogger.comtag:blogger.com,1999:blog-29561155.post-68495414645608994732007-08-24T14:38:00.000+04:002007-08-24T14:38:00.000+04:00>> to evolving jerkСкриптовыми языками динамически...>> to evolving jerk<BR/><BR/><I>Скриптовыми языками динамические языки называют те, кто ими никогда и не пользовался.</I><BR/><BR/>Заметьте, в конце я также причислил к скриптовым языкам и окемл и хаскелл. Скриптовость -- это не столько свойство языка, сколько способ его использования.<BR/><BR/><I>Те, кто пользуется, еще как применяют их в качестве основных...</I><BR/><BR/>Дело в том, что я тоже применял.<BR/><BR/>Неудачно получилось, что в посте сошлись две идеи: то что скрипты используют из-за неудобности основного языка и то, что хаскелл и окемл (по моему мнению) заметно лучше подходят для многих (в том числе скриптовых) задач.Vladimir Shabanovhttps://www.blogger.com/profile/14322574042735481057noreply@blogger.comtag:blogger.com,1999:blog-29561155.post-41034654721642948142007-08-24T14:22:00.000+04:002007-08-24T14:22:00.000+04:00>> to dulanovНасчет DSL. Дело в том, что тот-же ок...>> to dulanov<BR/><BR/>Насчет DSL. Дело в том, что тот-же окемл, а уж тем более хаскелл за счет возможности введения любых операторов (а в хаскеле любую ф-ю можно превратить в оператор), а также за счет большей высокоуровневости, позволяют создавать очень сносные EDSL (Embedded DSL -- встроенные в язык).<BR/><BR/>Эти EDSL, конечено не такие удобные как специальный язык, но трудозатраты на их разработку заметно меньше. И, к тому же, в отличии от отдельного DSL, в EDSL можно использовать весь основной язык. А что самое приятное, так это то, что они также проверяются компилятором, как основной язык.<BR/><BR/>Насчет макросов -- если это про то, что в MS Office, то есть отличный пример у Adobe -- actions, где можно запоминать и повторять действия пользователя вообще без программирования. Если про макросы a-la lisp, то несмотря на их мощность это инструмент достаточно корявый, т.к. не проверяется компилятором и может приводить к трудно уловимым ошибкам.Vladimir Shabanovhttps://www.blogger.com/profile/14322574042735481057noreply@blogger.comtag:blogger.com,1999:blog-29561155.post-69935323729046775682007-08-24T12:41:00.000+04:002007-08-24T12:41:00.000+04:00Скриптовыми языками динамические языки называют те...Скриптовыми языками динамические языки называют те, кто ими никогда и не пользовался. Те, кто пользуется, еще как применяют их в качестве основных и уж точно в качестве glue languages. Поэтому вы, Владимир, похоже просто очередной провокатор флейма, чей блог поначалу показался интересным и без херни.<BR/><BR/>Пишите и дальше, но уже для других.Michaelhttps://www.blogger.com/profile/04068753572848885780noreply@blogger.com