.NET vs C++
#1
Отправлено 29 мая 2007 - 09:41
Здравствуйте, adontz, Вы писали:
A>Вот что мне в плане понимания даёт .Net? ООП? Ну я не спец, но вроде разбираюсь. Reflection? Я писал на JavaScript программу на JavaScript и на перле генерировал JavaScript и не хилый притом. Оно конечно не одно и то же, но в принципе что это и как с этим бороться я представляю.
Тут ты явно путаешь тёплое с мягким. Генерация кода в .NET — это DOM или Emit, к рефлекшену имеет весьма опосредованное отношение.
A>Ставим вопрос так: КАКИЕ из ещё не известных мне способов мышления пригодятся мне в .Net? Если учесть что проблемы языка нет. АВК утверждает, что Шарп можно осилить за 2 недели в тонкостях, а МС++ никто не отменял. Я соглсен считать тебя более опытным товарищем по плану переходов, но будть добр объясни, что нового из способов мышления мне придётся осилить.
Не вопрос, объясняю.
Начнём хотя бы с того, что ты слабо себе представляешь что такое рефлекшин. Рефлекшин — это такая штука, Рома, которая предоставляет исчерпывающую метадату о твоём приложении. С помощью рефлекшина ты можешь исследовать структуру любого типа, любой сборки вдоль и поперёк. IDispatch & ITypeInfo со своими возможностями рядом даже близко никогда не стояли. Добавим сюда возможность расширять метаданные с помощью атрибутов и, в результате, имеем ещё одно дополниетельное измерение. Как им распорядиться это уже дело твоей фантазии. Например, студия умеет распознавать и использовать твои собственные редакторы для твоих же объектов. Веб-сервисы используют атрибуты для отделения веб-методов от остальных процедур, для управления параметрими сессии и куками и т.п. Сериализаторы полностью настраиваются с помощью атрибутов. Защита, управление компиляцией и отладкой, всё это может свободно управляться с помощью атрибутов.
Далее.
Программирование на C++, которым ты так гордишься (впрочем, я тоже ) — это по жизни хождение по граблям. С рождения и до пенсии. Сначала ты наступаешь на эти грабли постоянно, затем учишься от них уворачиваться, потом изобретаешь какие-нибудь ходули в виде смарт-поинтеров и мелких библиотечек и вот грабли хоть уже и пролетают мимо, но до тебя уже не достают. Ты горд собой, шаг широк, ты думаешь, что это свободный полёт. Но это не так, Рома, это всего лишь ходьба на ходулях. Иногда ты всё же цепляешься за какой-нибудь кривой указатель и дружно падаешь со всей своей крутизны на всё те же грабли. Поднимаешься снова и прёшь вперёд как танк.
А мимо по шикарной автостраде проносятся чуваки на новеньких мерсах и бумерах. Ты делашь два широких шага на своих ходулях, они пролетают две сотни метров. Ты смотришь куда бы побезопаснее ступить, они думаю следует или не следует слегка притормозить на следующем повороте. Их путь выстелен грамадным фреймворком, автоматическим сборщиком мусора и полностью безопасным кодом. Твой усыпан протухшими указателями, мемори-ликами и циклическими ссылками. У тебя уходит 50% времени на движение вперёд, 50% на уворачивание от граблей и ремонт ходуль. У них 50% так же на движение (но несравненно быстрое), 50% на изучение марштута, полировку своих тачек и определение стратегии движения.
Они конечно не умеют как ты ловко двигаться по пересечённой местности, но фору они тебе могут дать не слабую. Потому что ты большой специалист по решению мелких задач, а они работают по крупному, т.к. за то же время могут сделать в 2-3 раза больше.
#2
Отправлено 29 мая 2007 - 11:30
#3
Отправлено 29 мая 2007 - 05:41
#4
Отправлено 30 мая 2007 - 01:04
Ерунда... программисту мешают только ошибки проектирования!
да да да!
ps. в тему ты подметил кстати.
#5
Отправлено 13 ноября 2007 - 06:20
Ерунда... программисту мешают только ошибки проектирования!
если в ходе проектирования появляется образ программы на каком-то абстрактном языке и уровне, то суть кодирования - трансляция с кода абстракции на код выбранного языка программирования.
пусть даже весь проект расписан на псевдокоде(тоесть уровень детализации достаточно большой) - всё равно задача этой трансляции не тривиальна.
если код не унаследован и не будет встраиватся в существующую систему - люди выбирают язык реализации самым стрёмным образом.
Почему-то считается что легче задачу впихнуть в парадигму языка чем поменять язык(а на кой их столько?).
а теперь интересный момент: если относить выбор языка реализации к стадии проектирования то всё равно остаётся момент - уровень владения языком.
и именно тут с++ самое большое гавно из всего говна. "выучить" его невозможно, а пишут на нём что ни попадя.
Единственное "преимущество" кода на с/с++ маленькое потребление памяти и скорости системных вызовов(в идеальном коде без ошибок и тд). а идеальным может быть разве что Hello World! на лиспе.
#6
Отправлено 13 ноября 2007 - 10:52
и именно тут с++ самое большое гавно из всего говна. "выучить" его невозможно, а пишут на нём что ни попадя.
что значит "выучить" его невозможно ?
Единственное "преимущество" кода на с/с++ маленькое потребление памяти и скорости системных вызовов(в идеальном коде без ошибок и тд). а идеальным может быть разве что Hello World! на лиспе.
открываем отдельную тему про лисп?
#7
Отправлено 13 ноября 2007 - 06:09
что значит "выучить" его невозможно ?
что касается выучить - кривость стандарта, кривость реализаций.
что касается собственно недостатков
http://www.google.co...=utf-8&oe=utf-8
открываем отдельную тему про лисп?
посмотрим
#8
Отправлено 16 ноября 2007 - 08:45
что касается выучить - кривость стандарта, кривость реализаций.
да, особенности некоторых компиляторов просто поражают воображение...
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 скрытых пользователей