Щелкните правой кнопкой мыши в любом месте терминала, и вы получите подобное всплывающее меню, которое позволит вам его повторно использовать.
Я хотел бы добавить еще одну важную причину; Ubuntu отлично подходит для экспериментов с новыми библиотеками, языками, IDE и компиляторами.
Итак, вы слышали о причудливом языке под названием Haskell:
sudo apt-get install ghc
nano hello.hs
<copy-paste hello world example>
ghc -o hello hello.hs
./hello
Hello World!
О, вы слышали модный редактор для Haskell: [ ! d3]
sudo apt-get install <fancy-editor-for-haskell>
То же самое с библиотеками Haskell / C ++, вы просто apt-get install их, а двоичные файлы и заголовки идут в нужные папки, и вы можете просто #include их в ваших исходных файлах, даже не требуя проверки места их размещения!
По сути, речь идет не о том, как быстро вы можете настроить свою повседневную рабочую среду. Это также о том, как очень быстро вы можете настроить экспериментальную среду. Я считаю, что это ускоряет процесс обучения в Linux.
Вот мнение от разработчика платформы Microsoft в первую очередь. Если вы не нацеливаетесь на экосистему .NET, я бы сказал, что ваш лучший вариант - Ubuntu.
Значение инструментальной цепочки Microsoft заключается в том, что она очень высоко интегрирована. У вас будет намного легче получать, настраивать и использовать инструменты практически для любой другой платформы / языка. От IDE до контроля версий, управления проектами, сборки, развертывания, базы данных, облачной инфраструктуры, аномалии объявления. Microsoft делает это ОЧЕНЬ легким, если вы идете с полной платформой.
Как уже упоминалось, отклонение от Microsoft Way может быть больно. Использование .NET для вашего кода и Oracle для вашей базы данных ... да, это будет боль.
Хотите создать веб-приложение .NET и развернуть его на Amazon Web Services ... не очень
Но если вы останетесь в Microsoft Ecosystem ... этот ребенок будет петь, как насмешливая птица для вас. В руках компетентного разработчика программного обеспечения платформа Microsoft похожа на PED для талантливого спортсмена. Это не позволит любительскому программисту создать следующий Facebook. Но это даст преимущество талантливому разработчику, который понимает, как эти штуки подходят друг другу.
Аргумент за бесплатную (как в пиве) стоимость начала работы с Ubuntu - это дверь, есть номер программ, предлагаемых Microsoft, которые позволяют вам начать работу со своими инструментами бесплатно. В том числе Bizspark, который дает вашей авторизованной компании 3 года лицензии (включая лицензии на использование их инструментов). И Dream Dream, которая дает его студентам бесплатно.
Если вы хотите изучить и изучить новые языки и платформы, вы найдете лучшие инструменты для начала работы на Ubuntu, и если вы ищет работу вне экосистемы Microsoft, вам нужно будет познакомиться с Ubuntu.
Для написания программ я использую как инструменты, IDE, так и текстовые редакторы с интерфейсом командной строки (ниже - CLI).
Что предлагает Linux - это CLI CLI, начиная с установки по умолчанию. Если вам это не нужно, и вы все равно используете IDE, то больше нет большой разницы (IMHO).
Я часто делаю свое прототипирование с помощью текстовых инструментов. Позже, когда есть больше файлов для управления, я ценю инструменты Command-Line Interface , которые предлагает мне IDE.
Я отвечу на ринг (хотя я считаю, что все они тоже хорошие).
Самый основной ответ, который вы можете получить, это то, что все дело в философии.
В мире Microsoft это немного религиозно - у вас есть боги на горе. Редмонд, которого нужно подать в суд, если вы хотите что-либо реализовать. Иногда они будут слушать, иначе ваши жертвы и мольбы будут падать на глухие уши. Возможно, они были на охоте. Microsoft контролирует всю экосистему - им принадлежит ОС, у них есть среда IDE, и они соединяют их вместе способами, которые, вероятно, не подходят для разговоров в сети SE. Даже внутри IDE кусочки плотно связаны - его можно назвать интегрированным, но я думаю, что более точно. Если вы хотите немного изменить ситуацию, Гейтс запретит вам что-то менять, чтобы разработчики Windows или Visual Studio явно не разрешали это делать. И затем бросьте такие технологии, как IE, IIS, серверы Microsoft и MS SQL Server, и Office ... и все это хорошая большая счастливая семья. Но если вы захотите оставить часть семьи?
С другой стороны, у вас есть Linux, который наследует философию Unix, что каждая часть должна отвечать за свою небольшую сферу ответственности. Он должен сделать интегрированную вещь и сделать это хорошо. И предпочтительно, общение должно происходить посредством строк текста. Как отмечали другие, sed, awk, grep и т. Д. Являются прекрасными примерами этого. Они делают все, что касается философии. вещь, которую они предназначены, чтобы делать, и они делают это очень хорошо. Если вам нужно сделать две вещи, тогда вы объедините два инструмента. Это очень легко сделать.
Поскольку sed ничего не ожидает, кроме ввода входного текста, это означает, что все, что может создать текст, не нужно изобретать колесо. Они могут просто использовать sed. И поскольку sed создает текст, все, что может shudder text, может использовать вывод из sed. Текст очень универсален (есть некоторые исключения из этого), и очень легко объединить эти типы вещей.
Не только их легко совместить, но также очень легко разделить их - Если я решил, что мне больше не нужно редактировать поток, но я хочу отфильтровать результаты, а не передавать свой текст в sed, я могу передать его на grep.
Теперь , это фундаментальная философия развития в среде Linux - так что даже если вы идите оттуда, все инструменты предоставляют аналогичные типы интерфейсов. Они позволяют разложить их на части или взаимодействовать с ними через командную строку или порты или HTTP.
И даже если это не так, у вас также есть программное обеспечение с открытым исходным кодом. Большинство (если не все) программного обеспечения на платформе Linux является открытым исходным кодом. Поэтому, если вам не нравится, как это написано, вы полностью, полностью, абсолютно можете самостоятельно изменить программное обеспечение. Это невероятно расширяет возможности. Не удается разбить эту IDE так, как вы хотите? Либо внесите изменения, либо отправьте их назад, либо разветвите проект. Не знаете, почему что-то ведет себя так, как это происходит? Используйте источник, Люк! Нужно уметь автоматизировать что-то через командную строку? Взломайте проект и вставьте свои изменения. Возьмите ошибку или проблему безопасности? Эй, догадайтесь, что - вы можете это исправить, вам не нужно ждать появления SP3.432vb89234.startdate1eQ.
Вы можете комбинировать нужные инструменты и вам нужны. И если есть что-то, что на вашем пути, вы на 100% способны получить это изменение. Даже если у вас нет возможности, вы можете заплатить кому-то за разработку этого изменения или даже предложить его кому-то другому, у которого есть ноу-хау.
Причина, по которой это лучше для программирования, заключается в том, что, когда вы сталкиваетесь с Используйте источник, Luke! , вы можете исключить его из своего рабочего процесса. Поскольку разработка two , есть много вещей, которые вы должны думать о том, чтобы быть успешным программистом, и тем больше вы должны думать о том, что сложнее думать о других вещах.
Устранение трения является ключевым.
Итак, если Microsoft ecostystemreligion - это то место, где вы чувствуете себя как дома, и вы так сильно наслаждаетесь инструментами, что он не обеспечивает вас большим количеством / трением ... ну, наверное, это нормально.
Но если вы не вписываетесь в Microsoft Mold (tm), патент находится на рассмотрении, тогда вы столкнетесь с трением. Развитие будет болью. Каждый раз, когда вы не , вы можете что-то делать, но не можете, это истощит ценные познавательные ресурсы. И если это так, то среда разработки Linux, вероятно, для вас.
Я хотел бы высказать свои более общие мысли на вопрос:
«Почему Linux - лучшая среда для программирования?»
Я думаю, что самая важная причина, почему разработка на Linux - это то, что вы полностью понимаете большинство внутренних компонентов программного обеспечения. Вы можете узнать, как все работает, если вы заинтересованы. Это позволяет вам учиться и адаптировать хорошие или плохие практики, видя их в действии. Это позволяет больше разнообразия для ваших идей.
Помимо Visual Studio и Xcode, которые служат для их конкретных целей, большинство популярных IDE являются мультиплатформенными. Может показаться, что для десятков языков есть gazillion IDE, но в конце концов большинство из них основаны либо на Eclipse, IntelliJ IDEA или NetBeans. Что общего у них, так это то, что все они основаны на Java. Java работает более эффективно на Linux, чем на любой другой ОС на одном и том же оборудовании. На самом деле Java на Linux быстрее на 20% быстрее, чем на OS X на одном и том же оборудовании. Многие из этих IDE готовы к установке одним щелчком мыши в Ubuntu Software Center.
GCC очень сильно стал отраслевым стандартом. Вне всякого сомнения, его основной платформой является Linux, где она лучше всего поддерживается.
Linux предоставляет уникальные инструменты, недоступные на других платформах, например, Visual Studio (инструмент для отладки памяти, обнаружения утечки памяти и профилирования). Linux также поставляется с инструментами отладки, такими как strace и Eclipse , которые могут использоваться для отладки даже производственного кода (т. Е. Не скомпилированного с помощью отладочных символов).
Ubuntu имеет превосходный менеджер пакетов. В большинстве случаев установка программного обеспечения - это просто apt-get install package-name (вы можете сделать это с помощью графического интерфейса, либо в программном центре Ubuntu, либо в Synaptic). После установки они автоматически обновляются системой с помощью выпусков исправлений. Система пакетов также автоматически отслеживает зависимости, поэтому вам не нужно беспокоиться о других необходимых пакетах; они будут установлены автоматически.
С другой стороны, в Windows вы должны вручную загружать и устанавливать пакеты, а если им требуются некоторые другие пакеты, вы должны сделать это вручную. Также нет системного обновления, каждый программный пакет либо реализует собственный раздражающий модуль обновления, либо вообще не обновляется.
Если вы делаете какие-либо вид программирования для back-end, для Интернета, для облачных и т. д., очень вероятно, что ваши целевые машины - это Linux.
Конечно, вы можете разрабатывать настольное приложение для Windows, но в настоящее время это своего рода нишевая работа рынок для программистов.
Это не так, я могу утверждать, что все наоборот. Вообще, хотя, люди склонны предпочитать инструменты, в которых они лучше. Тип инструментов, которые вы используете, может пригодиться легкости написания программ. Так, например, я могу писать программы на Java просто отлично с помощью vim, но это действительно контрпродуктивно, а не полноценная IDE, например Eclipse или IntelliJ. Джон Скит дал отличный ответ на вопрос: зачем использовать IDE.
Вернемся к исходному вопросу, единственное, что лучше для Linux - программирование на C. Все, что вы можете сделать в Linux, вы также можете сделать в Windows и наоборот (программирование мудрым). Программирование C лучше для Linux по историческим причинам, оно предлагает большой набор инструментов (которые вы можете получить в Windows BTW, но для него гораздо проще настроить Linux). Аналогично, если вы пишете C # и как .NET, то Windows по-видимому, является лучшим выбором по очевидным причинам. Все остальное полностью субъективно, и вы услышите за и против обеих сторон.
Какие инструменты (текстовый редактор или IDE), которые вы используете для программирования, являются вопросом выбора. Вообще говоря, вы можете сказать: начинающие и очень маленькие проекты имеют тенденцию использовать лучшие текстовые редакторы, такие как возвышенный текст или измененная версия gedit. Просто потому, что вы учитесь больше при использовании текстовых редакторов.
Когда дело доходит до профессионалов, возиться с большим количеством инструментов и языков, IDE пригождаются, потому что они могут это сделать гораздо больше для вас, если вы позволите им. Есть много IDE на выбор, в зависимости от языка, который вы хотите запрограммировать. Есть лучшие, а также менее удобные.
Мой личный опыт заключается в том, что Ubuntu OS намного быстрее и проще для разработки, а не для Windows. Я полагаю, это связано с тем, что большинство инструментов и программ, которые я использую, основаны на Linux и потому, что мне не нужно искать в Интернете ссылки для загрузки в мои любимые программы. Это просто программа «apt-get install program1 program2 program3». В сравнении: мне нужно 3 рабочих дня, чтобы установить и настроить новую установку Windows со всем, что мне нужно для программирования (компания, а не частная, это будет быстрее), но это всего лишь один день для той же задачи в Ubuntu. [!d2 ]
Мой опыт в том, что программисты, которые переключаются на Linux для программирования, (в большинстве случаев) имеют более глубокое понимание технических контекстов и того, как работают основы. Пользователи Mac и Windows, как правило, не знают, почему что-то работает таким образом или почему это не так. Я не уверен, что вы действительно можете чему-то научиться от работы с Linux или если только это williong, чтобы научиться переключиться на Linux.
Надеюсь, мой «blafasel» немного помогает ...
Я бы сказал, что дистрибутив Linux - это IDE.
Для начала Unix была разработана с самого начала как среда разработки. Это было написано программистами для программистов. Большинство Unix и Linux по-прежнему поставляются с инструментами разработки по умолчанию. И недостающие части - это только apt-get (или эквивалент). Windows, с другой стороны, является ужасной средой разработки, пока вы не установите IDE, что не является дешевым, или тривиальный процесс.
IDE более интегрирована в том смысле, что IDE более тесно связаны чем использование GCC, Git и Vi (например). Плотная муфта позволяет работать так, как «intellisense». Но, с другой стороны, свободная муфта имеет много преимуществ (например, гибкость, взаимозаменяемость, отсутствие блокировки).
И прогресс в разработке компилятора (компиляторы с легко разделяемыми интерфейсами, такие как LLVM) может в конечном итоге означать лучшую поддержку таких функций, как подсветка синтаксических ошибок даже в слабосвязанных средах.
Что касается философии: Ubuntu / Linux позволяет программисту напрямую обращаться к внутренним и аппаратным средствам, тогда как Windows - это своего рода гейткипер. Это важный философский вопрос, когда речь идет о программировании. Таким образом, философски говоря, эта функция, являющаяся преимуществом, будет зависеть от того, является ли пользователь достаточно осведомленным или технически осознающим важность этого.
Что касается программирования: вся архитектура системы Ubuntu / Linux основана на традиции Unix небольших простых программ, которые делают одну вещь, а затем соединяют их вместе, чтобы делать более сложные вещи. Для программиста эта архитектура невероятно мощна и, на мой взгляд, является причиной того, что Unix будет преобладать в долгосрочной перспективе против любой другой архитектуры программного обеспечения на каждой платформе. Одним из немногих мест, где Unix в настоящее время не доминирует, является рабочий стол, но со временем это изменится. Распределения, такие как Ubuntu, помогают увидеть эту эволюцию.
Однако я не оспариваю, что в Windows есть очень хорошие среды программирования. Для программирования в корпоративной среде они часто доминируют.
Скорость - это ответ сортировки.
Я нахожу, что с графической средой IDE, такой как Visual Studio или QtCreator, я слишком много использую мышь, когда должен использовать короткие сокращения. Каждый раз, когда вы переключаете контекст, вам приходится останавливать свой мозг, сосредоточиться на своей цели и ждать действия. В то время как нажатие F5 бесконечно быстрее.
Теперь, если вы используете vim, Emacs или что-то еще, у которых нет симпатичных кнопок, вы будете сосредоточены на нажатиях клавиш, у вас есть один метод и быстрее потому что его подпрограмма.
Ошибки представлены более подробно с помощью интерфейса командной строки, который я предпочитаю, а также дает обратную связь во время компиляции. Одна вещь, которую я ненавижу в Visual Studio, по умолчанию - это маленький значок, указывающий, что он выполняет компиляцию, а затем вы получаете список ошибок.
С узким представлением вы будете придерживаться ширины столбца 80, которая помогает читабельность, я видел код, который распространяется на ширину столбца 200. С помощью кода, установленного на 80 столбцов, вы можете одновременно открывать 4/5 окон.
С помощью редактора CLI вы можете удаленно кодировать, не нужно медленное (по сравнению с текстовым) сеанс RDP для вашей Visual Studio , Вы можете закодировать по каналу GSM.
Визуальная разработка форм отстой. Одно из преимуществ, которое вы можете использовать в GUI IDE, - это то, что вы можете нарисовать свои экраны и быстрее. Однако, по моему опыту, это хорошо для прототипа, но часто вы получаете лучшие результаты, делая это вручную в коде. Анализатор кода VS2012 этим утром просто предупредил меня о 200 + проблемах с кодом, который был автоматически сгенерирован Visual Studio?!?!?
Я думаю, что ваш реальный вопрос может быть: «Есть ли альтернативы Visual Studio, которые будут работать на Ubuntu, так как это не будет?»
MonoDevelop.
Это выполнимо, но вы будете ненавидеть, если вы привыкли к VS и всем функциям.
Нет смысла использовать текстовый редактор. Помните, что хорошая вещь называется Intellisense? Не происходит (но у MonoDevelop есть что-то вроде этого). Надеюсь, это поможет.