Re[52]: benchmark
От: alex_public  
Дата: 14.01.17 19:14
Оценка:
Здравствуйте, Serginio1, Вы писали:

S>
S>Type t = typeof(DataSet);
S>XmlSerializer ser = new XmlSerializer(t);
S>

S>В этом случае необходимо указать тип в файле директив среды выполнения, добавив следующую запись:
S>

S><Type Name="DataSet" Browse="Required Public" />


Т.е. если я правильно понял, то они по сути реализовали крайне убогий вариант статической интроспекции (бледной подобие того как в D). Только при этом они во-первых постеснялись озвучить это вслух, а во-вторых осилили не нормальную автоматическую работу, а только крайне убогую, с ручным указанием необходимых для интроспекции типов.

Ну если это всё так, то направление движения конечно верное, но реализация "как всегда"... )))

Интересно так же как это всё будет коррелировать с "взрослым .net'ом", в котором как я понимаю всё останется по прежнему.
Re[47]: benchmark
От: pilgrim_ Россия  
Дата: 14.01.17 19:31
Оценка:
Здравствуйте, alex_public, Вы писали:

что-то потерялось сообщение, повторюсь...

_>>>Там у тебя или явно полиморфный объект (ссылка или указатель) или явно нет (обычная переменная и именно их большинство в нормальном коде). Так что в последнем случае компилятор может абсолютно гарантированно подставлять нужный вызов.

_>>Тут тоже интересная тема, чем отличается для компилятора A a; a.f.();, от A* a; a->f(); , что сlang ,что gcc генерят в последнем случае косвенный вызов.

_>Это У тебя там что-то не то в тесте. Всё нормально преобразуется и инлайнится. )


хз, http://rsdn.org/forum/flame.comp/6666169.1
Автор: pilgrim_
Дата: 14.01.17


_>>>В отличие от C#, где любой объект может быть инициализирован экземпляром другого класса где-то выше по коду. И как по твоему решает это проблему компилятор C#? )

_>>Никак, т.е влоб — полиморфно, так же ка и в C++

_>Я тоже так думаю. Только откуда тогда возьмутся оптимизации в C#, про которые ты говорил?


Я имел ввиду простой случай:

A a = new A();
a.f();

где f — виртуальный метод
Re[53]: benchmark
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 14.01.17 20:05
Оценка:
Здравствуйте, alex_public, Вы писали:

_>Здравствуйте, Serginio1, Вы писали:


_>>>Предлагаю тебе всё же начать работать с CEF. Он уже собранный под винду и при этом все нужные внутренности полностью доступны через удобное C++ API. В том числе и вызовы между нативным и JS кодом.

S>> А можно поподробнее. Я в этом лузер. Буду премного благодарен.

_>Скачиваешь здесь http://opensource.spotify.com/cefbuilds/index.html нужный тебе вариант. Там главное набор dll (там внутри как раз тот самый уже собранный ужас, который ты пытался собрать сам — их надо положить в дистрибутив твоего приложения), плюс lib и h файлы, которые подключаешь к своему проекту. И дальше используешь довольно удобное API (там есть два варианта: C и C++; если использовать более удобный C++, то надо ещё отдельно подключить в проект его) для работы с теперь встроенным в твоём приложение полноценным браузером. Подробности использования надо конечно смотреть в документации http://magpcss.org/ceforum/apidocs3/, а введение можно глянуть тут https://bitbucket.org/chromiumembedded/cef/wiki/GeneralUsage. Но в самом начале проще всего открыть их "Sample Application" — это по сути полноценный браузер, написанный в несколько строк с помощью этой библиотеки. )


Огромнейшее спасибо! Тут почитал https://habrahabr.ru/post/152637/
То, что надо! Буду разбираться.
Я твой должник.
и солнце б утром не вставало, когда бы не было меня
Re[53]: benchmark
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 14.01.17 20:16
Оценка:
Здравствуйте, alex_public, Вы писали:

_>Здравствуйте, Serginio1, Вы писали:


S>>
S>>Type t = typeof(DataSet);
S>>XmlSerializer ser = new XmlSerializer(t);
S>>

S>>В этом случае необходимо указать тип в файле директив среды выполнения, добавив следующую запись:
S>>

S>><Type Name="DataSet" Browse="Required Public" />


_>Т.е. если я правильно понял, то они по сути реализовали крайне убогий вариант статической интроспекции (бледной подобие того как в D). Только при этом они во-первых постеснялись озвучить это вслух, а во-вторых осилили не нормальную автоматическую работу, а только крайне убогую, с ручным указанием необходимых для интроспекции типов.


_>Ну если это всё так, то направление движения конечно верное, но реализация "как всегда"... )))


_>Интересно так же как это всё будет коррелировать с "взрослым .net'ом", в котором как я понимаю всё останется по прежнему.


Но сейчас их 2. Clr и CoreCLR. Идет через спецификацию Introducing .NET Standard

Просто как я писал раньше для Net Native им нужен сборки под NetStandard.
Но есть проблемы
http://rsdn.org/forum/dotnet/6665249
Автор: QrystaL
Дата: 13.01.17
и солнце б утром не вставало, когда бы не было меня
Re[48]: benchmark
От: Evgeny.Panasyuk Россия  
Дата: 14.01.17 21:09
Оценка:
Здравствуйте, pilgrim_, Вы писали:

_>Я имел ввиду простой случай:

_>
_>A a = new A();
_>a.f();
_>

_>где f — виртуальный метод

Такой случай инлайнится:
void foo();

struct A
{
    virtual void f() { foo(); };
};

void test()
{
    A *a = new A;
    a->f();
}

_Z4testv:                               # @_Z4testv
    .cfi_startproc
# BB#0:
    jmp    _Z3foov                 # TAILCALL
.Lfunc_end0:
    .size    _Z4testv, .Lfunc_end0-_Z4testv
    .cfi_endproc
Re[37]: «Собаку съел»
От: Слава  
Дата: 15.01.17 00:10
Оценка:
Здравствуйте, vdimas, Вы писали:

V>Ну и, я и сам смогу тебе привести сходу пример, где такой полиморфизм сможет разресолвится статически в дотнете, я уже озвучивал — это при использовании технологии "объекта-словаря операций" (и в приводимых к этой концепции сценариях), где сам такой объект представлен value-типом. Ну не популярная эта техника нифига в дотнете. Там никто не таскает в логике эти словари рядом с целевыми объектами, везде идёт попытка работать с объектами напрямую. А когда напрямую, то возвращаемся к самому первому моему утверждению:


V>Ничего. "Объекты-словари операций" — отличная техника.

V>(Ты хоть понимаешь, о какой технике речь? А то, может, я с тем же успехом мог с Космосом разговаривать всё это время)

V>Но что мешает использовать эту технику повсеместно в дотнете, Ы?

V>Может, то, что в концепции дотнетного ООП такая техника выглядит заимствованием из чужеродного ФП?
V>Т.е., те фишки ФП, которые не руинят ООП — они в практику дотнета таскаются с удовольствием, смотрю. Остальные практики игнорятся, хотя именно такая реализация параметрического полиморфизма требует именно таких практик. ))

Я вот не понимаю, о какой технике речь. Поясните, пожалуйста. На примере.
Re[49]: benchmark
От: pilgrim_ Россия  
Дата: 15.01.17 00:50
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>Такой случай инлайнится:


Круто , без -O3 меня смутило что для o.method() и o->method() код отличается (прямой vs косвенный вызов).
Re[29]: Стандартная библиотека .NET
От: itslave СССР  
Дата: 15.01.17 08:00
Оценка:
Здравствуйте, alex_public, Вы писали:

_>Это всё смешные отмазки новорождёнными "стандартами" (хотя никто их не использует) и т.п. Давай лучше по сути. Вот у меня есть приложение на .Net написанное для винды с помощью WPF (это же стандартная библиотек для этих целей, входящая в .Net, предустановленная на винде, и рекомендуемая прямо в этой теме адептами .Net). Получается что я не смогу запустить это приложение на таком же десктопе, но под Линухом, правильно? ) И к чему тогда разговоры о какой-то кроссплатформенности? )

После приведенного тобой в треде выше "кроссплатформенного" примера консольки на С++ в 20 строк, такое просто смешно читать.
Re[45]: benchmark
От: itslave СССР  
Дата: 15.01.17 08:10
Оценка:
Здравствуйте, alex_public, Вы писали:

_>Питон не взлетел? ) Смешно. )

Твои же примеры говорят о том, что питон не взлетел и остался уделом маргиналов — игрушки и hpc. В вебе попытался, но не взлетел. В CADах вообще зоопарк полнейший со скриптовыми языками, от AutoList до js, тут вообще мимо кассы. А, еще помню была веселая история с совместимостью питона версий 2 и 3

_>Что касается JS, то он берёт именно своей простотой (Питон всё же лучше изучать, т.к. там есть много нетривиальных возможностей для написания более красивого кода, а на JS можно научить писать за пару минут). Плюс у него имеется общедоступных движок с наверное самой лучшей производительностью среди всех подобных языков.

Это да, но ты хоть раз пытался сапортить js код более 1000 строк???

_>Кстати, для коротких скриптов (а сложные приложения на подобном языке вообще кажутся мне бредом) на мой взгляд лучше не использовать typescript, т.к. в таком случае он только увеличивает объём кода без всякой пользы.

Тебе может казаться бредом все что угодно, но любой сколько нибудь современный веб сайт на SPA — это сложное приложение. И там все эти проблемы "простоты" js становятся в полный рост, и ts — имха один из лучших инструментов их решения.
Re[47]: Visual C# vs C++. Надо сравнить перспективы.
От: itslave СССР  
Дата: 15.01.17 08:12
Оценка:
Здравствуйте, alex_public, Вы писали:

_>Под "бекендом С++" естественно везде подразумевается


Вот что лично мне показалось естественным, то я везде и подразумевал, не без небольшого троллинга честно говоря.
Re[48]: benchmark
От: itslave СССР  
Дата: 15.01.17 08:15
Оценка:
Здравствуйте, lpd, Вы писали:

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


Как только тебе придется заниматься хайрингом, да еще с ограниченным бюджетом и в короткие сроки, так сразу ты поймешь что доступность специалистов — это очень даже некислый бонус.
Re[49]: benchmark
От: itslave СССР  
Дата: 15.01.17 08:20
Оценка:
Здравствуйте, alex_public, Вы писали:

_>Угу, и по этому основной сферой обитания Java и C# является корпоративное ПО в не IT компаниях (где IT отдел является всего лишь одной из внутренних служб, а не основой бизнеса). Ну просто совпадение такое. )))

Спасибо, посмеялся от души.
Re[31]: Visual C# vs C++. Надо сравнить перспективы.
От: itslave СССР  
Дата: 15.01.17 08:21
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>Ты во внутрь тем загляни

Тебя не затруднит привести конкретные линки, скриншотить содержание десятка тем я не считаю продуктивным.
Re[32]: Visual C# vs C++. Надо сравнить перспективы.
От: Evgeny.Panasyuk Россия  
Дата: 15.01.17 08:58
Оценка: -2 :)
Здравствуйте, itslave, Вы писали:

EP>>>>Не проходи мимо, загляни в форум .NET, пройдись например по первым десяти темам и посчитай в скольких из них "не нужна производительность, даже забесплатно"

I>>>Заглянул
I>>>Image: 22c5525c2f.png
I>>>Какой из них про перфоманс?
EP>>Ты во внутрь тем загляни
I>Тебя не затруднит привести конкретные линки, скриншотить содержание десятка тем я не считаю продуктивным.

https://rsdn.org/forum/dotnet/6655715.flat
Автор: SergASh
Дата: 01.01.17

https://rsdn.org/forum/dotnet/6571181.flat
Автор: Sinix
Дата: 04.10.16

https://rsdn.org/forum/dotnet/6657916.flat
Автор: SergeyT.
Дата: 05.01.17

https://rsdn.org/forum/dotnet/6660816.flat
Автор: Sinix
Дата: 09.01.17

https://rsdn.org/forum/dotnet/6595816.flat
Автор: Sinix
Дата: 28.10.16
Re[53]: benchmark
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 15.01.17 09:27
Оценка:
Здравствуйте, alex_public, Вы писали:
Вот посмотрел cef / JavaScriptIntegration

Можно и без асинхронности обойтись.

При этом можно зарегистрировать различные обработчики.

В итоге можно вызывать асинхронные методы
let response= await client.async.GetStringAsync("https://msdn.microsoft.com/ru-ru/library/hh551745(v=vs.118).aspx")
и солнце б утром не вставало, когда бы не было меня
Re[33]: Visual C# vs C++. Надо сравнить перспективы.
От: itslave СССР  
Дата: 15.01.17 10:37
Оценка: -1
Здравствуйте, Evgeny.Panasyuk, Вы писали:

Я надеюсь ты свои линки сам читал?

EP>https://rsdn.org/forum/dotnet/6655715.flat
Автор: SergASh
Дата: 01.01.17

"Посоветуйте структуру данных." Ни слова о дотнете, чувак явно форумом ошибся.

ёEP>https://rsdn.org/forum/dotnet/6571181.flat
Автор: Sinix
Дата: 04.10.16

Windows 10 Memory Compression And More. "Статья не затрагивает ничего специфичного для шарпа / CLR, так что слегка неформат". Прям в стартпосте.

EP>https://rsdn.org/forum/dotnet/6657916.flat
Автор: SergeyT.
Дата: 05.01.17

" [Link] Визуализация работы разных режимов GC". Чувак сделал тулзу, которая чего то там показывает, молодец, но где там про проблемы с перфомансом?

EP>https://rsdn.org/forum/dotnet/6660816.flat
Автор: Sinix
Дата: 09.01.17

EP>https://rsdn.org/forum/dotnet/6595816.flat
Автор: Sinix
Дата: 28.10.16

Эти 2 почти в тему — статьи красноглазиков с очень узкой специализацией, к абсолютному большинству случаев нерелевантно.
Re[48]: benchmark
От: alex_public  
Дата: 15.01.17 13:17
Оценка:
Здравствуйте, pilgrim_, Вы писали:

_>>Это У тебя там что-то не то в тесте. Всё нормально преобразуется и инлайнится. )

_>хз, http://rsdn.org/forum/flame.comp/6666169.1
Автор: pilgrim_
Дата: 14.01.17


Ну так ещё бы оно работало с выключенной оптимизацией. )))

_>>Я тоже так думаю. Только откуда тогда возьмутся оптимизации в C#, про которые ты говорил?

_>Я имел ввиду простой случай:
A a = new A();
a.f();

_>где f — виртуальный метод

То, что в C# работает (кстати, ты это проверял, она точно работает?) хотя бы такая простейшая оптимизация, это уже хорошо. Но в гораздо более распространённом случае типа такого:
A a = GetA();
a.f();

она точно не сработает. В то время как в C++ наоборот она сработает со 100% гарантией (ну если конечно оптимизация включена ).
Re[30]: Стандартная библиотека .NET
От: alex_public  
Дата: 15.01.17 13:27
Оценка: +1
Здравствуйте, itslave, Вы писали:

_>>Это всё смешные отмазки новорождёнными "стандартами" (хотя никто их не использует) и т.п. Давай лучше по сути. Вот у меня есть приложение на .Net написанное для винды с помощью WPF (это же стандартная библиотек для этих целей, входящая в .Net, предустановленная на винде, и рекомендуемая прямо в этой теме адептами .Net). Получается что я не смогу запустить это приложение на таком же десктопе, но под Линухом, правильно? ) И к чему тогда разговоры о какой-то кроссплатформенности? )

I>После приведенного тобой в треде выше "кроссплатформенного" примера консольки на С++ в 20 строк, такое просто смешно читать.

Тот пример я при желание легко (пара строк, причём исключительно средствами самого языка) подправлю так, что он будет работать на всех нужных ОС. А что будешь делать ты со своим WPF приложением? Переписывать с нуля? )))
Re[31]: Стандартная библиотека .NET
От: Klikujiskaaan КНДР  
Дата: 15.01.17 13:38
Оценка:
Здравствуйте, alex_public, Вы писали:

_>Тот пример я при желание легко (пара строк, причём исключительно средствами самого языка) подправлю так, что он будет работать на всех нужных ОС. А что будешь делать ты со своим WPF приложением? Переписывать с нуля? )))


Ну про пару строк это ты как обычно трындишь.
А если нужна кроссплатформенность, то он возьмет xamarin.
Отредактировано 15.01.2017 13:39 НепредставимыйПхы . Предыдущая версия .
Re[46]: benchmark
От: alex_public  
Дата: 15.01.17 14:08
Оценка: +1
Здравствуйте, itslave, Вы писали:

_>>Питон не взлетел? ) Смешно. )

I>Твои же примеры говорят о том, что питон не взлетел и остался уделом маргиналов — игрушки и hpc.

Ну если Питон — это удел маргиналов, то C# (которого Питон уже почти догнал и скоро обойдёт по популярности http://www.tiobe.com/tiobe-index/) точно такой же.

I>В вебе попытался, но не взлетел.


http://tagline.ru/backend-frontend-frameworks-rating/ — может и не взлетел, но уж C# то точно обходит. )))

I>В CADах вообще зоопарк полнейший со скриптовыми языками, от AutoList до js, тут вообще мимо кассы.


А у тебя какие установлены? У меня вот много разных (и для 3D проектирования с расчётами и для разводки печатных плат и т.д, плюс ещё игрался с художественными 3D редакторами, но это не моё) и во всех них я вижу или python или lisp.

_>>Что касается JS, то он берёт именно своей простотой (Питон всё же лучше изучать, т.к. там есть много нетривиальных возможностей для написания более красивого кода, а на JS можно научить писать за пару минут). Плюс у него имеется общедоступных движок с наверное самой лучшей производительностью среди всех подобных языков.

I>Это да, но ты хоть раз пытался сапортить js код более 1000 строк???

"Код более 1000 строк" — это ты про один файл? Вообще если говорить про серверные скрипты, то там ситуация очень интересная: увеличение размера сайта обычно не приводит к усложнению кода. Потому что новые страницы сайта обычно не приводят к увеличению размера существующих серверных скриптов, а добавляют новые маленькие и при этом обычно независимые по коду (не считая каких-нибудь общих вызовов, образующих внутреннюю библиотеку). Как раз поэтому в данной области так хорошо прижились скриптовые языки.

Да, возвращаясь же к моему персональному мнению: я всё же предпочитаю Питон, а не JS для этих целей. ) Но я вполне понимаю выбирающих JS. Тем более, что дефолтный движок JS на порядок эффективнее дефолтного (который не JIT) движка Питона. Но для наших целей быстродействия Питона более чем хватает. И со знанием языка тоже всё в порядке. )))

_>>Кстати, для коротких скриптов (а сложные приложения на подобном языке вообще кажутся мне бредом) на мой взгляд лучше не использовать typescript, т.к. в таком случае он только увеличивает объём кода без всякой пользы.

I>Тебе может казаться бредом все что угодно, но любой сколько нибудь современный веб сайт на SPA — это сложное приложение. И там все эти проблемы "простоты" js становятся в полный рост, и ts — имха один из лучших инструментов их решения.

Ааа, ты про клиентские скрипты на JS? Ну там сейчас творится такой ад (https://habrahabr.ru/post/312022/), что никакого желания даже близко приближаться нет. ))) Для наших внутренних целей хватает нескольких вызовов jquery на страничку, а все эти ужасы живут где-то в параллельной реальности. )))
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.