LINUX.ORG.RU

[не троллинга ради] чем плох дотнет


0

3

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

★★

Хорошая вещь, удобная. И Visual Studio для работы с ним очень хорошо заточена, тоже очень удобно. Но - только одна платформа(моно не в счет, там и половины нет), да и нативные языки в любом случае быстрее.

Поэтому - Qt во все поля.

unfo ★★★★★
()

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

Если только одинаково медленно. Одинаково быстро они работать по определению не могут, чем выше уровень языка, тем медленнее он будет работать (но при этом тем легче он для понимания, и тем меньший объём кода писать программисту).

Ttt ☆☆☆☆☆
()
Ответ на: комментарий от netcat

а в плане работы с ним?

В плане работы не знаю - не дотнетчик. Пусть профильные коллеги уже дальше расскажут.

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

Одинаково быстро они работать по определению не могут, чем выше уровень языка, тем медленнее он будет работать (но при этом тем легче он для понимания, и тем меньший объём кода писать программисту).

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

Что касается дотнета, то у него фанатов больше, чем линуксоидов вместе взятых. Хотя школьникам может и не нравится.

dave ★★★★★
()

- huge'n'bloated реализации
- стековая ВМ вместо регистровой
- модель памяти, как будто это ява
- отсутствие полноценных кросс-платформенных реализаций
- проприетарность основной реализации
Пока достаточно будет.

quantum-troll ★★★★★
()

Единственный недостаток, который я заметил - это обилие синтаксического сахара(обычно я пишу на С)

Нублишко, ты хоть понял, что сказал? Какой к чёрту _синтаксический сахар_ в платформе, мать её?

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

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

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

Ttt ☆☆☆☆☆
()

Есть мнение, что если вы не заморачиваетесь по поводу переносимости, и ваша целевая платформа - Windows, то C#, возможно, действительно лучший выбор. C# для Windows, как ObjC для Mac/iOS - базовая технология для разработки, выбранная и поддерживаемая самими разработчиками ОС. С другой стороны, есть мнение, что C#/Mono хорошо подходит для разработки под несколько мобильных ОС сразу, e.g. WP7, iOS, Android, благо поддержка в последних версиях Mono уже вызывает скрежет зубовный.

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

Одинаково быстро они работать по определению не могут, чем выше уровень языка, тем медленнее он будет работать (но при этом тем легче он для понимания, и тем меньший объём кода писать программисту).

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

quantum-troll ★★★★★
()
Ответ на: комментарий от Ttt

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

hippi90 ★★★★★
()
Ответ на: комментарий от quantum-troll

- huge'n'bloated реализации

Линупсячье ядро тоже хьюдж-н-блоатед, и ведь ничего, псевдогиков это и не колышит - пользуют, не плюются

- стековая ВМ вместо регистровой

И что? Кто-то пишет что-то серьезное непосредственно на ассемблере этой ВМ, ручками, так, чтобы стековость мешала? Серьезно?

- модель памяти, как будто это ява

Такая же удобная, как в яве? Так это же, наоборот, вин.

- отсутствие полноценных кросс-платформенных реализаций

А кому они нужны-то? Винда как правила, так и правит в десктопном секторе. Одна ОС, одна платформа, один Б-г! А Серьезному Бизнесу плевать на интересы кучки красноглазиков с линюпсами.

- проприетарность основной реализации

И хрен бы с ней. Зато налажена большая, мощная инфраструктура, и главное - оно РАБОТАЕТ и приносит БАБЛО, в отличие от всяких свободных фоннатских поделий.

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

Хотя школьникам может и не нравится.


Наоборот же. Если раньше 99% поделий было на дельфи, то теперь на сишарпике или вижуал васике.

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

Python уже сейчас делает С на регэкспах.

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

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

завтра он будет делать и машкод… можно грабить корованы

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

Вот тут, извините, пруф дать не смогу, подобная информация проскакивала где-то в новостях на лоре. Помню смутно, могу и ошибаться.

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

Цивилизованной беседы за стаканом вина, ясен же пень.

Вот уж чего на ЛОРе не дождёшься, тем более в техразделе с анонимусами. :)

PS: OldFatMan снова торт!

Кто? Где? Не, такого не знаю...

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

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

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

Забудь, его и не было никогда.

netcat ★★
() автор топика

раз его {дотнет} так не любят

А почему не любят? Мне всегда казалось, что на языках дотнета куча народу пишет. Даже в нашем мухосранске знаю с десяток людей, пишущих на шарпе и визуалбасике. А вот сам ничего конкретного про дотнет тебе сказать не могу - крайне мало имел с ним дело. Разве что «с высоты беглого взгляда» кажется приличной платформой для разработок под венду. Разумеется, и подводных камней не знаю.

DeVliegendeHollander ★★
()
Ответ на: комментарий от quantum-troll

Ну в Haskell типизация статическая, а в Python динамическая, что понижает быстродействие. Так же могут влиять на быстродействие и другие особенности языка, повышающие его уровень (например, сборщик мусора).

Ttt ☆☆☆☆☆
()
Ответ на: комментарий от DeVliegendeHollander

А вообще, мне как-то не по себе от дотнета. Медленно, но зато просто в изучении и использовании. Хотя, это мнение человека, который привык к С, прошу не принимать всерьез.

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

И это называется «сахар»?

Да, в яве этого очень нехватает. И еще значимых типов. И передачи по ссылке...

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

Я прочёл то, что по ссылке. Но это вообще «ни о чём». Просто брызгание слюнями. Я сам не любитель дотнета, шарпа и проч., но то, что по ссылке, это тоже не дело. И фортран там приплетён зачем-то. Всё свалено в кучу и обильно полито дерьмом. И только в postscriptum'е более-менее здравая мысль. В общем, такого рода промокашки лучше просматривать по диагонали и сразу забывать.

Но где материал лучше, качественнее найти, я не знаю. Может, эксперты по дотнету подскажут.

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

А так, как Python, который затруднительно скомпилировать, например, может быть объективно быстрее C?

Я серьезно не отношусь к питону.

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

Модификатор unsafe, который сводит на нет курс шарпа на безопасный доступ к памяти.

Дурашка, это не синтаксический сахар

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

Так я сам пишу на С уже не первый десяток лет. Но дотнет у меня «рвотных» реакций не вызывает. Хотя я знаком с ним поверхностно (повторюсь). Лично для меня главные недостатки дотнета - проприетарность и узкая специализация под венду. :)

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

Ну давай сравним с другими языками с подобными возможностями (динамической типизацией и сборщиком мусора, например).

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

Не знаю, к каким именно языкам ты серьёзно относишься.

Ttt ☆☆☆☆☆
()
Ответ на: комментарий от anonymous

Линупсячье ядро тоже хьюдж-н-блоатед

Будто это что-то хорошее.

Кто-то пишет что-то серьезное непосредственно на ассемблере этой ВМ, ручками

Компиляторы пишут. А потом ява-машина не осиливает толком оптимизировать это для реальной машины, и в итоге результат ТОРМОЗИТ.

удобная, как в яве?

Да, можно так же удобно случайно несколько ГБ ОЗУ.

и главное - оно РАБОТАЕТ и приносит БАБЛО, в отличие от всяких свободных фоннатских поделий.

Ну как и MS Шindows, в отличие от всяких непонятных линаксов.

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

Вот видишь! Ты и сам всё прекрасно понимаешь! Умничка!

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

Так в яве же и так все передается по ссылке, кроме примитивов. А примитивы можно завернуть в объект и так же передавать по ссылке. Или вы что-то другое имели в виду?

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

Динамическая типизация ЯВУ медленнее статической. Чего тут спорить. Мой посыл был в том, что не всякое повышение уровня абстракции ведет к ухудшению скоростных характеристик. Кстати, если взять Common Lisp с его опциональной динамической оптимизацией и сборщиком мусора, то там вполне можно добиться скоростного кода. Только о цене умолчим. К счастью, это нужно очень и очень редко.

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

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

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

hippi90

Python уже сейчас делает С на регэкспах.

DeVliegendeHollander

А вот здесь, пожалуйста, поподробнее.

Читал в ЖЖ пару лет тому назад, как немцы сделали матчер регулярных выражений с линейным временем выполнения в зависимости от входной строки. За счет JIT реализация матчера(на питоне) в несколько раз обогнала по скорости движок регулярных выражений из стандартной библиотеки питона, который написан на си (python re module). Но если не ошибаюсь, то потом тот же алгоритм реализовали на C++, потятно с каким итогом ;)

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

Ок, спасибо. Попробую поискать, погуглить. Просто я часто слышу (и не только на ЛОРе), что «питон сделал си то там, то сям». А конкретных доказательств, ссылок мало.

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

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

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