LINUX.ORG.RU

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


4

3

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

Для написания софта под никс, как и практически под любую другу платформу прекрасно подходит java + intellij idea.

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

Что значит «понятен программе»?

Это значит, что его конструкции языка имеют формальную семантику, известную программе (транслятору или IDE).

мне внезапно говорят, что я лох и, оказывается, для чтения и понимания кода вот просто жизненно необходимы какие-то навороченные свистоперделки

Тебе этого не говорили.

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

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

+многа.

По сабжу - емакс и шелл, если удаленно то vi (куда деваться). Пишу на связке С++/python.

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

Для написания софта под никс, как и практически под любую другу платформу прекрасно подходит java + intellij idea.

Йе, я тока экран протер а тут такой жЫр брыжжет...

AIv ★★★★★ ()

Java - NetBeans
всё остальное - vim

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

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

Война и мир чем то от него отличается?;-)

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

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

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

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

Война и мир чем то от него отличается?

Смысловым наполнением.

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

Война и мир чем то от него отличается?;-)

Вобще то не очень сильно. ☺ Али Вы сударь не слышали о прекрасном языке программирования Shakespeare?

beastie ★★★★★ ()

В маленьких проектах Kate, в больших Eclipse CDT.

m0rph ★★★★★ ()

Не нужно воин

Запятая или «й», вот в чём вопрос.

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

работал как-то в конторе где вся разработка была на девелоперском серваке по ssh. то есть чистая консоль.

То есть привычный, правильно настроенный Емакс на локальной машине, ходящий на сервак через tramp.

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

То есть привычный, правильно настроенный Емакс на локальной машине, ходящий на сервак через tramp.

Эта такая попытка доказать превосходство емакса над вимом?

Не знаю что такое «tramp» (наверно разновидность «трапа»), но думается мне, что такая связка была бы неудобна в работе. Нужно не только файлы редактировать, но их еще там компелять, плюс «инсталить», плюс рестартовать то что заинсталено и т.д.
Опять же проще взять стандартный ssh+vim+screen, чем искать мифический «правильно настроенный Емакс» и НЁХ под названием «tramp».

В соседней комнате сидел бородатый емаксер, но как он организовывал работу мне неизвестно.

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

Фигасе, ты умеешь в буквы, оказывается :) А притворялся...

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

и т.д.

Всё в емаксе + трамп.

чем искать мифический «правильно настроенный Емакс» и НЁХ под названием «tramp».

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

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

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

Пользуюсь. Разобраться реально, сейчас как раз дописываю достаточно объёмный чужой код.

DELIRIUM ☆☆☆☆☆ ()

Про гдб есть перевод манов на складе лора. Редактор - вим.

actics ()

vim, gdb. От отладчика кроме bt и очень редко print вообще ничего не нужно. Если нужно разбираться в чужом коде - grep. Пишу на C++ на работе и дома, постоянно разбираюсь в чужом коде, нужды в ide, комплишоне, тэгах, подсказках и прочих шашечках никогда не испытывал.

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

...то послушай, чего люди говорят.

Чего это вы так возбудились?
Делать безапелляционные заявления о том что мне лучше не зная подробностей, это так по-лоровски.
Если уж у вас так все свербит, распишите в чем же кошерность вашего подхода?
И чего нельзя достигнуть используя <любой консольный редактор>+ssh?
Только в том что в емакс запилили прозрачную передачу файла через ssh?

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

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

Есть, конечно, eclim (запускаем headless Eclipse и работаем с ним через vim), но имхо это жуткий overhead. Да и не сказать, что очень удобно работать с крупными проектами.

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

syntastic действительно хорош. больше бы таких универсальных плагинов)

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

Да это у тебя попоболь попёрла, даже не разобравшись в том, что оппонент написал.

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

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

Потом пересилил себя и 2 недели сидел в vim

Жаль только, что Vim заточен под qwerty. Перемапить всё под дворак (dvp) весьма проблемно.

tmplsr ()
Ответ на: комментарий от unt1tled

Не комбайн. Маленький, быстрый и именно с тем набором функционала, который мне нужен, без всякого гламура. (Да, подсветка кода мне не нужна.) Ну и в поведении он более логичный: undo на undo делает именно то, что ожидается т.е. redo. (а 2 и больше undo — это undo - dot) В vim это сломали и я каждый раз злюсь, когда нарываюсь на это.

beastie ★★★★★ ()

По теме. На работе Eclipse CDT (раньше печалил падениями gdb из среды - kdbg был стабильнее в смысле морды для отладчика, щас пофиг - отладиться можно и снаружи, если прога упала в корку... даже без gdb и т.д. Логи, простейшие RAII-костыли для трейса с «принтами» и велосипедопрофайлеры для подсчета ссылок/зажора памяти в 90% случаев дают более осмысленную инфу чем выхлоп valgrind (особенно если на проекте есть пионеры, которые в консоль не умеют и не хотят, а отлаживать откровенно ленятся (Простой вопрос: "- Работает?" Ответ: "- Собирается..." (с))) :) В gdb в основном смотрим автоматически распарсенные бэктрейсы корок из почты с билдсервера, если с ходу непонятно, кто выстрелил в ногу) Раньше эпизодически пользовали KDevelop (до первого падения от разрыва зайчатков интеллисенса :)) В основном, ответ на вопрос «какое IDE?» находится в зависимости от, генерацию чьих проектов поддерживает текущая версия cmake (и набора платформ, если их больше одной) - большинство проектов завязаны на эту автособиралку. Для себя - те же и... QtCreator/NetBeans/MonoDevelop/vim/дефолтный дистроблокнот/whatever (в общем-то монопенисуально). Попробуй это, попробуй то - к чему душа лежит, тем и пользуйся.

slackwarrior ★★★★★ ()

emacs и gcc. Или emacs и clisp. Или даже emacs и sbcl.

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

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

А ещё я никогда не использовал SLIME, так-то. Для моих поделей вроде как и не надо, в StumpWM есть REPL, так что даже не было такой потребности.

А вот вы, уважаемые лиспокодеры, используете SLIME? Чё я спрашиваю, так вроде все его так нахваливают, что складывается впечатление, что кто его не использует - тот говно по определению.

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

В vim это сломали и я каждый раз злюсь, когда нарываюсь на это

утиная какая-то причина для злости :)

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

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

миллисекунды для прыжков по тегам, от кода не отвлекают никакие панельки, меню, кнопки.

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

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

ihanick ()

st3 + sublimeclang + gdb из консоли + valgrind + clang.

Меня устраивает полностью.

TakeOver ()
Ответ на: комментарий от slackwarrior

Да, утиная, но к ^R в vim я привыкнуть так и не смог. ☺

beastie ★★★★★ ()

vim (ctrlp, nerdtree, tagbar), иногда ctags/cscope, ещё реже gdb.

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

А вот вы, уважаемые лиспокодеры, используете SLIME? Чё я спрашиваю, так вроде все его так нахваливают, что складывается впечатление, что кто его не использует - тот говно по определению.

Писать на Common Lisp и не пользоваться SLIME - это как жить в доме со всеми удобствами, но ходить по делам в дырку на улице и мыться в тазике с холодной водой.

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

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

Видимо, среды используют как раз те, у кого нет этого годами взлелеянного рабочего окружения. Я 4 года назад ещё программировать не умел, а сейчас пришлось с напарником переписать на новый API почти каждую строчку в проекте с ~200.000 SLOC и отсутствием стиля, форматирования, архитектуры.

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

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

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

В *nix пишу так, что не приходится снисходить до бинарной отладки — т.е. исключительно на скриптовых языках; благо, такой путь в *nix тоже довольно обширен и работоспособен для многих вещей. Использую Geany, Gedit, nano, очень редко — vi. Отлаживаю вручную, т.е. всякие вставки, в нужное время делающие вывод и/или останавливающие алгоритм.

Если бы хватило административного ресурса перетащить некоторые F77-проекты моих знакомых в среду *nix, то там было бы тоже, что и сейчас в оффтопике, в среде MinGW-W64 — т.е. Geany + GDB.

Infra_HDC ★★★★★ ()

vim + make + gdb

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

еще использую valgrind и kcachegrind для профайлинга и поиска ошибок работы с памятью и вводом/выводом.

и последнее.. если бы мне в линухе пришлось работать над проектами размером как на работе — я бы застрелился, ибо подходящих инструментов для отладки и навигации по коду тупо нет. msvs рулит и педалит.

waker ★★★★★ ()
Последнее исправление: waker (всего исправлений: 3)
Ответ на: комментарий от mv

Ну я что-то такое и предполагал. Не, мне пофиг. Я не программист.

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

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

я пользовался vim в большом чужом проекте, в течение ~3 лет. нагородил множество костылей, и все равно было неудобно. возможности навигации по коду (cscope, ctags) по сравнению с visual assist x очень примитивны, и, главное, медлительны.

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

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

eclips? netbeans?

этими говноподелками пользоваться неудобно даже там, где vim рулит.

(ок, тут я сгоряча ляпнул, нетбинс я не пробовал, так что речь только за эклипс)

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

waker ★★★★★ ()
Последнее исправление: waker (всего исправлений: 2)
Ответ на: комментарий от quiet_readonly

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

Я пишу код просто зашибись: архитектура продуманая, имена человеческие, производительность отличная, багов почти не бывает. В чём именно писать - пофиг, можно и в mcedit по ssh, но с емаксом продуктивность выше.

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

Ну я что-то такое и предполагал. Не, мне пофиг. Я не программист.

Программисты студией, эклипсом и идеей пользуются. Я вообще котельщик.

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

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

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

как вариант - можно с собой спокойно таскать пару сотен грамм андроидовской «таблетки» с нормальной клавой. цена вопроса - сдать бутылки, мобильность - а+, отличие от нормального ноута - минимальное (при условии хорошей клавы).

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

darkmag ()
Ответ на: комментарий от waker

я пользовался vim в большом чужом проекте, в течение ~3 лет. нагородил множество костылей, и все равно было неудобно. возможности навигации по коду (cscope, ctags) по сравнению с visual assist x очень примитивны, и, главное, медлительны.

какой прекрасный пример ёжика с кактусом :). про примитивны даже не буду спорить (и слава богу, на самом деле). а вот про медлительны интересно...

я, обычно, в кернеле копаюсь. ноут - кор2дуо 2.80GHz 2gb ram. использую cscope+ctags. каждый новый инстанс vim-а стартует с еле заметным (думаю, <0.1s) делэем. внутри - всё летает, ни разу не замечал никаких задержек. vim пайпом общается с cscope, который автоматом с ним вместе подгружается (отсюда и делэй при старте). любой переход мгновенен, «покажи мне все упоминания этой ф/переменной/whatever» уже зависит от степени моей тупизны (все упоминания atomic_inc(), например, да, будут грузиться - сейчас проверил - 997 инстансов за 0.68 секунд).

ЧЯДНТ?

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

а можно наоборот - настроить один раз вим на «сервере»

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

как вариант - можно с собой спокойно таскать пару сотен грамм андроидовской «таблетки»

В моих местах досуга телефон не ловит, даже 911 не вызвать, если поломаешься.

И впн банальный, тока под вендой работает, с участием рса-токена. Так что неожиданно-негаданно без рабочего ноутбука не может быть пофикшено.

п.с. ты там уже прикрутил цскоуп-цтагс к своей ОС? :)

А чего его там прикручивать? Один require, и всё.

а то я, помню, дико удивился когда такой бородатый котельщик с рмс на волпэйпере бродит по кернелу вызывая cscope из бэша и запоминая файл-строку :)

Ну так вот как раз на «сервере» цскопил, наверное. Или дерево в конфиг не прописано было, а у мну цскоповские индексы в одном месте лежали, а не помойку на диске устраивали.

Я щас grep'лю всё больше: настраивать вообще ничего не надо, плюс от цскопа толку мало на больших проектах с кучей реализаций одних и тех же вещей, затенённых ifdef'ами, подсасываемых билд-системой из конфигов.

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