Re[8]: плохой язык C++ :)
От: Programmierer AG  
Дата: 03.03.06 09:12
Оценка: 51 (3) +2 :))) :))) :))) :)
Здравствуйте, VladD2, Вы писали:

PA>>Это диверсанты-функциональщики на самом деле .

VD>Я бы даже сказал девирсанты метопрограммщики вынужденно ставшие функциональщиками так как Страуструп хитрюга незаметно для основного мира и комитета по стандартизации таки умудрился запихнуть в С++ ФЯ.

А мне каатса, Страуструп сам обалдел от того, что получилось из шаблонов.
А вот Erwin Unruh, Todd Velhuizen и, конечно же, Степанов — это наши. Это они подрывают основы C++-сообщества. Они незаметно внедрили функциональный стиль в большинство программ на C++, чтобы потом C++-ники неожиданно обнаружили, что все это фигня по сравнению с настоящими ФЯ. Вот такой коварный план. Первые жертвы уже есть .
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: плохой язык C++ :)
От: Programmierer AG  
Дата: 03.03.06 09:19
Оценка:
Здравствуйте, eao197, Вы писали:

E>Просто в качестве мысли вслух. Интересно, какому-нибудь столь же распространенному языку, как C++, удалось сохранить единую концепцию и стройность языка за двадцать лет своего развития и после столько кардинальных доработок, как в C++ (исключения и шаблоны ведь в C++ не сразу появились)?

Не скажу за всю Одессу. Как уже не раз было замечено здесь в Философии, рассуждения о распространенности — тупиковый путь развития беседы, лучше и не начинать.
Я, собственно, и не доказываю ничего. Зверек привел цитату некого Аввы, ее неправильно, поверхностно поняли, и принялись спорить со Зверьком, в том смысле, что C++ — он для умных, а ты пиши на своем C . Вот на этот момент я и хотел обратить внимние.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[9]: плохой язык C++ :)
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 03.03.06 09:25
Оценка: +2 :)
Здравствуйте, Programmierer AG, Вы писали:

PA>А вот Erwin Unruh, Todd Velhuizen и, конечно же, Степанов — это наши. Это они подрывают основы C++-сообщества. Они незаметно внедрили функциональный стиль в большинство программ на C++, чтобы потом C++-ники неожиданно обнаружили, что все это фигня по сравнению с настоящими ФЯ. Вот такой коварный план. Первые жертвы уже есть .


Яркое доказательство того, что в каждой шутке есть (только) доля шутки!
Если за нормальное программирование на C++ начнут выдавать такое
Автор(ы): Bjorn Karlsson
Дата: 24.02.2006
Рассматриваются все типовые случаи применения bind — связывание свободных функций, функций-членов класов, переменных-членов, виртуальных функций, а также функциональная композиция. На простом примере поясняется идея, лежащая в основе реализации bind.
:
int count=std::count_if(
  ints.begin(), 
  ints.end(), 
  boost::bind(
    std::logical_and<bool>(), 
    boost::bind(std::greater<int>(), _1, 5), 
    boost::bind(std::less_equal<int>(), _1, 10)));

std::cout << count << '\n';

std::vector<int>::iterator int_it=std::find_if(
  ints.begin(), 
  ints.end(), 
  boost::bind(std::logical_and<bool>(), 
    boost::bind(std::greater<int>(), _1, 5), 
    boost::bind(std::less_equal<int>(), _1, 10)));

то жертв станет еще больше (на одну так точно ).

Хотя грусно это все, на самом деле. Здесь рядом
Автор: Cyberax
Дата: 02.03.06
Cyberax коротенький тестик привел для замера скорости работы FS, так к этому тесту нужно буст тащить, да еще версию из CVS. Уж на самом деле, на C в таких условиях писать спокойнее.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[4]: плохой язык C++ :)
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 03.03.06 09:29
Оценка:
Здравствуйте, Programmierer AG, Вы писали:

PA>Как уже не раз было замечено здесь в Философии, рассуждения о распространенности — тупиковый путь развития беседы, лучше и не начинать.


Распространенность я привел только в качестве одного из факторов. Чем более распространенный язык, тем больше к нему разнообразных требований предъявляют. А это уже вполне объективный фактор, с которым приходится считаться. Как и с тем, что внести изменения, нарушающие совместимость, в распространенный язык гораздо сложнее, чем в малораспространенный.

PA>Вот на этот момент я и хотел обратить внимние.


Я понял. Просто твое напоминание меня на несколько другие размышления натолкнули. Которыми я и поделился. Без попытки спорить.



SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[10]: плохой язык C++ :)
От: Programmierer AG  
Дата: 03.03.06 09:33
Оценка: +1
Здравствуйте, eao197, Вы писали:


E>Яркое доказательство того, что в каждой шутке есть (только) доля шутки!

E>Если за нормальное программирование на C++ начнут выдавать такое
Автор(ы): Bjorn Karlsson
Дата: 24.02.2006
Рассматриваются все типовые случаи применения bind — связывание свободных функций, функций-членов класов, переменных-членов, виртуальных функций, а также функциональная композиция. На простом примере поясняется идея, лежащая в основе реализации bind.
:

. Этот код на самом деле очень простой. Синтаксического оверхеда (tm) просто много. Заменить boost::bind на лямбда-функции или применение комбинаторов с каррингом, и от него останется пара строчек.

E>Уж на самом деле, на C в таких условиях писать спокойнее.

Необязательно на C, есть масса альтернатив .
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[3]: плохой язык C++ :)
От: Programmierer AG  
Дата: 03.03.06 09:37
Оценка:
Здравствуйте, VladGalkin, Вы писали:

_>>Пойди и пойми ДАО, потом поговорим.


VG>1) Это мнение не Зверька, а avva;


VG>2) Уважаемый, Вы бы по поводу понимания ДАО C++ Зверьком не спешили бы говорить, а прочитали вот это: C++ulture
Автор: Зверёк Харьковский
Дата: 11.06.04
;

+10
О чем я и говорил
Автор: Programmierer AG
Дата: 03.03.06
.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[9]: плохой язык C++ :)
От: Programmierer AG  
Дата: 03.03.06 09:49
Оценка:
Здравствуйте, VladGalkin, Вы писали:

VG>

VG>Managed signals and slots (a.k.a. the Observer pattern) with Boost.Signals

Вот их, например, нельзя использовать в многопоточных программах.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: плохой язык C++ :)
От: last_hardcoder  
Дата: 03.03.06 09:50
Оценка: 8 (1) +2 -4
Здравствуйте, Зверёк Харьковский, Вы писали:

С++ плох потому, что в нём намешано слишком много парадигм программирования. Пора бы уже озаботиться созданием приемника C++. Но почему то те, кто предпринимает такие попытки, не видят в чём новая парадигма. Новая парадигма — это обобщённое программирование. Новый язык должен воплощать её минимальным числом максимально выразительных возможностей. Вместо этого создают какие-то jav'ы, C#-ы. Вначале урезают C++ не с того конца. Потом начинают возвращать вырезанное обратно.
Re[10]: плохой язык C++ :)
От: alex_ez Россия alex.jife.ru
Дата: 03.03.06 09:53
Оценка:
Здравствуйте, Programmierer AG, Вы писали:

VG>>

VG>>Managed signals and slots (a.k.a. the Observer pattern) with Boost.Signals

PA>Вот их, например, нельзя использовать в многопоточных программах.

а зочем вам многопоточные программы?
отставить песать многопоточные программы!..
silence in quite
Re[2]: плохой язык C++ :)
От: Left2 Украина  
Дата: 03.03.06 09:57
Оценка:
VD>А вот то, что жить будет С, а не аналогичный типобезопасный безопасный язык — это нонсенс который ничем кроме как глупости и косности человечества я объяснить не могу. По-моему — это привычка/стериотип возабладвшая над разумом. Насколько я знаю Ричи давно изобрел такой язык. И не только он (тот же Оберон из этой оперы). Но ежики жрут кактуся с упорством достойным лучшего применения.

Влад, ну зачем же так
C живёт только потому что он уже есть везде — для любой платформы. Да, он убогий, да, в нём море граблей — но он стандарт де-факто. Вы бы ещё возмутились неудобной раскладкой клавиш на клавиатуре — 100% уверен в том что можно было сделать лучше, но я бы не стал кричать что QWERTY-раскладка обусловлена глупостью и костностью мышления.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[2]: плохой язык C++ :)
От: alex_ez Россия alex.jife.ru
Дата: 03.03.06 09:57
Оценка: :)
Здравствуйте, last_hardcoder, Вы писали:

_>С++ плох потому, что в нём намешано слишком много парадигм программирования. Пора бы уже озаботиться созданием приемника C++. Но почему то те, кто предпринимает такие попытки, не видят в чём новая парадигма. Новая парадигма — это обобщённое программирование. Новый язык должен воплощать её минимальным числом максимально выразительных возможностей. Вместо этого создают какие-то jav'ы, C#-ы. Вначале урезают C++ не с того конца. Потом начинают возвращать вырезанное обратно.


что значит выражение "урезать не с того конца" ?..
java — это кросплатформенный язык программирования.
c# — перевоплощение, помоему, тоже бессмысленное.

и еще, C++ и ANSI C++ совершенно разные вещи.
silence in quite
Re[3]: плохой язык C++ :)
От: Left2 Украина  
Дата: 03.03.06 10:01
Оценка: +1 :)
D>>С++ ориентрован на сильных умом

СГ>Все сильные умом люди, которых я знаю, не благосклонны к языку С++.


"-" поставил не в защиту С++ а потому что высказывание уж очень тянет на разжигание межязыковой вражды
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[10]: плохой язык C++ :)
От: igna Россия  
Дата: 03.03.06 10:21
Оценка: :))) :))
Здравствуйте, eao197, Вы писали:

E>Если за нормальное программирование на C++ начнут выдавать такое
Автор(ы): Bjorn Karlsson
Дата: 24.02.2006
Рассматриваются все типовые случаи применения bind — связывание свободных функций, функций-членов класов, переменных-членов, виртуальных функций, а также функциональная композиция. На простом примере поясняется идея, лежащая в основе реализации bind.
:


E>int count=std::count_if(
E>  ints.begin(), 
E>  ints.end(), 
E>  boost::bind(
E>    std::logical_and<bool>(), 
E>    boost::bind(std::greater<int>(), _1, 5), 
E>    boost::bind(std::less_equal<int>(), _1, 10)));

E>std::cout << count << '\n';

E>std::vector<int>::iterator int_it=std::find_if(
E>  ints.begin(), 
E>  ints.end(), 
E>  boost::bind(std::logical_and<bool>(), 
E>    boost::bind(std::greater<int>(), _1, 5), 
E>    boost::bind(std::less_equal<int>(), _1, 10)));



Вот как будто то же самое, но все-таки полегче, не правда ли?:

using namespace std;
using namespace boost;

int count=count_if(
  ints.begin(), 
  ints.end(), 
  bind(
    logical_and<bool>(), 
    bind(greater<int>(), _1, 5), 
    bind(less_equal<int>(), _1, 10)));

cout << count << '\n';

vector<int>::iterator int_it=find_if(
  ints.begin(), 
  ints.end(), 
  bind(logical_and<bool>(), 
    bind(greater<int>(), _1, 5), 
    bind(less_equal<int>(), _1, 10)));
Re[3]: плохой язык C++ :)
От: igna Россия  
Дата: 03.03.06 10:27
Оценка:
Здравствуйте, Сергей Губанов, Вы писали:

СГ>Все сильные умом люди, которых я знаю, не благосклонны к языку С++.


А к каким языкам благосклонны сильные умом?
Re[11]: плохой язык C++ :)
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 03.03.06 10:30
Оценка: 2 (2) +4
Здравствуйте, igna, Вы писали:

I>Вот как будто то же самое, но все-таки полегче, не правда ли?:


Не правда. Это все попытки медитациями заставить себя поверить, что это удобно и красиво.
Хотя действительно полегче было бы что-то такое:

I>
I>using namespace std;
I>using namespace boost;

I>int count=count_if(
I>  ints.begin(), 
I>  ints.end(), 
I>  bool lambda( int x ) { return ( 5 < x && x <= 10 ) });

I>cout << count << '\n';

I>vector<int>::iterator int_it=find_if(
I>  ints.begin(), 
I>  ints.end(), 
I>  bool lambda( int x ) { return ( 5 < x && x <= 10 ) });
I>


А если учесть что в двух местах используется одинаковый код, то хотелось иметь возможность написать так:
auto predicat = bool lambda( int x ) { return ( 5 < x && x <= 10 };

int count = count_if( ints.begin(), ints.end(), predicat );
...
auto int_it = find_if( ints.begin(), ints.end(), predicat );


Вот это было бы для меня удобно. И нормально.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[12]: плохой язык C++ :)
От: alex_ez Россия alex.jife.ru
Дата: 03.03.06 10:35
Оценка: -2
Здравствуйте, eao197, Вы писали:

E>auto predicat = bool lambda( int x ) { return ( 5 < x && x <= 10 };

inline f(), #define f()
— не устраивают?..

E>Вот это было бы для меня удобно. И нормально.

так вам, батенька, свой язык писать хочется?.. так пишите в чем проблема?..
silence in quite
Re[13]: плохой язык C++ :)
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 03.03.06 10:44
Оценка: +1 :)
Здравствуйте, alex_ez, Вы писали:

E>>auto predicat = bool lambda( int x ) { return ( 5 < x && x <= 10 };

_>
inline f(), #define f()
— не устраивают?..


Меня вполне устраивают. И даже наследование от binary_function и unary_function вполне устраивает. Мне не понятно, чем это boost-оводов не устраивает. И зачем создаются вещи вроде boost::bind, если добавление в язык возможности реализации лямбды (или вернее локальной анонимной функции/функтора) даст тоже самое да еще в более читабельном виде.

_>так вам, батенька, свой язык писать хочется?.. так пишите в чем проблема?..


Нет, вот своих языков мне писать уже не хочется. Переболел-с, знаете ли, доктор. Имунитет-с у меня нонче.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[12]: плохой язык C++ :)
От: dmz Россия  
Дата: 03.03.06 10:50
Оценка: 1 (1) :)
E>А если учесть что в двух местах используется одинаковый код, то хотелось иметь возможность написать так:
E>
E>auto predicat = bool lambda( int x ) { return ( 5 < x && x <= 10 };

E>int count = count_if( ints.begin(), ints.end(), predicat );
E>...
E>auto int_it = find_if( ints.begin(), ints.end(), predicat );
E>


E>Вот это было бы для меня удобно. И нормально.

а мне было бы удобнее

int count = 0;
ints.each( { |x| count++ if(5 < x && x <= 10) } );
Re[14]: плохой язык C++ :)
От: alex_ez Россия alex.jife.ru
Дата: 03.03.06 10:52
Оценка: -2 :))
Здравствуйте, eao197, Вы писали:

E>Меня вполне устраивают. И даже наследование от binary_function и unary_function вполне устраивает. Мне не понятно, чем это boost-оводов не устраивает. И зачем создаются вещи вроде boost::bind, если добавление в язык возможности реализации лямбды (или вернее локальной анонимной функции/функтора) даст тоже самое да еще в более читабельном виде.

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

E>Нет, вот своих языков мне писать уже не хочется. Переболел-с, знаете ли, доктор. Имунитет-с у меня нонче.

аналогично, пациент. диагноз: здороф.

в общем, я считаю вопрос закрытым.
silence in quite
Re[13]: плохой язык C++ :)
От: igna Россия  
Дата: 03.03.06 10:55
Оценка:
Здравствуйте, dmz, Вы писали:

dmz>int count = 0;
dmz>ints.each( { |x| count++ if(5 < x && x <= 10) } );


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