Programmiersprachen

  • hallo!

    ich bin momentan noch Schülerin, überlege aber nach der Matura an der technischen
    Universität ein Studium zu beginnen. Da ich eine AHS besuche, habe ich aber momentan
    nicht viel mehr als mein Interesse.
    Meine Frage ist nun: da ich in nächster Zeit nicht zu vielbeschäftigt bin, wollte ich damit
    beginnen, eine Programmiersprache zu lernen, nur habe ich jetzt keine Ahnung, womit
    ich beginnen sollte!
    Könntet ihr mir vielleicht die geläufigsten Programmiersprachen kurz "vorstellen", also
    wofür sie verwendet werden können, was die Vor- und Nachteile sind, welche sich besser
    für einen Anfänger eignen und so?

    Vielen Dank im Voraus!
    kleine Elfe

  • Java
    Wird für TU-Einführungskurse, plattformunabhängige Anwendungen und Applets auf Webseiten verwendet. Programme werden auf der Java Virtual Machine ausgeführt.
    Vorteile: plattformunabhängig. komplett objektorientiert, mit allen Vorteilen. leicht zu lernen. große Klassenbibliothek mit vielen nützlichen Sachen. schöne Auswahl an Entwicklungstools, auch mit Fensterdesigner.
    Nachteile: kann kaum betriebssystem-spezifische Vorteile nutzen. nicht ganz so schnell wie andere Sprachen, aber mit immer schnelleren Computern spielt das kaum noch eine Rolle.

    "Egbert B. Gebstadter is the Egbert B. Gebstadter of indirect self-reference." - Egbert B. Gebstadter

  • C# (.NET)
    Ein Java-Derivat von Microsoft, für Windows- und Web-Applikationen. Programme werden von der .NET Virtual Machine ausgeführt.
    Vorteile: komplett objektorientiert, mit allen Vorteilen. große, durchdachte Klassenbibliothek (.NET Framework). sicheres Typenkonzept mit weniger Abstürzen, oder so. auch nicht allzu schwer zu lernen. Module aus mehreren .NET-Sprachen in einem Projekt möglich. nicht unschnell. Komfortable Entwicklungsumgebung mit Visual Studio .NET.
    Nachteile: derzeit in der Praxis noch auf Windows beschränkt, obwohl das mono-Projekt auch eine Linux-Portierung versucht.

    "Egbert B. Gebstadter is the Egbert B. Gebstadter of indirect self-reference." - Egbert B. Gebstadter

  • C++
    Die Standard-Sprache schlechthin, für alle leistungskritischen Anwendungen auf allen Plattformen, objektorientierte Erweiterung von C. Viel hardwarenäher als Java oder C#, mit allen Vor- und Nachteilen.
    Vorteile: objektorientiert. schnell, weil als Maschinencode kompliert. Zeigerarithmetik. Generische Programmierung mit Templates. Viele Entwicklungsumgebungen und etliche unterschiedliche Compiler, darunter Visual C++ mit Compiler oder die GNU Compiler Collection (gcc). Auch in Embedded Systemen gebräuchlich.
    Nachteile: Komplizierte Typkonvertierung. Kleine Standard-Klassenbibliothek. Nicht so absturzsicher wie Java oder C#. Meistens werden Betriebssystemaufrufe verwendet, dann ist das Programm nicht mehr plattformunabhängig.

    "Egbert B. Gebstadter is the Egbert B. Gebstadter of indirect self-reference." - Egbert B. Gebstadter

  • C
    Eine prozedurale Sprache für alles hardwarenahe. Betriebssysteme sind durch die Bank in C geschrieben.
    Vorteile: schnell. berechenbar. Zeigerarithmetik. Stark in Embedded Systemen gebräuchlich.
    Nachteile: Der Programmierer hat alle Möglichkeiten und kann deshalb viel falsch machen. Nicht allzu leicht zu lernen. Nicht objektorientiert. Kleine Standard-Klassenbibliothek.
    Nicht unbedingt für Einsteiger zu empfehlen.

    "Egbert B. Gebstadter is the Egbert B. Gebstadter of indirect self-reference." - Egbert B. Gebstadter

  • Visual Basic (6 bzw. .NET)
    Visual Basic .NET, der Nachfolger der 6er-Version, benutzt das .NET-Framework und hat im Großen und Ganzen die gleichen Eigenschaften wie C#. Auch leicht zu lernen.
    Ein zusätzlicher Nachteil: Benutzt nicht die Java- bis C-Syntax (ist überall ziemlich gleich) und ist deshalb schwieriger zum Umlernen auf eine andere Sprache.
    VB 6 hat das .NET Framework noch nicht benutzt und war deshalb zwar einsteigerfreundlich, aber ebensowenig mächtig wie schnell, erweiterungsfähig oder objektorientiert. Ich hab damit angefangen.

    "Egbert B. Gebstadter is the Egbert B. Gebstadter of indirect self-reference." - Egbert B. Gebstadter

  • Das waren so die Sprachen, die hauptsächlich für Anwendungsentwicklung benutzt werden. Weniger bekannte (mir auch) Sprachen in dieser Hinsicht wären Smalltalk (objektorientiert, soll auch sehr gut sein) oder Ada (da kenn ich mich überhaupt nicht aus).

    Dann gäbe es da noch die Internet-Sprachen PHP und Perl, mit denen man so Sachen wie Datenbankzugriffe oder Mails schicken in Websites einbauen kann. HTML würd ich eher nicht als Programmiersprache bezeichnen, weils nur eine Beschreibungssprache ist.

    Und dann gibts da noch die diversen Exoten, in den Lehrveranstaltungen vom Software Engineering Zweig schnuppert man auch in logikorientierte Programmierung mit Prolog oder funktionale Programmierung mit Haskell hinein. Das unterscheidet sich dann schon stark von objektorientierten oder prozeduralen Sprachen.

    So, das reicht von meiner Seite, hat vielleicht irgendwer noch einen Smalltalk-Steckbrief?

    "Egbert B. Gebstadter is the Egbert B. Gebstadter of indirect self-reference." - Egbert B. Gebstadter

  • Wenn du ein Bakkalaureatsstudium auf der TU machst, lernst du am Anfang Java, wenn du das Studium auf der Hauptuni machst lernst du C++.

    :thumb: Geschrieben nach der alten, neuen und zukünftigen Rechtschreibung! :thumb:

  • Hi Elfe,

    Wenn du noch nie programmiert hast und etwas Zeit erübrigen kannst würde ich dir schon empfehlen ein paar einfache Programme zur Übung zu schreiben.

    Meine Sprachempfehlung ist Java, da es (relativ) einfach, sicher und weit verbreitet ist . Lade dir am besten eine frei verfügbare Entwicklungsumgebung herunter (alternativ auch eine Trial-Version von irgendeiner komerziellen) und besorg dir ein Java-Einsteiger Buch. (welches? siehe hier: http://hades.gothic.at/iforum/showthread.php?t=2777)

    Aber es ist nicht so sehr die Sprache die wichtig ist, einfach das Umgehen mit Sourcecode Files, der Ablauf editieren->compilieren->(linken)->testen und ein erster Eindruck von Datentypen (integer, float, string...) wird dir im ersten Semester schon enorm helfen.

    Viel Erfolg
    Sysmaniac

    Any sufficiently advanced technology is indistinguishable from magic.
    Arthur C. Clarke

  • Hallo
    Ich würde dir empfehlen mit C++ zu beginnen. Obwohl bei der Einführung VO an der TU Java benutzt wird, es wird dir nicht schwer sein damit du mit Java anfängst, wenn du C++ schon kannst. Und C++ hat mehrere Vorteile über Java, als Java über C++.

  • Zitat von DGA

    Und C++ hat mehrere Vorteile über Java, als Java über C++.

    Naja. Ansichtssache. Ja, C++ ist eine feine Sprache, und du kannst alles damit machen, was irgendwie machbar ist.

    Aber mich stört das eben, wenn ich nicht einfach strAndererString + "Literal" sagen kann und wenn ich 20 Zeilen Code aus dem Buch abtippen muss, bis ich ein Fenster mit API-Aufrufen herzaubern kann. Ja, das ist nicht die Schuld von C++ selbst, weil sich das alles beheben lasst, aber es ist nicht standardmäßig dabei. Mit .NET wirds wohl besser, da kann man die minimalistische Standardlibrary und die C-API-Aufrufe dann mit dem Framework kompensieren. Nur gehen dann halt die sonstigen C++-Vorteile teilweise den Bach runter.

    Im Prinzip sind die Sprachen eh alle gleich und unterscheiden sich nur in Objektorientierung, Klassenbibliotheken und ein paar Kleinigkeiten. Und ja, die Zeigerarithmetik geht mir in Java auch ab, trotzdem find ichs gemütlicher.

    "Egbert B. Gebstadter is the Egbert B. Gebstadter of indirect self-reference." - Egbert B. Gebstadter

  • Zitat von J.Petso


    Aber mich stört das eben, wenn ich nicht einfach strAndererString + "Literal" ...


    benutz STL

    Zitat von J.Petso


    ...
    Objektorientierung, Klassenbibliotheken und ein paar Kleinigkeiten.
    ...


    Generic Programming ist eine der wichtigste Punkte die C++ hat.

  • Um die Verwirrung komplett zu machen, würde ich C empfehlen, weil darauf basieren die meisten der besprochenen Sprachen :)

    [font=verdana,sans-serif]"An über-programmer is likely to be someone who stares quietly into space and then says 'Hmm. I think I've seen something like this before.'" -- John D. Cock[/font]

    opentu.net - freier, unzensierter Informationsaustausch via IRC-Channel!
    Hilfe und Support in Studienangelegenheiten, gemütliches Beisammensein, von und mit Leuten aus dem Informatik-Forum!

  • meiner meinung ist es fast egal womit du beginst, am anfang solltest du drauf schauen, dass du die grundkonstrukte wie if else, loops, case etc. verstehen lernst, weil wenn du das einmal verstanden hast ist egal mit welcher sprache du programmieren sollst.. in der einen schreibt man das so und in der anderen anders....

    wie wärs mit python :)

    was sind die vorteile dieser sprache:
    -) keine typen werden deklariert
    -) einfaches einlesen von daten, was man von java nicht behaupten kann
    -) in Python wird ein block nicht durch klammern markiert sondern durch eine indentierung des codes, viele finden die klammern besonders am anfang verwirend..

    jo das wärs meiner seits

    Ain't over till it's over!
    Yogi Bera

    women and children can afford to be careless, men can't

  • Zitat von Humulus


    [...]
    -) keine typen werden deklariert
    -) in Python wird ein block nicht durch klammern markiert sondern durch eine indentierung des codes, viele finden die klammern besonders am anfang verwirend..

    Ich würde genau deswegen nicht mit Python beginnen. An Klammerung sollte sich ein Programmierneuling gewöhnen, lieber gleich als später. Nachher mal auf Python umzusteigen ist nett, aber am Begin finde ich es wichtig zu lernen, dass die Einrückung eben keine Bedeutung für den Ablauf des Programms hat.

    lg
    Sysmaniac

    Any sufficiently advanced technology is indistinguishable from magic.
    Arthur C. Clarke

  • Zitat von DGA


    benutz STL
    bzw.
    Generic Programming ist eine der wichtigste Punkte die C++ hat.

    Beides richtig. Bin ich froh, dass ich keine Richtig- oder Vollständigkeitsgarantien abgebe...

    Die Klammern find ich sowieso viel übersichtlicher. Das nervt mich z.B. in Haskell (auch mit Einrückung) irrsinnig, dass ich den Code nicht so formatieren kann, wie ich gern würde. Ja.

    "Egbert B. Gebstadter is the Egbert B. Gebstadter of indirect self-reference." - Egbert B. Gebstadter

  • Zitat von hal

    Um die Verwirrung komplett zu machen, würde ich C empfehlen, weil darauf basieren die meisten der besprochenen Sprachen :)


    dem kann ich mir nur anschießen!
    wenn es dann mit C klappt, würde ich dann lernen (baut auch sehr auf C auf, ist aber viel mächtiger)

  • Zitat von Eristoff

    wenn es dann mit C klappt, würde ich dann lernen (baut auch sehr auf C auf, ist aber viel mächtiger)

    Syntax error: missing expression

    [font=verdana,sans-serif]"An über-programmer is likely to be someone who stares quietly into space and then says 'Hmm. I think I've seen something like this before.'" -- John D. Cock[/font]

    opentu.net - freier, unzensierter Informationsaustausch via IRC-Channel!
    Hilfe und Support in Studienangelegenheiten, gemütliches Beisammensein, von und mit Leuten aus dem Informatik-Forum!

  • Ui... also jetzt bin ich wirklich ein bisschen überfordert :)
    das hat man nun davon, wenn man nur 1 Stunde Informatik pro Woche hat, und da
    werden Dinge gemacht wie Tabellen in Microsoft Excel erstellen.

    Ihr habt mir wirklich weitergeholfen... aber jetzt habe ich wohl die Qual der Wahl?
    Also, ich glaube, ich werde mein Glück mit C++ versuchen, obwohl Java vielleicht auch
    keine schlechte Wahl wäre... aber ich denke, bei C++ habe ich ein gutes Gefühl.
    Dann mal auf ins Vergnügen.

    Vielen Dank an euch alle!
    Eure kleine Elfe

  • Nur nicht entmutigen lassen.. Hauptsache du fängst irgendwo an :thumb:

    Otto: Apes don't read philosophy. - Wanda: Yes they do, Otto, they just don't understand
    Beleidigungen sind Argumente jener, die über keine Argumente verfügen.
    «Signanz braucht keine Worte.» | «Signanz gibts nur im Traum.» 

    Das neue MTB-Projekt (PO, Wiki, Mitschriften, Ausarbeitungen, Folien, ...) ist online
    http://mtb-projekt.at

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!