Сообщение Re[29]: Java vs C# vs C++ от 03.10.2015 14:09
Изменено 03.10.2015 14:19 Evgeny.Panasyuk
Здравствуйте, Serginio1, Вы писали:
EP>>>>Как раз таки проблема в языках, об этом и речь. Высокоуровневый C++ быстрый отнюдь не только потому что для него оптимизаторы лучше, а во многом потому что в самом языке есть бесплатные, или практически бесплатные абстракции и высокоуровневые инструменты.
S>>> В C# еще больше. Посмотри на тот же Code First и Linq. Я без слез не могу смотреть на код С++ которые через COM вызывают 1С работая с Idispatch.
PM>>Не в первый раз наблюдаю, что при сравнении С++ с другими, более поздними языками, люди активно не использующие С++ приводят примеры кода 10-15 летней давности (MFC, COM). Причем уже в то время в Visual C++ была средства для нормальной работы с COM (ATL, #import, позже _com_ptr_t) которые позволяли писать код без многоэтажных if(SUCCEEDED()) AddRef/Release.
S> С голым Idispatch без библиотеки типов? В C# для этого есть dynamic.
Опиши конкретный use-case.
Если нужно вызвать метод с произвольным именем (method) и произвольным количеством аргументов (a1, a2, ...), без всякого предварительного описания — то можно например вот так:
EP>>>>Как раз таки проблема в языках, об этом и речь. Высокоуровневый C++ быстрый отнюдь не только потому что для него оптимизаторы лучше, а во многом потому что в самом языке есть бесплатные, или практически бесплатные абстракции и высокоуровневые инструменты.
S>>> В C# еще больше. Посмотри на тот же Code First и Linq. Я без слез не могу смотреть на код С++ которые через COM вызывают 1С работая с Idispatch.
PM>>Не в первый раз наблюдаю, что при сравнении С++ с другими, более поздними языками, люди активно не использующие С++ приводят примеры кода 10-15 летней давности (MFC, COM). Причем уже в то время в Visual C++ была средства для нормальной работы с COM (ATL, #import, позже _com_ptr_t) которые позволяли писать код без многоэтажных if(SUCCEEDED()) AddRef/Release.
S> С голым Idispatch без библиотеки типов? В C# для этого есть dynamic.
Опиши конкретный use-case.
Если нужно вызвать метод с произвольным именем (method) и произвольным количеством аргументов (a1, a2, ...), без всякого предварительного описания — то можно например вот так:
Dynamic x = ...;
x.call("method", a1, a2, ...);
// or
x > "method"_(a1, a2, ...);
А если заранее описать список возможных имён методов, то можно и так:x.method(a1, a2, ...)
Re[29]: Java vs C# vs C++
Здравствуйте, Serginio1, Вы писали:
EP>>>>Как раз таки проблема в языках, об этом и речь. Высокоуровневый C++ быстрый отнюдь не только потому что для него оптимизаторы лучше, а во многом потому что в самом языке есть бесплатные, или практически бесплатные абстракции и высокоуровневые инструменты.
S>>> В C# еще больше. Посмотри на тот же Code First и Linq. Я без слез не могу смотреть на код С++ которые через COM вызывают 1С работая с Idispatch.
PM>>Не в первый раз наблюдаю, что при сравнении С++ с другими, более поздними языками, люди активно не использующие С++ приводят примеры кода 10-15 летней давности (MFC, COM). Причем уже в то время в Visual C++ была средства для нормальной работы с COM (ATL, #import, позже _com_ptr_t) которые позволяли писать код без многоэтажных if(SUCCEEDED()) AddRef/Release.
S> С голым Idispatch без библиотеки типов? В C# для этого есть dynamic.
Опиши конкретный use-case.
Если нужно вызвать метод с произвольным именем (method) и произвольным количеством аргументов (a1, a2, ...), без всякого предварительного описания — то можно например вот так:
EP>>>>Как раз таки проблема в языках, об этом и речь. Высокоуровневый C++ быстрый отнюдь не только потому что для него оптимизаторы лучше, а во многом потому что в самом языке есть бесплатные, или практически бесплатные абстракции и высокоуровневые инструменты.
S>>> В C# еще больше. Посмотри на тот же Code First и Linq. Я без слез не могу смотреть на код С++ которые через COM вызывают 1С работая с Idispatch.
PM>>Не в первый раз наблюдаю, что при сравнении С++ с другими, более поздними языками, люди активно не использующие С++ приводят примеры кода 10-15 летней давности (MFC, COM). Причем уже в то время в Visual C++ была средства для нормальной работы с COM (ATL, #import, позже _com_ptr_t) которые позволяли писать код без многоэтажных if(SUCCEEDED()) AddRef/Release.
S> С голым Idispatch без библиотеки типов? В C# для этого есть dynamic.
Опиши конкретный use-case.
Если нужно вызвать метод с произвольным именем (method) и произвольным количеством аргументов (a1, a2, ...), без всякого предварительного описания — то можно например вот так:
Dynamic x = ...;
x.call("method", a1, a2, ...);
// or
x("method", a1, a2, ...);
// or
x > "method"_(a1, a2, ...);
А если заранее описать список возможных имён методов, то можно и так:x.method(a1, a2, ...)