Какие языки программирования я должен выучить, чтобы стать разработчиком Ubuntu? [закрыто]


22

Хотя я однажды использовал NetBeans для проекта, какие языки мне нужно выучить, чтобы стать полноценным разработчиком Ubuntu?

Мой проект в NetBeans (только Java) заключался в разработке калькулятора (относительно легко). Кроме того, как нам научиться делать просмотрщики изображений, браузеры и т. Д.?

Кроме того, какой язык будет лучшим для определенных приложений?


3
Это довольно субъективно ... Пример: perl может заменить python и наоборот, но вы найдете пользователей perl / python, которые презирают python / perl только по причине отсутствия или форсирования отступов;)
Rinzwind

Если вы можете быть более точным в отношении того, что вы хотите написать, мы можем лучше ответить, но тогда вы ..., вы, вероятно, получите много разных мнений, и вам лучше спросить об этом на форумах Ubuntu: Разработка и программирование
Уоррен Хилл

Ответы:


31

Ответ прост и не очень полезен. Какой язык нужен. Ubuntu - это тонна программного обеспечения, некоторые из которых написаны на C, некоторые на C ++, некоторые на Python, Perl, bash ... и другие. Вы обязательно должны научиться писать скрипты на bash, и вы должны выбрать язык, такой как Perl или Python, возможно, последний. Кроме того, изучение старого доброго C никогда никому не навредит - вы узнаете больше о том, как работают программы, что такое библиотеки, много всего о других инструментах.

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


5
Простой, но точный;) На каком бы языке он ни работал, чтобы сделать работу наиболее эффективно.
Rinzwind

3
Поскольку OP упоминает, что у него есть опыт работы с Java, стоит упомянуть, что Java прекрасно работает и в Ubuntu. Вам даже не нужно перекомпилировать (при портировании с другой ОС)
BlueRaja - Danny Pflughoeft

@ BlueRaja-DannyPflughoeft Если вы не разрабатываете приложение, которое требует системных вызовов низкого уровня. Довольно часто вы увидите приложения, предоставляющие платформо-зависимые библиотеки для этих функций. Но в целом да, вы правы.
Деннис Айххорн

Конечно, все, что может быть скомпилировано для определенной архитектуры процессора, может сделать эту работу. Есть более важные аспекты, которые следует учитывать, когда кто-то хочет разрабатывать для конкретной платформы. Например, сколько времени этому человеку нужно для начала, хочет ли он заниматься управлением памятью, хочет ли он создавать кроссплатформенные программы, какие программы он хочет делать, знает ли он работать в команде Хочет ли он создавать компьютеры, которые подают бутерброды с беконом во время массажа пользователей или мобильную систему кондиционирования, небо - это предел, который, как говорят некоторые, и т. Д ...
userDepth

7

Если вы собираетесь писать приложения для Ubuntu, которые могут работать на нескольких устройствах и в разных форм-факторах (настольный компьютер, телефон, планшет, телевизор ...), я бы порекомендовал изучить QML и JavaScript . По существу:

  • Используйте QML для написания конвергентных приложений Ubuntu, которые работают на форм-факторах и устройствах
  • Используйте JavaScript для дополнения QML при написании приложений Ubuntu и для написания веб-приложений Ubuntu

Можете ли вы дать немного больше подробностей о том, почему эти два подходят?
диджей,

Готово, я надеюсь, что это дает четкое руководство :)
Дэвид Планелла

5

Вы должны изучить:

  • JavaScript: как и большинство UI-фреймворков / env. являются / будут основаны на JavaScript; вам это понадобится в любом случае, так или иначе.

Тогда для всего остального вам понадобится что-то еще:

  • C ++ / C
    • плюсы: удивительно быстро, доступ к низкоуровневым функциям
    • минусы: много времени, чтобы научиться писать что-то стабильное, ужасное сообщество
  • Рубин:
    • плюсы: легко учиться, действительно приятно писать, отличное сообщество
    • минусы: может быть медленным для какой-то задачи (действительно)
  • Python:
    • плюсы: много пакетов в Python, отличное сообщество, быстрый и т. д.
    • минусы: питон 3 (просто добрый)

Но есть еще много других языков, таких как Java и т. Д., Однако, вышеупомянутое может быть легче для начала, кроме C / C ++, но его стоит изучить, так как вы сможете использовать его со многими другими языками (например, расширением питон, рубин и т. д.)


1

Программная работа состоит как из самого кода, так и из ментальной модели под ним.

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

Поэтому я предлагаю присоединиться к проекту, которым вы часто интересуетесь и которым часто пользуетесь, а затем начать работу по обеспечению качества:

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

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

Для примера несколько постепенного вступления, посмотрите на мой вклад в проект Beignet . Знание языка программирования (в данном случае C / C ++), безусловно, не является ограничивающим фактором.


0

Вы должны изучить ... все из них! А точнее мета- изучение всех языков. Когда вы знаете два или три языка, вы можете быстро выучить любой новый язык, который похож на эти. Если вы знаете достаточно языков, вы «фактически» знаете их все, и, что более важно, вы понимаете то, что является частью языка , и то, что относится к программированию независимо от языка. В конечном счете, определенные языки не имеют значения.

Таким образом, вы можете изучить Java, C, Scheme, OCaml, Assembly (по крайней мере, две архитектуры), Forth и немного Prolog, не обязательно в таком порядке. Второй язык будет самым сложным, потому что вам придется как выучить новые концепции, так и забыть концепции, которые вы выучили на первом языке, но оказались неверными. После этого это легко и только становится легче.

Затем при работе с конкретной задачей разработки используйте наиболее адаптированный язык, основанный на доступности и поддержке компиляторов и библиотек, знаниях коллег, ограничениях политики со стороны руководства и так далее. Гибкость ума является ключом. Знание многих языков дает такую ​​гибкость.


Все они? В самом деле? Посмотрите здесь для классической программы "HelloWorld" в нескольких. Большинство программистов знают только несколько языков. Важно знать только те, которые вам нужны.
Уоррен Хилл
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.