Re[4]: WinC++
От: Silver_S Ниоткуда  
Дата: 05.05.11 18:58
Оценка: +1 -4 :))) :)
Здравствуйте, Mazay, Вы писали:

M>... Не верю, что им реально слабо допилить С# по скорости до VisualС++. Они же сами плюсовый компилятор делали, и у них это неплохо получалось (по по крайней мере в VS7 и VS8). Почему нельзя этот опыт перенести на C#? Если верить Шутауту, то C# не сильно от плюсов отстаёт, для UI на персоналках должно хватать.


Где то тут были высказывания разработчиков C# об оптимизациях.
По их словам — не компилятор должен оптимизировать, а JIT, поэтому не делают оптимизации которые могли бы.
Но, ИМХО, уже прошли времена когда софт тормозил из-за того что плохо раскладывается по регистрам или подобной мелочевки. Тормоза больше из-за плохих высокоуровневых решений — программы делают кучу ненужной работы.
Думаю, доля правды есть в таком высказывании: Программы тормозят из-за того что их пишут на С++. Пока они борются с указателями и хедер файлами, допускают более крупные архитектурные просчеты. А манагеры-архитекторы в кучах С++ кода не могут ковыряться.

Почему тормозит новый MSDN при старте? Что-то ненужное там делает. Его случайно не на С++ писали?
Почему тормозит WPF. Виноват скорее всего не .NET, а кривой milcore.dll, который на С++ написан.
Re: WinC++
От: Cyberax Марс  
Дата: 05.05.11 16:42
Оценка: 5 (1) +4 :)))
Здравствуйте, VladD2, Вы писали:

VD>Вот одна дама пишет о ренесансе С++ в МС.

VD>Ваше мнение!...
Ну так... С++ — это худший язык. За исключением всех остальных.

Сделать C# реально кроссплатформенным не получилось, так что его популярность ограничена Windows'ом. Использовать Java в MS по понятным причинам невозможно.

Так что и остаётся С++ и С.
Sapienti sat!
Re[2]: WinC++
От: Klatu  
Дата: 06.05.11 16:54
Оценка: +2 -1 :))) :)
Здравствуйте, okman, Вы писали:

O>а также возвращение C++ на позиции, с которых его незаслуженно списывают.


Боже упаси. C++ чудовищно крив во многих вещах, давно пора списать его в утиль. Проблема только в том, что достойных замен пока не видно.
... << RSDN@Home 1.2.0 alpha 5 rev. 1510>>
Re: WinC++
От: okman Беларусь https://searchinform.ru/
Дата: 06.05.11 08:23
Оценка: +6
Здравствуйте, VladD2.

Я почти полностью солидарен вот с этой
Автор: Геннадий Васильев
Дата: 06.05.11
точкой зрения.

Текущее состояние сектора Win32/COM/C++ напоминает ракету, выпущенную когда-то с большой скоростью,
но лишенное поддержки наземной системы наведения. Если написанное в статье — правда, и перекос
стали исправлять, то могу только порадоваться. Это означает появление новых инструментальных средств и
библиотек от Microsoft, а также возвращение C++ на позиции, с которых его незаслуженно списывают.
Re[3]: WinC++
От: Cyberax Марс  
Дата: 05.05.11 19:22
Оценка: +5
Здравствуйте, Jack128, Вы писали:

C>>Сделать C# реально кроссплатформенным не получилось, так что его популярность ограничена Windows'ом. Использовать Java в MS по понятным причинам невозможно.

C>>Так что и остаётся С++ и С.
J>А зачем MS нужен кроссплатформенный язык??
Он нужен разработчикам. А разработчики нужны MS.

Если лет 5 всё было просто с доминирующим MS, под который можно было писать и не думать больше ни о чём, то сейчас всё становится интереснее. Есть Mac с неплохой долей рынка, число мобильных устройств с Linux'ом внутри превысит скоро сотню миллионов, производительность снова важна и т.д.

Т.е. если я сейчас хочу писать кроссплатформенное приложение, то у меня особого выбора и нет, всё больше получается C++ для ядра и местный фреймворк для графики.
Sapienti sat!
WinC++
От: VladD2 Российская Империя www.nemerle.org
Дата: 05.05.11 16:35
Оценка: 24 (4)
Всем привет!

Вот одна дама пишет о ренесансе С++ в МС.

Ваше мнение!...
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: WinC++
От: Воронков Василий Россия  
Дата: 05.05.11 17:51
Оценка: +4
Здравствуйте, VladD2, Вы писали:

VD>Всем привет!

VD>Вот одна дама пишет о ренесансе С++ в МС.
VD>Ваше мнение!...

Мое мнение — эта статья чистый желтяк. "Как говорил один мой знакомый, имеющий представление о том, как думают в Майкрософт...".
В общем не читайте советских газет, и спать будет легче.
Re[4]: WinC++
От: CreatorCray  
Дата: 06.05.11 06:06
Оценка: +2 -1 :)
Здравствуйте, Геннадий Васильев, Вы писали:

_>>>А что — возьмут да и выкинут нафиг .Net из Windows 8, поигрались и будет, добро пожаловать в реальный мир!

CC>>А было бы неплохо.

ГВ>А зачем? Java под Windows работает, так пусть и .Net работает.

Не, пусть работает.
Я немного про другое.
Я про написанные на .NET стандартные утилиты, которыми стало просто тупо неудобно пользоваться из-за того, что они стали пц какие неповоротливые.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: WinC++
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 06.05.11 02:11
Оценка: 1 (1) +2
Здравствуйте, VladD2, Вы писали:

VD>Вот одна дама пишет о ренесансе С++ в МС.


Казалось бы надо как-то по-особенному порадоваться, но... Что тут удивительного?! Если MS хочет удвоить бизнес в области инструментальных средств, то надо позаботиться и о native — глупо игнорировать этот сегмент, кто бы что ни говорил. Потом, есть ещё "свежеприобретённая" Nokia со своими мобильниками и кучей C++-ников вокруг — не самая последняя в мире аудитория, так почему бы не смягчить у неё панические настроения, что, мол, придётся переучиваться на .Net?

А ещё тут получается интересная, хотя отчасти и утрированная коллизия. .Net — неплохая штука (в некотором смысле), но программы под него, худо-бедно, но стали переносимыми и разные mono-вцы носом роют землю, чтобы эта переносимость таки имелась. То есть потенциально .Net-разработка может свалить куда-нибудь на *nix, тогда как приложение, привязанное к WinAPI ты уже так просто на *nix не перенесёшь, способствуя тем самым распространению самой Windows. Но тут странность — MS сейчас как-то не слишком вкладывается в поддержку C++, так или иначе подталкивая C++-ников к переходу на переносимую платформу, а на фига оно MS-у, такое счастье? Можно понять, почему IBM с её зоопарком аппаратуры вкладывается в переносимую Java, но у Microsoft-то не такие условия — ей же не нужно скрещивать iSeries, zSeries, eSeries, что-там-ещё-Series. Так зачем платить больше? (c)

Короче, можно, наверное, назвать эти события "ренессансом C++ в MS", но как по мне, это лишь исправление давно сложившегося перекоса. Что там будет дальше с managed-платформой — посмотрим. Хейлсберг — мастак сотворять вещи, сильно не похожие на Microsoft tools.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[2]: WinC++
От: Jack128  
Дата: 05.05.11 17:17
Оценка: +3
Здравствуйте, Cyberax, Вы писали:

C>Сделать C# реально кроссплатформенным не получилось, так что его популярность ограничена Windows'ом. Использовать Java в MS по понятным причинам невозможно.


C>Так что и остаётся С++ и С.


А зачем MS нужен кроссплатформенный язык??
Re: WinC++
От: lazy_walrus  
Дата: 05.05.11 19:38
Оценка: :)))
Здравствуйте, VladD2, Вы писали:

VD>Всем привет!


VD>Вот одна дама пишет о ренесансе С++ в МС.


А что — возьмут да и выкинут нафиг .Net из Windows 8, поигрались и будет, добро пожаловать в реальный мир!
Re[2]: WinC++
От: CreatorCray  
Дата: 05.05.11 22:41
Оценка: +3
Здравствуйте, lazy_walrus, Вы писали:

_>А что — возьмут да и выкинут нафиг .Net из Windows 8, поигрались и будет, добро пожаловать в реальный мир!

А было бы неплохо.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[6]: WinC++
От: WolfHound  
Дата: 06.05.11 09:32
Оценка: +1 -1 :)
Здравствуйте, Jack128, Вы писали:

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

Чуть менее чем все решения дизайнеров .НЕТ.
Например хардкод опкодов типа add, sub итп в систему команд .НЕТ привел к тому что создание аналога std::valarray из C++/STL невозможно.
Очень слабая система типов. Например нельзя сделать безопасный доступ без рантайм проверки к элементам массива даже если я могу доказать что индекс никогда не выйдет за приделы массива.
Отсутствие неизменяемых типов данных.
Отсутствие безопасных http://en.wikipedia.org/wiki/Tagged_union
Отсутствие структурных типов, что приводит к невозможности создания нормальных кортежей.
Совершенно дебильные соглашения о вызовах и отсутствие хвостовой рекурсии. То что есть работает так что лучше бы не было.
...
Короче мне лень перечислять.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[5]: WinC++
От: Sorc17 Россия  
Дата: 06.05.11 10:09
Оценка: +1 -2
Здравствуйте, CreatorCray, Вы писали:

CC>Я про написанные на .NET стандартные утилиты, которыми стало просто тупо неудобно пользоваться из-за того, что они стали пц какие неповоротливые.


У меня на компьютере FireFox, в котором по умолчанию открыты более десятка вкладок, открывается быстрее, чем PowerShell.
Для нас [Thompson, Rob Pike, Robert Griesemer] это было просто исследование. Мы собрались вместе и решили, что ненавидим C++ [смех].
Re[4]: WinC++
От: WolfHound  
Дата: 05.05.11 19:50
Оценка: +1 :)
Здравствуйте, Mazay, Вы писали:

M>Не верю, что им реально слабо допилить С# по скорости до VisualС++.

Бесполезно.
.НЕТ быстрым быть не может.
И не по тому, что менеджед, а по тому что криво менеджед.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[4]: WinC++
От: MxMsk Португалия  
Дата: 06.05.11 06:11
Оценка: +1 :)
Здравствуйте, Геннадий Васильев, Вы писали:

CC>>А было бы неплохо.

ГВ>А зачем? Java под Windows работает, так пусть и .Net работает.
У него пунктик.
Re: WinC++
От: 24  
Дата: 05.05.11 17:06
Оценка: -1
Здравствуйте, VladD2, Вы писали:

VD>Ваше мнение!...


Лучше бы D проталкивали, или, если политика партии не позволяет, то свой клон. А так, почему бы и нет — всё равно от С++ в ближайшее время никуда не денешься, может рефакторинги какие-то к студии прикрутят, или ещё что-то полезное сделают.
Re[2]: WinC++
От: Воронков Василий Россия  
Дата: 05.05.11 17:45
Оценка: +1
Здравствуйте, Cyberax, Вы писали:

VD>>Вот одна дама пишет о ренесансе С++ в МС.

VD>>Ваше мнение!...
C>Ну так... С++ — это худший язык. За исключением всех остальных.
C>Сделать C# реально кроссплатформенным не получилось, так что его популярность ограничена Windows'ом.

А что MS пыталась сделать его кроссплатформенным?

Вообще если почитать ссылку, которую дал Влад, там совсем не о кроссплатформенности речь. А скорее наоборот.
Re[5]: WinC++
От: Jack128  
Дата: 06.05.11 06:01
Оценка: +1
Здравствуйте, WolfHound, Вы писали:

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


M>>Не верю, что им реально слабо допилить С# по скорости до VisualС++.

WH>Бесполезно.
WH>.НЕТ быстрым быть не может.
WH>И не по тому, что менеджед, а по тому что криво менеджед.

а можно по пунктом, какие просчёты, которые нельзя исправить, имеются в дот нете??
Re[7]: WinC++
От: Jack128  
Дата: 06.05.11 10:26
Оценка: :)
Здравствуйте, WolfHound, Вы писали:

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


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

WH>Чуть менее чем все решения дизайнеров .НЕТ.
WH>Например хардкод опкодов типа add, sub итп в систему команд .НЕТ привел к тому что создание аналога std::valarray из C++/STL невозможно.
не знаком с плюсами, не могу прокомментировать.
WH>Очень слабая система типов. Например нельзя сделать безопасный доступ без рантайм проверки к элементам массива даже если я могу доказать что индекс никогда не выйдет за приделы массива.
есть принципиальные проблемы расширить ран тайм нужным образом?
WH>Отсутствие неизменяемых типов данных.
есть принципиальные проблемы добавить оные?
WH>Отсутствие безопасных http://en.wikipedia.org/wiki/Tagged_union
вроде тоже самые Алг. типы данных, чем плоха эмуляция на классах?
WH>Отсутствие структурных типов, что приводит к невозможности создания нормальных кортежей.
а чем Nemerle'вские/F# овские кортежы плохи??
WH>Совершенно дебильные соглашения о вызовах и отсутствие хвостовой рекурсии. То что есть работает так что лучше бы не было.
ну дык в чем проблема научить оптимизировать то?? у ран тайма вся инфа для этого есть?
WH>...
WH>Короче мне лень перечислять.

то что ты перечислил — это ж не принципиальные проблемы, все это можно добавить без поломки существующего кода. Другое дело, что MS особо не чешется с разгоном ран тайма, ну так для большенства приложений все более менее нормально работает, вот они и забили..
Re[8]: WinC++
От: WolfHound  
Дата: 06.05.11 15:40
Оценка: -1
Здравствуйте, Sinix, Вы писали:

S>1. Как это должно было быть реализовано? Я с наскока могу предложить только крайне извращённый способ — JIT заменяет op_Addition и co для встроенных типов, для всех остальных — просто вызов методов. Очевидно, вы имели в виду более юзабельный вариант.

Именно так.
И это самый прямой метод.
Почему ты называешь его извращенным не ясно.
Ибо JIT ну совершенно без разницы что знать в лицо опкод add или метод op_Addition

S>2.А нафига иметь даже потенциальную фозможность переизобрести строку, массив etc? Точнее — пущщай оно будет, но зачем затачивать рантайм под такие крайне редкие юз-кейзы?

Это нужно для того чтобы можно было писать обобщенный код.
Попробуй, создай аналог std::valarray на генериках .НЕТ.

S>unsafe. Потому что с точки зрения рантайма вы занимаетесь колдунством и следовательно, он не может верифицировать IL. Без верификации мы легко получим кучу дыр в как бы безопасном коде.

Это только тебе кажется что unsafe.
А когда я говорю доказать я имею в виду доказать.
Иди читай про type refinements
И только не говори что это ни кому не нужно.
У меня полно кода, где это не только нужно, но и очень легко доказывается.

S>FieldOffsetAttribute. Потому что в 90% случаев рантайм не сможет гарантировать валидность подобных структур. Для редких частных случаев вполне можно организовать проверку самописным правилом.

Ой лол.
Не путай кривущий рантайм .НЕТ и рантайм вообще.

S>Есть тюплы, не хватает только синтаксического сахара для них.

А теперь попробуй передать анонимный тип с именованными полями из одной сборки в другую.

S>Почему тюплы — не struct разжёвывалось неоднократно, если коротко — структура с 3 и > полями будет дороже при передаче в качестве аргумента.

А это еще одна проблема не дающая нормально работать.
Имея неизменяемые структуры рантайм сам может решать делать и value или ref в зависимости от их реального размера.

S>Ну вот зачем так подставляться? tail.-префикс присутствует со 2го рантайма. Если не устраивает — могу поискать нормальный пруф.

Ты вообще читаешь, что я пишу?
Ты знаешь с какой скоростью начинает работать код?
А я знаю. Измерял и плакал.
Хотя хвостовой вызов должен быть как минимум не медленней обычного.
А знаешь по чему? А по тому что CAS.
А CAS появился из-за того что мелкософт не осилил CBS.

S>Что характерно, все претензии никак не соотносятся с исходным утверждением — ".НЕТ быстрым быть не может."

Что характерно все претензии к моим претензиям исходят из недостатка образования.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[12]: WinC++
От: WolfHound  
Дата: 06.05.11 18:40
Оценка: +1
Здравствуйте, Sinix, Вы писали:

S>Пардон, я просто не успеваю за мыслью: начали с очень узкой фичи, и внезапно перешли к статической верификации кода. Лично я всеми конечностями за. Увы, мейнстрим-реализация от МС — code contracts — оччень малопрактична, но у них в загашнике есть Verve OS (по ссылке — pdf).

С вероятностью 99.9999% там оно и останется.
Не слушает мелкософт свой ресерч.

WH>>В .НЕТ да. А по жизни нет.

S>Ну так мы обсуждаем решения в .net И да, мне самому не нравится как в шарпе реализованы анонимные типы.
Ну да. Я говорю .НЕТ жутко крив.
Ты вроде начал спорить но теперь со всем соглашаешься

S>Сборок. У нас есть ABI аля SomeMethod(SomeVal val). После очередной правки SomeVal внезапно становится ref-типом — или перекомпилируем весь код, или ловим исключения в рантайме. Это можно обойти, но придётся явно вводить classorstruct-типы, т.е. одними изменениями в компиляторе не обойтись.

Так я сразу говорил рантайм .НЕТ крив.

S>Заодно нашлась заметка про оптимизации tailcall в .NET 4/

Всеравно тормозит.
Хвостовой вызов должен быть в самом худшем случае таким же по стоимости как простой вызов.
Но обычно он должен быть дешевле.
Ибо это обычный goto.
А если еще и аргументы передавать через регистры, а не через стек то там производительность как у обычных циклов должна быть.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[6]: WinC++
От: Silver_S Ниоткуда  
Дата: 07.05.11 14:37
Оценка: +1
Здравствуйте, Ikemefula, Вы писали:
I>Здравствуйте, Silver_S, Вы писали:
S_S>>Почему тормозит WPF. Виноват скорее всего не .NET, а кривой milcore.dll, который на С++ написан.

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

В самом WPF или у milcore тоже доступны исходники?
В WPF конечно тоже оверхеда должно быть достаточно. Если они там так активно с Dispatcher взаимодействуют, чуть ли не на каждом вызове метода у Dispatcher спрашивают из правильного потока вызов. И с Freezable тоже...

Но тормоза кажется именно из-за самой milcore. Неправильно они все сделали.
Надо было так: первый слой это просто окно в котором лежит D3D девайс, вместе с D2D, готовые к работе и с заплатанными косяками. Хотябы только заплатки на косяки описанные в MSDN. И плюс Application (очередь сообщений и подобное).
Как ни странно, даже это сделать не так просто сделать. Sample набрость минутное дело, но сложнее если надо без косяков и кривостей при Resize, переключнии режимов полноэкранный/оконный, ....
Для первого слоя все, больше ничего не надо, никаких медиа интегрейшен.
Поверх него уже писать WPF, а кому надо, будет напрямую использовать в обход WPF.
Никкаких API на C++, COM тут не надо, полноценный managed API — ну нету у D3D функций которые надо быстро и часто вызывать, все данные в байтовых массивах подаются. Даже у D2D вызывать всякие DrawLine, почти без оверхеда — все очень быстро работает.

С++, COM программеров нельзя и близко подпускать к дизайну такого API. Они там наделают.
Вот как можно назвать такой паттерн, используемый в DX10 API ?: взять несколько разных объектов, с разным набором функций(методов). Соединить в один интерфейс, тип объекта указывать при создании. А методы этих объектов свалить в кучу, если вызовется несоответствующий метод выбрасывать Exception. Ну сэкономили они несколько записей об интерфейсах в реестре. Может тогда COM тут не нужен? У программера привыкшего к .NET рука бы не повернулась такого сделать.

WPF надо было начинать с полноценного Managed DX (а не оберткой вокруг кривого COM API).
Или если надо сразу два варианта. Только потом всякие XNA для XBox. Раз у всех Винда от MS, MS и должны этим заниматься.
Re[2]: WinC++
От: Курилка Россия http://kirya.narod.ru/
Дата: 05.05.11 17:08
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Сделать C# реально кроссплатформенным не получилось, так что его популярность ограничена Windows'ом. Использовать Java в MS по понятным причинам невозможно.


Особенно после таких новостей про Mono
Re[3]: WinC++
От: Mazay Россия  
Дата: 05.05.11 18:19
Оценка:
Здравствуйте, Jack128, Вы писали:

C>>Сделать C# реально кроссплатформенным не получилось, так что его популярность ограничена Windows'ом. Использовать Java в MS по понятным причинам невозможно.


C>>Так что и остаётся С++ и С.


J>А зачем MS нужен кроссплатформенный язык??


Вот-вот. Ситуация реально странная. Пока что все аргументы от МС в пользу С++ сводятся к производительности и открытию доступа к каким-то мифическим возможностям то ли операционки, то ли компьютера (new possibilities that the Windows platforms unlocks for applications). На мой нюх это какая-то гнилая отмазка. Не верю, что им реально слабо допилить С# по скорости до VisualС++. Они же сами плюсовый компилятор делали, и у них это неплохо получалось (по по крайней мере в VS7 и VS8). Почему нельзя этот опыт перенести на C#? Если верить Шутауту, то C# не сильно от плюсов отстаёт, для UI на персоналках должно хватать.
Главное гармония ...
Re: WinC++
От: SleepyDrago Украина  
Дата: 05.05.11 19:22
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Всем привет!


VD>Вот одна дама пишет о ренесансе С++ в МС.


VD>Ваше мнение!...

Это же ужас. Итак было видно что с visual studio гайки закручивают так теперь совсем будут дожимать чтобы деньгу до $2bn догнать. а про кому и вин8 это все желтизна некомпетентная.
Re[5]: WinC++
От: Anpek  
Дата: 05.05.11 19:52
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>.НЕТ быстрым быть не может.


Ха-ха-ха. Понеслась.. душа в рай. Ой помнится как сначала все от COM-а кипятком писали. А потом те же самые, кто нахваливал COM стали кричать какое это г...
Новый виток спирали
Re[3]: WinC++
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 06.05.11 02:12
Оценка:
Здравствуйте, CreatorCray, Вы писали:

_>>А что — возьмут да и выкинут нафиг .Net из Windows 8, поигрались и будет, добро пожаловать в реальный мир!

CC>А было бы неплохо.

А зачем? Java под Windows работает, так пусть и .Net работает.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[4]: WinC++
От: Jack128  
Дата: 06.05.11 05:59
Оценка:
Здравствуйте, Cyberax, Вы писали:

J>>А зачем MS нужен кроссплатформенный язык??

C>Он нужен разработчикам. А разработчики нужны MS.

не нужны MSу абстрактные разработчики, им нужны разработчики под платформы от MS.

C>Если лет 5 всё было просто с доминирующим MS, под который можно было писать и не думать больше ни о чём, то сейчас всё становится интереснее. Есть Mac с неплохой долей рынка, число мобильных устройств с Linux'ом внутри превысит скоро сотню миллионов, производительность снова важна и т.д.


C>Т.е. если я сейчас хочу писать кроссплатформенное приложение, то у меня особого выбора и нет, всё больше получается C++ для ядра и местный фреймворк для графики.


да не нужны мелкософту кроссплатформенные приложения.
Re[5]: WinC++
От: MxMsk Португалия  
Дата: 06.05.11 06:17
Оценка:
Здравствуйте, Jack128, Вы писали:

C>>Т.е. если я сейчас хочу писать кроссплатформенное приложение, то у меня особого выбора и нет, всё больше получается C++ для ядра и местный фреймворк для графики.

J>да не нужны мелкософту кроссплатформенные приложения.
Ну, Офис под Мак то они развивают. Там даже Риббон есть
Re[5]: WinC++
От: Cyberax Марс  
Дата: 06.05.11 08:32
Оценка:
Здравствуйте, Jack128, Вы писали:

C>>Он нужен разработчикам. А разработчики нужны MS.

J>не нужны MSу абстрактные разработчики, им нужны разработчики под платформы от MS.
Они уже не полный монополист, чтобы всем диктовать условия. Особенно на мобильных платформах.

C>>Т.е. если я сейчас хочу писать кроссплатформенное приложение, то у меня особого выбора и нет, всё больше получается C++ для ядра и местный фреймворк для графики.

J>да не нужны мелкософту кроссплатформенные приложения.
Они нужны разработчикам.
Sapienti sat!
Re[2]: WinC++
От: MasterZiv СССР  
Дата: 06.05.11 08:34
Оценка:
On 06.05.2011 6:11, Геннадий Васильев wrote:
> Если MS хочет удвоить бизнес в области инструментальных средств, то надо
> позаботиться и о native

Они бы раньше заботились, блин, когда Fortran продавали.
Posted via RSDN NNTP Server 2.1 beta
Re[6]: WinC++
От: Jack128  
Дата: 06.05.11 10:28
Оценка:
Здравствуйте, Sorc17, Вы писали:

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


CC>>Я про написанные на .NET стандартные утилиты, которыми стало просто тупо неудобно пользоваться из-за того, что они стали пц какие неповоротливые.


S>У меня на компьютере FireFox, в котором по умолчанию открыты более десятка вкладок, открывается быстрее, чем PowerShell.


powershell — это конечно еще тот тормоз, но что то мне кажется тут дело не в нете, а кривых руках разрабов PS. туча дотнетовских приложений нормально стартуют..
Re[7]: WinC++
От: MxMsk Португалия  
Дата: 06.05.11 10:32
Оценка:
Здравствуйте, Jack128, Вы писали:

S>>У меня на компьютере FireFox, в котором по умолчанию открыты более десятка вкладок, открывается быстрее, чем PowerShell.

J>powershell — это конечно еще тот тормоз, но что то мне кажется тут дело не в нете, а кривых руках разрабов PS. туча дотнетовских приложений нормально стартуют..
Речь скорее всего о первом старте, когда рантайм подгружается в первый раз. Оно действительно медленно.
Re[8]: WinC++
От: WolfHound  
Дата: 06.05.11 10:38
Оценка:
Здравствуйте, Jack128, Вы писали:

J>то что ты перечислил — это ж не принципиальные проблемы, все это можно добавить без поломки существующего кода. Другое дело, что MS особо не чешется с разгоном ран тайма, ну так для большенства приложений все более менее нормально работает, вот они и забили..

Ага, конечно.
Только всю стандартную библиотеку переписать с потерей совместимости... а так да... никаких проблем.
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[8]: WinC++
От: hardcase Пират http://nemerle.org
Дата: 06.05.11 10:47
Оценка:
Здравствуйте, Jack128, Вы писали:

WH>>Очень слабая система типов. Например нельзя сделать безопасный доступ без рантайм проверки к элементам массива даже если я могу доказать что индекс никогда не выйдет за приделы массива.

J>есть принципиальные проблемы расширить ран тайм нужным образом?

Как ты представляешь себе расширение существующего рантайма?

WH>>Отсутствие неизменяемых типов данных.

J>есть принципиальные проблемы добавить оные?

Чуть менее чем весь FCL придется выбросить нафиг.

WH>>Отсутствие безопасных http://en.wikipedia.org/wiki/Tagged_union

J>вроде тоже самые Алг. типы данных, чем плоха эмуляция на классах?

Тем что они — ссылочные, а ссылочные объекты всегда в куче создаются, что ведет к серьезному оверхеду при определенных сценариях использования.

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

J>а чем Nemerle'вские/F# овские кортежы плохи??

Тем что они эмулированы конечным множеством обобщенных типов. Ну и как видишь их сейчас минимум два семейства: System.Tuple, Nemerle.Builtins.Tuple. В других функциональных языках, изобретенных до .NET 4.0 возможно тоже что-то свое.

WH>>Совершенно дебильные соглашения о вызовах и отсутствие хвостовой рекурсии. То что есть работает так что лучше бы не было.

J>ну дык в чем проблема научить оптимизировать то?? у ран тайма вся инфа для этого есть?

Рантайм и "оптимизирует"
/* иЗвиНите зА неРовнЫй поЧерК */
Re[8]: WinC++
От: Sorc17 Россия  
Дата: 06.05.11 10:48
Оценка:
Здравствуйте, MxMsk, Вы писали:

MM>Речь скорее всего о первом старте, когда рантайм подгружается в первый раз. Оно действительно медленно.


Да, последующие запуски терпимы.
Для нас [Thompson, Rob Pike, Robert Griesemer] это было просто исследование. Мы собрались вместе и решили, что ненавидим C++ [смех].
Re[5]: WinC++
От: VladD2 Российская Империя www.nemerle.org
Дата: 06.05.11 11:25
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>.НЕТ быстрым быть не может.

WH>И не по тому, что менеджед, а по тому что криво менеджед.

Да ладно! Ошибки есть, но их не так уж и много. С точки зрения скорости больше проблем вызывает GC, а не какие-то там проблемы рантайма. Единственный серьезный косяк это пожалуй — ковариантность для массивов. Это действительно лютые тормоза без какой либо необходимости.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: WinC++
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 06.05.11 11:32
Оценка:
Здравствуйте, MasterZiv, Вы писали:

>> Если MS хочет удвоить бизнес в области инструментальных средств, то надо

>> позаботиться и о native

MZ>Они бы раньше заботились, блин, когда Fortran продавали.


There are no left time to do right things. (с) А сейчас, видимо, wrong things припёрли, вот и time нашлось.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[5]: WinC++
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 06.05.11 11:39
Оценка:
Здравствуйте, CreatorCray, Вы писали:

ГВ>>А зачем? Java под Windows работает, так пусть и .Net работает.

CC>Не, пусть работает.
CC>Я немного про другое.
CC>Я про написанные на .NET стандартные утилиты, которыми стало просто тупо неудобно пользоваться из-за того, что они стали пц какие неповоротливые.

Так это вопросы к тем, кто втыкает .Net куда надо и куда не надо. Сам-то .Net здесь так, рядом оказался.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[6]: WinC++
От: CreatorCray  
Дата: 06.05.11 11:41
Оценка:
Здравствуйте, Геннадий Васильев, Вы писали:

ГВ>Так это вопросы к тем, кто втыкает .Net куда надо и куда не надо. Сам-то .Net здесь так, рядом оказался.

Ну, вот если убрать FW из поставки, то ни один стандартный компонент, входящий в поставку нельзя будет написать на .NET.
Кому надо будет — поставит FW отдельно.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[4]: WinC++
От: yoriсk.kiev.ua  
Дата: 06.05.11 12:40
Оценка:
Здравствуйте, Cyberax, Вы писали:

CC>Если лет 5 всё было просто с доминирующим MS, под который можно было писать и не думать больше ни о чём, то сейчас всё становится интереснее. Есть Mac с неплохой долей рынка


CC>Т.е. если я сейчас хочу писать кроссплатформенное приложение, то у меня особого выбора и нет, всё больше получается C++ для ядра и местный фреймворк для графики.


А мужики-то не знают. Вот эти к примеру: http://habrahabr.ru/blogs/gdev/117564/

Кому лень ходить по ссылке(статья вообще большая и о другом): ребята написали игруху, выложили её в app store, success story и всё такое. В общем, ничего сильно интересного, кроме маленького абзаца:

О том, что привело к успеху в разработке игры:
•C# + Visual Studio + Resharper + Unity3d – с программисткой точки зрения.


Коментарии излишни, бо это не столь нелюбимое нелюбителями MS get the facts, а самая что ни на есть жизненная жизнь.

Вобщем, не всё так однозначно.
Re[5]: WinC++
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 06.05.11 14:23
Оценка:
Здравствуйте, yoriсk.kiev.ua, Вы писали:

YKU>

О том, что привело к успеху в разработке игры:
YKU> •C# + Visual Studio + Resharper + Unity3d – с программисткой точки зрения.


YKU>Коментарии излишни, бо это не столь нелюбимое нелюбителями MS get the facts, а самая что ни на есть жизненная жизнь.


YKU>Вобщем, не всё так однозначно.


Угу, цитата из википедии, подтверждаемая содержанием сайта Unity3d:

— пока не поддерживает Linux, хотя разработки ведутся
— не поддерживает Windows Mobile и Windows Phone 7


Жизненная кроссплатформенность, да...
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[6]: WinC++, дополнение
От: Геннадий Васильев Россия http://www.livejournal.com/users/gesha_x
Дата: 06.05.11 14:25
Оценка:
ГВ>Жизненная кроссплатформенность, да...

Я бы сказал даже — жизненная кросплатформенность средств, построенных на платформе, изначально разработанной и продвигаемой самой Microsoft.
Я знаю только две бесконечные вещи — Вселенную и человеческую глупость, и я не совсем уверен насчёт Вселенной. (c) А. Эйнштейн
P.S.: Винодельческие провинции — это есть рулез!
Re[7]: WinC++
От: Sinix  
Дата: 06.05.11 15:11
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Например хардкод опкодов типа add, sub итп в систему команд .НЕТ привел к тому что создание аналога std::valarray из C++/STL невозможно.

Два вопроса:
1. Как это должно было быть реализовано? Я с наскока могу предложить только крайне извращённый способ — JIT заменяет op_Addition и co для встроенных типов, для всех остальных — просто вызов методов. Очевидно, вы имели в виду более юзабельный вариант.
2.А нафига иметь даже потенциальную фозможность переизобрести строку, массив etc? Точнее — пущщай оно будет, но зачем затачивать рантайм под такие крайне редкие юз-кейзы?

WH>Очень слабая система типов. Например нельзя сделать безопасный доступ без рантайм проверки к элементам массива даже если я могу доказать что индекс никогда не выйдет за приделы массива.

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

Как вариант, можно предусмотреть синтаксический сахар, но внутри всё равно будет небезопасная операция.

WH>Отсутствие неизменяемых типов данных.

Если требуется — реализуется за пару часов проверкой при компиляции. Ради спортивного интереса делал рабочий прототип правила для FxCop пару лет назад. На практике оказался малополезен, т.к. большинство типов-значений можно упихнуть в структуры, а они по соглашению immutable.

WH>Отсутствие безопасных http://en.wikipedia.org/wiki/Tagged_union

FieldOffsetAttribute. Потому что в 90% случаев рантайм не сможет гарантировать валидность подобных структур. Для редких частных случаев вполне можно организовать проверку самописным правилом.


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

Есть тюплы, не хватает только синтаксического сахара для них. Почему тюплы — не struct разжёвывалось неоднократно, если коротко — структура с 3 и > полями будет дороже при передаче в качестве аргумента.

WH>Совершенно дебильные соглашения о вызовах и отсутствие хвостовой рекурсии. То что есть работает так что лучше бы не было.

Ну вот зачем так подставляться? tail.-префикс присутствует со 2го рантайма. Если не устраивает — могу поискать нормальный пруф.

Что характерно, все претензии никак не соотносятся с исходным утверждением — ".НЕТ быстрым быть не может."
Re[5]: WinC++
От: Cyberax Марс  
Дата: 06.05.11 16:04
Оценка:
Здравствуйте, yoriсk.kiev.ua, Вы писали:

CC>>Т.е. если я сейчас хочу писать кроссплатформенное приложение, то у меня особого выбора и нет, всё больше получается C++ для ядра и местный фреймворк для графики.

YKU>А мужики-то не знают. Вот эти к примеру: http://habrahabr.ru/blogs/gdev/117564/
Что смотреть? Примитивный платформер, его хоть на HTML5 скоро можно писать будет.
Sapienti sat!
Re[9]: WinC++
От: Sinix  
Дата: 06.05.11 16:33
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Именно так.

WH>Почему ты называешь его извращенным не ясно.
Ок, понял что имелось в виду. Раз уж мы хотим вызывать в генериках операторы op_***() (а иначе никак), то разумно использовать тот же синтаксис и для встроенных типов. В принципе, можно не ломать совместимость и добавить костыль для arithmetic-генериков — всё равно для каждого value-типа jit генерит свой код. Но криво, да

S>>unsafe. Потому что с точки зрения рантайма вы занимаетесь колдунством и следовательно, он не может верифицировать IL. Без верификации мы легко получим кучу дыр в как бы безопасном коде.

WH>Это только тебе кажется что unsafe.
WH>У меня полно кода, где это не только нужно, но и очень легко доказывается.
Я пока не убеждён, что это настолько общий случай, что окупит переработку рантайма, но спорить не буду.

S>>FieldOffsetAttribute. Потому что в 90% случаев рантайм не сможет гарантировать валидность подобных структур. Для редких частных случаев вполне можно организовать проверку самописным правилом.

WH>Не путай кривущий рантайм .НЕТ и рантайм вообще.
Ок, какой рантайм может предложить достаточно общее решение без неприятных последствий?


S>>Есть тюплы, не хватает только синтаксического сахара для них.

WH>А теперь попробуй передать анонимный тип с именованными полями из одной сборки в другую.
Анонимный тип и tuple — это разные вещи, не?

S>>Почему тюплы — не struct разжёвывалось неоднократно, если коротко — структура с 3 и > полями будет дороже при передаче в качестве аргумента.

WH>А это еще одна проблема не дающая нормально работать.
WH>Имея неизменяемые структуры рантайм сам может решать делать и value или ref в зависимости от их реального размера.
Это породит кучу неприятных сюрпризов, начиная с граблей с бинарной совместимостью и object.ReferenceEquals, которые внезапно поломаются при расширении структуры.

S>>Ну вот зачем так подставляться? tail.-префикс присутствует со 2го рантайма. Если не устраивает — могу поискать нормальный пруф.

WH>Ты вообще читаешь, что я пишу?
Да, читаю.

WH> отсутствие хвостовой рекурсии

И как я должен догадаться, что отсутствие == тормоза?


WH>Ты знаешь с какой скоростью начинает работать код?

Нет — хвостовая рекурсия мне ни разу не потребовалась.

WH>А знаешь по чему? А по тому что CAS.

А можно пруф?

WH>Что характерно все претензии к моим претензиям исходят из недостатка образования.

Вам посраться или пообщаться? Если первое — беру самоотвод, если второе — поумерим тон?
Re[10]: WinC++
От: WolfHound  
Дата: 06.05.11 17:12
Оценка:
Здравствуйте, Sinix, Вы писали:

S>Я пока не убеждён, что это настолько общий случай, что окупит переработку рантайма, но спорить не буду.

Ну ты статьи то почитай.
Это на самом деле чуть меньше чем 100% кода.
Причем доказательства не только скорость дают, но и делают не нужными юнит тесты.

S>Ок, какой рантайм может предложить достаточно общее решение без неприятных последствий?

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

S>Анонимный тип и tuple — это разные вещи, не?

В .НЕТ да. А по жизни нет.
Я же говорю .НЕТ кривой.

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

С бинарной совместимостью чего?
Код компилируется внутри домена.
Так что никаких проблем.

S>и object.ReferenceEquals, которые внезапно поломаются при расширении структуры.

Почему внезапно? Если хочешь object.ReferenceEquals то скажи что тип Reference.
Если не сказал, то не будет ни какого object.ReferenceEquals.
А учитывая, что ReferenceEquals нужен очень редко...

WH>>Ты знаешь с какой скоростью начинает работать код?

S>Нет — хвостовая рекурсия мне ни разу не потребовалась.
А мне требовалась.

WH>>А знаешь по чему? А по тому что CAS.

S>А можно пруф?
Давно читал где-то.
Да и с чего оно так тормозить то может если не из-за этого?
Ибо если это не объяснение причин, то тогда можно смело заявить что мелкософта полные ламеры. Ибо это тривиальная оптимизация, которую сделать не правильно просто не реально.

WH>>Что характерно все претензии к моим претензиям исходят из недостатка образования.

S>Вам посраться или пообщаться? Если первое — беру самоотвод, если второе — поумерим тон?
А кто первым начал?
... << RSDN@Home 1.2.0 alpha 4 rev. 1472>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[11]: WinC++
От: Sinix  
Дата: 06.05.11 17:49
Оценка:
Здравствуйте, WolfHound, Вы писали:


WH>Причем доказательства не только скорость дают, но и делают не нужными юнит тесты.

Пардон, я просто не успеваю за мыслью: начали с очень узкой фичи, и внезапно перешли к статической верификации кода. Лично я всеми конечностями за. Увы, мейнстрим-реализация от МС — code contracts — оччень малопрактична, но у них в загашнике есть Verve OS (по ссылке — pdf).

S>>Ок, какой рантайм может предложить достаточно общее решение без неприятных последствий?

WH>Чуть меньше чем все функциональные языки, которые компилируются в нативный код.
Так, я по-прежнему торможу — почему-то не узнал в лицо атд и тут целиком и полностью неправ


S>>Анонимный тип и tuple — это разные вещи, не?

WH>В .НЕТ да. А по жизни нет.
Ну так мы обсуждаем решения в .net И да, мне самому не нравится как в шарпе реализованы анонимные типы.

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

WH>С бинарной совместимостью чего?
Сборок. У нас есть ABI аля SomeMethod(SomeVal val). После очередной правки SomeVal внезапно становится ref-типом — или перекомпилируем весь код, или ловим исключения в рантайме. Это можно обойти, но придётся явно вводить classorstruct-типы, т.е. одними изменениями в компиляторе не обойтись.

WH>>>А знаешь по чему? А по тому что CAS.

WH>Да и с чего оно так тормозить то может если не из-за этого?

Действительно нашёл пруф и там ссылаются на ту же статью, что я приводил в первом посте.

Заодно нашлась заметка про оптимизации tailcall в .NET 4/

WH>А кто первым начал?

Я? Тогда пардон и спасибо!
Re[5]: WinC++
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 07.05.11 11:15
Оценка:
Здравствуйте, Silver_S, Вы писали:

S_S>Почему тормозит WPF. Виноват скорее всего не .NET, а кривой milcore.dll, который на С++ написан.


А ты загляни во внутрь, там столько оверхеда, что некуда деваться.
Re[7]: WinC++
От: MxMsk Португалия  
Дата: 07.05.11 15:38
Оценка:
Здравствуйте, Silver_S, Вы писали:

S_S>WPF надо было начинать с полноценного Managed DX (а не оберткой вокруг кривого COM API).

Соглашусь. Стоило начать с более навороченной, векторной ГУИ либы, на замену GDI+. А так, мы имеем две технологии для создания GUI на .Net, которые трудно совмещать, но у каждой есть различные, зачастую непересекающиеся с другой, достоинства. На GDI быстрее рисовать, но трудно компоновать. На WPF гораздо удобнее компоновать, но хардкорный рендеринг медлителен.
Re: WinC++
От: c-smile Канада http://terrainformatica.com
Дата: 08.05.11 02:30
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Ваше мнение!...


А то ты его не знаешь.
Re[2]: WinC++
От: VladD2 Российская Империя www.nemerle.org
Дата: 10.05.11 17:15
Оценка:
Здравствуйте, c-smile, Вы писали:

VD>>Ваше мнение!...


CS>А то ты его не знаешь.


Конечно не знаю. Я не привык спрашивать о том что знаю и так.

Потом главное в ответах не ответ, а так информация, что может появиться рядом. Даже самый последний флэйм иногда дает отличные ссылки.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re: WinC++
От: FR  
Дата: 11.05.11 05:47
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Вот одна дама пишет о ренесансе С++ в МС.


VD>Ваше мнение!...


Наверно не последнюю роль в этом ренессансе сыграло то что будущая Win 8 должна работать на маломощных устройствах с ARM процессорами.
Re: WinC++
От: alexeiz  
Дата: 15.05.11 22:44
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Всем привет!


VD>Вот одна дама пишет о ренесансе С++ в МС.


VD>Ваше мнение!...


Чтобы два раза не писать: http://www.rsdn.ru/forum/philosophy/4272592.1.aspx
Автор: alexeiz
Дата: 16.05.11
Re[2]: WinC++
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 15.05.11 23:10
Оценка:
Здравствуйте, FR, Вы писали:

VD>>Ваше мнение!...


FR>Наверно не последнюю роль в этом ренессансе сыграло то что будущая Win 8 должна работать на маломощных устройствах с ARM процессорами.


Да вообще ARM в т.ч. на мобайл-платформах сильно подгадили менеджед-разработке.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.