Re[55]: C+ vs C#
От: slavdon  
Дата: 15.02.06 13:44
Оценка:
Здравствуйте, slavdon, Вы писали:

S>Здравствуйте, Дарней, Вы писали:


Д>>Как там RSDN@Linux поживает?

S>Его не будет.
Плохо нельзя смеяться над оценками
--
Now play: Tania Libertad — Ritmo De Negros
Re[57]: C+ vs C#
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 15.02.06 17:27
Оценка: 1 (1)
Здравствуйте, Кодёнок, Вы писали:

Кё>Придуманный:

Кё>
def MakeInvertedPredicate(p) { fun(x) { !p(x) } }


Кё>Как это реализовать на С++? Знаю что можно, да думать лень, когда уже повсюду реализованы нормальные средства.


Хм... std::logical_not?

Кё>Реальный:


Кё>
Кё>def Sort(item : int, reverse : bool) : void
Кё>{
Кё>    def pred(av, bv) : bool
Кё>    {
Кё>        def (a, b) = if (reverse) (bv, av) else (av, bv);
Кё>        some_natural_order_string_compare(a[item], b[item]) < 0
Кё>    }
Кё>    some_standart_sort(m_data.begin(), m_data.end(), pred)
Кё>}
Кё>


Кё>А как это делается на С++?


Хм... std::binary_negate? Там и пример использования есть...

Уж извините, что влез в вашу войнюшку, но, ИМХО, матчасть нужно знать в любом языке программирования?


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[65]: C+ vs C#
От: WolfHound  
Дата: 15.02.06 20:46
Оценка: -1
Здравствуйте, alexeiz, Вы писали:

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

A>Дело в том, что на C# выразить инкапсуляцию в полной мере не удаётся. По твоей логике, раз нельзя, значит и не надо увлекаться.
Это я никак не могу отнести к плюсам С++. Ну никак. Рюшечки это безполезные.

A>Не спеши с выводами. CLI использует разные модели доступа к членам класса внутри и извне модуля. Какое безобразие можно сотворить с комбинациями public private, internal public, private protected и т.д., наверное, несравнимо с друзьями (тем не менее друзей таким способом нельзя реализовать). В данном случае нужно говорить не о хорошо/плохо спроектированном языке, а о гранулярности контроля над его поведением.

Откуда ты это взял? Есть только такие модификаторы.
public               Access is not restricted.
protected            Access is limited to the containing class or types derived from the containing class.
internal             Access is limited to the current assembly.
protected internal   Access is limited to the current assembly or types derived from the containing class.
private              Access is limited to the containing type.


A>Когда стоит выбор между двумя языками, ты выберешь тот, который даёт тебе больший контроль и гибкость или меньший?

Именно по этому я выбераю C#.

A>Давно известная идея в C++. В мир C# она только-только приходит. Но только она не может быть реализована в полной мере. Эта ситуация характерна для C#. Многие полезные идеи из C++ не имеют (или имеют ограниченное) в нём представления.

В мир C# она не попадет ибо ничего невого она не дает. То есть вобще ничего.
Если на счет деструкторов или шаблонов еще можено подумать то это вобще мулька безполезная.
... << RSDN@Home 1.1.4 beta 6a rev. 436>>
Пусть это будет просто:
просто, как только можно,
но не проще.
(C) А. Эйнштейн
Re[57]: C+ vs C#
От: Sheridan Россия  
Дата: 16.02.06 04:40
Оценка: -1
Здравствуйте, Sheridan, Вы писали:

S>Будет

S>У меня идея-фикс: сделать такого клиента, который обойдет RSDN@Home
S>Дабы доказать что шарп не рулит.

slavdon, нравится шарп и не нравится линух? Не читай мои посты, отпишись от КСВ вообще.

[RSDN@Home][1.2.0][alpha][643]
[Мир прекрасен. Это-то и грустно. [С. Лец]]
Matrix has you...
Re[57]: C+ vs C#
От: Дарней Россия  
Дата: 16.02.06 05:22
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>У меня идея-фикс: сделать такого клиента, который обойдет RSDN@Home

S>Дабы доказать что шарп не рулит.

сначала сделай, потом хвалиться будешь
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[58]: C+ vs C#
От: Sheridan Россия  
Дата: 16.02.06 05:40
Оценка:
Здравствуйте, Дарней, Вы писали:

Д>сначала сделай, потом хвалиться будешь


Где вы в моих словах увидели что я хвалюсь? Я вообщето высказываю свое желание, а не похвалюбу. Внимательнее надо быть.

[RSDN@Home][1.2.0][alpha][643]
[Кто молчать не умеет, тот и говорить не способен. [Сенека Младший]]
Matrix has you...
Re[53]: C+ vs C#
От: Дарней Россия  
Дата: 16.02.06 05:44
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>Ты считаеш что комманда разного народу успеет догонять MS на mono в плане совместимости?

S>Другое дело если возьмется другая довольно крупная контора... Причем возьмется вплотную.

такая контора уже давно есть, да будет тебе известно
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[58]: C+ vs C#
От: Дарней Россия  
Дата: 16.02.06 05:44
Оценка:
Здравствуйте, alexeiz, Вы писали:

A>Все примены из Nemerle идут лесом. Сравнивать C++ с функциональным языком, это слоны и бегемоты. Подумай тот ли язык программирования ты выбрал, если тебе приходится писать функциональный код. Здесь идет сравнение с C# — основным языком программирования для .NET.


В общем, ход "дискуссии" вполне предсказуем. С++ объявляется Языком Самого Высокого Уровня по определению, а все фичи, которых в нем нет и их нельзя хотя бы криво эмулировать, объявляются несущественными и не относящимися к делу.
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[59]: C+ vs C#
От: Дарней Россия  
Дата: 16.02.06 05:48
Оценка: +1 :)
Здравствуйте, Sheridan, Вы писали:

S>Где вы в моих словах увидели что я хвалюсь? Я вообщето высказываю свое желание, а не похвалюбу. Внимательнее надо быть.


Мне это больше всего напоминает речи горе-математиков, которые громогласно высказывают свое желание доказать теорему Ферма. А потом куда-то бесследно исчезают. Видимо, доказали, но скромность мешает им опубликовать результаты своих трудов.
... << RSDN@Home 1.1.4 stable rev. 510>>
Всех излечит, исцелит
добрый Ctrl+Alt+Delete
Re[58]: C+ vs C#
От: Кодёнок  
Дата: 16.02.06 07:59
Оценка:
Здравствуйте, eao197, Вы писали:

Кё>>def MakeInvertedPredicate(p) { fun(x) { !p(x) } }

Кё>>Как это реализовать на С++? Знаю что можно, да думать лень, когда уже повсюду реализованы нормальные средства.
E>Хм... std::logical_not?

Не понял, как тут поможет logical_not? Смысл — сделать новый функтор, чтоб такой код работал как обычная сортировка с std::less<int>

bool greater_eq(int a, int b)
{
return a >= b;
}

int main()
{
int numberz[5] = { 5, 1, 3, 2, 4 };
std::sort(numberz, numberz + 5, MakeInvertedPredicate(greater_eq) );
}


E>Хм... std::binary_negate? Там и пример использования есть...


В примере выше как раз binary_negate подходит, правда как его использовать, я не знаю Покажешь, как его здесь прикрутить?

А потом можно будет сравнить с `def binary_negate(op) { fun(left, right) { !op(left, right) } }`.

E>Уж извините, что влез в вашу войнюшку, но, ИМХО, матчасть нужно знать в любом языке программирования?


Я показал, что не получится передать стандартному алгоритму предикат, дополнительно параметризованный чем-нибудь, без создания костыля. Потому что для полноценного использования такого интерфейса как у стд. алгоритмов, нужна поддержка замыканий в компиляторе. Если бы она была, то весь хидер <functional> например, а также значительные части boost::mpl можно было бы сразу выкинуть на помойку.
Re[59]: C+ vs C#
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 16.02.06 08:46
Оценка:
Здравствуйте, Кодёнок, Вы писали:

Кё>Не понял, как тут поможет logical_not?


Мне показалось, что ты задаешь два разных вопроса.

Кё>В примере выше как раз binary_negate подходит, правда как его использовать, я не знаю Покажешь, как его здесь прикрутить?


#include <iostream>
#include <iterator>
#include <algorithm>
#include <functional>

template< int N, class T > T * end( T (&a)[ N ] ) { return &a[ N ]; }

template< class P > std::binary_negate< P > binary_negate( P p )
    {
        return std::binary_negate< P >( p );
    }

int
main()
    {
        int a[] = { 3, 2, 1, 4, 5 };

        std::sort( a, end( a ), binary_negate( std::less< int >() ) );

        std::sort( a, end( a ), binary_negate( std::greater_equal< int >() ) );
    }


Кё>А потом можно будет сравнить с `def binary_negate(op) { fun(left, right) { !op(left, right) } }`.


А зачем сравнивать?
Если ты имеешь возможность на своей работе использовать вместо C++ Nemerle, то в чем проблема? Берешь и используешь.
Если нет возможности, то опять в чем проблема? Берешь и убеждаешь начальство или заказчиков сменить язык реализации. Или меняешь место работы на то, где применяют Nemerle или Lisp, или OCaml, или Haskell (с чем там еще любят сравнивать C++ в последнее время?) -- делов-то.

Кё>Если бы она была, то весь хидер <functional> например, а также значительные части boost::mpl можно было бы сразу выкинуть на помойку.


Если бы у бабушки был ..., то был бы дедушка.

Я вообще не могу понять природу яросных наездов на C++. Это что, так в жизни не повезло с C++ что-ли? Я еще могу понять, когда юноша в период полового созревания на девушку обижается. Но здесь...

Не понимаю, почему C++ пинают те, кто уже сменил C++ на другой язык (в основном Java и C#). Если вы верите в то, что получили более удобный и качественный инструмент -- ну так пользуйтесь на здоровье, кто запрещает? И зачем при этом больного, немощного старичка-инвалида ногами пинать?

Если вы сейчас вынуждены (?) писать на C++, а хочется на чем-то более крутом (опять помяну в суе Lisp, OCaml, Haskell, Erlang), так пишите. Берите и пишите и забудьте про C++ как страшный сон. Lisp, OCaml, Haskell, Erlang, Nemerle -- такие классные языки, просто сказка. Берете и работаете на них, что мешает?


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[66]: C+ vs C#
От: alexeiz  
Дата: 16.02.06 08:55
Оценка: :)
Здравствуйте, WolfHound, Вы писали:

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


A>>Давно известная идея в C++. В мир C# она только-только приходит. Но только она не может быть реализована в полной мере. Эта ситуация характерна для C#. Многие полезные идеи из C++ не имеют (или имеют ограниченное) в нём представления.

WH>В мир C# она не попадет ибо ничего невого она не дает. То есть вобще ничего.
WH>Если на счет деструкторов или шаблонов еще можено подумать то это вобще мулька безполезная.

Вот тебе пара ссылок для самообразования:

http://blogs.msdn.com/brada/archive/2005/01/14/353132.aspx
http://msdn2.microsoft.com/en-us/library/system.collections.collectionbase_members.aspx
Re[62]: C+ vs C#
От: coldfire2 Россия http://www.dict.riot.ru
Дата: 16.02.06 09:41
Оценка:
Здравствуйте, Cyberax, Вы писали:

>> Опять фикция. На этот раз еще большая. На практике в C++ такой подход

>> никто не применяет. Если кто-то применяет, могу только посочувствовать.
C>Это значит, что просто никому особо не надо. Тем более, что в C#
C>свойства — это просто сахар над get-,set- функциями и не добавляет
C>ничего семантически нового.

ну вообще то свойства как расширение языка в С++ тоже есть:
__declspec(property(get=GetLen)) int len;

работает под vc++, borland c++, intel c++, насчет gcc не увереен.
Re[60]: C+ vs C#
От: Кодёнок  
Дата: 16.02.06 11:27
Оценка: 1 (1)
Здравствуйте, eao197, Вы писали:

E>А зачем сравнивать?


Чтобы явно показать, что язык может быть удобней не просто на какой-то одной задаче (скажем, благодаря наличию в стандартной библиотеке подходящей функции), а может быть _принципиально_ лучше. Я думаю, сравнивать уже не надо, все уже сравнили И это при том, что основную тему спора — замыкания — мы с тобой пропустили.

E>Если ты имеешь возможность на своей работе использовать вместо C++ Nemerle, то в чем проблема? Берешь и используешь.

E>Если нет возможности, то опять в чем проблема? Берешь и убеждаешь начальство или заказчиков сменить язык реализации. Или меняешь место работы на то, где применяют Nemerle или Lisp, или OCaml, или Haskell (с чем там еще любят сравнивать C++ в последнее время?) -- делов-то.

Если ты так вопросы ставишь, то зачем тогда вообще в ветки на тему философии программирования писать? Ты пишешь так, как будто языки — данность, будто они, со всей своей индивидуальностью, просто спонтанно вырастают как грибы. Типа один таким вырос, а второй — другим На самом деле они появляются как результат развития, попытки решить проблемы старых языков. Не нравится участвовать в этих спорах — не участвуй

E>Я вообще не могу понять природу яросных наездов на C++. Это что, так в жизни не повезло с C++ что-ли? Я еще могу понять, когда юноша в период полового созревания на девушку обижается. Но здесь...


Не надо называть конструктивную критику яростными наездами. У языка могут быть объективные недостатки, и если вам на них указывают, это не значит, что его пытаются немедленно истребить. Ветка началась с того, что я развеял заблуждения человека, думающего, что в С++ можно сделать замыкания.
Re[2]: C++ vs basic
От: Lorenzo_LAMAS  
Дата: 17.02.06 11:06
Оценка: +1
Здравствуйте, Sheridan, Вы писали:

S>Именно так.


А ты знаешь и C#, и basic (о каком ты говорил, кстати?) и С++ чтобы так говорить?
Of course, the code must be complete enough to compile and link.
Re[3]: C++ vs basic
От: Sheridan Россия  
Дата: 17.02.06 11:29
Оценка:
Здравствуйте, Lorenzo_LAMAS, Вы писали:

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


S>>Именно так.


L_L>А ты знаешь и C#, и basic (о каком ты говорил, кстати?) и С++ чтобы так говорить?

и пхп и яваскрипт и баш и паскаль с перлом
Не круть немерянная конечно но не потеряюсь.

[RSDN@Home][1.2.0][alpha][643]
[Великой эпохе нужны великие люди. [Я. Гашек]]
Matrix has you...
Re[4]: C++ vs basic
От: Lorenzo_LAMAS  
Дата: 17.02.06 11:32
Оценка:
S>Не круть немерянная конечно но не потеряюсь.

И чем же C# похож на basic (visual, как ты вроде уточнил)
Of course, the code must be complete enough to compile and link.
Re[5]: C++ vs basic
От: Sheridan Россия  
Дата: 17.02.06 11:48
Оценка: -12 :))) :)))
Здравствуйте, Lorenzo_LAMAS, Вы писали:

S>>Не круть немерянная конечно но не потеряюсь.


L_L>И чем же C# похож на basic (visual, как ты вроде уточнил)


Тем что он for dummies (или как там правильно пишется). Тем что интепритатор. Тем что некроссплатформен. Тем что требуетъ кучу либ. Тем что памятью нельзя управлять. Тем что тормоз в конце концов.
Думаете еслибы бэйсик не был именем нарицательным микрософт бы шарп придумала? Да фиг! А так — переделали синтаксис под С, придумали фреймворк и вперед. У БГ же мечта чтоб кажная домохозяйка на холодильнике программила.

[RSDN@Home][1.2.0][alpha][643]
[Земной человек — это слабая душа, обремененная трупом. [Эпиктет]]
Matrix has you...
Re[6]: C++ vs basic
От: slavdon  
Дата: 17.02.06 12:37
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>Тем что он for dummies (или как там правильно пишется). Тем что интепритатор. Тем что некроссплатформен. Тем что требуетъ кучу либ. Тем что памятью нельзя управлять. Тем что тормоз в конце концов.

S>Думаете еслибы бэйсик не был именем нарицательным микрософт бы шарп придумала? Да фиг! А так — переделали синтаксис под С, придумали фреймворк и вперед. У БГ же мечта чтоб кажная домохозяйка на холодильнике программила.

Зря "улыбка" рейтинг поднимает. Смешно, но рейтинг поднимать не буду
--
Now play: VA — Fania All Stars — Coro Miyare
Re[7]: C++ vs basic
От: Alxndr Германия http://www.google.com/profiles/alexander.poluektov#buzz
Дата: 17.02.06 12:50
Оценка: 2 (1)
Здравствуйте, slavdon, Вы писали:

S>Зря "улыбка" рейтинг поднимает. Смешно, но рейтинг поднимать не буду


Не поднимает, жми смело
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.