Re[12]: очень сильный C++
От: Piko  
Дата: 31.08.12 21:17
Оценка: 6 (1) +2 :)
Здравствуйте, Alexéy Sudachén, Вы писали:

P>>>>это с онанизмом или без?

P>>>>http://www.rsdn.ru/poll/3561.aspx
Автор: Piko
Дата: 13.05.12
Вопрос: Является ли приведённый ниже фрагмент кода синтаксическим онанизмом?
[ccode]
#define __Auto_Release \
switch ( 0 ) \
if ( 0 ); else \
while ( 1 ) \
if ( 1 ) \
{ \
int YOYO_LOCAL_ID(Mark); \
Yo_Unwind_Scope(0,0,&YOYO_LOCAL_ID(Mark)); \
break; \
case 0: Yo_Pool_Ptr(&YOYO_LOCAL_ID(Mark),Yo_Pool_Marker_Tag); \
goto YOYO_LOCAL_ID(Body);\
} \
else \
YOYO_LOCAL_ID(Body):
[/ccode]
Пример использования:
[ccode]
__Auto_Release
{
YOYO_BUFFER *bf = 0;
bf = Oj_Read_All(Cfile_Open(fname,"r"));
/* ... do some buffer processing */
Oj_Write_Full(Cfile_Open(Str_Concat(fname,".1"),"w+"),bf->at,bf->count);
}
[/ccode]

AS>>>Смешно, да. Сколько из них пишут на С?
P>>какая разница сколько, я вопрос вроде чётко задал.
AS>Ну я вот возьму приду к программерам на дельфи и спрошу что они думают про БЮСТ. Я думаю ответ ты сам знаешь. Или ты таки серьёзно считаешь что С и C++ одно и тоже?

я вообще не об этом. под вопросом имел ввиду выделенное, а не голосование

AS>И опять же. Неудобно как-то получается. Угробить минимум пять лет, научиться писать мега конструкции для контроля всего и вся, а тут оказывается один макрос и в сё в ажуре. Обидно, да. ))))


"показывайте вашего друга"

AS>>>Вот на практике оказалось, что несмотря на то что кое-что в плюсах генерируется автоматом, писать таки на С нужно меньше ) Можешь мне конечно не верить, но вот так вот получается.

P>>и где тут меньше?

AS>Ну, как минимум на С++ нужно будет разруливать RAII с буфером и обьектом. Или делать объект хеша автоматическим, но буфер всёравно надо будет как-то гардить.


ога:

void *Md5_Init()
#ifdef _YOYO_MD5_BUILTIN
  {
    static YOYO_FUNCTABLE funcs[] = 
      { {0},
        {Oj_Clone_OjMID, Md5_Clone },
        {Oj_Digest_Update_OjMID, Md5_Update },
        {0}};
    
    YOYO_MD5 *md5 = __Object(sizeof(YOYO_MD5),funcs);
    return Md5_Start(md5);
  }
#endif
  ;



AS>Однако точно не больше. А с учётом что те люди что голосовали идейно верным способом ещё и пишут в основном так же идейно верно, (что хорошо видно по форуму).... тот же std::string ну очень популярен. Да, меньше получается. Даже на очень простом коде. Если же взять функцию где идёт активная работа с динамическими объектами, там вообще глаза на этих unique/shared сломаешь.


зато здесь красота:

void *Yo_Unwind_Scope(void *pooled,int min_top,void *mark)
#ifdef _YOYO_CORE_BUILTIN
  {
    YOYO_C_SUPPORT_INFO *nfo = Yo_Tls_Get(Yo_Csup_Nfo_Tls);
    int L = min_top>=0?min_top:0;
    //int counter = 0;
    if ( nfo )
      {
        YOYO_AUTORELEASE *q_p = 0;
        nfo->stats.unwinding = 1;
        while ( nfo->auto_top >= L )
          {
            YOYO_AUTORELEASE *q = &nfo->auto_pool[nfo->auto_top];
            STRICT_REQUIRE(nfo->auto_top <= nfo->auto_count);
            //printf("ptr: %p, cleanup: %p ?= pooled: %p, mark: %p\n", q->ptr, q->cleanup, pooled, mark);
            if ( q->ptr && (q->cleanup != Yo_Pool_Marker_Tag) )
              {
                if ( !pooled || q->ptr != pooled )
                  {
                    q->cleanup(q->ptr);
                    //++counter;
                  }
                else
                  q_p = q;
              }
            --nfo->auto_top;
            if ( q->cleanup == Yo_Pool_Marker_Tag && !min_top && mark == q->ptr )
              break;
          }
        REQUIRE(nfo->auto_top < nfo->auto_count);
        if ( q_p )
          {
            ++nfo->auto_top;
            nfo->auto_pool[nfo->auto_top] = *q_p;
          }
        nfo->stats.unwinding = 0;
      }
    //printf("unwind: released %d ptrs, still pooled %d ptrs\n",counter,nfo->auto_top+1);
    return pooled;
  }
#endif
  ;
Re[2]: очень сильный C++
От: Alexéy Sudachén Чили  
Дата: 28.08.12 12:25
Оценка: +2 :))
AS>>Вот непонятки у меня как бы, а как собственно измеряется эта сила Ци отдельно взятого индивидуума и где заканчивается слабый, каков он сильный, и чем так примечателен ОЧЕНЬ сильный. Как бы в бытность свою интервьювером силой Ци не интересовался, всё больше тем как это Ци на дело употребляется, потому и в непонятках.
K>Если ты легко разбираешься в boost-вом фениксе и умеешь делать визитёр уровня Александреску, то у тебя сильный С++.

Угу, а если развить привычку кодить нетривиальные алгоритмы в функциональном стиле, то C++ становиться просто эпической силы )))
Re[3]: очень сильный C++
От: Vzhyk  
Дата: 29.08.12 13:16
Оценка: 1 (1) +2
29.08.2012 15:30, Alexéy Sudachén пишет:

> Слабый C++ — прочитал Страуса, хочу быть программером; средний — могу

> воспроизвести все/несколько рецептов из саттера/мейрса и в пике даже
> поддерживать связанную беседу на тему откровение от Александреску;
> сильный — могу писать то что нужно именно так как нужно,
Вот только здесь нет никакой зависимости от пунктов выше, кроме первого,
причем без укушенности Александреску чаще всего пишут то, что нужно, и
так, как нужно. А вот укушенные Александреску чаще пишут не то, что нужно.
Posted via RSDN NNTP Server 2.1 beta
Re[4]: очень сильный C++
От: Alexéy Sudachén Чили  
Дата: 28.08.12 13:31
Оценка: +2 -1
AS>>Интересная точка зрения. Я как-то считал что если человек умеет пользоваться плюсами, то moder style для него лишь один из способов писать код.
A>что значит "умеет пользоваться плюсами"?

Способность реализовать на нём любую свою идею. Что же тут непонятного. Точно так же как умение пользоваться роялем, это способность сыграть именно то что хочешь, а не то что получается. И не надо тут философию разводить, всё предельно просто.

A>также и с С++ — вы можете печатать буквы, цифры и скобки — но это не значит что вы можете писать хороший код на С++.

A>вы можете писать C-style кол, и называть это "С++" — но это не С++.

И как интересно стиль кода, зависит от владения языком? Человек языком либо владеет, либо нет. Третьего не бывает. И то что в коде может не встретится ни одного boost или std отнюдь не означает, что писавший его чего-то не может, но лишь то что здесь это не нужно. Да, так бывает, что не нужно. И С++ это не обязательно когда визитор в стиле Александресу, и даже чаще всего не он. Цель то ведь решить задачу, а не создать замысловатую конструкцию.

A>С++ очень большой, и в зависимости от того на сколько вы его знаете — у вас либо "слабый С++", либо "сильный С++", либо "очень сильный С++".

A>мало кто может сказать что он знает "весь С++", и мало кто умеет пользоваться всем С++. отсюда и градации.

C++ не очень то и большой на самом деле. Со всеми своими прибамбасами поменьше ядра жабы будет. Он лишь таит в себе целый склад граблей, от чего и кажется столь великим и страшным. Пользоваться же 'всем С++' очень даже не сложно, сложно знать все сопутствующие грабли, что и сеть по факту знание 'всего C++'.
Re: очень сильный C++
От: okman Беларусь https://searchinform.ru/
Дата: 31.08.12 06:22
Оценка: +3
Здравствуйте, Alexéy Sudachén.

"Очень сильный C++" — это может означать что угодно, в зависимости от того,
какой смысл вкладывал в эту фразу человек, ее написавший.

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

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

Ну а где-то в почете окажутся навыки оптимизатора и знания, в какой машинный код превращается
та или иная конструкция языка, всяких там atomic/intrinsic/volatile, барьеров и lock-free,
умение выжать дополнительные десять-пятнадцать процентов перфоманса путем отказа от наиболее
дорогих языковых средств и т.д. И это тоже легко можно причислить к понятию "очень сильный C++".

Если абстрактно, то сильный С++ — это, в моем понимании:
1. Владение полным спектром языковых средств.
2. Знание "граблей", провоцирующихся пунктом 1 и вытекающих как его логическое следствие:
"знаю, но использую с осторожностью, только там, где надо, либо не использую вовсе".
3. Умение сохранить простоту и ясность кода при любых коллизиях пунктов 1 и 2.
Re[11]: очень сильный C++
От: Alexéy Sudachén Чили  
Дата: 31.08.12 21:02
Оценка: :)))
P>>>это с онанизмом или без?
P>>>http://www.rsdn.ru/poll/3561.aspx
Автор: Piko
Дата: 13.05.12
Вопрос: Является ли приведённый ниже фрагмент кода синтаксическим онанизмом?
[ccode]
#define __Auto_Release \
switch ( 0 ) \
if ( 0 ); else \
while ( 1 ) \
if ( 1 ) \
{ \
int YOYO_LOCAL_ID(Mark); \
Yo_Unwind_Scope(0,0,&YOYO_LOCAL_ID(Mark)); \
break; \
case 0: Yo_Pool_Ptr(&YOYO_LOCAL_ID(Mark),Yo_Pool_Marker_Tag); \
goto YOYO_LOCAL_ID(Body);\
} \
else \
YOYO_LOCAL_ID(Body):
[/ccode]
Пример использования:
[ccode]
__Auto_Release
{
YOYO_BUFFER *bf = 0;
bf = Oj_Read_All(Cfile_Open(fname,"r"));
/* ... do some buffer processing */
Oj_Write_Full(Cfile_Open(Str_Concat(fname,".1"),"w+"),bf->at,bf->count);
}
[/ccode]

AS>>Смешно, да. Сколько из них пишут на С?
P>какая разница сколько, я вопрос вроде чётко задал.

Ну я вот возьму приду к программерам на дельфи и спрошу что они думают про БЮСТ. Я думаю ответ ты сам знаешь. Или ты таки серьёзно считаешь что С и C++ одно и тоже?

И опять же. Неудобно как-то получается. Угробить минимум пять лет, научиться писать мега конструкции для контроля всего и вся, а тут оказывается один макрос и в сё в ажуре. Обидно, да. ))))

AS>>Вот на практике оказалось, что несмотря на то что кое-что в плюсах генерируется автоматом, писать таки на С нужно меньше ) Можешь мне конечно не верить, но вот так вот получается.

P>и где тут меньше?

Ну, как минимум на С++ нужно будет разруливать RAII с буфером и обьектом. Или делать объект хеша автоматическим, но буфер всёравно надо будет как-то гардить. Однако точно не больше. А с учётом что те люди что голосовали идейно верным способом ещё и пишут в основном так же идейно верно, (что хорошо видно по форуму).... тот же std::string ну очень популярен. Да, меньше получается. Даже на очень простом коде. Если же взять функцию где идёт активная работа с динамическими объектами, там вообще глаза на этих unique/shared сломаешь.
Re[13]: очень сильный C++
От: Alexéy Sudachén Чили  
Дата: 31.08.12 22:08
Оценка: -1 :))
AS>>Ну, как минимум на С++ нужно будет разруливать RAII с буфером и обьектом.
P>как-то "разруливать RAII" звучит не убедительно на фоне возюконья вручную с vtable, поддержки стэка в tls и всего прочего.

Ну, это вообще-то и не vtable. Как нить напишу статью как это всё работает. Пока очевидно что есть фреймворк, он как-то там написан. С его помощью можно писать простой и понятный код на старом добром С без подкладывания на каждом шагу соломки.

Вот собственно и всё. Так же очевидно, что так любимый всеми последователями религии двух плюсов 'закат солнца в ручную имени С' нигде в целевом коде не делается.

AS>>Или делать объект хеша автоматическим, но буфер всёравно надо будет как-то гардить.

P>Что конкретно ты имеешь ввиду? какой буфер гародить?

Забудь. Я знаю что ты фанат С++. Ты знаешь что мне покласть на догматы. Давай не будем засорять форум бессмысленным боданием? Чего ты собственно хочешь добится? Убедить меня что С++ весь такой классный? Блин, я на нём 20-лет колбашу, а экстазы от александреску-стайл меня отпустили ещё в начале века. Убедить меня что на С жизни нет? Ну это просто не так. Обосрать то что я делаю.... ну разве что. Если это доставляет тебе удовольствие — ради бога, но только не удивляйся если я не буду тебе отвечать. Ок?
Re[15]: очень сильный C++
От: Alexéy Sudachén Чили  
Дата: 31.08.12 23:49
Оценка: -2 :)
AS>>Угу, я сам не слышал. Мне сосед напел ) А уж голос у соседа....
Т>Ну дык расскажи сам коли что не так напето. От кутюр, тысызыть.

Бывает иногда такое желание.... но как почитаю форум — сразу проходит. Ну вот честно, оно вам надо? Мне тем более.
Re[3]: очень сильный C++
От: Sharowarsheg  
Дата: 28.08.12 17:38
Оценка: 9 (1) :)
Здравствуйте, Alexéy Sudachén, Вы писали:


A>>если вы знаете, понимаете и применяете modern C++ style, то у вас "сильный С++".

A>>если вы не понимаете зачем нужна та или иная фича С++ и как ее использовать — у вас слабый С++

AS>Однако, что же тогда есть ОЧЕНЬ сильный С++?


это когда ты всё знаешь, всё умеешь, но не пользуешься этим ничем, а пишешь на шарпе.
Re[2]: очень сильный C++
От: denisko http://sdeniskos.blogspot.com/
Дата: 28.08.12 12:10
Оценка: :))
Здравствуйте, denisko, Вы писали:

Гадский форматтер, убил всю шутку, читать надо так.

D>______________ +

D>______________ +
D>Cильный с++=(_)
D>Слабый с++ = _
D>_____________ ( )
D>______________+
D>______________+
D>Среднестатистический — с++
D>Длинный с++ = с++++++++++++++++++
D>А вообще это просто грязнячество отдельно взятого рекрутера.
<Подпись удалена модератором>
Re[3]: очень сильный C++
От: Abyx Россия  
Дата: 28.08.12 13:02
Оценка: +2
Здравствуйте, Alexéy Sudachén, Вы писали:

A>>если вы знаете, понимаете и применяете modern C++ style, то у вас "сильный С++".

A>>если вы не понимаете зачем нужна та или иная фича С++ и как ее использовать — у вас слабый С++

AS>Интересная точка зрения. Я как-то считал что если человек умеет пользоваться плюсами, то moder style для него лишь один из способов писать код.


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

также и с С++ — вы можете печатать буквы, цифры и скобки — но это не значит что вы можете писать хороший код на С++.
вы можете писать C-style кол, и называть это "С++" — но это не С++.

С++ очень большой, и в зависимости от того на сколько вы его знаете — у вас либо "слабый С++", либо "сильный С++", либо "очень сильный С++".
мало кто может сказать что он знает "весь С++", и мало кто умеет пользоваться всем С++. отсюда и градации.
In Zen We Trust
Re[6]: очень сильный C++
От: Alexéy Sudachén Чили  
Дата: 28.08.12 15:04
Оценка: -2
AS>>Способность реализовать на нём любую свою идею. Что же тут непонятного. Точно так же как умение пользоваться роялем, это способность сыграть именно то что хочешь, а не то что получается. И не надо тут философию разводить, всё предельно просто.
D>Код не только пишется, но и читается. "Реализовать любую свою идею" я с помощью гугла и такой то матери могу на десятке языков, а знаю на самом деле только один.

Хм, ну как бы метод search>copy>paste — это несколько другой метод. Хотя многие C++ программеры на самом деле им и пользуются, просто search у них заменён на прочесть от эту попсовую книжку. Ну что нить типа ещё 101 рецепт правильного написания кода.

D>Для английского есть куча градаций владения от "думаю со словарем" до "удобнее материться на нем", чем ++ хуже.


Для любого языка есть только одна градация владения. Остальное это виртуальные фенички придуманные для зарабатывания денег и/или конвееризации процесса дрессировки. Владение языком определяется лишь тем можешь ли ты полностью понять собеседника и выразить все свои мысли понятно и без ошибок, либо нет. Чем ++ хуже?

D>Ну вероятность увидеть грабли и не наступить на них -- степень владения ++, если выше 99% считай, что у тебя не с++ а зверъ.


От только чем сильнее у тебя развит такой навык, тем фиговее становится писать код. Грабли то оказываются везде )))
Re[4]: очень сильный C++
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 29.08.12 13:50
Оценка: +1 -1
Здравствуйте, Vzhyk, Вы писали:

V>так, как нужно. А вот укушенные Александреску чаще пишут не то, что нужно.

Просто это сильный С++, но слабое мышление. Нужно чётко понимать какие задачи решает подход Александреску, а какие нет.
Sic luceat lux!
Re[5]: очень сильный C++
От: Alexéy Sudachén Чили  
Дата: 31.08.12 17:11
Оценка: -1 :)
AS>>Таки Ци даже у просто хорошего специалиста по двум плюсам получается должен быть просто эпической силы.
Т>А на практике С++снику plain С трогать очень не хочется, ибо колво ручной работы вырастает в разы.

Это лишь от неумения его 'трогать'. Вот сколько, к примеру, есть книжек по тому как писать на С? Не про синтаксис и стандартную библиотеку, а именно о том как писать?! Писать то надо по другому. А уж как в массе своей колбасит плюсовиков от языков с полной динамикой.... а вроде и ручной работы совсем нет. Такие вот пироги с котятами. )
Re[6]: очень сильный C++
От: Трололоша  
Дата: 31.08.12 19:50
Оценка: +2
Здравствуйте, Alexey Sudachen, Вы писали:

AS>>>Таки Ци даже у просто хорошего специалиста по двум плюсам получается должен быть просто эпической силы.

Т>>А на практике С++снику plain С трогать очень не хочется, ибо колво ручной работы вырастает в разы.

AS>Это лишь от неумения его 'трогать'.

AS>Писать то надо по другому.
Писать надо больше, писать надо многое вручную каждый раз. Автоматизации минимум.
... << RSDN@Home >>
Да, йа зелёный тролль!
Re[8]: очень сильный C++
От: Piko  
Дата: 31.08.12 20:15
Оценка: +1 :)
Здравствуйте, Alexéy Sudachén, Вы писали:


AS>>>Это лишь от неумения его 'трогать'.

AS>>>Писать то надо по другому.
Т>>Писать надо больше, писать надо многое вручную каждый раз. Автоматизации минимум.

AS>Вот на практике оказалось, что несмотря на то что кое-что в плюсах генерируется автоматом, писать таки на С нужно меньше ) Можешь мне конечно не верить, но вот так вот получается.


это с онанизмом или без?
http://www.rsdn.ru/poll/3561.aspx
Автор: Piko
Дата: 13.05.12
Вопрос: Является ли приведённый ниже фрагмент кода синтаксическим онанизмом?
[ccode]
#define __Auto_Release \
switch ( 0 ) \
if ( 0 ); else \
while ( 1 ) \
if ( 1 ) \
{ \
int YOYO_LOCAL_ID(Mark); \
Yo_Unwind_Scope(0,0,&YOYO_LOCAL_ID(Mark)); \
break; \
case 0: Yo_Pool_Ptr(&YOYO_LOCAL_ID(Mark),Yo_Pool_Marker_Tag); \
goto YOYO_LOCAL_ID(Body);\
} \
else \
YOYO_LOCAL_ID(Body):
[/ccode]
Пример использования:
[ccode]
__Auto_Release
{
YOYO_BUFFER *bf = 0;
bf = Oj_Read_All(Cfile_Open(fname,"r"));
/* ... do some buffer processing */
Oj_Write_Full(Cfile_Open(Str_Concat(fname,".1"),"w+"),bf->at,bf->count);
}
[/ccode]
Re[5]: очень сильный C++
От: Трололоша  
Дата: 31.08.12 23:27
Оценка: +2
Здравствуйте, Alexey Sudachen, Вы писали:

AS>>>Вот кстати интересный момент. Я сейчас свои проекты в основном пишу на С и о граблях даже не задумываюсь! Собственно вопрос техники программирования и библиотеки примитивов. Та техника, что я создал, позволяет мне писать даже с меньшим напрягом чем на С++.

ОК>>Что можешь сказать о поддерживаемости кода с использованием техники что ты создал другими программистами?

AS>А что там поддерживать. Автопул, он и есть автопул. Если С++ головного мозга не сильно обострён, то всё очень просто и естественно.

В С++ тебе вообще не надо этим заморачиваться. Компилятор вызовет деструкторы по выходу из scope сам. Причём сделает это сразу, а не когда ты воткнёшь свой release макрос.
Далее, С++ развёртка scope не требует дополнительной памяти в рантайме.
В общем то, что ты изобрёл себе эдакий навороченный хелпер — молодец. Но вызывает недоумение ради чего ты так изгалялся.
... << RSDN@Home >>
Да, йа зелёный тролль!
Re[26]: очень сильный C++
От: Piko  
Дата: 02.09.12 20:21
Оценка: +2
Здравствуйте, Alexéy Sudachén, Вы писали:

P>>эта переменная определяется в каждом файле, и имеет internal linkage — и поэтому вроде не отличается семантически от твоего решения.

P>>в котором кстати идентификаторы тоже могут совпасть:

AS>Э... какие идентификаторы? Подробнее пожалуйста.


в смысле адрес стэковой переменной, ну ты понял
int YOYO_LOCAL_ID(ar_Mark); \


P>>при return внутри, не освобождённые ресурсы будут накапливаться (адрес в стэке может совпадать)

AS>Вообще-то код с тяжёлыми вычислениями (работай с памятью) пишется как while () __Auto_Release, ну да не важно.

да, этот костыль первый который пришёл на ум.

AS>Но таки да может.


грабли обыкновенные

AS>Однако это вопрос применения техники, на верхнем уровне обычно есть коллектор. То есть футпринт будет больше, но память всё равно будет собрана.


ну супер. можно вообще не парится с этим auto_release, память при выходе из программы всё равно освободится

А если серьёзно, вот теперь представь что есть не память, а ресурс, файл например или ещё веселей thread lock, и он при такой утечке не освободится перед следующем использованием.

Да, можно в функции выше поставить костылик в виде
while () __Auto_Release

но это означает, что появляется излишняя логическая зависимость между функциями — нужно знать когда ставить этот костыль, то есть помнить какие функции используют ресурсы (кроме памяти), а какие нет — и тут появляется транзитивность.
Стоит тебе в одной малюсенькой функции внизу call-stack'а добавить один маленький ресурс, и БАХ все функции на пути от этого ресурса, до ближайшего костыля __Auto_Release становятся сами владельцами ресурса. То есть проверять нужно все эти пути при малейшем добавлении ЛОКАЛЬНОГО ресурса в мелкую функцию

P>>TLS тебе нужен в случаях использования __Auto_Release поэтому большой разницы в количестве раз его использования при __Auto_Release я не вижу.

AS>Дело то не в этом, дело в том что идея при реализации может оказаться слишком громоздкой. Ты вот реально думаешь, что я вариант с for не рассматривал?! Даже если просто предположить что я до этого не додумался, те примеры кода (привёл выше), что я изучал до того как писать своё решение, как бы говорят что сие просто не возможно было пропустить.
AS>И вот тут ты приходишь и говоришь, а почему бы не сделать проще.... ну дык сделай работающий вариант. Не забудь ещё обработку исключений, авто-снятие блокировок ... и мы сравним у кого получилось проще.

ахренеть,

P>>>>>кстати, на счёт этого макроса — а разве нельзя его было сделать через for?


Почему бы сразу было не ответить, а?
Re[9]: очень сильный C++
От: Alexéy Sudachén Чили  
Дата: 31.08.12 09:58
Оценка: 12 (1)
AS>>Взглядом со стороны, естественно. ИМХО, это как бы очевидно. Нет?
EOH>Вот посмотрел программист со стороны на шаблоны С++. Понял насколько они ограничены, неудобны и кривы. Что после этого изменится в коде, который он пишет?

Он будет писать его иначе.

Ассемблер, Java, Lisp — это как бы наиболее чистые и популярные проявления того что вобрал в себя С++ расширяя C. Не сами эти языки естественно но часть того что есть их суть. Если иметь представление только о суррогате представляемом в рамках C++, то можно не увидеть не только рада возможностей, но и не научится различать особо коварные грабли.

Даже просто уверенное владение каким угодно языком полностью динамической природы, не только взрывает мозг типичного плюсового программера, но и кардинально меняет взгляд на привычные стереотипы C++. Широкий же спектр оригинальных концепций в их наиболее чистом виде позволяет вдеть множество незаметных в рамках привычных стереотипов граблей. А как мы уже выяснили, многие здесь согласны с тем что С++ — это в первую очередь грабли. И главный навык — умение их предсказывать, видеть и обходить.
Re: очень сильный C++
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 28.08.12 12:02
Оценка: +1
Здравствуйте, Alexéy Sudachén, Вы писали:

AS>У видел тут сабж в одном из топиков, в списке требований к соискателю.


AS>Я вот о чём подумал. Не разу я не видел требования 'очень сильная JAVA' или 'очень сильный Python'. Да что там, даже 'Очень сильный C' мне не разу не встречался. А вот С++ он очевидно бывает слабым, сильным и очень сильным, потому как встречаю я такое уже не в первый раз.


AS>Вот непонятки у меня как бы, а как собственно измеряется эта сила Ци отдельно взятого индивидуума и где заканчивается слабый, каков он сильный, и чем так примечателен ОЧЕНЬ сильный. Как бы в бытность свою интервьювером силой Ци не интересовался, всё больше тем как это Ци на дело употребляется, потому и в непонятках.

Если ты легко разбираешься в boost-вом фениксе и умеешь делать визитёр уровня Александреску, то у тебя сильный С++.
Sic luceat lux!
Re: очень сильный C++
От: denisko http://sdeniskos.blogspot.com/
Дата: 28.08.12 12:07
Оценка: :)
Здравствуйте, Alexéy Sudachén, Вы писали:

AS>У видел тут сабж в одном из топиков, в списке требований к соискателю.


AS>Я вот о чём подумал. Не разу я не видел требования 'очень сильная JAVA' или 'очень сильный Python'. Да что там, даже 'Очень сильный C' мне не разу не встречался. А вот С++ он очевидно бывает слабым, сильным и очень сильным, потому как встречаю я такое уже не в первый раз.


+
+
Cильный с++ =(_)
Слабый с++ = _
( )
+
+
Среднестатистический — с++
Длинный с++ = с++++++++++++++++++
А вообще это просто грязнячество отдельно взятого рекрутера.
<Подпись удалена модератором>
Re[2]: очень сильный C++
От: Alexéy Sudachén Чили  
Дата: 28.08.12 12:31
Оценка: -1
AS>>Я вот о чём подумал. Не разу я не видел требования 'очень сильная JAVA' или 'очень сильный Python'. Да что там, даже 'Очень сильный C' мне не разу не встречался. А вот С++ он очевидно бывает слабым, сильным и очень сильным, потому как встречаю я такое уже не в первый раз.
зиг>сильная джава тоже встречается. Что-то типа strong core java — это именно оно.

О боже! И что в чистой Жабе то считается сильным?! Знание спеки JVM и умение заточить зверушку под конкретную задачу?
Re[3]: очень сильный C++
От: pik Италия  
Дата: 28.08.12 12:36
Оценка: +1
Здравствуйте, Alexéy Sudachén, Вы писали:


AS>Ну это то понятно, не понятно только какое это всё имеет отношение к Ци и его силе?


прямое, об осталъных приставка "силъный" пер дефаулт не катит, это аксиома
Re: очень сильный C++
От: Eye of Hell Россия eyeofhell.habr.ru
Дата: 28.08.12 13:31
Оценка: +1
AS>Вот непонятки у меня как бы, а как собственно измеряется эта сила Ци отдельно взятого индивидуума и где заканчивается слабый, каков он сильный, и чем так примечателен ОЧЕНЬ сильный. Как бы в бытность свою интервьювером силой Ци не интересовался, всё больше тем как это Ци на дело употребляется, потому и в непонятках.

Можно поспекулировать, что они хотят знания стандарта наизусть и беглое чтение исходников буста. Если это не "ну мы просто так написали", то можно предположить что у них много легаси кода, написанного в усложненном стиле — с бесконечным количеством наследования, абстрактных классов, завязками на конкретные имплементации компилятора с линкером, активного использования шаблонов, буста и stl. И написавший все это архитектор уволился. Теперь нужно поддерживать .
Re[9]: очень сильный C++
От: Vzhyk  
Дата: 28.08.12 16:13
Оценка: -1
28.08.2012 19:04, Abyx пишет:

> нет конечно, это просто одно из условий.

А какие еще условия для этого нужны?
Posted via RSDN NNTP Server 2.1 beta
Re: очень сильный C++
От: BurningInside Россия  
Дата: 28.08.12 17:34
Оценка: +1
Здравствуйте, Alexéy Sudachén, Вы писали:

AS>У видел тут сабж в одном из топиков, в списке требований к соискателю.


AS>Я вот о чём подумал. Не разу я не видел требования 'очень сильная JAVA' или 'очень сильный Python'. Да что там, даже 'Очень сильный C' мне не разу не встречался. А вот С++ он очевидно бывает слабым, сильным и очень сильным, потому как встречаю я такое уже не в первый раз.


AS>Вот непонятки у меня как бы, а как собственно измеряется эта сила Ци отдельно взятого индивидуума и где заканчивается слабый, каков он сильный, и чем так примечателен ОЧЕНЬ сильный. Как бы в бытность свою интервьювером силой Ци не интересовался, всё больше тем как это Ци на дело употребляется, потому и в непонятках.


Это из той же области, что и умение разбираться в чужом коде
Re[8]: очень сильный C++
От: trophim Россия  
Дата: 28.08.12 19:29
Оценка: +1
Здравствуйте, denisko, Вы писали:

AS>>От только чем сильнее у тебя развит такой навык, тем фиговее становится писать код. Грабли то оказываются везде )))

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

Следующая ступеннь — хлопок одной ладонью.
... << RSDN@Home 1.2.0 alpha 5 rev. 43>>
Let it be! — Давайте есть пчелу!
Re[8]: очень сильный C++
От: Alexéy Sudachén Чили  
Дата: 28.08.12 19:44
Оценка: -1
AS>>Хм, ну как бы метод search>copy>paste — это несколько другой метод.
D>Могу ли решить любую, пришедшую мне на ум задачу, на нем? Да. Могу ли я решить часть задач на нем быстрее чем на ++. Да? Большой и сильный у меня питон? Нет, я его практически не знаю.

Любую не сможешь, сможешь лишь те затык в которых можно обнаружить в гугле. Так что хоть питон у тебя и хилый, навык гугления просто восхитительный.

Проблема в том что и для многих C++ разработчиков 'cильный C++' — есть сильный навык автоматического повторения прочитанного в книге 101-го рецепта. ))) И работает только в типовых задачах. В этом плане их сильный Ци ничем не сильнее твоего дохлого питона.

Я там выше по топику уже говорил, что владение роялем это возможность сыграть то что хочешь, а не то что получается.

AS>> Владение языком определяется лишь тем можешь ли ты полностью понять собеседника и выразить все свои мысли понятно и без ошибок, либо нет. Чем ++ хуже?

D>Твое мнение, на мой взгляд, в корне неправильное ибо вводит зависимость от собеседника. На английском, например, реднек и белоручка из гарварда могут вообще друг друга понимать через слово, если вообще понимать. По-твоему, они оба не владеют языком?

Если даже они говорят об одном и том же? Например о бейсболе? ))) Но в реальности, они скорее всего говорят даже не о разных вещах, но и на разных языках. С разным словарём и разными грамматическими правилами. Что будешь спорить?
Re: очень сильный C++
От: _stun_ Россия  
Дата: 29.08.12 07:57
Оценка: :)
Здравствуйте, Alexéy Sudachén, Вы писали:

AS>как собственно измеряется эта сила Ци отдельно взятого индивидуума


Ну, во-первых, Ци++, а не Ци

AS> заканчивается слабый, каков он сильный, и чем так примечателен ОЧЕНЬ сильный.


Ну, на собеседовании либо тореадор убьет быка, либо бык тореадора. Очень сильный бык убьет нескольких тореадоров.
Re[3]: очень сильный C++
От: _stun_ Россия  
Дата: 29.08.12 11:27
Оценка: +1
Здравствуйте, Alexéy Sudachén, Вы писали:

AS>Чёт я не понял, сила Ци — понятие относительное? )


Ну естественно. И, кстати, как и в физике, приложение силы еще не гарантирует совершение работы
Re[2]: очень сильный C++
От: Олег К.  
Дата: 30.08.12 05:29
Оценка: :)
J>слабый — без ревью выпускать нельзя, много ошибок, без гугла писать не может. ака юниор.
J>сильный — может ревьюить слабых, код ошибок практически не содержит. ака синьор.
J>очень сильный — у Гугла, кажется, когда подаешь на вакансию программера, просят оценить свой уровень владения языком от 1 до 10, где 1 — "знаю синтаксис", а 10 — "написал книгу по сабжу" — вот это, наверное, оно.

J>Как вариант, в прикладном наёмном смысле — сильнее всех в группе, включая интервьюера


Все намного проще. Сильный это если пишет и желает писать в стиле "меня Александреску в полнолуние укусил." Если же нет, то слабак.
Re[2]: очень сильный C++
От: Alexéy Sudachén Чили  
Дата: 31.08.12 07:08
Оценка: -1
O>Например, при разработке какой-нибудь кросс-платформенной библиотеки общего назначения нужен спец,
O>который взглянет на кусок кода и скажет: "это не будет работать под GCC младше такой-то версии,
O>ибо...", — и расскажет, что такой-то пункт стандарта по-разному и вот так-то реализован
O>компиляторами, и нужно писать вот такой-то workaround.

У кого как конечно, но на моей практике знание стандарта вещь близкая к ненужной. Для создания общей картины языка стандарт бесполезен, знание тонкостей используемых компиляторов не отменяет, гарантии что написанный в соответствии со стандартом код вообще будет работать — не даёт. Умение же послать всех на пункт стандарта, конечно интересно само по себе, но с точки зрения разработки софта — бесполезно. Стандарт это просто справочник сложных случаев и руководство для компиляторо-строителей. И не более того.

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

O>Если абстрактно, то сильный С++ — это, в моем понимании:

O>1. Владение полным спектром языковых средств.
O>2. Знание "граблей", провоцирующихся пунктом 1 и вытекающих как его логическое следствие:
O>"знаю, но использую с осторожностью, только там, где надо, либо не использую вовсе".
O>3. Умение сохранить простоту и ясность кода при любых коллизиях пунктов 1 и 2.

В моём понимании это обязательные требования. Собственно С++ программер — безусловно человек знающий где лежит основная масса граблей и как по ним правильно ходить. Иначе взявший в руки плюсомёт Ци не только бесполезен, но и местами даже вреден. О чём я и говорю, есть только одна градация. Остальные выдуманы для хрюш и собственного ЧСВ. Можно конечно строить градацию по количеству известных граблей )))) Ну там условно говоря 0-90% — хочу быть C++ программером, 90% — программер, 95% мастер программер, 98% джедай программер, 100% — товарищ Саттер, снимите маску! В пересчёте на то же бренч, бал < 4 — это стопроцентно всего лишь 'хочу быть'.

Потому то и невозможно стать C++ программером прочитав несколько книжек. Для этого нужно отпахать не меньше пяти лет в реальных проектах и написать тонну кода.
Re[10]: очень сильный C++
От: Олег К.  
Дата: 31.08.12 22:45
Оценка: +1
AS>Смешно, да. Сколько из них пишут на С?

Ну я пишу время от времени и люблю этот язык не меньше плюсов.

AS>С другой стороны, вот функция которую я пишу сейчас, укажи мне где тут это самое.

AS>
AS>int Idnty_Of(YO_XNODE *Q, char *email, char *first, char *last)
AS>  {
AS>    char *hex;
AS>    int i = 0;
AS>    YO_XNODE *q;
AS>    YO_MD5 *md5 = Md5_Init();
    
AS>    email = Str_Utf8_Lower(email);
AS>    first = Str_Utf8_Upper(first);
AS>    last  = Str_Utf8_Upper(last);
    
AS>    Md5_Update(md5,email,strlen(email));
AS>    Md5_Update(md5,first,strlen(first));
AS>    Md5_Update(md5,last,strlen(last));
AS>    hex = Str_Hex_Encode(Md5_Finish(md5,0),16);
  
AS>    q = Xnode_Down_If(Q,"idnty");
AS>    if ( q ) 
AS>      {
AS>        __Raise_If( Xnode_Value_Get_Int(q,"no",-1) != i, "identity index is broken" );
AS>        if ( !strcmp( hex, Xnode_Value_Get_Str(q,"@","") ) )
AS>          {
AS>            return i;
AS>          }
AS>        ++i;
AS>        q = Xnode_Next_If(q,"idnty");
AS>      }
    
AS>    q = Xnode_Append(Q,"idnty");
AS>    Xnode_Value_Set_Str(q,"email",email);
AS>    Xnode_Value_Set_Str(q,"first",first);
AS>    Xnode_Value_Set_Str(q,"last",last);
AS>    Xnode_Value_Set_Str(q,"@",hex);
AS>    Xnode_Value_Set_Int(q,"no",i);
    
AS>    return i;    
AS>  }
AS>


Что-то я не догоняю что здесь происходит.

YO_MD5 *md5 = Md5_Init();

Как создается объект YO_MD5? Если на хипе, то где он удаляется и в какой момент? Показывай код Md5_Init().

email = Str_Utf8_Lower(email);
first = Str_Utf8_Upper(first);
last  = Str_Utf8_Upper(last);

Что делает Str_Utf8_Lower()? Она создает новый буфер или перезаписывает существующий?

Если создает новый, то где он удаляется и в какой момент? Если же перезаписывает существующий, то что будет если в нее передать string literal, к примеру?

Аналогично строка hex = Str_Hex_Encode(Md5_Finish(md5,0),16);
Тут возвращается указатель на статическую память или что? Если статическая память, то что там на счет многопоточности? Если на хипе, то где она удаляется и когда?

AS>Если что, здесь нет ни одной утечки, всё почистится автоматом.


Всего кода не видел. Поэтому скажу "возможно" но сразу же возникает вопрос. В какой момент это "все" почистится?

AS>Вот только никаких извратов со смартами здесь нет. Удивительно, да? Ну, блин, попробуй хоть раз подумать за пределами коробки в которую себя запер, ага?
Re[14]: очень сильный C++
От: Piko  
Дата: 31.08.12 23:14
Оценка: +1
Здравствуйте, Piko, Вы писали:

P>только там там это называется Yo_Unwind_Scope и Yo_Push_Scope (код гуглится по этим названиям)

P>
P>  #define __Auto_Release \
P>  switch ( 0 ) while ( 1 ) \
P>    if ( 1 ) \
P>      { \
P>        Yo_Unwind_Scope(0,0,0); \
P>        break; \
P>      case 0: Yo_Push_Scope(); \
P>        goto YOYO_LOCAL_ID(ar_Body);\
P>      } \
P>    else \
P>      YOYO_LOCAL_ID(ar_Body):

P>

P>этот макрос даёт возможность писать:

P>
P>__Auto_Release
P>{

P>}
P>


P>кстати, на счёт этого макроса — а разве нельзя его было сделать через for?


вроде намного проще:

http://ideone.com/4cSQN
#include <stdio.h>
 
int push(void)
{
        printf("push\n");
        return 1;
}
 
void pop(int *x)
{
        printf("pop\n");
        *x=0;
}
 
#define MACRO_RAII for(int temp_var=push();temp_var==1;pop(&temp_var))
 
int main(void)
{
        MACRO_RAII
        {
                printf("LOL\n");
        }       
        return 0;
}
Re[19]: очень сильный C++
От: Piko  
Дата: 31.08.12 23:24
Оценка: +1
Здравствуйте, Alexéy Sudachén, Вы писали:

AS>>>>>А ты сделай.

P>>>>см выше
AS>>>Круто. Только это С.
P>>http://ideone.com/4cSQN
P>>"C99 strict (gcc-4.3.4)"
AS>И чего. Мисье теоретик?

там по ссылке, вывод есть:
push
LOL
pop


или C99 strict, он не strict?

что конкретно смущает?
Re[14]: очень сильный C++
От: Олег К.  
Дата: 31.08.12 23:27
Оценка: +1
ОК>>Жесть!

AS>Угу, я сам не слышал. Мне сосед напел ) А уж голос у соседа....


У меня своя голова на плечах и мне такое даже в страшном сне не смогло бы прийти в голову.
Re[15]: очень сильный C++
От: Alexéy Sudachén Чили  
Дата: 31.08.12 23:35
Оценка: -1
AS>>Ну, это вообще-то и не vtable. Как нить напишу статью как это всё работает. Пока очевидно что есть фреймворк, он как-то там написан. С его помощью можно писать простой и понятный код на старом добром С без подкладывания на каждом шагу соломки.
Т>Ты по сути написал рантайм эмуляцию вызовов деструкторов, что С++ компилер делает в компилтайме.

Нет. В мире похоже существует только C++. Всё что можно хоть как-то притянуть в модель уютного плюсового мирка — калька с плюсов. Однако!

AS>>Вот собственно и всё. Так же очевидно, что так любимый всеми последователями религии двух плюсов 'закат солнца в ручную имени С' нигде в целевом коде не делается.

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

__Auto_Release { всё созданное в этом блоке будет разрушено }
__Auto_Release всё в созданное на пуле в этой строке кода будет разрушено
__Auto_Ptr(p) { всё кроме p созданное в пуле в этом блоке будет разрушено }

AS>>>>Или делать объект хеша автоматическим, но буфер всёравно надо будет как-то гардить.

P>>>Что конкретно ты имеешь ввиду? какой буфер гародить?
AS>>Забудь.
Т>Нет уж, сделал заявление — будь добр объяснить что ты имеешь в виду. А то как то уж больно непонятно ты выражаешься когда дело доходит до С++ конструкций.

Пипец. Ну вы блин как дети. Это хеш. Он должен куда-то зафиналайзить свои вчисления. То есть либо ему должны передать буфер либо он его вернуть. Кто хендлит буфер? Такой примитив нужно обьяснять?! Или просто прицепиться к чему нить очень хочется? Ну давайте засрём ещё одну тему бессмысленным боданием. Это же только улучшит КЫВТ и неимоверно поднимет его в глазах всех как безусловно лучший проф ресурс.

AS>>Я знаю что ты фанат С++. Ты знаешь что мне покласть на догматы.

Т>Это гнилые отмазки и слив.

Туалет дальше коридору.
Re[17]: очень сильный C++
От: Alexéy Sudachén Чили  
Дата: 31.08.12 23:45
Оценка: :)
P>rvo, nrvo, или move на худой конец, не?

И ты узнаешь как глубока кроличья нора. Да именно так. RVO и т.д. Вместо простого указателя.
Re[8]: очень сильный C++
От: Олег К.  
Дата: 31.08.12 23:49
Оценка: +1
AS>>>>А что там поддерживать. Автопул, он и есть автопул. Если С++ головного мозга не сильно обострён, то всё очень просто и естественно.
Т>>>В С++ тебе вообще не надо этим заморачиваться. Компилятор вызовет деструкторы по выходу из scope сам. Причём сделает это сразу, а не когда ты воткнёшь свой release макрос.
ОК>>Который он еще и может забыть...

AS>Для этого в С++ вообще-то надо смарты не забывать и не встать на грабли когда они хитро будут интерферировать. А так да, само по себе. Чистая магия однако.


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

ОК>>А это как любители Александреску, только все делается в рамках языка Си (и скорее всего нестандартных функций).


AS>Нестандартных это каких?


что ты там наворотил и желания разбираться нету. Хочешь сказать что ты сделал все на чистом ANSI C?
Re[8]: очень сильный C++
От: Piko  
Дата: 01.09.12 00:07
Оценка: +1
Здравствуйте, Alexéy Sudachén, Вы писали:

AS>Для этого в С++ вообще-то надо смарты не забывать и не встать на грабли когда они хитро будут интерферировать.


что будет, если сохранить где-нибудь выше по callstack'у (либо вернуть) такой autopooled указатель?
Re[16]: очень сильный C++
От: Трололоша  
Дата: 01.09.12 03:29
Оценка: +1
Здравствуйте, Alexey Sudachen, Вы писали:

AS>Бывает иногда такое желание.... но как почитаю форум — сразу проходит.

Не надо лукавить. Оно у тебя "проходит" как толька появляются неудобные вопросы.

AS> Ну вот честно, оно вам надо?

Надо. Раз спрашиваем — значит надо.

AS>Мне тем более.

Значит и тебе тем более надо
... << RSDN@Home >>
Да, йа зелёный тролль!
Re[16]: очень сильный C++
От: Трололоша  
Дата: 01.09.12 03:29
Оценка: +1
Здравствуйте, Alexey Sudachen, Вы писали:

AS>В мире похоже существует только C++. Всё что можно хоть как-то притянуть в модель уютного плюсового мирка — калька с плюсов. Однако!

Переведи на русский, плз. Я что то не понял что ты хотел сказать.

AS>__Auto_Release { всё созданное в этом блоке будет разрушено }

AS>__Auto_Release всё в созданное на пуле в этой строке кода будет разрушено
AS>__Auto_Ptr(p) { всё кроме p созданное в пуле в этом блоке будет разрушено }
Т.е. вручную таки надо будет scope задавать, помимо языкового scope.

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

AS>Пипец. Ну вы блин как дети.
Мы тролли. У меня даже дисклеймер есть!

AS>Кто хендлит буфер?

Владеет им, ты имел в виду?
Кто угодно, зависит от того как ты используешь и что тебе с ним делать надо. У меня в ситуации с хэшами обычно на стеке лежит вот такое:
SecureBuffer<BYTE, SHA512::HashSize> hash;
Это библиотечный класс криптолибы который ведёт себя как обычный массив фиксированного размера, но noncopyable и затирает свой буфер в деструкторе.
Вот он владеет буфером. Хэндлит если по твоему.
Вообще в случае с хэшами — размер буфера там фиксированный и известен на этапе компиляции.

AS>>>Я знаю что ты фанат С++. Ты знаешь что мне покласть на догматы.

Т>>Это гнилые отмазки и слив.
AS>Туалет дальше коридору.
А ты, опытный! (тм)
... << RSDN@Home >>
Да, йа зелёный тролль!
Re[18]: очень сильный C++
От: Трололоша  
Дата: 02.09.12 18:28
Оценка: +1
Здравствуйте, Alexey Sudachen, Вы писали:

Т>>Т.е. вручную таки надо будет scope задавать, помимо языкового scope.

AS>Ну я так понимаю здесь ты scope в ручную не задаёшь да?
Т>>SecureBuffer<BYTE, SHA512::HashSize> hash;

точно так же как я тут "задаю" scope для переменной i.

void foo ()
{
 bar ();
 
 if (foofoo ())
 {
  int i;
    
    foobar ();
 }
}
... << RSDN@Home >>
Да, йа зелёный тролль!
Re[3]: очень сильный C++
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 02.09.12 22:55
Оценка: +1
Здравствуйте, Alexéy Sudachén, Вы писали:

AS>Вот кстати интересный момент. Я сейчас свои проекты в основном пишу на С и о граблях даже не задумываюсь! Собственно вопрос техники программирования и библиотеки примитивов. Та техника, что я создал, позволяет мне писать даже с меньшим напрягом чем на С++.


Ты к граблям привык просто и умеешь мастерски их обходить. Мне они на C++ тоже ни малейшего дискомфорта не доставляют, так как обходятся на автомате уже. А так, да, Си позволяет писать куда более простой код, но то что в нем нет шаблонов, лично для меня сильно понижает ценность языка.
Re[29]: очень сильный C++
От: Eugeny__ Украина  
Дата: 03.09.12 20:17
Оценка: +1
Здравствуйте, Piko, Вы писали:

P>дык, так мне всегда их было жалко, и в Java и в C# есть эта проблема с ресурсами (где-то тут я недавно это уже говорил), там и понапридумывали эти try-with-resources, using, или что там ещё

P>"обычный" программер на Java, если не знает об RAII может и не задумываться об этом, да и часто вообще не задумывается от exception-safety


Знать жабопрограммеру об RAII, в общем случае, незачем. Там достаточно помнить о том, чтобы освобождать внешние ресурсы. Для всех остальных(память) exception safety работает автоматически.
То, что некоторые, занимаясь написанием не особо нагруженных приложений, оставляют заботу о закрытии тех же файлов на GC, это плохо, конечно. Хотя для многих задач работает вполне корректно.
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
очень сильный C++
От: Alexéy Sudachén Чили  
Дата: 28.08.12 11:47
Оценка:
У видел тут сабж в одном из топиков, в списке требований к соискателю.

Я вот о чём подумал. Не разу я не видел требования 'очень сильная JAVA' или 'очень сильный Python'. Да что там, даже 'Очень сильный C' мне не разу не встречался. А вот С++ он очевидно бывает слабым, сильным и очень сильным, потому как встречаю я такое уже не в первый раз.

Вот непонятки у меня как бы, а как собственно измеряется эта сила Ци отдельно взятого индивидуума и где заканчивается слабый, каков он сильный, и чем так примечателен ОЧЕНЬ сильный. Как бы в бытность свою интервьювером силой Ци не интересовался, всё больше тем как это Ци на дело употребляется, потому и в непонятках.
Re: очень сильный C++
От: pik Италия  
Дата: 28.08.12 12:01
Оценка:
Здравствуйте, Alexéy Sudachén, Вы писали:

AS>У видел тут сабж в одном из топиков, в списке требований к соискателю.


AS>Я вот о чём подумал. Не разу я не видел требования 'очень сильная JAVA' или 'очень сильный Python'. Да что там, даже 'Очень сильный C' мне не разу не встречался. А вот С++ он очевидно бывает слабым, сильным и очень сильным, потому как встречаю я такое уже не в первый раз.



скорее всего опыт имеется ввиду, знание библиотек как boost, std, способность мыслить как инженер а не как простой исполнителъ, знание+опыт в программировании близком к hardware, многопоточное ну пр. вообщем опыт и углублённость
знаний, зачастую да именно работа в VS и его абсолютное владение на 100%, опыт работы в болъших тимах.
зачастую это какайто специфика фирмы и если в этой специфике есть опыт как минимум 5 лет
Re: очень сильный C++
От: зиг Украина  
Дата: 28.08.12 12:06
Оценка:
Здравствуйте, Alexéy Sudachén, Вы писали:

AS>У видел тут сабж в одном из топиков, в списке требований к соискателю.


AS>Я вот о чём подумал. Не разу я не видел требования 'очень сильная JAVA' или 'очень сильный Python'. Да что там, даже 'Очень сильный C' мне не разу не встречался. А вот С++ он очевидно бывает слабым, сильным и очень сильным, потому как встречаю я такое уже не в первый раз.


сильная джава тоже встречается. Что-то типа strong core java — это именно оно.
Re[2]: очень сильный C++
От: Alexéy Sudachén Чили  
Дата: 28.08.12 12:27
Оценка:
AS>>Я вот о чём подумал. Не разу я не видел требования 'очень сильная JAVA' или 'очень сильный Python'. Да что там, даже 'Очень сильный C' мне не разу не встречался. А вот С++ он очевидно бывает слабым, сильным и очень сильным, потому как встречаю я такое уже не в первый раз.
pik>скорее всего опыт имеется ввиду, знание библиотек как boost, std, способность мыслить как инженер а не как простой исполнителъ, знание+опыт в программировании близком к hardware, многопоточное ну пр. вообщем опыт и углублённость
pik>знаний, зачастую да именно работа в VS и его абсолютное владение на 100%, опыт работы в болъших тимах.
pik>зачастую это какайто специфика фирмы и если в этой специфике есть опыт как минимум 5 лет

Ну это то понятно, не понятно только какое это всё имеет отношение к Ци и его силе?
Re: очень сильный C++
От: Abyx Россия  
Дата: 28.08.12 12:37
Оценка:
Здравствуйте, Alexéy Sudachén, Вы писали:

AS>У видел тут сабж в одном из топиков, в списке требований к соискателю.


AS>Вот непонятки у меня как бы, а как собственно измеряется эта сила Ци отдельно взятого индивидуума и где заканчивается слабый, каков он сильный, и чем так примечателен ОЧЕНЬ сильный. Как бы в бытность свою интервьювером силой Ци не интересовался, всё больше тем как это Ци на дело употребляется, потому и в непонятках.


если вы знаете, понимаете и применяете modern C++ style, то у вас "сильный С++".
если вы не понимаете зачем нужна та или иная фича С++ и как ее использовать — у вас слабый С++
In Zen We Trust
Re[2]: очень сильный C++
От: Alexéy Sudachén Чили  
Дата: 28.08.12 12:43
Оценка:
A>если вы знаете, понимаете и применяете modern C++ style, то у вас "сильный С++".
A>если вы не понимаете зачем нужна та или иная фича С++ и как ее использовать — у вас слабый С++

Интересная точка зрения. Я как-то считал что если человек умеет пользоваться плюсами, то moder style для него лишь один из способов писать код. При всём этом сдаётся мне, что за продвинутое владение плюсами часто выдаётся несдержанность в средствах и/или просто тот факт что индивидуум ещё не наигрался.

Однако, что же тогда есть ОЧЕНЬ сильный С++?
Re[3]: очень сильный C++
От: зиг Украина  
Дата: 28.08.12 12:46
Оценка:
Здравствуйте, Alexéy Sudachén, Вы писали:

AS>>>Я вот о чём подумал. Не разу я не видел требования 'очень сильная JAVA' или 'очень сильный Python'. Да что там, даже 'Очень сильный C' мне не разу не встречался. А вот С++ он очевидно бывает слабым, сильным и очень сильным, потому как встречаю я такое уже не в первый раз.

зиг>>сильная джава тоже встречается. Что-то типа strong core java — это именно оно.

AS>О боже! И что в чистой Жабе то считается сильным?! Знание спеки JVM и умение заточить зверушку под конкретную задачу?


знать до тонкостей как работает GC, classloader, досконально знать коллекции, мультитрединг/concurrency, reflection, ну и все в таком духе.
Re[4]: очень сильный C++
От: Alexéy Sudachén Чили  
Дата: 28.08.12 12:55
Оценка:
AS>>О боже! И что в чистой Жабе то считается сильным?! Знание спеки JVM и умение заточить зверушку под конкретную задачу?
зиг>знать до тонкостей как работает GC, classloader, досконально знать коллекции, мультитрединг/concurrency, reflection, ну и все в таком духе.

Упс, я почему-то думал что это и есть знание жабы. ) Тем более что ядро у неё не то что бы сильно большое. С другой стороны, к примеру, доскональным знанием поведения той же многопоточности или сетевой подсистемы на разных системах/платформах можно обладать только наступив на соответствующие грабли. Это уже ИМХО просто за гранью классификации.
Re[3]: очень сильный C++
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 28.08.12 13:03
Оценка:
Здравствуйте, Alexéy Sudachén, Вы писали:

AS>>>Вот непонятки у меня как бы, а как собственно измеряется эта сила Ци отдельно взятого индивидуума и где заканчивается слабый, каков он сильный, и чем так примечателен ОЧЕНЬ сильный. Как бы в бытность свою интервьювером силой Ци не интересовался, всё больше тем как это Ци на дело употребляется, потому и в непонятках.

K>>Если ты легко разбираешься в boost-вом фениксе и умеешь делать визитёр уровня Александреску, то у тебя сильный С++.

AS>Угу, а если развить привычку кодить нетривиальные алгоритмы в функциональном стиле, то C++ становиться просто эпической силы )))

Я понимаю твой сарказм и согласен, что шаблоны не нужны для многих задач, но в нетривиальных случаях они часто рулят и дают оптмальный и быстрый код.
Sic luceat lux!
Re[4]: очень сильный C++
От: Vzhyk  
Дата: 28.08.12 13:40
Оценка:
28.08.2012 16:02, Abyx пишет:

> С++ очень большой, и в зависимости от того на сколько вы его знаете — у

> вас либо "слабый С++", либо "сильный С++", либо "очень сильный С++".
> мало кто может сказать что он знает "весь С++", и мало кто умеет
> пользоваться всем С++. отсюда и градации.
Вот читая такое, остается только надеется, что С++ останется только в
узких нишах, а все остальное займет Нет с Жабой. И там уже будут
меряться пиписьками, у кого Жаба больше.
Posted via RSDN NNTP Server 2.1 beta
Re[5]: очень сильный C++
От: denisko http://sdeniskos.blogspot.com/
Дата: 28.08.12 13:42
Оценка:
Здравствуйте, Alexéy Sudachén, Вы писали:

AS>Способность реализовать на нём любую свою идею. Что же тут непонятного. Точно так же как умение пользоваться роялем, это способность сыграть именно то что хочешь, а не то что получается. И не надо тут философию разводить, всё предельно просто.


Код не только пишется, но и читается. "Реализовать любую свою идею" я с помощью гугла и такой то матери могу на десятке языков, а знаю на самом деле только один.

AS>И как интересно стиль кода, зависит от владения языком? Человек языком либо владеет, либо нет. Третьего не бывает. И то что в коде может не встретится ни одного boost или std отнюдь не означает, что писавший его чего-то не может, но лишь то что здесь это не нужно. Да, так бывает, что не нужно. И С++ это не обязательно когда визитор в стиле Александресу, и даже чаще всего не он. Цель то ведь решить задачу, а не создать замысловатую конструкцию.

Для английского есть куча градаций владения от "думаю со словарем" до "удобнее материться на нем", чем ++ хуже.

AS>C++ не очень то и большой на самом деле. Со всеми своими прибамбасами поменьше ядра жабы будет. Он лишь таит в себе целый склад граблей, от чего и кажется столь великим и страшным. Пользоваться же 'всем С++' очень даже не сложно, сложно знать все сопутствующие грабли, что и сеть по факту знание 'всего C++'.

Ну вероятность увидеть грабли и не наступить на них -- степень владения ++, если выше 99% считай, что у тебя не с++ а зверъ.
<Подпись удалена модератором>
Re[5]: очень сильный C++
От: Abyx Россия  
Дата: 28.08.12 13:49
Оценка:
Здравствуйте, Alexéy Sudachén, Вы писали:

A>>что значит "умеет пользоваться плюсами"?

AS>Способность реализовать на нём любую свою идею. Что же тут непонятного. Точно так же как умение пользоваться роялем, это способность сыграть именно то что хочешь, а не то что получается. И не надо тут философию разводить, всё предельно просто.

любую идею можно реализовать на Си, поместить код в .cpp файл и назвать это С++. или реализовать в __asm блоке

AS>И как интересно стиль кода, зависит от владения языком? Человек языком либо владеет, либо нет. Третьего не бывает. И то что в коде может не встретится ни одного boost или std отнюдь не означает, что писавший его чего-то не может, но лишь то что здесь это не нужно. Да, так бывает, что не нужно. И С++ это не обязательно когда визитор в стиле Александресу, и даже чаще всего не он. Цель то ведь решить задачу, а не создать замысловатую конструкцию.


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

AS>C++ не очень то и большой на самом деле. Со всеми своими прибамбасами поменьше ядра жабы будет. Он лишь таит в себе целый склад граблей, от чего и кажется столь великим и страшным. Пользоваться же 'всем С++' очень даже не сложно, сложно знать все сопутствующие грабли, что и сеть по факту знание 'всего C++'.


судя по тому что Вы пишете, Вы не знаете и малой части С++, поэтому и думаете что в нем всё так просто.
на всякий случай напомню, что С++ — это то что описано в стандарте (синтаксис + библиотека) + набор идиом и best practices + некоторые нестандартные библиотеки (дополняющие стандартную библиотеку)
In Zen We Trust
Re[5]: очень сильный C++
От: Vzhyk  
Дата: 28.08.12 14:00
Оценка:
28.08.2012 16:31, Alexéy Sudachén пишет:

> Способность реализовать на нём любую свою идею. Что же тут непонятного.

> Точно так же как умение пользоваться роялем, это способность сыграть
> именно то что хочешь, а не то что получается. И не надо тут философию
> разводить, всё предельно просто.
+100

> И как интересно стиль кода, зависит от владения языком? Человек языком

> либо владеет, либо нет. Третьего не бывает. И то что в коде может не
> встретится ни одного boost или std отнюдь не означает, что писавший его
> чего-то не может, но лишь то что здесь это не нужно.
Ну здесь есть один момент. Часто использование boost и std прсото
ускоряет написание кода, не увеличивая количества ошибок, причем код
может стать лаконичнее.
Но такую же лаконичность можно получить и без boost и std, просто челу
придется написать свои заменители и отладить их — во вногих случаяшь эти
заменители вполне себе качественные.
Кроме того — это всего-лишь библиотеки, коих море.
Только я не понимаю, какое это отношение имеет к "силе С++"?
Кстати, а использование MKL увеличивает "силу С++"?
Posted via RSDN NNTP Server 2.1 beta
Re[6]: очень сильный C++
От: Abyx Россия  
Дата: 28.08.12 14:15
Оценка:
Здравствуйте, Vzhyk, Вы писали:

V>Ну здесь есть один момент. Часто использование boost и std прсото

V>ускоряет написание кода, не увеличивая количества ошибок, причем код
V>может стать лаконичнее.
V>Но такую же лаконичность можно получить и без boost и std, просто челу
V>придется написать свои заменители и отладить их — во вногих случаяшь эти
V>заменители вполне себе качественные.
V>Кроме того — это всего-лишь библиотеки, коих море.
V>Только я не понимаю, какое это отношение имеет к "силе С++"?

"к силе С++" имеет отношение выбор нужного класса из библиотеки,
например unique_ptr vs shared_ptr vs optional
или list<T> vs vector<shared_ptr<T>> vs vector<unique_ptr<T>> vs deque<...> vs ptr_vector<T>
In Zen We Trust
Re[6]: очень сильный C++
От: Alexéy Sudachén Чили  
Дата: 28.08.12 15:06
Оценка:
V>Кстати, а использование MKL увеличивает "силу С++"?

Полагаю что нет, только православный БЮСТ.
Re[2]: очень сильный C++
От: ArtemGorikov Австралия жж
Дата: 28.08.12 15:11
Оценка:
Здравствуйте, зиг, Вы писали:

зиг>сильная джава тоже встречается. Что-то типа strong core java — это именно оно.

Это от того, что ядреная жава подмяла/подминает под себя традиционные для C++ области.
Re[7]: очень сильный C++
От: Vzhyk  
Дата: 28.08.12 15:47
Оценка:
28.08.2012 17:15, Abyx пишет:

> "к силе С++" имеет отношение выбор нужного класса из библиотеки,

> например unique_ptr vs shared_ptr vs optional
> или list<T> vs vector<shared_ptr<T>> vs vector<unique_ptr<T>> vs
> deque<...> vs ptr_vector<T>
И после этого можно считать программиста "сильным С++"?
Posted via RSDN NNTP Server 2.1 beta
Re[8]: очень сильный C++
От: Abyx Россия  
Дата: 28.08.12 16:04
Оценка:
Здравствуйте, Vzhyk, Вы писали:

V>28.08.2012 17:15, Abyx пишет:


>> "к силе С++" имеет отношение выбор нужного класса из библиотеки,

>> например unique_ptr vs shared_ptr vs optional
>> или list<T> vs vector<shared_ptr<T>> vs vector<unique_ptr<T>> vs
>> deque<...> vs ptr_vector<T>
V>И после этого можно считать программиста "сильным С++"?

нет конечно, это просто одно из условий.
In Zen We Trust
Re[5]: очень сильный C++
От: зиг Украина  
Дата: 28.08.12 16:06
Оценка:
Здравствуйте, Alexéy Sudachén, Вы писали:


AS>>>О боже! И что в чистой Жабе то считается сильным?! Знание спеки JVM и умение заточить зверушку под конкретную задачу?

зиг>>знать до тонкостей как работает GC, classloader, досконально знать коллекции, мультитрединг/concurrency, reflection, ну и все в таком духе.

AS>Упс, я почему-то думал что это и есть знание жабы. ) Тем более что ядро у неё не то что бы сильно большое. С другой стороны, к примеру, доскональным знанием поведения той же многопоточности или сетевой подсистемы на разных системах/платформах можно обладать только наступив на соответствующие грабли. Это уже ИМХО просто за гранью классификации.


ну, какие-нибудь формочки клепать можно отлично и без подобных знаний ядра... потому знают это всё отнюдь не все
Re[6]: очень сильный C++
От: Vzhyk  
Дата: 28.08.12 16:19
Оценка:
28.08.2012 19:06, зиг пишет:

> ну, какие-нибудь формочки клепать можно отлично и без подобных знаний

> ядра... потому знают это всё отнюдь не все
Причем этих задач 99%, а вот ядреных 1%.
Просто у работодятлов сейчас фишка: искать ядреных разрабов по цене
обычных, плакать, что найти не могут, потом этих ядреных садить за
клепание формочек и опять плакать, что ядреные формочки не особо
клепать-то хотят.
С чем это связано — не знаю.
Posted via RSDN NNTP Server 2.1 beta
Re[7]: очень сильный C++
От: denisko http://sdeniskos.blogspot.com/
Дата: 28.08.12 18:04
Оценка:
Здравствуйте, Alexéy Sudachén, Вы писали:

AS>>>Способность реализовать на нём любую свою идею. Что же тут непонятного. Точно так же как умение пользоваться роялем, это способность сыграть именно то что хочешь, а не то что получается. И не надо тут философию разводить, всё предельно просто.

D>>Код не только пишется, но и читается. "Реализовать любую свою идею" я с помощью гугла и такой то матери могу на десятке языков, а знаю на самом деле только один.

AS>Хм, ну как бы метод search>copy>paste — это несколько другой метод.

Другой относительно чего? Формально он позволяет решить задачу и многие вещи сейчас я делаю на питончике вместо плюсов, потому что типа быстрее, что не отменяет, что когда происходит затык, я лезу в гугл и смотрю как этот затык решается в две строчки. Могу ли решить любую, пришедшую мне на ум задачу, на нем? Да. Могу ли я решить часть задач на нем быстрее чем на ++. Да? Большой и сильный у меня питон? Нет, я его практически не знаю.

D>>Для английского есть куча градаций владения от "думаю со словарем" до "удобнее материться на нем", чем ++ хуже.


AS> Владение языком определяется лишь тем можешь ли ты полностью понять собеседника и выразить все свои мысли понятно и без ошибок, либо нет. Чем ++ хуже?

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

AS>От только чем сильнее у тебя развит такой навык, тем фиговее становится писать код. Грабли то оказываются везде )))

Это болезнь роста, ибо да, начиная с некоторого момента ты видишь грабли везде, но если дух с++ твой силен ты можешь проходить сквозь них не касаясь и двигаясь к своей цели.
<Подпись удалена модератором>
Re[9]: очень сильный C++
От: denisko http://sdeniskos.blogspot.com/
Дата: 29.08.12 03:35
Оценка:
Здравствуйте, Alexéy Sudachén, Вы писали:

AS>>>Хм, ну как бы метод search>copy>paste — это несколько другой метод.

D>>Могу ли решить любую, пришедшую мне на ум задачу, на нем? Да. Могу ли я решить часть задач на нем быстрее чем на ++. Да? Большой и сильный у меня питон? Нет, я его практически не знаю.

AS>Любую не сможешь, сможешь лишь те затык в которых можно обнаружить в гугле. Так что хоть питон у тебя и хилый, навык гугления просто восхитительный.

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

AS>Проблема в том что и для многих C++ разработчиков 'cильный C++' — есть сильный навык автоматического повторения прочитанного в книге 101-го рецепта. ))) И работает только в типовых задачах. В этом плане их сильный Ци ничем не сильнее твоего дохлого питона.

Любой язык складывается из клише. Ты же когда говоришь не задумываешься (или редко задумываешься), какое правило грамматики применимо в тот или иной момент, просто используешь клише в речи. Строго говоря, в одном я с тобой готов согласиться -- когда человек перестает думать от том, как писать и думает о том, что писать, можно считать, что язык он так или иначе знает.

AS>Я там выше по топику уже говорил, что владение роялем это возможность сыграть то что хочешь, а не то что получается.


Аналогия неправильная, на любом языке можно сказать "что хочешь" разными путям. В каком-то больше, в каком-то меньше. В рояле важен именно тайминг, т.е. последовательность действий в определенное время. Поскольку я на рояле не играл никогда, я тут на редкость объективен и непредвзят


AS>Если даже они говорят об одном и том же? Например о бейсболе? ))) Но в реальности, они скорее всего говорят даже не о разных вещах, но и на разных языках. С разным словарём и разными грамматическими правилами. Что будешь спорить?

Тут могут быть разные ситуации, гарвардец может понимать реднека, но ему будет отвратительно говорить, гарвардец может его тупо не понимать (или понимать частично) и.т.д. К слову, одним из критериев владения ++, является знание большого числа диалектов и да, кучи клише. Клише на самом деле, не так плохо. Просто, когда ты выходишь из дома, ты же не стараешься каждый раз придумать новый способ добраться до работы -- ты можешь ходить, бегать, прыгать, ползти и.т.д. При должной сноровке ты можешь придумать новый способ -- встать на большие пальцы рук и дойти до работы на них, да ты получишь кучу новых эмоций как от изобретения нового способа, так и от его использования, но результат будет один — ты придешь на работу.
<Подпись удалена модератором>
Re[10]: очень сильный C++
От: Alexéy Sudachén Чили  
Дата: 29.08.12 07:33
Оценка:
AS>>Любую не сможешь, сможешь лишь те затык в которых можно обнаружить в гугле. Так что хоть питон у тебя и хилый, навык гугления просто восхитительный.
D>Нет, если не найду в гугле сам разберусь, питон это все таки не высшая математика.

А в С++ не разберешься? В Жабе? Или там или Matlab'е. Упс, последнее уже высшая математика .... )))) Это же не владение языком, это умение учится. Умение научиться тому что нужно, ни есть владение всем подряд.

AS>>Я там выше по топику уже говорил, что владение роялем это возможность сыграть то что хочешь, а не то что получается.

D>Аналогия неправильная, на любом языке можно сказать "что хочешь" разными путям. В каком-то больше, в каком-то меньше. В рояле важен именно тайминг, т.е. последовательность действий в определенное время. Поскольку я на рояле не играл никогда, я тут на редкость объективен и непредвзят

Дык это, всё ведь офигительно просто. Практически любой на этом форуме говорит минимум на двух языках. Соответственно любой может спросить себя владеет ли он всеми языками на которых говорит. Может ли он свободно выражать любые свои мысли на этих языках. Вот и всё. Я, к примеру, говорю на трёх, но владею лишь одним, при этом не знаю ни одного. ))))
Re: очень сильный C++
От: jazzer Россия Skype: enerjazzer
Дата: 29.08.12 08:15
Оценка:
Здравствуйте, Alexéy Sudachén, Вы писали:

AS>У видел тут сабж в одном из топиков, в списке требований к соискателю.


AS>Я вот о чём подумал. Не разу я не видел требования 'очень сильная JAVA' или 'очень сильный Python'. Да что там, даже 'Очень сильный C' мне не разу не встречался. А вот С++ он очевидно бывает слабым, сильным и очень сильным, потому как встречаю я такое уже не в первый раз.


AS>Вот непонятки у меня как бы, а как собственно измеряется эта сила Ци отдельно взятого индивидуума и где заканчивается слабый, каков он сильный, и чем так примечателен ОЧЕНЬ сильный. Как бы в бытность свою интервьювером силой Ци не интересовался, всё больше тем как это Ци на дело употребляется, потому и в непонятках.



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

Как вариант, в прикладном наёмном смысле — сильнее всех в группе, включая интервьюера
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[4]: очень сильный C++
От: mik1  
Дата: 29.08.12 08:20
Оценка:
Здравствуйте, зиг, Вы писали:

AS>>О боже! И что в чистой Жабе то считается сильным?! Знание спеки JVM и умение заточить зверушку под конкретную задачу?


зиг>знать до тонкостей как работает GC, classloader, досконально знать коллекции, мультитрединг/concurrency, reflection, ну и все в таком духе.


Это просто "сильная Java". A очень сильная — это когда можешь тоже самое реализовать сам, обходя те или иные грабли.
Re[2]: очень сильный C++
От: Alexéy Sudachén Чили  
Дата: 29.08.12 08:44
Оценка:
J>очень сильный — у Гугла, кажется, когда подаешь на вакансию программера, просят оценить свой уровень владения языком от 1 до 10, где 1 — "знаю синтаксис", а 10 — "написал книгу по сабжу" — вот это, наверное, оно.

ИМХО, конечно, книга — книге рознь. Есть ведь книги и по синтаксису. Да и писать книги — несколько иной навык чем писать код.

J>Как вариант, в прикладном наёмном смысле — сильнее всех в группе, включая интервьюера


Чёт я не понял, сила Ци — понятие относительное? )
Re[3]: очень сильный C++
От: jazzer Россия Skype: enerjazzer
Дата: 29.08.12 08:49
Оценка:
Здравствуйте, Alexéy Sudachén, Вы писали:

J>>очень сильный — у Гугла, кажется, когда подаешь на вакансию программера, просят оценить свой уровень владения языком от 1 до 10, где 1 — "знаю синтаксис", а 10 — "написал книгу по сабжу" — вот это, наверное, оно.


AS>ИМХО, конечно, книга — книге рознь. Есть ведь книги и по синтаксису. Да и писать книги — несколько иной навык чем писать код.


Зато можно легко оценить уровень писавшего

J>>Как вариант, в прикладном наёмном смысле — сильнее всех в группе, включая интервьюера


AS>Чёт я не понял, сила Ци — понятие относительное? )


В смысле найма — конечно!
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re: очень сильный C++
От: vsb Казахстан  
Дата: 29.08.12 12:09
Оценка:
C++ очень сложный язык, поэтому градация профессионализма разработчиков на С++ размыта гораздо сильнее, чем в случае с другими языками.
Re[2]: очень сильный C++
От: Alexéy Sudachén Чили  
Дата: 29.08.12 12:30
Оценка:
vsb>C++ очень сложный язык, поэтому градация профессионализма разработчиков на С++ размыта гораздо сильнее, чем в случае с другими языками.

Угу, то есть сложность языка как бы даёт индульгенцию прощающую неумение им пользоваться?

Слабый C++ — прочитал Страуса, хочу быть программером; средний — могу воспроизвести все/несколько рецептов из саттера/мейрса и в пике даже поддерживать связанную беседу на тему откровение от Александреску; сильный — могу писать то что нужно именно так как нужно, а не то что получится в том виде так как видел у других. Очень сильный — ? Наверное, как тут уже кое-кто отметил — идти заниматься другим делом чем писание на С++? Ну там писать на шарпе, хлопать одной ладошкой,.... может даже парить над водой, чем чёрт не шутит )))

Однако у меня такое чуЙство что тут ровно одна градация. )
Re[3]: очень сильный C++
От: Piko  
Дата: 29.08.12 20:16
Оценка:
Здравствуйте, Alexéy Sudachén, Вы писали:

vsb>>C++ очень сложный язык, поэтому градация профессионализма разработчиков на С++ размыта гораздо сильнее, чем в случае с другими языками.

AS>Угу, то есть сложность языка как бы даёт индульгенцию прощающую неумение им пользоваться?
AS>Слабый C++ — прочитал Страуса, хочу быть программером; средний — могу воспроизвести все/несколько рецептов из саттера/мейрса

Страуструп описывает очень простой и "элегантный" стиль программирования, к сожалению далеко не все, кто "прочитали" — поняли что там написано. Пример из жизни — вчерашний студент рассказывает что прочитал TC++PL, садится и пишет код с голыми указателями, new/delete, и прочей дрянью.
Поэтому, тех кто действительно освоил книги Страуструпа, я бы отнёс к средним и выше.

PS: у Страуструпа в книгах явно встречаются многие советы, которые есть у Саттера и Майерс, но не так разжёвано как у них — поэтому легко может вылететь из другого уха. Например — про приоритет использования non-member functions.
Re[4]: очень сильный C++
От: abibok  
Дата: 29.08.12 23:48
Оценка:
зиг>знать до тонкостей как работает GC, classloader, досконально знать коллекции, мультитрединг/concurrency, reflection, ну и все в таком духе.

За исключением GC это все базовые знания. А знать до тонкостей как работает GC в большинстве задач и не нужно, по крайней мере не каждому программисту в проекте нужно.
Re[5]: очень сильный C++
От: Трололоша  
Дата: 30.08.12 02:06
Оценка:
Здравствуйте, abibok, Вы писали:

A>А знать до тонкостей как работает GC в большинстве задач и не нужно, по крайней мере не каждому программисту в проекте нужно.

Ну значит этому проекту достаточно "несильных" программистов.
... << RSDN@Home >>
Да, йа зелёный тролль!
Re[6]: очень сильный C++
От: abibok  
Дата: 30.08.12 05:41
Оценка:
Т>Ну значит этому проекту достаточно "несильных" программистов.

Это значит, что происходит чудовищная инфляция. Знание коллекций приравнивается к "сильному", а на юниорские позиции стоит брать как минимум архитекторов, все равно по ходу доучивать придется.
Re[5]: очень сильный C++
От: зиг Украина  
Дата: 30.08.12 10:41
Оценка:
Здравствуйте, abibok, Вы писали:

зиг>>знать до тонкостей как работает GC, classloader, досконально знать коллекции, мультитрединг/concurrency, reflection, ну и все в таком духе.


A>За исключением GC это все базовые знания. А знать до тонкостей как работает GC в большинстве задач и не нужно, по крайней мере не каждому программисту в проекте нужно.


сам с собой что ли разговариваешь?
вопрос был не о том нужно или не нужно, а встречаются ли такие вакансии, или не встречаются.
Тебе не встречались — ну и отлично. А мне встречались. И там действительно нужно это все знать до тонкостей. Абибока они к несчастью не спросили, а то бы знали, что "это не нужно"

насчет базовых знаний — все то что я описала дейсвтительно можно знать на более-менее базовом уровне. и нормально клепать формочки при этом. 90% программистов такие
Re[6]: очень сильный C++
От: abibok  
Дата: 30.08.12 17:00
Оценка:
зиг>вопрос был не о том нужно или не нужно, а встречаются ли такие вакансии, или не встречаются.

Очнитесь и перечитайте свои же собственные сообщения. Это был мой комментарий на ваше заявление о том, что в чистой Жабе считается сильным досконально знать коллекции. Речь совершенно не шла о том, встречаются ли такие вакансии, или не встречаются. Кстати, а какие "такие"?

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

Откуда у вас столько злости-то?
Re[7]: очень сильный C++
От: зиг Украина  
Дата: 30.08.12 20:34
Оценка:
Здравствуйте, abibok, Вы писали:

зиг>>вопрос был не о том нужно или не нужно, а встречаются ли такие вакансии, или не встречаются.


A>Очнитесь и перечитайте свои же собственные сообщения. Это был мой комментарий на ваше заявление о том, что в чистой Жабе считается сильным досконально знать коллекции. Речь совершенно не шла о том, встречаются ли такие вакансии, или не встречаются. Кстати, а какие "такие"?


A>Я снова берусь утверждать, что знание коллекций — это базовое знание, где-то на уровне знания синтаксиса языка, и делать это признаком сильного Java-программиста — это пример деградации отрасли.

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

A>Откуда у вас столько злости-то?

оттудова
Re[8]: очень сильный C++
От: abibok  
Дата: 30.08.12 23:15
Оценка:
зиг>а чего ты к коллекциям-то прицепился?

Исключительно потому, что их привели в качестве примера знаний, определяющих сильного программиста. Не умение строить архитектуру приложения, не опыт поддержки и рефакторинга крупных проектов, не написание масштабируемых многозвенных приложений, а какое-то примитивное знание коллекций. Как же тогда называть того, кто силен в том, что описал я? Мега-гуру или Senior Lead Architect III?

зиг>просто без них опять таки никогда не обходится ни в одном интервью поэтому я их и упомянула.


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

зиг>но а остальное-то, что, тоже базовые знания? рефлекшн, многопоточность?


А что такого сакрального в многопоточности? Знание примитивов синхронизации? Общее представление о процессах, потоках и нитях?

зиг>ну ка приведи пример где они могут быть нужны чтоб формы делать


А кроме рисования форм в вашей работе есть что-то еще от программирования? Вот прямо так вся компания изо дня в день только и делает, что создает новые формы?
Re: очень сильный C++
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 31.08.12 04:41
Оценка:
Здравствуйте, Alexéy Sudachén, Вы писали:

AS>Я вот о чём подумал. Не разу я не видел требования 'очень сильная JAVA' или 'очень сильный Python'. Да что там, даже 'Очень сильный C' мне не разу не встречался. А вот С++ он очевидно бывает слабым, сильным и очень сильным, потому как встречаю я такое уже не в первый раз.


А это очень логично. В случае с Python, Java ты просто решаешь конкретную задачу и язык для этого знать и не надо по большому счету. А вот при работе с C++, ты не только решаешь задачу, но и пробираешься по присыпанным листиками граблям твоих предшественников, и без хорошего знания самого языка уже не обойтись. Видимо, в силу того что язык еще не растерял своей популярности, приходится писать такие вот ограничения. Само собой, для Си их указывать не надо, там работа на 60-80% из хождения по граблям состоит и это видно с первого взгляда, в отличие от...

AS>Вот непонятки у меня как бы, а как собственно измеряется эта сила Ци отдельно взятого индивидуума и где заканчивается слабый, каков он сильный, и чем так примечателен ОЧЕНЬ сильный. Как бы в бытность свою интервьювером силой Ци не интересовался, всё больше тем как это Ци на дело употребляется, потому и в непонятках.


Очень сильный будет довольно не плохо знать как стандарт, так и прикопаные в самом языке грабли, коих не мало, мягко говоря.
Re[3]: очень сильный C++
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 31.08.12 04:42
Оценка:
Здравствуйте, Олег К., Вы писали:

ОК>Все намного проще. Сильный это если пишет и желает писать в стиле "меня Александреску в полнолуние укусил." Если же нет, то слабак.


Это не сильный, это я не буду писать кто, т.к. придет какой-нить админ и меня забанит
Re[6]: очень сильный C++
От: mik1  
Дата: 31.08.12 04:44
Оценка:
Здравствуйте, зиг, Вы писали:

зиг>вопрос был не о том нужно или не нужно, а встречаются ли такие вакансии, или не встречаются.

зиг>Тебе не встречались — ну и отлично. А мне встречались. И там действительно нужно это все знать до тонкостей.

А если не секрет, сколько там предлагали денег?
Re[8]: очень сильный C++
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 31.08.12 04:47
Оценка:
Здравствуйте, зиг, Вы писали:

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


Кстати, а на кой черт их спрашивать? В случае с плюсами никто не идет дальше различий между std::list и std::vector. Неужели трудно заглянуть в документацию по той или иной функции?

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


Многопоточность — это критичное базовое знание. Без него вечно такие монстры выходит, что хоть стой хоть падай.
Re[9]: очень сильный C++
От: mik1  
Дата: 31.08.12 04:48
Оценка:
Здравствуйте, abibok, Вы писали:

A>Интервью, где на позицию сильного джависта, спрашивают про коллекции — идиотское, и проводящие его специалисты — тоже идиоты, и работать в этой конторе не стоит.


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

зиг>>но а остальное-то, что, тоже базовые знания? рефлекшн, многопоточность?

A>А что такого сакрального в многопоточности? Знание примитивов синхронизации? Общее представление о процессах, потоках и нитях?

Способность применить эти знания? А то как до дела доходит, имеем несинхронизованные булевские флаги, вроде isStopped, в типа многопоточном коде...
Re[2]: очень сильный C++
От: Alexéy Sudachén Чили  
Дата: 31.08.12 07:50
Оценка:
KP> Само собой, для Си их указывать не надо, там работа на 60-80% из хождения по граблям состоит и это видно с первого взгляда, в отличие от...

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

Так что не всё так очевидно.
Re[2]: очень сильный C++
От: Vzhyk  
Дата: 31.08.12 09:06
Оценка:
31.08.2012 7:41, kaa.python пишет:

> А это очень логично. В случае с Python, Java ты просто решаешь

> конкретную задачу и язык для этого знать и не надо по большому счету. А
> вот при работе с C++, ты не только решаешь задачу, но и пробираешься по
> присыпанным листиками граблям твоих предшественников, и без хорошего
Очень оригинальная точка зрения.
Но очень полезная для молодежи — С++ нужно обходить за 3 версты, мало
того, что мозг наизнанку вывернут, так еще и платить за это не будут
(потому как при количестве граблей больше чего-то выгоднее переписать
все заново и на Жабе той же).
Posted via RSDN NNTP Server 2.1 beta
Re[3]: очень сильный C++
От: Vzhyk  
Дата: 31.08.12 09:16
Оценка:
31.08.2012 10:08, Alexéy Sudachén пишет:

> Потому то и невозможно стать C++ программером прочитав несколько книжек.

> Для этого нужно отпахать не меньше пяти лет в реальных проектах и
> написать тонну кода.
А потом забить на большинство мудотни в книжках и писать наиболее
понятно и лаконично, чтобы другие могли прочитать то, что ты написал и
тобой написанное работало, как требуется и не более.
Кстати, я уже приводил здесь пример с собой, при опыте коммерческой
промышленной разработки на С и С++ 20 лет, я сейчас не могу ответить на
вопросу, на которые шутя отвечал с опытом 5 лет.
Posted via RSDN NNTP Server 2.1 beta
Re[4]: очень сильный C++
От: Alexéy Sudachén Чили  
Дата: 31.08.12 09:17
Оценка:
>> Для этого нужно отпахать не меньше пяти лет в реальных проектах и
>> написать тонну кода.
V>А потом забить на большинство мудотни в книжках и писать наиболее
V>понятно и лаконично, чтобы другие могли прочитать то, что ты написал и

Ну да. Естественно. Самое сложное — писать просто ))))
Re[3]: очень сильный C++
От: Alexéy Sudachén Чили  
Дата: 31.08.12 09:24
Оценка:
>> вот при работе с C++, ты не только решаешь задачу, но и пробираешься по
>> присыпанным листиками граблям твоих предшественников, и без хорошего
V>Очень оригинальная точка зрения.
V>Но очень полезная для молодежи — С++ нужно обходить за 3 версты, мало

Очень правильная точка зрения. Ведь на самом то деле, чтобы эффективно писать на С++, нефигово бы так пощупать на практике ассемблер, лисп и жабу/шарп. Таки Ци даже у просто хорошего специалиста по двум плюсам получается должен быть просто эпической силы. Хотя, ИМХО, ошибочно считается что это работает в обратную сторону. )))
Re[4]: очень сильный C++
От: Eye of Hell Россия eyeofhell.habr.ru
Дата: 31.08.12 09:27
Оценка:
AS>Очень правильная точка зрения. Ведь на самом то деле, чтобы эффективно писать на С++, нефигово бы так пощупать на практике ассемблер, лисп и жабу/шарп. Таки Ци даже у просто хорошего специалиста по двум плюсам получается должен быть просто эпической силы. Хотя, ИМХО, ошибочно считается что это работает в обратную сторону. )))

Если не секрет, лисп чем поможет?
Re[3]: очень сильный C++
От: Vzhyk  
Дата: 31.08.12 09:30
Оценка:
31.08.2012 10:50, Alexéy Sudachén пишет:

> Вот кстати интересный момент. Я сейчас свои проекты в основном пишу на С

> и о граблях даже не задумываюсь! Собственно вопрос техники
> программирования и библиотеки примитивов. Та техника, что я создал,
> позволяет мне писать даже с меньшим напрягом чем на С++.
Это приходит с большим опытом. А основная масса плюсового кода написана
"укушенными Александреску" и с тщательно разложенными граблями. Кстати,
на С чаще всего большинство кода не лучше (но соотношение в пользу С —
там код получше).
Posted via RSDN NNTP Server 2.1 beta
Re[5]: очень сильный C++
От: Alexéy Sudachén Чили  
Дата: 31.08.12 09:30
Оценка:
EOH>Если не секрет, лисп чем поможет?
Понять убогость шаблонов?
Re[6]: очень сильный C++
От: Eye of Hell Россия eyeofhell.habr.ru
Дата: 31.08.12 09:38
Оценка:
EOH>>Если не секрет, лисп чем поможет?
AS>Понять убогость шаблонов?



Переформулирую: чем лисп поможет лучше писать на C++?
Re[7]: очень сильный C++
От: Alexéy Sudachén Чили  
Дата: 31.08.12 09:41
Оценка:
EOH>Переформулирую: чем лисп поможет лучше писать на C++?

Взглядом со стороны, естественно. ИМХО, это как бы очевидно. Нет?
Re[8]: очень сильный C++
От: Eye of Hell Россия eyeofhell.habr.ru
Дата: 31.08.12 09:45
Оценка:
EOH>>Переформулирую: чем лисп поможет лучше писать на C++?
AS>Взглядом со стороны, естественно. ИМХО, это как бы очевидно. Нет?

Не очень .
Вот посмотрел программист со стороны на шаблоны С++. Понял насколько они ограничены, неудобны и кривы. Что после этого изменится в коде, который он пишет?
Re[2]: очень сильный C++
От: Eugeny__ Украина  
Дата: 31.08.12 13:32
Оценка:
Здравствуйте, Eye of Hell, Вы писали:

EOH>Если это не "ну мы просто так написали", то можно предположить что у них много легаси кода, написанного в усложненном стиле — с бесконечным количеством наследования, абстрактных классов, завязками на конкретные имплементации компилятора с линкером, активного использования шаблонов, буста и stl. И написавший все это архитектор уволился. Теперь нужно поддерживать .


Тогда нужно в требованиях не "Сильный С++" писать, а "сильная, устойчивая психика".
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Re: очень сильный C++
От: namespace  
Дата: 31.08.12 13:40
Оценка:
AS>Вот непонятки у меня как бы, а как собственно измеряется эта сила Ци отдельно взятого индивидуума
Думаю, также как и программистов других языков.
Вроде этого
Автор: iПоц
Дата: 05.10.11
Re[8]: очень сильный C++
От: Eugeny__ Украина  
Дата: 31.08.12 14:20
Оценка:
Здравствуйте, зиг, Вы писали:


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


Когда вижу формы(десктопные), сделанные без использования многопоточности(т.е. "пилим все действия в потоке гуи"), я начинаю очень не любить тех, кто принял решение дать задание писать эту форму человеку, не знакомому с потоками.
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Re[9]: очень сильный C++
От: зиг Украина  
Дата: 31.08.12 14:29
Оценка:
Здравствуйте, Eugeny__, Вы писали:

E__>Здравствуйте, зиг, Вы писали:



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


E__>Когда вижу формы(десктопные), сделанные без использования многопоточности(т.е. "пилим все действия в потоке гуи"), я начинаю очень не любить тех, кто принял решение дать задание писать эту форму человеку, не знакомому с потоками.


я не про десктоп
Re[9]: очень сильный C++
От: зиг Украина  
Дата: 31.08.12 14:36
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>Здравствуйте, зиг, Вы писали:


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


KP>Кстати, а на кой черт их спрашивать? В случае с плюсами никто не идет дальше различий между std::list и std::vector. Неужели трудно заглянуть в документацию по той или иной функции?

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

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

KP>Многопоточность — это критичное базовое знание. Без него вечно такие монстры выходит, что хоть стой хоть падай.
ну не скажите. это в каких-то областях оно критичное. а в формошлепстве — нет
Re[7]: очень сильный C++
От: зиг Украина  
Дата: 31.08.12 14:37
Оценка:
Здравствуйте, mik1, Вы писали:

M>Здравствуйте, зиг, Вы писали:


зиг>>вопрос был не о том нужно или не нужно, а встречаются ли такие вакансии, или не встречаются.

зиг>>Тебе не встречались — ну и отлично. А мне встречались. И там действительно нужно это все знать до тонкостей.

M>А если не секрет, сколько там предлагали денег?


ммммммноооога
Re[9]: очень сильный C++
От: зиг Украина  
Дата: 31.08.12 15:16
Оценка:
Здравствуйте, abibok, Вы писали:

зиг>>а чего ты к коллекциям-то прицепился?


A>Исключительно потому, что их привели в качестве примера знаний, определяющих сильного программиста. Не умение строить архитектуру приложения, не опыт поддержки и рефакторинга крупных проектов, не написание масштабируемых многозвенных приложений, а какое-то примитивное знание коллекций. Как же тогда называть того, кто силен в том, что описал я? Мега-гуру или Senior Lead Architect III?

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

зиг>>просто без них опять таки никогда не обходится ни в одном интервью поэтому я их и упомянула.

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

зиг>>но а остальное-то, что, тоже базовые знания? рефлекшн, многопоточность?

A>А что такого сакрального в многопоточности? Знание примитивов синхронизации? Общее представление о процессах, потоках и нитях?
и общее представление и весьма конкретное, о том как все реализовано именно в джаве.
могу дать ссылку на джава-конкарренси вопросы, была в джава форуме как-то выставлена — мега-вещь
отнюдь не все, очень опытные джависты, смогли со всеми ними справиться

зиг>>ну ка приведи пример где они могут быть нужны чтоб формы делать

A>А кроме рисования форм в вашей работе есть что-то еще от программирования? Вот прямо так вся компания изо дня в день только и делает, что создает новые формы?
а причем тут моя работа? я какбе не говорила что а) я всего этого не знаю б) мне в моей работе этого не требуется
Re[4]: очень сильный C++
От: Трололоша  
Дата: 31.08.12 16:08
Оценка:
Здравствуйте, Alexey Sudachen, Вы писали:

AS>Очень правильная точка зрения. Ведь на самом то деле, чтобы эффективно писать на С++, нефигово бы так пощупать на практике ассемблер, лисп и жабу/шарп.

AS>Таки Ци даже у просто хорошего специалиста по двум плюсам получается должен быть просто эпической силы.
А на практике С++снику plain С трогать очень не хочется, ибо колво ручной работы вырастает в разы.
... << RSDN@Home >>
Да, йа зелёный тролль!
Re[7]: очень сильный C++
От: Alexéy Sudachén Чили  
Дата: 31.08.12 20:07
Оценка:
AS>>Это лишь от неумения его 'трогать'.
AS>>Писать то надо по другому.
Т>Писать надо больше, писать надо многое вручную каждый раз. Автоматизации минимум.

Вот на практике оказалось, что несмотря на то что кое-что в плюсах генерируется автоматом, писать таки на С нужно меньше ) Можешь мне конечно не верить, но вот так вот получается. Возможно что С++11 это дело чуть улучшает, тут точно сказать не могу. Таки С++ чрезвычайно многословен и извилист.

Собственно, а что нужно писать каждый раз и где не хватает автоматизации? Оно как бы реально нужно, или просто привычка давит?
Re[9]: очень сильный C++
От: Alexéy Sudachén Чили  
Дата: 31.08.12 20:24
Оценка:
P>это с онанизмом или без?
P>http://www.rsdn.ru/poll/3561.aspx
Автор: Piko
Дата: 13.05.12
Вопрос: Является ли приведённый ниже фрагмент кода синтаксическим онанизмом?
[ccode]
#define __Auto_Release \
switch ( 0 ) \
if ( 0 ); else \
while ( 1 ) \
if ( 1 ) \
{ \
int YOYO_LOCAL_ID(Mark); \
Yo_Unwind_Scope(0,0,&YOYO_LOCAL_ID(Mark)); \
break; \
case 0: Yo_Pool_Ptr(&YOYO_LOCAL_ID(Mark),Yo_Pool_Marker_Tag); \
goto YOYO_LOCAL_ID(Body);\
} \
else \
YOYO_LOCAL_ID(Body):
[/ccode]
Пример использования:
[ccode]
__Auto_Release
{
YOYO_BUFFER *bf = 0;
bf = Oj_Read_All(Cfile_Open(fname,"r"));
/* ... do some buffer processing */
Oj_Write_Full(Cfile_Open(Str_Concat(fname,".1"),"w+"),bf->at,bf->count);
}
[/ccode]


Смешно, да. Сколько из них пишут на С?

С другой стороны, вот функция которую я пишу сейчас, укажи мне где тут это самое.
int Idnty_Of(YO_XNODE *Q, char *email, char *first, char *last)
  {
    char *hex;
    int i = 0;
    YO_XNODE *q;
    YO_MD5 *md5 = Md5_Init();
    
    email = Str_Utf8_Lower(email);
    first = Str_Utf8_Upper(first);
    last  = Str_Utf8_Upper(last);
    
    Md5_Update(md5,email,strlen(email));
    Md5_Update(md5,first,strlen(first));
    Md5_Update(md5,last,strlen(last));
    hex = Str_Hex_Encode(Md5_Finish(md5,0),16);
  
    q = Xnode_Down_If(Q,"idnty");
    if ( q ) 
      {
        __Raise_If( Xnode_Value_Get_Int(q,"no",-1) != i, "identity index is broken" );
        if ( !strcmp( hex, Xnode_Value_Get_Str(q,"@","") ) )
          {
            return i;
          }
        ++i;
        q = Xnode_Next_If(q,"idnty");
      }
    
    q = Xnode_Append(Q,"idnty");
    Xnode_Value_Set_Str(q,"email",email);
    Xnode_Value_Set_Str(q,"first",first);
    Xnode_Value_Set_Str(q,"last",last);
    Xnode_Value_Set_Str(q,"@",hex);
    Xnode_Value_Set_Int(q,"no",i);
    
    return i;    
  }


Если что, здесь нет ни одной утечки, всё почистится автоматом. Вот только никаких извратов со смартами здесь нет. Удивительно, да? Ну, блин, попробуй хоть раз подумать за пределами коробки в которую себя запер, ага?
Re[10]: очень сильный C++
От: Piko  
Дата: 31.08.12 20:36
Оценка:
Здравствуйте, Alexéy Sudachén, Вы писали:

P>>это с онанизмом или без?

P>>http://www.rsdn.ru/poll/3561.aspx
Автор: Piko
Дата: 13.05.12
Вопрос: Является ли приведённый ниже фрагмент кода синтаксическим онанизмом?
[ccode]
#define __Auto_Release \
switch ( 0 ) \
if ( 0 ); else \
while ( 1 ) \
if ( 1 ) \
{ \
int YOYO_LOCAL_ID(Mark); \
Yo_Unwind_Scope(0,0,&YOYO_LOCAL_ID(Mark)); \
break; \
case 0: Yo_Pool_Ptr(&YOYO_LOCAL_ID(Mark),Yo_Pool_Marker_Tag); \
goto YOYO_LOCAL_ID(Body);\
} \
else \
YOYO_LOCAL_ID(Body):
[/ccode]
Пример использования:
[ccode]
__Auto_Release
{
YOYO_BUFFER *bf = 0;
bf = Oj_Read_All(Cfile_Open(fname,"r"));
/* ... do some buffer processing */
Oj_Write_Full(Cfile_Open(Str_Concat(fname,".1"),"w+"),bf->at,bf->count);
}
[/ccode]

AS>Смешно, да. Сколько из них пишут на С?

какая разница сколько, я вопрос вроде чётко задал.

AS>С другой стороны, вот функция которую я пишу сейчас, укажи мне где тут это самое.


а теперь возвращаемся к

AS>Вот на практике оказалось, что несмотря на то что кое-что в плюсах генерируется автоматом, писать таки на С нужно меньше ) Можешь мне конечно не верить, но вот так вот получается.


и где тут меньше?
Re[10]: очень сильный C++
От: Piko  
Дата: 31.08.12 20:43
Оценка:
Здравствуйте, Alexéy Sudachén, Вы писали:

AS> hex = Str_Hex_Encode(Md5_Finish(md5,0),16);


А вот такой код,

some_shit_for_md5(Md5_Finish(md5_1,0),Md5_Finish(md5_2,0));


будет работать?
Re[11]: очень сильный C++
От: Alexéy Sudachén Чили  
Дата: 31.08.12 20:48
Оценка:
AS>> hex = Str_Hex_Encode(Md5_Finish(md5,0),16);

P>А вот такой код,


P>
P>some_shit_for_md5(Md5_Finish(md5_1,0),Md5_Finish(md5_2,0));
P>


P>будет работать?


Естественно. Нуль — это указатель на буфер.

  void *Md5_Finish(YO_MD5 *md5, void *digest)
    {
      if ( !md5->finished )
        {
          static byte_t PADDING[64] = {
            0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
            0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
          };
          byte_t bits[8];
          uint_t index, padLen;
          Md5_Internal_Encode (bits, md5->count, 8);
          index = (uint_t)((md5->count[0] >> 3) & 0x3f);
          padLen = (index < 56) ? (56 - index) : (120 - index);
          Md5_Update(md5, PADDING, padLen);
          Md5_Update(md5, bits, 8);
          md5->finished = 1;
        }
      if ( !digest ) digest = __Malloc(16);
      Md5_Internal_Encode(digest, md5->state, 16);
      return digest;
    }
Re[13]: очень сильный C++
От: Alexéy Sudachén Чили  
Дата: 31.08.12 21:21
Оценка:
P>зато здесь красота:
P>
P>void *Yo_Unwind_Scope(void *pooled,int min_top,void *mark)
P>


И что тебя там так возбудило? Ты скажи, может там что улучшить есть.
Re[14]: очень сильный C++
От: Piko  
Дата: 31.08.12 21:34
Оценка:
Здравствуйте, Alexéy Sudachén, Вы писали:

AS>И что тебя там так возбудило? Ты скажи, может там что улучшить есть.


оставим не надолго все субъективные момент.
объективно: а тебя не смущает факт, что такой конкретный объект как MD5, фактически имеет виртуальную таблицу (заполняемую вручную) и живёт в куче? хоть капельку, а?
Re[15]: очень сильный C++
От: Alexéy Sudachén Чили  
Дата: 31.08.12 21:46
Оценка:
P>оставим не надолго все субъективные момент.
P>объективно: а тебя не смущает факт, что такой конкретный объект как MD5, фактически имеет виртуальную таблицу (заполняемую вручную) и живёт в куче? хоть капельку, а?

Здесь нет. На скорость это не влияет а использовать удобно. Надо понимать что этот 'конкретный' объект имеет абстракный протокол позволяющий использовать его много где. Например для подсчёта хеш-суммы абстрактного потока данных. Oj_Digest_Update_OjMID — это оно и есть.

Там где нужны скорость и отсутствие хипа я напишу так:

byte_t digest[16];
YO_MD5 md5 = YO_MD5_INITIALIZER;
Md5_Update(&md5,data,len);
Md5_Finish(&md5,digest);

или ещё короче, что ровно то же самое

byte_t digest[16];
Md5_Digest(data,len,digest);


Не знаю на сколько у тебя старая версия, но думаю там это всё есть. С перманентной же оптимизацией всего что движется это тебе к идейно верным C++ программерам, а не ко мне.
Re[12]: очень сильный C++
От: Piko  
Дата: 31.08.12 21:50
Оценка:
Здравствуйте, Alexéy Sudachén, Вы писали:

AS>Ну, как минимум на С++ нужно будет разруливать RAII с буфером и обьектом.


как-то "разруливать RAII" звучит не убедительно на фоне возюконья вручную с vtable, поддержки стэка в tls и всего прочего.

AS>Или делать объект хеша автоматическим, но буфер всёравно надо будет как-то гардить.


Что конкретно ты имеешь ввиду? какой буфер гародить?
Re[13]: очень сильный C++
От: Alexéy Sudachén Чили  
Дата: 31.08.12 21:52
Оценка:
P>>>>>http://www.rsdn.ru/poll/3561.aspx
Автор: Piko
Дата: 13.05.12
Вопрос: Является ли приведённый ниже фрагмент кода синтаксическим онанизмом?
[ccode]
#define __Auto_Release \
switch ( 0 ) \
if ( 0 ); else \
while ( 1 ) \
if ( 1 ) \
{ \
int YOYO_LOCAL_ID(Mark); \
Yo_Unwind_Scope(0,0,&YOYO_LOCAL_ID(Mark)); \
break; \
case 0: Yo_Pool_Ptr(&YOYO_LOCAL_ID(Mark),Yo_Pool_Marker_Tag); \
goto YOYO_LOCAL_ID(Body);\
} \
else \
YOYO_LOCAL_ID(Body):
[/ccode]
Пример использования:
[ccode]
__Auto_Release
{
YOYO_BUFFER *bf = 0;
bf = Oj_Read_All(Cfile_Open(fname,"r"));
/* ... do some buffer processing */
Oj_Write_Full(Cfile_Open(Str_Concat(fname,".1"),"w+"),bf->at,bf->count);
}
[/ccode]

AS>>>>Смешно, да. Сколько из них пишут на С?
P>>>какая разница сколько, я вопрос вроде чётко задал.
AS>>Ну я вот возьму приду к программерам на дельфи и спрошу что они думают про БЮСТ. Я думаю ответ ты сам знаешь. Или ты таки серьёзно считаешь что С и C++ одно и тоже?

P>я вообще не об этом. под вопросом имел ввиду выделенное, а не голосование


Мой ответ ты знаешь, а чей ещё тебе нужен, зависит от того у кого спрашивать. Если спрашивать на форуме C++ программеров, то ответ очевиден. Этот код нарушет многие догматы С++ и вообще к C++ не применим. Он там просто не будет работать.

Задавать вопрос в пустоту, предполагая ответ или на группу очевидной принадлежности — это демагогия. Уважаемый, вы что демагог?!
Re[14]: очень сильный C++
От: Piko  
Дата: 31.08.12 21:59
Оценка:
Здравствуйте, Alexéy Sudachén, Вы писали:

P>>я вообще не об этом. под вопросом имел ввиду выделенное, а не голосование

AS>Мой ответ ты знаешь, а чей ещё тебе нужен, зависит от того у кого спрашивать. Если спрашивать на форуме C++ программеров, то ответ очевиден.

так, ты опять про голосование?
Ну давай сходим на форум C программистов, и зададим точно такой же вопрос там, ок? Организуешь?

AS>Этот код нарушет многие догматы С++ и вообще к C++ не применим. Он там просто не будет работать.


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

AS>Задавать вопрос в пустоту, предполагая ответ или на группу очевидной принадлежности — это демагогия. Уважаемый, вы что демагог?!


ну вод давай зададим вопрос в группе с другой очевидной принадлежностью, ок?
Re[9]: очень сильный C++
От: Олег К.  
Дата: 31.08.12 22:14
Оценка:
зиг>>но а остальное-то, что, тоже базовые знания? рефлекшн, многопоточность? ну ка приведи пример где они могут быть нужны чтоб формы делать

E__>Когда вижу формы(десктопные), сделанные без использования многопоточности(т.е. "пилим все действия в потоке гуи"), я начинаю очень не любить тех, кто принял решение дать задание писать эту форму человеку, не знакомому с потоками.


А можешь привести примеры из реального кода? Что именно делалось в ГУИ потоках и сколько времени занимало?
Re[4]: очень сильный C++
От: Олег К.  
Дата: 31.08.12 22:15
Оценка:
ОК>>Все намного проще. Сильный это если пишет и желает писать в стиле "меня Александреску в полнолуние укусил." Если же нет, то слабак.

KP>Это не сильный, это я не буду писать кто, т.к. придет какой-нить админ и меня забанит


Это сарказм был.
Re[3]: очень сильный C++
От: Олег К.  
Дата: 31.08.12 22:19
Оценка:
KP>> Само собой, для Си их указывать не надо, там работа на 60-80% из хождения по граблям состоит и это видно с первого взгляда, в отличие от...

AS>Вот кстати интересный момент. Я сейчас свои проекты в основном пишу на С и о граблях даже не задумываюсь! Собственно вопрос техники программирования и библиотеки примитивов. Та техника, что я создал, позволяет мне писать даже с меньшим напрягом чем на С++.


Что можешь сказать о поддерживаемости кода с использованием техники что ты создал другими программистами?

AS>Так что не всё так очевидно.


Согласен.
Re[4]: очень сильный C++
От: Олег К.  
Дата: 31.08.12 22:20
Оценка:
>> Вот кстати интересный момент. Я сейчас свои проекты в основном пишу на С
>> и о граблях даже не задумываюсь! Собственно вопрос техники
>> программирования и библиотеки примитивов. Та техника, что я создал,
>> позволяет мне писать даже с меньшим напрягом чем на С++.
V>Это приходит с большим опытом. А основная масса плюсового кода написана
V>"укушенными Александреску" и с тщательно разложенными граблями. Кстати,
V>на С чаще всего большинство кода не лучше (но соотношение в пользу С —
V>там код получше).

Это потому что Си существенно меньше плюсов.
Re[14]: очень сильный C++
От: Piko  
Дата: 31.08.12 22:24
Оценка:
Здравствуйте, Alexéy Sudachén, Вы писали:

AS>>>Или делать объект хеша автоматическим, но буфер всёравно надо будет как-то гардить.

P>>Что конкретно ты имеешь ввиду? какой буфер гародить?
AS>Забудь. Я знаю что ты фанат С++. Ты знаешь что мне покласть на догматы. Давай не будем засорять форум бессмысленным боданием? Чего ты собственно хочешь добится? Убедить меня что С++ весь такой классный? Блин, я на нём 20-лет колбашу, а экстазы от александреску-стайл меня отпустили ещё в начале века. Убедить меня что на С жизни нет? Ну это просто не так. Обосрать то что я делаю.... ну разве что. Если это доставляет тебе удовольствие — ради бога, но только не удивляйся если я не буду тебе отвечать. Ок?

При чём тут вообще догматы, фанатизм и александреску стайл?
убеждать тебя ни в чём не собираюсь.

Хочу просто понять, какой именно "буфер" "всёравно надо будет как-то гардить"
Re[11]: очень сильный C++
От: Piko  
Дата: 31.08.12 22:53
Оценка:
Здравствуйте, Олег К., Вы писали:

ОК>Всего кода не видел. Поэтому скажу "возможно" но сразу же возникает вопрос. В какой момент это "все" почистится?


аллоцированные объекты у него помещаются в tls стэк , для каждого объекта хранится свой deleter, адрес и т.д.
очистка скорей всего происходит выше по callstack'у от этого кода, там будет что-нибудь типа:
int saved_deep=current_stack_deep();
// do any shit
stack_unwind_to_deep(saved_deep);
Re[12]: очень сильный C++
От: Олег К.  
Дата: 31.08.12 23:00
Оценка:
ОК>>Всего кода не видел. Поэтому скажу "возможно" но сразу же возникает вопрос. В какой момент это "все" почистится?

P>аллоцированные объекты у него помещаются в tls стэк , для каждого объекта хранится свой deleter, адрес и т.д.

P>очистка скорей всего происходит выше по callstack'у от этого кода, там будет что-нибудь типа:
P>
P>int saved_deep=current_stack_deep();
P>// do any shit
P>stack_unwind_to_deep(saved_deep);
P>


Жесть!
Re[13]: очень сильный C++
От: Piko  
Дата: 31.08.12 23:07
Оценка:
Здравствуйте, Олег К., Вы писали:

ОК>>>Всего кода не видел. Поэтому скажу "возможно" но сразу же возникает вопрос. В какой момент это "все" почистится?

P>>аллоцированные объекты у него помещаются в tls стэк , для каждого объекта хранится свой deleter, адрес и т.д.
P>>очистка скорей всего происходит выше по callstack'у от этого кода, там будет что-нибудь типа:
P>>
P>>int saved_deep=current_stack_deep();
P>>// do any shit
P>>stack_unwind_to_deep(saved_deep);
P>>

ОК>Жесть!

только там там это называется Yo_Unwind_Scope и Yo_Push_Scope (код гуглится по этим названиям)
  #define __Auto_Release \
  switch ( 0 ) while ( 1 ) \
    if ( 1 ) \
      { \
        Yo_Unwind_Scope(0,0,0); \
        break; \
      case 0: Yo_Push_Scope(); \
        goto YOYO_LOCAL_ID(ar_Body);\
      } \
    else \
      YOYO_LOCAL_ID(ar_Body):

этот макрос даёт возможность писать:

__Auto_Release
{

}


кстати, на счёт этого макроса — а разве нельзя его было сделать через for?
Re[4]: очень сильный C++
От: Alexéy Sudachén Чили  
Дата: 31.08.12 23:11
Оценка:
AS>>Вот кстати интересный момент. Я сейчас свои проекты в основном пишу на С и о граблях даже не задумываюсь! Собственно вопрос техники программирования и библиотеки примитивов. Та техника, что я создал, позволяет мне писать даже с меньшим напрягом чем на С++.
ОК>Что можешь сказать о поддерживаемости кода с использованием техники что ты создал другими программистами?

А что там поддерживать. Автопул, он и есть автопул. Если С++ головного мозга не сильно обострён, то всё очень просто и естественно.
Re[13]: очень сильный C++
От: Alexéy Sudachén Чили  
Дата: 31.08.12 23:11
Оценка:
P>>аллоцированные объекты у него помещаются в tls стэк , для каждого объекта хранится свой deleter, адрес и т.д.
P>>очистка скорей всего происходит выше по callstack'у от этого кода, там будет что-нибудь типа:
P>>
P>>int saved_deep=current_stack_deep();
P>>// do any shit
P>>stack_unwind_to_deep(saved_deep);
P>>


ОК>Жесть!


Угу, я сам не слышал. Мне сосед напел ) А уж голос у соседа....
Re[14]: очень сильный C++
От: Alexéy Sudachén Чили  
Дата: 31.08.12 23:13
Оценка:
ЗP>кстати, на счёт этого макроса — а разве нельзя его было сделать через for?

А ты сделай.
Re[15]: очень сильный C++
От: Piko  
Дата: 31.08.12 23:15
Оценка:
Здравствуйте, Alexéy Sudachén, Вы писали:

ЗP>>кстати, на счёт этого макроса — а разве нельзя его было сделать через for?

AS>А ты сделай.

см выше
Re[16]: очень сильный C++
От: Alexéy Sudachén Чили  
Дата: 31.08.12 23:18
Оценка:
AS>>А ты сделай.
P>см выше

Круто. Только это С.
Re[8]: очень сильный C++
От: Трололоша  
Дата: 31.08.12 23:19
Оценка:
Здравствуйте, Alexey Sudachen, Вы писали:

AS>Вот на практике оказалось, что несмотря на то что кое-что в плюсах генерируется автоматом, писать таки на С нужно меньше

У меня получается строго наоборот.

AS> Можешь мне конечно не верить, но вот так вот получается.

А что тут играть в верю/не верю.
Просто покажи код.

AS>Собственно, а что нужно писать каждый раз и где не хватает автоматизации? Оно как бы реально нужно, или просто привычка давит?

Захват/выделение ресурсов, освобождение этих ресурсов, контейнера и прочие мелочи жизни.
... << RSDN@Home >>
Да, йа зелёный тролль!
Re[10]: очень сильный C++
От: Трололоша  
Дата: 31.08.12 23:19
Оценка:
Здравствуйте, Alexey Sudachen, Вы писали:

P>>это с онанизмом или без?

P>>http://www.rsdn.ru/poll/3561.aspx
Автор: Piko
Дата: 13.05.12
Вопрос: Является ли приведённый ниже фрагмент кода синтаксическим онанизмом?
[ccode]
#define __Auto_Release \
switch ( 0 ) \
if ( 0 ); else \
while ( 1 ) \
if ( 1 ) \
{ \
int YOYO_LOCAL_ID(Mark); \
Yo_Unwind_Scope(0,0,&YOYO_LOCAL_ID(Mark)); \
break; \
case 0: Yo_Pool_Ptr(&YOYO_LOCAL_ID(Mark),Yo_Pool_Marker_Tag); \
goto YOYO_LOCAL_ID(Body);\
} \
else \
YOYO_LOCAL_ID(Body):
[/ccode]
Пример использования:
[ccode]
__Auto_Release
{
YOYO_BUFFER *bf = 0;
bf = Oj_Read_All(Cfile_Open(fname,"r"));
/* ... do some buffer processing */
Oj_Write_Full(Cfile_Open(Str_Concat(fname,".1"),"w+"),bf->at,bf->count);
}
[/ccode]


AS>Смешно, да. Сколько из них пишут на С?

Да в любом случае это кошмар. Как прикажете это отлаживать? Как к этому прикрутить произвольный ресурс, а не только память?
... << RSDN@Home >>
Да, йа зелёный тролль!
Re[12]: очень сильный C++
От: Трололоша  
Дата: 31.08.12 23:19
Оценка:
Здравствуйте, Alexey Sudachen, Вы писали:

AS>И опять же. Неудобно как-то получается. Угробить минимум пять лет, научиться писать мега конструкции для контроля всего и вся, а тут оказывается один макрос и в сё в ажуре. Обидно, да. ))))

Покажи-ка как у тебя сделать scoped HANDLE, чтоб значиццо по выходу из функции оно само ему сделало if (m_handle != INVALID_HANDLE_VALUE) CloseHandle (m_handle);

AS>Ну, как минимум на С++ нужно будет разруливать RAII с буфером и обьектом.

Чего?

AS>Однако точно не больше. А с учётом что те люди что голосовали идейно верным способом ещё и пишут в основном так же идейно верно, (что хорошо видно по форуму).... тот же std::string ну очень популярен. Да, меньше получается. Даже на очень простом коде. Если же взять функцию где идёт активная работа с динамическими объектами, там вообще глаза на этих unique/shared сломаешь.


Что только люди не готовы оправдать лишь бы не писать на С++.
... << RSDN@Home >>
Да, йа зелёный тролль!
Re[14]: очень сильный C++
От: Трололоша  
Дата: 31.08.12 23:19
Оценка:
Здравствуйте, Alexey Sudachen, Вы писали:

AS>Ну, это вообще-то и не vtable. Как нить напишу статью как это всё работает. Пока очевидно что есть фреймворк, он как-то там написан. С его помощью можно писать простой и понятный код на старом добром С без подкладывания на каждом шагу соломки.

Ты по сути написал рантайм эмуляцию вызовов деструкторов, что С++ компилер делает в компилтайме.

AS>Вот собственно и всё. Так же очевидно, что так любимый всеми последователями религии двух плюсов 'закат солнца в ручную имени С' нигде в целевом коде не делается.

Т.е. мне надо или изобрести что то аналогичное, или разбираться в твоём FW, который выглядит право жутковато.
А скажи, как у тебя вот такой вот псевдокод будет выглядеть?
int void Foo (const char* filename)
{
    if (...)
    {
        Obj1 foo1;
        
        foo1.doFoo ();
        
        if (foo1.IsBar ())
        {
            Obj2 foo2;
            foo2.OpenFile (filename)
            
            if (foo2.IsFoo ())
            {
                Obj3 foo3;
                
                foo3.InitFrom (foo1, foo2);
                
                if (foo3.IsGood ())
                    return foo3.GetResult ();    // foo2 и foo 3 обязаны быть здесь автоматически разрушены
            }    // foo3 обязан быть здесь автоматически разрушен
        }    // foo2 обязан быть здесь автоматически разрушен
    
        if (foo1.IsFoo ())
        {
            Obj2 foo2;
            foo2.OpenFileEx (filename, DO_MAGIC);
            
            if (foo2.IsBar ())
            {
                Obj3 foo3;
                
                foo3.InitFrom (foo1, foo2);
                
                if (foo3.IsGood ())
                    return foo3.GetResult (); // foo2 и foo 3 обязаны быть здесь автоматически разрушены
            }    // foo3 обязан быть здесь автоматически разрушен
        }    // foo2 обязан быть здесь автоматически разрушен
    }
    
    return 0;
}


AS>>>Или делать объект хеша автоматическим, но буфер всёравно надо будет как-то гардить.

P>>Что конкретно ты имеешь ввиду? какой буфер гародить?
AS>Забудь.
Нет уж, сделал заявление — будь добр объяснить что ты имеешь в виду. А то как то уж больно непонятно ты выражаешься когда дело доходит до С++ конструкций.

AS>Я знаю что ты фанат С++. Ты знаешь что мне покласть на догматы.

Это гнилые отмазки и слив.
... << RSDN@Home >>
Да, йа зелёный тролль!
Re[17]: очень сильный C++
От: Piko  
Дата: 31.08.12 23:19
Оценка:
Здравствуйте, Alexéy Sudachén, Вы писали:

AS>>>А ты сделай.

P>>см выше
AS>Круто. Только это С.

http://ideone.com/4cSQN
"C99 strict (gcc-4.3.4)"
Re[18]: очень сильный C++
От: Alexéy Sudachén Чили  
Дата: 31.08.12 23:23
Оценка:
AS>>>>А ты сделай.
P>>>см выше
AS>>Круто. Только это С.

P>http://ideone.com/4cSQN

P>"C99 strict (gcc-4.3.4)"

И чего. Мисье теоретик?
Re[14]: очень сильный C++
От: Трололоша  
Дата: 31.08.12 23:27
Оценка:
Здравствуйте, Alexey Sudachen, Вы писали:

AS>Угу, я сам не слышал. Мне сосед напел ) А уж голос у соседа....

Ну дык расскажи сам коли что не так напето. От кутюр, тысызыть.
... << RSDN@Home >>
Да, йа зелёный тролль!
Re[20]: очень сильный C++
От: Piko  
Дата: 31.08.12 23:29
Оценка:
Здравствуйте, Piko, Вы писали:

P>что конкретно смущает?


я конечно догадываюсь что тебя смущает
#define MACRO_RAII for(int temp_var=push();temp_var==1;pop(&temp_var))

но почему бы явно не сказать?
Re[19]: очень сильный C++
От: Трололоша  
Дата: 31.08.12 23:31
Оценка:
Здравствуйте, Alexey Sudachen, Вы писали:

P>>http://ideone.com/4cSQN

P>>"C99 strict (gcc-4.3.4)"

AS>И чего. Мисье теоретик?

Ты чего, обиделсо что кто то нашёл способ сделать это проще?
... << RSDN@Home >>
Да, йа зелёный тролль!
Re[6]: очень сильный C++
От: Олег К.  
Дата: 31.08.12 23:34
Оценка:
AS>>А что там поддерживать. Автопул, он и есть автопул. Если С++ головного мозга не сильно обострён, то всё очень просто и естественно.
Т>В С++ тебе вообще не надо этим заморачиваться. Компилятор вызовет деструкторы по выходу из scope сам. Причём сделает это сразу, а не когда ты воткнёшь свой release макрос.

Который он еще и может забыть...

Т>Далее, С++ развёртка scope не требует дополнительной памяти в рантайме.

Т>В общем то, что ты изобрёл себе эдакий навороченный хелпер — молодец. Но вызывает недоумение ради чего ты так изгалялся.

А это как любители Александреску, только все делается в рамках языка Си (и скорее всего нестандартных функций).
Re[20]: очень сильный C++
От: Alexéy Sudachén Чили  
Дата: 31.08.12 23:36
Оценка:
AS>>И чего. Мисье теоретик?
Т>Ты чего, обиделсо что кто то нашёл способ сделать это проще?

Нет, просто в природе существуют другие компиллеры.
Re[16]: очень сильный C++
От: Piko  
Дата: 31.08.12 23:38
Оценка:
Здравствуйте, Alexéy Sudachén, Вы писали:

AS>>>>>Или делать объект хеша автоматическим, но буфер всёравно надо будет как-то гардить.

P>>>>Что конкретно ты имеешь ввиду? какой буфер гародить?
AS>>>Забудь.
Т>>Нет уж, сделал заявление — будь добр объяснить что ты имеешь в виду. А то как то уж больно непонятно ты выражаешься когда дело доходит до С++ конструкций.
AS>Пипец. Ну вы блин как дети. Это хеш. Он должен куда-то зафиналайзить свои вчисления. То есть либо ему должны передать буфер либо он его вернуть. Кто хендлит буфер? Такой примитив нужно обьяснять?! Или просто прицепиться к чему нить очень хочется? Ну давайте засрём ещё одну тему бессмысленным боданием. Это же только улучшит КЫВТ и неимоверно поднимет его в глазах всех как безусловно лучший проф ресурс.

rvo, nrvo, или move на худой конец, не?
Re[7]: очень сильный C++
От: Alexéy Sudachén Чили  
Дата: 31.08.12 23:38
Оценка:
AS>>>А что там поддерживать. Автопул, он и есть автопул. Если С++ головного мозга не сильно обострён, то всё очень просто и естественно.
Т>>В С++ тебе вообще не надо этим заморачиваться. Компилятор вызовет деструкторы по выходу из scope сам. Причём сделает это сразу, а не когда ты воткнёшь свой release макрос.
ОК>Который он еще и может забыть...

Для этого в С++ вообще-то надо смарты не забывать и не встать на грабли когда они хитро будут интерферировать. А так да, само по себе. Чистая магия однако.

ОК>А это как любители Александреску, только все делается в рамках языка Си (и скорее всего нестандартных функций).


Нестандартных это каких?
Re[18]: очень сильный C++
От: Piko  
Дата: 31.08.12 23:49
Оценка:
Здравствуйте, Alexéy Sudachén, Вы писали:

P>>rvo, nrvo, или move на худой конец, не?

AS>И ты узнаешь как глубока кроличья нора. Да именно так. RVO и т.д. Вместо простого указателя.

ога, простого указателя, который при создании нужно добавить в tsl stack, со своим deleter'ом, который раскручивается где-то наверху callstack'а, ога — простым
Re[19]: очень сильный C++
От: Piko  
Дата: 31.08.12 23:50
Оценка:
P>ога, простого указателя, который при создании нужно добавить в tls stack, со своим deleter'ом, который раскручивается где-то наверху callstack'а, ога — простым
Re[9]: очень сильный C++
От: Alexéy Sudachén Чили  
Дата: 31.08.12 23:54
Оценка:
ОК> что ты там наворотил и желания разбираться нету. Хочешь сказать что ты сделал все на чистом ANSI C?

C89/POSIX.
Re[20]: очень сильный C++
От: Alexéy Sudachén Чили  
Дата: 31.08.12 23:56
Оценка:
Здравствуйте, Piko, Вы писали:

P>>ога, простого указателя, который при создании нужно добавить в tls stack, со своим deleter'ом, который раскручивается где-то наверху callstack'а, ога — простым


Ты где-то видел в приведённом примере ручное добавление чего бы то ни было куда бы то ни было? Фантазии покоя не дают? Опять же ты бы код внимательно про TLS почитал, прежде чем фигню писать. И желательно не то старьё которое у тебя на винте лежит.
Re[21]: очень сильный C++
От: Piko  
Дата: 01.09.12 00:01
Оценка:
Здравствуйте, Alexéy Sudachén, Вы писали:

AS>>>>И ты узнаешь как глубока кроличья нора. Да именно так. RVO и т.д. Вместо простого указателя.

P>>>ога, простого указателя, который при создании нужно добавить в tls stack, со своим deleter'ом, который раскручивается где-то наверху callstack'а, ога — простым
AS>Ты где-то видел в приведённом примере ручное добавление чего бы то ни было куда бы то ни было? Фантазии покоя не дают?

а я не говорил что его нужно руками добавлять, но простоты это ему не прибавляет
Re[9]: очень сильный C++
От: Piko  
Дата: 01.09.12 00:04
Оценка:
Здравствуйте, Олег К., Вы писали:

ОК> что ты там наворотил и желания разбираться нету. Хочешь сказать что ты сделал все на чистом ANSI C?


на счёт его макроса для действия в конце блока не уверен (я помню он по поводу подобного кода, не раз тему создавал, то на intel что-то отвалится, то ещё что-то),
да и не в нём суть, а такого рода автопул реализовать на чистом C можно. (ну там без TLS, и т.п.)
Re[21]: очень сильный C++
От: Трололоша  
Дата: 01.09.12 03:29
Оценка:
Здравствуйте, Alexey Sudachen, Вы писали:

AS>>>И чего. Мисье теоретик?

Т>>Ты чего, обиделсо что кто то нашёл способ сделать это проще?

AS>Нет, просто в природе существуют другие компиллеры.

Ты хотел сказать "старые стандарты"
... << RSDN@Home >>
Да, йа зелёный тролль!
Re[8]: очень сильный C++
От: Трололоша  
Дата: 01.09.12 03:29
Оценка:
Здравствуйте, Alexey Sudachen, Вы писали:

AS>Для этого в С++ вообще-то надо смарты не забывать

Это называется "не использовать сырые указатели для владения данными".

AS> и не встать на грабли когда они хитро будут интерферировать.

Например? Ну кроме тупых ошибок когда сырой указатель из new суют сразу в несколько смартов на владение.
... << RSDN@Home >>
Да, йа зелёный тролль!
Re[18]: очень сильный C++
От: Трололоша  
Дата: 01.09.12 03:29
Оценка:
Здравствуйте, Alexey Sudachen, Вы писали:

AS>И ты узнаешь как глубока кроличья нора. Да именно так. RVO и т.д. Вместо простого указателя.

Именно так. Никаких сырых указателей без владельца бегать не должно.
... << RSDN@Home >>
Да, йа зелёный тролль!
Re[10]: очень сильный C++
От: Eugeny__ Украина  
Дата: 01.09.12 21:25
Оценка:
Здравствуйте, зиг, Вы писали:


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


E__>>Когда вижу формы(десктопные), сделанные без использования многопоточности(т.е. "пилим все действия в потоке гуи"), я начинаю очень не любить тех, кто принял решение дать задание писать эту форму человеку, не знакомому с потоками.


зиг>я не про десктоп


А я не телепат, но значение "форма" в программинге — скорее десктопное(хотя, понятно, веб — тоже формы). Потому и указал специально.

Для веб-форм, хотя-бы кому-то в команде, как минимум, неплохо бы знать нюансы класслоадеров, например(если мы про джаву). И понимать, что такое permgen, и почему иногда возникают его нехватки(и, главное, чем они вызваны, и как это устранить). А это уже относится к знанию кишков jvm, и такой человек врядли не будет знать рефлекшн и многопоточность.

Хотя согласен, именно для клепания форм оно нужно опосредованно, хотя, с пониманием нюансов можно не допустить неприятных ошибок.
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Re[21]: очень сильный C++
От: Patalog Россия  
Дата: 02.09.12 07:37
Оценка:
Здравствуйте, Alexéy Sudachén, Вы писали:

[]

AS>Опять же ты бы код внимательно про TLS почитал, прежде чем фигню писать. И желательно не то старьё которое у тебя на винте лежит.


Это стоит понимать как "с тех пор у меня отрос очень сильный С и теперь там все еще лучше"?
Почетный кавалер ордена Совка.
Re[22]: очень сильный C++
От: Alexéy Sudachén Чили  
Дата: 02.09.12 09:13
Оценка:
AS>>Опять же ты бы код внимательно про TLS почитал, прежде чем фигню писать. И желательно не то старьё которое у тебя на винте лежит.
P>Это стоит понимать как "с тех пор у меня отрос очень сильный С и теперь там все еще лучше"?

Нет, это надо понимать как — теперь там этот TLS действительно появился, а не только упоминание о нём ( как и многопоточность). Но ведь чукча не читатель, чукча — писатель.
Re[22]: очень сильный C++
От: Alexéy Sudachén Чили  
Дата: 02.09.12 09:26
Оценка:
AS>>>>И чего. Мисье теоретик?
Т>>>Ты чего, обиделсо что кто то нашёл способ сделать это проще?
AS>>Нет, просто в природе существуют другие компиллеры.
Т>Ты хотел сказать "старые стандарты"

Нет, я не только хотел сказать, но ВСЕГДА говорю. — Существуют ТОЛЬКО компиляторы. Стандарты это фантазия некоторой группы людей о идеальном мире, когда нибудь, где нибудь, частично он даже воплощается в реальность. Однако программист пишущий на стандарте, а не на компиляторе — бесполезен чуть менее чем полностью.

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

Безграничная любовь к стандарту и столь же глубокая вера в него — как лакмусовая бумажка, практически однозначный критерий теоретика.
Re[17]: очень сильный C++
От: Alexéy Sudachén Чили  
Дата: 02.09.12 09:43
Оценка:
AS>>В мире похоже существует только C++. Всё что можно хоть как-то притянуть в модель уютного плюсового мирка — калька с плюсов. Однако!
Т>Переведи на русский, плз. Я что то не понял что ты хотел сказать.

Ну, как ты разве не знаешь? Мне вот постоянно говорят что любой полиморфизм стыбрен из С++ и построен на vmt. Любой автоматический контроль за ресурсами упёрт из C++ и является пародией на RAII. Любая структурная обработка ошибок скопирована с C++.... С++ — предок слонов, покупайте, наш C++!

Т>Т.е. вручную таки надо будет scope задавать, помимо языкового scope.


Ну я так понимаю здесь ты scope в ручную не задаёшь да?
Т>SecureBuffer<BYTE, SHA512::HashSize> hash;
Re[23]: очень сильный C++
От: Patalog Россия  
Дата: 02.09.12 14:46
Оценка:
Здравствуйте, Alexéy Sudachén, Вы писали:

[]

AS>Но ведь чукча не читатель, чукча — писатель.


Ну, раз писатель, дарю идею — напиши книжку про свой "фреймворк", типа Modern C Design. соберешь кучу лута, а на форуме будут обсуждать укушенных Sudachén'ом. PROFIT!
Почетный кавалер ордена Совка.
Re[18]: очень сильный C++
От: Piko  
Дата: 02.09.12 16:26
Оценка:
P>>>>>кстати, на счёт этого макроса — а разве нельзя его было сделать через for?
AS>>>>А ты сделай.
P>>>см выше
AS>>Круто. Только это С.
P>http://ideone.com/4cSQN
P>"C99 strict (gcc-4.3.4)"

Это устроит?
http://ideone.com/sPo5k
#include <stdio.h>
char done;
void push(void)
{
    done=0;
    printf("push\n");
}
char next(void)
{
    return !done;
}
void pop(void)
{
    done=1;
    printf("pop\n");
}
#define SCOPE for(push();next();pop())
int main(void)
{
    SCOPE
    {
        SCOPE printf("LOL\n");
        SCOPE printf("WTF\n");
    }
}
Re[23]: очень сильный C++
От: Трололоша  
Дата: 02.09.12 18:28
Оценка:
Здравствуйте, Alexey Sudachen, Вы писали:

AS>Нет, я не только хотел сказать, но ВСЕГДА говорю. — Существуют ТОЛЬКО компиляторы. Стандарты это фантазия некоторой группы людей о идеальном мире, когда нибудь, где нибудь, частично он даже воплощается в реальность.

Отчасти согласен, но вот беда, компиляторы постоянно меняются.

AS> Однако программист пишущий на стандарте, а не на компиляторе — бесполезен чуть менее чем полностью.

Компилятор обязан соотвествовать хотя бы одному стандарту. Иначе это плохой компилятор и от него можно ожидать подлянок в самых неожиданных местах. Он разумеется имеет право на существование, но вот пользоваться им — на свой страх и риск. Если где то компилятор вдруг не соотвествует — следует зафайлить багрепорт производителю. Если производитель не желает приводить глючащее поведение к стандарту — стоит подумать о вменяемости производителя и отказе от его продукции.
Тут не прогибаться под баги компилера надо а требовать соблюдения стандарта.
Если непонятно почему — спроецируй это на ГОСТы.
... << RSDN@Home >>
Да, йа зелёный тролль!
Re[19]: очень сильный C++
От: Alexéy Sudachén Чили  
Дата: 02.09.12 18:36
Оценка:
P>Это устроит?
P>http://ideone.com/sPo5k

Ты действительно считаешь меня идиотом?! Вопрос конечно риторический, но всё-таки?
Кстати, про TLS не забыл? )))

В принципе что-то типа этого многие таки и используют. Для обработки исключений. Автоматического управления кроме ручного запихивание а авториелиз пул я что-то не видел. Может и есть, и наверняка даже похожим способом.

http://www.adomas.org/excc/source/exception.h.html
http://code.google.com/p/exceptions4c/source/browse/trunk/src/e4c.h

и ещё несколько, уже не помню... но ИМХО практически все при этом стараются юзать какие-то расширения компилера. И с такими макро-наворотами, что мой малюсенький макрос + трюк со switch'oм — сама простота. Я так понимаю именно switch тебя возбуждает, а совсем не макросы или факт неиспользования С++. Ну да, есть такая конструкция в языке, что же тут поделаешь, но не все её похоже способны осилить.

Ты сырки то посмотри чуток внимательнее, там вообще-то два способа. И нормально используется совсем не тот, который ты увидел. Хотя есть у меня чуЙство что со второго тебя вообще на части порвёт от возмущения. ))))
Re[20]: очень сильный C++
От: Piko  
Дата: 02.09.12 18:53
Оценка:
Здравствуйте, Alexéy Sudachén, Вы писали:

P>>Это устроит?

P>>http://ideone.com/sPo5k
AS>Ты действительно считаешь меня идиотом?! Вопрос конечно риторический, но всё-таки?

А что не так?

P>>>>>кстати, на счёт этого макроса — а разве нельзя его было сделать через for?
AS>>>>А ты сделай.

я сделал, но ответа не получил

AS>Кстати, про TLS не забыл? )))


нет, не забыл — естественно нужен TLS

AS>Я так понимаю именно switch тебя возбуждает, а совсем не макросы или факт неиспользования С++. Ну да, есть такая конструкция в языке, что же тут поделаешь, но не все её похоже способны осилить.


ога, судя по своим сообщениям, даже Intel'овский компилер что-то подобное не прожевал. И кто там теоретизирует?
Если серьёзно, то твой switch меня совсем не возбуждает, я просто хотел узнать чем более простая реализация через for не подошла, но видимо не судьба.
Re[21]: очень сильный C++
От: Alexéy Sudachén Чили  
Дата: 02.09.12 19:03
Оценка:
P>А что не так?

Ну например, раскрутка стека. Одна ошибка с return/break — утечка куска памяти.

AS>>Кстати, про TLS не забыл? )))

P>нет, не забыл — естественно нужен TLS

Правда, что же я его не вижу-то? ))) Желательно чтобы CL/WIN32/POSIX в одном флаконе. Не находишь что как-то насемитрично получается? С меня работающий код, а с тебя типа идея, которая как бы 'очевидно' делает то же самое. Не первый раз уже. Теоретики, они такие теоретики.

AS>>Я так понимаю именно switch тебя возбуждает, а совсем не макросы или факт неиспользования С++. Ну да, есть такая конструкция в языке, что же тут поделаешь, но не все её похоже способны осилить.

P>ога, судя по своим сообщениям, даже Intel'овский компилер что-то подобное не прожевал. И кто там теоретизирует?

Не даже, а единственный из всего что мне доступно. Что кстати баг, но таки это уже возвращает нас к вопросу о так любимых тобой стандартах. Как-то вот не работают стандарты. Весело да?
Re[19]: очень сильный C++
От: Alexéy Sudachén Чили  
Дата: 02.09.12 19:10
Оценка:
Т>точно так же как я тут "задаю" scope для переменной i.

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

Ну да, в С++ это одно и то же (включая троллинг). Хотя про то что даже в С, это не всегда так, я уже писал вроде.
Re[20]: очень сильный C++
От: Трололоша  
Дата: 02.09.12 19:21
Оценка:
Здравствуйте, Alexey Sudachen, Вы писали:

Т>>точно так же как я тут "задаю" scope для переменной i.

AS>Иначе говоря ты в принципе не видешь различия между областью видимости имени, синтаксической областью жизни обьекта, логической областью жизни обьекта и действиями навешанными на выход из области видимости?
Просто у меня scope заданы чётко, по фигурным скобкам. Мне надо думать про время жизни объекта только если я хочу вывести его из default поведения.

AS>Ну да, в С++ это одно и то же

Почему ты всё время скатываешься к этой странной фразе? Тебя что, в детстве обижали С++сники?
... << RSDN@Home >>
Да, йа зелёный тролль!
Re[22]: очень сильный C++
От: Piko  
Дата: 02.09.12 19:24
Оценка:
Здравствуйте, Alexéy Sudachén, Вы писали:

P>>А что не так?

AS>Ну например, раскрутка стека. Одна ошибка с return/break — утечка куска памяти.

контекст можно сделать из композиции static global var и __LINE__

AS>>>Кстати, про TLS не забыл? )))

P>>нет, не забыл — естественно нужен TLS :xz
AS>Правда, что же я его не вижу-то? ))) Желательно чтобы CL/WIN32/POSIX в одном флаконе. Не находишь что как-то насемитрично получается?

TLS ты уже используешь

AS>>>Я так понимаю именно switch тебя возбуждает, а совсем не макросы или факт неиспользования С++. Ну да, есть такая конструкция в языке, что же тут поделаешь, но не все её похоже способны осилить.

P>>ога, судя по своим сообщениям, даже Intel'овский компилер что-то подобное не прожевал. И кто там теоретизирует?
AS>Не даже, а единственный из всего что мне доступно. Что кстати баг, но таки это уже возвращает нас к вопросу о так любимых тобой стандартах. Как-то вот не работают стандарты. Весело да?

когда я с тобой вообще говорил про стандарты? про стандарты вроде ты начал говорить
Re[21]: очень сильный C++
От: Alexéy Sudachén Чили  
Дата: 02.09.12 19:30
Оценка:
AS>>Иначе говоря ты в принципе не видешь различия между областью видимости имени, синтаксической областью жизни обьекта, логической областью жизни обьекта и действиями навешанными на выход из области видимости?
Т>Просто у меня scope заданы чётко, по фигурным скобкам. Мне надо думать про время жизни объекта только если я хочу вывести его из default поведения.

И как по этому обьекту можно понять что там на выходе будет память затераться? ИМХО, когда надо думать про время жизни, нужно явным образом это время жизни закнчивать. В противном случае не всё ли равно когда обьект будет разрушен — на выходе из блока, из функции, или вообще при общей сборке мусора?

AS>>Ну да, в С++ это одно и то же

Т>Почему ты всё время скатываешься к этой странной фразе? Тебя что, в детстве обижали С++сники?

Мне не нравится что С++'ки на полном серьёзе считают свой язык верхом совершенства языкостроения, и как следствие даже не пытаются думать за его рамками.
Re[22]: очень сильный C++
От: Piko  
Дата: 02.09.12 19:37
Оценка:
Здравствуйте, Alexéy Sudachén, Вы писали:

AS>Мне не нравится что С++'ки на полном серьёзе считают свой язык верхом совершенства языкостроения, и как следствие даже не пытаются думать за его рамками.


кто тебе это сказал? Если у людей есть аргументы против твоих высказываний (типа того, что на C получается меньше кода чем на C++), это не значит что они какие-то ограниченные.
имхо думаю многие C++'ки на этом форуме сочтут изучение нового языка, новых подходов, полезным занятием
тот же Саттер советует изучать разные языки
Re[23]: очень сильный C++
От: Alexéy Sudachén Чили  
Дата: 02.09.12 19:37
Оценка:
P>контекст можно сделать из композиции static global var и __LINE__

Это как? C учётом что может быть много файлов, много точек использования и они как бы могут совпасть.

AS>>Правда, что же я его не вижу-то? ))) Желательно чтобы CL/WIN32/POSIX в одном флаконе. Не находишь что как-то насемитрично получается?

P>TLS ты уже используешь

Причём только тогда когда это нужно. А вот у тебя я его совсем не вижу. Собственно я о том что есть разница между идей и работающей реализацией.

AS>>Не даже, а единственный из всего что мне доступно. Что кстати баг, но таки это уже возвращает нас к вопросу о так любимых тобой стандартах. Как-то вот не работают стандарты. Весело да?

P>когда я с тобой вообще говорил про стандарты? про стандарты вроде ты начал говорить

Ну возможно я что-то путаю и говорил не ты. Однако это не меняет того факта, что в интеле был баг, а мой код написан правильно. Но правым при этом оказался компилер ))) Надо будет попробовать скачать последнюю версию и проверить пофиксили ли.
Re[23]: очень сильный C++
От: Alexéy Sudachén Чили  
Дата: 02.09.12 19:43
Оценка:
P>кто тебе это сказал? Если у людей есть аргументы против твоих высказываний (типа того, что на C получается меньше кода чем на C++), это не значит что они какие-то ограниченные.
P>имхо думаю многие C++'ки на этом форуме сочтут изучение нового языка, новых подходов, полезным занятием

C++'ки на этом форуме и сказали. Она из фраз прямо так и звучит — 'C — не нужен'! Да хотя бы вспомни что писали в теме с примером на C, где перемнная переживала выход из облости видимости... ))) При том что я специально предупредил, что это не для них пример.
Re[24]: очень сильный C++
От: Piko  
Дата: 02.09.12 19:47
Оценка:
Здравствуйте, Alexéy Sudachén, Вы писали:

P>>контекст можно сделать из композиции static global var и __LINE__

AS>Это как? C учётом что может быть много файлов, много точек использования и они как бы могут совпасть.

эта переменная определяется в каждом файле, и имеет internal linkage — и поэтому вроде не отличается семантически от твоего решения.
в котором кстати идентификаторы тоже могут совпасть:

while(some_count)
{
    func_with__Auto_Release_inside(); // may return by "return"
}

при return внутри, не освобождённые ресурсы будут накапливаться (адрес в стэке может совпадать)

AS>>>Правда, что же я его не вижу-то? ))) Желательно чтобы CL/WIN32/POSIX в одном флаконе. Не находишь что как-то насемитрично получается?

P>>TLS ты уже используешь
AS>Причём только тогда когда это нужно. А вот у тебя я его совсем не вижу. Собственно я о том что есть разница между идей и работающей реализацией.

TLS тебе нужен в случаях использования __Auto_Release поэтому большой разницы в количестве раз его использования при __Auto_Release я не вижу.
Re[22]: очень сильный C++
От: Трололоша  
Дата: 02.09.12 19:47
Оценка:
Здравствуйте, Alexey Sudachen, Вы писали:

AS>ИМХО, когда надо думать про время жизни, нужно явным образом это время жизни закнчивать.

Из scope вышел — время жизни закончилось. Всё просто, как с обычными переменными.

AS> В противном случае не всё ли равно когда обьект будет разрушен — на выходе из блока, из функции, или вообще при общей сборке мусора?

Как правило не всё равно. Есть такое понятие как детерминированность.

AS>Мне не нравится что С++'ки на полном серьёзе считают свой язык верхом совершенства языкостроения

Тебе кажется. Ну или хочется в это верить.
... << RSDN@Home >>
Да, йа зелёный тролль!
Re[25]: очень сильный C++
От: Alexéy Sudachén Чили  
Дата: 02.09.12 19:59
Оценка:
P>эта переменная определяется в каждом файле, и имеет internal linkage — и поэтому вроде не отличается семантически от твоего решения.
P>в котором кстати идентификаторы тоже могут совпасть:

Э... какие идентификаторы? Подробнее пожалуйста.

P>при return внутри, не освобождённые ресурсы будут накапливаться (адрес в стэке может совпадать)


Вообще-то код с тяжёлыми вычислениями (работай с памятью) пишется как while () __Auto_Release, ну да не важно. Но таки да может. Однако это вопрос применения техники, на верхнем уровне обычно есть коллектор. То есть футпринт будет больше, но память всё равно будет собрана.

P>TLS тебе нужен в случаях использования __Auto_Release поэтому большой разницы в количестве раз его использования при __Auto_Release я не вижу.


Дело то не в этом, дело в том что идея при реализации может оказаться слишком громоздкой. Ты вот реально думаешь, что я вариант с for не рассматривал?! Даже если просто предположить что я до этого не додумался, те примеры кода (привёл выше), что я изучал до того как писать своё решение, как бы говорят что сие просто не возможно было пропустить.

И вот тут ты приходишь и говоришь, а почему бы не сделать проще.... ну дык сделай работающий вариант. Не забудь ещё обработку исключений, авто-снятие блокировок ... и мы сравним у кого получилось проще.
Re[23]: очень сильный C++
От: Alexéy Sudachén Чили  
Дата: 02.09.12 20:07
Оценка:
AS>> В противном случае не всё ли равно когда обьект будет разрушен — на выходе из блока, из функции, или вообще при общей сборке мусора?
Т>Как правило не всё равно. Есть такое понятие как детерминированность.

Есть ещё вопрос цены. Если для детерминированности, нужно держать в голове уйму не очевидного поведения, ИМХО нафиг такую детерминированность.

AS>>Мне не нравится что С++'ки на полном серьёзе считают свой язык верхом совершенства языкостроения

Т>Тебе кажется. Ну или хочется в это верить.

Ок, ну то есть, например, когда мне говорят что я срисовал объектную модель с C++, даже не разбираясь в коде, просто по тому что иначе не бывает — это мне кажется. И что мне в делать когда мне это так вот 'кажется'? Креститься? Опять же очевидно что мой вариант не есть калька с плюсового RAII, просто хотя бы по причине отсутствия жёсткой 'детерминированности'. Что я должен думать, когда мне 'кажется', что мне кто-то пытается объяснить что это именно RAII, просто потому как иначе быть не может?!
Re[24]: очень сильный C++
От: Трололоша  
Дата: 02.09.12 20:14
Оценка:
Здравствуйте, Alexey Sudachen, Вы писали:

AS>Есть ещё вопрос цены. Если для детерминированности, нужно держать в голове уйму не очевидного поведения, ИМХО нафиг такую детерминированность.

Какие уймы неочевидного поведения ты держишь когда пишешь int i; ?

AS>Ок, ну то есть, например, когда мне говорят что я срисовал объектную модель с C++, даже не разбираясь в коде, просто по тому что иначе не бывает — это мне кажется.

Ну это ты с теми кто тебе именно так сказал срись по этому поводу в отдельной подветке.

AS>Опять же очевидно что мой вариант не есть калька с плюсового RAII, просто хотя бы по причине отсутствия жёсткой 'детерминированности'.

Ну как бы её обеспечить у тебя скорее всего и не получится без распихивания вручную release макросов везде.

AS> Что я должен думать, когда мне 'кажется', что мне кто-то пытается объяснить что это именно RAII, просто потому как иначе быть не может?!

Твой подход больше на GC похож чем на RAII.
... << RSDN@Home >>
Да, йа зелёный тролль!
Re[25]: очень сильный C++
От: Alexéy Sudachén Чили  
Дата: 02.09.12 20:21
Оценка:
AS>>Есть ещё вопрос цены. Если для детерминированности, нужно держать в голове уйму не очевидного поведения, ИМХО нафиг такую детерминированность.
Т>Какие уймы неочевидного поведения ты держишь когда пишешь int i; ?

Э... ну я вообще то про более сложные конструкции ) int i — и в С примерно то же самое, хотя и не совсем.

AS>> Что я должен думать, когда мне 'кажется', что мне кто-то пытается объяснить что это именно RAII, просто потому как иначе быть не может?!

Т>Твой подход больше на GC похож чем на RAII.

Дык, вот и я о том же )))
Re[27]: очень сильный C++
От: Alexéy Sudachén Чили  
Дата: 02.09.12 20:34
Оценка:
AS>>Но таки да может.
P>грабли обыкновенные

Это мы с тобой уже обсуждали, грабли есть везде. Даже в шарпе с жабой. Вопрос в их разрушительности.

P>но это означает, что появляется излишняя логическая зависимость между функциями — нужно знать когда ставить этот костыль, то есть помнить какие функции используют ресурсы (кроме памяти), а какие нет — и тут появляется транзитивность.


На практике оказалось что это не так. Опять же к примеру, я щас пишу уйму сетевого кода, который работает с асинхронным I/O, дык вот там я вообще эти макросы не пишу. Ибо нафиг не нужно — коллектор есть в коде асинхронного монитора. Операции имеют относительно небольшой футпринт по памяти, ресурсы где надо освобождаются явно (для детерменированности). В случае броска исключения, все ресурсы до точки перехвата освобождаются в момент выбрасывания. Так что в реальности всё существенно проще.

P>Стоит тебе в одной малюсенькой функции внизу call-stack'а добавить один маленький ресурс, и БАХ все функции на пути от этого ресурса, до ближайшего костыля __Auto_Release становятся сами владельцами ресурса. То есть проверять нужно все эти пути при малейшем добавлении ЛОКАЛЬНОГО ресурса в мелкую функцию


Теперь попробуй посмотреть на это не как С++ программер, а например как программер на Жабе. Вот об этом я собственно и говорил.

P>Почему бы сразу было не ответить, а?


И что тебе это правда было интересно?! Вот честно. Или просто хотелось меня подначить? Мы ведь как бы с тобой уже не первый топик засираем совершенно банальными вещами.
Re[28]: очень сильный C++
От: Piko  
Дата: 02.09.12 21:21
Оценка:
Здравствуйте, Alexéy Sudachén, Вы писали:

P>>но это означает, что появляется излишняя логическая зависимость между функциями — нужно знать когда ставить этот костыль, то есть помнить какие функции используют ресурсы (кроме памяти), а какие нет — и тут появляется транзитивность.

AS>На практике оказалось что это не так. Опять же к примеру, я щас пишу уйму сетевого кода, который работает с асинхронным I/O, дык вот там я вообще эти макросы не пишу. Ибо нафиг не нужно — коллектор есть в коде асинхронного монитора. Операции имеют относительно небольшой футпринт по памяти, ресурсы где надо освобождаются явно (для детерменированности). В случае броска исключения, все ресурсы до точки перехвата освобождаются в момент выбрасывания. Так что в реальности всё существенно проще.

ну хз, грабли есть, с RAII было бы проще, зачем бежать от C++ "граблей", к другим граблям, я

P>>Стоит тебе в одной малюсенькой функции внизу call-stack'а добавить один маленький ресурс, и БАХ все функции на пути от этого ресурса, до ближайшего костыля __Auto_Release становятся сами владельцами ресурса. То есть проверять нужно все эти пути при малейшем добавлении ЛОКАЛЬНОГО ресурса в мелкую функцию

AS>Теперь попробуй посмотреть на это не как С++ программер, а например как программер на Жабе. Вот об этом я собственно и говорил.

дык, так мне всегда их было жалко, и в Java и в C# есть эта проблема с ресурсами (где-то тут я недавно это уже говорил), там и понапридумывали эти try-with-resources, using, или что там ещё
"обычный" программер на Java, если не знает об RAII может и не задумываться об этом, да и часто вообще не задумывается от exception-safety

P>>Почему бы сразу было не ответить, а?

AS>И что тебе это правда было интересно?! Вот честно. Или просто хотелось меня подначить? Мы ведь как бы с тобой уже не первый топик засираем совершенно банальными вещами.

да, честно было интересно. после того обсуждения, я в одном месте увидел похожее решение основанное на for (для C++). если этот код так уродлив, то на это должна быть причина, поэтому и спросил.
Re[10]: очень сильный C++
От: Eugeny__ Украина  
Дата: 03.09.12 09:58
Оценка:
Здравствуйте, Олег К., Вы писали:


E__>>Когда вижу формы(десктопные), сделанные без использования многопоточности(т.е. "пилим все действия в потоке гуи"), я начинаю очень не любить тех, кто принял решение дать задание писать эту форму человеку, не знакомому с потоками.


ОК>А можешь привести примеры из реального кода? Что именно делалось в ГУИ потоках и сколько времени занимало?


А зачем кода? В мире куча программ, в которых по нажатию кнопочки происходит обращение в сеть или БД, при этом до конца обращения интерфейс замерзает. Потому что программист не удосужился обращение запустить в отдельном потоке.
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Re[9]: очень сильный C++
От: Donz Россия http://donz-ru.livejournal.com
Дата: 03.09.12 11:32
Оценка:
Здравствуйте, abibok, Вы писали:

A>Исключительно потому, что их привели в качестве примера знаний, определяющих сильного программиста.


На РСДНе внезапно стало необходимо знать HashMap?

A>Не умение строить архитектуру приложения, не опыт поддержки и рефакторинга крупных проектов, не написание масштабируемых многозвенных приложений, а какое-то примитивное знание коллекций. Как же тогда называть того, кто силен в том, что описал я? Мега-гуру или Senior Lead Architect III?


Одно другого не исключает.

A>Интервью, где на позицию сильного джависта, спрашивают про коллекции — идиотское, и проводящие его специалисты — тоже идиоты, и работать в этой конторе не стоит.


Аргументы?

зиг>>но а остальное-то, что, тоже базовые знания? рефлекшн, многопоточность?

A>А что такого сакрального в многопоточности? Знание примитивов синхронизации? Общее представление о процессах, потоках и нитях?

http://www.rsdn.ru/forum/java/3622844.1.aspx
Автор: Golovach Ivan
Дата: 01.12.09
— я так понимаю, ни один из этих вопросов не должен вызвать затруднений у обычного ява-программиста?
Re[9]: очень сильный C++
От: Donz Россия http://donz-ru.livejournal.com
Дата: 03.09.12 11:44
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>Кстати, а на кой черт их спрашивать? В случае с плюсами никто не идет дальше различий между std::list и std::vector. Неужели трудно заглянуть в документацию по той или иной функции?


Нужно хотя бы знать о наличии функции. А в чем проблема ответить на простейший вопрос по коллекциям?

KP>Многопоточность — это критичное базовое знание. Без него вечно такие монстры выходит, что хоть стой хоть падай.


Можно знать, что такое синхронизация и почему нельзя хранить состояние одного запроса в поле сервлета. А можно про модель памяти, особенности volatile от версии к версии и т.д. Последнее обычному программисту не особо нужно.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.