OberonCore https://forum.oberoncore.ru/ |
|
Code Contracts в .NET и монополия C# https://forum.oberoncore.ru/viewtopic.php?f=26&t=2497 |
Страница 1 из 2 |
Автор: | Alexey Veselovsky [ Вторник, 30 Март, 2010 01:56 ] |
Заголовок сообщения: | Code Contracts в .NET и монополия C# |
http://zouev.blogspot.com/2010/03/code- ... net-c.html Евгений Зуев в своем блоге пишет: Цитата: В последней (четвертой) версии .NET и, соответственно, в VS2010, появились средства спецификации параметров, пред- и постусловий, инвариантов классов и всего того, что с подачи Бертрана Майера называется Code Contracts или Design by Contract.
... Но вот как быть с такими промышленными языками, как Eiffel и Scala? С введением поддержки контрактного программирования C# практически полностью "покроет" почти все преимущества Эйфеля, а то немногое особенное, что еще есть в этом языке, вряд ли окажется причиной выбора этого языка для реальных проектов. И сейчас не очень понятно, какова популярность Эйфеля как такового (в индексе TIOBE он сильно ниже первых пятидесяти языков), а его присутствие в мире .NET кажется совершенно эфемерным... |
Автор: | Валерий Лаптев [ Вторник, 30 Март, 2010 09:58 ] |
Заголовок сообщения: | Re: Code Contracts в .NET и монополия C# |
Спасибо. Интересно. Но мне думается, что более перспективным был бы путь TopSpeed. Не в один язык все впихнуть, а разрешить в рамках одной программы писать на разных языках. В одной среде, да еще с интерпретатором это легко слделать. Зато можно каждый отдельный язык оптимизировать по полной. А так получается монcтр, как в комментах заметили, типа PL-1. |
Автор: | Alexey Veselovsky [ Вторник, 30 Март, 2010 11:22 ] |
Заголовок сообщения: | Re: Code Contracts в .NET и монополия C# |
Валерий Лаптев писал(а): Спасибо. Интересно. Но мне думается, что более перспективным был бы путь TopSpeed. Не в один язык все впихнуть, а разрешить в рамках одной программы писать на разных языках. В одной среде, да еще с интерпретатором это легко слделать. Зато можно каждый отдельный язык оптимизировать по полной. Кто такое TopSpeed? Собственно в рамках одной программы никто не мешает писать на разных языках и сейчас -- см. .net/java, да и в обычной программулине нативненькой никто не мешает мешать множество языков в рамках одного бинаря. Вопрос лишь в том, на сколько это удобно. И насколько много придется прослоек делать для конвертации форматов данных и, самое главное, конвертации абстракций из одного ЯП в другой. Я например слабо себе представляю как какие-нибудь type classes из хаскеля + тамошний вывод типов конвертировать в какую-нибудь скажем те Аду. Или, того хуже, в какой-нибудь пролог ![]() Валерий Лаптев писал(а): А так получается монcтр, как в комментах заметили, типа PL-1. Это я и заметил в оных комментариях ![]() |
Автор: | Иван Кузьмицкий [ Вторник, 30 Март, 2010 11:26 ] |
Заголовок сообщения: | Re: Code Contracts в .NET и монополия C# |
TopSpeed, о-о-о-о, это история! Модула-2, Кларион и пр.: http://www.nf-team.org/drmad/stuff/t.htm (тут Топспидом кличут среду, но не суть) http://www.infocity.kiev.ua/db/content/db052.phtml http://ru.wikipedia.org/wiki/JPI: Цитата: Jensen & Partners International образовалась выходом из Borland International в 1987 году[1], когда Нильс Йенсен (один из основателей Borland International и вице-президент) вместе с группой разработчиков покинул ее[2] из-за расхождения во взглядах на качество компиляторов. В то время президент компании[3] выпустил, чтобы не отставать от Microsoft, очередную версию компилятора Си, весьма недоделанную.
JPI вышли на рынок с уникальным продуктом, аналогов которому нет до сих пор - TopSpeed JPI. Идеалогия этого продукта заключалась в том, что под единой интегрированной средой разработки были объединены такие языки программирования как Assembler 80x86, Pascal, Modula-2, Ada, C, С++, Fortran. Оптимизирующие трансляторы, объединённые единым мощным компилятором-кодогенератором, общими библиотеками, общим компоновщиком и общей интегрированной пользовательской средой с отладчиком. Группа разработчиков могла работать над единым проектом на разных языках. TopSpeed JPI выполнял генерацию кода для трех операционных сред: DOS, Windows, OS/2. |
Автор: | Geniepro [ Вторник, 30 Март, 2010 11:37 ] |
Заголовок сообщения: | Re: Code Contracts в .NET и монополия C# |
Валерий Лаптев писал(а): Не в один язык все впихнуть, а разрешить в рамках одной программы писать на разных языках. В одной среде, да еще с интерпретатором это легко сделать. Зато можно каждый отдельный язык оптимизировать по полной. То есть путь .NET'а...
|
Автор: | Сергей Губанов [ Вторник, 30 Март, 2010 12:24 ] |
Заголовок сообщения: | Re: Code Contracts в .NET и монополия C# |
Geniepro писал(а): То есть путь .NET'а... Не, у дотнета рантайм узковат. Языки под него либо будут все одинаковыми, либо неэффективными.
|
Автор: | Alexey Veselovsky [ Вторник, 30 Март, 2010 12:35 ] |
Заголовок сообщения: | Re: Code Contracts в .NET и монополия C# |
Любая попытка приведения языков к общему высокоуровневому знаменателю влечет за собой именно это. Ну и соответственно неизбежно появляется God Language который объемлет всё. В случае .net'a это C#. |
Автор: | Alexey Veselovsky [ Вторник, 30 Март, 2010 12:38 ] |
Заголовок сообщения: | Re: Code Contracts в .NET и монополия C# |
Иван Кузьмицкий писал(а): http://ru.wikipedia.org/wiki/JPI: Цитата: Идеалогия этого продукта заключалась в том, что под единой интегрированной средой разработки были объединены такие языки программирования как Assembler 80x86, Pascal, Modula-2, Ada, C, С++, Fortran. Ну, т.е. объединяла в себе однотипные и родственные языки. Если бы они сюда умудрились бы скажем sml или ocaml красиво увязать, или там prolog какой, тогда имело бы смысл посмотреть. |
Автор: | Илья Ермаков [ Вторник, 30 Март, 2010 13:01 ] |
Заголовок сообщения: | Re: Code Contracts в .NET и монополия C# |
Вот на Эльбрусах увязывались разные семейства. Посмотрите Сафронова на ОберонКоре, интересная книга. |
Автор: | Geniepro [ Вторник, 30 Март, 2010 14:20 ] |
Заголовок сообщения: | Re: Code Contracts в .NET и монополия C# |
Сергей Губанов писал(а): Не, у дотнета рантайм узковат. Языки под него либо будут все одинаковыми, либо неэффективными. VB.NET, F#, Nemerle, Boo -- довольно сильно отличаются от C# или Managed С++, однако реализованы достаточно эффективно. |
Автор: | Сергей Губанов [ Вторник, 30 Март, 2010 15:29 ] |
Заголовок сообщения: | Re: Code Contracts в .NET и монополия C# |
Geniepro писал(а): VB.NET, F#, Nemerle, Boo Не знаю про экзотику, а VB.NET - те же яйца что и C#, только вид сбоку.
|
Автор: | Alexey Veselovsky [ Вторник, 30 Март, 2010 16:03 ] |
Заголовок сообщения: | Re: Code Contracts в .NET и монополия C# |
Сергей Губанов писал(а): Geniepro писал(а): VB.NET, F#, Nemerle, Boo Не знаю про экзотику, а VB.NET - те же яйца что и C#, только вид сбоку.Это "экзотика" отныне входит в стандартную поставку VS 2010. По крайней мере F#. |
Автор: | Сергей Губанов [ Вторник, 30 Март, 2010 18:16 ] |
Заголовок сообщения: | Re: Code Contracts в .NET и монополия C# |
Так F#-пу может расширяемые собственнозначные записи и собственозначные массивы с модульность может и не нужны? |
Автор: | Alexey Veselovsky [ Вторник, 30 Март, 2010 19:19 ] |
Заголовок сообщения: | Re: Code Contracts в .NET и монополия C# |
Сергей Губанов писал(а): Так F#-пу может расширяемые собственнозначные записи и собственозначные массивы с модульность может и не нужны? Под собственнозначностью подразумевается размещение на стеке? Вообще, вначале рекомендую ознакомиться с F#. А то сейчас начнется разговор слепого с глухим ![]() |
Автор: | AVC [ Среда, 31 Март, 2010 00:43 ] |
Заголовок сообщения: | Re: Code Contracts в .NET и монополия C# |
Alexey Veselovsky писал(а): Вообще, вначале рекомендую ознакомиться с F#. Мне лично жалко моего времени на обрубок OCaml. Сейчас много разных бездумных экспериментов с ФЯ (мода).В моей области (встроенные приложения) пользы от ФЯ нет. Впрочем, готов пересмотреть свою позицию, если кто-нибудь здесь внятно объяснит пользу от F#, вместо барственной "рекомендации". |
Автор: | ain [ Среда, 31 Март, 2010 06:15 ] |
Заголовок сообщения: | Re: Code Contracts в .NET и монополия C# |
Alexey Veselovsky писал(а): Иван Кузьмицкий писал(а): http://ru.wikipedia.org/wiki/JPI: Цитата: Идеалогия этого продукта заключалась в том, что под единой интегрированной средой разработки были объединены такие языки программирования как Assembler 80x86, Pascal, Modula-2, Ada, C, С++, Fortran. Ну, т.е. объединяла в себе однотипные и родственные языки. Если бы они сюда умудрились бы скажем sml или ocaml красиво увязать, или там prolog какой, тогда имело бы смысл посмотреть. "Visual Prolog - логический и объектно-ориентированный язык программирования, который развивался от Turbo Prolog и PDC Prolog. Visual Prolog поставляется с интегрированной средой разработки. Язык полностью компилируется и может быть связан, например, с C++ кодом" " Objective C. Это компилируемый объектно-ориентированный язык программирования корпорации Apple, построенный на основе языка Си и парадигм Smalltalk". |
Автор: | Geniepro [ Среда, 31 Март, 2010 07:16 ] |
Заголовок сообщения: | Re: Code Contracts в .NET и монополия C# |
AVC писал(а): Alexey Veselovsky писал(а): Вообще, вначале рекомендую ознакомиться с F#. Мне лично жалко моего времени на обрубок OCaml.У F# есть некоторые отличия от Окамля -- (необязательные) значимые отступы, система типов (ООП-часть) немного подстроена под .NET (хотя и не полностью похожа на C#) -- ориентация на .NET. То есть F# можно назвать Ocaml.NET... AVC писал(а): В моей области (встроенные приложения) пользы от ФЯ нет. Впрочем, готов пересмотреть свою позицию, если кто-нибудь здесь внятно объяснит пользу от F#, вместо барственной "рекомендации". Есть примеры использования ФЯ в вашей области. Например, во втором номере журнала "Практика ФП" упоминался коммерческий проект языка для девайса с очень ограниченными ресурсами. Сам язык, правда, был больше императивным, чем функциональным, но транслятор его был написан на Окамле. |
Автор: | Geniepro [ Среда, 31 Март, 2010 07:22 ] |
Заголовок сообщения: | Re: Code Contracts в .NET и монополия C# |
Сергей Губанов писал(а): Так F#-пу может расширяемые собственнозначные записи и собственозначные массивы с модульность может и не нужны? F# -- это .NET'овский язык. Если это не нужно в C#, значит без этого вполне можно жить. Модули в F# есть, но они отображаются в .NET'овские классы. Можно ли делать выгружаемые модули -- не знаю, не сталкивался с такой нуждой, но раз что-то подобное можно делать вообще в .NET (что-то в районе application domain, вроде бы), то можно сделать и в F#... |
Автор: | Alexey Veselovsky [ Среда, 31 Март, 2010 10:46 ] |
Заголовок сообщения: | Re: Code Contracts в .NET и монополия C# |
Ну, F# интересен уже тем, что там есть понятия единиц измерения (размерности), и это входит в систему типов (опционально, т.е. можно пользоваться а можно нет). Да, речь идет о тех самых размерностях что используются столь широко в физике, а не о какой-то очередной абстрактной фигне ![]() В OCaml'e этого нет. Более того, я подобного не видел ни в одном другом ЯП. |
Автор: | Alexey Veselovsky [ Среда, 31 Март, 2010 10:51 ] |
Заголовок сообщения: | Re: Code Contracts в .NET и монополия C# |
AVC писал(а): Alexey Veselovsky писал(а): Вообще, вначале рекомендую ознакомиться с F#. Мне лично жалко моего времени на обрубок OCaml. Сейчас много разных бездумных экспериментов с ФЯ (мода).В моей области (встроенные приложения) пользы от ФЯ нет. Впрочем, готов пересмотреть свою позицию, если кто-нибудь здесь внятно объяснит пользу от F#, вместо барственной "рекомендации". А .net вообще каким боком ко встроенным приложениям? |
Страница 1 из 2 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |