Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: C#
DF2 :: ФОРУМЫ > Основные форумы > Софт и железо > Программирование / Coding
Страницы: 1, 2
feanor
Использует кто?

Эксперимент по зарождению холисрача в нулёвой теме
Sav
Я иногда использую.
Guevara-chan
...Но зачем ? Отказ от косвенной адресации даже в переходах сделал эту вирт. машину абсолютно не эргономичной. Просто посмотрите на досуге, как оно там реализует "On Error Resume Next" - банально необходимую в условиях критичности каждого исключения конструкцию.
SerAlexandr
Цитата(feanor @ 30 Apr 2012, 06:54) *
Использует кто?

А Вы таки зачем интересуетесь? Вы, случайно, не официальный представитель Майкрософт в России, ищущий пиратов?
З.Ы. юзаю.

Цитата(Guevara-chan @ 30 Apr 2012, 14:35) *
...Но зачем ?

Не "зачем", а "почему". Потому что MSVS2010 smile.gif
feanor
Цитата
А Вы таки зачем интересуетесь?

Чиста поржать, блин.
Благо у нас он идет с первого курса.
SerAlexandr
Цитата(feanor @ 30 Apr 2012, 14:53) *
Благо у нас он идет с первого курса.

Мы только в конце второго его начали учить sad.gif
tolich
Цитата(SerAlexandr @ 30 Apr 2012, 11:52) *
Цитата(Guevara-chan @ 30 Apr 2012, 14:35) *
...Но зачем ?
Не "зачем", а "почему". Потому что MSVS2010 smile.gif
На самом деле, это только углубляет вопрос "зачем". smile.gif
SerAlexandr
Цитата(tolich @ 30 Apr 2012, 14:58) *
На самом деле, это только углубляет вопрос "зачем". smile.gif

Okay.jpg
UnSchtalch
Я пользовал. Удобная вещь, тормозящая малость, зато очень легко идет в освоении и написании кода, благо все реализовано за нас и давно, сиди и собирай конструктор.
Guevara-chan
Цитата(UnSchtalch @ 30 Apr 2012, 14:31) *
все реализовано за нас и давно, сиди и собирай конструктор.

Вот тогда сядь и собери аналог какого-нибудь: http://forum.df2.ru/index.php?showtopic=15070
...Потом расскажешь об успехах.
UnSchtalch
System.Reflection.Emit - милый такой неймспейс под это дело. Куча геморроя обеспечена, но тем не менее
Guevara-chan
Цитата(UnSchtalch @ 30 Apr 2012, 15:22) *
System.Reflection.Emit - милый такой неймспейс под это дело. Куча геморроя обеспечена, но тем не менее

Не пойдет: его встраивать (а JIT - наше все) крайне проблематично. Пили свою VM. Там ведь и для этого придумано ?
gamecreator
Цитата(feanor @ 30 Apr 2012, 03:54) *
Использует кто?
использую. хороший язык. но удобно писать на нем разве что всякие компиляторы и гуевые проги.
Цитата(feanor @ 30 Apr 2012, 03:54) *
Эксперимент по зарождению холисрача в нулёвой теме
не вижу повода для срача. так что фейл
Цитата(Guevara-chan @ 30 Apr 2012, 11:35) *
On Error Resume Next
что это?
Цитата(SerAlexandr @ 30 Apr 2012, 11:52) *
Вы, случайно, не официальный представитель Майкрософт в России, ищущий пиратов?
facepalm.gif express edition же
Guevara-chan
Цитата(gamecreator @ 30 Apr 2012, 17:02) *
Цитата(Guevara-chan @ 30 Apr 2012, 11:35) *
On Error Resume Next
что это?

http://msdn.microsoft.com/en-us/library/5h...s(v=vs.80).aspx (же)
packa
А мне брат сказал что нынче плюсы уступают шарпу и вообще .net начинает рулить.
Guevara-chan
Цитата
А мне брат сказал

Скажи еще, зависимостей никаких.
packa
Что?
gamecreator
не что, а платформа дотнет

Цитата(Guevara-chan @ 30 Apr 2012, 15:09) *
блок try-catch чтоли? не знаю как он компилится в машинный код, но в MSIL такая конструкция уже есть, даже переводить не надо.

да, и в C# кажись нет resume next
packa
Цитата
не что, а платформа дотнет

Ну тут уж не шарю, извините idontno.gif

Как мне сказали) я просто процитировал
UnSchtalch
Цитата(SerAlexandr @ 30 Apr 2012, 12:52) *
Цитата(feanor @ 30 Apr 2012, 06:54) *
Использует кто?

А Вы таки зачем интересуетесь? Вы, случайно, не официальный представитель Майкрософт в России, ищущий пиратов?
З.Ы. юзаю.


Так Mono же существует. На уровне правда .Net 3.0 - 3.5, но есть же

Цитата(Guevara-chan @ 30 Apr 2012, 15:23) *
Цитата(UnSchtalch @ 30 Apr 2012, 15:22) *
System.Reflection.Emit - милый такой неймспейс под это дело. Куча геморроя обеспечена, но тем не менее

Не пойдет: его встраивать (а JIT - наше все) крайне проблематично. Пили свою VM. Там ведь и для этого придумано ?



А куда собрались использовать язык для которого VM нужна, чтобы при том писать на шарпе и не иметь возможности тупо сплавить все проблемы на плечи машинки, работающей с IL?
Guevara-chan
Цитата
А куда собрались использовать язык для которого VM нужна, чтобы при том писать на шарпе и не иметь возможности тупо сплавить все проблемы на плечи машинки, работающей с IL?

Хм, например для plug-in системы: там ценится как производительность, так и контролируемость кода. В том, собственно, и основная прелесть StasisForth'а, что благодаря расширяемой структуре соотв. VM он может легко быть представлен низкоуровневым языком скриптования... На C# реализуешь поддержку ?
feanor
Цитата
А мне брат сказал что нынче плюсы уступают шарпу и вообще .net начинает рулить.

Каждому - свое.
Закон Мура, конечно, нас всех любит - но у дотнета чуть хуже с производительностью и совершенно отвратительно с затратами памяти.
А, да - Embedded, режим реального времени, низкий уровень и прочие страшные концепции плачут кровавыми слезами.
gamecreator
Цитата(feanor @ 30 Apr 2012, 20:16) *
у дотнета чуть хуже с производительностью
не намного
IvanSav
Там самые интересные моменты не учитывают - для шарпа\жавы еще нужна компиляция из байт-кода в нативный - в итоге запускаться будет на порядок дольше чем С или делфи да и сборщик мусора из-за которого прога может сколько приспичит оперативы кушать - в некоторых случаях это критично.
То что не надо вручную память выделять\освобождать эт хорошо, но на том же с++ если юзать умные указатели можно полностью забыть о ручном new\delete.

Кстати интересное наблюдение - на шарпе\жаве порог вхождения ниже на порядок и, как результат, средний уровень намного ниже чем в том же C++. Не знаю хорошо это или плохо, но меня устраивает.
UnSchtalch
Цитата(Guevara-chan @ 30 Apr 2012, 19:07) *
Цитата
А куда собрались использовать язык для которого VM нужна, чтобы при том писать на шарпе и не иметь возможности тупо сплавить все проблемы на плечи машинки, работающей с IL?

Хм, например для plug-in системы: там ценится как производительность, так и контролируемость кода. В том, собственно, и основная прелесть StasisForth'а, что благодаря расширяемой структуре соотв. VM он может легко быть представлен низкоуровневым языком скриптования... На C# реализуешь поддержку ?


Очевидно же, что телескопами гвозди. Да и выше есть аргумент на ту же тему. Оно реализуемо, но медленно. Хотя из забавного - Android вот портировали на шарпы. Статья на хабре. http://goo.gl/u1rQB


Цитата(IvanSav @ 01 May 2012, 00:07) *
Там самые интересные моменты не учитывают - для шарпа\жавы еще нужна компиляция из байт-кода в нативный - в итоге запускаться будет на порядок дольше чем С или делфи да и сборщик мусора из-за которого прога может сколько приспичит оперативы кушать - в некоторых случаях это критично.


Учитывая, что это проблема только первого запуска - медленный запуск, пока создается все же откомпилированная из IL - кода под текущее окружение версия программы.
Guevara-chan
Цитата
Оно реализуемо, но медленно.

Именно так, но даже бы и ладно на ожидаемую для псевдокода (а именно его олицетворяет CIL) неторопливость к исполнению – убивает сама архитектура, не позволяющая никак оптимизировать подобные задачи без выхода за «безопасный» уровень. Собственно, даже в штатных библиотеках Framework’а, если вдруг прогнать их через ILDasm, логики почти не обнаруживается: просто многоуровневая обертка для API в 90% случаев. Так зачем оно вообще ?
UnSchtalch
Слово конструктор в моем первом посте и фразу IvanSav про низкий порог вхождения не замечаем?

Шарпы сделаны мелкомягкими в качестве конкурентного продукта к Java, что вполне себе очевидно. Вдобавок ко всему - увы, в плане потенциала интерфейсной ляпоты тот же WPF, как можно посудить - впереди планеты всей. Серьезно - где еще можно сделать эффекты пиксельного свечения кнопок, плавную анимацию движения контролов и еще туеву хучу таких милых вещей без серьезного курения мануалов и тонн кода(!) ?
Это рассматривается чисто в качестве примера.

И да, напоследок про неторопливость - а циферки для сравнения в первом, втором запуске проги и чего-нить аналогично найтивного можно. В качестве подтверждения?
Guevara-chan
Цитата
Слово конструктор в моем первом посте и фразу IvanSav про низкий порог вхождения не замечаем?

Встречный вопрос: с каких это пор порог вхождения front-end'а стал оправданием за откровенный маразм back-end'а ? Или у CIL тоже куда-то вкрутили низкий порог с конструктором ?

Цитата
Серьезно - где еще можно сделать эффекты пиксельного свечения кнопок, плавную анимацию движения контролов и еще туеву хучу таких милых вещей без серьезного курения мануалов и тонн кода(!) ?

С GUI-библиотекой REBOL'а, например. Еще и на всех OS одинаково смотреться будет.

Цитата
И да, напоследок про неторопливость - а циферки для сравнения в первом, втором запуске проги и чего-нить аналогично найтивного можно. В качестве подтверждения?

Т.е. ты в своих словах ("Оно реализуемо, но медленно") уже усомнился ? Gut, пили реализацию ранее упомянутой StasisVM и под нее уже сравним результаты по стандартным benchmark'ам на выбор.

Цитата
Шарпы сделаны мелкомягкими в качестве конкурентного продукта к Java, что вполне себе очевидно.

*Ушла искать хоть одну актуальную .NET-сборку для мобильных телефонов.*
gamecreator
Цитата(Guevara-chan @ 03 May 2012, 22:16) *
Или у CIL тоже куда-то вкрутили низкий порог с конструктором ?
кстати у CIL тоже низкий порог вхождения. я писал на нем - все просто и понятно. не то, что в асме.
Цитата(Guevara-chan @ 03 May 2012, 22:16) *
*Ушла искать хоть одну актуальную .NET-сборку для мобильных телефонов.*
а Java все равно уг. и этого не вырубишь топором (если, конечно, не знаешь где их штаб-квартира)
UnSchtalch
Цитата
Т.е. ты в своих словах ("Оно реализуемо, но медленно") уже усомнился ? Gut, пили реализацию ранее упомянутой StasisVM и под нее уже сравним результаты по стандартным benchmark'ам на выбор.

Ээээ, нет. Это я предлагаю доказать, что дотнет-приложения после JIT-компиляции будет уступать найтивным приложениям такое число раз. А не реализовывать что-то свое для конкуренции и ради спора. Поскольку холивар не нов, наверняка уже есть доказательства для той или иной стороны в виде диаграмм и документов.

Цитата
Шарпы сделаны мелкомягкими в качестве конкурентного продукта к Java, что вполне себе очевидно
*Ушла искать хоть одну актуальную .NET-сборку для мобильных телефонов.*

Пример я как бы выше привел - ведроид.
Etoprostoya
Цитата(UnSchtalch @ 03 May 2012, 23:52) *
Это я предлагаю доказать, что дотнет-приложения после JIT-компиляции будет уступать найтивным приложениям такое число раз.

А что, есть какой-то не майкрософтовский компилятор, который работает с шарпом?
gamecreator
mono, но говорят, что он уг
IvanSav
Цитата
Серьезно - где еще можно сделать эффекты пиксельного свечения кнопок, плавную анимацию движения контролов и еще туеву хучу таких милых вещей без серьезного курения мануалов и тонн кода(!) ?

Qt тоже неплох. И с кроссплатформенностью получше чем у шарпа.
Цитата
А что, есть какой-то не майкрософтовский компилятор, который работает с шарпом?

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

Кстати - ради интереса сравнил скорость поиска в нативном хекс-редакторе и редакторе на шарпе. Победа за нативным - 15 сек vs 25 сек. Серьезнам сравнением это не назовешь конечно, но хоть что-то.
tolich
Цитата(IvanSav @ 03 May 2012, 23:25) *
Qt тоже неплох. И с кроссплатформенностью получше чем у шарпа.
А у шарпа она разве есть?
gamecreator
Цитата(IvanSav @ 03 May 2012, 23:25) *
Кстати - ради интереса сравнил скорость поиска в нативном хекс-редакторе и редакторе на шарпе. Победа за нативным - 15 сек vs 25 сек. Серьезнам сравнением это не назовешь конечно, но хоть что-то.
а на втором запуске приложения?
IvanSav
Точно так же. Насколько я знаю трансляция IL -> нативный идет при первом вызове функции при каждом запуске.

Цитата
А у шарпа она разве есть?

Нет. А зачем? Да и вопрос был где еще кроме шарпа есть юзабельный интерфейс.
gamecreator
Цитата(IvanSav @ 03 May 2012, 23:48) *
Насколько я знаю трансляция IL -> нативный идет при первом вызове функции при каждом запуске.
вот и я думал, что при каждом. но люди говорят другое.
Guevara-chan
Цитата
Это я предлагаю доказать, что дотнет-приложения после JIT-компиляции будет уступать найтивным приложениям такое число раз. А не реализовывать что-то свое для конкуренции и ради спора.

1) Конкретно это, если бы ты утруждался слежением за нитью дискуссии, утверждала далеко не я.
2) ...Ежели так интересно – посмотри мою реализацию интепретационного цикла:

Код
ProcedureDLL Execute(*Thread.ThreadData)
*ThisThread = *Thread
OnErrorGoto(?__Finish)
With *ThisThread
Repeat; Execution loop.
If \IP\u > #InstructionsCount : \ExitCode = #cInvalidOperand : Break : EndIf
Define *JMPDest = System\JMPTable[\IP\u]
\IP + #OpCodeSize; Move to next instruction.
EnableASM : JMP *JMPDest : DisableASM
__Ret:; Returning destination.
Until \ExitCode
EndWith
__Finish: __ReportError(*ThisThread)
EndProcedure

...Еще есть желание обсуждать эту тему ?

Цитата
кстати у CIL тоже низкий порог вхождения. я писал на нем - все просто и понятно. не то, что в асме.

Если понял - объясни мне, пожалуйста, как стековая машина может заваливаться на бок от наличая на этом самом стеке "лишних" данных в процессе (строго формализированного) вызова ?

Цитата
Пример я как бы выше привел - ведроид.

...Еще одна OS, которую (никогда не на)пишут JavaC# ? Еще и под полулегитимный Mono ? Не забывая, что "Our goal as a company is to provide the best platform for building mobile apps, and so XobotOS will not be a focus for us going forward. But it was a fun experiment to run, and as it turns out" © ?
*OKay.jpg*
gamecreator
Цитата(Guevara-chan @ 04 May 2012, 10:00) *
Цитата
Это я предлагаю доказать, что дотнет-приложения после JIT-компиляции будет уступать найтивным приложениям такое число раз. А не реализовывать что-то свое для конкуренции и ради спора.

1) Конкретно это, если бы ты утруждался слежением за нитью дискуссии, утверждала далеко не я.
т.е. ты утверждаешь, что .net приложение не будет уступать нативному? я думал, что это позиция UnSchtalch'a
tolich
Не будет уступать такое число раз.
Guevara-chan
Смотря какое. Смотря какому. Многие алгоритмы, и я говорю не только о практике использования ассемблерных вставок, вообще не переносимы до такой степени, чтобы всерьез сравнивать... Но скорее всего будет, хотя слова "разы" я точно не писала.
Gingerk
Цитата(Guevara-chan @ 04 May 2012, 12:23) *
Смотря какое. Смотря какому. Многие алгоритмы, и я говорю не только о практике использования ассемблерных вставок, вообще не переносимы до такой степени, чтобы всерьез сравнивать... Но скорее всего будет, хотя слова "разы" я точно не писала.


Тред замечу, от 2006 года
сейчас 2012

У тебя распостранённая ошибка ненавистников management code.
Берем задачу с решением оптимизированным на unmanaged, переносим его в management
Получаем бред и тормоза - радостно носимся с мантрой management code is shit

Guevara-chan
Да там задачи-то, по сути, никакой нет. Тупо разногласия в рассмотрении байт. Даже специально сейчас протестировала гипотетический аналог на PB:

Код
EnableExplicit; Essential.
#WordCap = 2; We need 2 words (4 bytes).

Structure DoubleVision
StructureUnion; 2 merged arrays (byte & word one).
Array wArr.u(#WordCap-1); Desired array, aligned there.
Array bArr.a(0); Base array, bounds doesn't matter.
EndStructureUnion; They are shared, however...
EndStructure

Macro PP(TypeName, Num, Val, TypeConst); Sugar.
Debug TypeName + Str(Num+1) + ": " + Hex(Val, TypeConst)
EndMacro

Procedure FillUp(Array Arr.a(1)); Получатель байт.
Define I, Val.a, Tofix = (ArraySize(Arr())+1)*SizeOf(Word)-1; Подготовка, переcчет границ.
For I = 0 To ToFix : Val = Random(255) : DisableDebugger; Подавляем отладчик, здесь он не прав.
Arr(I) = Val : EnableDebugger : PP("Byte", I, Val, #PB_Byte) : Next; Выдаем данные и записываем.
EndProcedure

Procedure Test(Array Arr.u(1)); Получатель слов.
Debug "-----------------------------"; Разделитель.
Define I, Tofix = ArraySize(Arr()); Получаем размер массива...
For I = 0 To ToFix : PP("Word", I, Arr(I), #PB_Word) : Next; Вывод.
EndProcedure

Define I, ToFix, DWArray.DoubleVision : With DWArray; Подготовка.
FillUP(\bArr()) : Test(\wArr()) : EndWith; Тестирование.

...Вот чуть избыточно получилось, т.к. я описала как генератор, так и получатель. Помимо того задачи нет, есть единственная проблема с shared-границей.

P.S. Еще оно "managed" а не "management". Но это так, к слову.
gamecreator
Цитата(Guevara-chan @ 04 May 2012, 14:39) *
Даже специально сейчас протестировала гипотетический аналог в PB
не нашел собственно того самого перевода из байт в слова. или тестировался только порядок байт?
Цитата(Guevara-chan @ 04 May 2012, 14:39) *
я описала как приемник, так и получатель.
источник smile.gif
Guevara-chan
Цитата
не нашел собственно того самого перевода из байт в слова. или тестировался только порядок байт?

А его там и быть не должно. Я просто разметила 2 разнотипных массива (Byte/Word) на одном участке памяти. Это же все равно абстракция.
...Ведь нету на самом деле никаких таблиц, связанных списков и чисел с плавающей точкой: только наборы байт и способы их обработки.

Цитата
источник

Fixed.
gamecreator
ой, не заметил. это ваше StructureUnion сбивает с толку.
так какой результат?
Guevara-chan
Более чем удовлетворительный, как по мне (извиняюсь за сбитые комментарии, копировала из сообщения):



...А вот CLR такого сделать не даст чисто физически. Управляемость, видите ли.
IvanSav
Цитата(Guevara-chan @ 04 May 2012, 10:23) *
Смотря какое. Смотря какому. Многие алгоритмы

Это скорее идет от "Очень объекто-ориентированного программирования" чем от managed\unmanaged. Все запихивают за 3-4 уровнями интерфейсов да абстракных классов, а кто начнет выяснять как оно внутрях устроено - секрет, тайна, расстрел за нарушение ООПшной инкапсуляции.
Так и тут - а вы уверены что из двух Int8 получится Int16? А вы уверены что порядок байт в слове правильный? И толку потом от этой compile-time проверки типов если почти везде идет принудительное преобразование одного во второй, а все баги отлавливать приходится при запуске.

Жава тут соригинальничала еще круче - там Integer и int это абсолютно разные вещи, которые и вести себя могут каждый по своему.
Gingerk
P.S. Еще оно "managed" а не "management". Но это так, к слову.
[/quote]

Ай блин, верно да ))
описался.
Шалвенд
Цитата(feanor @ 30 Apr 2012, 10:54) *
Использует кто?

В данный момент - активно его учу. Ну как бы активно.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2024 IPS, Inc.