На яких мовах програмування я повинен навчитися стати розробником Ubuntu? [зачинено]


22

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

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

Також яка б була найкраща мова для певних програм?


3
Це досить суб'єктивно ... Приклад: perl може бути заміною python і навпаки, але ви знайдете користувачів perl / python, які зневажають python / perl з будь-якої іншої причини, крім відсутності або форсування відступу;)
Rinzwind

Якщо ви можете бути більш конкретними щодо того, що ви хочете написати, ми, можливо, будемо краще відповісти, але б'ємо, то ..., ви, швидше за все, отримаєте багато різних думок, і вам може бути краще запитати про це на форумах Ubuntu: Розвиток та програмування
Warren Hill

Відповіді:


31

Відповідь проста і не дуже корисна. Яка б мова не потрібна. Ubuntu - це тонна програма, частина написана на C, частина C ++, частина в Python, Perl, bash ... та інші. Ви обов'язково повинні вивчити сценарії з bash, і ви повинні вибрати мову, наприклад Perl чи Python, можливо, останню. Крім того, вивчення старого старомодного C ніколи нікому не шкодить - ви дізнаєтесь більше про те, як працюють програми, що таке бібліотеки, багато чого іншого на інших інструментах.

В іншому випадку - спочатку знайдіть завдання, нішу, те, над чим потрібно працювати, або щось, чого не вистачає, або щось, що просто захоплює, і ви хотіли б над ним працювати. А потім з’ясуйте, яка мова буде корисною для цієї мети.


5
Проста, але точна;) Якою б мовою не потрібна, щоб виконати роботу найбільш ефективно.
Rinzwind

3
Оскільки в ОП згадується, що він має досвід роботи в Java, варто згадати, що Java працює чудово і на Ubuntu. Вам навіть не потрібно перекомпілювати (при перенесенні з іншої ОС)
BlueRaja - Danny Pflughoeft

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

ofc, що все, що може бути складено для певної архітектури процесора, може зробити цю роботу. Є більш важливі аспекти, які слід враховувати, коли хтось хоче розробити для певної платформи. Як, скільки часу у людини належить розпочати, чи хоче він займатися управлінням пам’яттю, чи хоче він робити крос-платформні програми, який тип програм він хоче зробити, чи знає він працювати в команді , Чи хоче він робити комп’ютери, які подають бутерброди з беконом, масажуючи користувачів або мобільну систему кондиціонування, небо є межею, про яку кажуть, тощо ...
користувачDepth

7

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

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

Чи можете ви трохи детальніше розповісти, чому саме ці двоє підходять?
don.joey

Зроблено, я сподіваюся, що це дає чіткі вказівки :)
Девід Планелла

5

Вам слід навчитися:

  • JavaScript: як більшість фреймворків інтерфейсу / env. є / будуть базуватися на JavaScript; вам це знадобиться в будь-який день чи інший день.

Тоді для всього іншого вам знадобиться щось інше:

  • C ++ / C
    • плюси: надзвичайно швидкий, доступ до функцій низького рівня
    • мінуси: багато часу, щоб навчитися писати щось стабільне, жахливе співтовариство
  • Ruby:
    • плюси: легко вчитися, дуже приємно писати, велике співтовариство
    • мінуси: може бути повільним для деяких завдань (дійсно)
  • Пітон:
    • плюси: багато пакетів є у python, велике співтовариство, швидкий тощо.
    • мінуси: python 3 (просто добрий)

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


1

Робота з програмування складається як із власне коду, так і ментальної моделі під ним.

Навчити себе мови програмування досить просто, якщо у вас є основні поняття роботи комп'ютерів, однак для того, щоб зробити корисний внесок у проект, вам також потрібно зрозуміти дизайн, що стоїть за ним.

Тому я пропоную приєднатись до проекту, до якого ти часто цікавишся та використовуєш, а потім розпочати роботу з забезпечення якості:

  • якщо є звіт про помилку, який є дещо невиразним, спробуйте повторити проблему та покращити опис. Бонусні бали за автоматизований тест.
  • якщо є стара помилка, яка певний час не звертала на себе уваги, спробуйте переконатися, чи вона все ще існує, і оновіть звіт про помилку
  • якщо виникають збої тестового набору, спробуйте з’ясувати, що відбувається для того, щоб цей тест вийшов з ладу

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

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


0

Ви повинні навчитися ... всі вони! А точніше, мета - вивчити всі мови. Коли ви знаєте дві-три мови, ви можете швидко вивчити будь-яку нову мову, схожу на цю. Якщо ви знаєте достатньо мов, ви "практично" знаєте їх усі, і, що ще важливіше, ви розумієте, що є частиною мови , і те, що стосується програмування незалежно від мови. Зрештою, конкретні мови не мають значення.

Тож ви, можливо, захочете вивчити Java, C, Scheme, OCaml, Assembly (принаймні дві архітектури), Forth і трохи Prolog, не обов'язково в цьому порядку. Друга мова буде найважчою, тому що вам доведеться як вивчити нові поняття, так і забути поняття, які ви засвоїли з першої мови, але виявилося, що вони неправильні. Згодом це легко і лише стає легше.

Потім, займаючись конкретним завданням розвитку, використовуйте найбільш адаптовану мову, засновану на доступності та підтримці компіляторів і бібліотек, знаннях співробітників, обмеженнях політики з боку управління тощо. Гнучкість розуму - це ключ. Знання багатьох мов надає цю гнучкість.


Усі? Дійсно? Погляньте тут на класичну програму «HelloWorld» у кількох. Більшість програмістів знають лише кілька мов. Важливо лише знати ті, що вам потрібні.
Warren Hill
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.