Re[14]: За счет чего выстреливают языки?
От: VladD2 Российская Империя www.nemerle.org
Дата: 17.07.15 20:48
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>А по факту, там где нужна скорость, биты таки выжимают везде (это можно дать ускорение на порядок, а то и несколько), в том числе и на Java. Вот конкретный пример, ручная нарезка массивов на структуры через байт-буфера, отказ от GC, и прочие кактусы радости:

EP>http://www.youtube.com/watch?v=Q-7y1u9kZV0

Случается... редко, правда. Это примерно как оптимизации на С++. Когда прижимает начинают ими заниматься, а до этого пишут в гражданском стиле.

Собственно в дотнете нарезать ничего не надо, так как есть структуры. К экономией выделения памяти прибегают, но тоже в исключительных случаях. На С++ точно так же пытаются изворачиваться. Например, прибегают к пулам (регионам) и т.п. В Розлине (новом, менеджед-компиляторе шарпа) этим занимаются, чтобы не отставать от прошлой (плюсовой) версии. Вроде как результат получился сопоставимый по скорости с плюсовым. Причина перехода на шарп с плюсов банальна. Поддержка разросшегося языка стала дикой болью и стал препятствовать развитю языка.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[14]: За счет чего выстреливают языки?
От: VladD2 Российская Империя www.nemerle.org
Дата: 17.07.15 20:53
Оценка:
Здравствуйте, WolfHound, Вы писали:

WH>Re[17]: За счет чего выстреливают языки?
Автор: alex_public
Дата: 13.07.15


Ты когда влезаешь, разбирайся. Я говорю о Evgeny.Panasyuk и alex_public.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[14]: За счет чего выстреливают языки?
От: VladD2 Российская Империя www.nemerle.org
Дата: 17.07.15 20:59
Оценка:
Здравствуйте, alex_public, Вы писали:

_>Вообще то как раз в разы и есть...


_>Вот http://rsdn.ru/forum/flame.comp/6070881
Автор: alex_public
Дата: 07.06.15
совсем не давно был конкретный простейший пример (отставание C# в 7 раз!),


Треп это все. Всегда можно найти какие-то вырожденные случаи, но они никак не будут влиять на общее положение дел. Одно узкое место занимающееся битодроблением можно и вручную оптимизировать (вплоть до ансэйфа или сишной/ассемблерной функции). А, вот 90% гражданского кода работающего с моделью проще писать на более высокоуровневом языке.
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[15]: За счет чего выстреливают языки?
От: Evgeny.Panasyuk Россия  
Дата: 17.07.15 21:56
Оценка: +1
Здравствуйте, VladD2, Вы писали:

EP>>А по факту, там где нужна скорость, биты таки выжимают везде (это можно дать ускорение на порядок, а то и несколько), в том числе и на Java. Вот конкретный пример, ручная нарезка массивов на структуры через байт-буфера, отказ от GC, и прочие кактусы радости:

EP>>http://www.youtube.com/watch?v=Q-7y1u9kZV0
VD>Случается... редко, правда. Это примерно как оптимизации на С++. Когда прижимает начинают ими заниматься, а до этого пишут в гражданском стиле.

Вот в C++ из "гражданского стиля" получается быстрый код, за счёт дешёвых абстракций.

"The going word at Facebook is that reasonably written C++ code just runs fast, which underscores the enormous effort spent at optimizing PHP and Java code. Paradoxically, C++ code is more difficult to write than in other languages, but efficient code is a lot easier [to write in C++ than in other languages]." – Herb Sutter at //build/, quoting Andrei Alexandrescu


VD>Собственно в дотнете нарезать ничего не надо, так как есть структуры.


Да, я показал экстремальный случай.
Тем не менее, C#'овские структуры далеко не всегда применимы из-за ограничений языка, я тебе уже показывал пример
Автор: Evgeny.Panasyuk
Дата: 11.10.14
.

VD>К экономией выделения памяти прибегают, но тоже в исключительных случаях.

VD>На С++ точно так же пытаются изворачиваться. Например, прибегают к пулам (регионам) и т.п.

На C++ это намного проще и естественней, например потому что есть placement new — объект можно создать практически в любом куске памяти. Попробуй на C# сделать эффективный Variant.

Помимо памяти/структур/GC — есть и другие проблемы. Например дорогие механизмы абстракций в C# — те же ФВП и замыкания.

VD>В Розлине (новом, менеджед-компиляторе шарпа) этим занимаются, чтобы не отставать от прошлой (плюсовой) версии. Вроде как результат получился сопоставимый по скорости с плюсовым.


И на C#, и даже на Java, можно написать код сопоставимый по скорости с кодом на C++ — я с этим не спорю, и даже постоянно это утверждаю.
Вот только уровнем такой код будет намного ниже чем аналог на C++, и этого кода будет намного больше. Например придётся вручную пилить все циклы, в то время как на C++ можно взять высокоуровневые ФВП+замыкания и дать компилятору их заинлайнить.

VD>Причина перехода на шарп с плюсов банальна. Поддержка разросшегося языка стала дикой болью и стал препятствовать развитю языка.


Их старый компилятор скорей всего использовал старые/плохие технологии, и это было основной проблемой. Например их компилятор C++ кода вообще не имел AST (а может и не имеет до сих пор).
Re[17]: За счет чего выстреливают языки?
От: Evgeny.Panasyuk Россия  
Дата: 17.07.15 22:17
Оценка: +1
Здравствуйте, VladD2, Вы писали:

_>>А у Nemerle есть свой аналог Boost'а? )

VD>Все что есть в Буст у немерла или реализовано в виде макросов, или уже имеется в стандартной библиотеке дотнета. Она, к твоему сведению, раз в 100 больше буста.

А где там например аналоги:
1. Boost.Heap: Fibonacci Heap, Binomial Heap
2. Boost.Geometry, Boost.Polygon
3. std/boost::deque
4. Boost Generic Image Library
5. Boost.Graph
6. Boost Interval Container Library
7. Boost Multi-index Containers
8. Boost.Odeint
9. Boost.Sort
?
Re[21]: За счет чего выстреливают языки?
От: Evgeny.Panasyuk Россия  
Дата: 17.07.15 22:26
Оценка:
Здравствуйте, VladD2, Вы писали:

_>>Что касается метапрограммирования на платформах jvm и .net, то на мой взгляд это не имеет большого смысла из-за самой ориентации этих платформ.

VD>Зачем тогда придуманы и широко используются T4? И что тогда народ трахается с реализацией разных INotifyPropertyChanged?
VD>Как раз задач которые требуют кодогенерации море. Просто часть людей не доросла до их решения с помощью МП, а часть готова возиться с текстуальной кодогенерацией без удобств, лишь бы не пользоваться ничем "левым".

Вопрос ведь не о том есть ли хоть кто-то кто пытается использовать то или иное МП на .NET, а грубо говоря о количестве таких разработчиков по сравнению например с тем же C++.
Re[21]: За счет чего выстреливают языки?
От: alex_public  
Дата: 17.07.15 23:56
Оценка:
Здравствуйте, VladD2, Вы писали:

_>>Что касается метапрограммирования на платформах jvm и .net, то на мой взгляд это не имеет большого смысла из-за самой ориентации этих платформ.

VD>Зачем тогда придуманы и широко используются T4? И что тогда народ трахается с реализацией разных INotifyPropertyChanged?

T4 — это такое метапрограммирование уровня PHP. Ну да, PHP вполне покорил массы...)

VD>Как раз задач которые требуют кодогенерации море. Просто часть людей не доросла до их решения с помощью МП, а часть готова возиться с текстуальной кодогенерацией без удобств, лишь бы не пользоваться ничем "левым".


О том в общем то и речь. ) Что не доросла и при этом не имеет никакого желания расти в эту сторону. )))
Re[17]: За счет чего выстреливают языки?
От: alex_public  
Дата: 18.07.15 01:03
Оценка:
Здравствуйте, VladD2, Вы писали:

_>>Ты не согласен с самими цифрами или с их источником?

VD>Цифры высосаны из пальца. Их обсуждать — себя не любить.

Ты не понимаешь о чём я говорю? ) Как разница откуда взяты эти цифры. У тебя же есть некое внутреннее представление (на базе многих разных источников) о состояние индустрии? Так вот твоё внутреннее представление разве не совпадает с этими цифрами (в самом грубом приближение)? )))

VD>Немерл без МП (если в нем будет все что сделано макросами, но встроено в язык) лучше шарпа раз в 10. МС эти фичи за 10 лет повторить не смог. И я об этом абзацем ниже написал.


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

_>>Не совсем так. Речь идёт о той нише, где есть смысл в переходе с C# на Nemerle.

VD>В переходе есть смысл в любой нише. Если убрать проблемы присущие "самопальной" реализации, то у Шарпа просто нет ни одного приемущества, а у Немерла их масса. Он просто очень серьезный суперсет шарпа.

Главное преимущество Шарпа сейчас (внутри мира .net) — это историческое первенство. Соответственно теперь любому другому конкурирующему языку в этой области надо быть не просто не хуже Шарпа, а намного лучше.

VD>Все что есть в Буст у немерла или реализовано в виде макросов, или уже имеется в стандартной библиотеке дотнета. Она, к твоему сведению, раз в 100 больше буста.


Смешно. )))

VD>>>Плюс это не совсем так. На дотнете и яве пишут различнийший софт. Тот же ReSharper и IDEA тому отличный пример. Вы бы назвали эти задачи "системными".

_>>Не стоит выдавать явные исключения за правило. )
VD>Какие исключения? IDE на С++ — вот это исключение. И поверь мне на слов — сервисы IDE офигеть как требовательны к производительности.

Ты вот даже не понял о чём я говорил (совсем о другом) и при этом умудрился оспорить это полной ерундой. )))

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

Однако если уж ты захочешь поговорить об IDE, да ещё и количественно, то боюсь тебя ждёт больше разочарование. Как раз C/C++ реализаций намного больше на рынке. Просто несколько лидирующих продуктов написано на Java и всё. Но если ты захочешь посчитать все, то... )))

_>>А если попробовать реализовать скажем фронтенд к gcc? )

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

На самом деле вот тут http://rsdn.ru/forum/philosophy/6117102
Автор: VladD2
Дата: 17.07.15
я уже частично согласился, что на самом деле .net является правильным выбором для вас. Только вот это моё согласие является не совсем комплиментом...

VD>Думаю, что где-то к сентябрю мы начнем работу на новой версии Немерла (или чего-то очень близкого к нему по духу) на базе Нитры. Нитра принципиально подразумевает поддержку нескольких бэкэндов. Присоединяйтесь и создадим вместе нативные бэкэнды. Я, правда, думал сделать бэкнд для LLVM, но можно и для GCC. Лично я и в том, и в другом примерно одинаково не разбираюсь .


Я вообще то тоже))) В смысле в роли создателя языков (для GCC/Clang'a, DSL разные есть на моём счету). А вот как пользователь этих компиляторов очень даже разбираюсь. )))

Clang более привычен для яблочного мира. А gcc для мира HPC и встраиваемых систем (как на линухе, так и вообще без ОС). Под виндой же ситуация вообще очень забавная. Clang долгое время был там крайне глючным и кривым (сейчас вроде исправился, но не гарантирую) и при этом это была официальная версия. А gcc под винду уже много лет как стабилен и удобен, но при этом все варианты являются какими-то неофициальными сборками (кстати самую лучшую делает человек с нашего форума).
Re[15]: За счет чего выстреливают языки?
От: alex_public  
Дата: 18.07.15 02:37
Оценка:
Здравствуйте, VladD2, Вы писали:

_>>Вообще то как раз в разы и есть...

_>>Вот http://rsdn.ru/forum/flame.comp/6070881
Автор: alex_public
Дата: 07.06.15
совсем не давно был конкретный простейший пример (отставание C# в 7 раз!),

VD>Треп это все. Всегда можно найти какие-то вырожденные случаи, но они никак не будут влиять на общее положение дел. Одно узкое место занимающееся битодроблением можно и вручную оптимизировать (вплоть до ансэйфа или сишной/ассемблерной функции). А, вот 90% гражданского кода работающего с моделью проще писать на более высокоуровневом языке.

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

Python      - 17  c //динамический язык, для сравнения
JavaScript  - 13  с //динамический язык, для сравнения
C#          - 8,7 с //я считаю это ужас для компилируемого языка со статической типизацией
Java        - 7,3 с //не сильно лучше, но немного неожиданно (никаких теоретических предпосылок обгона тут C# я не знаю)
C# unsafe   - 5,0 с //используем арифметику указателей (многие алгоритмы невозможно эффективно записать без неё)
D           - 4,9 с //полностью нативный язык с указателями, но не выдающимся оптимизатором (оригинальный компилятор)
C++ no-simd - 3,5 c //мощный оптимизатор проявляет себя, даже если ему запретить использовать все возможности процессора
C++         - 1,3 с //базовый результат C++ с абсолютно тупым кодом (без малейшей оптимизации в исходном коде) не плох, но simd оптимизатор ещё не идеален
C++ opt.    - 0,6 c //после минимальной ручной оптимизации мы достигаем теоретически возможного максимума быстродействия для данного процессора (на одном ядре).

Ты действительно считаешь, что подобное (а оно будет всплывать во всех вычислениях на массивах) — это ничего страшного? )

P.S. Такими темпами я совершенно не удивлюсь, если через пару лет (как раз WebAssembly подоспеет) Microsoft вообще плюнет на .Net и начнёт развивать только JS. Потому как разницы в быстродействие особой нет, а разница в кроссплатформенности и простоте разработки на лицо (и не в пользу .net'a). Вот как раз в последний релиз VisualStudio добавили Cordova (обычный принцип MS: "не можешь победить — возглавь")...
Re[15]: Посмотри, что говорит автор Elm'а
От: Mamut Швеция http://dmitriid.com
Дата: 18.07.15 04:40
Оценка: 2 (1) +1
VD>Не знаю. В начале, по наивности, я думал, что людям достаточно просто наличия более совершенного языка. Что недоработки в компиляторе, документации, IDE и переносимость можно будет побороть силами комьюнити. Но сейчас я уже понимаю, что это все наивные представления. В жизни так не происходит. По сему у меня нет иллюзий на этот счет. Плюс Немерл — это не мой язык. Я всего лишь его пользователь.

Очень рекомендую вот это видео. Оно рассказано сильно с точки зрения javascript-программистов, но он говорит достаточно общие вещи, которые применимы к любому языку программирования. Ну и да, Crossing the Chasm я тоже советую.

Let's be mainstream! User focused design in Elm

https://www.youtube.com/watch?v=oYk8CKH7OhE&app=desktop


ЗЫ. Elm разрабатывает один человек. И только два года тому назад он начал над ним работать full-time


dmitriid.comGitHubLinkedIn
Re[20]: За счет чего выстреливают языки?
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 18.07.15 07:50
Оценка: :)
Здравствуйте, WolfHound, Вы писали:

I>>Хрен его знает. У конккурентов ничего такого нет и тем не менее доминирует на рынке никак не jetBrains

WH>А кто?

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

У меня пока что ощущение, что котлины-немерле-нитры нужны для рекламы, а 95% продакшна пилится на мейнстримных языках мейнстримными программистами. Оставшиеся 5% это скорее всего древнейший дсл которым хвастались еще до котлина.
Re[15]: За счет чего выстреливают языки?
От: Гест Украина https://zverok.github.io
Дата: 18.07.15 16:59
Оценка: +2 :))
Здравствуйте, VladD2, Вы писали:

VD>Не знаю. В начале, по наивности, я думал, что людям достаточно просто наличия более совершенного языка. Что недоработки в компиляторе, документации, IDE и переносимость можно будет побороть силами комьюнити. Но сейчас я уже понимаю, что это все наивные представления. В жизни так не происходит. По сему у меня нет иллюзий на этот счет. Плюс Немерл — это не мой язык. Я всего лишь его пользователь.


VD>Кое что Немерл уже сделал. Шарпа с каждой версией впитывает его фичи (хотя открыто это не признается). Лет через 15, возможно, большая часть современных фич (за исключением макросов) будет и в Шарпе.


Ох. Я понял, что мне напоминает этот диалог.

Сергея «Синтаксический оверхед» Губанова с его твёрдым убеждением, что Java/C# всё содрали из Оберона, а на самом-то деле никто не знает, что Оберон лучший в мире язык, весь мейнстрим вырос из идей Н.Вирта но подло это скрывает, а мы просто слишком тупы все, чтобы оценить красоту Великого Оберона.

«Долгая память — хуже, чем сифилис, особенно в узком кругу»
Re[16]: За счет чего выстреливают языки?
От: BulatZiganshin  
Дата: 19.07.15 09:29
Оценка: :)
Здравствуйте, Гест, Вы писали:

Г>Сергея «Синтаксический оверхед» Губанова с его твёрдым убеждением, что Java/C# всё содрали из Оберона, а на самом-то деле


на самом-самом деле, все фичи C# делятся на два класса — которые тупые микрософтовцы содрали с хаскела, и которые даже не смогли правильно содрать
Люди, я люблю вас! Будьте бдительны!!!
Re[28]: За счет чего выстреливают языки?
От: DarkEld3r  
Дата: 19.07.15 13:05
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Нормальный язык. Есть пара странностей, но она как раз из-за наследия Обжектив-С (например, отсутствие перегрузок).

Исключений нет, например. ARC без возможности создать объект на стеке (вроде).

VD>Моментального успеха и не бывает.

Дык, я об этом и говорю.

VD>В этом нет смысла. Им важно только лишь осложнить кросплатформную разработку. Конкуренция между своими языками их не волнует. От того, что все останутся на Обжектив-С им ни горяче, ни холодно.

Ну посмотрим. Тем более, что они как раз обещают "открыть" язык и какую-никакую кроссплатформенность.
Re[17]: За счет чего выстреливают языки?
От: alex_public  
Дата: 19.07.15 14:30
Оценка:
Здравствуйте, BulatZiganshin, Вы писали:

BZ>на самом-самом деле, все фичи C# делятся на два класса — которые тупые микрософтовцы содрали с хаскела, и которые даже не смогли правильно содрать


Хаскель, F# и т.п. — это уже прошлая мода. Теперь есть "новые" горизонты: http://www.youtube.com/watch?v=b6W2pHF6QXY
Re[18]: За счет чего выстреливают языки?
От: Evgeny.Panasyuk Россия  
Дата: 19.07.15 21:18
Оценка:
Здравствуйте, alex_public, Вы писали:

_>Хаскель, F# и т.п. — это уже прошлая мода. Теперь есть "новые" горизонты: http://www.youtube.com/watch?v=b6W2pHF6QXY


Вопрос "зачем?" не раскрыт.
Я конечно представляю возможные варианты, и вначале доклада даже есть список ограничений C# — но чёткая область применения всё же не очерчена.

По реализации:
* Для инициализации by-default там генерируется специальный код конструкторов для классов содержащие такие поля. Проще было бы сделать отдельный тип default_initialized<T>.
* Управление памятью — предлагается использовать shared_ptr и подобные (каждый C# new заворачивать в make_shared ), как будут решаться циклически ссылки — непонятно (упомянул weak_ptr, но это не 100% решение). Про GC сказал мол "смысл совсем не в этом" — непонятно почему. Например есть готовый консервативный Boehm GC, либо можно поискать точный, либо даже сделать свой (я делал простой библиотечный копирующий GC для C++ — было что-то около двухста строк).

Говорится что это демонстрация того что Roslyn работает быстро, при этом ничего похожего на замеры не было в докладе.

Про LINQ сказал что никаким образом в контексте C++ не предусмотреть и обход структур и генерацию SQL из одного кода

Был вопрос про обратную задачу, т.е. C++ -> C#, на что дан ответ — мол нет готового аналога Roslyn. Вообще-то есть Clang+LLVM, которые как раз успешно используются для подобного проекта — Emscripten.

В конце упоминается статья про Вазу на habrahabr — вообще-то оригинал это доклад Майерса.
Re[19]: За счет чего выстреливают языки?
От: alex_public  
Дата: 20.07.15 00:02
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>Вопрос "зачем?" не раскрыт.

EP>Я конечно представляю возможные варианты, и вначале доклада даже есть список ограничений C# — но чёткая область применения всё же не очерчена.

Ну началось всё, как я понял, просто как тест Roslyn'а. А в итоге может выйти инструмент, позволяющий "не погружаться в страшные плюсы". )))

EP>По реализации:

EP>* Для инициализации by-default там генерируется специальный код конструкторов для классов содержащие такие поля. Проще было бы сделать отдельный тип default_initialized<T>.

Как мне кажется, это не принципиально — замена одной кодогенерации на другую.

EP>Говорится что это демонстрация того что Roslyn работает быстро, при этом ничего похожего на замеры не было в докладе.


Нууу типа успевает парсить в реальном времени со вводом текста. )))

EP>Был вопрос про обратную задачу, т.е. C++ -> C#, на что дан ответ — мол нет готового аналога Roslyn. Вообще-то есть Clang+LLVM, которые как раз успешно используются для подобного проекта — Emscripten.


Комплимент в сторону Roslyn понятно почему был. ))) Но и основную причину отсутствия такого инструмента он тоже назвал — ненужность на рынке, т.к. это скорее плюсы сейчас на подъёме...
Re[20]: За счет чего выстреливают языки?
От: Evgeny.Panasyuk Россия  
Дата: 20.07.15 00:38
Оценка:
Здравствуйте, alex_public, Вы писали:

EP>>Вопрос "зачем?" не раскрыт.

EP>>Я конечно представляю возможные варианты, и вначале доклада даже есть список ограничений C# — но чёткая область применения всё же не очерчена.
_>Ну началось всё, как я понял, просто как тест Roslyn'а.

Если так — то конечно тогда вопросов нет.

_>А в итоге может выйти инструмент, позволяющий "не погружаться в страшные плюсы". )))


Не погружаться чтобы получить что?
* Скорость? — не получится, точнее разве что самый минимум — семантика ведь вся остаётся, а именно она и ответственна за большую часть тормозов. Если на C++ писать в Java-style то мы и получим те же тормоза.
* Большую переносимость кода? Возможно, вот только портировать VM (а-ля Mono) было бы и мощнее, и надёжнее, и возможно проще.

EP>>По реализации:

EP>>* Для инициализации by-default там генерируется специальный код конструкторов для классов содержащие такие поля. Проще было бы сделать отдельный тип default_initialized<T>.
_>Как мне кажется, это не принципиально — замена одной кодогенерации на другую.

Это на порядок проще. Вместо того чтобы отслеживать все места где нужно не забыть сгенерировать инициализацию, можно просто заменить int32_t на default_initialized<int32_t> — и проблема решена.

EP>>Говорится что это демонстрация того что Roslyn работает быстро, при этом ничего похожего на замеры не было в докладе.

_>Нууу типа успевает парсить в реальном времени со вводом текста. )))

Цифры нужны, без них это всё сферически. Подобный код и Clang моментально пережёвывает.
Отредактировано 20.07.2015 0:39 Evgeny.Panasyuk . Предыдущая версия .
Re[16]: За счет чего выстреливают языки?
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 20.07.15 08:15
Оценка:
Здравствуйте, alex_public, Вы писали:

_>Ты действительно считаешь, что подобное (а оно будет всплывать во всех вычислениях на массивах) — это ничего страшного? )


А сколько таких задач встречается для обычного программиста? Вконце концов всегда можно использовать унсейв код для оптимизации по скорости.
Мало того многие используют неоптимальные классы для решения своих задач. И при выборе правильного алгоритма скорость может достигать в разы.
http://rsdn.ru/article/alg/tlsd.xml
Автор(ы): Сергей Смирнов (Serginio1)
Дата: 14.08.2004
Пример реализации двухуровневого массива с помощью нового средства С# — generics. Сравнение производительности различных реализаций сортированных списков.


_>P.S. Такими темпами я совершенно не удивлюсь, если через пару лет (как раз WebAssembly подоспеет) Microsoft вообще плюнет на .Net и начнёт развивать только JS. Потому как разницы в быстродействие особой нет, а разница в кроссплатформенности и простоте разработки на лицо (и не в пользу .net'a). Вот как раз в последний релиз VisualStudio добавили Cordova (обычный принцип MS: "не можешь победить — возглавь")...


Я думаю, что будет развиваться в двух направлениях.
Компиляция C# и XAML в JavaScript

В этой статье мы расмотрим расширение для Visual Studio под наванием 'C#/XAML for HTML5'. Данное расширение позволяет транслировать имеющийся код на C# и XAML в код HTML5+JavaScript. Благодаря подобной трансляции мы сможем создавать на C# приложение, которое после трансляции в JavaScript будет запускаться и на тех платформах, где .NET по умолчанию не поддерживается и где есть поддержка HTML5 и Javascript — Android, iOS, Mac, Chromebooks, Linux, Windows и т.д. То есть по сути у нас получается гибридное приложение.

и солнце б утром не вставало, когда бы не было меня
Отредактировано 20.07.2015 8:16 Serginio1 . Предыдущая версия .
Re[17]: За счет чего выстреливают языки?
От: alex_public  
Дата: 20.07.15 09:00
Оценка:
Здравствуйте, Serginio1, Вы писали:

_>>Ты действительно считаешь, что подобное (а оно будет всплывать во всех вычислениях на массивах) — это ничего страшного? )

S> А сколько таких задач встречается для обычного программиста? Вконце концов всегда можно использовать унсейв код для оптимизации по скорости.

В приведённом примере есть замеры и для unsafe — всё равно ничего хорошего.

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

S>http://rsdn.ru/article/alg/tlsd.xml
Автор(ы): Сергей Смирнов (Serginio1)
Дата: 14.08.2004
Пример реализации двухуровневого массива с помощью нового средства С# — generics. Сравнение производительности различных реализаций сортированных списков.


Ну так это же уже вопросы, не зависящие от выбора платформы разработки.

S> Я думаю, что будет развиваться в двух направлениях.

S>Компиляция C# и XAML в JavaScript

Просто компилятор C#/XAML в JavaScript ничего особо интересного не приносит. Такого добра вообще полно на всех языках, от TypeScript до C++. И оно может имеет какой-то смысл только в виде разработки особо сложных сайтов, но не мобильных приложений. Потому что весь смысл Cordova (или скажем Qt) как раз в кроссплатформенном доступе к нативным возможностям платформы (к тому же акселерометру скажем).
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.