Здравствуйте, johny5, Вы писали:
BZ>>недостатки же хаскела, как и любого другого не mainstream языка, связаны с отсутвием IDE (навигация по коду, визуальное редактирование ...
глючное и половинчатое решение, если сравнивать его с уровнем поддержки того же C#
надёжная и вероятно на втором месте по функциональности — хаскел-мода для емакса. я им не пользуюсь, но рискну прелполождить, что там нет поддержки проектов, разумеется редактирования GUI, вряд ли есть подсказка по аргументам при наборе, поддержки отладчика и т.д.
Еще не нашел?
E>Да OCaml-то вроде по всем критериям подходит. Но опять же, не любитель я (пока?) функциональных языков. И это для OCaml самая большая проблема в моем лично случае.
Я тут (уже не первый раз ) начал ковырять Ocaml. В общем тебя обманули
Это вполне нормальный императивный язык.
let s = ref 0;;
let i = ref 0;;
while !i < 10 do
s := !s + !i;
i := !i + 1;
done;;
Printf.printf "%d \n" !s;;
Я пока спотыкаюсь только на слишком жесткой типизации, сначала споткнулся на объявлении и использовании мутабельных переменных, но как только понял что они всегда ссылки и их надо разыминовывать стало просто.
E>Меня ведь почему C++ не устраивает -- потому что вчерашних студентов за полгода-год на C++ нормально программировать не научишь (кстати, есть у меня предположение, что с Oberon-ом или Modula ситуация была бы совсем другой). Но C++ хоть императивный, а сейчас если чему-то и учат студентов, то именно императивным языкам. И мозги людям не нужно перестраивать, последовательный код и есть последовательный. А тут неопытного человека да с головой в функциональщину.
Мне кажется что как раз у неопытного функциональщина пойдет проще. Ну и императивная часть окамла это язык по уровню сложности близкий к турбо паскалю.
По моему если пересилить синтаксис то всем твоим критериям Ocaml удовлетворяет.
Здравствуйте, FR, Вы писали:
FR>Здравствуйте, eao197, Вы писали:
FR>Еще не нашел?
Нет, пока не нашел Тем более, что у меня сейчас на C++ столько работы, что даже какой-нибудь proof-of-concept проектик на новом языке некогда начинать.
Но ближе всего к тому, что хотелось бы, сейчас для меня C# 3.0 (в особенности lambdas и extension methods симпатично выглядят). Тем более, что недавно вышедший Mono 1.2.6 декларирует практически полную поддержку C# 3.0.
Однако, какова там ситуация с библиотеками и насколько качественна реализация OCaml для Windows -- еще вопрос.
FR>По моему если пересилить синтаксис то всем твоим критериям Ocaml удовлетворяет.
Возможно, нужно в нем покопаться более тчательно. Хотя мне Lazy Cjow Rhrr ссылочку подкинул (еще раз ): http://www.podval.org/~sds/ocaml-sucks.html -- кое-какие вещи там заставляют задуматься. Да и если сравнивать обеспеченность OCaml-а и C# всякими библиотеками, IDE, профайлерами, отладчиками и пр. лабудой, то вряд ли OCaml подойдет для того, чтобы за него садить вчерашних студентов.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, eao197, Вы писали:
E>Казалось бы, языков программирования море. Как говорят некоторые, каждый год появляется и исчезает порядка двухсот языков. А как начнешь выбирать что-нибудь достойное, так кроме C++, Java, C# и еще нескольких функциональных (OCaml, Haskell) ничего и не видно (это я утрирую, конечно, но не сильно).
E>В общем, ищется не сильно мейнстримовый язык, который бы удовлетворял следующим требованиям:
А средство для создания таких языков не подойдёт ?
Взять MPS от JetBrains, сделать на нем свой язык для своей предметной области и отобразить его хоть в Java, хоть в С++, хоть в C#. Да знаю, MPS ещё в бете, но думаю, его можно как один из вариантов рассматривать (покрайней мере решить на ней proof-of-concept точно стоит, )
Здравствуйте, Didro, Вы писали:
D>А средство для создания таких языков не подойдёт ?
D>Взять MPS от JetBrains, сделать на нем свой язык для своей предметной области и отобразить его хоть в Java, хоть в С++, хоть в C#. Да знаю, MPS ещё в бете, но думаю, его можно как один из вариантов рассматривать (покрайней мере решить на ней proof-of-concept точно стоит, )
Не, ну нафиг создание собственных языков.
Мне нужен готовый язык с готовой инфраструктуров для того, чтобы на нем заниматься велосипедостроением.
А чтобы построить свой язык, на котором построить свой велосипед... Надеюсь, я уже достаточно стар, чтобы не ввязываться в такие прожекты.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, eao197, Вы писали:
E>Нет, пока не нашел Тем более, что у меня сейчас на C++ столько работы, что даже какой-нибудь proof-of-concept проектик на новом языке некогда начинать.
E>Но ближе всего к тому, что хотелось бы, сейчас для меня C# 3.0 (в особенности lambdas и extension methods симпатично выглядят). Тем более, что недавно вышедший Mono 1.2.6 декларирует практически полную поддержку C# 3.0.
Ну как я понял там достаточно оптимизированный код, вряд-ли такой должен быть легко понятен.
E>Однако, какова там ситуация с библиотеками и насколько качественна реализация OCaml для Windows -- еще вопрос.
С библиотеками насколько я понял не очень хорошо.
По качеству реализации жалоб не слышал.
FR>>По моему если пересилить синтаксис то всем твоим критериям Ocaml удовлетворяет.
E>Возможно, нужно в нем покопаться более тчательно. Хотя мне Lazy Cjow Rhrr ссылочку подкинул (еще раз ): http://www.podval.org/~sds/ocaml-sucks.html -- кое-какие вещи там заставляют задуматься. Да и если сравнивать обеспеченность OCaml-а и C# всякими библиотеками, IDE, профайлерами, отладчиками и пр. лабудой, то вряд ли OCaml подойдет для того, чтобы за него садить вчерашних студентов.
Это да, в таких вещах нужна платформа. Я вот хочу пока попробовать небольшие модули для питона на Ocaml сделать, тем более наклевывается задачка на довольно сложный парсинг.
Здравствуйте, eao197, Вы писали:
E>Здравствуйте, Didro, Вы писали:
D>>А средство для создания таких языков не подойдёт ?
D>>Взять MPS от JetBrains, сделать на нем свой язык для своей предметной области и отобразить его хоть в Java, хоть в С++, хоть в C#. Да знаю, MPS ещё в бете, но думаю, его можно как один из вариантов рассматривать (покрайней мере решить на ней proof-of-concept точно стоит, )
E>Не, ну нафиг создание собственных языков. E>Мне нужен готовый язык с готовой инфраструктуров для того, чтобы на нем заниматься велосипедостроением.
Там речь о другом идет. Например, вот нет в Java языка для регулярных выражений, но есть куча Regexp-библиотек. Но библиотека не язык, сам понимаешь. Вот MPS позволяет встроить в Java DSL: язык регулярных выражений.
Выглядеть это будет вот так:
Так что это не совсем "создание собственных языков", инфраструктура базового языка остается доступной. Собственно тот же, SObjectizer , которого я к сожалению не знаю, если формально и не имеет собственного языка, то по факту строит этот язык на объектах (в этом смысле SObjectizer, как и любая объектно-ориентированная система, является DSL-ем)
Вообще говоря, любое создание иерархии классов (или набора функций), отражающих предметную область — и есть создание DSL'я (о чем вполне однозначно говорит Дмитриев в статье). Просто мы это "так не называем".
То есть вот это — тоже DSL (надуманный пример на несуществующем языке):
window = new Window
button = new Button
button.size = (100, 25)
button.caption = 'WTF?'
window.layout(button)
Другое дело — что Дмитриев считает необходимым создать кучу визуальных тулзов, явно поддерживающих такой подход; а мы с Владом внезапно сошлись на том, что достаточно одного языка с ОЧЕНЬ выразительным синтаксисом.
E>А чтобы построить свой язык, на котором построить свой велосипед... Надеюсь, я уже достаточно стар, чтобы не ввязываться в такие прожекты.
Надеюсь, что нет.
Здравствуйте, FR, Вы писали:
E>>Нет, пока не нашел Тем более, что у меня сейчас на C++ столько работы, что даже какой-нибудь proof-of-concept проектик на новом языке некогда начинать.
E>>Но ближе всего к тому, что хотелось бы, сейчас для меня C# 3.0 (в особенности lambdas и extension methods симпатично выглядят). Тем более, что недавно вышедший Mono 1.2.6 декларирует практически полную поддержку C# 3.0.
FR>Ты это осторожней
Имхо, сейчас нужно проявлять осторожность в игнорировании .NET-а, а не при переходе на него
MS пришла с .NET всерьез и надолго. За 6-ть лет в язык было добавлено больше, чем в Java за пятнадцать лет. И все это без серьезного груза совместимости с уже написанными мегатоннами Ынтырпрайз кода (как в случае с Java).
Так что игнорирование C# сейчас может выйти себе дороже
E>>Однако, какова там ситуация с библиотеками и насколько качественна реализация OCaml для Windows -- еще вопрос.
FR>С библиотеками насколько я понял не очень хорошо. FR>По качеству реализации жалоб не слышал.
Где-то я недавно слышал, что один из основных разработчиков OCaml-а забил на претензии по поводу Windows-реализации. Мол, вне Unix нет шасця.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, eao197, Вы писали:
E>Здравствуйте, FR, Вы писали:
E>>>Но ближе всего к тому, что хотелось бы, сейчас для меня C# 3.0 (в особенности lambdas и extension methods симпатично выглядят). Тем более, что недавно вышедший Mono 1.2.6 декларирует практически полную поддержку C# 3.0.
FR>>Ты это осторожней
E>Имхо, сейчас нужно проявлять осторожность в игнорировании .NET-а, а не при переходе на него E>MS пришла с .NET всерьез и надолго. За 6-ть лет в язык было добавлено больше, чем в Java за пятнадцать лет. И все это без серьезного груза совместимости с уже написанными мегатоннами Ынтырпрайз кода (как в случае с Java).
Ява онаж вроде в 95-м появилась или я глючу? Откуда 15 лет?
Про мегатонны — это согласен, правда в мейнстриме это неизбежное зло.
Здравствуйте, Курилка, Вы писали:
E>>Имхо, сейчас нужно проявлять осторожность в игнорировании .NET-а, а не при переходе на него E>>MS пришла с .NET всерьез и надолго. За 6-ть лет в язык было добавлено больше, чем в Java за пятнадцать лет. И все это без серьезного груза совместимости с уже написанными мегатоннами Ынтырпрайз кода (как в случае с Java).
К>Ява онаж вроде в 95-м появилась или я глючу? Откуда 15 лет?
Во-первых, округлил
Во-вторых, насколько я помню, основной дизайн языка был готов еще в 93-м, в начале 94-го. После чего шла разработка JDK и подготовка Java к выпуску как платформу для Web апплетов.
К>Про мегатонны — это согласен, правда в мейнстриме это неизбежное зло.
Просто в отношении Java мейнстрим какой-то однобокий, в основном server side для корпоративных систем. Мобильные телефоны только совсем недавно стали достаточно мощными для нормальной поддержки Java приложений.
У меня складывается впечатление, что .NET сможет заползти в гораздо большее количество ниш, чем это сделала Java. Во многом благодоря очень близким отношениям с Windows.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, eao197, Вы писали:
E>Просто в отношении Java мейнстрим какой-то однобокий, в основном server side для корпоративных систем. Мобильные телефоны только совсем недавно стали достаточно мощными для нормальной поддержки Java приложений.
Дак проблема в дополнительной платформе имхо, которую надо ставить и т.п. У сана рычагов в данной нише заметно поменьше чем у МС.
E>У меня складывается впечатление, что .NET сможет заползти в гораздо большее количество ниш, чем это сделала Java. Во многом благодоря очень близким отношениям с Windows.
Ну посмотрим, пока как-то он развивается-то развивается, а вот экспансии на рынке со своей точки зрения я не наблюдаю особо, хотя может быть не особо всматриваюсь.
Здравствуйте, Курилка, Вы писали:
E>>У меня складывается впечатление, что .NET сможет заползти в гораздо большее количество ниш, чем это сделала Java. Во многом благодоря очень близким отношениям с Windows.
К>Ну посмотрим, пока как-то он развивается-то развивается, а вот экспансии на рынке со своей точки зрения я не наблюдаю особо, хотя может быть не особо всматриваюсь.
Ну экспансия и глобальный захват рынка -- это меня мало интересует.
А вот если выбирать платформу для начала какой-то новой разработки, которая делается с нуля, то оказывается, что C# 3.0
— содержит достаточное количество вкусностей для того, чтобы на нем программировать здесь и сейчас (локальный вывод типов, лямбды, генерики);
— имеет большую стандартную библиотеку .Net Framework;
— имеет хорошую поддержку со стороны средств разработки;
— имеет большое количество информационных ресурсов в виде книг, сайтов, форумов, курсов и пр.
Здесь ему достойную конкуренцию может составить разве что Java. Но, опять же, C# более молодой, динамичный. Так что если не брать в расчет какие-то имеющиеся наработки или еще какие-то факторы, то C# сейчас выглядит предпочтительнее Java.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, Didro, Вы писали:
D>Там речь о другом идет. Например, вот нет в Java языка для регулярных выражений, но есть куча Regexp-библиотек. Но библиотека не язык, сам понимаешь. Вот MPS позволяет встроить в Java DSL: язык регулярных выражений.
D>Выглядеть это будет вот так: D>
Мне не очень нравится идея изменения синтаксиса основного языка для того, чтобы встроить в него некоторую новую функциональность. Наверное максимум, на который я согласен, это набор описаний на внешних языках, которые в pre- или compile-, или run-time разворачиваются в какой-то кода.
А подход, когда это расширение можно делать только в специально ориентированном для этого визуальном инструменте выглядит вообще диковато. Имхо, программа должна быть простым текстом, который можно быстро подправить хоть в Far-е, хоть в ViM-е, хоть в ed-е через ssh.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, eao197, Вы писали:
E>Да и если сравнивать обеспеченность OCaml-а и C# всякими библиотеками, IDE, профайлерами, отладчиками и пр. лабудой, то вряд ли OCaml подойдет для того, чтобы за него садить вчерашних студентов.
F#?
... << RSDN@Home 1.2.0 alpha rev. 725 on Windows Vista 6.0.6000.0>>
Здравствуйте, AndrewVK, Вы писали:
E>>Да и если сравнивать обеспеченность OCaml-а и C# всякими библиотеками, IDE, профайлерами, отладчиками и пр. лабудой, то вряд ли OCaml подойдет для того, чтобы за него садить вчерашних студентов.
AVK>F#?
Насколько я понял из ссылок на блоги разработчиков F#, которые здесь недавно проскакивали, F# еще не стабилизировался полностью.
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
на клиентской стороне очень рекомендую ActionScript 3.0 About ActionScript
ActionScript 3.0 offers a robust programming model that will be familiar to developers with a basic knowledge of object-oriented programming. Some of the key features of ActionScript 3.0 include the following:
A new ActionScript Virtual Machine, called AVM2, that uses a new bytecode instruction set and provides significant performance improvements
A more modern compiler code base that adheres much more closely to the ECMAScript (ECMA 262) standard and that performs deeper optimizations than previous versions of the compiler
An expanded and improved application programming interface (API), with low-level control of objects and a true object-oriented model
A core language based on the upcoming ECMAScript (ECMA-262) edition 4 draft language specification
An XML API based on the ECMAScript for XML (E4X) specification (ECMA-357 edition 2). E4X is a language extension to ECMAScript that adds XML as a native data type of the language.
An event model based on the Document Object Model (DOM) Level 3 Events Specification
Здравствуйте, Left2, Вы писали:
L>Боюсь тебя смутить, но абсолютно такой же язык встроен в Internet Explorer и Mozilla. Javascript называется
совершенно не смутит... ибо пожеланиям автора ветки полностью удовлетворяет
Обязательные требования
* бесплатный, а еще лучше свободный. Не важно, под какой лицензией будет сам компилятор, важно, чтобы лицензии на run-time и основные стандартные библиотеки были под нормальными лицензиями (BSD, MIT, X, LGPL, Apache и пр.), допускающими использование в закрытых проектах; * статически типизированный и компилируемый;
* безопасный. Т.е. либо работающий на какой-нибудь виртуальной машине, либо компилируемый в нативный код, но с тотальными проверками (в частности, указателей и индексов на валидность);
* со сборкой мусора;
* с поддержкой исключений (крайне желательно с поддержкой stack trace "из коробки");
* живой и более-менее стабильный. Т.е. язык, для которого переодически выходят релизы и вокруг которого есть живое сообщество;
* наличие готовых "родных" реализаций, как минимум, для Windows и какого-нибудь Linux/BSD. На крайний случай подойдет и поддержка Windows через Cygwin/MSYS.
Очень желательные требования
* объектно-ориентированный;
* быстрый.
Желательные требования
* оснащенность библиотеками.
Пойми, мил человек — я не сравниваю ActionScript с JavaScript Просто потому что это один и тот же язык (он же ECMAScript), только с разными библиотеками/фреймвоками и встроенный в разные программы. И по скорости ActionScript никак не будет шустрее JavaScript, разница будет как между разными компиляторами/интерпретаторами одного и того же языка. Ну и про компилируемость ты наверное шутишь...