Т.е. если я правильно понял, то они по сути реализовали крайне убогий вариант статической интроспекции (бледной подобие того как в D). Только при этом они во-первых постеснялись озвучить это вслух, а во-вторых осилили не нормальную автоматическую работу, а только крайне убогую, с ручным указанием необходимых для интроспекции типов.
Ну если это всё так, то направление движения конечно верное, но реализация "как всегда"... )))
Интересно так же как это всё будет коррелировать с "взрослым .net'ом", в котором как я понимаю всё останется по прежнему.
что-то потерялось сообщение, повторюсь...
_>>>Там у тебя или явно полиморфный объект (ссылка или указатель) или явно нет (обычная переменная и именно их большинство в нормальном коде). Так что в последнем случае компилятор может абсолютно гарантированно подставлять нужный вызов. _>>Тут тоже интересная тема, чем отличается для компилятора A a; a.f.();, от A* a; a->f(); , что сlang ,что gcc генерят в последнем случае косвенный вызов.
_>Это У тебя там что-то не то в тесте. Всё нормально преобразуется и инлайнится. )
_>>>В отличие от C#, где любой объект может быть инициализирован экземпляром другого класса где-то выше по коду. И как по твоему решает это проблему компилятор C#? ) _>>Никак, т.е влоб — полиморфно, так же ка и в C++
_>Я тоже так думаю. Только откуда тогда возьмутся оптимизации в C#, про которые ты говорил?
Здравствуйте, 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" — это по сути полноценный браузер, написанный в несколько строк с помощью этой библиотеки. )
_>Т.е. если я правильно понял, то они по сути реализовали крайне убогий вариант статической интроспекции (бледной подобие того как в D). Только при этом они во-первых постеснялись озвучить это вслух, а во-вторых осилили не нормальную автоматическую работу, а только крайне убогую, с ручным указанием необходимых для интроспекции типов.
_>Ну если это всё так, то направление движения конечно верное, но реализация "как всегда"... )))
_>Интересно так же как это всё будет коррелировать с "взрослым .net'ом", в котором как я понимаю всё останется по прежнему.
Здравствуйте, vdimas, Вы писали:
V>Ну и, я и сам смогу тебе привести сходу пример, где такой полиморфизм сможет разресолвится статически в дотнете, я уже озвучивал — это при использовании технологии "объекта-словаря операций" (и в приводимых к этой концепции сценариях), где сам такой объект представлен value-типом. Ну не популярная эта техника нифига в дотнете. Там никто не таскает в логике эти словари рядом с целевыми объектами, везде идёт попытка работать с объектами напрямую. А когда напрямую, то возвращаемся к самому первому моему утверждению:
V>Ничего. "Объекты-словари операций" — отличная техника. V>(Ты хоть понимаешь, о какой технике речь? А то, может, я с тем же успехом мог с Космосом разговаривать всё это время)
V>Но что мешает использовать эту технику повсеместно в дотнете, Ы? V>Может, то, что в концепции дотнетного ООП такая техника выглядит заимствованием из чужеродного ФП? V>Т.е., те фишки ФП, которые не руинят ООП — они в практику дотнета таскаются с удовольствием, смотрю. Остальные практики игнорятся, хотя именно такая реализация параметрического полиморфизма требует именно таких практик. ))
Я вот не понимаю, о какой технике речь. Поясните, пожалуйста. На примере.
Здравствуйте, alex_public, Вы писали:
_>Это всё смешные отмазки новорождёнными "стандартами" (хотя никто их не использует) и т.п. Давай лучше по сути. Вот у меня есть приложение на .Net написанное для винды с помощью WPF (это же стандартная библиотек для этих целей, входящая в .Net, предустановленная на винде, и рекомендуемая прямо в этой теме адептами .Net). Получается что я не смогу запустить это приложение на таком же десктопе, но под Линухом, правильно? ) И к чему тогда разговоры о какой-то кроссплатформенности? )
После приведенного тобой в треде выше "кроссплатформенного" примера консольки на С++ в 20 строк, такое просто смешно читать.
Здравствуйте, alex_public, Вы писали:
_>Питон не взлетел? ) Смешно. )
Твои же примеры говорят о том, что питон не взлетел и остался уделом маргиналов — игрушки и hpc. В вебе попытался, но не взлетел. В CADах вообще зоопарк полнейший со скриптовыми языками, от AutoList до js, тут вообще мимо кассы. А, еще помню была веселая история с совместимостью питона версий 2 и 3
_>Что касается JS, то он берёт именно своей простотой (Питон всё же лучше изучать, т.к. там есть много нетривиальных возможностей для написания более красивого кода, а на JS можно научить писать за пару минут). Плюс у него имеется общедоступных движок с наверное самой лучшей производительностью среди всех подобных языков.
Это да, но ты хоть раз пытался сапортить js код более 1000 строк???
_>Кстати, для коротких скриптов (а сложные приложения на подобном языке вообще кажутся мне бредом) на мой взгляд лучше не использовать typescript, т.к. в таком случае он только увеличивает объём кода без всякой пользы.
Тебе может казаться бредом все что угодно, но любой сколько нибудь современный веб сайт на SPA — это сложное приложение. И там все эти проблемы "простоты" js становятся в полный рост, и ts — имха один из лучших инструментов их решения.
Re[47]: Visual C# vs C++. Надо сравнить перспективы.
Здравствуйте, lpd, Вы писали:
lpd>Вот причины меньших затрат бизнеса при использовании C# я и анализирую. И думаю, что дело не только круге знаний программистов.
Как только тебе придется заниматься хайрингом, да еще с ограниченным бюджетом и в короткие сроки, так сразу ты поймешь что доступность специалистов — это очень даже некислый бонус.
Здравствуйте, alex_public, Вы писали:
_>Угу, и по этому основной сферой обитания Java и C# является корпоративное ПО в не IT компаниях (где IT отдел является всего лишь одной из внутренних служб, а не основой бизнеса). Ну просто совпадение такое. )))
Спасибо, посмеялся от души.
Re[31]: Visual C# vs C++. Надо сравнить перспективы.
Здравствуйте, Evgeny.Panasyuk, Вы писали:
EP>Ты во внутрь тем загляни
Тебя не затруднит привести конкретные линки, скриншотить содержание десятка тем я не считаю продуктивным.
Re[32]: Visual C# vs C++. Надо сравнить перспективы.
Здравствуйте, itslave, Вы писали:
EP>>>>Не проходи мимо, загляни в форум .NET, пройдись например по первым десяти темам и посчитай в скольких из них "не нужна производительность, даже забесплатно" I>>>Заглянул I>>>Image: 22c5525c2f.png I>>>Какой из них про перфоманс? EP>>Ты во внутрь тем загляни I>Тебя не затруднит привести конкретные линки, скриншотить содержание десятка тем я не считаю продуктивным.
Windows 10 Memory Compression And More. "Статья не затрагивает ничего специфичного для шарпа / CLR, так что слегка неформат". Прям в стартпосте.
EP>https://rsdn.org/forum/dotnet/6657916.flat
" [Link] Визуализация работы разных режимов GC". Чувак сделал тулзу, которая чего то там показывает, молодец, но где там про проблемы с перфомансом?
EP>https://rsdn.org/forum/dotnet/6660816.flat
Ну так ещё бы оно работало с выключенной оптимизацией. )))
_>>Я тоже так думаю. Только откуда тогда возьмутся оптимизации в C#, про которые ты говорил? _>Я имел ввиду простой случай:
A a = new A();
a.f();
_>где f — виртуальный метод
То, что в C# работает (кстати, ты это проверял, она точно работает?) хотя бы такая простейшая оптимизация, это уже хорошо. Но в гораздо более распространённом случае типа такого:
A a = GetA();
a.f();
она точно не сработает. В то время как в C++ наоборот она сработает со 100% гарантией (ну если конечно оптимизация включена ).
Здравствуйте, itslave, Вы писали:
_>>Это всё смешные отмазки новорождёнными "стандартами" (хотя никто их не использует) и т.п. Давай лучше по сути. Вот у меня есть приложение на .Net написанное для винды с помощью WPF (это же стандартная библиотек для этих целей, входящая в .Net, предустановленная на винде, и рекомендуемая прямо в этой теме адептами .Net). Получается что я не смогу запустить это приложение на таком же десктопе, но под Линухом, правильно? ) И к чему тогда разговоры о какой-то кроссплатформенности? ) I>После приведенного тобой в треде выше "кроссплатформенного" примера консольки на С++ в 20 строк, такое просто смешно читать.
Тот пример я при желание легко (пара строк, причём исключительно средствами самого языка) подправлю так, что он будет работать на всех нужных ОС. А что будешь делать ты со своим WPF приложением? Переписывать с нуля? )))
Здравствуйте, alex_public, Вы писали:
_>Тот пример я при желание легко (пара строк, причём исключительно средствами самого языка) подправлю так, что он будет работать на всех нужных ОС. А что будешь делать ты со своим WPF приложением? Переписывать с нуля? )))
Ну про пару строк это ты как обычно трындишь.
А если нужна кроссплатформенность, то он возьмет xamarin.
Здравствуйте, itslave, Вы писали:
_>>Питон не взлетел? ) Смешно. ) I>Твои же примеры говорят о том, что питон не взлетел и остался уделом маргиналов — игрушки и hpc.
Ну если Питон — это удел маргиналов, то C# (которого Питон уже почти догнал и скоро обойдёт по популярности http://www.tiobe.com/tiobe-index/) точно такой же.
I>В вебе попытался, но не взлетел.
А у тебя какие установлены? У меня вот много разных (и для 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 на страничку, а все эти ужасы живут где-то в параллельной реальности. )))