Habe ich nicht erwähnt, das Haskell ein Exot ist?
Ankündigung
Einklappen
Keine Ankündigung bisher.
Aktuelle wichtige Programmiersprachen
Einklappen
X
-
Zitat von Albedo Beitrag anzeigenHabe ich nicht erwähnt, das Haskell ein Exot ist?können wir nicht?
macht nix! wir tun einfach so als ob!
Kommentar
-
Zitat von blueflash Beitrag anzeigenWonach bemisst du das? Anyway, in _keiner_ funktionalen Sprache gibt es for Schleifen. In anderen deklarativen Sprachen mag es sie geben, da haben sie aber eine andere Semantik.
In spannenden Gebieten wie Forschung, Lehre und Emacs-Konfiguration sieht das natürlich gleich wieder ganz anders aus.
Kommentar
-
Zitat von StormkingAlbedo hat aber ganz recht.können wir nicht?
macht nix! wir tun einfach so als ob!
Kommentar
-
Zitat von blueflash Beitrag anzeigenDer Punkt ist halt, dass dieses "lerne eine Sprache, dann beherrschst du im Grunde alle" eine sehr heikle Aussage ist, da z.B. einfachste Rekursion ein durchaus wichtiges Konzept ist, dass man durch OO eher weniger benutzt. Stürzt man sich also auf eine einzelne Sprache, gehen mitunter wichtige Konzepte verloren (Higher Order Functions z.B.)
Kommentar
-
Zitat von Aramis Beitrag anzeigenich habe zwar von dem Geschriebenen hier irgendwie nur die Hälfte verstanden
Kommentar
-
Zitat von Aramis Beitrag anzeigenNa toll... ich habe zwar von dem Geschriebenen hier irgendwie nur die Hälfte verstanden, aber einige sachen waren ganz hilfreich... danke...
Die in diesem Thread getätigten Aussagen bzgl. Paradigmen, Datenstrukturen etc. sind ja durchaus richtig, gehen aber für die meisten Hobby-Programmierer ziemlich weit an der Realität vorbei. Ich kenne durchaus einige Leute die beeindruckende Anwendungen in Visual Basic geschrieben haben und bis heute nicht im geringsten wissen was funktionale Programmierung ist. Das ist aber dann auch nicht weiter schlimm, da sie ihre Anwendungen trotzdem schreiben konnten.
Für den Otto-Normal Hobbyprogrammierer sind wohl Sprachen und IDEs am geeignetsten, die sich leicht erlernen lassen und dank großer Standard-Bibliotheken bzw. Frameworks und Entwicklungsumgebungen einem viel Arbeit abnehmen; Früher war das VB ziemlich verbreitet (zum Teil ja immer noch), heute eben mehr Java, C#, z.T. Delphi, im Web PHP und Python. Und die meisten Hobby-Programmierer stehen auch ziemlich auf grafische Benutzeroberflächen, und da führt eine IDE auch meistens leichter zum Ziel als wie wenn man eine Sprache und ein Framework von Grund auf lernen muss. Das ist zwar empfehlenswert, aber viele Leute mangels sichtbarer Erfolge schnell wieder das Interesse.
Und mächtig sind die meisten genannten Programmiersprachen, auch mit C# und Java lassen sich theoretisch ganze Betriebssysteme schreiben, wobei C(++) hier sicher seine Vorteile hat. Aber ich persönlich muss sagen, dass ich mit C/C++ für den normalen Hausgebrauch nicht antun würde, weil der Mehraufwand in meinen Augen schlichtweg nicht rentabel ist.
Kommentar
-
Zitat von Enterprise X Beitrag anzeigenAber ich persönlich muss sagen, dass ich mit C/C++ für den normalen Hausgebrauch nicht antun würde, weil der Mehraufwand in meinen Augen schlichtweg nicht rentabel ist.
Ob der Hobbyprogammierer die Objekte, die man bei Java oder C# durch die Gegend wirft, soviel besser nachvollziehen kann, ist natürlich Geschmackssache.
Nichtsdestotrotz ist bei einer objektorientierten Sprache wie Java, C# usw. die Lernkurve oder besser gesagt das Konzept das dahinter steckt, also "was ist eine Klasse, was ist eine Instanz und wo ist der Unterschied, wie interagieren Objekte miteinander usw." auch nicht zu verachten.
Da kann ein imperativer Programmfluß wie ihn C bietet für den Einsteiger durchaus auch ein Segen sein, insbesondere wenn ihm einfache Konsolenprogramme genügen.
Und falls sein Hobbybereich mehr mit Elektrotechnik zu tun haben sollte, dann wird er um C sowieso kaum herumkommen, wenn er die ersten Mikroprozessoren auf seiner Platine programmieren will.Zuletzt geändert von Cordess; 07.11.2010, 07:23.
Kommentar
-
Das mag in der Tat durchaus ein Vorteil sein der das ganze einfacher macht, allerdings frage ich mich ob es sich auf längere Sicht rentiert einen Bogen um die Objektorientierung zu machen. Und in den meisten Büchern zu Programmiersprachen wird das ganze ja auf eine durchaus verständliche Weise Schritt für Schritt erklärt, und gerade bei etwas größeren Anwendungen kann sich Objektorientierung doch sehr schnell auszahlen.
Für normale Desktop-Anwendungen, sei es Konsole, sei es mit GUI, ist für mich C in erster Linie Zielcode, statt Quellcode. Vor allem wenn man mal bedenkt wie viele Anwendungen professionell entwickelt wurden, von Leuten die es eigentlich können müssten, und Memory-Leaks haben kommen mir eben Zweifel ob es für den Heimgebrauch eine ideale Sprache ist.
Ansonsten kommt es natürlich meistens auf den Verwendungszweck an welche Sprache man am besten wählt. Zu Elektrotechnik kann ich kann ich nicht sagen was State of the Art ist, aber vermutlich wird's wohl wirklich nur C sein. Im serverseitigen Web ist man wohl mit PHP und Python ganz gut beraten, da es fast überall läuft, auf der Client-Seite mit Java Script und Action Script oder was eben sonst noch im Browser läuft.
Auf was ich eigentlich raus wollte ist, dass man sich wenn man gewisse Projektziele im Rahmen eines Hobbys verwirklichen will, wohl am besten Beraten ist eine konkrete Sprache und ein dazu passendes Framework und eine passende Entwicklungsumgebung, wie auch immer geartet, zu erwählen und das wirklich zu lernen und zu üben, am besten wohl zusammen mit einem guten Buch. Denn da liegt ja die größte Schwierigkeit letztendlich, die meisten verbreiteten imperativen Sprachen unterscheiden sich zwar in der Syntax, funktionieren im Grunde genommen aber noch relativ ähnlich, so dass man eine andere Sprache relativ leicht erlernen kann.
Die wirklichen Probleme kommen dann ja in der Praxis. Der Quellcode in PHP, Java, und C# von mir aus auch noch in C sieht auf den ersten Blick ja relativ ähnlich aus, und wird nach längerem hinsehen wohl für jeden der Programmieren kann verständlich sein. Aber für ein konkretes Projekt muss man eben an die ganzen Feinheiten der Sprache erst mal gewöhnen, sich in die Standard-Bibliothek einarbeiten, sich überlegen wie ich mit dem Benutzer interagiere (HTML, Flash, Swing, Windows Forms, Qt, Konsole, gar nicht?), an die IDE gewöhnen und und und. Das ist nämlich in meinen Augen ein ziemlicher Mehraufwand, vor allem auch an Zeit, der für einen Hobby-Programmierer doch nicht ganz vernachlässigbar ist, so dass man sich vorher wirklich überlegen sollte was man eigentlich programmieren will.
Kommentar
-
Zitat von Enterprise X Beitrag anzeigenDas mag in der Tat durchaus ein Vorteil sein der das ganze einfacher macht, allerdings frage ich mich ob es sich auf längere Sicht rentiert einen Bogen um die Objektorientierung zu machen.
Kleinere Projekte sind mit imperativen Programmiersprachen wie C noch sehr gut zu meistern.
Für reine GUI Anwendungen würde ich aber, wie ich schon erwähnte, einem Hobbyprogrammierer Python empfehlen und wenn man C und Python kombiniert, dann hat man eigentlich schon eine sehr gute Ausgangslage.
Also Python für die GUI und C unter der Haube, wenn es hardwarenah, schnell oder effizient sein soll.
Und in den meisten Büchern zu Programmiersprachen wird das ganze ja auf eine durchaus verständliche Weise Schritt für Schritt erklärt, und gerade bei etwas größeren Anwendungen kann sich Objektorientierung doch sehr schnell auszahlen.
Meine erste Erfahrungen die ich mit Java gesammelt habe, und davor programmierte ich schon mit C und Pascal, waren mit dem Buch "Java als erste Programmiersprache" und diesen Buch ist eigentlich für den Einstieg in die Objekt Orientierte Programmierung nicht zu gebrauchen, als Nachschlagewerk mag es ganz brauchbar sein, wofür auch die Rezensionen bei Amazon sprechen aber als Lehrbuch und Einstieg in die OO kann man es in die Tonne treten. Der Titel von dem Buch ist eine Frechheit.
Klick hat es bei mir dann bezügl. der OOP erst gemacht, als ich mir ein Buch zu UML kaufte, denn da wurde das Konzept nicht nur durch die UML symbolisch vermittelt, sondern es gab auch gleich noch brauchbaren Beispielcode, den es in obigem Buch nicht gab.
Das mit den größeren Anwendungen ist richtig, da zahlt sich die OOP durchaus aus, aber schreibt man als Hobbyprogrammierer größere Anwendungen? Ich würde das bezweifeln. Dafür dürfte ja schon die Zeit fehlen. So ganz in der Freizeit neben einem Vollzeitjob der vielleicht gar nichts mit Programmieren zu tun hat.
Für normale Desktop-Anwendungen, sei es Konsole, sei es mit GUI, ist für mich C in erster Linie Zielcode, statt Quellcode. Vor allem wenn man mal bedenkt wie viele Anwendungen professionell entwickelt wurden, von Leuten die es eigentlich können müssten, und Memory-Leaks haben kommen mir eben Zweifel ob es für den Heimgebrauch eine ideale Sprache ist.
Die Memory-Leaks bei C kriegt man aber heutzutage mit Tools wie Valgrind sehr gut in den Griff. Ich kann Valgrind wärmstens empfehlen.
Zu Elektrotechnik kann ich kann ich nicht sagen was State of the Art ist, aber vermutlich wird's wohl wirklich nur C sein.
da hat man für das Programm recht wenig Ressourcen zur Verfügung und
bezügl. Compiler gibt es oft nicht mehr als C Compiler. Außerdem ist eine hardwarenahe Programmierung wichtig, C bietet diese.
Ganz selten gibt's dann auch mal die Möglichkeit in Basic zu programmieren,
zumindest findet man so etwas in den diversen Katalogen für Elektotechnikbegeisterte, aber das dürfte dann auch eher im Hobbybereich angesiedelt sein. In der Industrie dürfte C der Normalfall sein.
Im serverseitigen Web ist man wohl mit PHP und Python ganz gut beraten, da es fast überall läuft, auf der Client-Seite mit Java Script und Action Script oder was eben sonst noch im Browser läuft.
PHP ist hier eher vorwiegend nur für das Web geeignet.
Ein Vorteil von PHP gegenüber Python ist anderseits, daß man mehr Webserverangebote findet, die PHP Support bieten, das ist zugegeben ein Vorteil von PHP. Wobei sich das in der Zwischenzeit auch geändert haben kann.
Auf was ich eigentlich raus wollte ist, dass man sich wenn man gewisse Projektziele im Rahmen eines Hobbys verwirklichen will, wohl am besten Beraten ist eine konkrete Sprache und ein dazu passendes Framework und eine passende Entwicklungsumgebung, wie auch immer geartet, zu erwählen und das wirklich zu lernen und zu üben, am besten wohl zusammen mit einem guten Buch. Denn da liegt ja die größte Schwierigkeit letztendlich, die meisten verbreiteten imperativen Sprachen unterscheiden sich zwar in der Syntax, funktionieren im Grunde genommen aber noch relativ ähnlich, so dass man eine andere Sprache relativ leicht erlernen kann.
Die wirklichen Probleme kommen dann ja in der Praxis. Der Quellcode in PHP, Java, und C# von mir aus auch noch in C sieht auf den ersten Blick ja relativ ähnlich aus, und wird nach längerem hinsehen wohl für jeden der Programmieren kann verständlich sein. Aber für ein konkretes Projekt muss man eben an die ganzen Feinheiten der Sprache erst mal gewöhnen, sich in die Standard-Bibliothek einarbeiten, sich überlegen wie ich mit dem Benutzer interagiere (HTML, Flash, Swing, Windows Forms, Qt, Konsole, gar nicht?), an die IDE gewöhnen und und und. Das ist nämlich in meinen Augen ein ziemlicher Mehraufwand, vor allem auch an Zeit, der für einen Hobby-Programmierer doch nicht ganz vernachlässigbar ist, so dass man sich vorher wirklich überlegen sollte was man eigentlich programmieren will.
Es wäre am besten, wenn der TS mal konkret nennen könnte, welches Hobbyprojekt ihm so vorschwebt.
Kommentar
-
Zitat von Cordess Beitrag anzeigenIch denke schon, weil ich davon ausgehe, daß Hobbyprojekte sowieso nie echte Großprojekte werden und dann ist C Code eigentlich noch recht gut überschaubar.
Kleinere Projekte sind mit imperativen Programmiersprachen wie C noch sehr gut zu meistern.
Für reine GUI Anwendungen würde ich aber, wie ich schon erwähnte, einem Hobbyprogrammierer Python empfehlen und wenn man C und Python kombiniert, dann hat man eigentlich schon eine sehr gute Ausgangslage.
Also Python für die GUI und C unter der Haube, wenn es hardwarenah, schnell oder effizient sein soll.
Nur wenn es eben nicht gerade um Effizienz und Hardwarenähe geht sehe ich eben nur keinen Grund wieso ich unter der Haube nicht auch Python verwenden sollte. Und zu mindestens für Desktop-Anwendungen fallen mir nicht viele gängige Bereiche ein wo ich wirklich mit Python alleine nicht auskommen würde. Und Python an sich ist ja durchaus eine schöne Sprache.
Wie du selbst sagst, bei den meisten Büchern.
Meine erste Erfahrungen die ich mit Java gesammelt habe, und davor programmierte ich schon mit C und Pascal, waren mit dem Buch "Java als erste Programmiersprache" und diesen Buch ist eigentlich für den Einstieg in die Objekt Orientierte Programmierung nicht zu gebrauchen, als Nachschlagewerk mag es ganz brauchbar sein, wofür auch die Rezensionen bei Amazon sprechen aber als Lehrbuch und Einstieg in die OO kann man es in die Tonne treten. Der Titel von dem Buch ist eine Frechheit.
Klick hat es bei mir dann bezügl. der OOP erst gemacht, als ich mir ein Buch zu UML kaufte, denn da wurde das Konzept nicht nur durch die UML symbolisch vermittelt, sondern es gab auch gleich noch brauchbaren Beispielcode, den es in obigem Buch nicht gab.
Das mit den größeren Anwendungen ist richtig, da zahlt sich die OOP durchaus aus, aber schreibt man als Hobbyprogrammierer größere Anwendungen? Ich würde das bezweifeln. Dafür dürfte ja schon die Zeit fehlen. So ganz in der Freizeit neben einem Vollzeitjob der vielleicht gar nichts mit Programmieren zu tun hat.
ACK. Wobei ich hier aber dann dennoch jedem Python empfehlen würde, denn es ist einfach deutlich sauberer implementiert und konsistenter als PHP und man kann es auch noch außerhalb der Webwelt für GUIs, Scripte usw. einsetzen.
PHP ist hier eher vorwiegend nur für das Web geeignet.
Ein Vorteil von PHP gegenüber Python ist anderseits, daß man mehr Webserverangebote findet, die PHP Support bieten, das ist zugegeben ein Vorteil von PHP. Wobei sich das in der Zwischenzeit auch geändert haben kann.
Kommentar
Kommentar