Вы используете VIM/Emacs/Terminals для разработки C/C++? Для каких проектов это практично?

Все это относится к ссылочным типам, типы значения не могут использовать as ключевое слово, поскольку они не могут быть пустыми.

//if I know that SomeObject is an instance of SomeClass
SomeClass sc = (SomeClass) someObject;


//if SomeObject *might* be SomeClass
SomeClass sc2 = someObject as SomeClass;

синтаксис броска более быстр, но только, когда успешный, это намного медленнее для сбоя.

Лучшая практика должна использовать as, когда Вы не знаете тип:

//we need to know what someObject is
SomeClass sc;
SomeOtherClass soc;

//use as to find the right type
if( ( sc = someObject as SomeClass ) != null ) 
{
    //do something with sc
}
else if ( ( soc = someObject as SomeOtherClass ) != null ) 
{
    //do something with soc
}

Однако, если Вы абсолютно уверены, что someObject экземпляр SomeClass тогда бросок использования.

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

9
задан Jimbo 15 November 2009 в 04:51
поделиться

16 ответов

Над какими проектами вы работаете?

Всем доброго ... vim - моя основная "IDE" где угодно

Они большие?

] Да ... Мой проект FOSS CppCMS написан почти на 100% в vim

Production?

Да, большая часть производственного кода (не FOSS), который я пишу сегодня, я использую vim.

Эти инструменты вы используете на работе?

Да.

Я бы объяснил несколько простых вещей:

  1. vim предоставляет почти все инструменты, которые делает среда IDE, выделение, проверка орфографии, автозаполнение, работа с несколькими буферами, сборка, контекстные "переходы" (decl, def) и многое другое
  2. Он чрезвычайно портативен, я работаю с ним в Windows , Linux, OpenVMS, Solaris, FreeBSD.
  3. Она очень легкая по сравнению с раздутой IDE.

Есть только одно, что я использую сегодня IDE: отладку серьезных ошибок.

11
ответ дан 4 December 2019 в 05:54
поделиться

хорошо .. Надо сказать, что я виммер. Используя IDE, мне наплевать на многие вещи, например, когда вы используете редактор вроде vim / emacs. Но если вы сделаете немного больше, вы обнаружите, что IDE, которую вы используете, больше мешает, чем помогает в процессе разработки вашей программы. увы ... если вы настаиваете на использовании vim / emacs в качестве редактора, вы столкнетесь с «кривой глубокого обучения», вы потратите так много времени даже на то, чтобы реализовать такую ​​тривиальную функцию в своем редакторе,

1
ответ дан 4 December 2019 в 05:54
поделиться

1. Да. 2. Любой тип проекта.


Нет никаких ограничений на размер системы, которая может быть разработана в Vim / Emacs / Unix, фактически, их меньше, чем в IDE. Давайте посмотрим на несколько вещей, которые я использую ...

SYSTEM          LINES OF CODE
Linux kernel       10,000,000
NetBSD              4,000,000
Ruby                  200,000

Это довольно большие системы.

Я не верю, что какие-либо из них были разработаны с помощью программного обеспечения IDE.

4
ответ дан 4 December 2019 в 05:54
поделиться

Я использую Emacs для разработки коммерческого программного обеспечения размером в несколько миллионов LoC и массового использования шаблонов и т. Д. Я использую CEDET + gnu global в качестве вспомогательных пакетов + yasnippet и т. Д.

3
ответ дан 4 December 2019 в 05:54
поделиться

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

Практически единственный раз, когда я увидел реальную пользу от использования IDE, был, когда я работал над нативной платформой Приложения с графическим интерфейсом пользователя, в которых намного проще создавать формы и связывать свои элементы управления. Но я не делал такой работы более десяти лет - последняя работа, которую я выполнял, была в Deplhi, когда она еще принадлежала Borland; Я думаю, что версия 4 только что вышла, хотя могла быть и 3.

0
ответ дан 4 December 2019 в 05:54
поделиться

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

Это упрощает понимание концепций. И это облегчает переход от платформы к платформе.

Итак, изучите vi, make, gdb, некоторую систему управления версиями (git, svn).

Но для производства я бы сказал, что знакомство со «стандартной IDE» "среды является обязательным условием (Visual Studio для Windows, XCode для Mac OS, Eclipse для Java и т.д.)

Не важно, что говорят другие, освоение IDE повысит вашу продуктивность. Если вы использовали vi / emacs в течение 10 лет и попробовали Eclipse или Visual Studio в течение нескольких дней, вы скажете, что они раздуты и ничего не предлагают взамен. Это чушь. Чем более открытыми вы будете, тем лучше вы станете.

3
ответ дан 4 December 2019 в 05:54
поделиться

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

Я построил системы, которые состояли из нескольких взаимодействующих клиентов и серверов, распределенных на нескольких физических машинах. В этих усилиях я использовал инструменты командной строки почти исключительно на стороне сервера. Я буду использовать DDD, когда смогу, но я также знаю базовый GDB. Если клиенты - это Windows, я буду использовать Visual Studio IDE, но если они UNIX, я Пойду с командной строкой.

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

Кстати, я поместил Emacs в класс IDE. У меня есть друг, который первым делом заводит его и не покидает окружающую среду весь день. Фактически, это больше, чем IDE, поскольку он занимается почтой, серфингом и т. Д., По крайней мере, так он мне сказал.

4
ответ дан 4 December 2019 в 05:54
поделиться

Я использую vim для всего, от небольших одноразовых скриптов до производственного кода из более чем 1000 строк. Он настолько универсален, что работать в любой другой среде кажется затруднительным. Если я участвую в проекте, который требует стандартной среды (IDE), то я буду писать столько кода, сколько смогу в vim, а затем импортирую в ide.

4
ответ дан 4 December 2019 в 05:54
поделиться

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

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

Это также проблема с некоторыми встроенными системами, где вы, возможно, захотите обновить код в интерактивном режиме через RS232. или интерфейс командной строки на основе USB.

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

5
ответ дан 4 December 2019 в 05:54
поделиться

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

Я не использовал его для каких-либо масштабных проектов (потому что я не писал крупных проектов), но если бы я собирался, я бы все равно использовал vim.

Я считаю, что при изучении нового языка лучше вообще не использовать IDE и изучить "правильный" способ этого (например, для c ++, изучение переключателей командной строки и использование make-файлов).

5
ответ дан 4 December 2019 в 05:54
поделиться

Я использую emacs. Я бы порекомендовал emacs. Я использовал emacs еще до того, как это было emacs: TECO, TV и пакет макросов e на Decsystem-20. Я могу использовать vim, если мне нужно, но то, что вы узнаете, - это в основном то, что есть под рукой, и вы вникнете. Да, изучите одно или оба. И я бы сказал, если IDE подходит, наденьте ее тоже.

6
ответ дан 4 December 2019 в 05:54
поделиться

Emacs / Vim можно использовать для любых проектов размером .

Как правило, вам не нужно выбирать среду, у задания, которое вы найдете, она уже есть выбранный для вас (если только это не Java-программирование в Unix, и в этом случае используйте то, что вы хотите).

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

Я использую (и использовал) Emacs для личных проектов и в двух разных компаниях над проектами программного обеспечения, каждая из которых превышает 10 миллионов строк производственного кода.

7
ответ дан 4 December 2019 в 05:54
поделиться

Для больших проектов с более чем 100 файлами очень важно использовать IDE. Но есть много мелких мелочей, которыми вам нужно заниматься постоянно, работая даже над большими проектами. Запускать IDE для всего этого, возможно, не стоит. Наличие хорошей команды в мощном редакторе, таком как Vim или Emacs, - это то, что я считаю важным навыком для любого программиста. Но также следует использовать подходящую среду IDE для ускорения регулярных работ по разработке в соответствии с потребностями проекта.

4
ответ дан 4 December 2019 в 05:54
поделиться

Мы можем подвести итог, сказав, что такие редакторы, как emacs / vi, реализуют некоторые функциональных возможностей IDE с помощью инструментов CL (или библиотек, стоящих за инструментами CL).

Ваша основная проблема при использовании редактора в качестве IDE будет:

  • настроить его так, чтобы он имел именно те функции, которыми вы довольны. IDE не обязательно прямолинейна (я прошу сочувствия у всех, кто когда-либо пытался настроить CEDET;)), в отличие от работы с IDE из коробки

  • , способ, которым такие функции работают в редакторах, очень привязан к CL, поэтому вам нужно хотя бы смутное представление о CL заранее.

Преимущество состоит в том, что инструменты CL иногда более распространены, чем IDE. Кроме того, освоение CL открывает двери для написания сценариев вашей сборки («создать сборку за одну команду», а не «сделать сборку за один клик»), что открывает дверь для автоматизированных сборок, непрерывной интеграции и т. Д. которые сложнее настроить, если ваше понимание сборки останавливается на нажатии F6 или чего-то еще.

0
ответ дан 4 December 2019 в 05:54
поделиться

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

С учетом сказанного, каждый раз, когда мне нужно написать приложение с графическим интерфейсом и в большой структуре (например, C # с .NET или Android) мне всегда трудно разрабатывать только с emacs. IDE (Visual Studio, Eclipse) просто имеют все, включая автозаполнение и поиск с соответствующим контентом из фреймворка, и отладку, хотя часть написания кода всегда неудовлетворительна (я всегда заканчиваю тем, что устанавливаю какой-то плагин emacs для IDE, который всегда не соответствует собственно Emacs! ).

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

что всегда отстает от Emacs!).

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

что всегда отстает от Emacs!).

Иногда настройка среды в Emacs для проектов такого типа занимает слишком много времени, так как это не тот способ по умолчанию, который задумывают дизайнеры, а иметь среду, которая работает из коробки, намного проще, чем биться головой о стена, чтобы найти обычно неясную информацию о том, как скомпилировать / отладить это приложение без использования указанной IDE.

0
ответ дан 4 December 2019 в 05:54
поделиться

Хм ... Посмотрите на это так:

Я открываю код в emacs. Редактирую. Я использую автозавершение кода (и я даже играл с intellisense emacs) ... Когда я готов к компиляции, я нажимаю CTRL + F7 ... Клавиша, которую я привязал ... Она появляется в небольшом всплывающем окне ... Если есть какие-либо ошибки, я могу перейти к ним в коде, нажав f8 (еще одна связанная клавиша) ... Как только все будет построено, я нажму f5 ... (это запускает небольшую программу, которую я написал, которая анализирует Makefile и определяет путь к исполняемому файлу) ... Это запускает отладчик в небольшом всплывающем окне ... Я могу щелкнуть строки кода, чтобы установить точки останова ... и т.д ... Я отлаживаю ... Я могу "следующий" через код с помощью F10 ... Я могу "пошагово" выполнить код с помощью F11 (больше привязок клавиш) ... Когда все будет готово, я нажимаю Shift-F7, чтобы упаковать (.rpm) проект.

Итак, у меня есть IDE? Или я просто использую текстовый редактор?

4
ответ дан 4 December 2019 в 05:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: