Welche Programmiersprache?

Neurodeamon

Erfahrenes Mitglied
Ich vermute mal, diese Frage spaltete die Programmiergemeinde schon immer in mehrere Lager.

Ich würde gerne wissen, welche Programmiersprache für Euch am meisten Sinn macht. Sie sollte möglichst Platformunabhängig sein und auch nicht unbedingt extrem schwer zu lernen sein.

Ich habe im Freundes- und Bekanntenkreis vielerlei Vorschläge bekommen, bin aber nicht ganz zufrieden mit den Antworten. REALBasic wurde mir Empfohlen, C und C++ natürlich. Ich weiß, die Hardcorer ASMen und echte Programmierer arbeiten nur binär ;)

Ich denke, das ich den Fehler gemacht habe mit PHP anzufangen und so den Mischmasch aus vielen Programmiersprachen kennengelernt zu haben. Wäre C oder eine ahnliche Programmiersprache für mich sinnig zu lernen oder sollte ich eine Alternative dazu in Erwägung ziehen?

Möge der War beginnen ;)
 
Oh, das würde mich auch mal interessieren! Ich hab ja mal vor fünf Jahren oder so in der Schule Visual Basic programmiert (oje...) und dann vor einem Jahr oder so mal länger Pascal - das war noch ganz nett. Aber stimmt schon, PHP verdirbt einem alles. Mich würd ja C++ auch interessieren, nur find ich kein schlaues Tutorial. Kennt irgendjemand eins?
 
Les dir bitte hierzu zudem den Thread PHP und Programmierstil durch. Dort wurde ähnliches auch diskutiert.

Das ich Java liebe, ist kein Geheimnis, aber ich denke bei dir passt Java wirklich am besten.
Auch der Rat C++ ist nicht schlecht. Wenn du eine von beiden Sprachen lernst, machst du auf jeden Fall keinen fehler.
C währe auch eine möglichkeit, aber die entwicklung beim Programmieren, geht eindeutig in richtung OOP und C muss mann nicht lernen um C++ zu verstehen.

Erstens sind diese 3 Sprachen die in der Industrie mit (leider VB) die beliebtesten, meistgenutzten Sprachen .
Zweitens decken diese Sprachen so viel an Wissen ab, damit lässt sich einfacher seine Kenntnisse auf andere Sprachen ausweiten.

Java ist etwas einfacher zu erlernen, als das bei C++ der Fall ist. Sobald aber die Hürde des Sprachumfang lernens überwunden ist, steht Java in Komplexität C++ in nichts nach.
Gerade höhere Themen wie Enterprise Java Beans oder ähnlichem ist nicht allzu einfach zu verstehen.

Auch in C++ lässt sich mit viel Sorgfalt sehr portable Programmieren. Nicht plattformunabhängig, aber portabel.
Java hingegen ist! Plattformunabhängig.

C++ läuft schneller als Java. Java kommt auf ca 85 - 90 % der Geschwindigkeit von C++, tendenz steigend (mit jeder neuen Generation).
Nachteil bei Java: Langsame / Träge wirkende Oberflächen mit Swing.
Swing (sprich die GUI Klassen von Java) hat den Nachteil das es nicht auf nativen GUI Elementen des Betriebssystem aufsetzt sondern sämmtliche Elemente selber zeichnet. Gerade auf älteren Rechner kann dies sich doch recht negativ auswirken.
Bei Rechner der 2Ghz Klasse und aktuellem 1.4 Java SDK hat sich das Problem so gut wie gelöst.
Andere alternative, von mir auch bevorzugt, SWT. Setzt auf nativen Biblotheken des Betriebssystems auf und ist dementsprechend so schnell, das mann absolut keinen Unterschied zwischen nativen z.b C++ Programmen die MFC oder WinAPI nutzen und der SWT GUI zu spüren ist.

Ich hoffe ich werde jetzt nicht von den VB Anhänger gevierteilt, aber Basic ist eine sterbende Sprache. Einzig Microsoft hält noch ein Basic Dialekt der produktiv eingesetzt wird. Aber auch hier ist eine ganz klare Tendenz weg von VB zu C# spürbar auch wenn dies gern bestritten wird um nicht böses Blut zu sähen.
Dennoch sind die meisten .net Vorträge in C# gehalten. In den .net Büchern wird ebenso C# zumeist bevorzugt, und auch im ersten Framework steht im zugehörigen MSDN Artikel der Rat das .net Framework mit C# zu erlernen.

Apropro C#:
Auch C# währe eine gute Möglichkeit einer guten, fähigen Sprache. Da C# in sehr vielen Teilen identisch ist wie Java (ist als Java Clone gedacht) , gelten viele Vorteile von Java auch für C#. C# führte recht hilfreiche Dinge ein wie ein foreach zum durchlaufen von Schleifen oder das Autoboxing von typen in ihre Wrapperklassen, was bei Java noch etwas umständlicher ist. Jedoch hat Sun richtig reagiert und so wie MS bei Sun sich Java als Vorlage für C# genommen hat, so hat nun Sun diese Vorteile auch in der kommenden Version implementiert. Die 1.5 Alpha ist schon erhältlich.
Nachteil C#: Plattformunabhängigkeit. Diese ist einfach nicht gegeben. ..
Es gibt zwar das mono Projekt welches sich zum Ziel gesetzt hat die .net Plattform auf Linux zu implementieren, jedoch wird vieles aufgrund von Patenten auf seiten Microsofts nicht möglich sein, weshalb eine Applikation angepasst werden muss bevor sie auf beiden Plattformen laufähig ist.
Ausser mann verwendet mono auch auf der Windows Plattform. Jedoch ist mono immer noch nicht released, und das wird auch noch eine weile dauern.
Plattformunabhängigkeit 2: Handy, Palm Markt. So ziemlich jedes Handy das heutzutage ausgeliefert wird, ist Java Fähig. Sprich es ist relativ einfach Midlets (Applikationen für mobile Geräte) zu entwickeln, ob dies Spiele oder Anwendungen sind, alles ist recht einfach möglich mit Java. Microsoft versucht seid 3 Jahren ein Standbein im Handy Markt zu bekommen. Bisher gabs nur schlappen, abstürze des Handybetriebssystems bei dem einem Hersteller, Lizenzstreitigkeiten mit dem anderen Herrsteller, weshalb .net als Handy Entwicklungssprache noch in den Sternen steht, zumal Siemens, Sonyerricson, Nokia, Motorrolla viel Geld in die Java J2ME Entwicklung gepumpt haben.

Letzter Punkt:
Delphi/Kylix. Bzw Object Pascal.
Eine schöne Sprache, die einem gut zum Programmieren lernen dienen kann. Oft unterschätzt und deshalb nicht ganz so oft anzutreffen wie die anderen Sprachen. Nachteil: Abhängigkeit von Borland, da diese einzige Produktive Umgebung bieten können um Object Pascal zu programmieren . Auch portable Programmierung möglich, soviel ich weiss aber nur auf 2 Plattformen beschränkt Windows / UNIX(Linux)

Hoffe das hilft etwas.

PS: schönes neues!
 
Ja der Buchhändler deines Vertrauens. C++ anhand von Tutorials zu lernen ist ein schlechter Rat.
Hm... da hab ich leider negative Erfahrungen gemacht. Hab mir vor etwa einem Jahr (Vater, vergib mir! ;)) von einer eBookz-Seite "C++ in 21 Tagen" heruntergeladen - und bei Tag 6 hab ich nix mehr kapiert. Ich bin wirklich nicht der dümmste, aber das Buch war schrecklich. Sind alle Bücher so? Oder liegt's an der Sprache? Wenn nicht - welches schlaue Buch gibt's denn, wo ein Anfänger wirklich alles versteht?

(Sorry, dass ich jetzt hier weiterschreibe, aber das jetzt in den anderen Thread zu transferieren fände ich doch etwas umständlich)
 
Original geschrieben von SilentWarrior
Hm... da hab ich leider negative Erfahrungen gemacht. Hab mir vor etwa einem Jahr (Vater, vergib mir! ;)) von einer eBookz-Seite "C++ in 21 Tagen" heruntergeladen - und bei Tag 6 hab ich nix mehr kapiert. Ich bin wirklich nicht der dümmste, aber das Buch war schrecklich. Sind alle Bücher so? Oder liegt's an der Sprache? Wenn nicht - welches schlaue Buch gibt's denn, wo ein Anfänger wirklich alles versteht?

(Sorry, dass ich jetzt hier weiterschreibe, aber das jetzt in den anderen Thread zu transferieren fände ich doch etwas umständlich)
Ich habe C++ auch mit in 21 Tagen Buch gelernt.
Und ja das liegt an der Sprache, C++ ist eine der am wenigsten Einsteigerfreundlichen Sprachen, und eine der Sprachen bei der mann am meisten Zeit brauch um sie zu beherrschen überhaupt.
Gleichzeitig auch die Sprache, die mann ruckzuck wieder verlernt wenn mann nicht mehr viel in ihr programmiert, das habe ich erst kürzlich, schmerzhaft erfahren müssen.
 
Original geschrieben von Christian Fein
Es gibt zwar das mono Projekt welches sich zum Ziel gesetzt hat die .net Plattform auf Linux zu implementieren, jedoch wird vieles aufgrund von Patenten auf seiten Microsofts nicht möglich sein, weshalb eine Applikation angepasst werden muss bevor sie auf beiden Plattformen laufähig ist.
Ausser mann verwendet mono auch auf der Windows Plattform. Jedoch ist mono immer noch nicht released, und das wird auch noch eine weile dauern.

Das mono nicht nicht released ist stimmt so nicht ganz. Im moment kann Version 0.29 von der mono Downloadsite bezogen werden.

Da hier ja gerade so ein netter Thread ist zu Programmiersprachen, kann ich ja auch gleich Chris etwas fragen.
Gibt es eigentlich zu Interop, und unmanaged Code Gegenstücke in Java?
 
Original geschrieben von Christian Fein
...Plattformunabhängigkeit 2: Handy, Palm Markt. So ziemlich jedes Handy das heutzutage ausgeliefert wird, ist Java Fähig. Sprich es ist relativ einfach Midlets (Applikationen für mobile Geräte) zu entwickeln, ob dies Spiele oder Anwendungen sind, alles ist recht einfach möglich mit Java. Microsoft versucht seid 3 Jahren ein Standbein im Handy Markt zu bekommen...

Das ist so nicht ganz richtig, man kann schon mit .NET für PDA Anwendungen/Spiele programmieren das ist möglich seit dem Compact Framework .NET ;)
 
Original geschrieben von Alexander Schuc
Das mono nicht nicht released ist stimmt so nicht ganz. Im moment kann Version 0.29 von der mono Downloadsite bezogen werden.

Da hier ja gerade so ein netter Thread ist zu Programmiersprachen, kann ich ja auch gleich Chris etwas fragen.
Gibt es eigentlich zu Interop, und unmanaged Code Gegenstücke in Java?

Version 0.29 ist keine Release.
Release beginnt bei 1.0 auch bzw gerade bei OpenSource Projekten.
Zudem sind viele Klassen, bei meinem kurzen Überblick habe ich ca 30 % gesehen die noch nicht mal implementiert sind.
Das ding ist nichtmal im Alpha Stadium. Eine 0.29 ist ein Developement Release.

Gibt es eigentlich zu Interop, und unmanaged Code Gegenstücke in Java?
managed Code ist eine eigenschafft des .net Framework. Java ist grundsätzlich das was Microsoft so schön als Managed Code bezeichnet.
Die ganze Garbage Collection Geschichte gibts schon seid einer Ewigkeit.
Im grunde kannst du nach der Faustregel gehen: Was in .net umgesetzt worden ist, gabs schon seid Jahren bei Java.
Das fängt bei den sogenannten Webforms an und geht über die komplette ASP.net Architektur, über der Struktur und beschaffenheit des .net Frameworks bis hin zur eigentlichen Sprache C#.
All das wurde recht gut von Java kopiert.

interop:
msdn sagt:
.NET Interop: Get Ready for Microsoft .NET by Using Wrappers to Interact with COM-based Applications

Gerade das sind dinge die .net plattformabhängig machen. Es gibt COM nur auf Windows, und sowas hat in einer plattformunabhängigen Sprache nichts zu suchen. Wenn ich DCOM / COM brauche sollte ich lieber CORBA/JB nehmen, das ist plattformunabhängig und ISO Standard.

Original geschrieben von Counterfeit
Das ist so nicht ganz richtig, man kann schon mit .NET für PDA Anwendungen/Spiele programmieren das ist möglich seit dem Compact Framework .NET ;)
Das ist nett, nur gibt es so gut wie keine Windows Handys. Die die am Markt wahren sind wegen unzuverlässigkeit wieder in der Versenkung verschwunden.
Also was nutzt dir die möglichkeit dafür zu programmieren?
Java kann so ziemlich jedes Handy.
 
Original geschrieben von Christian Fein
Das ist nett, nur gibt es so gut wie keine Windows Handys. Die die am Markt wahren sind wegen unzuverlässigkeit wieder in der Versenkung verschwunden.
Also was nutzt dir die möglichkeit dafür zu programmieren?
Java kann so ziemlich jedes Handy.

Ich habe ja auch nur PDAs erwähnt, für Handy ist mir klar das es wenige Windows Handys gibt.
 

Neue Beiträge

Zurück