"Sprache der Zukunft"

Gast #2046208
Lesenswert?

Hallo, ich weiß nicht genau, ob das Thema hier hinein passt, aber ich 
probier es einfach mal.
Und zwar fange ich bald an Informatik zu studieren. Ich will mich dabei 
allerdings hauptsächlich aufs Programmmieren konzentrieren. Bis jetzt 
hab ich nur Erfahrungen mit C# und µC Programmmierung gehabt. Und das 
waren auch nur kleinere Spielereien, also nichts großartiges. Ich möchte 
mein WIssen beim Studium vertiefen, weil mir Programmieren sehr viel 
Spaß macht, speziell grafisch orientierte Sprachen.

Und jetzt meine Frage:
Auf welche Programmiersprache sollte man sich am besten konzentrieren? 
Oder besser gesagt, in welcher Programmiersprache seht ihr am meisten 
Zukunft, Java, C#, C++, Python etc.. ?

Danke schon mal im Vorraus
#2046213
Lesenswert?

Die Zukunft im Bereich Windows liegt eindeutig bei C# und .NET basierten 
Sprachen.

Trotzdem ist C/C++ zum Programmieren-lernen IMHO das Beste. Wenn du 
C/C++ kannst, ist der Umstieg auf andere Sprachen nur noch ein 
Nachschauen in der Referenz der jeweiligen Sprache, welche Syntax 
bestimmte Dinge haben.
Gast #2046215
Lesenswert?

Man kann zu dieser Frage nur Meinungen haben, aber keine definitive 
Antwort geben. Welche Sprache in welchem Bereich modern, angesagt, 
gefordert oder möglich ist, hängt von Werbung, wieder Meinungen, 
persönlichen Vorlieben von Vorgesetzten oder Kunden ab. In der Praxis 
wählt man die aus, die für das Problem am geeignetsten ist.

Aber im Studium hast Du in der Regel sowieso nicht die Wahl der 
Programmiersprache, abgesehen von Kursen die nicht für den Schein 
notwendig sind. Wenn ein Pflichtkurs "Imperative Programmierung" 
vorgesehen ist, mag der in C oder in Pascal ablaufen, wobei C recht 
wahrscheinlich ist. Der Kurs "Objektorientierte Programmierung" läuft 
evtl. in C++ oder in Java. Wie auch immer: das schreibt der Professor 
vor. Du kannst es Dir (in der Regel) nicht aussuchen.

Also mach Dir erstmal darüber keine Gedanken.
Gast #2046216
Lesenswert?

In der Literatur zur Weiterbildung von Softwareentwicklern wird häufig 
der Tipp gegebeb, jedes Jahr eine weitere Programmiersprache zu lernen. 
Das ist vielleicht zu viel des Guten. Aber mit einer allein kommt keiner 
ein Berufsleben lang durch.
#2046234
Lesenswert?

Maik Fox schrieb:
> Dann lern' Haskell. Das ist die perfekte Vorbereitung aufs
> Informatikstudium und befreit dich gleichzeitig von allen möglichen
> Illusionen diesbezüglich.

Lisp oder Scheme (was ein dialekt davon ist) sind auch sehr beliebt bei 
Profs der Theoretischen Informatik ;)

http://xkcd.com/224/
http://xkcd.com/297/

(Hab ich schon erwähnt, dass ich xkcd liebe?)

@TO:
Sprachen wirst du im Laufe der Zeit sehr viele lernen müssen.
Das wichtigste ist, dass man die zugrundeliegenden Paradigmen verstanden 
hat.
Dann kann man in jeder Sprache programmieren.
Das einzige Problem sind dann nur die Bibliotheken und APIs, in den man 
sich zurechtfinden muss.
Dafür gibt es das Internet und Referenzen.
Gast #2046239
Lesenswert?

Stefan schrieb:
> Und jetzt meine Frage:
> Auf welche Programmiersprache sollte man sich am besten konzentrieren?

Ich würde eine "klassische" Sprache empfehlen, die es schon lange gibt. 
Die sind meistens auch für sehr viele Plattformen verfügbar. Bei den 
neueren "Modesprachen" ist man da meist eingeschränkter.

Lord Ziu schrieb:
> Die Zukunft im Bereich Windows liegt eindeutig bei C# und .NET
> basierten Sprachen.

Allerdings ist nur ein kleiner Bruchteil der geschriebenen Software 
Windows-Software.
Gast #2046240
Lesenswert?

Stefan schrieb:
> Und zwar fange ich bald an Informatik zu studieren. Ich will mich dabei
> allerdings hauptsächlich aufs Programmmieren konzentrieren.

Dann lerne Programmieren! Ich hab' in fast 30 Jahren in der IT schon in 
Assembler, Basic, Pascal, Fortran, Pearl (die alte 
Prozeßrechner-Sprache), C, Cobol, REXX, Natural und Transact-SQL 
programmieren dürfen (und müssen) und in einige andere Sprachen (wie das 
moderne Pearl, Java und LISP) reingeschnuppert.
Wenn Du die Abläufe eines Programmierauftrages verinnerlicht hast, Du 
logisch denken kannst und Dir bei einem Problem sofort Ideen zur Lösung 
kommen, ist die Sprache nur erlernbarer Syntax und damit egal...
Gast #2046282
Lesenswert?

Erstmal danke für eure Antworten.

>Williwilli schrieb:
> Dann lerne Programmieren!
Das tue ich sehr gerne. Denn es macht mir Spaß und wenn man sich einmal 
auskennt ist es wirklich nicht schwer.

Wie schon viele erwähnt haben gilt es meistens nur die Grundstrukturen 
zu können, weil sich die verschiedenen Sprachen vom Prinzip her nicht 
sehr viel unterscheiden. Klar sind es andere Befehle, doch oft ist der 
Aufbau ja sehr ähnlich, zB bei C..

>Huch schrieb:
> Du kannst es Dir (in der Regel) nicht aussuchen.
Das ist mir schon klar. Ich habe nur gehofft, dass es diese eine Sprache 
gibt, die sehr sehr oft verwendet wird und die man als "Hauptsprache" 
bezeichnen kann. Wobei ich zugeben muss, dass die Hoffnung auf diese 
sehr sehr gering war.

>Rolf Magnus schrieb:
> Allerdings ist nur ein kleiner Bruchteil der geschriebenen Software
> Windows-Software.
Das denk ich mir auch. Deswegen würde ich mir bei C# auch nicht so 
sicher sein. Im endeffekt wird es glaub ich so sein wie Huch gesagt hat: 
Es hängt immer von der Situation hab.

Aber jedenfalls danke für eure Meinungen.
Persönliche Seite #2046370
Lesenswert?

Stefan schrieb:
> Aber jedenfalls danke für eure Meinungen.

Bitte bitte, auch wenn du meine total ignorierst.

Funktionale Sprachen sind ein bisschen anders als prozedurale. Du wirst 
im Studium auf jeden Fall mit dem Lambda-Kalkül in Kontakt kommen, zum 
Verständnis dessen kann es nicht schaden, sich vorher schonmal mit einer 
funktionalen Sprache wie Haskell auseinandergesetzt zu haben.

Und wer meint, die haben keine Praxisrelevanz... 
Telefonvermittlungssysteme werden zB in Eiffel programmiert. Vorteil: 
Automatisierbare Testbarkeit/Validierbarkeit inhärent vorhanden.
Moderator #2046527
Lesenswert?

Stefan schrieb:
> Ich habe nur gehofft, dass es diese eine Sprache gibt, die sehr sehr
> oft verwendet wird und die man als "Hauptsprache" bezeichnen kann.

Allgemein sehr oft verwendet werden Java und C, wie du dem Tiobe-Index
entnehmen kannst, wobei die genauen Prozentzahlen sicher abhängig von
den ausgewählten Bewertungskriterien sind.

Bevor du dich aber für deine "Hauptsprache" entscheidest, solltest du
dir überlegen, was deine potentiellen Hauptanwendungen und Interessens-
gebiete sind. Jeder Anwendungsbereich hat seine eigenen Hauptsprachen.
Beispiele:

- Web-Anwendungen: Java und PHP

- Steuerungstechnik: C und C++, im Low-Cost-Bereich fast nur C

- Büro- und ähnliche GUI-orientierten Anwendungen: C++, für Windows-
  Only-Anwendungen auch C#

- iPhone-Apps: Objective-C

- to be continued ...

Wenn du also Java, C, C++ und C# kannst, hast du schon einen sehr guten
Fundus. Die vier Sprachen liegen nicht so arg weit auseinader:

- Alle vier sind imperativ.

- Alle vier sind syntaktisch ähnlich.

- Drei davon sind objektorientiert.

Man kann also mit akzeptablen Aufwand alle vier Sprachen lernen. Je nach
Interesse oder Bedarf kommt dann noch eine Skriptsprache wie PHP, Python
oder Ruby dazu, die hat man aber sehr schnell gelernt.

Was die Zukunft bringt, ist schwer zu sagen. Sicher wird im Windows-
Bereich C# seinen Anteil zu Lasten von C++ und Java noch etwas erhöhen.
Des Weiteren ist ein leiser Trend hin zu Funktionalsprachen erkennbar(s.
auch Beiträge von Maik Fox), auch Microsoft hat da mittlerweile an
mehreren Stellen die Finger drin.
Gast #2046562
Lesenswert?

Maik Fox schrieb:
> Bitte bitte, auch wenn du meine total ignorierst.
Tut mir leid, wenn es so rübergekommen ist. Alles konnte ich nicht 
beantworten, allerdings habe ich mir jede Antwort gründlich 
durchgelesen. ALso so is es dann auch nicht :)

Yalu X. schrieb:
> Allgemein sehr oft verwendet werden Java und C
Das war auch meine Hoffnung. Denn da habe ich shcon Erfahrung und werde 
mir wahrscheinlich leicht tun (hoffe ich jedenfalls).
Klar wird man beim Studium mit sehr viel mehr Sprachen konfrontiert, 
doch am Ende kann man sich ja doch in irgendeiner Art und Weise seine 
Lieblingssprache aussuchen. Denn was ich so aus deinem Beitrag 
herauslesen kann wird jede Sprache irgendwo gebraucht.
#2061905
Lesenswert?

Stefan schrieb:
> Und zwar fange ich bald an Informatik zu studieren. Ich will mich dabei
> allerdings hauptsächlich aufs Programmmieren konzentrieren.

Scherz am Morgen vertreibt Kummer und Sorgen. :-)
Ich habe nichts studiert, aber nachdem was ich so gehört habe sollte man 
sich im Informatikstudium vorwiegend auf Mathematik konzentrieren.

> Und jetzt meine Frage:
> Auf welche Programmiersprache sollte man sich am besten konzentrieren?
> Oder besser gesagt, in welcher Programmiersprache seht ihr am meisten
> Zukunft, Java, C#, C++, Python etc.. ?

Wenn's nicht so sehr um die zukünftige kommerzielle Anwendung sondern 
eher um die Erweiterung des Geistes in Sachen Programmierung geht, dann 
kann ich nur Ruby wärmstens empfehlen.

Es ist nämlich schon eine feine Sache eine dynamisch typisierende 
Sprache zu haben, mit der man Dinge wie folgendes tun kann:
1
colors = ["rot", "gelb", "gruen", "blau"]
2
3.times do
3
  colors.each do |x|
4
    puts "Farbe: " + x
5
  end
6
  puts "Gewuerfelt: " + rand(6).to_s
7
end
Gast #2061999
Lesenswert?

Иван S. schrieb:
> Es ist nämlich schon eine feine Sache eine dynamisch typisierende
> Sprache zu haben, mit der man Dinge wie folgendes tun kann:
> colors = ["rot", "gelb", "gruen", "blau"]
> 3.times do
>   colors.each do |x|
>     puts "Farbe: " + x
>   end
>   puts "Gewuerfelt: " + rand(6).to_s
> end

Damit käme ich überhaupt nicht zurecht. Wie mit allem was keine Syntax 
wie c(#/++) hat.
Gast #2062247
Lesenswert?

So als Ansatz für neue Gedanken:
Vielleicht wird die "Sprache der Zukunft" für die meisten 
SW-Entwickler gar keine mehr. Es wird ja immer mehr 'modellbasiert' 
entwickelt, ohne MatLab bekommen die Automotivler doch gar kein 
Steuergeräte mehr zum Laufen.
Es entwickeln vielleicht irngendwann (demnächst?) nur noch einige wenige 
Modellierungssoftware und der Rest schubst Bilder über den Bildschirm.
Gast #2062261
Lesenswert?

ole schrieb:
> Es entwickeln vielleicht irngendwann (demnächst?) nur noch einige wenige
> Modellierungssoftware und der Rest schubst Bilder über den Bildschirm.

Genau, und der PC der Zukunft hat nur noch eine Taste und kann auch von 
jedem 85 jährigen bedient werden :-)
Das haben die 'Zukunftsforscher' und Marktstrategen auch schon früher 
versprochen.
Jeglicher Fortschritt in den Werkzeugen wird sofort durch die erhöhte 
Komplexität der Aufgaben wieder aufgefressen. Ist wie mit der PC 
Leistung. Früher hat das Starten meines PC-XT mit 4,77 MHz und 360K 
Diskette nicht länger gedauert als das XP auf meinem Firmen-PC, im 
Gegenteil.
Gast #2062516
Lesenswert?

@ole

Diese Sau wird doch alle Jahre wieder neu durchs Dorf getrieben. Und 
selbst wenn man in 20 Jahren nur noch "modellbasiert" UML-Diagramme o.ä. 
zusammenbastelt, wird das in Sachen Komplexität nicht anders als heute 
sein. Ich bezweifle diese Entwicklung aber, nichts ist so effizient und 
gleichzeitig so einfach wie textbasierte Programmierung.

Als Sprachempfehlung werfe ich ebenfalls Python in den Raum.
Gast #2062649
Lesenswert?

Man sollte sich bei Programmiersprachen immer eins vor Augen halten: Es 
ist nur ein Werkzeug. Man kann Schrauben auch mit dem Hammer in die Wand 
schlagen, aber auch hier gibt es 2-3 bessere Werkzeuge ;-)

In meinem Studium (INF) hat man mir als erstes folgenden Satz gesagt: 
"Eine Programmiersprache ist für einen Informatiker das gleiche wie das 
Teleskop für einen Astronomen".

Also hat man uns möglichst breit "geschult" - auf dem Plan stand Java 
detailiert, C, und Lisp - bei den Datenbanken Vorlesungen wurde neben 
SQL auch auf Prolog eingegangen. Webtechnologien wurden komischerweise 
aber vorrausgesetzt bzw. als nebenbei erlernbar abgestempelt.

Mittlerweile muss ich echt sagen, das das wichtigste ist, alles mal 
gesehen zu haben - so kann man sich in eine beliebige Sprache recht 
schnell hinneinarbeiten (ging mir mit C# so).

Kurz gesagt: Nicht auf eine Sprache versteifen - es sei denn, du baust 
später mal Compiler ;-)
Gast #2062753
Lesenswert?

Stryker schrieb:
> Kurz gesagt: Nicht auf eine Sprache versteifen - es sei denn, du baust
> später mal Compiler ;-)

ich schätze, dass viele "Anfänger" diesen Fehler begehen. Es ist an
sich auch erstmal kein Fehler sich "auf eine Sprache zu versteifen".
10 Jahre später blickt man ganz anders darauf ...
Das Non-Plus-Ultra "Sprache der Zukunft" (ich muss schmunzeln :)
wird es nicht geben. Was es gibt, sind Sprachen mit interessanten
Konzepten. Als Tipp würde ich mitgeben .. wenn du eine neue Sprache
lernst und begreifst alle Konzepte auf Anhieb, dann lernst du
eigentlich nur neue Syntax und das ist es nicht Wert.
Moderator #2062866
Lesenswert?

daniel(root) schrieb:
> Als Tipp würde ich mitgeben .. wenn du eine neue Sprache
> lernst und begreifst alle Konzepte auf Anhieb, dann lernst du
> eigentlich nur neue Syntax und das ist es nicht Wert.

Da ist was dran.

Man sollte im Informatikstudium eigentlich keine Programmiersprachen
lernen, sondern Programmierkonzepte. Die Konzepte für sich gesehen sind
aber nur trockene Theorie. Um zu verstehen, wie man sie gewinnbringend
einsetzt, braucht man zusätzlich Anwendungsfälle und eine Programmier-
sprache, die die Realisierung der Konzepte erlaubt. Insofern ist das
Erlernen einer Programmiersprache auch innerhalb eines wissenschaftlich
orientierten Studiums doch wieder sinnvoll.

Man kann sich jetzt die interessante Frage stellen, wieviele Sprachen
man mindestens lernen muss, um damit alle oder zumindest die allermeis-
ten Programmierkonzepte einsetzen zu können.

Die Frage ist natürlich ohne die Angabe, was man alles zu den Konzepten
zählt, etwas schwammig. Trotzdem liegt man mit der Antwort "1" sicher
nicht ganz verkehrt: Es gibt nämlich nur ganz wenige Programmierkonzep-
te, die in Common Lisp nicht realisiert und sogar standardisiert sind.

Auch wenn Common Lisp keine Mainstream-Sprache ist und deswegen kaum
direkt im Berufsleben eingesetzt werden kann, wird ein erfahrener Lisp-
Programmierer praktisch jede andere Sprache in kürzeseter Zeit erlernen
und effektiv nutzen können. Ich meine einmal gelesen zu haben, dass an
einigen amerikanischen Unis Lisp (vielleicht nicht gerade CL, aber ir-
gendwelche abgespeckten Dialekte) als erste Programmiersprache gelehrt
wird.
Gast #2062867
Lesenswert?

Schon erstaunlich wieviel geballte Blindheit hier vertreten ist.
Ich habe hier nicht einmal MDA gelesen. Auch wenn es vielen hier
vielleicht nicht gefällt, aber in Zukunft wird nun mal modellbasierte
Codegenerierung den größten Stellenwert einnehmen. Da heutzutage
schon über 90% des Codes generiert werden kann, wird sich dieser
Trend weiter fortsetzen. Ob nun C++, Java, oder schlag mich tot
aus dem Codegenerator rauskommt ist von der Anwendung abhängig und
kann nicht pauschalisiert werden.
Gast #2062886
Lesenswert?

Und die immer komplexeren Codegeneratoren fallen dann vom Himmel -- 
Problem gelöst.

Um unmittelbar auf dir ursprüngliche Frage zu antworten:
Erfinde deine eigene. Ne, kein Scherz: An einer mir bekannten 
Universität fordert z.B. einer der Professoren, dass Programme während 
der Vorlesung/den Klausuren in einer von ihm erfundenen 
Programmiersprache verfasst werden. Warum auch nicht -- ist doch alles 
nur 'syntactic sugar'.

Fundamental interessant wirds, wenn man sich mal aufrafft und LISP 
programmiert, oder Haskell, will sagen, wenn man ein grundlegend anderes 
Programmierparadigma ausprobiert.

Unterm Strich ist es doch sowas von egal, ob Microsoft mir 'gcnew' 
konstruiert, STL mir ein abstraktes 'new' anbietet oder ob ich 
'malloc()' benutze. Solche Sachen machen eine Sprache mehr oder weniger 
umständlich für den Programmierer, aber wirklich interessant ist das 
doch alles nicht. Beschissen sind alle Varianten, ob die Latrine nun 
pink oder himmelwölkchenblau angemalt ist.
Gast #2062901
Lesenswert?

Sven P. schrieb:
> Unterm Strich ist es doch sowas von egal, ob Microsoft mir 'gcnew'
> konstruiert, STL mir ein abstraktes 'new' anbietet oder ob ich
> 'malloc()' benutze. Solche Sachen machen eine Sprache mehr oder weniger
> umständlich für den Programmierer, aber wirklich interessant ist das
> doch alles nicht. Beschissen sind alle Varianten, ob die Latrine nun
> pink oder himmelwölkchenblau angemalt ist.

Der war gut :)))

Zum Programmierparadigma:
Da in Zukunft (und auch heute schon) für viele Anwendungen im Feld
mehrere Prozessoren vorhanden sein werden (Klassifizierung nach Flyn),
muss sich die Denkweise beim Programmieren sowieso ändern und damit
wohl auch die Semantik der Sprachen. Auf dauer werden heutige Lösungen
wie OpenMP etc. die den sequentiellen Code ergänzen nicht existieren.
Zumindest nicht wenn sich der Speedupfaktor nach Amdahls Law in Richtung
des Gustafson´schen Gesetztes entwickeln soll.
Moderator #2062945
Lesenswert?

Daniel schrieb:
> Schon erstaunlich wieviel geballte Blindheit hier vertreten ist.
> Ich habe hier nicht einmal MDA gelesen.

Damit scheinst du recht zu haben, deswegen möchte ich deinem Augenlicht
ein wenig nachhelfen:

  Beitrag "Re: "Sprache der Zukunft""
  Beitrag "Re: "Sprache der Zukunft""

;-)

> Da heutzutage schon über 90% des Codes generiert werden kann, wird
> sich dieser Trend weiter fortsetzen.

Hmm, woher hast du diese Zahl? Die stimmt doch höchstens dann, wenn man
auch den von gewöhnlichen Compilern generierten Assembler- bzw. Maschi-
nencode mit hinzuzählt.
Gast #2063104
Lesenswert?

Das ist ein Wert aus dem Embedded Bereich. Hier wird basierend auf einer 
Plattform (welche im einfachsten Fall aus einem messagebasierten 
Scheduler und Input- sowie Outputhandlern besteht), die bei den 90% 
nicht mit eingerechnet ist, aus den language units Klassendiagramm + 
Zustandsautomaten der UML 2.0 ausführbarer C-Code + Konfigurationsscript 
generiert (über XMI).
Kommerzielle Codegeneratoren sind bekannt (bekanntester ist wohl IBM 
rational rhapsody), allerdings kann mit etwas intel. auch ein eigener
Codegenerator geschrieben werden, was in den meisten Fällen auch am
sinnvollsten ist, da somit auf intern vorliegenden wiederverwendbaren 
Code rücksicht genommen werden kann.
Gast #2063114
Lesenswert?

Hab noch was vergessen: Es ist dabei durchaus möglich, dass das System 
erst zur Laufzeit angelegt wird über die Methode/Klasse eines Erbauers 
spezifiziert durch die GOF Design Patterns (Gang Of Four).
Voraussetzung ist ein reaktives System (ansonsten wirds hässlich)!

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren