Какая лучшая IDE для разработки на C / Зачем использовать Emacs вместо IDE?

Так что, отвечая на один из моих предыдущих вопросов, я освежаю свои навыки C.

У меня вопрос: что люди используют для разработки C?

Многие люди используют Emacs в течение многих лет, но что лучше изучить emacs, чем просто использовать IDE, например Geany или KDevelop?

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

Обратите внимание, что меня действительно интересуют только бесплатные IDE / редакторы.

РЕДАКТИРОВАТЬ:

Спасибо за размещение ссылок, которые отвечают на некоторые из моих вопросов, но я думаю, что мне действительно интересно:

Стоит ли учиться редактировать с помощью emacs / vim и компилировать / отлаживать с помощью gcc-toolchain, а не просто использовать IDE, и почему?

По каким причинам люди не переходят на IDE?

Кто-нибудь перешел от разработки, ориентированной на терминалы, к разработке IDE, и почему они перешли?


c ide
person Matthew Rathbone    schedule 06.03.2009    source источник
comment
Я не верю, что вы можете получить какой-либо реальный ответ на этот вопрос. Вы получите: а) личные предпочтения нескольких человек; б) списки возможностей или основные моменты. Вы заявили, что вас интересуют только бесплатные. Загрузите несколько, попробуйте их и выберите наиболее подходящий.   -  person Tomas Andrle    schedule 27.09.2012
comment
В будущем постарайтесь прояснить в своем вопросе, что вам нужен редактор / IDE C, И АБСОЛЮТНО НЕ РЕДАКТОР C ++, ПОТОМУ ЧТО ОНИ НЕ ОДИН.   -  person Miles Rout    schedule 01.01.2013
comment
Я скачал версию eclipse для C и C ++. Было то же самое.   -  person wobbily_col    schedule 11.11.2013


Ответы (10)


Я начал с использования IDE, Microsoft или нет. Затем, когда я некоторое время назад работал над QNX, мне пришлось использовать текстовый редактор + компилятор / компоновщик. Теперь я предпочитаю эту простую комбинацию –– редактор подсветки синтаксиса + компилятор C и компоновщик cli + make –– для любых IDE, даже если среда позволяет это.

Причины для меня следующие:

  1. это везде. Если вы программируете на C, у вас есть компилятор, и обычно вы можете получить себе редактор. Первое, что я делаю - я получаю nedit в Linux или Notepad ++ в Windows. Я бы выбрал vi, но редакторы графического интерфейса предоставляют более качественные шрифты, а это важно, когда вы весь день смотрите на код.

  2. вы можете программировать удаленно, через ssh, когда вам нужно. И иногда очень помогает возможность ssh в цель и делать там какие-то быстрые вещи.

  3. он держит меня близко к CLI, предпочтительно UNIX / Linux CLI. Так что все команды у меня под рукой, и когда они мне нужны, мне не нужно читать справочник. И UNIX CLI может делать то, что IDE часто не могут - потому что их разработчики не думали, что они вам понадобятся.

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

    (если вам интересно, работает ли это в действительно больших проектах - это действительно работает, и чем больше проект, тем больше производительности он дает мне)

  5. когда люди просят меня взглянуть на их код, мне не нужно изучать IDE, которую они используют

person n-alexander    schedule 06.03.2009
comment
эй, спасибо за отличный ответ. Полагаю, это заставит вас тоже изучить библиотеки. Это один из камней преткновения для меня, я не знаю, какие параметры должны принимать все функции, поэтому, просто используя редактор, мне всегда понадобится справочник рядом со мной, который будет меня тормозить. - person Matthew Rathbone; 06.03.2009
comment
А как насчет отладчика ...? - person Jimmy J; 06.03.2009
comment
@rathboma: для этого нужны окна: одно для вашего редактора, другое для вашей документации - person Javier; 06.03.2009
comment
Если это отличный ответ, примите его как свой ответ :-) - person Stefan Thyberg; 06.03.2009
comment
@rathboma, вы также можете познакомиться с словом "мужчина". По крайней мере, к функциям основных библиотек можно получить доступ с помощью: 'man 3 имя функции'. - person Tabitha; 07.03.2009
comment
В gvim можно использовать более удобные шрифты, а также просматривать символы Unicode, в отличие от nedit. - person Alexander; 01.06.2011
comment
@JimmyJ просто используйте GDB на консоли - person xis; 27.06.2012
comment
как насчет отладки? как пройти код? - person ; 27.02.2014
comment
Отладка - это то, для чего нужен GDB! Он невероятно мощный и позволяет делать практически все, что угодно. - person Dylan Gattey; 03.03.2015

Я перешел с терминального текстового редактора + среды создания на Eclipse для большинства своих проектов. От C и C ++ до Java и Python, если назвать несколько языков, с которыми я сейчас работаю.

Причина была просто в производительности. Я не мог позволить себе тратить время и силы на то, чтобы держать все проекты «в голове», потому что другие вещи становились важнее.

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

Обычно, когда вы работаете с инструментами командной строки, вам часто приходится решать множество шаблонных проблем, которые мешают вашей продуктивности. Вам нужно будет подробно изучить инструменты, чтобы полностью использовать их потенциал. Кроме того, поддержка проекта потребует гораздо больше усилий. Рефакторинг приведет к обновлению make-файлов и т. Д.

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

Сделайте свой выбор соответственно.

person Anders Hansson    schedule 06.03.2009

Emacs является IDE.

edit: Хорошо, я уточню. Что такое IDE?

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

Окружающая среда - это, вообще говоря, часть мира, которая окружает точку зрения. В данном случае это то, что мы видим на мониторе (возможно, слышим из динамиков) и управляем с помощью клавиатуры (и, возможно, мыши).

Разработка - это то, чем мы хотим заниматься в этой среде, ее цель, если хотите. Мы используем среду для разработки программного обеспечения. Это определяет, какие подчасти нам нужны: редактор, интерфейс для REPL, соотв. компилятор, интерфейс к отладчику и доступ к онлайн-документации (этот список может быть не исчерпывающим).

Интегрированный означает, что все части среды каким-то образом находятся под однородной поверхностью. В среде IDE мы можем получить доступ к различным частям и использовать их с минимальным переключением; нам не нужно покидать нашу определенную среду. Эта интеграция позволяет различным подразделениям лучше взаимодействовать. Например, редактор может знать, на каком языке мы пишем, и предоставлять нам автодополнение символов, переход к определению, автоматический отступ, подсветку синтаксиса и т. Д. Он может получать информацию от компилятора, автоматически переходить к ошибкам и выделить их. В большинстве, если не во всех IDE, редактор, естественно, находится в центре процесса разработки.

Emacs делает все это, он делает это с широким спектром языков и задач, и делает это превосходно, поскольку пользователь легко расширяет его, если он что-то упускает.

Контрпример: вы можете разработать что-то вроде Блокнота, получить доступ к документации через Firefox и XPdf и управлять компилятором и отладчиком из оболочки. Это будет среда разработки, но она не будет интегрированной.

person Svante    schedule 06.03.2009
comment
emacs интегрирован, как камни соединены с раствором в этрусских руинах. Серьезно, emacs - это первое, что я запускаю утром, но как назвать это интегрированной IDE? Нет, если вы не волшебник. - person Cheeso; 09.03.2009
comment
Вам не обязательно самому быть волшебником. Вы можете просто использовать то, что сделали другие. Например, попробуйте сравнить SLIME (улучшенный режим взаимодействия Lisp для emacs) с Lisp-режимом (или он называется плагином?) Для Eclipse. - person Svante; 09.03.2009

Я довольно успешно использовал Eclipse с подключаемым модулем CDT.

person fluffels    schedule 06.03.2009
comment
Но и для меня Eclipse поначалу может быть довольно требовательным. Но обучение - это не зря потраченные усилия. - person Anders Hansson; 06.03.2009
comment
Я никогда не чувствовал себя комфортно с CDT. Не могу понять это. Было странно делать C в среде Eclipse. - person Yuval Adam; 22.08.2010
comment
Проклятие обучения слишком круто и, ИМО, не совсем оправдано. Научиться использовать GCC и pkg-config было намного быстрее. - person WhyNotHugo; 21.01.2011
comment
@YuvalAdam: Ну, писать код на C в среде Java должно быть немного странно, не так ли? Это все равно, что ходить в сшитом на заказ костюме на помойку. Для меня C в Java env немного похож на магазин виски в детском саду или игру квинтета Шуберта до мажор для слабослышащих ... совершенно нехарактерно и бесполезно ... - person Elias Van Ootegem; 01.12.2013
comment
Для справки, я больше не поддерживаю этот вариант. Eclipse стал для меня очень нестабильным. CDT особенно. - person fluffels; 18.05.2015

Emacs было бы лучше, если бы в нем был текстовый редактор ... :-)

person Jimmy J    schedule 06.03.2009
comment
Как пользователь Vim я вас не понимаю. Вы можете объяснить больше? - person Tim Matthews; 06.03.2009
comment
+1 Ага, нормальный редактор, вроде vim! Пусть начинается священная война! - person qrdl; 06.03.2009
comment
На самом деле он есть. Я думаю, вы можете нажать META-CTRL-LEFT_ALT-Q + R + W, чтобы открыть его! - person Anders Hansson; 06.03.2009
comment
Четырехместный бакки-кокс. - person Chinasaur; 02.09.2013

Используйте Code :: Blocks. В нем есть все необходимое и очень чистый графический интерфейс.

person soulmerge    schedule 06.03.2009

Netbeans имеет отличную поддержку C и C ++. Некоторые люди жалуются, что он раздутый и медленный, но я использую его почти исключительно для личных проектов, и мне он нравится. Функция поддержки кода - одна из лучших, что я когда-либо видел.

person Josh Rieken    schedule 22.08.2010
comment
Мне очень нравился Netbeans, когда я программировал на Java. Я тоже был бы признателен за единообразие IDE. - person ; 03.09.2010
comment
Раньше я обнаруживал, что Netbeans и Komodo Edit схожи по функциональности с Netbeans, тяжелее / медленнее. - person Chinasaur; 02.09.2013

Почему никто не упоминает Bloodshed Devc ++? Давно не использовал его, но изучил c / c ++ на Это. очень похож на MS Visual c ++.

person santo101    schedule 27.09.2012
comment
Вы упомянули об этом. Возможно, потому, что он называется DevC ++, а это вопрос C? - person Miles Rout; 01.01.2013
comment
Я использую DevC ++ для написания C и C ++ - person CrackSmoker9000; 29.04.2014

Если вам нужен бесплатный красивый кроссплатформенный редактор, попробуйте Komodo Edit. Он не такой мощный, как Komodo IDE, но не бесплатный. См. диаграмму функций.

Еще один бесплатный расширяемый редактор - jEdit. Кроссплатформенность, поскольку это 100% чистая Java. Не самая быстрая IDE на земле, но для Java на самом деле очень быстрая, очень гибкая, хотя и не такая красивая.

Оба имеют очень сложное сворачивание кода, подсветку синтаксиса (для всех языков, о которых вы можете думать!) И очень гибкие в настройке для ваших личных нужд. jEdit, кстати, очень легко расширить, добавив туда любую функцию, которая может вам понадобиться (у него очень простой язык сценариев, который выглядит как Java, но на самом деле является "сценарием").

person Mecki    schedule 06.03.2009

Если вы работаете в Windows, то это совсем несложно: установите Visual C ++ Express.

person Jimmy J    schedule 06.03.2009
comment
Почему? На самом деле это ничего не дает. - person WhyNotHugo; 21.01.2011
comment
В прошлом десятилетии я бы с вами согласился. Однако альтернативные IDE улучшились. Eclipse, NetBeans, Code :: Blocks, Emacs для Windows и последнее, но не менее важное: Qt Creator. В дополнение к этому, другие платформы, помимо Windows, стали чрезвычайно важными: от OS X и Linux (Ubuntu, встроенная или серверная) до iOS и Android для мобильных устройств. Перефразируя ваше утверждение, это уже не совсем простой мир. Даже если вы работаете в Windows, вам, возможно, придется разрабатывать и для других платформ (или сделать это возможным), и вам, конечно, не обязательно выбирать Visual C ++. - person Alexander; 19.05.2011
comment
Visual C ++ не поддерживает современные стандарты C. В первую очередь это IDE C ++, которая не очень хорошо подходит для разработки на C. - person Alex; 15.03.2013
comment
В прошлом установка бесплатной версии Visual C ++ была для меня полным кошмаром; Я сдался. Есть установщик, затем вам нужно найти вторичный установщик патчей, который исправляет вещи, которые есть в стандартном установщике (MS: почему бы не заменить установщик F'ed up на хороший?). Он разбрасывает двоичные файлы и библиотеки в случайных местах и ​​сбивает себя с толку (не говоря уже о вас). Это была последняя капля, которая заставила меня отказаться от Windows. - person Chinasaur; 02.09.2013