Welche Programmiersprache

Freie Themenwahl.

Moderator: Moderator

Welche Programmiersprache

Beitragvon Matty265 » 02.11.2009, 17:57

Hallo,
ich habe neulich durch die Schule das interesse am Programmieren entdeckt.
Nun wollte ich auch mal was in meiner Freizeit programmiern. Für mich kommen aber nur 2 Sprachen in Frage: Python oder Java.
Für mich ist es hallt besonders wichtig, dass ich plattformübergreifend (Windows,Mac OSX, Linux) programmieren kann.
Gereizt an Java hat mich dass man in Netbeans sehr schnell und einfach GUIs erstellen kann, was später sicher interessant ist.
Aber wenn schon GUI, dann sollten sie auch so aussehen, als ob sie für das OS geschrieben wurden.
Was sollte ich nehmen? Andere vorschläge?

grüße
Benutzeravatar
Matty265
 
Beiträge: 465
Registriert: 17.01.2009, 13:54
Wohnort: Mönchengladbach
Lizenz: CC
Distribution: Arch

Beitragvon DawnCrow » 02.11.2009, 19:30

bei mir gings eigentlich schon vor der schule los, das erste mal als ich an einem rechner saß fragte ich mich schon wie man programme selber macht.
damals gabs noch nicht so wirklich internet bei uns also waren meine günstigsten infoquellen printmedien, dadurch kam ich dann zu html, was sehr nützlich ist aber logischerweise noch nicht das was ich wollte.
dann hab ich über die schule basic kennen gelernt, was leider vorrangig unter windows zur anwendung kommt. dementsprechend hab ich mich dann auch mit Visual Basic auseinander gesetzt. VB ist wirklich schön gewesen, weil du eigentlich nicht anfängst code zu schreiben, sondern erstmal per klickibunti deine gui zusammenklicken kannst. Aber mit VB ist man sehr eingeschränkt da es von und für Microsoft ist, also musste was anderes her.
Java fiel bei mir sofort weg, eben wegen deinem problem. Also war dann C am naheliegensten.
Jetzt wo ich C gut behersche möchte ich es nicht mehr missen. Habe aber für ein kleines winetool namens winemaker extra noch Perl gelernt was auch recht interessant ist.
Das beantwortet jetzt alles deine Frage nicht so wirklich...
ich denke wenn dir die von dir genannten sprachen gut liegen, dann probiere doch mal wxwidgets zusammen mit python aus. http://www.wxwidgets.org/
damit schlägst du Win32, Mac OS X, GTK+, X11, Motif, WinCE, und theoretisch auch PalmOS tot
BildBild

Linux: It is now safe to turn on your computer.
Benutzeravatar
DawnCrow
 
Beiträge: 327
Registriert: 28.02.2009, 17:05
Wohnort: Unterfranken
Lizenz: LGPL
Distribution: Ubuntu 11.04 64-Bit, Mint 14
Kernelversion: 3.5

Beitragvon Matty265 » 02.11.2009, 20:07

Hi,
danke erstmal. HTML/Javascript behersche ich schon ziemlich gut (Schule :D)
Ich habe gelesen, dass Zeitkritische Teile in Python auch in C geschrieben werden können. Ist Python nicht damit allen anderen Sprachen überlegen?

grüße

EDIT:
Kann ich mit wx auch GUIs so machen, dass es sich halt dem Theme/Buttontheme anpasst? Ich weiß nicht wie mans sagen kann, in englisch währe es "it looks nativ on this system".

grüße
Benutzeravatar
Matty265
 
Beiträge: 465
Registriert: 17.01.2009, 13:54
Wohnort: Mönchengladbach
Lizenz: CC
Distribution: Arch

Beitragvon Dexter » 02.11.2009, 20:16

In der Zukunft ist Vala sicher eine interessante Alternative.
Das ist eine High-Level Sprache die eine ähnliche Syntax wie Java/C# hat, jedoch wird das ganze in C Code übersetzt und ist deshalb schneller als Java.

Das einzige Problem zur Zeit ist, dass ValaIDE noch ein sehr junges Projekt ist und deshalb viele Features noch fehlen (zB. auch einen GUI-Designer)


D3xter
Dexter
 
Beiträge: 46
Registriert: 03.10.2008, 09:18

Beitragvon DawnCrow » 02.11.2009, 20:21

[quote=Matty265,index.php?page=Thread&postID=38717#post38717]Hi,
danke erstmal. HTML/Javascript behersche ich schon ziemlich gut (Schule :D)
Ich habe gelesen, dass Zeitkritische Teile in Python auch in C geschrieben werden können. Ist Python nicht damit allen anderen Sprachen überlegen?
[/quote]
nein

[quote=Matty265,index.php?page=Thread&postID=38717#post38717]
Kann ich mit wx auch GUIs so machen, dass es sich halt dem Theme/Buttontheme anpasst? Ich weiß nicht wie mans sagen kann, in englisch währe es "it looks nativ on this system".
[/quote]
ja
das ist der Sinn von wxwidgets. ich habe mal ein projekt damit gemacht und muss sagen, unter windows siehts komplett nativ aus und unter linux auch.
das liegt daran das wxwidgets einfach ein bindeglied ist. wenn es was für windows kompiliert nutzt es die standard windowsaufrufe und bei linux das ganz halt mit den linuxaufrufen.
also erstellt man jedesmal praktisch ein vollwertig natives programm.
BildBild

Linux: It is now safe to turn on your computer.
Benutzeravatar
DawnCrow
 
Beiträge: 327
Registriert: 28.02.2009, 17:05
Wohnort: Unterfranken
Lizenz: LGPL
Distribution: Ubuntu 11.04 64-Bit, Mint 14
Kernelversion: 3.5

Beitragvon Matty265 » 02.11.2009, 20:30

[quote=DawnCrow,index.php?page=Thread&postID=38719#post38719][quote=Matty265,index.php?page=Thread&postID=38717#post38717]Hi,
danke erstmal. HTML/Javascript behersche ich schon ziemlich gut (Schule :D)
Ich habe gelesen, dass Zeitkritische Teile in Python auch in C geschrieben werden können. Ist Python nicht damit allen anderen Sprachen überlegen?
[/quote]
nein

[quote=Matty265,index.php?page=Thread&postID=38717#post38717]
Kann ich mit wx auch GUIs so machen, dass es sich halt dem Theme/Buttontheme anpasst? Ich weiß nicht wie mans sagen kann, in englisch währe es "it looks nativ on this system".
[/quote]
ja
das ist der Sinn von wxwidgets. ich habe mal ein projekt damit gemacht und muss sagen, unter windows siehts komplett nativ aus und unter linux auch.
das liegt daran das wxwidgets einfach ein bindeglied ist. wenn es was für windows kompiliert nutzt es die standard windowsaufrufe und bei linux das ganz halt mit den linuxaufrufen.
also erstellt man jedesmal praktisch ein vollwertig natives programm.[/quote]

Ok, vielen Dank. Ich denke, ich werde mich mal mit Python und wx auseinander setzen (dank thenewboston @ youtube.com geht das bis jetzt auch ziemlich gut :D )

Nur was mich wundert, was hat es dann mit diesem Satz aus der Wikipedia auf sich?
Durch die Möglichkeit, auch Programme anderer Sprachen als Modul einzubetten, werden viele Nischen in der Programmierung abgedeckt. Bei Bedarf lassen sich so beispielsweise zeitkritische Teile durch maschinennah in C programmierte Routinen ersetzen
Benutzeravatar
Matty265
 
Beiträge: 465
Registriert: 17.01.2009, 13:54
Wohnort: Mönchengladbach
Lizenz: CC
Distribution: Arch

Beitragvon DawnCrow » 02.11.2009, 20:46

[quote=Matty265,index.php?page=Thread&postID=38720#post38720]
Ok, vielen Dank. Ich denke, ich werde mich mal mit Python und wx auseinander setzen (dank thenewboston @ youtube.com geht das bis jetzt auch ziemlich gut :D )

Nur was mich wundert, was hat es dann mit diesem Satz aus der Wikipedia auf sich?
Durch die Möglichkeit, auch Programme anderer Sprachen als Modul einzubetten, werden viele Nischen in der Programmierung abgedeckt. Bei Bedarf lassen sich so beispielsweise zeitkritische Teile durch maschinennah in C programmierte Routinen ersetzen
[/quote]
Bitte, kein Problem.
aber was wundert dich an dem satz? mein nein war auf dein >>anderen Sprachen überlegen<< bezogen und nicht darauf das man andere sprachen als modul einbetten kann
BildBild

Linux: It is now safe to turn on your computer.
Benutzeravatar
DawnCrow
 
Beiträge: 327
Registriert: 28.02.2009, 17:05
Wohnort: Unterfranken
Lizenz: LGPL
Distribution: Ubuntu 11.04 64-Bit, Mint 14
Kernelversion: 3.5

Beitragvon Bauer87 » 02.11.2009, 20:48

Ich hätte jetzt bei der Auswahl auch Python genommen. Allerdings weiß ich nicht, warum es nicht z.B. C++ sein kann. Das ist zwar nicht das modernste, aber man kann wirklich viel damit machen, weil es viele gute Bibliotheken gibt. (Demnächst kommt z.B. BulletPhysics für massiv parallele Physik-Berechnungen per OpenCL.)

Der Code muss dann zwar für jede Plattform neu kompiliert werden, aber das Resultat kann sich sehen lassen. Dank entsprechender Bibliotheken kann man sehr gute, plattformunabhängige Programme schrieben, z.B. mit Qt oder GTK+. Schneller als mit C++ wird dein Code wohl nur noch in Assembler.

PS: Wenn man andere Sprachen einbetten kann (geht nicht nur in Python!), dann muss man die auch können.
Raubcodierer sind Verbrecher. Stop DRM!
Benutzeravatar
Bauer87
 
Beiträge: 1233
Registriert: 31.10.2006, 23:28
Wohnort: Oldenburg
Lizenz: CC BY-SA 3.0
Distribution: Debian Stretch
Kernelversion: 4.9

Beitragvon Matty265 » 02.11.2009, 23:22

Ja, ich dachte am Anfang auch an c++ und qt creator, wurde mir aber als Programmier-Anfänger abgeraten
Benutzeravatar
Matty265
 
Beiträge: 465
Registriert: 17.01.2009, 13:54
Wohnort: Mönchengladbach
Lizenz: CC
Distribution: Arch

Beitragvon cool j » 03.11.2009, 01:22

Es geht ja nicht darum, was schwer oder leicht ist. Vielmehr musst du entscheiden, was du willst. Wenn du c/c++ gerne lernen willst, dann tu es einfach. Du solltest nicht aus "Faulheit" auf eine einfachere Sprache zurückgreifen.

Ich habe mir damals während der Schulzeit auch C++ beigebracht. Der Schritt von C++ zum qt ist danach ein Klacks. Ich würde mir aber an deiner Stelle erstmal C++ aneignen und mich anschließend in qt einarbeiten.
cool j
 
Beiträge: 113
Registriert: 17.06.2008, 17:50

Beitragvon Bauer87 » 03.11.2009, 09:10

Ich habe in der Schule Java gelernt und an der Uni dann C++. Mit meinen Schulkenntnissen ist mir das an der Uni recht leicht gefallen, aber den meisten anderen hat es auch ohne Vorkenntnisse keine Probleme bereitet. C++ hat ja den Vorteil, dass man auch dort einfach programmieren kann. (Und wenn man Fehler macht, meckert der Compiler oder das Programm stürzt ab. Mit Linux ist auch letzteres nicht mehr gefährlich, unter Windows (zumindest 9X) konnte das den ganzen Rechner mitreißen.)

Java benutze ich seit der Schule gar nicht mehr. Damit werde ich wohl nie was anderes schreiben als diese Käferprogramme. Und mit meinen C++-Kenntnissen programmiere ich ein Spiel. (Könnte zum Jahreswechsel spielbar werden.)
Raubcodierer sind Verbrecher. Stop DRM!
Benutzeravatar
Bauer87
 
Beiträge: 1233
Registriert: 31.10.2006, 23:28
Wohnort: Oldenburg
Lizenz: CC BY-SA 3.0
Distribution: Debian Stretch
Kernelversion: 4.9

Beitragvon wakeup » 03.11.2009, 14:01

Ich rate zu C. Aber bitte ohne ++. Bevor ich C++ tackeln würde empfehle ich Common Lisp unter die Lupe zu nehmen. (Sehr guter Einstieg in Programmiersprachen im allgemeinen, weil es halt schon irgendwo *die* Sprache ist.)
Benutzeravatar
wakeup
 
Beiträge: 566
Registriert: 28.04.2007, 22:56
Wohnort: bonn

Beitragvon DawnCrow » 03.11.2009, 19:56

[quote=wakeup,index.php?page=Thread&postID=38726#post38726]Ich rate zu C. Aber bitte ohne ++. Bevor ich C++ tackeln würde empfehle ich Common Lisp unter die Lupe zu nehmen. (Sehr guter Einstieg in Programmiersprachen im allgemeinen, weil es halt schon irgendwo *die* Sprache ist.)[/quote]
Ja, C ist mir eigentlich auch lieber...ganz Wine ist z.B. in C geschrieben. Für C++ sollte man wirklich erstmal den unterschied zu C verstanden haben, andernfalls nützen einem die Vorteile von C++ rein garnichts.
BildBild

Linux: It is now safe to turn on your computer.
Benutzeravatar
DawnCrow
 
Beiträge: 327
Registriert: 28.02.2009, 17:05
Wohnort: Unterfranken
Lizenz: LGPL
Distribution: Ubuntu 11.04 64-Bit, Mint 14
Kernelversion: 3.5

Beitragvon Bauer87 » 04.11.2009, 08:04

Wenn man mit C einsteigt, gewöhnt man sich an prozeduale Programmierung und wird die Vorteile von C++ nicht unbedingt besonders gut nutzen. Allerdings lernt man so quasi zwei Sprachen zum Preis von einer. C ist aber leider (bei umfangreichen Projekten) sehr schwer zu warten. Das sieht man z.B. gut an an Windows9x: Das ist ständig abgestürzt, weil ständig irgendein Pointer irgendwohin gezeigt hat, wohin er nicht zeigen sollte. Vorteil von C ist die absolute Hardwarenähe. Man implementiert quasi genau das, was der Rechner auch macht. Damit bekommt man ein gutes Gefühl für den Rechner.

Wenn man mit C++ einsteigt, wird man nicht unbedingt C lernen, verliert also die Kompatibilität und lernt weniger über die Hardware. Allerdings wird man sehr intuitiv mit Objektorientierung umgehen, was für C-Umsteiger oft schwierig ist. Vor allem da C-Code fast 1:1 als C++ läuft, schreiben viele weiter C und wechseln quasi nur den Compiler. C++ ist etwas abstrakter als C, man kann sich nicht unbedingt überlegen, was der Computer machen muss, sondern was die Objekte für Eigenschaften haben sollen. Dafür sind die einzelnen Objekte gut zu warten und man kann so recht leicht Teile des Programms austauschen, wenn man einen Fehler findet. (Vor allem, weil durch Kapselung feste Schnittstellen zwischen den Objekten definiert sind.) Damit bekommt man ein eher ein Gefühl für das Programm an sich.
Raubcodierer sind Verbrecher. Stop DRM!
Benutzeravatar
Bauer87
 
Beiträge: 1233
Registriert: 31.10.2006, 23:28
Wohnort: Oldenburg
Lizenz: CC BY-SA 3.0
Distribution: Debian Stretch
Kernelversion: 4.9

Beitragvon ReCon » 04.11.2009, 12:55

Mir geht es so ähnlich wie Matty. Ich habe allerdings bisher in der Schule nur C# kennengelernt ... naja, Microsoft eben.

Ich möchte mich künftig auch näher mit dem Programmieren beschäftigen. In der Schule habe / hatte ich wie gesagt C#, habe also etwas an Vorkentnissen bzgl. Objektorientierter Programmierung. Da ich aber Plattformunabhängig programmieren möchte und diese Sprache eine .NET Sprache ist (was wiederrum an Windows gekoppelt ist, wenn man jetzt mal von Mono absieht), habe ich bereits nach Alternativen gesucht.

Was ich noch nie verstanden habe ist, warum so viele über Java schimpfen. Ich habe mir auch überlegt mit C, Ruby oder Java anzufangen und bin bisher an letztem hängen geblieben, vermutlich auch deshalb, weil C# quasi das "Konkurrenzprodukt" zu Java ist bzw. sein soll und ich mich dadurch evtl. sicherer fühle.
Alles in allem bin ich mir aber noch immer unsicher, ob das der richtige Weg ist. Mein erster Gedanke war eben "vielleicht kann ich mit meinen bisherigen Kentnissen etwas anfangen". Für die kleinen Progrämmchien, welche ich mir vorstellen könnte zu programmieren, sollte Java eigentlich "genügen". - Mir ist es nur wichtig, dass ich etwas lerne, was auch Zukunft hat. Da liege ich doch mit Java nicht ganz so falsch? :)
Linux is like a wigwam: No windows, no gates and an apache inside!
_________________

Bild Team
Benutzeravatar
ReCon
 
Beiträge: 1273
Registriert: 23.06.2006, 22:02
Lizenz: GPL
Distribution: openSUSE 13.1
Kernelversion: 3.11.6-4-desktop

Nächste

Zurück zu Alles was euch den Tag über bewegt...

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste

cron