Здравствуйте, eao197, Вы писали:
E>А я уж стал думать, что я один такой -- тупеющий, когда мне среда начинает названия методов и параметров подсказывать. Следующая стадия -- когда ждешь, что IDE за тебя еще и следующую строку напишет.
именно.
Когда я пишу "if" или "for", я жду, что у меня тут же появятся две пары скобок. Потому что их так и так писать придется в 99% случаев — так зачем мне тратить свое время?
Здравствуйте, jazzer, Вы писали:
E>>А я уж стал думать, что я один такой -- тупеющий, когда мне среда начинает названия методов и параметров подсказывать. Следующая стадия -- когда ждешь, что IDE за тебя еще и следующую строку напишет.
J>именно. J>Когда я пишу "if" или "for", я жду, что у меня тут же появятся две пары скобок. Потому что их так и так писать придется в 99% случаев — так зачем мне тратить свое время?
Я не об этом (такая фишка еще лет 12-13 назад в MultiEdit-е была). Например, пишешь вызов какого-нибудь метода, который возвращает ссылку на объект. А у этого объекта, скажем нужно метод DrawRect вызывать. Что-то вроде GetDC()-> и вот тут я уже начинаю ждать, когда же среда мне DrawRect напишет. Ладно, не дождался, сам начинаю вписывать DrawRe -- о! Тут мне подсказывает. Получается GetDC->DrawRect(. И опять от меня чего-то ждет, сама ничего не пишет, только говорит, что нужна координата x. Ага. А где же она у меня? Почему никто не подсказывает? Оказывается мне ее вычислить нужно. И опять я сам должен формулу написать. И т.д.
Кому-то нравится. А лично меня раздражает. Если я знаю, что мне нужно нарисовать прямоугольник и знаю как вычислить его координаты, то пусть мне никто не мешается под ногами. А если кто-то лезет с подсказками, так пусть сам все и делает
Ну чего тут поделаешь -- начинал с Robotron 1715, программы часто сначала на бумаге полностью писал. Тяжелое детство. Лечение уже бесполезно.
... << RSDN@Home 1.1.4 stable rev. 510>>
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Здравствуйте, eao197, Вы писали:
E>Ну чего тут поделаешь -- начинал с Robotron 1715, программы часто сначала на бумаге полностью писал. Тяжелое детство. Лечение уже бесполезно. ;)
А я начинал с калькулятора Электроника БЗ-34, и с тех пор ценю всякие средства, помогающие несчастным труженикам стека и регистра :)
Здравствуйте, jazzer, Вы писали:
ME>>Если человек не умеет пользоваться ручной коробкой передач, значит ли это, что все машины с такой коробкой неюзабельны?
J>Вообще говоря, ручная коробка передач, с которой человек не в состоянии освоиться за 4 дня — это неюзабельная коробка передач
Вообще говоря, реактивный истребитель, с которым человек не в состоянии справиться за четыре дня, совершенно необязательно является неюзабельным истребителем. Более того, этот факт не скажет о юзабельности истребителя НИ-ЧЕ-ГО.
Здравствуйте, jazzer, Вы писали:
E>>Ну чего тут поделаешь -- начинал с Robotron 1715, программы часто сначала на бумаге полностью писал. Тяжелое детство. Лечение уже бесполезно. J>А я начинал с калькулятора Электроника БЗ-34, и с тех пор ценю всякие средства, помогающие несчастным труженикам стека и регистра
Ой, тоже мне... Помнится, мы с Адой, Байрона внучкой, как вернемся от Бэббиджа... Так сразу рукоятки дергать... Пока перфокарты изобрели — я такие бицепсы накачал...
Здравствуйте, glyph, Вы писали:
G>Здравствуйте, jazzer, Вы писали:
E>>>Ну чего тут поделаешь -- начинал с Robotron 1715, программы часто сначала на бумаге полностью писал. Тяжелое детство. Лечение уже бесполезно. J>>А я начинал с калькулятора Электроника БЗ-34, и с тех пор ценю всякие средства, помогающие несчастным труженикам стека и регистра G> Ой, тоже мне... Помнится, мы с Адой, Байрона внучкой, как вернемся от Бэббиджа... Так сразу рукоятки дергать... Пока перфокарты изобрели — я такие бицепсы накачал...
дык я вот читал читал и не понял...
у кого же всё таки больше?
С уважением Denys Valchuk
IMHO чем больше мнений тем оптимальней выбор варианта... :)
execve wrote:
> C>Покажите мне после 30 минут туториала как сделать следующие вещи: > C>1. Создать проект на С++. > >$ cd ~/devel >$ mkdir newproject >$ cd newproject >$ vi Makefile >TARGET=1 >OBJS=1.o > >ifdef DEBUG >CFLAGS+=-ggdb -O0 >CXXFLAGS+=-ggdb -O0 >endif >LD=$(CXX) > >all: $(TARGET) > >$(TARGET): $(OBJS) > $(LD) $(LDFLAGS) $^ $(LOADLIBES) $(LDLIBS) -o $@ > >clean: > rm -f $(TARGET) $(OBJS) > >
У меня куча библиотек в h-файлах. Где автоматическое вычисление
зависимостей? То есть, если я меняю файлик grammar.hpp, то мне НЕ
хочется перекомпилировать все cpp-шники, а только те, где включен
grammar.hpp. При этом еще желательно, чтобы автоматически определялись
non-relevant изменения (то есть, если файл blah.cpp только включает
grammar.hpp, но не использует его — то перекомпилировать его не надо).
Далее, у меня исходники раскиданы по достаточно глубокому дереву
каталогов. Где здесь рекурсивный обход?
Почему линковка не инкрементальная?
> C>5. Запустить под отладчиком.
Да, забыл сказать, что под _нормальным_ отладчиком. То есть с нормальным
интерфейсом, а не командной строкой.
> 5 минут.
Нет.
> В реальном проекте всё, разумеется, не набивается "с нуля", а > копируется/генерируется. > gdb при желании заменяется на DDD, а vi — на emacs.
BreQwaS wrote:
> C>Она хорошо поддерживает C++, C#/J#/VB.NET, SQL и JS. Собственно > C>говоря, больше обычно и не надо. > Не надо кому? Мне — надо.
Ну так используйте для этого _другие_ среды, а не жалуйтесь, что VS не
поддерживает brainf**k и whitespace. Кажется, это ведь unix-way, когда
каждая программа делает немного, но хорошо?
Здравствуйте, Cyberax, Вы писали:
C>То есть, если я меняю файлик grammar.hpp, то мне НЕ C>хочется перекомпилировать все cpp-шники, а только те, где включен C>grammar.hpp. При этом еще желательно, чтобы автоматически определялись C>non-relevant изменения (то есть, если файл blah.cpp только включает C>grammar.hpp, но не использует его — то перекомпилировать его не надо).
А это как?
C>Почему линковка не инкрементальная?
А у GCC и ld есть инкрементальная линковка?
... << RSDN@Home 1.1.4 stable rev. 510>>
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
eao197 wrote:
> Кому-то нравится. А лично меня раздражает. Если я знаю, что мне нужно > нарисовать прямоугольник и знаю как вычислить его координаты, то пусть > мне никто не мешается под ногами. А если кто-то лезет с подсказками, > так пусть сам все и делает
Кстати, для IDEA есть такой плугин. Пишешь, например:
String str="sdfsdf"
str.
Жмешь shortcut для completion'а, появляется список методов у
java.lang.String. Выбираем, например getBytes. Он пишет примерно так:
Если навести мышку/курсор на charsetName, то он покажет примерно это: "
charsetName — the name of a supported _charset_" (_charset_ —
гиперссылка на доку/исходник для java.nio.charset.Charset).
Такой автокомплит хорошо помогает новичкам, хотя мне больше нравится
чуть менее полный autocomplete.
MaximE wrote:
>> В общем диагноз такой: emacs — совершенно неюзабельная вещь, если не >> знать в соверешенстве elsip и внутреннюю структуру используемых модулей. > Читаю я дискуссию, вижу, что человек ты с другой планеты. Ну нахрена, > скажи мне, все эти auto complete, class browser, etc..?
Продолжим: а нафига вообще редактор-то нужен? Настоящие программисты
руками набивают перфокарты. Там и настоящий cut&paste (ножницами
и клеем) будет, который никаким emacs'ам и не снился.
> class browser вообще вещь уникальная в своей бесполезности — что толку > от тучи названий классов и их функций, когда нет картины их > взаимодействия?
В C++ в одном файле могут быть несколько классов. Как мне быстро найти,
где определен данный класс? Еще часто очень удобно посмотреть какие у
класса есть наследники и предки.
> Я понимаю, что человеку, начавшему с Visual Studio, модель мира с > бесполезными рюшечками кажется единственно правильной. Но это, опять > же, как с медитациями — пока не практикуешь, не осознаешь, что свою > "сознательную" жизнь ты спишь наяву.
Ну вот как всегда — стандартный ответ...
> Как я изучал emacs: прочел O'Reily Leaning GNU Emacs, и Bash заодно. > Сел и стал работать продуктивно в любой среде.
Еще раз говорю: сам редактор сложности не представляет. Просто очередные
нестандартные key-binding'и и пара других трюков.
Здравствуйте, Cyberax, Вы писали:
C>execve wrote:
C>У меня куча библиотек в h-файлах. Где автоматическое вычисление C>зависимостей? То есть, если я меняю файлик grammar.hpp, то мне НЕ C>хочется перекомпилировать все cpp-шники, а только те, где включен C>grammar.hpp. При этом еще желательно, чтобы автоматически определялись C>non-relevant изменения (то есть, если файл blah.cpp только включает C>grammar.hpp, но не использует его — то перекомпилировать его не надо).
C>Далее, у меня исходники раскиданы по достаточно глубокому дереву C>каталогов. Где здесь рекурсивный обход?
OBJ=`find . -name "*.cc" | sed 's/\(.*\)\.cc/\1.o/'`
C>Почему линковка не инкрементальная?
Почему в шапке?
>> C>5. Запустить под отладчиком.
C>Да, забыл сказать, что под _нормальным_ отладчиком. То есть с нормальным C>интерфейсом, а не командной строкой.
$ ddd ./1
>> 5 минут.
C>Нет.
Да.
>> В реальном проекте всё, разумеется, не набивается "с нуля", а >> копируется/генерируется. >> gdb при желании заменяется на DDD, а vi — на emacs.
C>Про edit&continue я вообще молчу...
Здравствуйте, Cyberax, Вы писали:
C>В C++ в одном файле могут быть несколько классов. Как мне быстро найти, C>где определен данный класс? Еще часто очень удобно посмотреть какие у C>класса есть наследники и предки.
doxygen мне в этом очень помогает.
... << RSDN@Home 1.1.4 stable rev. 510>>
SObjectizer: <микро>Агентно-ориентированное программирование на C++.
eao197 wrote:
> C>В C++ в одном файле могут быть несколько классов. Как мне быстро найти, > C>где определен данный класс? Еще часто очень удобно посмотреть какие у > C>класса есть наследники и предки. > doxygen мне в этом очень помогает.
Значит, class browser таки используется. Только в виде внешней утилиты,
которая на сложном С++ весьма глючная.
C>>У меня куча библиотек в h-файлах. Где автоматическое вычисление C>>зависимостей? То есть, если я меняю файлик grammar.hpp, то мне НЕ C>>хочется перекомпилировать все cpp-шники, а только те, где включен C>>grammar.hpp. При этом еще желательно, чтобы автоматически определялись C>>non-relevant изменения (то есть, если файл blah.cpp только включает C>>grammar.hpp, но не использует его — то перекомпилировать его не надо).
E>http://www.rsdn.ru/Forum/Message.aspx?mid=1296922&only=1
>>> C>5. Запустить под отладчиком.
C>>Да, забыл сказать, что под _нормальным_ отладчиком. То есть с нормальным C>>интерфейсом, а не командной строкой.
E>
Здравствуйте, Cyberax, Вы писали:
C>eao197 wrote:
>> C>В C++ в одном файле могут быть несколько классов. Как мне быстро найти, >> C>где определен данный класс? Еще часто очень удобно посмотреть какие у >> C>класса есть наследники и предки. >> doxygen мне в этом очень помогает.
C>Значит, class browser таки используется. Только в виде внешней утилиты, C>которая на сложном С++ весьма глючная.
Ну по мне это не class browser, а генератор документации. Про глючность doxygen ничего говорить не буду, особо не замечал (возможно потому, что я на "C с классами" по большей части программирую).
Кроме того, весь смысл как раз в том, что внешние утилиты позволяют получать тот же результат, но не нуждаясь в монстроидальных IDE.
... << RSDN@Home 1.1.4 stable rev. 510>>
SObjectizer: <микро>Агентно-ориентированное программирование на C++.