Welche Programmiersprachen sollte ich lernen, um Ubuntu-Entwickler zu werden? [geschlossen]

22

Obwohl ich NetBeans einmal für ein Projekt verwendet habe, welche Sprachen muss ich lernen, um ein vollwertiger Ubuntu-Entwickler zu werden?

Mein Projekt in NetBeans (nur Java) bestand darin, einen Taschenrechner zu entwerfen (relativ einfach). Wie lernen wir außerdem, Bildbetrachter, Browser usw. zu erstellen?

Welche Sprache ist für bestimmte Anwendungen am besten geeignet?

fffdf
quelle
3
Es ist eher subjektiv ... Beispiel: Perl kann ein Ersatz für Python und umgekehrt sein, aber Sie werden Perl / Python-Benutzer finden, die Python / Perl aus keinem anderen Grund als dem Fehlen oder Erzwingen von Einrückungen verachten;)
Rinzwind
Wenn Sie genauer wissen möchten, was Sie schreiben möchten, können wir Ihnen möglicherweise besser antworten, aber hauen Sie dann ab. Sie werden wahrscheinlich viele unterschiedliche Meinungen haben und dies möglicherweise besser in Ubuntu-Foren
Warren Hill

Antworten:

31

Die Antwort ist einfach und nicht wirklich hilfreich. Welche Sprache auch immer benötigt wird. Ubuntu ist eine Menge Software, einige davon in C, einige in C ++, einige in Python, Perl, bash ... und andere. Sie sollten auf jeden Fall lernen, mit Bash zu schreiben, und Sie sollten eine Sprache wie Perl oder Python auswählen, möglicherweise die letztere. Außerdem schadet das Erlernen von altmodischem C niemandem - Sie erfahren mehr über die Funktionsweise von Programmen, Bibliotheken und vieles mehr über andere Tools.

Andernfalls - finden Sie zuerst eine Aufgabe, eine Nische, etwas, an dem gearbeitet werden muss oder etwas, das fehlt, oder etwas, das nur faszinierend ist und an dem Sie gerne arbeiten würden. Und dann herausfinden, welche Sprache für diesen Zweck gut sein wird.

Januar
quelle
5
Einfach, aber genau;) Welche Sprache auch immer es braucht, um die Arbeit am effizientesten zu erledigen.
Rinzwind
3
Da OP erwähnt, dass er Erfahrung mit Java hat, ist es erwähnenswert, dass Java auch auf Ubuntu gut läuft. Sie müssen nicht einmal neu kompilieren (beim Portieren von einem anderen Betriebssystem)
BlueRaja - Danny Pflughoeft
@ BlueRaja-DannyPflughoeft Es sei denn, Sie entwickeln eine Anwendung, die Systemaufrufe auf niedriger Ebene erfordert. Häufig werden Anwendungen angezeigt, die plattformspezifische Bibliotheken für diese Funktionen bereitstellen. Aber im Allgemeinen ja, du hast recht.
Dennis Eichhorn
ofc, dass alles, was für eine bestimmte CPU-Architektur kompiliert werden kann, die Arbeit erledigen kann. Es sind wichtigere Aspekte zu berücksichtigen, wenn sich jemand für eine bestimmte Plattform entwickeln möchte. Zum Beispiel, wie viel Zeit diese Person für den Einstieg benötigt, ob sie sich mit Speicherverwaltung befassen möchte, ob sie plattformübergreifende Programme erstellen möchte, welche Art von Programmen sie erstellen möchte, ob sie weiß, in einem Team zu arbeiten , Will er Computer herstellen, die Speckbrötchen servieren, während er die Benutzer oder eine mobile Klimaanlage massiert, ist der Himmel die Grenze, die manche sagen, etc ...
userDepth
7

Wenn Sie Anwendungen für Ubuntu schreiben möchten, die auf mehreren Geräten und Formfaktoren (Desktop, Telefon, Tablet, TV ...) ausgeführt werden können, empfehle ich, QML und JavaScript zu lernen . Im Wesentlichen:

  • Verwenden Sie QML , um konvergente Ubuntu-Apps zu schreiben, die über Formfaktoren und Geräte ausgeführt werden
  • Verwenden Sie JavaScript, um QML beim Schreiben von Ubuntu-Apps und zum Schreiben von Ubuntu-Webanwendungen zu ergänzen
David Planella
quelle
Können Sie etwas näher erläutern, warum diese beiden geeignet sind?
don.joey
Fertig, ich hoffe, dass klare
Anweisungen
5

Du solltest lernen:

  • JavaScript: wie die meisten UI-Frameworks / env. basieren auf JavaScript; Du wirst es sowieso eines Tages brauchen.

Dann brauchen Sie für den Rest noch etwas:

  • C ++ / C
    • Profis: erstaunlich schnell, Zugriff auf Low-Level-Funktionen
    • Nachteile: viel Zeit, um zu lernen, wie man etwas stabiles und schreckliches schreibt
  • Rubin:
    • Profis: leicht zu erlernen, sehr angenehm zu schreiben, großartige Community
    • Nachteile: könnte für eine Aufgabe (wirklich) langsam sein
  • Python:
    • Profis: viele Pakete sind in Python, tolle Community, schnell, etc.
    • Nachteile: Python 3 (nur kindin ')

Es gibt aber noch viele andere Sprachen wie Java usw., die oben genannten sind jedoch möglicherweise für den Anfang einfacher, mit Ausnahme von C / C ++, das sich jedoch zu lernen lohnt, da Sie es mit vielen anderen Sprachen (z. B. Extend) verwenden können Python, Rubin usw.)

avetis.kazarian
quelle
1

Die Programmierarbeit besteht sowohl aus dem eigentlichen Code als auch dem darunter liegenden mentalen Modell.

Es ist einfach, sich eine Programmiersprache beizubringen, solange Sie die grundlegenden Konzepte zur Funktionsweise von Computern kennen. Um jedoch nützliche Beiträge zu einem Projekt zu leisten, müssen Sie auch das dahinter stehende Design verstehen.

Mein Vorschlag ist daher, sich einem Projekt anzuschließen, an dem Sie sich persönlich interessieren und das Sie häufig nutzen, und dann mit der Qualitätssicherung zu beginnen:

  • Wenn ein Fehlerbericht etwas vage ist, versuchen Sie, das Problem zu reproduzieren und die Beschreibung zu verbessern. Bonuspunkte für einen automatisierten Test.
  • Wenn es einen alten Fehler gibt, der eine Weile keine Beachtung gefunden hat, prüfen Sie, ob er noch vorhanden ist, und aktualisieren Sie den Fehlerbericht
  • Wenn Fehler in der Testsuite auftreten, versuchen Sie herauszufinden, was passiert, damit dieser Test fehlschlägt

Auf diese Weise können Sie den schwierigen, konzeptionellen Teil des Projekts in einer überschaubaren Lernkurve kennenlernen und gleichzeitig Ihr Interesse (weil es sich um ein Projekt handelt, das Ihnen am Herzen liegt) wahren und Zugang zur Community rund um das Projekt erhalten. Die eigentliche Programmiersprache (je nachdem, welche im Projekt verwendet wird) können Sie im Handumdrehen lernen.

Ein Beispiel für einen etwas schrittweisen Einstieg finden Sie in meinen Beiträgen zum Beignet-Projekt . Kenntnisse der Programmiersprache (in diesem Fall C / C ++) sind hier sicherlich nicht der einschränkende Faktor.

Simon Richter
quelle
0

Sie sollten lernen ... sie alle! Oder besser Meta - lerne alle Sprachen. Wenn Sie zwei oder drei Sprachen beherrschen, können Sie schnell eine neue Sprache erlernen, die diesen ähnlich ist. Wenn Sie genug Sprachen beherrschen, kennen Sie sie alle "virtuell" und, was noch wichtiger ist, Sie verstehen das, was Teil der Sprache ist , und das, was sich auf die Programmierung bezieht, unabhängig von der Sprache. Letztendlich sind bestimmte Sprachen irrelevant.

Vielleicht möchten Sie Java, C, Schema, OCaml, Assembly (mindestens zwei Architekturen), Forth und ein bisschen Prolog lernen, nicht unbedingt in dieser Reihenfolge. Die zweite Sprache wird die schwierigste sein, da Sie sowohl neue Konzepte lernen als auch Konzepte vergessen müssen, die Sie mit der ersten Sprache gelernt haben, die sich jedoch als falsch herausgestellt haben. Danach ist es einfach und wird nur einfacher.

Verwenden Sie dann bei der Bearbeitung einer bestimmten Entwicklungsaufgabe die am besten angepasste Sprache, die auf der Verfügbarkeit und Unterstützung von Compilern und Bibliotheken, Kenntnissen von Mitarbeitern, Richtlinienbeschränkungen durch das Management usw. basiert. Flexibilität des Geistes ist der Schlüssel. Die Kenntnis vieler Sprachen gewährt diese Flexibilität.

Thomas Pornin
quelle
Alle von ihnen? "Ja wirklich?" Schauen Sie sich hier das klassische "HelloWorld" -Programm an. Die meisten Programmierer sprechen nur wenige Sprachen. Es ist nur wichtig zu wissen, welche Sie brauchen.
Warren Hill