LINUX.ORG.RU

Кто как пишет под *nix


4

3

Привет всем. Хочется узнать кто чем польуется при программировании в *nix? Не нужно воин, просто чем пользуетесь - редактор + плагины + отладчик и прочее. Я что-то чего только не перепробывал, но не могу нормально к чему-то привыкнуть. Что советуете почитать по gdb для эффективной отладки? Интересно все :)

Ответ на: комментарий от dershokus

Предпочитаю printf, как завещали отцы:

Brian Kernighan

The most effective debugging tool is still careful thought, coupled with judiciously placed print statements.

gdb дёргаю (без всяких плагинов, которых для nvi и быть не может), только если совсем ничего не понятно.

UPD: это для своего кода. Для чужого gdb конечно незаминим. Но и там я printf предпочитаю.

beastie ★★★★★
()
Последнее исправление: beastie (всего исправлений: 1)

Редактор, если надо написать портянку - любой.

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

Отладчик - старая школа - фпринтф + голова + -S. Хотя об этом ужже писали.

superhackkiller1997
()

А кто-нибудь пользуется vim в реальных проектах? Как оно вам, реально вообще с чужой портяной в нем разобраться или только годится только для идеально спроектированных и хорошо написанных проектов? eclips? netbeans?

dershokus
() автор топика
Ответ на: комментарий от superhackkiller1997

Если надо много путешествовать по коду

А вот тут cscope незаменим. (для меня)

beastie ★★★★★
()

emacs/vim, ctags, gdb+cgdb (с ним удобнее), lldb на маке, valgrind

alexeiz
()
Ответ на: комментарий от dershokus

А кто-нибудь пользуется vim в реальных проектах?

Я. И многие коллеги.

Как оно вам, реально вообще с чужой портяной в нем разобраться

Чужая портяна в любом случае - просто текст. Где его смотреть - без разницы.

eclips? netbeans?

Неудобные монстры.

schizoid ★★★
()

основные: ssh, mcedit, gcc, clang, gdb, ddd, strace

quest ★★★★
()

vim+ctags+gcc+make+gdb+grep+sed+awk+svn

yax123 ★★★★★
()
Ответ на: комментарий от dershokus

Нормально, если tag_list + NerdTree прикрутить, то вообще хорошо.

gwinn ★★★★
()
Ответ на: комментарий от dershokus

А кто-нибудь пользуется vim в реальных проектах

работал как-то в конторе где вся разработка была на девелоперском серваке по ssh.
то есть чистая консоль.
По началу пытался все в mcedit делать. Потом пересилил себя и 2 недели сидел в vim (как все остальные). А через месячишко случайное открытие mcedit вызывало рвотные позывы.

yax123 ★★★★★
()

Учитывая, что вы, естественно, пишете на CommonLisp для вас идеально подойдет emacs.

P.S. Для С/С++ - QtCreator

trex6 ★★★★★
()

c/c++ : vim + clang_complete + gdb + ctags + ещё всякая херня common lisp : vim + slimv + ccl + по мелочи плагинов

anonymous
()

ну и естественно git, git, git!

quest ★★★★
()

Основное — QtCreator + к нему плагин ClangCodeModel + clang как компилятор. Бывает польза от мелких утилит, консольных либо визуализаторов вроде elflibviewer, G3DViewer.

quiet_readonly ★★★★
()

Консольный vim с плагинами (добавляет парные скобки) и его конфиг обкатанный за много лет.

Код пишу прямо на сервере. Хожу туда по ssh и подключаюсь к GNU/Screen. Дебагеров у меня нет, есть REPL и 100500 тестов. Все это хранится в svn.

Дополнительные утилиты командной строки: ack-grep, tree, самописные перловые скрипты.

outtaspace ★★★
()
Ответ на: комментарий от schizoid

Чужая портяна в любом случае - просто текст. Где его смотреть - без разницы.

Во-первых это не просто текст, там есть собственно код, потоки выполнения и потоки данных.

Во-вторых интернет — тоже просто текст. Но есть большая разница между поиском в гугле и последовательным обходом всех зарегистрированных доментов в .org.

quiet_readonly ★★★★
()
Ответ на: комментарий от quiet_readonly

там есть собственно код

Это и есть просто текст.

потоки выполнения и потоки данных.

А это не в коде, а в твоей голове.

Но есть большая разница между поиском в гугле и последовательным обходом всех зарегистрированных доментов в .org.

ctags + NerdTree с головой хватит. Мне вообще ls + tree достаточно.

schizoid ★★★
()

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

olibjerd ★★★★★
()
Ответ на: комментарий от dershokus

я пишу под андроид с использованием sdk/ndk. c,c++,java,bash - все в gvim. ctags использую редко, чаще грепаю. плагинов много, но все они минималистичные (matchit, comments, repeat, surround, visincr и тп). если бы писал только на яве, возможно использовал бы эклипс.

vvviperrr ★★★★★
()
Последнее исправление: vvviperrr (всего исправлений: 1)

emacs 24 (там несколько встроенных плагинов для c/c++ по дефолту), «gdb -tui», make, gcc, valgrind (+KCachegrind), git

nerdogeek
()

Редактор любой, меня закидают какашками, но nano для <100 строк идеален, gcc и всё. Да и клепаю ненужные поделки для себя на С.

Dron ★★★★★
()

mcedit tuigdb

anonymous
()
Ответ на: комментарий от schizoid

Это и есть просто текст.

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

ctags + NerdTree с головой хватит.

Для C++ это слишком криво работает, чтобы быть юзабельным.

kamre ★★★
()
Ответ на: комментарий от kamre

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

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

schizoid ★★★
()

Сначала пробовал gedit + gcc из консоли... Даже один проект таким образом написал.

Сейчас пользую QtCreator.

Для дебага - в первую очередь printf, gdb - на крайний случай. Кстати, для того, чтобы использовать его из QtCreator'а, можно не читать ничего... А gdb из консоли я так и не осилил =(

solovey ★★
()

Only Xcode, only hardcore!

bk_ ★★
()

C++ — vim + плагины (тысячи их, но в первую очередь clang_complete), gcc/clang, qmake/cmake.

Haskell — vim + плагины (тысячи их, но в первую очередь ghc-mod), ghc, cabal-dev.

Ну и git, да.

KblCb ★★★★★
()
Последнее исправление: KblCb (всего исправлений: 1)
Ответ на: комментарий от schizoid

Код - это все-таки структурированный текст со множеством связей между разными частями, которые вытекают из семантики языка.

Честно не знаю, что сказать

Тогда просто молчи.

Никогда не сталкивался с подобным неосиляторством.

Сказал человек, который не осилил разницу между кодом и текстом.

tailgunner ★★★★★
()
Ответ на: комментарий от tailgunner

поддерживаю, что код это не только текст. вот у вас просто куча текста и вы читаете: int main(void) { ... some_unknown_function() ... some_global_var ... hell() ... return(0); }

конечно, чисто теоретически можно просто прогрепать папку с проектом, не нашли - грепаем ту папочку выше по каталогу с именем lib и прочее... отвлекает много (особенно если она в /usr/include). Хотя можно воспринимать код как текст, но слишком много действий посторонних нужно от человека.

Было бы интересно - какие техники вы используете при написании кода? Какаие самые частые команды и т.д.

dershokus
() автор топика
Ответ на: комментарий от dershokus

Было бы интересно - какие техники вы используете при написании кода? Какаие самые частые команды и т.д.

Просто набираю. Естественно, автокомплит (если в Eclipse) помогает. Но собственно написание кода занимает довольно малую часть времени. В основном код приходится читать, и здесь главное, в чем помогает Eclipse (и вообще приличная IDE) - навигация по коду.

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)

мои джентельменские наборы

  • c\c++: qtcreator + gcc + gdb
  • python: eclipse + питоновский плагин
  • java: netbeans\idea + openjdk
  • .net: monodevelop и все что идет с mono
  • web: sublime text2 + chrome
EugeneBas ★★
()

emacs (cedet/ede+complete-clang+yas+cscope+..), gdb/valgrind/perf/(sl)trace, find+grep (! :D) и аналогов под альтерантивными ос хватит всем :D

vasily_pupkin ★★★★★
()
Ответ на: комментарий от kamre

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

Редактор такое не имеет шансов асилить, к сожалению. Впрочем, говно C++ код и с хорошим IDE плохо читается, особенно если архитектура косая

vasily_pupkin ★★★★★
()
Ответ на: комментарий от beastie

Предпочитаю printf, как завещали отцы

Отцы проживали во времена отсутствия вменяемых средств динамической инструментации

vasily_pupkin ★★★★★
()

vim/emacs, отладка логами и gdb

Reset ★★★★★
()
Ответ на: комментарий от schizoid

разницу между кодом и текстом.

Поясни тогда, в чём она состоит.

Код полностью понятен программе, текст - нет.

tailgunner ★★★★★
()
Ответ на: комментарий от schizoid

Я не отрицаю, что код-текст, конечно текст :) Просто помнить какие параметры у функции сложно. rbtree_lookup(&rbtree_node,&rbtree)? или rbtree_lookup(&rbtree,&rbtree_node)?

Что делает та или иная функция тоже сложно: qwe(...) - что она делает? ммм, смотрел конечно, но что-то снова забыл. Программер который писал это - конечно казел, но ... Надо бы переименовать, но где еще она применяется? Переименовать а потом посмотреть сообщения компилятора/интерпритатора? Сложновато это все :/

Это похоже на чтение справочника по математике Корна без предметного указателя. Найти можно, но занимает так много времени %(

dershokus
() автор топика
Ответ на: комментарий от beastie

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

dershokus
() автор топика
Ответ на: комментарий от tailgunner

Код полностью понятен программе, текст - нет.

Что это за феерический бред?

Текст - связная и структурированная последовательность символов. Код - это текст программы. Что значит «понятен программе»? Программа - это то, что у тебя в голове. Это абстракция. Ни компьютер, ни редактор, ни IDE не знают, о чём программа. Они просто по тексту навигацию предлагают.

Я не пойму, в чём вообще вопрос. Я открываю программу в редакторе и читаю код - то бишь, текст. И удерживаю его в голове, а что не удерживаю - легко нахожу с помощью поиска по тексту (это всё ещё текст). Всю жизнь так делал, ни разу не страдал от этого ни скоростью, ни напряжением. А сейчас мне внезапно говорят, что я лох и, оказывается, для чтения и понимания кода вот просто жизненно необходимы какие-то навороченные свистоперделки, которые за тебя.. что? Разжёвывают структуру программы? Строят блок-схемы? Картинки показывают?

schizoid ★★★
()
Ответ на: комментарий от dershokus

Я не отрицаю, что код-текст, конечно текст :) Просто помнить какие параметры у функции сложно. rbtree_lookup(&rbtree_node,&rbtree)? или rbtree_lookup(&rbtree,&rbtree_node)?

...

Это похоже на чтение справочника по математике Корна без предметного указателя. Найти можно, но занимает так много времени %(

А, ну, блин. Я тоже самое и имел виду. В конечном счёте это всё равно навигация по тексту.

schizoid ★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.