Re[6]: Будущее C#
От: VladD2 Российская Империя www.nemerle.org
Дата: 02.07.03 15:07
Оценка: :)
Здравствуйте, AndrewVK, Вы писали:

AVK>В них нет определенного функционала темплейтов,


Можно узнать какого?

AVK>И еще, писать на дотнете, так как ты это делал на С++ не стоит, ничего хорошего из этого не выдет. Другая идеология, другие паттерны.


Ну, ну. Это уже ты загнул. Писать можно так же. Просто нужно помнить, что многое уже написано.
... << RSDN@Home 1.1 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[7]: Будущее C#
От: VladD2 Российская Империя www.nemerle.org
Дата: 02.07.03 15:07
Оценка: :)
Здравствуйте, alexkro, Вы писали:

A>Мне, вообщем-то, не очень интересны различия в runtime. А вот с точки зрения языков программирования, что есть в generics, чего в шаблонах нет?


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

Ну, и экономнее это. Можно создавать универсальные реалзации.

A>Вот хороший пример.


Да неплохой. Возьмусь его процитировать:

File Not Found
cujcexp1906alexandr

... << RSDN@Home 1.1 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[9]: Будущее C#
От: VladD2 Российская Империя www.nemerle.org
Дата: 02.07.03 15:07
Оценка:
Здравствуйте, alexkro, Вы писали:

A>Да, я сравниваю языки программирования. Среда исполнения мне не особенно важна. И потом под одну и туже среду на разных языках писать можно.


Это примерно так же как сравнивать скоростные характиристики автомобилей плюя на двигатели. Бло быстрее Волга или мерседес? Тут так же...

Для С++ рантай действительно не так важен. Он был изобретен до популяризации компонентного подхода и практически не имеет рантайма. В его терминах рантай практически равен билблиотеке. В дотнете же все совсе не так. Отсюда многие возможности языка — это возможности рантайтам. Та же компонентность — это заслуга рантайма, а не языка. Ведь даже С++ будучи портирован под дотнет становится прекрасным компонентноориентированным языком.

A>Нехороший сайт попался. Нужно поискать "policy basic_string" на www.cuj.com. Первая ссылка — это она и есть.


Ну, ты бы привел сслыку заведомо качественно описывающую то что хочешь именно ты. А то мы тут зароемся.

A>На C++ тоже можно для .NET программировать и при этом использовать большинство его (C++) идиом. Именно это я и делаю уже в течении некоторого времени. Кстати, этот подход (C++ для .NET) будет еще более сильно развит в следующей версии VC++.


Тогда должен понимать чем МС++ отличается от обычного С++. Именно эти отличия АВК и имел в виду.
... << RSDN@Home 1.1 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[10]: Будущее C#
От: VladD2 Российская Империя www.nemerle.org
Дата: 02.07.03 15:07
Оценка:
Здравствуйте, AndrewVK, Вы писали:

A>>и при этом использовать большинство его (C++) идиом.

AVK>Большинство идиом в managed коде? Не получится.

Все до одной. Другой вопрос что этот менеджед-код не будет совместим с CLS.
... << RSDN@Home 1.1 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[12]: Будущее C#
От: VladD2 Российская Империя www.nemerle.org
Дата: 02.07.03 15:07
Оценка: -1
Здравствуйте, WolfHound, Вы писали:

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


VD>>Да я вроде и без него в С++ разбирался.

WH>Я тоже так думал...

WH>Из предисловия Скотта Мейерса

WH>

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


Что понимается под списками? Реализация коллекций? Я вроде все более менее известные изучал по исходинкам. Не думаю, что товаришь может больше чем разработчики библиотек вроде stl, ATL, Boost...

WH>ЗЗЫ Я не против C# мне он самому нравится. Но мне не нравится то что С++ недооценивают и сильно.


Кто тебе сказал? Многие его оценивают очень даже по заслугам. Я зык без сомнения мощьный и гибкий, но так же без сомнения он тяжелый для чтения и узучения, а так же в виду упущений в дизайне слишком часто приводит к трудноуловимым ошибкам. Шарп же полная противоположенность. Приятно было бы если Шарп стал ближе к С++ по возможностям. Но пусть это будет не в ущерб простотое и удобству.
... << RSDN@Home 1.1 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[14]: Будущее C#
От: VladD2 Российская Империя www.nemerle.org
Дата: 02.07.03 15:07
Оценка:
Здравствуйте, WolfHound, Вы писали:

AVK>>А как его должны дооценивать?

WH>Короче пока вы с Владом не прочитаете Александреску я с вами на тему C++ vs C# разговаривать не буду ибо ваши знания о С++ очень поверхтносны.

Я бы на твоем мнении не стал делать заявлений о чужишь знаниях если ты не можешь их адекватно оценить.
... << RSDN@Home 1.1 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[10]: Будущее C#
От: mihailik Украина  
Дата: 02.07.03 15:09
Оценка:
A>>Кстати, этот подход (C++ для .NET) будет еще более сильно развит в следующей версии VC++.

AVK>Откуда дровишки?


+1
... << RSDN@Home 1.1 beta 1 >>
Re[16]: Будущее C#
От: VladD2 Российская Империя www.nemerle.org
Дата: 02.07.03 15:17
Оценка:
Здравствуйте, WolfHound, Вы писали:

IT>>Неужели один прочитанный учебник может сделать из вчерашнего студента закоренелого профи?

WH>Нет но начальные знания дать может, а у них и этого нет.

Я плякаль.
... << RSDN@Home 1.1 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[22]: Будущее C#
От: IT Россия linq2db.com
Дата: 02.07.03 15:20
Оценка: 24 (4) +1
Здравствуйте, WolfHound, Вы писали:

WH>Былабы возможность,а применение найдется. Нука изобрази на C#


[skip]

Мда... печальное зрелище... без пузыря не разберёшся.
А вот ответь мне, мил человек, сможешь ли ты на C++ (не MC++) сделать из чего-то типа первого примера, что-то типа второго?

Голый ADO.NET:

public class CategoryInfo
{
    public int    CategoryID;
    public string CategoryName;
    public int    Count;
}

static ArrayList GetCategories(int min)
{
    string connectionString =
        "Server=.;Database=Northwind;Integrated Security=SSPI";
    string commandText = @"
        SELECT 
            p.CategoryID,
            c.CategoryName,
            Count(p.CategoryID) Count
        FROM Products p
            INNER JOIN Categories c ON c.CategoryID = p.CategoryID
        GROUP BY p.CategoryID, c.CategoryName
        HAVING Count(p.CategoryID) >= @min
        ORDER BY c.CategoryName";

    using (SqlConnection con = new SqlConnection(connectionString))
    {
        con.Open();

        using (SqlCommand cmd = new SqlCommand(commandText, con))
        {
            cmd.Parameters.Add("@min", min);

            using (SqlDataReader rd = cmd.ExecuteReader())
            {
                ArrayList al = new ArrayList();

                while (rd.Read())
                {
                    CategoryInfo ci = new CategoryInfo();

                    ci.CategoryID   = Convert.ToInt32 (rd["CategoryID"]);
                    ci.CategoryName = Convert.ToString(rd["CategoryName"]);
                    ci.Count        = Convert.ToInt32 (rd["Count"]);

                    al.Add(ci);
                }

                return al;
            }
        }
    }
}

А теперь добавим немного рефлекшина внутрь и получим:

public class CategoryInfo
{
    public int    CategoryID;
    public string CategoryName;
    public int    Count;
}

static ArrayList GetCategories(int min)
{
    using (DbManager db = DbManager.Open())
    {
        return db.ExecuteList(
            typeof(CategoryInfo), @"
            SELECT 
                p.CategoryID,
                c.CategoryName,
                Count(p.CategoryID) Count
            FROM Products p
                INNER JOIN Categories c ON c.CategoryID = p.CategoryID
            GROUP BY p.CategoryID, c.CategoryName
            HAVING Count(p.CategoryID) >= @min
            ORDER BY c.CategoryName",
            db.Parameter("@min", min));
    }
}

В твоём примере трудно понять вообще для чего он нужен, в моём надеюсь тебе не просто будет всё понятно, а даже тривиально с первого взгляда. И прибегать к услугам Александреску чтобы понять этот код не надо.

Я конечно понимаю, что поступаю не совсем честно, в C++ нет нормального RTTI и видимо никогда не будет, но я хочу сказать, что в 99.99% задач твои знания шаблонов вряд ли пригодятся. А если бы ты и попытался их где-либо применить, то работая, к примеру, в моей команде, я тебе просто элементарно запретил бы это делать. Хотя на досуге мы могли об этом с увлечением поболтать. А вот упростить приведённую мной стандартную задачу до вызова одной функции у тебя на C++ не получится, сколько не читай Александреску. И проблема здесь, как тебе уже говорили, в ограниченности самого гибкого на свете языка C++, который следовал модным тенденциям и потребностям аж 20 лет назад, а сейчас просто элементарно устарел.

Кто-то из умных сказал — "Усложнять просто, упрощать сложно". Не спорю, почитав Александреску (вполне допускаю, что это весьма захватывающий акшин), можно легко научиться строить трёх-этажные шаблоны, но, ошибкой было бы думать (c) Ленин, что это сделает твои программы лучше, качественнее, сопровождабельнее. Это сделает их как раз только запутаннее и непонятнее и будем им грошь цена, после того как какой-нибудь студент, идущий за тобой, не поняв что там происходит, просто перепишет твой код на нормальный понятный язык. И будет, между прочим, прав.

Для меня эталоном программы уже давно является не виртуозное владение указателями, свитчами и шаблонами, а ясный и понятный, хорошо оформленный и откомментированный код. Впрочем, может это я просто старею...
Если нам не помогут, то мы тоже никого не пощадим.
Re[15]: Будущее C#
От: WolfHound  
Дата: 02.07.03 16:18
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Я бы на твоем мнении не стал делать заявлений о чужишь знаниях если ты не можешь их адекватно оценить.

Re[12]: Будущее C#
Автор: VladD2
Дата: 02.07.03
Судя по этому посту я прав на 100%
... << RSDN@Home 1.1 alpha 1 >>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[13]: Будущее C#
От: WolfHound  
Дата: 02.07.03 16:19
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Что понимается под списками? Реализация коллекций? Я вроде все более менее известные изучал по исходинкам. Не думаю, что товаришь может больше чем разработчики библиотек вроде stl, ATL, Boost...

А тебе не кажется что если бы разговор шол о просто коллекциях то Мейерс бы не свалился со стула? А еще в томже предисловии написано что он викинул из Болие эффективного С++ главу о шаблонах ибо понял что его знания о них находится на уровне типизарованых контейнеров и очень скоро станут банальными и это скоро наступило очень давно. Твои к стати знания о шаблонах тоже.

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

Ну если только в дизайне программы, а где не так в этом случае?
VD>Шарп же полная противоположенность. Приятно было бы если Шарп стал ближе к С++ по возможностям. Но пусть это будет не в ущерб простотое и удобству.
К сожалению это не возможно. Либо возможности либо простота. Также я не спорю что для некоторых задачь шарп лучше подходит я сам настоял не переходе нашей конторы на шарп ибо для нашей АСУТП самое то.
Однако если нужно выжать из машины все что возможно то у шарпа против плюсов нет шансов.
... << RSDN@Home 1.1 alpha 1 >>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[6]: Будущее C#
От: WolfHound  
Дата: 02.07.03 16:19
Оценка:
Здравствуйте, VladD2, Вы писали:

VD>Что ты под этим понимаешь?

Влад очень прошу прочитай Александреску и сразу исчезнет куча вопросов.
... << RSDN@Home 1.1 alpha 1 >>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[16]: Будущее C#
От: Plutonia Experiment Беларусь http://blogs.rsdn.org/ikemefula
Дата: 02.07.03 16:35
Оценка:
Здравствуйте, WolfHound, Вы писали:

VD>>Я бы на твоем мнении не стал делать заявлений о чужишь знаниях если ты не можешь их адекватно оценить.

WH>Re[12]: Будущее C#
Автор: VladD2
Дата: 02.07.03
Судя по этому посту я прав на 100%


Скорее неправ на 100%. Перечитай ссылку, что сам дал
Re[17]: Будущее C#
От: WolfHound  
Дата: 02.07.03 16:40
Оценка:
Здравствуйте, Plutonia Experiment, Вы писали:
PE>Скорее неправ на 100%. Перечитай ссылку, что сам дал
Нда? Он спутал списки типов и обобщенные контейнеры что далеко не одно и тоже и предназначены для совершенно разных целей.
... << RSDN@Home 1.1 alpha 1 >>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[11]: Будущее C#
От: mihailik Украина  
Дата: 02.07.03 16:53
Оценка:
A>>>Кстати, этот подход (C++ для .NET) будет еще более сильно развит в следующей версии VC++.

AVK>>Откуда дровишки?


A>А нужны ли они тебе?


Ты чего, ты чего? Просвети, интерестно, что там в будующем дотнетовском за тучи сгущаются
... << RSDN@Home 1.1 beta 1 >>
Re[17]: Будущее C#
От: VladD2 Российская Империя www.nemerle.org
Дата: 02.07.03 18:10
Оценка: :)
Здравствуйте, VladD2, Вы писали:

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


IT>>>Неужели один прочитанный учебник может сделать из вчерашнего студента закоренелого профи?

WH>>Нет но начальные знания дать может, а у них и этого нет.

VD> Я плякаль.


Ты в следующий раз прежде чем так выпендриваться зади в топ и погляди кто рядом с тобой стоит. И это при том, что кое-кто уже больше года туда не заходил по серьезному.
... << RSDN@Home 1.1 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[16]: Будущее C#
От: VladD2 Российская Империя www.nemerle.org
Дата: 02.07.03 18:10
Оценка:
Здравствуйте, WolfHound, Вы писали:

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


AVK>>Не хами.

WH>Простите погорячился. Просто мне надоело что вы с Владом орете на каждом шагу о примитивности С++ при этом имея весьма отдаленные представления о нем.

А накаком основании у тебя такое самомнеие? Буду спорить, что я тебя в реальном программировании на плюсах за пояс заткну. Я на плюсах писал еще 10 лет назад. И за плечами имею несколько серьезнийших проктов. Не думаю, что одна книжка (пусть даже самая крутая) сильно поднимит мой скил в области С++. Конечно не монстр в этой области, но моиз знания об этом языке уж точно нельзя называть "отдаленными".

Короче, кончай хамить. Такие заявления здесь себе не позволяют даже самые опотные гуру. А от тебя я их точно терпеть не намерен.
... << RSDN@Home 1.1 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[16]: Будущее C#
От: VladD2 Российская Империя www.nemerle.org
Дата: 02.07.03 18:48
Оценка:
Здравствуйте, WolfHound, Вы писали:

VD>>Я бы на твоем мнении не стал делать заявлений о чужишь знаниях если ты не можешь их адекватно оценить.

WH>Re[12]: Будущее C#
Автор: VladD2
Дата: 02.07.03
Судя по этому посту я прав на 100%


Можешь обосновать?
... << RSDN@Home 1.1 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[18]: Будущее C#
От: VladD2 Российская Империя www.nemerle.org
Дата: 02.07.03 18:48
Оценка:
Здравствуйте, WolfHound, Вы писали:

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


Я спросил что ты имеешь в виду под этими словами.
... << RSDN@Home 1.1 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[14]: Будущее C#
От: VladD2 Российская Империя www.nemerle.org
Дата: 02.07.03 18:48
Оценка: +2
Здравствуйте, WolfHound, Вы писали:

WH>А тебе не кажется что если бы разговор шол о просто коллекциях то Мейерс бы не свалился со стула?


А мне все равно. Короче, мой вопрос остался без ответа.

WH> А еще в томже предисловии написано что он викинул из Болие эффективного С++ главу о шаблонах ибо понял что его знания о них находится на уровне типизарованых контейнеров и очень скоро станут банальными и это скоро наступило очень давно. Твои к стати знания о шаблонах тоже.


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

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

WH>Ну если только в дизайне программы, а где не так в этом случае?

Попробуй членораздельно сформулировать вопрос.

VD>>Шарп же полная противоположенность. Приятно было бы если Шарп стал ближе к С++ по возможностям. Но пусть это будет не в ущерб простотое и удобству.

WH>К сожалению это не возможно. Либо возможности либо простота. Также я не спорю что для некоторых задачь шарп лучше подходит я сам настоял не переходе нашей конторы на шарп ибо для нашей АСУТП самое то.

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

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


Как сказать. Сам язык не может определять производительность. Производительность кода зависит от оптимизаций и качества транслятора. Нетрудно найти реализациции С++ которые будут порождать код более медленный чем компилятор Шарпа (от МС).

К тому же, тормоза в реальных приложениях — это в 99% случаев не проблемы низкой скорости кода, а непаравильно выбранные алогоритмы.
... << RSDN@Home 1.1 beta 1 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.