PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mein Neustart in die Programmierwelt



socalledchaos
29-01-2005, 19:58
Hallo allerseits,

bei mir ist es nun entgültig nötig, bzw. ich möcht es einfach gern, wieder unter die Software Programmierer zu gehen ;) Es stellt jetzt natürlich die Frage, was lernen. Ich habe mir jetzt durch Beiträge in div. Foren gekämpft, aber nach jeder 'was soll ich lernen' Frage kam nur ein Flame War heraus ;)

WAS ICH MÖCHTE:
- Hauptsächlich GUI Anwendungen erstellen. Simple, ohne DB Anbindung,
Geräte Ansteuerung, etc.
- GTK2 verwenden
- Auf eine große vorhandene Codebasis anderer zurückgreifen können
(um diese einzubinden, zu lernen, etc)
- Auf standardisierte Gnome Schnittstellen zugreifen, zb gstreamer, etc.
- Zukunftsorientiert und Herstellerunabhängig arbeiten können
(Beispiel Kylix ..)
- Eine 'realtiv' einfach zu lernende und leicht verständliche Sprache

Was ich bereits kann:
- von früher noch PowerBasic, Visual Basic, bissi Pascal (Kylix)

Bereits durchgefallen ist bei mir folgendes:
- Kylix (kein Support mehr, fast nicht mehr ohne Tricks zum laufen zu bekommen, kein GTK2)
- Lazarus (kein GTK2, sehr begrenzt. Zb. allein um ein Jpeg einzufügen brauch
ich schon ein Plugin, an Tiffs oder anderen Formaten oder zb gstreamer ist
hier wohl nicht zu denken ..). Sonst wäre Lazarus ein Traum.
- Java. Das UI ist grauslich. Kein GTK2.

Welche Programmiersprache wäre für meine Anforderungen die beste?

peschmae
29-01-2005, 22:22
Kleine Korrektur: Gtk/Gnome geht mit Java sehr wohl entweder direkt mit http://java-gnome.sourceforge.net oder via SWT.

Mein Tipp ginge an Python (auch wenn ich das selber nicht Programmieren kann, habe aber nur gutes davon gehört).
Allerdings solltest du bedenken das bei Gnome (auch wenn Gnome bezüglich der Programmiersprachen sehr vielfältig ist) immer noch ein Grossteil des Codes in C geschrieben sein dürfte - kommt halt drauf an wie weit das mit "Codebasis" verstehen bei dir gehen soll.
Allerdings fällt C wohl eher nicht unter "leicht zu lernen".

MfG Peschmä

axeljaeger
30-01-2005, 10:14
Auch wenn es erstmal Qt ist: Gerade ist Version 1.0 von Gambas rausgekommen. Das ist in etwa ein Visual Basic-Clone für Linux. Die GUI soll auch gegen GTK austauschbar sein, nur ist das entsprechende Plugin noch nicht geschrieben. Kannst es dir ja mal ansehen: gambas.sf.net

BeS
30-01-2005, 14:16
Hallo,
wie peschmae schon gesagt hat, kannst du auch mit java gnome/gtk Anwendugen erstellen. Allerdings halte ich persönlich nicht für eine so gute Idee. Da du entweder ein proprietäres Java System benutzen mußt (sun java) oder, was ich dir empfehlen würde wenn du dich für Java entscheidest, den gcj. Allerdings hast du da halt immer das Problem, dass du immer dem aktuellen "java-Standard" etwas hinterher hinkst.

Hier gibt es eine kleine Flash Demo zum Thema java und Gtk:

http://people.redhat.com/overholt/nativeeclipse/index.html


Ansonsten schau dich mal hier um: http://www.gtk.org/bindings.html
Gtk gibt es für fast jede Sprache

Wenn du etwas einfaches zu lernen haben willst, dann wird oft python empfohlen, was auch realtiv oft Verwendung in Zusammenhang mit Gtk findet.

Wenn du Basic kannst, dann wäre auch Mono (www.go-mono.org) ein Blick Wert (dass ist eine Frei .Net Implementierung), dass soll neben C# auch Basic können. Wie weit die implementierung ist und wie es mit Dokumentation zu Basic aussieht kann ich dir aber nicht sagen. Du könntest dir aber in dem Zusammenhang auch C# ansehen, dass ist ähnlich einfach wie java und hat unter gnome/gtk sicher auch eine Zukunft. Dazu gibt es hier auch eine nette flash-demo:
http://nat.org/demos/gtksharp.html

anda_skoa
30-01-2005, 15:13
Allerdings hast du da halt immer das Problem, dass du immer dem aktuellen "java-Standard" etwas hinterher hinkst.

Was nicht nötigerweise ein Problem ist, oft braucht man keinesfalls die neuesten Features der neuesten JSDK Generation.

Sonst hätte ich ausgehend von deinem Basiswissen wie schon erwähnt Gambas oder Lazarus (würde mich wundern, wenn die nicht noch auf GTK2 umsteigen) vorgeschlagen, bzw eine der immer populärer werdenen Scriptsprachen (Python, Ruby)

Ciao,
_

BeS
30-01-2005, 15:26
Was nicht nötigerweise ein Problem ist, oft braucht man keinesfalls die neuesten Features der neuesten JSDK Generation.


Ja, da hast du Recht. Problem war vielleicht etwas Falsch ausgedrückt. Es ist halt so, dass eigentlich so gut wie alle Bücher, Tutorials usw. sun java oder etwas vergleichbares voraussetzen und auch wenn man irgendwo nach Hilfe fragt, wenn es nicht gerade auf einer gcj Mailingliste ist, wird davon ausgegangen das man sun java hat. Und dann stößt man halt immer wieder auf Sachen, die bei einem selber nicht so gehen wie es andere sagen/schreiben.
Prinzipiell ist es natürlich kein Problem mit dem gcj oder so zu arbeiten wenn man sich mit java auskennt.

socalledchaos
30-01-2005, 23:12
Erstens mal vielen Dank für die vielen Tipps.
Ich hab so das Gefühl das ich wohl bei Java hängen bleiben werde. Hat mich doch etwas verwundert das es da GTK2 Bindings gibt ;) Sehr schööön. Das gefällt. So kann ich einerseits nette GTK Apps coden und wenn mir grad fad ist auch mal für Windows, OSX, etc. Software schreiben. Ideal. Weiters gibts doch eine sehr große Entwicklerschar. Tja und dazu bin ich noch draufgekommen das sich in meinen Bekanntenkreis 3 Java Entwickler und eine Java Entwicklerin befinden. Eclipse gefällt mir, Glade auch.. also ab in den Buchladen ;)

Pyhton, Ruby .. .etc ... irgendwie sind mir diese halb scriptsprachen, oä. etwas unsympatisch. Vielleicht liege ich falsch, aber ich denke mir, das Python sicher auch schnell an seine Grenzen stoßt, und längst nicht so portabel ist.

.net / C# ist von MS, *brrr*, das ist der erste Minus Punkt. Dazu habe ich noch den verschwitzten Ballmer im Ohr, der doch einst sagte, wenn Mono zu erfolgreich wird, das MS versuchen wird, Mono verbieten zu lassen, schließlich hat MS sehr viel in .net investiert und besitzt eine menge Patente drauf -- ist mir zu unsicher.

Lazarus + GTK2
Schau ins Forum, noch ist alles auf GTK 1.x .. die 2.0 wird noch länger auf sich warten lassen, ist derzeit in einem unvollständigen Entwicklungsstadium, der Einsatz wird noch nicht empfohlen (ich denke hier fehlt es noch an Entwicklern).

Vielen Dank für eure tipps. Mal sehen, vielleicht bin ich in nächster Zeit
öfters hier im Forum auf Besuch ;)

lg aus niederösterreich,
patrick

BeS
30-01-2005, 23:45
Hallo,


Eclipse gefällt mir, Glade auch.. also ab in den Buchladen ;)


Da wirst du aber wohl kaum Bücher zu java im Kombination mit gtk finden, java selber kannst du ja schon so wie ich dich verstanden habe.
Schau dir doch mal hier die Doku an: http://java-gnome.sourceforge.net/



Pyhton, Ruby .. .etc ... irgendwie sind mir diese halb scriptsprachen, oä. etwas unsympatisch. Vielleicht liege ich falsch, aber ich denke mir, das Python sicher auch schnell an seine Grenzen stoßt, und längst nicht so portabel ist.


Scriptsprachen halte ich vorallem für kleine bis mittlere Projekte für sehr brauchbar, da man damit sehr schnell gute Ergebnisse erreicht und auch leicht änderungen vornehmen kann.
Mit der portabilität von Python und Ruby sollte es keine Probleme geben.



.net / C# ist von MS, *brrr*, das ist der erste Minus Punkt. Dazu habe ich noch den verschwitzten Ballmer im Ohr, der doch einst sagte, wenn Mono zu erfolgreich wird, das MS versuchen wird, Mono verbieten zu lassen, schließlich hat MS sehr viel in .net investiert und besitzt eine menge Patente drauf -- ist mir zu unsicher.


Alle wichtigen Teile sind ECMA Standard und werden nicht alleine von MS Entwickelt.
Glaubst du Novell würde in etwas Geld investieren und sogar ihre Produkte darauf auslegen, wenn es so riskant wäre wie du sagst? Dazu kommt die FSF, die auch auch nicht wenig Ahnung vom Patentrecht hat, welche ebenfalls an einer .Net Implementierung arbeitet.

Es gibt ein Problem und das sind ganz allgemein Softwarepatente, die Gefahr ist bei Mono oder dotGNU aber mMn und u.a. nach der Meinung von Novell und der FSF nicht größer wie bei jedem anderen Projekt (z.B. auch java)

Sun ist nämlich auch alles andere als ein "Unschuldslamm" was Patente und Lizenzen anbetrifft.

Hier gibt es auch eine kleine Zusammenfassung zum Thema Patente und Mono:
http://primates.ximian.com/~miguel/texts/patents.html
Im FAQ auf der Mono Seite findest du auch antworten dazu.

Übrigens kann man auch java code mit gtk# auf mono laufen lassen:
http://primates.ximian.com/~miguel/archive/2004/Mar-18.html

Ich bin davon überzeugt, dass Mono eine große Zukunft unter GNU/Linux haben wird.

Hier noch ein interessantes Zitat von Icaza in dem Zusammenhang:


Ich erzähle seit Jahr und Tag, was wir mit Mono vorhaben und unterscheide mich da keinen Deut von Richard (Stallmann). Die Leute sollten meine Erklärungen lesen und keine Schlagzeilen in irgendeinem Newsticker. Als Richard mit seinem Projekt begann, gab es Unix und das gehörte AT&T. Die freie Software fing in einem reichlich unfreien Raum an. Aber Unix-Programmierer schufen dann freie Software. Nicht anders sieht es bei .NET aus. Wir müssen das erfolgreiche Unix-Modell auf .NET übertragen und die Architektur-Vorgabe von Microsoft für uns nutzbar machen. Wenn es klappt, kann jeder Programmierer in jeder Sprache freie Software entwickeln.

`kk
30-01-2005, 23:52
Kurze Frage:
Wenn ich Java-Gnome nutze, verlier ich ja die plattformunabhägigkeit.
D.h. ich möchte ein GTK-Programm mit Java schreiben, weil mir Java besser gefällt als C oder C++ (gtkmm).
Stimmt das so oder hab ich da grundsätzlich etwas falsch verstanden?

Ich befinde mich momentan auch noch ein bisschen auf der Suche nach "meiner Sprache". Java kann ich mittlerweile recht gut, aber so richtig glücklich bin ich vor allem mit Swing auch nicht. Deshalb werde ich jetzt wohl C++ lernen. Ob ich jetzt nun den Umweg über C gehe weiß ich noch nicht. Wohl eher nicht.

Nur meine Meinung.
Gruß, Kai.

BeS
30-01-2005, 23:57
Kurze Frage:
Wenn ich Java-Gnome nutze, verlier ich ja die plattformunabhägigkeit.
D.h. ich möchte ein GTK-Programm mit Java schreiben, weil mir Java besser gefällt als C oder C++ (gtkmm).
Stimmt das so oder hab ich da grundsätzlich etwas falsch verstanden?


ja und nein. Es kommt drauf an ob java-gnome auf windows portiert wurde, möglich ist es auf jedenfall, ob es letztlich portiert wurde müsstest du über google oder die Homepage von java-gnome herausfinden.

Wie ich oben geschrieben habe, könntest du aber auch java mit gtk# unter mono verwenden, dass gibt es für alle gängigen Plattformen. Das schöne an dem Konzept der CLI ist ja, dass sie Sprachunabhängig ist.
Alternativ kannst du dir auch C# ansehen, ist ja ziemlich ähnlich zu java.

`kk
31-01-2005, 00:05
Das ist mir schon klar. Ich hab das jetzt nicht aus meiner Sicht geschrieben, nur so als Beispiel. ;)
Sorry, falls das komisch rübergekommen ist...

Jetzt meine Sicht:
Ich verstehe ehrlich gesagt nur nicht, warum man java-gnome verwendet und somit die Plattformunabhängigkeit aufgibt.
Der Grund liegt ja wahrscheilnich darin, dass einem Java einfach besser gefällt.

Nagut, ich finds komisch.
Aber muss jeder selbst wissen.

PS: Habe den Post oben nochmal editiert gehabt...

BeS
31-01-2005, 00:09
Das ist mir schon klar.
Ich verstehe ehrlich gesagt nur nicht, warum man java-gnome verwendet und somit die Plattformunabhängigkeit aufgibt. Der Grund liegt ja wahrscheilnich darin, dass einem Java einfach besser gefällt.


Der Grund ist der, dass du damit ein nativ look-and-feel von Gtk Anwendungen bekommst. SWT verwendet zwar auch GTK um die GUI zu zeichen, aber es ist eben kein GTK sondern sieht nur so aus. Dadurch kann es zu kleinen Unstimmigkeiten kommen, sieht man z.B. auch bei den wx* Sachen die GTK zum zeichnen der GUI verwenden.
Ausserdem kannst du mit java-gnome echte gnome Programme schreiben die also wirklich in gnome integriert sind. Das fängt bei so trivialen Sachen wie dem default Dialogen an und geht über gnome-vfs, panel-applets, usw.

PS: Wenn du C++ lernen willst, dann lerne C++. Ein Umweg über C ist nur Zeitverschwendung und das einzige was du damit erreichen kannst ist, dass du nachher kein sauberes C++ schreibst. C++ und C sind verschiedene Programmiersprachen die eine vollkommen andere herangehensweise beim programmieren verlangen.

`kk
31-01-2005, 00:12
Der Grund ist der, dass du damit ein nativ look-and-feel von Gtk Anwendungen bekommst. SWT verwendet zwar auch GTK um die GUI zu zeichen, aber es ist eben kein GTK sondern sieht nur so aus. Dadurch kann es zu kleinen Unstimmigkeiten kommen, sieht man z.B. auch bei den wx* Sachen die GTK zum zeichnen der GUI verwenden.
Ausserdem kannst du mit java-gnome echte gnome Programme schreiben die also wirklich in gnome integriert sind. Das fängt bei so trivialen Sachen wie dem default Dialogen an und geht über gnome-vfs, panel-applets, usw.

PS: Wenn du C++ lernen willst, dann lerne C++. Ein Umweg über C ist nur Zeitverschwendung und das einzige was du damit erreichen kannst ist, dass du nachher kein sauberes C++ Programmierst. C++ und C sind verschiedene Programmiersprachen und zum Teil grundlegend anders programmiert werden.

Du dürftest nicht so schnell antworten, ich ändere meine Posts desöfteren nochmal. ;)

Also das mit SWT wusste ich so gar nicht, danke.
Dann sieht das Ganze natürlich schon anders aus. :)

BeS
31-01-2005, 00:17
Du dürftest nicht so schnell antworten, ich ändere meine Posts desöfteren nochmal. ;)


Ich will heute noch ins Bett, deswegen bin ich so schnell ;)

So, dass wars jetzt aber... Gute Nacht. :)

peschmae
31-01-2005, 06:27
Zu Java-Gnome auf Windows: klick (http://java-gnome.sourceforge.net/cgi-bin/bin/view/Main/WindowsCompilation)

MfG Peschmä

anda_skoa
31-01-2005, 09:59
Ich verstehe ehrlich gesagt nur nicht, warum man java-gnome verwendet und somit die Plattformunabhängigkeit aufgibt.

Weil man zum Beispiel eine GNOME Applikation schreiben möchte, aber sich als Sprache Java ausgesucht hat?

Desktop Integration kann je nach Applikation bzw. Zielgruppe sehr wichtig sein.
Als eine Art Mittelweg gibt es ja deswegen JDIC http://javadesktop.org/articles/jdic/index.html

Ciao,
_

`kk
31-01-2005, 19:05
Weil man zum Beispiel eine GNOME Applikation schreiben möchte, aber sich als Sprache Java ausgesucht hat?

Hab ich das nich als möglichen Grund angegeben?
Was solls.

Gruß, Kai.

dark_red
02-02-2005, 07:57
Ansonst vielleicht wx4j.sf.net anschauen. :D

Das WxWidgets laufen ja auch "schöner" unter OSX, da kein X verwendet werden muss (das mögen die Mac-User nicht so, da es nicht aus Wasser ist :p )

peschmae
02-02-2005, 12:10
Kannst du noch was zu wx4j <-> swt verlauten lassen? bzw. hast du das (oder gar beides) schon mal benutzt? Und wies so tut :)

MfG Peschmä

`kk
02-02-2005, 15:22
Also so langsam verlier ich völlig den Überblick. :eek:

dark_red
04-02-2005, 14:23
Kannst du noch was zu wx4j <-> swt verlauten lassen? bzw. hast du das (oder gar beides) schon mal benutzt? Und wies so tut :)

beides habe ich bisher noch nicht wirklich genutzt. mehr als ein hello world war da nicht drin.

wx4j ist ähnlich wie swt. es ist selber nicht direkt ein toolkit, sondern nutzt andere. die api ist eigentlich auch in ordnung.

zur zeit nutze ich mono/gtksharp. damit lässt sich auch sehr schön und einfach programmieren. die xml files von glade gefallen mir auch. gibt sogar eine demo von nat, in der er zeigt, wie einfach es sein kann: http://nat.org/demos/gtksharp.html