JetBrains объявили о будущей поддержке C++ в ReSharper
От: Cirrus Россия  
Дата: 27.06.13 12:59
Оценка: 149 (10) :)
Подробности: http://habrahabr.ru/company/JetBrains/blog/184830/

05.07.13 13:29: Перенесено модератором из 'C/C++' — Кодт
--
Kirill Falk
JetBrains, Inc
http://www.jetbrains.com
"Develop with pleasure!"
Re: JetBrains объявили о будущей поддержке C++ в ReSharper
От: fdn721  
Дата: 03.07.13 04:10
Оценка: +3 -3
Здравствуйте, Cirrus, Вы писали:

C>Подробности: http://habrahabr.ru/company/JetBrains/blog/184830/


Ненужно!

Есть Visual Assist X, который прекрасно справляется со своей задачей.
Re[2]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: Ops Россия  
Дата: 29.06.13 12:01
Оценка: 1 (1) +1 -3
Здравствуйте, Sni4ok, Вы писали:

S>а зачем, если есть vim ?


vim не нужен.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re: JetBrains объявили о будущей поддержке C++ в ReSharper
От: zlrbt  
Дата: 21.04.14 17:56
Оценка: 29 (3)
У нас новая публичная версия: http://www.jetbrains.com/resharper/features/cpp.html
В основном багфиксы и оптимизации, пара новых поддержанных с++11 фич, новые контекст экшены и квикфиксы, генерация конструкторов
Re[4]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: Jack128  
Дата: 28.06.13 06:51
Оценка: 2 (2) +1
Здравствуйте, BrainSlug, Вы писали:


F>>Думаете, получится? Всё-таки всю жизнь был завязан на C#, а С++ это сложный для парсинга язык. Или они на CLang'e сделали? Получится ли конкурировать с VAX?

BS>а C# разве простой?
по сравнению с плюсами — конечно. посмотри видео, там где они факториал на шаблонах вычисляют. или подстановка макросов. ничего подобного в шарпе нет.
Re[4]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: nikov США http://www.linkedin.com/in/nikov
Дата: 28.06.13 17:05
Оценка: 4 (2)
Здравствуйте, BrainSlug, Вы писали:

F>>Всё-таки всю жизнь был завязан на C#, а С++ это сложный для парсинга язык.


BS>а C# разве простой?


C# гораздо проще, чем C++. И в плане синтаксического разбора, и семантического байндинга. Одни шаблоны в C++ чего сто́ят...

Парсер C# (если не делать инкрементальный парсинг, диагностику, качественное восстановление после ошибок, не выжимать максимальное быстродействие, и игнорировать некодументированное поведение компилятора) при наличии опыта и правильных инструментов можно написать за несколько дней.
Re[20]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: hattab  
Дата: 29.06.13 17:20
Оценка: -2
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP> EP>> H>Связываться с библиотеками не предоставляющими публичного API смысла вообще нет


EP> EP>> А где я сказал что нет API? Есть API на C++, с помощью SWIG генерируются врапперы на другие языки.


EP> H>Публичное API, а не набор классов для внутриязыкового использования.


EP> Публичное API для разных языков с помощью SWIG, без сильных телодвижений в виде POD'ов, C-API, etc.


Казуистика.
avalon 1.0rc3 build 432, zlib 1.2.5
Re[3]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: Sni4ok  
Дата: 05.07.13 14:01
Оценка: -2
Здравствуйте, Abyx, Вы писали:

S>>а зачем, если есть vim ?


A>а зачем vim, если есть notepad.exe?


snike@speedy:~$ locate notepad.exe

чёто не находит, может перепутали чё?

потом vim- он клёвый, открытый, быстрый,
легко можно изменять что-то находясь в другом конце света через медленный ssh с телефона(даже с моей старенькой nokia n900),
notepad — сосёт глубоко по всем показателям.

ssh, cat, grep, tail, vim, gdb — это круто, это современно.
notepad, rdp, visual studio- это уныло, это для рабов нового тысячелетия.
Re: JetBrains объявили о будущей поддержке C++ в ReSharper
От: nikov США http://www.linkedin.com/in/nikov
Дата: 27.06.13 18:27
Оценка: +1
Здравствуйте, Cirrus, Вы писали:

C>Подробности: [url=http://habrahabr.ru/company/JetBrains/blog/184830/]


Это просто офигенно!
Re[4]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: Mr.Delphist  
Дата: 28.06.13 09:07
Оценка: +1
Здравствуйте, uzhas, Вы писали:

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


Z>>С++-у уже почти 30 лет, он никуда не денется за 3-4 года

U>он уйдет вперед
U>хочется верить

... и тонны корпоративно-энтерпрайзного легаси-кода автоматически станут C++2020 фичастыми?

Не-не-не, тут волноваться точно не о чем, все эти "movable со товарищи" ещё очень не скоро будут массовыми в поведневных проектах (я, например, и вовсе в plain C из плюсов ушёл в последнее время ).
Re[6]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: Ops Россия  
Дата: 28.06.13 14:20
Оценка: :)
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>Кстати, как там Delphi, в какую сторону развивается(язык/среда)?

EP>Помню странный был язык — ни туда ни сюда ни GC ни RAII

Как делфи не знаю, а в текущем билдере в качестве компилятора уже clang
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re: JetBrains объявили о будущей поддержке C++ в ReSharper
От: kamre Россия  
Дата: 28.06.13 14:51
Оценка: :)
Здравствуйте, Cirrus, Вы писали:

C>Подробности: http://habrahabr.ru/company/JetBrains/blog/184830/


Интересно. Очень надеюсь на вменяемую поддержку C++.

Такой код не будет по тихому ломать при переименовывании:

#define call_func(x) x.func();

#define how_to_rename(x, a, b, c) x.a##b##c();

template <typename T>
void call_func_templ(T t) { t.func(); }

struct A {
  void func() {}  // <== rename this function
};

struct B {
  void func() {}
};

int main()
{
  A a;
  B b;
  call_func(a);
  call_func(b);
  call_func_templ(a);
  call_func_templ(b);
  how_to_rename(a, f, un, c);
  how_to_rename(b, f, u, nc);
  return 0;
}


? А то сейчас все IDE для C++ делают что попало и ломают код на подобных примерах.
Re[4]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: Muxa  
Дата: 28.06.13 19:01
Оценка: +1
K>Был корректный компилирующийся код с шаблонами и макросами. После переименования в IDE получается не компилируемый код или не сохраняется семантика кода. Ни одна IDE для плюсов сейчас не справляется даже с rename.
Допустим ты хочешь переименовать метод func() в f1unc()
Что ты ожидаешь от IDE в это случае?
Это
  how_to_rename(a, f1, un, c);
  how_to_rename(b, f1, u, nc);

?
Или это
  how_to_rename(a, f, 1un, c);
  how_to_rename(b, f, 1u, nc);

?
Re[13]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: Evgeny.Panasyuk Россия  
Дата: 28.06.13 21:20
Оценка: +1
Здравствуйте, hattab, Вы писали:

EP>> Сравнил количество вопросов по тэгам на stackoverflow:

EP>> C# — 481638
EP>> Java — 440981
EP>> Delphi — 21471
H>Это не показатель. Большинство дельфистов тусят в давно сформировавшихся сообществах.

Допустим, а какова твоя оценка? Ну то есть меньше не в 20 раз, а во сколько?

EP>> И как-то мне не верится что на Delphi'ях пользовательских приложений чем на C#/Java.

H>Ну так я тебе предложил назвать хотя бы по одному с каждой стороны.

Я не хочу искать примеры — мне лень.

H>На дельфях я назову не задумываясь: TheBat!, TotalCommander, QIP, Skype, AIMP, Everest


Конечно не задумываясь, ведь наверняка не первый раз

EP>> EP>> Многие библиотеки с которыми работаю поддерживают интерфейс C++, C#, Java + иногда Python — Delphi и не вспомню чтобы где-то был в API.

EP>> H>Что за библиотеки-то?
EP>> Всякий CAD/CAE/CAM.
H>Которые наверняка подключаются средствами COM

Никакого COM, обычное C++ API.

H>А вообще, достаточным условием является наличие C-хидеров, на которые натравливается что-нибудь типа h2pas и вопрос закрывается.


И C++ он прожуёт?

EP>> H>Я не понял о чем это свидетельствует. Толи о том, что дельфийский код не требуется разгонять средствами С, толи о том, что дельфя сама умеет линковать объектные файлы.

EP>> Дело не в линковке, SWIG генерирует wrapper'ы для каждого языка — бери и используй.
H>В дельфях можно взять объектник и использовать... Нафига нужен этот враппер??

Допустим есть C++ библиотека — классы, методы, функции, специализации шаблонов. Пусть даже есть весь код и ты можешь её собрать любым образом.
Дальше, твои действия — как ты будешь её использовать из Delphi?
Re: JetBrains объявили о будущей поддержке C++ в ReSharper
От: Sni4ok  
Дата: 29.06.13 11:20
Оценка: -1
Здравствуйте, Cirrus, Вы писали:

C>Подробности: http://habrahabr.ru/company/JetBrains/blog/184830/


а зачем, если есть vim ?
Re[3]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: Sni4ok  
Дата: 29.06.13 12:06
Оценка: :)
Здравствуйте, Ops, Вы писали:

Ops>vim не нужен.


конечно, нужно анальное рабство от апла, майкрософта и других проприетарных производителей.
Re[4]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: noone  
Дата: 29.06.13 17:52
Оценка: +1
Здравствуйте, Sni4ok, Вы писали:

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

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

Re[2]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: flаt  
Дата: 28.06.13 05:54
Оценка:
Здравствуйте, nikov, Вы писали:

N>Это просто офигенно!

Думаете, получится? Всё-таки всю жизнь был завязан на C#, а С++ это сложный для парсинга язык. Или они на CLang'e сделали? Получится ли конкурировать с VAX?
Re[3]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: zlrbt  
Дата: 28.06.13 06:28
Оценка:
Здравствуйте, flаt, Вы писали:

F>Думаете, получится? Всё-таки всю жизнь был завязан на C#, а С++ это сложный для парсинга язык. Или они на CLang'e сделали? Получится ли конкурировать с VAX?


1. Я думаю что получится. 2. Clang мы не используем, у нас все свое. 3. Опять же думаю что получится.
Кто придет на день открытых дверей в JetBrains сегодня, тот сможет там расспросить как у нас все устроено и какие планы.
Re: JetBrains объявили о будущей поддержке C++ в ReSharper
От: kaa.python Ниоткуда РСДН профессионально мёртв и завален ватой.
Дата: 28.06.13 06:36
Оценка:
Здравствуйте, Cirrus, Вы писали:

C>Подробности: [url=http://habrahabr.ru/company/JetBrains/blog/184830/]


Решарпер, это, возможно и хорошо... Но вот что у вас с IDE? Никаких анансов, никаких новостей
Re[3]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: BrainSlug Израиль  
Дата: 28.06.13 06:43
Оценка:
F>Думаете, получится? Всё-таки всю жизнь был завязан на C#, а С++ это сложный для парсинга язык. Или они на CLang'e сделали? Получится ли конкурировать с VAX?
а C# разве простой?
.
Re[2]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: zlrbt  
Дата: 28.06.13 06:50
Оценка:
Здравствуйте, kaa.python, Вы писали:

KP>Решарпер, это, возможно и хорошо... Но вот что у вас с IDE? Никаких анансов, никаких новостей

Осенью вероятно будет открыт EAP С++IDE. Больше к сожалению ничего сказать не могу.
Re[5]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: BrainSlug Израиль  
Дата: 28.06.13 06:53
Оценка:
F>>>Думаете, получится? Всё-таки всю жизнь был завязан на C#, а С++ это сложный для парсинга язык. Или они на CLang'e сделали? Получится ли конкурировать с VAX?
BS>>а C# разве простой?
J>по сравнению с плюсами — конечно. посмотри видео, там где они факториал на шаблонах вычисляют. или подстановка макросов. ничего подобного в шарпе нет.
вообще-то мы про парсинг языка говорим. а не про сам язык. вот я и спросил, что разве C# прост для парсинга? сомневаюсь.
.
Re: JetBrains объявили о будущей поддержке C++ в ReSharper
От: Алексей.  
Дата: 28.06.13 07:32
Оценка:
Здравствуйте, Cirrus, Вы писали:

C>Подробности: [url=http://habrahabr.ru/company/JetBrains/blog/184830/]


А почему было принято решение разрабатывать парсер C++ с нуля, а не лицензировать EDG?
На полноценную поддержку C++ уйдет 3-4 года минимум.
Re[2]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: zlrbt  
Дата: 28.06.13 07:53
Оценка:
Здравствуйте, Алексей., Вы писали:

А>А почему было принято решение разрабатывать парсер C++ с нуля, а не лицензировать EDG?

А>На полноценную поддержку C++ уйдет 3-4 года минимум.

VS и так уже использует EDG на сколько я знаю для своей поддержки с++.
По существу: фичи которые мы хотим реализовать представляют требоваия к нашему движку языка (парсеру,препроцессору,резолву,..) существенно отличные от требований к фронтэнду компилятора. Так что приходится изобретать собственное решение.

С++-у уже почти 30 лет, он никуда не денется за 3-4 года
Re[3]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: uzhas Ниоткуда  
Дата: 28.06.13 08:24
Оценка:
Здравствуйте, zlrbt, Вы писали:

Z>С++-у уже почти 30 лет, он никуда не денется за 3-4 года

он уйдет вперед
хочется верить
Re[5]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: Evgeny.Panasyuk Россия  
Дата: 28.06.13 13:17
Оценка:
Здравствуйте, Mr.Delphist, Вы писали:

MD>Не-не-не, тут волноваться точно не о чем, все эти "movable со товарищи"


Эмуляция move/rvalue_ref реализуется и давно используется в C++1998

MD>я, например, и вовсе в plain C из плюсов ушёл в последнее время


Кстати, как там Delphi, в какую сторону развивается(язык/среда)?
Помню странный был язык — ни туда ни сюда ни GC ни RAII
Re[7]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: Evgeny.Panasyuk Россия  
Дата: 28.06.13 14:43
Оценка:
Здравствуйте, Ops, Вы писали:

EP>>Кстати, как там Delphi, в какую сторону развивается(язык/среда)?

EP>>Помню странный был язык — ни туда ни сюда ни GC ни RAII
Ops>Как делфи не знаю, а в текущем билдере в качестве компилятора уже clang

Ну да, мы тут как-то пытались выяснить
Автор: Evgeny.Panasyuk
Дата: 22.04.13
что оно для C++ ABI использует
Re[8]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: Ops Россия  
Дата: 28.06.13 15:12
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>Ну да, мы тут как-то пытались выяснить
Автор: Evgeny.Panasyuk
Дата: 22.04.13
что оно для C++ ABI использует


Ну там у них точно не последний, кажется 3.2. Я как-то поставил XE4 в виртуалку поиграться, с IDE там все довольно печально из-за глючности и непредсказуемости (элементарный проект абсолютно невнятно не хотел компилироваться, пока я не перенес его на тот же диск, где RadStudio установлен, иногда что-нибудь перестает работать без диагностики и лечится рестартом, периодически заклинивают диалоги с сообщением об исключении).
Впрочем, все это уже давно, еще с первых не-борланд версий оно только обрастало глюками и недопиленными фичами. Вкупе с частыми платными минорными обновлениями и бешеными ценами, оставляет довольно неприятное впечатление.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re[6]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: Mr.Delphist  
Дата: 28.06.13 15:57
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>Кстати, как там Delphi, в какую сторону развивается(язык/среда)?

EP>Помню странный был язык — ни туда ни сюда ни GC ни RAII

Уж много лет как ушёл с неё — устал от череды нефиксящихся рождения багов, ухудшающегося с каждой версией performance и прочих не связанных с самим языком вещей. А так — вполне всё нормально (разве что шаблонов тогда не было, поэтому временами был излишний code bloat). Поддержка copy-on-write строчек (как обычных, так и юникодных), концепция reference-counted интерфейсов (при необходимости превращаемых в COM), хорошая сетевая либа (Indy), почти всё доступно в сырцах, куча визардов для оборачивания рутинной one-time работы etc.
Уход "папы" в Microsoft дал нам C# как переосмысленный Delphi, тогда как исходный продукт из властителя 90-х превратился в музейный экспонат "как программировали в 90-х". Сейчас его купили бразильцы, пилят всякие фичи (можно даже под iPhone девелопить), посмотрим что выйдет.
Re[9]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: Evgeny.Panasyuk Россия  
Дата: 28.06.13 17:46
Оценка:
Здравствуйте, Ops, Вы писали:

EP>>Ну да, мы тут как-то пытались выяснить
Автор: Evgeny.Panasyuk
Дата: 22.04.13
что оно для C++ ABI использует

Ops>Ну там у них точно не последний, кажется 3.2.

Не, там вопрос не в версии — а в том, например, какую реализацию ABI для исключений они используют.
Re[7]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: Evgeny.Panasyuk Россия  
Дата: 28.06.13 18:00
Оценка:
Здравствуйте, Mr.Delphist, Вы писали:

MD>концепция reference-counted интерфейсов (при необходимости превращаемых в COM)


afaik, это наоборот, сначала они использовались для COM, а потом их стали использовать как попало.
Всё равно не понятно почему не сделали GC, так как, например, область применения пересекается с управляемыми языками, и он бы был к месту.
Эти reference-counted интерфейсы вообще часто используют именно для управления ресурсами?

MD>Уход "папы" в Microsoft дал нам C# как переосмысленный Delphi


Я бы сказал что изначально C# был клоном Java + некоторые плюшки.

MD>тогда как исходный продукт из властителя 90-х превратился в музейный экспонат "как программировали в 90-х". Сейчас его купили бразильцы, пилят всякие фичи (можно даже под iPhone девелопить), посмотрим что выйдет.


ИМХО — время ушло. У Java — обвесы покруче будут, у C# как минимум язык. Мне трудно представить что им нужно сделать для привлечения новых клиентов.
Re[6]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: hattab  
Дата: 28.06.13 18:04
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP> Кстати, как там Delphi, в какую сторону развивается(язык/среда)?


Во все стороны развивается. Компилирует под Win/Mac/iOS, в ближайших (осень) планах Android потом WinRT и Linux. В мобильном компиляторе появилась поддержка ARC для объектов, сам компилятор основан на LLVM. Среда стабильна, что бы тут сказочники не рассказывали — сам сижу под виртуалками, никаких вылетов и падений.
avalon 1.0rc3 build 432, zlib 1.2.5
Re[7]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: hattab  
Дата: 28.06.13 18:04
Оценка:
Здравствуйте, Mr.Delphist, Вы писали:

MD> EP>Кстати, как там Delphi, в какую сторону развивается(язык/среда)?

MD> EP>Помню странный был язык — ни туда ни сюда ни GC ни RAII

MD>Сейчас его купили бразильцы


Бразильцы, ага
avalon 1.0rc3 build 432, zlib 1.2.5
Re[2]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: Muxa  
Дата: 28.06.13 18:11
Оценка:
K>Такой код не будет по тихому ломать при переименовывании? А то сейчас все IDE для C++ делают что попало и ломают код на подобных примерах.
Что значит ломать код?
Re[8]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: hattab  
Дата: 28.06.13 18:14
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP> Всё равно не понятно почему не сделали GC, так как, например, область применения пересекается с управляемыми языками, и он бы был к месту.


Так и у C++ область применения пересекается с управляемыми языками В классических дельфях, скорее всего, скоро будет ARC.

EP> Эти reference-counted интерфейсы вообще часто используют именно для управления ресурсами?


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

EP> ИМХО — время ушло. У Java — обвесы покруче будут, у C# как минимум язык.


Ты знаешь хоть одно популярное среди юзеров приложение на жабе или шарпе (Paint.NET, ага — очень смешно)? На дельфях таких много.

EP> Мне трудно представить что им нужно сделать для привлечения новых клиентов.


И тем не менее они рапортуют об увеличении продаж после выхода XE3 на 54% и об увеличении продаж после выхода XE4 (правда без цифр).
avalon 1.0rc3 build 432, zlib 1.2.5
Re[3]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: kamre Россия  
Дата: 28.06.13 18:31
Оценка:
Здравствуйте, Muxa, Вы писали:

M>Что значит ломать код?


Был корректный компилирующийся код с шаблонами и макросами. После переименования в IDE получается не компилируемый код или не сохраняется семантика кода. Ни одна IDE для плюсов сейчас не справляется даже с rename.
Re[9]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: Evgeny.Panasyuk Россия  
Дата: 28.06.13 18:32
Оценка:
Здравствуйте, hattab, Вы писали:

EP>> Всё равно не понятно почему не сделали GC, так как, например, область применения пересекается с управляемыми языками, и он бы был к месту.

H>Так и у C++ область применения пересекается с управляемыми языками

Так в C++ есть полноценный RAII, причём очень давно, на основе которого можно слепить что угодно.
А что в Delphi? Если как ты говоришь интерфейсы как счётчики ссылок используются редко — тогда как пишется exception safe код? Неужели расставляют try по всем уровням? Или просто забивают?

H>В классических дельфях, скорее всего, скоро будет ARC.


Ну то есть всё-таки к 2013 году, появится хоть что-то.

EP>> Эти reference-counted интерфейсы вообще часто используют именно для управления ресурсами?

H>Не очень. В дельфях очень хорошие библиотеки т.ч. управлять ресурсами самостоятельно приходится очень редко.

Каким образом библиотеки на Delphi помогают управлять ресурсами? Recycle или KillAll?

EP>> ИМХО — время ушло. У Java — обвесы покруче будут, у C# как минимум язык.

H>Ты знаешь хоть одно популярное среди юзеров приложение на жабе или шарпе (Paint.NET, ага — очень смешно)? На дельфях таких много.

На Windows постоянно попадалось что-то C#-повое.
Многие библиотеки с которыми работаю поддерживают интерфейс C++, C#, Java + иногда Python — Delphi и не вспомню чтобы где-то был в API.
Да в том же SWIG — Delphi нет, хотя всё остальное есть.
Re[10]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: hattab  
Дата: 28.06.13 19:00
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP> H>Так и у C++ область применения пересекается с управляемыми языками


EP> Так в C++ есть полноценный RAII, причём очень давно, на основе которого можно слепить что угодно.

EP> А что в Delphi? Если как ты говоришь интерфейсы как счётчики ссылок используются редко — тогда как пишется exception safe код? Неужели расставляют try по всем уровням? Или просто забивают?

Ну а в дельфях на интерфейсных объектах можно слепить что угодно
Автор: hattab
Дата: 29.06.12
В основном используются владеющие контейнеры, а если что-то локальное, то да try..finally.

EP> H>В классических дельфях, скорее всего, скоро будет ARC.


EP> Ну то есть всё-таки к 2013 году, появится хоть что-то.


В мобильном компиляторе он уже есть. Когда появится в классическом — в 2013 или позже — я не в курсе. Правда вся его прелесть будет лишь в том, что замыкания станут таки полноценными, а так нафиг не нужен.

EP> EP>> Эти reference-counted интерфейсы вообще часто используют именно для управления ресурсами?


EP> H>Не очень. В дельфях очень хорошие библиотеки т.ч. управлять ресурсами самостоятельно приходится очень редко.


EP> Каким образом библиотеки на Delphi помогают управлять ресурсами? Recycle или KillAll?


Владеющие контейнеры.

EP> EP>> ИМХО — время ушло. У Java — обвесы покруче будут, у C# как минимум язык.


EP> H>Ты знаешь хоть одно популярное среди юзеров приложение на жабе или шарпе (Paint.NET, ага — очень смешно)? На дельфях таких много.


EP> На Windows постоянно попадалось что-то C#-повое.


Между "попадалось что-то" и "популярное" — пропасть. А так-то у меня тоже есть софтинки на жабе и шарпе

EP> Многие библиотеки с которыми работаю поддерживают интерфейс C++, C#, Java + иногда Python — Delphi и не вспомню чтобы где-то был в API.


Что за библиотеки-то?

EP> Да в том же SWIG — Delphi нет, хотя всё остальное есть.


Я не понял о чем это свидетельствует. Толи о том, что дельфийский код не требуется разгонять средствами С, толи о том, что дельфя сама умеет линковать объектные файлы.
avalon 1.0rc3 build 432, zlib 1.2.5
Re[2]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: Erop Россия  
Дата: 28.06.13 19:54
Оценка:
Здравствуйте, kamre, Вы писали:


K>? А то сейчас все IDE для C++ делают что попало и ломают код на подобных примерах.


А чё, в каком-то языке в IDE есть поддержка такой хрени

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

А так, вообще-то, единственный надёжный способ рефакторинга такой колбасы -- покрасить и выбросить
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[11]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: Evgeny.Panasyuk Россия  
Дата: 28.06.13 20:12
Оценка:
Здравствуйте, hattab, Вы писали:

H>>>Ты знаешь хоть одно популярное среди юзеров приложение на жабе или шарпе (Paint.NET, ага — очень смешно)? На дельфях таких много.

EP>> На Windows постоянно попадалось что-то C#-повое.
H>Между "попадалось что-то" и "популярное" — пропасть. А так-то у меня тоже есть софтинки на жабе и шарпе

Сравнил количество вопросов по тэгам на stackoverflow:
C# — 481638
Java — 440981
Delphi — 21471
И как-то мне не верится что на Delphi'ях пользовательских приложений чем на C#/Java.

EP>> Многие библиотеки с которыми работаю поддерживают интерфейс C++, C#, Java + иногда Python — Delphi и не вспомню чтобы где-то был в API.

H>Что за библиотеки-то?

Всякий CAD/CAE/CAM.

EP>> Да в том же SWIG — Delphi нет, хотя всё остальное есть.

H>Я не понял о чем это свидетельствует. Толи о том, что дельфийский код не требуется разгонять средствами С, толи о том, что дельфя сама умеет линковать объектные файлы.

Дело не в линковке, SWIG генерирует wrapper'ы для каждого языка — бери и используй.
И уж тем более не в разгоне — библиотеки зачастую используют потому что это уже готовые решения, а не потому что "требуется разгонять".
Re[12]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: hattab  
Дата: 28.06.13 20:36
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP> H>Между "попадалось что-то" и "популярное" — пропасть. А так-то у меня тоже есть софтинки на жабе и шарпе


EP> Сравнил количество вопросов по тэгам на stackoverflow:

EP> C# — 481638
EP> Java — 440981
EP> Delphi — 21471

Это не показатель. Большинство дельфистов тусят в давно сформировавшихся сообществах.

EP> И как-то мне не верится что на Delphi'ях пользовательских приложений чем на C#/Java.


Ну так я тебе предложил назвать хотя бы по одному с каждой стороны. На дельфях я назову не задумываясь: TheBat!, TotalCommander, QIP, Skype, AIMP, Everest. Это хиты, а есть еще списочек.

EP> EP>> Многие библиотеки с которыми работаю поддерживают интерфейс C++, C#, Java + иногда Python — Delphi и не вспомню чтобы где-то был в API.


EP> H>Что за библиотеки-то?


EP> Всякий CAD/CAE/CAM.


Которые наверняка подключаются средствами COM А вообще, достаточным условием является наличие C-хидеров, на которые натравливается что-нибудь типа h2pas и вопрос закрывается.

EP> H>Я не понял о чем это свидетельствует. Толи о том, что дельфийский код не требуется разгонять средствами С, толи о том, что дельфя сама умеет линковать объектные файлы.


EP> Дело не в линковке, SWIG генерирует wrapper'ы для каждого языка — бери и используй.


В дельфях можно взять объектник и использовать... Нафига нужен этот враппер??

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


У дельфей нет проблем с использованием библиотек.
avalon 1.0rc3 build 432, zlib 1.2.5
Re[3]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: Ops Россия  
Дата: 28.06.13 21:37
Оценка:
Здравствуйте, Erop, Вы писали:

E>А так, вообще-то, единственный надёжный способ рефакторинга такой колбасы -- покрасить и выбросить


А зачем красить?
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Re[14]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: hattab  
Дата: 28.06.13 22:05
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP> EP>> Сравнил количество вопросов по тэгам на stackoverflow:

EP> EP>> C# — 481638
EP> EP>> Java — 440981
EP> EP>> Delphi — 21471

EP> H>Это не показатель. Большинство дельфистов тусят в давно сформировавшихся сообществах.


EP> Допустим, а какова твоя оценка? Ну то есть меньше не в 20 раз, а во сколько?


Я вопрос не изучал, но если посмотреть на sql.ru дельфя не уступает в популярности дотнету. Это разумеется не так. Поэтому все эти писькомерки — фигня полнейшая. Еще вариант — смотреть чего качают на торрентах — дельфю качают раза в два-три меньше чем студию — очень даже похоже на истинное положение дел.

EP> EP>> И как-то мне не верится что на Delphi'ях пользовательских приложений чем на C#/Java.


EP> H>Ну так я тебе предложил назвать хотя бы по одному с каждой стороны.


EP> Я не хочу искать примеры — мне лень.


Популярность в том и заключается, что ни искать, ни вспоминать не нужно — оно на слуху.

EP> H>На дельфях я назову не задумываясь: TheBat!, TotalCommander, QIP, Skype, AIMP, Everest


EP> Конечно не задумываясь, ведь наверняка не первый раз


Не в первый. А тебе ничего из этого не знакомо?

EP> EP>> EP>> Многие библиотеки с которыми работаю поддерживают интерфейс C++, C#, Java + иногда Python — Delphi и не вспомню чтобы где-то был в API.


EP> Никакого COM, обычное C++ API.


Что ты называешь "обычным C++ API"?

EP> H>А вообще, достаточным условием является наличие C-хидеров, на которые натравливается что-нибудь типа h2pas и вопрос закрывается.


EP> И C++ он прожуёт?


С классами вряд ли.

EP> H>В дельфях можно взять объектник и использовать... Нафига нужен этот враппер??


EP> Допустим есть C++ библиотека — классы, методы, функции, специализации шаблонов. Пусть даже есть весь код и ты можешь её собрать любым образом.

EP> Дальше, твои действия — как ты будешь её использовать из Delphi?

Очевидно, библиотека должна быть готова к использованию внешней средой (т.е. не C++) и иметь какой нибудь способ взаимодействия: C-style API, COM-style API (как это делает винда для, например, XmlLite) ну или генерировать метаданные как это делается в GObject (я про SWIG почитал, так для него оказывается еще разметку в коде делать нужно... Вариант GObject мне более симпатичен). Первый и второй тип API конвертируется из хидеров, а по метаданным можно сгенерировать что угодно (кстати для GObject introspection pascal-генератор есть). Если ничего этого нет, то проще найти аналог.
avalon 1.0rc3 build 432, zlib 1.2.5
Re[15]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: Evgeny.Panasyuk Россия  
Дата: 28.06.13 22:23
Оценка:
Здравствуйте, hattab, Вы писали:

EP>> Допустим, а какова твоя оценка? Ну то есть меньше не в 20 раз, а во сколько?

H>Я вопрос не изучал, но если посмотреть на sql.ru дельфя не уступает в популярности дотнету. Это разумеется не так. Поэтому все эти писькомерки — фигня полнейшая.

Ок, мне просто действительно интересно как оно сейчас. По моим субъективным, мало чем обоснованным ощущениям — соотношение примерно такое, как на stackoverflow, даже ещё хуже. А как на самом деле —

H>Еще вариант — смотреть чего качают на торрентах — дельфю качают раза в два-три меньше чем студию — очень даже похоже на истинное положение дел.


Студия это не только C#, так что вообще не похоже на правду.

EP>> H>На дельфях я назову не задумываясь: TheBat!, TotalCommander, QIP, Skype, AIMP, Everest

EP>> Конечно не задумываясь, ведь наверняка не первый раз
H>Не в первый. А тебе ничего из этого не знакомо?

Знакомо, но как-то не интересовался что там внутри. AFAIK Skype сейчас это вообще QT.

EP>> EP>> EP>> Многие библиотеки с которыми работаю поддерживают интерфейс C++, C#, Java + иногда Python — Delphi и не вспомню чтобы где-то был в API.

EP>> Никакого COM, обычное C++ API.
H>Что ты называешь "обычным C++ API"?

Классы, структуры, методы, функции, без специальных телодвижений в виде PIMPL, POD, wrapping to C, COM.

EP>> H>В дельфях можно взять объектник и использовать... Нафига нужен этот враппер??

EP>> Допустим есть C++ библиотека — классы, методы, функции, специализации шаблонов. Пусть даже есть весь код и ты можешь её собрать любым образом.
EP>> Дальше, твои действия — как ты будешь её использовать из Delphi?
H>Очевидно, библиотека должна быть готова к использованию внешней средой (т.е. не C++) и иметь какой нибудь способ взаимодействия: C-style API, COM-style API (как это делает винда для, например, XmlLite)

Ну так SWIG как раз может прожевать C++ который далеко не C-style/COM-style, конечно не весь, иногда с подсказками. Но суть не в этом, а в том, что среди среди 20 target языков нет delphi.
Re[16]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: hattab  
Дата: 28.06.13 22:37
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP> H>Не в первый. А тебе ничего из этого не знакомо?


EP> Знакомо, но как-то не интересовался что там внутри. AFAIK Skype сейчас это вообще QT.


Qt для линукса, на виндах дельфя.

EP> H>Что ты называешь "обычным C++ API"?


EP> Классы, структуры, методы, функции, без специальных телодвижений в виде PIMPL, POD, wrapping to C, COM.


Связываться с библиотеками не предоставляющими публичного API смысла вообще нет

EP> H>Очевидно, библиотека должна быть готова к использованию внешней средой (т.е. не C++) и иметь какой нибудь способ взаимодействия: C-style API, COM-style API (как это делает винда для, например, XmlLite)


EP> Ну так SWIG как раз может прожевать C++ который далеко не C-style/COM-style, конечно не весь, иногда с подсказками. Но суть не в этом, а в том, что среди среди 20 target языков нет delphi.


С 2008 года есть патч.
avalon 1.0rc3 build 432, zlib 1.2.5
Re[4]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: Erop Россия  
Дата: 28.06.13 22:50
Оценка:
Здравствуйте, Ops, Вы писали:

E>>А так, вообще-то, единственный надёжный способ рефакторинга такой колбасы -- покрасить и выбросить


Ops>А зачем красить?


Для педагогического эффекта
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[3]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: Константин Россия  
Дата: 29.06.13 11:18
Оценка:
Здравствуйте, Erop, Вы писали:

K>>? А то сейчас все IDE для C++ делают что попало и ломают код на подобных примерах.

E>А чё, в каком-то языке в IDE есть поддержка такой хрени

В Visual Assist есть переименование. Полезная вещь, и работает неплохо.
Re[5]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: Erop Россия  
Дата: 29.06.13 11:30
Оценка:
Здравствуйте, Muxa, Вы писали:

M>Допустим ты хочешь переименовать метод func() в f1unc()

M>Что ты ожидаешь от IDE в это случае?
M>Это
M>
M>  how_to_rename(a, f1, un, c);
M>  how_to_rename(b, f1, u, nc);
M>

M>?
M>Или это
M>
M>  how_to_rename(a, f, 1un, c);
M>  how_to_rename(b, f, 1u, nc);
M>

M>?


Скорее всего в реале эти все un и c -- какие-то осмысленные префиксы и постфиксы реального имени. Н типа там ANSI\wchar_t версии WIN32.

И ему охота переименовать какой-то метод, например в осмысленной части, и что бы переименовались вызовы...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[4]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: Erop Россия  
Дата: 29.06.13 11:34
Оценка:
Здравствуйте, Константин, Вы писали:

К>В Visual Assist есть переименование. Полезная вещь, и работает неплохо.


Речь не про переименование, а про описанную макросню...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Re[6]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: enji  
Дата: 29.06.13 12:44
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>Кстати, как там Delphi, в какую сторону развивается(язык/среда)?

EP>Помню странный был язык — ни туда ни сюда ни GC ни RAII

RAII там есть — через интерфейсные ссылки или variant. А так да, странно, почему нет деструкторов для пользовательских типов, притом что для ряда встроенных типов они есть
Re[4]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: enji  
Дата: 29.06.13 12:52
Оценка:
Здравствуйте, Sni4ok, Вы писали:

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


Ops>>vim не нужен.


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


еще эклипс есть Жрет правда под 600 метров, зато никакого рабства
Re[7]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: hattab  
Дата: 29.06.13 13:09
Оценка:
Здравствуйте, enji, Вы писали:

e> RAII там есть — через интерфейсные ссылки или variant. А так да, странно, почему нет деструкторов для пользовательских типов, притом что для ряда встроенных типов они есть


В вариант объект сохранить нельзя.
avalon 1.0rc3 build 432, zlib 1.2.5
Re[8]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: enji  
Дата: 29.06.13 13:23
Оценка:
Здравствуйте, hattab, Вы писали:

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


e>> RAII там есть — через интерфейсные ссылки или variant. А так да, странно, почему нет деструкторов для пользовательских типов, притом что для ряда встроенных типов они есть


H>В вариант объект сохранить нельзя.


Да почему, можно. Регистрируешь свой тип варианта и сохраняешь в него чего хочешь.
Re[9]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: hattab  
Дата: 29.06.13 14:19
Оценка:
Здравствуйте, enji, Вы писали:

e> H>Здравствуйте, enji, Вы писали:


e> e>> RAII там есть — через интерфейсные ссылки или variant. А так да, странно, почему нет деструкторов для пользовательских типов, притом что для ряда встроенных типов они есть


e> H>В вариант объект сохранить нельзя.


e> Да почему, можно. Регистрируешь свой тип варианта и сохраняешь в него чего хочешь.


Не, это фигня. У объекта, самого по себе, счетчика ссылок нет, поэтому управление его временем жизни будет очень условным. А так-то и без кастомного варианта можно ссылку на объект в вардату засунуть.
avalon 1.0rc3 build 432, zlib 1.2.5
Re[10]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: enji  
Дата: 29.06.13 14:22
Оценка:
Здравствуйте, hattab, Вы писали:

e>> Да почему, можно. Регистрируешь свой тип варианта и сохраняешь в него чего хочешь.


H>Не, это фигня. У объекта, самого по себе, счетчика ссылок нет, поэтому управление его временем жизни будет очень условным. А так-то и без кастомного варианта можно ссылку на объект в вардату засунуть.


У объекта нет, а к варианту можно при желании прикрутить. Или копировать объект при копировании варианта к примеру. Деталей уже не помню, года два назад развлекался. Изврат, конечно
Re[11]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: hattab  
Дата: 29.06.13 14:38
Оценка:
Здравствуйте, enji, Вы писали:

e> H>Не, это фигня. У объекта, самого по себе, счетчика ссылок нет, поэтому управление его временем жизни будет очень условным. А так-то и без кастомного варианта можно ссылку на объект в вардату засунуть.


e> У объекта нет, а к варианту можно при желании прикрутить. Или копировать объект при копировании варианта к примеру. Деталей уже не помню, года два назад развлекался. Изврат, конечно


Не то чтобы изврат, но сильно ограниченное решение
avalon 1.0rc3 build 432, zlib 1.2.5
Re[5]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: vsb Казахстан  
Дата: 29.06.13 14:58
Оценка:
Здравствуйте, Muxa, Вы писали:

K>>Был корректный компилирующийся код с шаблонами и макросами. После переименования в IDE получается не компилируемый код или не сохраняется семантика кода. Ни одна IDE для плюсов сейчас не справляется даже с rename.

M>Допустим ты хочешь переименовать метод func() в f1unc()
M>Что ты ожидаешь от IDE в это случае?

Лично я бы ожидал сообщение о том, что код слишком сложен для автоматического переименования. А молча ломать код или, что ещё хуже, менять его семантику — это просто забирает самое главное у рефакторинга — возможность полагаться на него без юнит-тестов. Если я в жаве делаю рефакторинг, он проект никогда не поломает. Я могу его делать и быть уверенным в том, что всё будет нормально или мне сообщат о проблемах. А если в таком специфическом языке, как С++ (с кучей унаследованного кода, в котором макрос на макросе макросом погоняет) рефакторинг не будет работать надежно, я бы его не стал использовать вообще. И, соответственно, при оценке IDE вычеркивал бы эту фичу из списка сравнения. Переименовать и руками можно.
Re[17]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: Evgeny.Panasyuk Россия  
Дата: 29.06.13 15:16
Оценка:
Здравствуйте, hattab, Вы писали:

EP>> H>Что ты называешь "обычным C++ API"?

EP>> Классы, структуры, методы, функции, без специальных телодвижений в виде PIMPL, POD, wrapping to C, COM.
H>Связываться с библиотеками не предоставляющими публичного API смысла вообще нет

А где я сказал что нет API? Есть API на C++, с помощью SWIG генерируются врапперы на другие языки.

EP>> H>Очевидно, библиотека должна быть готова к использованию внешней средой (т.е. не C++) и иметь какой нибудь способ взаимодействия: C-style API, COM-style API (как это делает винда для, например, XmlLite)

EP>> Ну так SWIG как раз может прожевать C++ который далеко не C-style/COM-style, конечно не весь, иногда с подсказками. Но суть не в этом, а в том, что среди среди 20 target языков нет delphi.
H>С 2008 года есть патч.

О том и речь — там только два файла, один 2008, второй 2009. Была бы среда популярной, хотя бы на десятую долю от C#/Java — давно была бы нормальная поддержка.
Re[18]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: hattab  
Дата: 29.06.13 15:39
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP> H>Связываться с библиотеками не предоставляющими публичного API смысла вообще нет


EP> А где я сказал что нет API? Есть API на C++, с помощью SWIG генерируются врапперы на другие языки.


Публичное API, а не набор классов для внутриязыкового использования.

EP> EP>> Ну так SWIG как раз может прожевать C++ который далеко не C-style/COM-style, конечно не весь, иногда с подсказками. Но суть не в этом, а в том, что среди среди 20 target языков нет delphi.


EP> H>С 2008 года есть патч.


EP> О том и речь — там только два файла, один 2008, второй 2009. Была бы среда популярной, хотя бы на десятую долю от C#/Java — давно была бы нормальная поддержка.


Я чего-то не пойму, язык что-ли виноват, что патчи не приняты? Или может модула-3, окамл и прочая экзотика популярнее дельфей?
avalon 1.0rc3 build 432, zlib 1.2.5
Re[6]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: Muxa  
Дата: 29.06.13 16:21
Оценка:
vsb>Лично я бы ожидал сообщение о том, что код слишком сложен для автоматического переименования. А молча ломать код или...
Что собственно сейчас и происходит — код ломается. Но ты ведь не только пишешь код, но и компилируешь его?
Re[19]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: Evgeny.Panasyuk Россия  
Дата: 29.06.13 16:44
Оценка:
Здравствуйте, hattab, Вы писали:

EP>> H>Связываться с библиотеками не предоставляющими публичного API смысла вообще нет

EP>> А где я сказал что нет API? Есть API на C++, с помощью SWIG генерируются врапперы на другие языки.
H>Публичное API, а не набор классов для внутриязыкового использования.

Публичное API для разных языков с помощью SWIG, без сильных телодвижений в виде POD'ов, C-API, etc.
Re[6]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: enji  
Дата: 30.06.13 18:35
Оценка:
Здравствуйте, vsb, Вы писали:


vsb>Лично я бы ожидал сообщение о том, что код слишком сложен для автоматического переименования. А молча ломать код или, что ещё хуже, менять его семантику — это просто забирает самое главное у рефакторинга — возможность полагаться на него без юнит-тестов. Если я в жаве делаю рефакторинг, он проект никогда не поломает. Я могу его делать и быть уверенным в том, что всё будет нормально или мне сообщат о проблемах. А если в таком специфическом языке, как С++ (с кучей унаследованного кода, в котором макрос на макросе макросом погоняет) рефакторинг не будет работать надежно, я бы его не стал использовать вообще. И, соответственно, при оценке IDE вычеркивал бы эту фичу из списка сравнения. Переименовать и руками можно.


Это крайний случай, на самом то деле, такого кода обычно немного. А большая част кода — вполне себе классическая. В том же cdt для эклипса переименование есть, работает более-менее нормально.
Re[4]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: kamre Россия  
Дата: 01.07.13 04:20
Оценка:
Здравствуйте, Константин, Вы писали:

К>В Visual Assist есть переименование. Полезная вещь, и работает неплохо.


Visual Assist — кривая поделка, там даже overload resolution не могут осилить уже сколько лет. О каком корректном переименовании может вообще идти речь?
Re[7]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: kamre Россия  
Дата: 01.07.13 04:25
Оценка:
Здравствуйте, enji, Вы писали:

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


E>Это крайний случай, на самом то деле, такого кода обычно немного. А большая част кода — вполне себе классическая. В том же cdt для эклипса переименование есть, работает более-менее нормально.


При инстанцировании шаблонов (самый что ни на есть классический код) образуются связи между разными сущностями. Не зря же собирались вводить концепты, которые более явно эти связи будут образовывать. И сейчас, насколько я знаю, ни одна плюсовая IDE не умеет корректно переименовывать код с шаблонами. Тот же Eclipse CDT косячит только так...
Re[5]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: Константин Россия  
Дата: 01.07.13 08:55
Оценка:
Здравствуйте, kamre, Вы писали:

K>Visual Assist — кривая поделка


Не нравится — не ешь
Re[4]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: alex_public  
Дата: 01.07.13 13:25
Оценка:
Здравствуйте, kamre, Вы писали:

K>Был корректный компилирующийся код с шаблонами и макросами. После переименования в IDE получается не компилируемый код или не сохраняется семантика кода. Ни одна IDE для плюсов сейчас не справляется даже с rename.


Да ладно рассказывать. Netbeans (и он кстати ещё и бесплатный и кроссплатформенный) нормально парсит любой код с макросами и шаблонами (включая самые дикие из boost). Надо только правильно подключать все библиотеки (пути их указать) в анализаторе кода. И рефакторинг там тоже полноценно работает.
Re[8]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: enji  
Дата: 01.07.13 14:37
Оценка:
Здравствуйте, kamre, Вы писали:

K>При инстанцировании шаблонов (самый что ни на есть классический код) образуются связи между разными сущностями. Не зря же собирались вводить концепты, которые более явно эти связи будут образовывать. И сейчас, насколько я знаю, ни одна плюсовая IDE не умеет корректно переименовывать код с шаблонами. Тот же Eclipse CDT косячит только так...


Классический шаблон — что-то вроде std::vector. Если для него поменять push_back на pushBack — все сработает относительно нормально. За исключением случаев вроде
template<class C> void f(C& c, int i) { c.push_back(i); }


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

А макросы и шаблоны — да, руками, увы.
Re[5]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: enji  
Дата: 01.07.13 14:38
Оценка:
Здравствуйте, alex_public, Вы писали:

_>Да ладно рассказывать. Netbeans (и он кстати ещё и бесплатный и кроссплатформенный) нормально парсит любой код с макросами и шаблонами (включая самые дикие из boost). Надо только правильно подключать все библиотеки (пути их указать) в анализаторе кода. И рефакторинг там тоже полноценно работает.


Гм, пару лет назад смотрел — чет по сравнению с эклипсом у его парсера проблем было больше. Надо еще глянуть, может что-то улучшилось...
Re[5]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: kamre Россия  
Дата: 01.07.13 15:26
Оценка:
Здравствуйте, alex_public, Вы писали:

_>Да ладно рассказывать. Netbeans (и он кстати ещё и бесплатный и кроссплатформенный) нормально парсит любой код с макросами и шаблонами (включая самые дикие из boost). Надо только правильно подключать все библиотеки (пути их указать) в анализаторе кода. И рефакторинг там тоже полноценно работает.


Да ладно уж заливать, никак там рефакторинг с шаблонами и макросами не работает:
Re[9]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: kamre Россия  
Дата: 01.07.13 15:48
Оценка:
Здравствуйте, enji, Вы писали:

E>За исключением случаев вроде

E>
E>template<class C> void f(C& c, int i) { c.push_back(i); }
E>

E>которые понятно только руками лечатся. ... А макросы и шаблоны — да, руками, увы.

При инстанцировании шаблона функции "f" образуется связь между push_back в определении шаблона и функцией push_back конкретного класса "C". При переименованиях это должно учитываться, иначе код сломается и перестанет компилироваться. Вроде же очевидно все, а ни одна IDE вообще этого не проверяет.

Точно также и с макросами:

struct node {
    void* data;
    node* next;
};

struct list { node* head; }; // rename "head"

struct queue { node *head, *tail; };

#define init(l) l.head = 0;

int main() {
    list l;
    queue q;
    init(l);
    init(q);
}
Re[10]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: Evgeny.Panasyuk Россия  
Дата: 01.07.13 15:59
Оценка:
Здравствуйте, kamre, Вы писали:

K>При инстанцировании шаблона функции "f" образуется связь между push_back в определении шаблона и функцией push_back конкретного класса "C". При переименованиях это должно учитываться, иначе код сломается и перестанет компилироваться. Вроде же очевидно все, а ни одна IDE вообще этого не проверяет.


А есть ещё второй конкретный класс "C", который тоже используется с "f". Вот только он ещё используется с std::back_inserter и переименовывать его push_back нельзя.
Да, и конечно же функция "f" ещё используется в другом проекте, код которого IDE не видит.
Re[11]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: kamre Россия  
Дата: 01.07.13 16:15
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>А есть ещё второй конкретный класс "C", который тоже используется с "f". Вот только он ещё используется с std::back_inserter и переименовывать его push_back нельзя.


Вот именно, а IDE делают что попало и не отслеживают все нюансы использования символа при его переименовании. Нельзя полагаться на такой "рефакторинг"...

EP>Да, и конечно же функция "f" ещё используется в другом проекте, код которого IDE не видит.


Ну это уже вряд ли претензия к IDE, скорее к тому кто сконфигурировал workspace/solution, когда в него не все нужные для рефакторинга проекты входят.
Re[6]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: alex_public  
Дата: 01.07.13 16:27
Оценка:
Здравствуйте, enji, Вы писали:

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


Netbeans как раз парсит библиотеки, которые Eclipse не осилил у меня. Например помнится Эклипс не смог распознать инклуд файла с путём генерируемым макросами. Но это именно в смысле разбора. А кроме этого у них ещё и принципиально разные подходы по архитектуре парсеров. Эклипсовский создаёт кэш анализа (включая все библиотеки) в папке workspace'a. Это мне не совсем нравится по ряду причин. Netbeans анализирует данные каждый раз и держит всё в памяти. Так что долго стартует и много оперативки отжирает. Но зато шустро работает (хотя и медленнее чем Visual Assist) и не замусоривает проект. У Visual Assist'а наверное одна из самых эффективных архитектур — хранит анализ библиотек на диске у себя (а не в проекте) и при этом быстрее всех. Но к сожалению он как раз меньше всех умеет понимать (возможно поэтому и шустрый такой)...

P.S. Данные про Эклипс и VA где-то 1,5 летней давности — с тех пор я их окончательно перестал открывать. )))
Re[6]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: alex_public  
Дата: 01.07.13 16:37
Оценка:
Здравствуйте, kamre, Вы писали:

K>Да ладно уж заливать, никак там рефакторинг с шаблонами и макросами не работает:


А никто и не говорил про подобное. Фраза про шаблоны и макросы была отдельно (т.к. для C++ актуальна проблема что бы парсер вообще разобрал код, ещё без всякого рефакторинга — мало какие это могут), а про рефакторинг отдельно. Обычный рефакторинг (в стиле Java, без шаблонных хитростей) вполне работает. Ну а такой что бы учитывал при переименование потенциальную возможность подстановки шаблонов... Я даже не уверен что это вообще возможно сделать.

Да, кстати, лично для меня определяющим выбором IDE является не возможность рефакторинга (я им в общем то почти и не пользуюсь, хотя он есть и работает), а именно возможно парсера понять любой код. Потому как умная навигация по коду и правильное автодополнение реально помогают в работе.
Re[7]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: kamre Россия  
Дата: 01.07.13 17:42
Оценка:
Здравствуйте, alex_public, Вы писали:

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


K>>Да ладно уж заливать, никак там рефакторинг с шаблонами и макросами не работает:


>А никто и не говорил про подобное.


Как это не говорил: "И рефакторинг там тоже полноценно работает."? Какая же это полноценная работа, если "в стиле Java", без учета кучи вещей специфических для C++?

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


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

Берем первый попавшийся пример из boost. И смотрим как NetBeans на нем работает:

Автодополнение не нашло функцию insert, хотя она явно имеется у ns, точно также не работает навигация для insert (пишет Can't open element "insert").

Попробуем еще с итератором:

Тоже фейл, и навигация для name срабатывает куда-то в левое место, а совсем не к функции name_record::name.

Так что похоже, что утверждение "нормально парсит любой код с макросами и шаблонами (включая самые дикие из boost)" — голословное, далеко не все из boost умеет парсить NetBeans.
Re[12]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: Evgeny.Panasyuk Россия  
Дата: 01.07.13 19:25
Оценка:
Здравствуйте, kamre, Вы писали:

EP>>А есть ещё второй конкретный класс "C", который тоже используется с "f". Вот только он ещё используется с std::back_inserter и переименовывать его push_back нельзя.

K>Вот именно, а IDE делают что попало и не отслеживают все нюансы использования символа при его переименовании. Нельзя полагаться на такой "рефакторинг"...

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

EP>>Да, и конечно же функция "f" ещё используется в другом проекте, код которого IDE не видит.

K>Ну это уже вряд ли претензия к IDE, скорее к тому кто сконфигурировал workspace/solution, когда в него не все нужные для рефакторинга проекты входят.

Почему же проблемы с конфигурацией? Просто проект внешний, кода нет. Точно также как твой проект является внешним для STL.
Это же изменение интерфейса, которое усугублено тем, что в общем случае он определён реализацией, причем на нескольких уровнях.
Re[8]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: alex_public  
Дата: 02.07.13 16:13
Оценка:
Здравствуйте, kamre, Вы писали:

K>Как это не говорил: "И рефакторинг там тоже полноценно работает."? Какая же это полноценная работа, если "в стиле Java", без учета кучи вещей специфических для C++?


Потому что я не уверен, что подобные вещи вообще возможны. Т.е. я пока не представляю себе, как вообще может работать рефакторинг за пределами "java уровня" во всех этих шаблонах.

K>Автодополнение не нашло функцию insert, хотя она явно имеется у ns, точно также не работает навигация для insert (пишет Can't open element "insert").


Хы, кстати, я глянул в описание класса и тоже с ходу не нашёл insert — оно там из хитрого mixin'а берётся. Видимо такое ему всё же не по зубам. )))

K>Так что похоже, что утверждение "нормально парсит любой код с макросами и шаблонами (включая самые дикие из boost)" — голословное, далеко не все из boost умеет парсить NetBeans.


Ну я естественно не все библиотеки из Буста тестировал. ))) И в любом случае суммарно Netbeans осиливает больше библиотек из моего набора чем Eclipse и Visual Assist.
Re[9]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: enji  
Дата: 03.07.13 08:19
Оценка:
Здравствуйте, alex_public, Вы писали:

K>>Так что похоже, что утверждение "нормально парсит любой код с макросами и шаблонами (включая самые дикие из boost)" — голословное, далеко не все из boost умеет парсить NetBeans.


_>Ну я естественно не все библиотеки из Буста тестировал. ))) И в любом случае суммарно Netbeans осиливает больше библиотек из моего набора чем Eclipse и Visual Assist.


А можешь дать списочек бустовских либ, которые ты используешь и которые нормально парсит нетбинс? Хочется сравнить с эклипсом, а ставить и разбираться в его настройках неохота.
Re[4]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: Кодт Россия  
Дата: 03.07.13 21:15
Оценка:
Здравствуйте, Sni4ok, Вы писали:

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


Настоящие программисты пишут с помощью бабочек (добываемых от настоящих принцесс).
В емаксе даже команда соответствующая есть — старая добрая C-x M-c M-butterfly.
Перекуём баги на фичи!
Re[5]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: Кодт Россия  
Дата: 03.07.13 21:20
Оценка:
Здравствуйте, noone, Вы писали:

N>http://ic.pics.livejournal.com/gorart/13343372/560135/original.jpg


Внезапен сыч, но истина дороже...
вика / Туберкулиновая проба # Мифы
Перекуём баги на фичи!
Re[2]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: nen777w  
Дата: 03.07.13 22:23
Оценка:
F>Ненужно!
F>Есть Visual Assist X, который прекрасно справляется со своей задачей.

Ты знаешь, я тоже так подумал. Т.к. с ReSharper не знаком вообще.
После просмотра видео в статье мнение немного изменилось. Там есть вещи которые ассистант делать не умеет.
Например, раскрытие макросов.
Но тут может возникнуть другой интересный момент.
В WholeTomato тоже посмотрят это видео и решат что то допилить к Visual Assist-анту.

Другое приимущество ИМХО это в обещанной кроссплатформенной среде разработки с такими возможностями.
Re[3]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: kamre Россия  
Дата: 05.07.13 05:58
Оценка:
Здравствуйте, nen777w, Вы писали:

N>В WholeTomato тоже посмотрят это видео и решат что то допилить к Visual Assist-анту.


Они уже сколько лет не могут базовых вещей допилить, вроде overload resolution. Нельзя поискать где вызывается какой-то конструктор класса. Не могут call hierarchy сделать. На не тривиальных шаблонах/макросах и дополнялка лажает. Так что очень сомнительно...
Re[2]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: Danchik Украина  
Дата: 05.07.13 13:26
Оценка:
Здравствуйте, fdn721, Вы писали:

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


C>>Подробности: http://habrahabr.ru/company/JetBrains/blog/184830/


F>Ненужно!


F>Есть Visual Assist X, который прекрасно справляется со своей задачей.


Тугодумы там сидят. Толку от них как от гнилого томата.
Да VA помогает, использую его только для навигации так как остальное просто отстой, и до возможностей ReSharper в C# ему как до неба.
И я очень позитивно отношусь к тому что JetBrains таки взялись за плюсы!
Re[2]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: Abyx Россия  
Дата: 05.07.13 13:52
Оценка:
Здравствуйте, Sni4ok, Вы писали:

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


C>>Подробности: http://habrahabr.ru/company/JetBrains/blog/184830/


S>а зачем, если есть vim ?


а зачем vim, если есть notepad.exe?
In Zen We Trust
Re[4]: JetBrains объявили о будущей поддержке C++ в ReSharper
От: Abyx Россия  
Дата: 05.07.13 15:44
Оценка:
Здравствуйте, Sni4ok, Вы писали:

S>>>а зачем, если есть vim ?


A>>а зачем vim, если есть notepad.exe?


S>snike@speedy:~$ locate notepad.exe


S>чёто не находит, может перепутали чё?


а решарпер есть?
In Zen We Trust
Re: JetBrains объявили о будущей поддержке C++ в ReSharper
От: koandrew Канада http://thingselectronic.blogspot.ca/
Дата: 11.07.13 21:22
Оценка:
Здравствуйте, Cirrus, Вы писали:

C>Подробности: http://habrahabr.ru/company/JetBrains/blog/184830/


Зная пристрастие решарпера к памяти, думается, что там стоит подождать 64битной студии (если такая вообще будет) — а то будете падать, не успев загрузить солюшен
[КУ] оккупировала армия.
Re: JetBrains объявили о будущей поддержке C++ в ReSharper
От: zlrbt  
Дата: 20.07.13 07:32
Оценка:
Презеташка про с++ в решарпере http://www.youtube.com/watch?v=3Fl9Y6Lj6zI (с дня открытых дверей jetbrains)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.