В отличие от мира Windows, где все предназначено только для Windows, я думаю, что довольно типично обнаружить, что остальная часть мира разрабатывает программное обеспечение в соответствии со спецификациями, а не с реализациями.Если вы разрабатываете на Java, то не имеет значения, какую платформу вы намерены использовать, и Eclipse и NetBeans предоставляют отличные инструменты для Java на всех платформах, включая Linux.Если вы разрабатываете на C ++, тогда Boost и Qt предоставляют отличную кроссплатформенную поддержку.Если вам нужно выйти за пределы Boost или Qt, то прежде чем углубляться в специфические для Linux функции, лучше всего выбрать Single UNIX Specification , также известную как IEEE Std.1003.1 POSIX , которая гарантирует, что ваше приложение будет работать не только в Linux, но и в любой UNIX-совместимой операционной системе (включая Mac OS X, FreeBSD, Solaris и др.).
Что касается IDEи другие редакторы ... Я думаю, что большинство программистов на платформах UNIX собираются из командной строки (используя CMake, Make, scons или какой-либо другой стандартный инструмент сборки);однако существует множество IDE с поддержкой тех, кто может запускать такие инструменты автоматически.Anjuta C ++ и KDevelop, вероятно, самые простые IDE для Linux.Emacs (emacs, emacs-gtk, xemacs) и Vim (vim, gvim) обеспечивают большую мощность и гибкость, но для привыкания требуется немного больше времени.Возможно, вы захотите рассмотреть простой текстовый редактор, такой как GEdit (Gnome) или Kate (KDE);GEdit, хотя и называется простым текстовым редактором, поддерживает некоторые более продвинутые функции кодирования с помощью ряда плагинов.Я не помню, поддерживает ли он автозаполнение, но он поддерживает номера строк, автоматический отступ, использование пробелов вместо вкладок, комментирование массива кода и выполнение Makefile с помощью ярлыка.