it-swarm.com.de

Was verwenden Sie, um Anwendungen unter Linux zu entwickeln?

Ich bin ein erfahrener .NET-Entwickler (c #/vb.net) (seit der Betaversion) und wollte herausfinden, wie man Anwendungen für Linux entwickelt. Ich habe auch Java programmiert. Ich habe Ubuntu 8.10 Linux und habe mich gefragt, was jeder als Werkzeug zum Entwickeln von Anwendungen (für jede Linux-Variante) verwendete. Ist Java der beste Weg?

Ich bin neu bei Ubuntu und habe seit den Redhat-Tagen mit Terminal nicht mehr unter Linux gearbeitet, also bin ich noch ziemlich neu.

Hier einige Rückmeldungen basierend auf den Antworten:

Ich möchte sowohl bei der Verwendung von Linux effizienter werden (wenn auch nur für ein O/S) und meine Entwicklungsfähigkeiten nutzen, indem ich eine andere Sprache wie Java lerne (ich habe in der Vergangenheit sehr einfache Java-Apps entwickelt ... sehr einfach) - sowieso wollte ich über etwas nachdenken, das meine Fähigkeiten nur erweitern würde.

Ich habe viele Fenster und Webanwendungen mit .NET (einige sehr groß) erstellt und bin sehr gut in den Sprachen c # und vb.net und dem .net-Framework informiert. Ich habe viele Projekte erstellt mit:

.net Remoting, Webdienste, WCF (viele aktuelle WCF-Apps), Windows-Anwendungen, Windows-Dienste, Webanwendungen - Ich verwende JavaScript bei der Entwicklung von asp.net und kenne VBScript & vb6.

Ich weiß, es würde viele Jahre dauern, um Apps effizient in einer anderen Sprache (n) erstellen zu können, aber ich denke, es würde mich zu einem runderen Entwickler machen - und wenn Google Microsoft kauft und die Verwendung von Fenstern illegal macht, dann habe ich noch eine Backup-Plan :-)

43
schmoopy

Dies hängt weitgehend davon ab, für welche Art von Anwendungen Sie sich interessieren. Die C-Crowd hält an guten alten vi/emacs, make, gdb und vielen Xtermen fest. Java-Leute verwenden häufig plattformübergreifende Tools wie NetBeans und Eclipse. Die Leute von Python, Perl und Ruby verwenden auch häufig Befehlszeilen-Tools, aber ihre IDEs werden immer reicher. Natürlich werden viele Stalwarts für den Rest ihrer Karriere Kommandozeilenjockeys sein.

Erwarten Sie viel mehr subjektive Antworten. Ich würde es als solches kennzeichnen, wenn ich die Vertretung hätte ...

20
joev

Die Linux-Welt wird hauptsächlich mit Bash, Perl, Python und C gehackt. Um Linux effizient zu verwenden, empfehle ich Ihnen dringend, diese Sprachen zu beherrschen. Was wirklich cool an Linux ist, ist, wie Sie kleine Apps kombinieren können, um ein Problem schnell zu lösen. Wenn ich Bash sage, meine ich auch alle kleinen Hilfsmittel wie Gawk, Sed, WC, Grep usw. 

Dann hängt es von dem ab, was Sie tun möchten ... ob es für Windows tragbar sein soll. In diesem Fall ist IMHO, Java der Weg zu gehen. (Eclipse und Netbeans können auch unter Linux verwendet werden). Mono ist cool ... bis es nicht das tut, was es soll. 

Ich persönlich finde es wirklich cool, dass viele Dinge nur mit bash erstellt werden. Das bedeutet, dass man durch das Erkunden dieser Dateien wirklich lernen kann alle Schritte 

Wenn Sie Linux wirklich effektiv nutzen möchten, empfehle ich dringend: "Ein praktischer Leitfaden für Linux - Befehle, Editoren und Shell-Programmierung - von Mark G. Sobell" 

Wenn Sie sich jedoch nicht wirklich für das Masterisieren von Linux interessieren und "nur" einige Apps programmieren möchten, ist die Verwendung von Mono zwar, da Sie bereits mit .net vertraut sind, aber ich denke, Java zu lernen ist die bessere Wahl.

Übrigens, das Erlernen von vim, wenn Sie Linux einsetzen möchten, ist ein bisschen wie das Laufen lernen, wenn Sie laufen möchten. 

9
user35978

Wenn Sie den Unix-Weg erlernen möchten, empfehle ich

  1. Schreiben Sie einige Shell-Skripte mit bash oder ksh. Spielen Sie mit sed, awk und anderen Dingen, die Sie in Kernighan und Pikes The Unix Programming Environment finden.

  2. Lerne ein wenig C und mache ein wenig C-Programmierung. Das Handbuch von Kernighan und Ritchie ist ein Klassiker.

  3. Tun Sie etwas Scripting. Python ist ein beliebter Favorit, aber auch Ruby und Lua sind eine gute Wahl. Python ist wahrscheinlich der reichste; Ruby ist rein OO - mit dem Betriebssystem verheiratet; Lua ist die schnellste und ist so einfach, dass Sie es vollständig beherrschen können.

8
Norman Ramsey

Wenn Sie Ihre .NET-Kenntnisse nutzen möchten, ist Mono eine Option. Für eine IDE wird MonoDevelop gefördert.

Wenn Sie dies als Lernübung tun, würde ich mich von Java fernhalten. Im Gegensatz zu Mono, das Sie zur Verwendung von Linux-spezifischen Funktionen ermutigt, wird Java stark vom Betriebssystem abgehoben. Abgesehen von der Verwendung des Schrägstrichs in Dateinamen können Sie nicht wirklich sagen, dass Sie unter Linux programmieren.

Wenn Sie dies als Karrierepfad tun, sind C und Java die besseren Optionen. Mono hat Potenzial, ist aber derzeit noch ein Nischenplayer.

4
Jonathan Allen

Ich habe professionelle (also für den Kauf bezahlte) Anwendungen in Linux geschrieben. Sie wurden C und/oder C++ geschrieben. Sie verwenden die X11-Bibliotheken (die seit 1993 für Linux und seit 1984 für Unix existieren) und folgten allen Standard-X11-Argumenten (die meisten KDE- und Gnome-Anwendungen), die die lange Tradition der Standardoptionen nicht berücksichtigen.

Für webbasierte Anwendungen PHP/mySQL/Apache oder Java/Tomcat/Apache, falls erforderlich. Ich begann die Webentwicklung im Jahr 1993, als der Browser Mosaic (der für Netscape und den Internet Explorer übergeordnet war) von den Netscape-Startern geschrieben wurde, als sie im College waren. Ja, Microsoft hat den Mosaic-Code lizenziert. Der ursprüngliche Netscape-Browser hieß Netscape Mosaic (bevor er in Netscape Navigator geändert wurde). Die "Engine" wurde sogar im mosaischen Code "Mozilla" genannt und der frühe Netscape etwa lautete "Es kann als Netscape buchstabiert werden, aber es wird Mozzila ausgesprochen".

Ich weiß, dass die neuere Generation von Programmierern sich nicht mehr die Zeit nehmen will, um wirklich in C oder C++ zu programmieren, und ich finde das sehr schade. Der von einem wirklich guten Programm und Compiler erzeugte Code führt jeden Tag den "verwalteten Code" aus (er erfordert jedoch mehr Geschick beim Entwickler).

4
A Nnonymous

Java für echte Desktop-Anwendungen (in Eclipse) und Python für schnelles und schmutziges. Und das ist auf Ubuntu Heron. Ich bevorzuge die Sun Java-Laufzeiten (Eclipse wird mit einem eigenen Compiler geliefert).

2
paxdiablo

Sie haben mit Ubuntu eine gute Wahl getroffen, auch wenn es kommerziell poliert ist und seine Debian-Wurzeln als großartiges Entwicklungs-Betriebssystem beibehält. Sie werden feststellen, dass die meisten Bibliotheken/Module/Sprachen einfach zu installieren sind und die Packager die Funktionen in diesen nicht "verfälschen". Zum Beispiel hatte Red Hat ein großes Problem mit Perl, weil die Packager den Vorab-Release-Code abgerufen hatten.

Abhängig von der Art der Anwendung, die Sie schreiben möchten. Ich würde Python und C wärmstens empfehlen. Python macht GTK-Benutzeroberflächen recht einfach. C ist die beste Sprache, um einen Daemon- oder Systemdienst zu schreiben. Beides macht die Portabilität zwischen verschiedenen Linux-Distributionen einfach. Es wäre gut, wenn Sie sich mit Portable Shell Scripting auskennen. Wenn Sie etwas Zeit haben, schauen Sie sich auch Perl an. 

Java ist so stark abstrahiert, dass Sie sich nicht mit der Einfachheit der Linux-Anwendungsentwicklung befassen würden. Java ist Java, wo immer Sie es verwenden. 

Python ist gerade genug Abstraktion, um zu verhindern, dass Linux Sie einschüchtert, während Sie lernen, dass C Sie mit all den großartigen und schrecklichen Dingen eines POSIX-kompatiblen Kernels und einer C-Bibliothek vertraut machen wird.

Wenn Sie die Frage mit einer Vorstellung von dem, was Sie schreiben möchten, aktualisieren können, werden Sie sicher geeignete Antworten finden.

1
Tim Post

Vielleicht möchten Sie nachsehen, welche Desktops wie Gnome und KDE Ihnen bieten. In KDE müssen Sie mit C++ unter Verwendung der vielseitigen QT-Bibliothek entwickeln, die auch in mobilen/eingebetteten Geräten verwendet wird.

Für IDEs können Sie KDevelop und Eclipse + CDT für C/C++ prüfen. Das Erlernen der automatischen Toolkette sollte ebenfalls von Vorteil sein, da viele Software für Linux dies verwendet. Für persönliche Projekte würde ich jedoch etwas besseres/neueres wie CMake annehmen (z. B. verwendet KDE CMake).

Für schnelle Jobs verwenden Sie Python oder Ruby - je nachdem, was Ihnen mehr passt.

0
Marcin Gil