Хочу расширить свою специализацию. Хочется изучить программирование под Linux/Unix, но не очень понимаю, с чего начать.
Каков "джентельменский набор" программиста на С++ под Linux/Unix?
Какой дистрибутив Linux/Unix лучше поставить?
Какую среду разработки и компилятор?
Какие библиотеки изучить?
Интересуют самый востребованные (широко используемые) инструменты, такие как QT.
S>Хочу расширить свою специализацию. Хочется изучить программирование под Linux/Unix, но не очень понимаю, с чего начать.
S>Каков "джентельменский набор" программиста на С++ под Linux/Unix?
g++/emacs/valgrind S>Какой дистрибутив Linux/Unix лучше поставить?
Fedora S>Какую среду разработки и компилятор?
emacs, g++ S>Какие библиотеки изучить?
boost/Qt S>Интересуют самый востребованные (широко используемые) инструменты, такие как QT.
Qt
Здравствуйте, uhh, Вы писали:
uhh>Здравствуйте, Sashaka, Вы писали:
S>>Хочу расширить свою специализацию. Хочется изучить программирование под Linux/Unix, но не очень понимаю, с чего начать.
S>>Каков "джентельменский набор" программиста на С++ под Linux/Unix? uhh>g++/emacs/valgrind
Рискуем скатиться во флейм, но выскажусь, так как имею нужный ТС опыт — уже год как переехал на *nix с винды, не понимаю в упор, в чем преимущества емакса, по-моему, создано чужими для хищников.
Остановился на NetBeans (была еще SunStudio, но благополучно умерла вместе с Sun)
Короче, нельзя виндовому программисту переживать такие стрессы, как работа в емаксе, надо все постепенно, иначе ежечасные пятиминутки ненависти гарантированы
S>Хочу расширить свою специализацию. Хочется изучить программирование под Linux/Unix, но не очень понимаю, с чего начать.
S>Каков "джентельменский набор" программиста на С++ под Linux/Unix?
g++, Make, autotools или Cmake
S>Какой дистрибутив Linux/Unix лучше поставить?
любой из мейнстрима, реально, критичных отличий не вижу
S>Какую среду разработки и компилятор?
среда разработки — по вкусу, Make понимают все
S>Какие библиотеки изучить?
pthread и вообще многопоточность в POSIX, очень по ним на собеседованиях спрашивают
Здравствуйте, los puercos, Вы писали:
LP>Остановился на NetBeans (была еще SunStudio, но благополучно умерла вместе с Sun)
На большом проекте ложится и больше не оживает. В отличие от того-же Eclipse.
LP>Короче, нельзя виндовому программисту переживать такие стрессы, как работа в емаксе, надо все постепенно, иначе ежечасные пятиминутки ненависти гарантированы
А как же тогда он пересядет? Еще GDB будет доставлять не по детски.
Здравствуйте, kaa.python, Вы писали:
KP>Здравствуйте, los puercos, Вы писали:
LP>>Остановился на NetBeans (была еще SunStudio, но благополучно умерла вместе с Sun)
KP>На большом проекте ложится и больше не оживает. В отличие от того-же Eclipse.
Списибо, буду знать. Вообще, емакс в планах есть, но как-то регулятно откладывается.
Eclipse сразe отправился в топку.
LP>>Короче, нельзя виндовому программисту переживать такие стрессы, как работа в емаксе, надо все постепенно, иначе ежечасные пятиминутки ненависти гарантированы KP>А как же тогда он пересядет? Еще GDB будет доставлять не по детски.
Даже с DDD?
Здравствуйте, los puercos, Вы писали:
LP>Списибо, буду знать. Вообще, емакс в планах есть, но как-то регулятно откладывается.
Может и зря. У него не очень хорошо дела с поиском по тегам и автоподстановкой обстоят.
LP>Eclipse сразe отправился в топку.
А вот это зря, он, конечно, монструозен и как редактор не чета тому же Vim, но очень хорошо справляется с задачей парсинга большого (реально большого) объема кода. И в итоге оказывается довольно юзабельной штукой.
LP>>>Короче, нельзя виндовому программисту переживать такие стрессы, как работа в емаксе, надо все постепенно, иначе ежечасные пятиминутки ненависти гарантированы KP>>А как же тогда он пересядет? Еще GDB будет доставлять не по детски. LP>Даже с DDD?
Как-то так получается, что все эти оболочки (еще можно про cgdb вспомнить, например) хороши. Но как доходит до работы, где-то что-то начинает глючить о отваливаться. И в итоге возвращаешься к чистому GDB. Хотя, если писать GUI, не отлаживать kernel-level или демоны, то, возможно, все будет хорошо
Здравствуйте, los puercos, Вы писали:
LP>Короче, нельзя виндовому программисту переживать такие стрессы, как работа в емаксе, надо все постепенно, иначе ежечасные пятиминутки ненависти гарантированы
После шести лет опыта на visual studio, за месяц пересел на vim. Как домой вернулся. Теперь вспоминаю угрёбищную формошлёпку от ms как страшный сон.
Здравствуйте, kaa.python, Вы писали:
KP>Здравствуйте, los puercos, Вы писали:
LP>>Списибо, буду знать. Вообще, емакс в планах есть, но как-то регулятно откладывается.
KP>Может и зря. У него не очень хорошо дела с поиском по тегам и автоподстановкой обстоят.
LP>>Eclipse сразe отправился в топку.
KP>А вот это зря, он, конечно, монструозен и как редактор не чета тому же Vim, но очень хорошо справляется с задачей парсинга большого (реально большого) объема кода. И в итоге оказывается довольно юзабельной штукой.
Не знаю, об одном и том же мы говорим, Eclipse как бы платформа. Но CDT у меня регулярно падает и тормозит дичайше, при парсинге в том числе.
Здравствуйте, los puercos, Вы писали:
KP>>А вот это зря, он, конечно, монструозен и как редактор не чета тому же Vim, но очень хорошо справляется с задачей парсинга большого (реально большого) объема кода. И в итоге оказывается довольно юзабельной штукой.
LP>Не знаю, об одном и том же мы говорим, Eclipse как бы платформа. Но CDT у меня регулярно падает и тормозит дичайше, при парсинге в том числе.
Да, я именно про него говорю. В настройках CDT надо выставить пару флажков: на вкладке Indexer необходимо выставить флажки "Skip implicit references" и "Skip type and macro references", а так же увеличить "Cache limits" на той же вкладке. После этого все будет работать как минимум не хуже чем в случае с NetBeans IDE.
Здравствуйте, los puercos, Вы писали:
LP>>>Короче, нельзя виндовому программисту переживать такие стрессы, как работа в емаксе, надо все постепенно, иначе ежечасные пятиминутки ненависти гарантированы KP>>А как же тогда он пересядет? Еще GDB будет доставлять не по детски. LP>Даже с DDD?
уж лучше тогда использовать Qt Creator + CMake, отлаживать достаточно удобно.
а вообще IMHO у Emacs-а достаточно хорошая поддержка GDB, чтобы ей удобно было пользоваться. мне только не понравились keybinding-и по умолчанию, настроил под себя.
Здравствуйте, Sashaka, Вы писали:
S>Хочу расширить свою специализацию. Хочется изучить программирование под Linux/Unix, но не очень понимаю, с чего начать.
Я примерно года 3 как пересел.
Думаю, примерный порядок действий такой:
Поставь какой-нибудь линукс, освойся, разберись с консолью, напиши какой-нибудь helloworld, скомпилируй его из консоли, запусти.
Создай проект из нескольких файлов, разберись с make, autotools/cmake/scons (сам пользуюсь cmake), собери, запусти.
Разберись с gdb, подебажь свой учебный проект.
Выбери редактор и прочие тулзы для повседневной работы.
Дальше по потребностям.
S>Каков "джентельменский набор" программиста на С++ под Linux/Unix?
g++, gdb
S>Какой дистрибутив Linux/Unix лучше поставить?
Универсального ответа нет. Тот, что нормально поставится и не будет сильно глючить. Попробуй для начала убунту. Год под ним сижу на работе, доволен.
S>Какую среду разработки и компилятор?
Компилятор g++, остальные в 99% случаев под юниксом не нужны.
Нормальную среду разработки, такую, чтобы сидеть только в ней и все делать, не нашел. Работаю так:
Для редактирования среда, которая умеет парсить С++ и умеет хотя бы часть того, что было по студией/ассистом. Я сначала взял NetBeans, но он со временем стал страшно тормозить, к тому же новые версии кажутся хуже старых. Пересел на QTCreator, пока доволен.
Для компиляции настроить хоткей или alt-tab в консоль и make, cmake и т.д.
Для отладки cgdb — оболочка над gdb, раскрашивает код, позволяет работать хоткеями, а не консольным командами, как голый gdb. Но от студийной привычки на каждый чих лезть в дебаггер отказался, т.к. неудобно. Вместо этого всегда делаю обильно логирование, нормальных логов в большинстве случаев хватает, чтобы распознать проблему.
Кроме этого для комфортной работы надо освоить базовые консольные тулзы юникса — grep, find и прочие.
shell script не люблю, умею перл, но это дело вкуса. В любом случае писать мелкие скрипты на чем-то надо.
Системы сборки — make, (cmake | autotools)
Голый gdb желательно тоже уметь хотя бы на базовом уровне, т.к. возможно придется дебажить удаленно на машине, где оболочек нет и поставить не дадут.
Какой-нибудь текстовый редактор с подсветкой синтаксиса, чтобы написать что-то небольшое, не тратя времени на то, чтобы лезть в среду разработки. Выбор большой. scite, kate. Если хочешь стать тру-юниксоидом — vim, но ты будешь страдать
S>Какие библиотеки изучить?
Общечеловеческие все те же, что и под виндой — STL, boost.
Остальное зависит от нужд проекта.
S>Интересуют самый востребованные (широко используемые) инструменты, такие как QT.
QT это для гуя. У меня вот гуя нет, QT даже не щупал. Зависит от проекта.
Здравствуйте, RedUser, Вы писали:
LP>>pthread и вообще многопоточность в POSIX, очень по ним на собеседованиях спрашивают RU>А что, например, спрашивают?
fork/exec, мьютексы, семафоры, условные переменные, производительность, многопоточные паттерны
S>Хочу расширить свою специализацию. Хочется изучить программирование под Linux/Unix, но не очень понимаю, с чего начать.
S>Каков "джентельменский набор" программиста на С++ под Linux/Unix? S>Какой дистрибутив Linux/Unix лучше поставить? S>Какую среду разработки и компилятор? S>Какие библиотеки изучить?
S>Интересуют самый востребованные (широко используемые) инструменты, такие как QT.
Я бы тоже тоже хотел с винды съехать в программирование под *nix.
Только писать гуй на Qt (хотя в проектах для себя использую PyGtk) или чем-то другом совсем не горю желанием.
Куда можно податься по *nix без гуя и чего нужно учить?
Здравствуйте, TrashMiner, Вы писали:
TM>Куда можно податься по *nix без гуя и чего нужно учить?
Так в основном серверный софт под *nix пишут, там никакого гуя и нет. Из специфичного для *nix в целом всё вокруг POSIX крутится. Основные вещи от платформы не зависят — сетевые протоколы, стандарты.
Плюс полезно копнуть в сторону системного программирования. На эту тему по Linux хорошая книжка: Understanding the Linux Kernel, 3rd edition
TM>Я бы тоже тоже хотел с винды съехать в программирование под *nix. TM>Только писать гуй на Qt (хотя в проектах для себя использую PyGtk) или чем-то другом совсем не горю желанием.
TM>Куда можно податься по *nix без гуя и чего нужно учить?
У нас, например, есть как более-или-менее общие *nix вещи, так и фишки, специфичные для конкретной системы (в нашем случае — Solaris). Куча многопоточности, синхронизации, lock-free объектов, сетевые вещи (не только TCP), shared memory etc.
Но с другой стороны для плагинов и стратегий — простой C++, без OS-specifics вообще.
S>Хочу расширить свою специализацию. Хочется изучить программирование под Linux/Unix, но не очень понимаю, с чего начать. S>Каков "джентельменский набор" программиста на С++ под Linux/Unix? S>Какой дистрибутив Linux/Unix лучше поставить?
Ubunta для начала вполне.
S>Какую среду разработки и компилятор?
Eclipse, gcc. Valgrin так же не лишним будет.
S>Какие библиотеки изучить?
Boost, STL — универсальный набор. Для GUI — Qt
Ну а дальше по потребностям.
S>Интересуют самый востребованные (широко используемые) инструменты, такие как QT.
Вообще, востребованы кроссплатформенные вещи (по крайней мере от меня их регулярно требуют ).
S>Хочу расширить свою специализацию. Хочется изучить программирование под Linux/Unix, но не очень понимаю, с чего начать.
S>Каков "джентельменский набор" программиста на С++ под Linux/Unix? S>Какой дистрибутив Linux/Unix лучше поставить? S>Какую среду разработки и компилятор? S>Какие библиотеки изучить?
S>Интересуют самый востребованные (широко используемые) инструменты, такие как QT.
В дополнение к вышесказанным постам могу посоветовать изучить библиотеки:
libxml, iconv, curl, gd2, pcre
Здравствуйте, Alexey Neorov, Вы писали:
AN>В дополнение к вышесказанным постам могу посоветовать изучить библиотеки: AN>libxml, iconv, curl, gd2, pcre AN>они пригодятся в некоторых проектах.
Именно что в некоторых
Изучать библиотеки "про запас" смысла нет, только под реальный проект
На собеседованиях библиотеки (кроме разве что pthread) не спрашивают точно
uhh>уж лучше тогда использовать Qt Creator + CMake, отлаживать достаточно удобно.
Вот только падает этот QT Creator чуть ли не каждом чихе. По крайней мере у меня. Возможности отладки так себе.
Месяц как пишу под Linux. До этого был только Win и уютненькая Visual Studio.
В качестве редактора пока использую Geany — это легковесная IDE типа SCITE под Win. Приходилось кое-что править в емаксе. Честно, не нравится. В будущем планирую освоить Vim.
Для поиска по исходникам пишу регулярные выражения для grep.
В качестве отладчика использую консольный front-end для gdb, именуемый cgdb. Выглядит достаточн удобно, как и многое в линуксе, можно сконфигурировать его "под себя" после чтения мануалов.
Для генерации make файлов вполне устраивает qmake.
И для того, чтоб видеть только ошибки из очень длинного потока мысли компилятора использую следующую конструкцию:
make 2>&1 | grep '[Ee]rror'
Правда тот же Geany умеет открывать make-файлы, запускать их и выдавать ошибки в виде, похожем на Visual Studio, даже можно клацнуть по строчке и откроется нужный файл в нужном месте. Правда, я это не использую. Суровые линуксоиды ведь не ищут лёгких путей
AN>>libxml, iconv, curl, gd2, pcre
LP>Именно что в некоторых LP>Изучать библиотеки "про запас" смысла нет, только под реальный проект LP>На собеседованиях библиотеки (кроме разве что pthread) не спрашивают точно
ну меня спрашивали libevent либо boost:asio. libevent это в любом случае такой элемент общей культуры, о котором нужно хотя бы иметь представление.
libxml2 и iconv тоже такие же элементы общей культуры.
pcre изучать заранее действительно не нужно, потому что простые регэкспы есть в libc/posix.
Здравствуйте, Yuki-no Tenshi, Вы писали:
uhh>>уж лучше тогда использовать Qt Creator + CMake, отлаживать достаточно удобно.
YNT>Вот только падает этот QT Creator чуть ли не каждом чихе. По крайней мере у меня. Возможности отладки так себе.
А у меня вполне стабильно работает Может версия какая-нибудь неудачная?
Про отладку я даже не проверял. Использую только для редактирования и навигации по коду, т.к. это, похоже, единственная среда, умеющая нормально парсить С++.
YNT>В качестве редактора пока использую Geany — это легковесная IDE типа SCITE под Win. Приходилось кое-что править в емаксе. Честно, не нравится. В будущем планирую освоить Vim.
Между прочим, scite и под линукс есть.
По поводу среды разработки, тут почему то не упоминали kdevelop.
Если пересаживаться с VS, то можно почти безболезненно приспособиться к gdb через kdevelop.
Не будет лишним потратить время на изучение GNU autotools.
S>Хочу расширить свою специализацию. Хочется изучить программирование под Linux/Unix, но не очень понимаю, с чего начать.
S>Каков "джентельменский набор" программиста на С++ под Linux/Unix? S>Какой дистрибутив Linux/Unix лучше поставить? S>Какую среду разработки и компилятор? S>Какие библиотеки изучить?
S>Интересуют самый востребованные (широко используемые) инструменты, такие как QT.
В качестве IDE — CodeBlocks (можно сказать VC6 под Linux)
Дистр. — Debian
S>Хочу расширить свою специализацию. Хочется изучить программирование под Linux/Unix, но не очень понимаю, с чего начать.
S>Каков "джентельменский набор" программиста на С++ под Linux/Unix?
Стандартные устройства "руки", драйвер "голова", google
S>Какой дистрибутив Linux/Unix лучше поставить?
1) Ставить тот, который стоит у знакомого спеца.
2) Если нет знакомого спеца, то какой-нибудь топовый дистрибутив (http://distrowatch.com/)
Иначе пытаться вывести из ответов рейтинг дистрибутивов.
S>Какую среду разработки и компилятор?
qtcreator, gcc
S>Какие библиотеки изучить?
Хорошие библиотеки на с++ обычно кроссплатформенные.
Отдельно — pthreads.
S>Интересуют самый востребованные (широко используемые) инструменты, такие как QT.
QT, boost они и под windows работают.
Из всего специфического: gcc + pthreads.
Неоконченная мысль всегда казалась Шри Япутре слишком
S>Хочу расширить свою специализацию. Хочется изучить программирование под Linux/Unix, но не очень понимаю, с чего начать.
программирую на линухе уже третий год, причем для энтерпрайз рынка. при этом линух загружал от силы десяток раз (на виртуалке), ибо на фиг он мне нужен. у меня все замечательно и ms vc компилируется. и работает не только на линухе, но и на винде, и на маке. потому как сразу пишется портабельно. у нас весь отдел под линух пишет, под виндой написанный софт работает только у меня в отладочных целях. на самом деле отлаживать такиим образом его не получаетя, т.к. все это пишется под программно-аппаратный комплекс и на винде можно прогнать только простенькие тесты, чтобы выявить наиболее грубые ошибки. окончательная сборка всего проекта и тестирование делается, ес-но на линухе, но не мной.
это я к тому, что "программировать под линух" (как специальность) и "владеть линухом" (как юзер) это не одно и тоже. и далеко не весь линуховый код имеет линуховую специфику. практически все популярные библиотеки под линух портированы и на другие платформы и вникать в тонкости линуха необходимо только при написании низкоуровневого системного софта.
S>Каков "джентельменский набор" программиста на С++ под Linux/Unix?
make + git + ms vc + far + colorer + FireFox.
S>Какой дистрибутив Linux/Unix лучше поставить?
а нужно ли вам его _ставить_ ?! я в линухе только собирал несколько раз код проекта, чтобы убедиться, что gcc его собирает без ругательств и для этого загружался с флешки. сначала был кноппих, потом багтрек из которого мне один только gcc и был нужен. а так основной цикл разработки происходит в винде.
S>Какую среду разработки и компилятор?
желательно не завязываться на компилятор. под линухом как минимум есть gcc и Intel, но рекомендуется писать код, который скушает и ms vc. терпень не навижу сишный код с гнушной спецификой, который не собирается ms vc пока слегка не пошаманишь.
S>Какие библиотеки изучить?
смотря что мы пишем...
americans fought a war for a freedom. another one to end slavery. so, what do some of them choose to do with their freedom? become slaves.