LINUX.ORG.RU
Ответ на: комментарий от unsigned

C++11

А что там нового, чего нет в C#?

Нового? А как насчет старого?

Pavval ★★★★★
()
Ответ на: комментарий от cvs-255

в C# нет статической компилируемости в машинный код.

Должен заметить, что .Net проги можно прекомпилировать в машинный код (для запуска только на конкретной тачке). При этом не будет издержек на JIT.

Pavval ★★★★★
()
Ответ на: комментарий от encyrtid

Потому что добровольное написание кода на плюсах - чистое говноедство.

И какие альтернативы (помимо C), если стоит требование максимум производительности?

cvs-255 ★★★★★
()
Последнее исправление: cvs-255 (всего исправлений: 1)
Ответ на: комментарий от cvs-255

КО: не во всех задачах шаблоны нужны

Во всех сложнее hello world шаблоны (как минимум STL контейнеры) очень помогают.

Pavval ★★★★★
()

А тем временем в C# появляется все больше возможностей и оптимизируется jit. Если в w8 разрешат использовать небезопасные возможности .net, то c++ не нужен, даже 11.

(Хотя лучше бы скала мир захватила, а не c#...)

note173 ★★★★★
()
Ответ на: комментарий от Pavval

Если это можно, то тогда претензия частично снимается. Как там с производительностью у такой программы получается?

cvs-255 ★★★★★
()
Ответ на: комментарий от GreenBag

А где он остался ?(игрушки, как вещь бесполезную, в рассмотрение не берем).

Внезапно, большая часть софта (счатаем 3 мейнстримовых ОС) написана на С++. Из аццки сложного софта - почти 100%.

Pavval ★★★★★
()
Ответ на: комментарий от cvs-255

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

А хз. Я не виндузятник и не дотнетчик - я никогда это не мерял.

Pavval ★★★★★
()
Ответ на: комментарий от cvs-255

И какие альтернативы (помимо C), если стоит требование максимум производительности?

Высокоуровневый язык с критичными кусками на сях.

encyrtid ★★★★★
()
Ответ на: комментарий от Pavval

просто как бы не вышло, что MS пошел по пути, кажется, VB, где просто интерпретатор прицеплялся к файлу с кодом и все это вместе и обзывалось компиляцией в программу.

cvs-255 ★★★★★
()
Ответ на: комментарий от cvs-255

Как всегда — на каких-то задачах получше, но в целом (по документации) должна быть хуже, потому что считается, что jit имеет больше данных для оптимизации.

Но monotouch работает именно так, код компилируется в msil, потом в нативный.

note173 ★★★★★
()
Ответ на: комментарий от cvs-255

А если все куски критические? Какая-нибудь вычислительная задача.

Не бывает такого, man Закон Парето. Для вычислительных задач есть C, Fortran, либо высокоуровневые языки транслируемые в C.

encyrtid ★★★★★
()
Ответ на: комментарий от encyrtid

Для вычислительных задач есть C, Fortran

ну вот ты сам и сказал, что для вычислительных задач лучше низкоуровневые языки. C++ по скорости несильно уступает C.

cvs-255 ★★★★★
()
Ответ на: комментарий от cvs-255

просто как бы не вышло, что MS пошел по пути, кажется, VB, где просто интерпретатор прицеплялся к файлу с кодом и все это вместе и обзывалось компиляцией в программу.

Не, это как раз прекомпиляция в нативный код конкретного процессора. Результат кидается в кеш где-то в C:\Шindows и автоматом подтягивается, если ты запускаешь соответствующую .net прогу.

Pavval ★★★★★
()
Ответ на: комментарий от cvs-255

Потерял нить. Мы ведь говорили о .net? Там в нативный код компилируется msil, а не сам исходник напрямую.

note173 ★★★★★
()

Нет, если «мейнстримом» не станет программирование микроконтроллеров и числодробилок

alienclaster ★★★
()
Ответ на: комментарий от staseg

думаю, что у растущего двадцать лет набора костылей шансов мало.

чувак, это вин

sacred ★★
()
Ответ на: комментарий от cvs-255

Ну, не факт, там так же возможны низкоуровневые оптимизации, как и в llvm. Но главное отличие от запуска с jit действительно только в отсутствии интерпретатора. Сборка мусора, например, остается.

note173 ★★★★★
()
Ответ на: комментарий от Deleted

много лет просматривал книжку Страуструпа...

раз прочитать не судьба?

slackwarrior ★★★★★
()
Ответ на: комментарий от cvs-255

в C# нет статической компилируемости в машинный код.

Да ну? И давно? ngen.exe запретили по религиозным соображениям?

slackwarrior ★★★★★
()
Последнее исправление: slackwarrior (всего исправлений: 1)
Ответ на: комментарий от Stahl

на плюсах можно писать без шаблонов

Вы так говорите про шаблоны, как будто это что-то плохое.

cruxish ★★★★
()
Ответ на: комментарий от quiet_readonly

слишком популярна движуха не привязываться к конкретной библиотеке или стилю интерфейса

Да ну, а как же MFC?

cruxish ★★★★
()
Ответ на: комментарий от cruxish

А у нативных бинарников и так никакой кроссплатформенности - так что тут надо определиться: нативный код или кроссплатформенность бинарников.

slackwarrior ★★★★★
()
Ответ на: комментарий от cruxish

Тут выше «отсутствие в С# статической компиляции в нативные бинари» кому-то приснилось в качестве недостатка :) Просто если очень чешется - то можно и в нативные бинари. Но обычно не нужно :)

slackwarrior ★★★★★
()

А откуда он уходил? С мерзкого шындососа, который не нужен? И где есть этот до-диез, кроме этого же самого мерзкого шындососа? В нормальных системах для определенных задач альтернатив плюсам нет, и пока не предвидится.

Saloed
()
Ответ на: комментарий от cruxish

При этом кросс-платформенность бинарников пропадает.

кросплатформноcть оригинальных бинарников не пропадает никуда.
Их можно запускать в режиме АОТ:

mono --aot program.exe

This will generate a file called «program.exe.so», which contains the native code that was precompiled by Mono for most of the IL methods. The --aot flag by default will limit itself to IL methods which will give you the most benefits, but will not compile absolutely everything you need. See below for more details.

Although the JIT mode is very fast, and the default optimizations in Mono have been tuned to provide a good balance between optimizations and JIT speed, AOT compilation provides a few extra benefits:

Reduced startup time.
Increased memory sharing.
Potential better performance.


Если заранее откомпилировать в целевую платформу и новый, собранный из старого переносимого но уже под x86 или ARM конечно-же не будет переносимым.

Не верю.

http://www.mono-project.com/AOT

grim ★★☆☆
()
Последнее исправление: grim (всего исправлений: 2)
Ответ на: комментарий от Pavval

Я вообще не в теме шарпа, это значит, чтотвесь рантайм не нужен будет? На голый пк можно будет установить продукт и все заработает?

cdshines ★★★★★
()
Ответ на: комментарий от cvs-255

ну вот ты сам и сказал, что для вычислительных задач лучше низкоуровневые языки. C++ по скорости несильно уступает C.

Но и преимуществ для низкоуровневых задач по сравнению с С не дает, зачем тогда этот оверхед?

encyrtid ★★★★★
()
Ответ на: комментарий от cdshines

Я вообще не в теме шарпа, это значит, чтотвесь рантайм не нужен будет? На голый пк можно будет установить продукт и все заработает?

Ну в состав mono входит утилита mkbundle, которая, как я понимаю, позволяет упаковать всё требуемое в единый бинарный файл, не требующий фреймворка для запуска.

obinos
()
Ответ на: комментарий от cdshines

Я вообще не в теме шарпа, это значит, чтотвесь рантайм не нужен будет? На голый пк можно будет установить продукт и все заработает?

Нет. Рантайм нужен. Это что-то типа прогона JIT до исполнения - результат лежит в кеше и не доступен как .exe. Если ты запустишь прогу на компе, где она есть в кеше - подтянется кеш и JIT не будет. Кеш перенести на другой комп не выйдет - это локальная штука.

Pavval ★★★★★
()
Ответ на: комментарий от Pavval

Упаковать - это весь рантайм засунуть?:)

Ну не весь, только сам mono и референсные сборки.

Профит - возможность запустить программу даже на системах, где не стоит dotNet или mono.

obinos
()
Ответ на: комментарий от Pavval

Кеш перенести на другой комп не выйдет - это локальная штука.

В случае с mono, кеш - это so'шный файл, который в принципе ничего не пешает скопировать на другую машину.

obinos
()
Ответ на: комментарий от obinos

А по скорости профита нет. В добавок на Win-системах .Net всегда есть (или же ставится инсталлятором), а на *nix системах ставится зависимостями. Итого профита нет, только жирные исполняемые файлы.

Pavval ★★★★★
()
Ответ на: комментарий от Pavval

А по скорости профита нет.

Я и не обещал прирост скорости. Я говорил про упрощение переносимости.

В добавок на Win-системах .Net всегда есть (или же ставится инсталлятором), а на *nix системах ставится зависимостями.

Конечно-конечно, программисты просто как всегда запилили никому не нужную фичу и тащат её из версии в версию. Ведь в мире есть только windows и *nix системы с поддержкой зависимостей и постоянным доступом в интернет для подгрузки свежих фреймворков.

obinos
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.