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
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.
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.
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.
Stefan schrieb: > Und zwar fange ich bald an Informatik zu studieren. Ich will mich dabei > allerdings hauptsächlich aufs Programmmieren konzentrieren. Dann lern' Haskell. Das ist die perfekte Vorbereitung aufs Informatikstudium und befreit dich gleichzeitig von allen möglichen Illusionen diesbezüglich.
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.
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.
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...
Williwilli schrieb: > Pearl (die alte Prozeßrechner-Sprache) PEARL Williwilli schrieb: > wie das moderne Pearl meinst du damit PEARL-90 oder Perl (Scriptsprache)
Python wird auch immer beliebter. Aber es kommt immer darauf an was du programmieren willst. http://www.heise.de/developer/meldung/TIOBE-Index-Python-ist-Programmiersprache-2010-1166165.html
Vlad Tepesch schrieb: > Williwilli schrieb: >> Pearl (die alte Prozeßrechner-Sprache) > PEARL Jep. > Williwilli schrieb: >> wie das moderne Pearl > meinst du damit PEARL-90 oder Perl (Scriptsprache) Letzteres...
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.
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.
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.
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.
Maik Fox schrieb: > Dann lern' Haskell. Das ist die perfekte Vorbereitung aufs > Informatikstudium und befreit dich gleichzeitig von allen möglichen > Illusionen diesbezüglich. Ich werde es mir auf jeden Fall mal anschauen. Danke
ich seh das auch so, beste sprache ist nicht..... gibt nur die am besten zum projekt passende siehe anhang
@chris nö. hat mir mein bruder mal zukommen lassen. ist ein alter gag unter hardwarenahen proggis Grüße
C# :-) schrieb: > ist ein alter gag unter > hardwarenahen proggis na so alt kann der ja nicht sein, die Sahra Palin und Putin Bilder sind ja nicht so alt. Trotzdem nett. Aber was ist das in der Ruby/PHP Zelle?
Vlad Tepesch schrieb: > Aber was ist das in der Ruby/PHP Zelle? =>http://en.wikipedia.org/wiki/Flying_Spaghetti_Monster
Mars schrieb: > Vlad Tepesch schrieb: >> Aber was ist das in der Ruby/PHP Zelle? > > =>http://en.wikipedia.org/wiki/Flying_Spaghetti_Monster Ok, danke. Ich kenne dieses FSM zwar und dessen Hintergrund, aber das Bild war mir neu. Wär auch nie auf die Idee gekommen, dass das Spaghetti sein sollen.
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 |
Иван 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.
Иван S. schrieb: > Ich habe nichts studiert, aber nachdem was ich so gehört habe sollte man > sich im Informatikstudium vorwiegend auf Mathematik konzentrieren. Hab ich auch gehört. Doch darüber mache ich mir keine Sorgen. Mathematik ist nämlich nicht so schwer wie alle tun ;)
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.
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.
@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.
greg schrieb: > Als Sprachempfehlung werfe ich ebenfalls Python in den Raum. Wobei man da die Effizienz vergessen kann.
Samuel K. schrieb: > Wobei man da die Effizienz vergessen kann. die computer werden doch nicht umsonst immer schneller.
Jetzt muss ich mich mal zu Wort melden, denn der ganze Thread geht mE. am Thema vorbei. Programmieren ist in der Informatik nur Handwerkszeug. Das macht im Studium vielleicht 10% aus. Mathe wird ganz sicher eine ganz andere Herausforderung. Aber dann gibts da auch noch die ganze trockene Materie wie Datenbanken, System-Engineering, Recht, .......
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 ;-)
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.
Vlad Tepesch schrieb: > die computer werden doch nicht umsonst immer schneller. Es wird aber auch immer mehr LEistung gefordert. Mit Python gibst du die Hälft davon dem Interpreter.
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.
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.
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.
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.
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.
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.
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)!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.