LINUX.ORG.RU

Работаем с Mono. Часть 1: Основные принципы Mono, инструменты, создание простейшего приложения

 


0

3

Mono — программная платформа, позволяющая разработчикам достаточно просто создавать развитые кроссплатформенные приложения. Технология Mono разрабатывается в виде open source реализации технологии .NET Framework от Microsoft и поддерживает стандарты ECMA-334 (стандарт языка C#) и ECMA-335 (стандарт среды исполнения (Common Language Runtime, CLI). Открытость указанных стандартов позволяет уменьшить проблемы создания кроссплатформенных приложений. В этой статье рассматриваются основные возможности среды исполнения Mono.

>>> Подробности

★★★

Проверено: mono ()
Ответ на: комментарий от Nagwal

я только не понимаю, почему вы питон считаете скриптовым языком? И питон и ява и си шарп интерпретаторы, другое дело у них различная производительность.

yanka ★★
()
Ответ на: комментарий от yanka

> я только не понимаю, почему вы питон считаете скриптовым языком? И питон и ява и си шарп интерпретаторы, другое дело у них различная производительность.

Ну во-первых надо определиться, что такое скриптовый язык. Во-вторых, советую узнать, что такое интерпретаторы и больше не говорить глупостей.

EvilBlueBeaver
()
Ответ на: комментарий от EvilBlueBeaver

Питон как раз скриптовый язык, а вот за то, что окрестили жабу и решеточный си интерпретируемыми, предать вас анафеме.

EvilBlueBeaver
()
Ответ на: комментарий от EvilBlueBeaver

хорошо, не так выразилась, мне непонятно почему питон считают скриптовым, то есть языком котрый применяют ограниченно для некоторых утилитарных задач.

yanka ★★
()
Ответ на: комментарий от yanka

> хорошо, не так выразилась, мне непонятно почему питон считают скриптовым, то есть языком котрый применяют ограниченно для некоторых утилитарных задач.

Может потому что таковым он и является? Можно и на баше такого наворотить, если что, я даже видел сапера на cmd.exe, но они один фиг остаются скриптовыми языками.

EvilBlueBeaver
()
Ответ на: комментарий от annulen

И что это меняет принципиально? Байт код , это не машинный язык, многопоточность есть и в питоне. И питон и ява и си шарп интерпретаторы

yanka ★★
()
Ответ на: комментарий от annulen

>> И питон и ява и си шарп интерпретаторы

JIT, многопоточность

У питона уже все стало нормально с многопоточностью?

EvilBlueBeaver
()
Ответ на: комментарий от yanka

я только не понимаю, почему вы питон считаете скриптовым языком?

Потому, что использование питона (и вообще любого языка с динамической типизацией) в проектах крупнее нежели написание скриптов под никсы или веб-сайта на десяток страниц - оборачивается в дальнейшем редкостным pain in the ass в доработке и поддержке. Может конечно и не обернуться, если весь код написан грамотно, да еще и документирован и тестами покрыт. Только я вот уже лет 10 в области разработки ПО работаю и таких проектов могу вспомнить только пару штук.

И питон и ява и си шарп интерпретаторы, другое дело у них различная производительность.

У шарпа и жабы есть волшебная штука, jit называется. Поэтому все критичные куски кода не интерпретируются, а выполняются напрямую на камне.

Nagwal ★★★★
()
Ответ на: комментарий от yanka

>многопоточность есть и в питоне

А ещё там есть GIL :]

yoghurt ★★★★★
()
Ответ на: комментарий от yanka

> И что это меняет принципиально? Байт код , это не машинный язык, многопоточность есть и в питоне. И питон и ява и си шарп интерпретаторы

Если под интерпретацией вы понимаете интерпретацию байт-кода, то да, это интерпретаторы (ну если опять же не трогать JIT). Но при такой логике процессор тоже можно назвать интерпретатором машкода.

EvilBlueBeaver
()
Ответ на: комментарий от Nagwal

> jit

Оно есть и для питона. А еще есть Cython, например.

pevzi ★★★★★
()
Ответ на: комментарий от Nagwal

У шарпа и жабы есть волшебная штука, jit называется. Поэтому все критичные куски кода не интерпретируются, а выполняются напрямую на камне.

у пистона тоже есть волшебная штука, Си называется, критические куски кода туда засовываются и наслаждаешься теплыми и мягким ;)

real_maverick ★★★
()
Ответ на: комментарий от yanka

> Как я устала, пошла готовить ужин...

Да не, мы правда хорошие....

Ну вот, еще одну девушку мы выгнали из-за своей черствости. Только Сильви и терпит нас :)

EvilBlueBeaver
()
Ответ на: комментарий от sun-lsd

> Потому что питон - тормоз, что является определяющим признаком всех скриптовых языков.

То есть, определение скриптовых языков — языки, которые тормозят? (: забавно.

pevzi ★★★★★
()
Ответ на: комментарий от yanka

> мне непонятно почему питон считают скриптовым

Да дураки-каие-то, обчитались мануалов и строят из себя невесть что.

Gukl ★★★
()
Ответ на: комментарий от real_maverick

у пистона тоже есть волшебная штука, Си называется, критические куски кода туда засовываются и наслаждаешься теплыми и мягким ;)

Теплым и мягким segmentation fault на критичном сервере? Или теплым и мягким хреном, на который тебя пошлет заказчик, увидев в бюджетах графы с расходами на тестирование?

Nagwal ★★★★
()
Ответ на: комментарий от Nagwal

> Теплым и мягким segmentation fault на критичном сервере? Или теплым и мягким хреном, на который тебя пошлет заказчик, увидев в бюджетах графы с расходами на тестирование?

Вы не умеет готовить сишечку. Хотя бы валгриндом прогнать это святое. А кривые руки они везде кривые.

EvilBlueBeaver
()
Ответ на: комментарий от pevzi

>То есть, определение скриптовых языков — языки, которые тормозят? (: забавно.

нет, конечно, но питон действительно тормоз. sun-lsd +1

bromm
()
Ответ на: комментарий от Nagwal

У шарпа и жабы есть волшебная штука, jit называется. Поэтому все критичные куски кода не интерпретируются, а выполняются напрямую на камне.

psyco

k0valenk0_igor ★★★
()
Ответ на: комментарий от bromm

> но питон действительно тормоз

Sad but true. Конечно, есть несколько способов повысить производительность (выше называл), но это совсем не то.

pevzi ★★★★★
()
Ответ на: комментарий от pevzi

>То есть, определение скриптовых языков — языки, которые тормозят? (: забавно.

Нет, но обычно языки, которые тормозят, скриптовые

annulen ★★★★★
()
Ответ на: комментарий от sun-lsd

> Это может мы ее терпим, из-за врожденной интеллигентности.

Ну как же так можно о богине линуксоидов?! Или я слишком долго был в заморозке? :)

EvilBlueBeaver
()
Ответ на: комментарий от k0valenk0_igor

> >У шарпа и жабы есть волшебная штука...

Ура!!! Аж настроение повысилось.... ой стой этож баян рваный, где вы его нашли? Говорят там же про java такой же лежит.

alx_me ★★☆
()
Ответ на: комментарий от EvilBlueBeaver

где вы увидели богиню, прошу прощения?

anonymous
()
Ответ на: комментарий от EvilBlueBeaver

Вы не умеет готовить сишечку. Хотя бы валгриндом прогнать это святое.

Я то может и не умею ее готовить (года 4 назад последний раз ее в руки брал). Только вот факта что из-за ошибки в жабе/шарпе у меня максимум что произойдет так это грохнется тред и отвалится один запрос, а в сях может и весь сервак полететь это не отменяет.

А кривые руки они везде кривые.

Угу. Именно поэтому стоит выбирать инструмент, дающий этим кривым рукам меньше возможностей накосячить.

Nagwal ★★★★
()
Ответ на: комментарий от sun-lsd

> Да всем пофиг. А вот фраза «она нас терпит» попахивает гендерным шовинизмом.

Ок, в следующий раз буду ставить теги <irony>

EvilBlueBeaver
()
Ответ на: комментарий от Nagwal

> Я то может и не умею ее готовить (года 4 назад последний раз ее в руки брал). Только вот факта что из-за ошибки в жабе/шарпе у меня максимум что произойдет так это грохнется тред и отвалится один запрос, а в сях может и весь сервак полететь это не отменяет.

Ну начнем с того, что в C# необработанное исключение в треде приводит к краху всего приложения.

Я все допускаю ошибки. Совершенно недавно накосячил в одном драйвере и он сегфолтился. Только вот основное приложение почему-то не упало. И узнал я об этом просто потому что мне позвонили и сказали, что прибор не до конца опрашивается, его снова ставят в очередь, а он снова не до конца опрашивается. ЧЯДНТ?

EvilBlueBeaver
()
Ответ на: комментарий от annulen

> Фигня, место девушки - на кухне :)

Ну yanka как раз туда и пошла :)

И вот это уже «гендерный шовинизм» ))

EvilBlueBeaver
()
Ответ на: комментарий от Nagwal

Угу. Именно поэтому стоит выбирать инструмент, дающий этим кривым рукам меньше возможностей накосячить.

Плохому танцору хороший инструмент не поможет.

k0valenk0_igor ★★★
()
Ответ на: комментарий от Nagwal

>Только вот факта что из-за ошибки в жабе/шарпе у меня максимум что произойдет так это грохнется тред и отвалится один запрос, а в сях может и весь сервак полететь это не отменяет.

А может и все приложение стать неработоспособным, смотря где это исключение выскочит

annulen ★★★★★
()
Ответ на: комментарий от Nagwal

>Угу. Именно поэтому стоит выбирать инструмент, дающий этим кривым рукам меньше возможностей накосячить.

Даешь быдлокодеров!

а жаль

bromm
()
Ответ на: комментарий от annulen

> Фигня, место девушки - на кухне :)

Вспомнилось

- Землю рабочим, фабрики крестьянам !!

- Ты чо, наоборот же.

- Да не, в прошлый раз пробовали - фигня получается.

EvilBlueBeaver
()
Ответ на: комментарий от Nagwal

> Только вот факта что из-за ошибки в жабе/шарпе у меня максимум что произойдет...

То есть вы выбрали библиотеку и следуете её путями и предъявляете нам что не используя доп библиотек мы мол можем отстрелить себе ногу? Да можем. Кто не хочет думать, тот берёт библиотеку поабстрактнее и подчиняясь правилам пищет под неё. Там уже реализовано разделение потоков и интерфейсы для поддержки этого разделения. Подайте на здоровье. Одновременно в вечном дебаге не всем нравится сидеть. Чем по-сути являются эти абстракции типа Mono,Java и прочая. У них есть своя область: ынтерпрайз, и свои хомячки. С бизнес моделью ориентированной на недоразработчика.

alx_me ★★☆
()
Ответ на: комментарий от annulen

А может и все приложение стать неработоспособным, смотря где это исключение выскочит

Может и стать. Только происходят такие ситуации гораздо реже. Чтобы одним исключением все j2ee приложение положить - это очень сильно постараться надо.

Nagwal ★★★★
()
Ответ на: комментарий от EvilBlueBeaver

>Я согласен. Она только жрет сотни памяти.

И проца, чтобы ускорять работу кода последовательной перекомпиляцией

annulen ★★★★★
()
Ответ на: комментарий от annulen

> И проца, чтобы ускорять работу кода последовательной перекомпиляцией

Ну проца не замечал если честно, а вот памяти на сервере откушано прилично.

EvilBlueBeaver
()
Ответ на: комментарий от alx_me

То есть вы выбрали библиотеку и следуете её путями и предъявляете нам что не используя доп библиотек мы мол можем отстрелить себе ногу? Да можем.

Я никому ничего не предъявляю. Просто выражаю свое мнение. Если есть желание отстрелить себе ногу - я не против, стреляй.

У них есть своя область: ынтерпрайз, и свои хомячки.

И для своей области они в данный момент являются лучшими решениями.

С бизнес моделью ориентированной на недоразработчика.

Что такое недоразработчик? Человек, рационально использующий свое время и использующий подходящий инструмент - недоразработчик?

Nagwal ★★★★
()
Ответ на: комментарий от annulen

>Фигня, место девушки - на кухне :)

Они там сильно разжиреют и в результате не будут выделяться среди местных троллей =)

Ttt ☆☆☆☆☆
()
Ответ на: комментарий от bromm

Это как в анекдоте про лесопилку и суровых лесорубов?

Nagwal ★★★★
()
Ответ на: комментарий от Ttt

>Они там сильно разжиреют и в результате не будут выделяться среди местных троллей =)

и попадать по кнопкам

bromm
()
Ответ на: комментарий от Nagwal

> Человек, рационально использующий свое время и использующий подходящий инструмент - недоразработчик?

:-) нет. тест очень прост. Если система ориентирована не на эффективность а что-то иное - это недосистема.

Всё это часть большой проблемы. В настоящий момент человек предпочитает бытие внутри, нежели чем бытие снаружи. Происходит зацикливание на самом себе. А между тем предназначение человека переделывать среду. Философия. Центр это не человек, а улучшаемая система. И через это улучшение и происходит улучшение человека. Выжать всё из процессора это идеал. Реально таких крайностей не надо. С другой стороны крайность признания отсутствия необходимости квалифицированных кадров. И использование «того что есть». То есть предпочтения бытия внутреннего в ущерю эффективности. Короче каждому своё. :-)

alx_me ★★☆
()
Ответ на: комментарий от alx_me

>А между тем предназначение человека переделывать среду. Философия. Центр это не человек, а улучшаемая система.

Это только по вашему мнению:) У человека нет никакого предназначения, только если он сам себе его не выдумает.

anonymous
()
Ответ на: комментарий от alx_me

Если система ориентирована не на эффективность а что-то иное - это недосистема.

Вопрос на засыпку: на эффективность чего она должна быть ориентирована? Я вот почему-то считаю что на эффективность в решении поставленных задач.

Nagwal ★★★★
()
Ответ на: комментарий от EvilBlueBeaver

> Вы не умеет готовить сишечку. Хотя бы валгриндом прогнать это святое.

Ага. Только в валгриндом есть две проблемы: 1. Очень трудно что-то поймать в многопоточной программе, когда оно вылазит только на большом количестве потоков, очень редко и зависит от входных данных; 2. Не ловит мемори лики, пока не завершится программа, а не все программы собираются завершаться.

Casus ★★★★★
()
Ответ на: комментарий от Casus

А есть под линуксом еще что-нибудь кроме Valgrind'а?

pevzi ★★★★★
()
Ответ на: комментарий от Casus

> Ага. Только в валгриндом есть две проблемы: 1. Очень трудно что-то поймать в многопоточной программе, когда оно вылазит только на большом количестве потоков, очень редко и зависит от входных данных; 2. Не ловит мемори лики, пока не завершится программа, а не все программы собираются завершаться.

Поэтому я поступил еще хитрее. Многопоточную часть, которая работает 24/7 я написал на ерланге. А на сишечке я написал маленькие линейные модули, которые замечательно проверяются валгриндом.

Каждой задаче - свой инструмент.

EvilBlueBeaver
()
Ответ на: комментарий от pevzi

> Кстати, это правда, что валгринд жутко медленно работает?

Хз, не замечал. Я не пишу огромные многопоточные супермегаприложения на сях. А те модули, что у меня есть, работают так же, как и работали без валгринда.

EvilBlueBeaver
()
Ответ на: комментарий от EvilBlueBeaver

Просто я слышал рассказы о том, как он грузится по 5 минут на довольно большом кутёвом проекте с бустами и прочей фигнёй (:

pevzi ★★★★★
()
Ответ на: комментарий от pevzi

> Кстати, это правда, что валгринд жутко медленно работает?

Смотря с чем сравнивать.

sv75 ★★★★★
()
Ответ на: комментарий от pevzi

> Просто я слышал рассказы о том, как он грузится по 5 минут на довольно большом кутёвом проекте с бустами и прочей фигнёй (:

Ничего по этому поводу сказать не могу. Не такой фанатик плюсов. Есть знакомый фанатик плюсов, так он говорит, что проблем с мемори-ликами и анавторайзед доступом не испытывает и без валгринда. Говорит надо правильно юзать плюсы. Всякие std::vector и std::auto_ptr еще никто не отменял.

EvilBlueBeaver
()
Ответ на: комментарий от yanka

хорошо, не так выразилась, мне непонятно почему питон считают скриптовым, то есть языком котрый применяют ограниченно для некоторых утилитарных задач.

Потому что в пайтоне есть repl.

zfsed
()
Ответ на: комментарий от zfsed

питон сделан не для людей, а для интерпретаторов - совершенно невнятный синтаксис (aka убогий)

уж лучше взять Java и сделать её «названия» покороче

а в итоге победит D, да :)

anonymous
()
Ответ на: комментарий от Nagwal

К слову в ютубе какая-то часть сервиса связанного с обработкой видео написана на питоне.

X10Dead ★★★★★
()
Ответ на: комментарий от anonymous

> питон сделан не для людей, а для интерпретаторов - совершенно невнятный синтаксис (aka убогий)

Вот как раз наоборот. Потому что транслировать петон будет немного сложнее, чем какую-нибудь жабу. А вот для трансляторов сделаны лисп и форт.

EvilBlueBeaver
()
Ответ на: комментарий от anonymous

уж лучше взять Java и сделать её «названия» покороче

А кто-то еще пишет на жабе в среде, где нет автокомплита???

no-dashi ★★★★★
()
Ответ на: комментарий от real_maverick

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

(Предался воспоминаниям, как в критические куски кода на турбопаскале засовывался ассемблер...)

hobbit ★★★★★
()
Ответ на: комментарий от k0valenk0_igor

>Плохому танцору хороший инструмент не поможет.

Ещё как поможет! Главное, чтобы он (инструмент) был острым

Led ★★★☆☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.