Welche Programmiersprache lernen?

  • Ersteller nicfreak
  • Erstellt am
nicfreak
nicfreak
Registrierter Benutzer
Zuletzt hier
14.01.23
Registriert
24.02.09
Beiträge
497
Kekse
1.652
Ort
Donaueschingen
Hi ihr,
ich bin Schüler und hab noch ca. 1 Jahr bis zu meinem Abitur. Im Informatik-Kurs programmieren wir derzeit mit Delphi, allerdings würde ich gerne eine Programmiersprache lernen die aktueller und gebräuchlicher ist. Was würde sich denn anbieten? C, C++, C#? Mit welcher Sprache kann ich Anwendungen schreiben die auch auf nem Mac laufen?

Schonmal vielen Dank im Voraus!
 
Eigenschaft
 
Zuallererst ist zu sagen, daß man keine Programmiersprache lernt sondern das Programmieren ;)
Dafür ist die gewählte Sprache erst einmal egal, da es für fast alle Sprachen Compiler oder Interpreter für fast alle Platformen gibt.

Aus Deinen Beispielen sehe ich, daß Du nach einer Sprache zur imperativen und objektorientierten Programmierung suchst. Hier ist zum Lernen Pascal (der Ursprung von Delphi) die beste Wahl, da hier fast alle ugly hacks in der Syntax- und Semantikdefinition der Sprache ausgeschlossen sind.
Vorteile sind:
- strikter und einfach verständlicher Syntax
- Verzicht auf kontextabhängige Interpretationen
- starke Typisierung
Es ist halt immer noch die geeignetste Sprache um Programmieren zu lernen. Allerdings beginnt Programmieren vor dem Codieren (Quellcode schreiben) ;)

Welche Sprache man dann für ein konkretes Projekt wählt, hängt dann von den Projektanforderungen und den persönlichen Vorlieben ab.
 
wie schon humi schreibt, sollte es egal sein in welcher Sprache man entwickelt. Die Herausforderung liegt darin ein Problem zu lösen und dafür auch die richtigen Tools (Sprache, Frameworks, etc.) zu wählen.

Aber mal um Deine Frage trotzdem "irgendwie" zu beantworten und damit Du einen Einstieg findest ein paar plattformunabhängige Sprachen (bitte nicht alles auf die Goldwaage legen!):

- Java – der Code lässt sich einfach lesen. Beliebt z.Bsp. bei Anwendungen, die in einem Netzwerk kommunizieren (Webserver, etc.)
- C++ – mächtiger wenn es um hardwarenahe Programmierung geht
- ActionScript (Flex) – es ist eine objektorientierte Sprache, die Programme laufen in Air oder im Flashplayer. Einfacher Einstieg, sehr ähnlich zu Javascript.
- Javascript – ja, das meine ich ernst. Willst Du Anwendungen entwickeln, die auf jedem Smartphone laufen oder Webclients entwickeln? Dann kommst Du um Javascript nicht herum. Hier sollte man aber ein paar Frameworks wie z.Bsp. jQuery kennenlernen, da diese die Arbeit erleichtern und auch quasi Standard sind.

nur auf dem Mac:
- Objective C – die Sprache für iOs und OSX. Der Einstieg ist leider nicht ganz so einfach (man sollte das Kapitel mit memory management als erstes durchlesen ;)).

es gibt natürlich noch viel mehr, manche davon sind eher nur für Speziallfälle geeignet.
Mit Delphi bin ich noch nie in der freien Wildbahn in Berührung gekommen. Ich kenne nicht mal jemanden, der mit Delphi in Berührung kam.

Was aber sehr wichtig ist und von vielen total unterschätzt wird, ist der Umgang mit gängigen Tools. Du solltest Dich mit Eclipse vertraut machen, Dich mit Versionsverwaltung auseinander setzen und Werkzeuge wie Maven kennen.

Und natürlich die Basis der Softwareentwicklung (es sei denn, Du willst nur im stillen Kämmerlein für Dich selbst "programmieren"): Design Patterns ;)
 
Hier ist zum Lernen Pascal (der Ursprung von Delphi) die beste Wahl, da hier fast alle ugly hacks in der Syntax- und Semantikdefinition der Sprache ausgeschlossen sind.
was sind denn ugly hacks?

Es ist halt immer noch die geeignetste Sprache um Programmieren zu lernen. Allerdings beginnt Programmieren vor dem Codieren (Quellcode schreiben) ;)
Naja, ich bin ja kein absoluter Anfänger im Programmieren ;) Also lernen im Sinne von anfangen zu lernen tu ich ja nicht. Was meinst du mit "programmieren" beginnt vor dem "codieren" ?

Wäre C oder C++ oder C# (was ist auch da der Unterschied?) nicht eine aktuellere und zukunftssichere Sprache? Vor allem wenn ich auch mal Apps programmieren will?

Gruß,
Nico
 
was sind denn ugly hacks? kurze unsaubere hacks :D also unsauber programmiert, hauptsache es läuft, ohne über so Dinge wie z.B. Sicherheitsaspekte oder performante Programmierung nachzudenken

Naja, ich bin ja kein absoluter Anfänger im Programmieren ;) Also lernen im Sinne von anfangen zu lernen tu ich ja nicht. Was meinst du mit "programmieren" beginnt vor dem "codieren" ? bevor man den Code schreibt könnte man seine Ideen z.B. in Programmablaufplänen festhalten, wenn er das meint
Wäre C oder C++ oder C# (was ist auch da der Unterschied?) nicht eine aktuellere und zukunftssichere Sprache? Vor allem wenn ich auch mal Apps programmieren will?

Wenn du dich im unixoiden Umfeld aufhalten solltest wäre ein normales C mehr als zukunftssicher. Da du dich aber, wie ich denke, nicht mit Systemprogrammierung auseinandersetzen willst, sondern mit grafischen Oberflächen, wäre C nicht unbedingt der Weg. The right tool for the job.

Gruß,
Nico

Kommentare in rot
 
ugly hacks sind z.Bsp. gewollte Bufferoverflows oder Zuweisungen verschiedener Typen (Char -> Byte, etc.)

Vor dem Programmieren / Codieren kommt das Algorithmieren, d.h. mit welchen Schritten löse ich das Problem. Dies ist unabhängig von der gewählten Sprache.
 
Da du dich aber, wie ich denke, nicht mit Systemprogrammierung auseinandersetzen willst, sondern mit grafischen Oberflächen, wäre C nicht unbedingt der Weg.
Hast du recht! Ich will auf jedenfall grafische Oberflächen Programmieren.
Was wäre dann die Programmiersprache der Wahl?
 
soll ich mich zitieren? :)
Sry, deinen Beitrag hab ich vorher irgendwie überscrollt bzw. mein browser war irgendwie schon weiter unten :(
Da ich im Moment noch keinen Mac habe (armer Schüler) kann ich nicht mit Objective C einsteigen oder?
Dann würde sich Java anbieten bzw. als Vorbereitung auf Objective C wäre es sinnvoll C zu lernen?
Kann ich mit Objective C dann später im SDK von Apple eigene iPhone und Mac Apps programmieren?

Vielen Dank für die Beantwortung der vielen Fragen!
 
Sry, deinen Beitrag hab ich vorher irgendwie überscrollt bzw. mein browser war irgendwie schon weiter unten :(
Da ich im Moment noch keinen Mac habe (armer Schüler) kann ich nicht mit Objective C einsteigen oder?
Dann würde sich Java anbieten bzw. als Vorbereitung auf Objective C wäre es sinnvoll C zu lernen?
Kann ich mit Objective C dann später im SDK von Apple eigene iPhone und Mac Apps programmieren?

Vielen Dank für die Beantwortung der vielen Fragen!

http://de.wikipedia.org/wiki/Xcode

Objective C und Java-Script. C zu können schadet nie.
Ich würde mir auf jeden Fall Xcode holen, sobald du einen Mac hast. Bis dahin fleissig Java-Script üben. :D
 
Okay. Dann muss ich mal schaun wie ich mir C und Java-Script aneignen kann ;)
Gibts empfehlungen zu Tutorials oder so?

Gruß und Dankeschön!
 
es heißt JavaScript ;)

JavaScript (oder auch Java) und Objective C haben aber von der Syntax ungefähr so viel gemeinsam wie ein Flugzeug mit einem U-Boot ;). Beides sind Fortbewegungsmittel :).

Objective-C (übrigens eine Erweiterung von C) brauchst auf jeden Fall wenn du native Mac OS oder iOS Anwendungen schreiben willst.

Sobald man ernsthaft mit Client Anwendungen zu tun hat, kommt man aber auch um JavaScript und Flex (ActionScript) nicht drumherum.Heutzutage sind halt (mobile) Webanwendungen wichtig.
Unter Windows wäre dann C# für "grafische Oberflächen" wichtig (als Pendant zu Objective C auf dem Mac).

Java ist da bei reinen Desktop Anwendungen eher im Nachteil, aber das ist jetzt keine feste Regel :).

Wenn Du Spiele programmieren willst, brauchst Du wieder ganz andere Tools.

Das Gebiet ist wirklich so vielfältig, dass eine einfache Antwort kaum möglich ist. Daher ist es umso wichtiger die Grundprinzipien der Softwareentwicklung zu lernen (und sich nicht so stark um die Sprache selbst zu kümmern) um später flexibel zu bleiben und sich schnell den Anforderungen anpassen zu können.

Meine Empfehlung wäre:
nimm irgendeine einfache Sprache, die Dir einen leichten Einstieg erlaubt (wie z.Bsp. Flex oder vielleicht C#) und lerne erstmal die Basis eine Desktop Anwendung. Was ist MVC? Wie modelliere ich erst meine Anwendung auf dem Papier? Wie strukturiere ich mein Projekt? Wie visualisiere ich Daten? Wie kommuniziere ich mit der Aussenwelt? …

Wenn Dir dieses Prinzip dann vertraut ist, kannst Du die Unterschiede einzelner Sprache anschauen.
 
Wer das begriffen hat und umsetzen kann, hat schonmal die Hälfte der Miete rein :)

ja, nur sind das dummerweise genau die Dinge, an die die Leute nicht denken. Sie wollen ja immer eine "Programmiersprache lernen" :).

Ich halte es für 1000x sinnvoller eben diese Grundprinzipien zu lernen. Welche Sprache man jetzt dafür nimmt, ist egal.
 
Wow, das ist doch mal eine Diskussion, die ganz anders abläuft, als ich es beim Titel erwartet hätte. Insgesamt sehr gute Antworten, wie ich finde! :great:

Ich glaube, man kann eigentlich nur noch wiederholen, was schon gesagt wurde.. Die Logik und das hinter dem eigentlichen Code ist die eigentliche "Kunst". Um hier reinzukommen, hat mir z.B. auch Bash geholfen, was ich beruflich fast täglich anwenden konnte und so langsam steige ich in C ein. Insbesondere auch der Vorschlag sich bzgl. MVC bewusst zu sein unterstütze ich voll! :great:


Mal etwas anderes in den Raum geworfen... Für Python gibt es ja mittlerweile, sofern ich es mitbekommen habe auch einige Möglichkeiten mittels Frameworks, etc. Oberflächen zu basteln.. die Logik hätten wir hier auch... ratet ihr davon konkret ab? :)


Edit: Ja, mir ist durchaus bewusst, dass es sich bei Python genaugenommen um keine Programmiersprache handelt - nur um das vorweg zu nehmen ;)
 
Wenn Du mit dem Phyton-Framework klar kommst, warum soll man nicht damit entwickeln? Es hat ja niemand behauptet, daß ein Schuh aus Leder sein muß ;)
 
Ne, Python war bei mir persönlich zwar in der engeren Auswahl aber habe mich dann doch aus verschiedenen Gründen für C entschieden. Plattformunabhängigkeit, etc. wäre bei Python ja auch gegeben.

War eher eine Frage, wie allgemein eure Meinung zu Python als Einstieg ist. :)
 
Zuletzt bearbeitet:
Kollege von mir hat sein Netzwerk mittels C, C++, Scheme, ... entwickelt, je nachdem an welcher Stelle welche Sprache besser geeignet war das Problem umzusetzen und performateren Code produziert.

Von daher gilt das Motto: Jeder spielt mit der Waffe mit der er am besten zurecht kommt. Es gibt nur Sprachen / Frameworks, die für das aktuelle Projekt ungeeignet sind ;)
 

Ähnliche Themen


Unser weiteres Online-Angebot:
Bassic.de · Deejayforum.de · Sequencer.de · Clavio.de · Guitarworld.de · Recording.de

Musiker-Board Logo
Zurück
Oben