Ist es eigentlich egal, welche Programmiersprache man wählt?

Ein herzliches Hallo an Alle!Vorweg will ich sagen, dass ich im Bereich Programmierung absoluter Newbie bin und eigentlich erstmal herausfinden möchte, worauf man bei der Wahl einer Programmiersprache überhaupt achten sollte.
Bitte wundern Sie sich also nicht über die Fragen, sie sind wirklich von einem blutigen Anfänger.
Ich bin ein wenig verunsichert; wenn man allein durch die Computerbücherabteilung unserer Bücherei schlendert, findet man Werke zu sehr vielen Programmiersprachen.
Nun wollte ich wissen: Ist es nicht eigentlich egal, für welche Programmiersprache man sich entscheidet? Kann man zum Beispiel in Perl nicht genauso coden wie auch zum Beispiel in C# und bekommt dasselbe Ergebnis?
Oder ist es eher so, dass man lieber mehrere Sprachen beherrschen sollte, weil vielleicht die eine (geplante) Anwendung mit (sagen wir einfach mal C#) nicht realisierbar ist und stattdessen Python benötigt?
Und wenn letzteres der Fall ist: wie findet man heraus, welche Sprache man für welches Projekt nutzen sollte?

Für die Antworten (auf die hoffentlich nicht zu „dummen“ Fragen) bedanke ich mich im Voraus.
Lieben Gruß
Michael Vogl

Hallo Michael,

es kommt drauf an, was Du hauptsächlich programmieren möchtest.

Sind es Webanwendungen, brauchst Du HTML, CSS, JavaScript und eine serverseitige Sprache wie Python, PHP, Java für Tomcat oder ASP.

Möchtest Du Apps für Android oder iOS programmieren, brauchst Du Java.

Sind es Computerspiele mit aufwendigen Grafikberechnungen, sollte man z.B. C++ oder eine andere Sprache, mit der man maschinennah programmieren kann, ins Auge fassen.

Für Büroanwendungen sind Delphi oder VisualBasic geeignet, und und und…

Schöne Grüße,

Mohamed.

Hallo!

Danke ersteinmal für die schnelle Antwort :smile:

Sind es Webanwendungen, brauchst Du HTML, CSS, JavaScript und
eine serverseitige Sprache wie Python, PHP, Java für Tomcat
oder ASP.

Strenggenommen sind HTML und CSS ja keine Programmiersprachen…
Java Script ist meines Wissens barrierelastig.
Ansonsten: ja, für Webanwendungen

Möchtest Du Apps für Android oder iOS programmieren, brauchst
Du Java.

Sind es Computerspiele mit aufwendigen Grafikberechnungen,
sollte man z.B. C++ oder eine andere Sprache, mit der man
maschinennah programmieren kann, ins Auge fassen.

Für Büroanwendungen sind Delphi oder VisualBasic geeignet, und
und und…

Also schließe ich daraus, dass man sicherheitshalber mehrere Sprachen können sollte.
Nun gut, dann werde ich mich so peu a peu in die unterschiedlichen Materien stürzen.

Lieben Gruß
Michael Vogl

Hallo Michael,

Also schließe ich daraus, dass man sicherheitshalber mehrere
Sprachen können sollte.

Naja, aus meiner Sicht reicht es, die Grundprinzipien der Programmierung verstanden zu haben. Wenn man das drauf hat (vielleicht sogar Prozedural UND objektorientiert), dann kann man mit Kenntnissen in C auch PHP-Anwendungen schreiben. Unterschiedliche Sprachen sind dann eher noch unterschiedliche Dialekte.

Im Prinzip ist es egal, welche Sprache du zum Lernen verwendest, nimm einfach die, die auf deinen jetzigen Anwendungsfall abzielt und für die du auch die technische Basis bekommen kannst, etwa für Webanwendungen wäre das PHP mit MySQL, was dann in HTML und Javascript resultiert.

Nun gut, dann werde ich mich so peu a peu in die
unterschiedlichen Materien stürzen.

So unterschiedlich sind die Materien wirklich nicht. Nur keine Angst.

Günther

Hi,

Strenggenommen sind HTML und CSS ja keine
Programmiersprachen…

Nicht nur streng genommen!

Java Script ist meines Wissens barrierelastig.

Nicht unbedingt, kommt darauf an wie du es, wofür verwendest.

Also schließe ich daraus, dass man sicherheitshalber mehrere
Sprachen können sollte.

Mehrere Sprachen zu können ist sicher nicht verkehrt, aber…

Nun gut, dann werde ich mich so peu a peu in die
unterschiedlichen Materien stürzen.

…ich würde jetzt nicht den Fehler machen mir 5 Bücher zu verschiedenen Sprachen zu besorgen, sondern lern erst einmal eine richtig, wenn du die dann beherrschst, erlernst du eine 2. in wesentlich kürzer Zeit. Meine Empfehlung fang mit Java an. Begründung:
Plattform unabhängig, extrem Mächtig, 1000. te Bücher + Tutorials, du kannst für Android, Webapplikationen (JSP,JSF, usw.), professionelle Geschäftsprogramme (RCP RAP) entwickeln und wenn du Java richtig gut kannst erlernst du Javascript, Actionscript, C#, „C++“ relativ einfach. Dauer um eine Sprache ordentlich zu beherrschen: ca. 3 Jahre bei einem großen Engagement (viel programmieren, auch richtige Software, nur so lernt man).

Gruß XXD

Hallo Michael,

Strenggenommen sind HTML und CSS ja keine
Programmiersprachen…

Stimmt - lernen musst du’s trotzdem :smile: . Und Teil des Programmierens von Webanwendungen sind sie allemal.

Java Script ist meines Wissens barrierelastig.

Klar - allerdings ist JavaScript-losigkeit heutzutage mittlerweile eine noch größere Barriere.

Schöne Grüße,

Mohamed.

Hallo Michael,

Theoretisch ist es egal welche Programmiersprache du verwendest. Fast alle lösbaren Probleme lassen sich mit jeder Programmiersprache Lösen.

Das Hauptproblem beim Lernen ist die Zerlegung eines Problems in die vielen Teilschritte, welche dann das Programm ergeben. Das ist zuerst einmal völlig unabhängig von der verwendeten Sprache.

Die unterschiedlichen Programmiersprachen sind auf bestimmte Anforderungen hin optimiert.

BASIC war ursprünglich mal als Anfängersprache konzipiert, daher kommt auch der Name
BASIC = Beginners Allpourpose Symbolic Instruction Code.
Aber das war vor 50-60 Jahren mal.

Pascal (weiterentwickelt zu Modula, Oberon, Delphi) war nach rein didaktischen Gesichtspunkten konzipiert. Deshalb war es ursprünglich nicht geeignet direkt die Hardware anzusteuern.

Im Gegensatz dazu, wurde C entwickelt um Betriebssysteme (Unix) einfach schreiben zu können.

APL ist eine geniale Sprache für mathematische Aufgaben, da kann man komplexe Matrizen-Berechnungen mit einem einzelnen Zeichen lösen, aber schon das Zerlegen einer Textvariablen wird mühsam.

Praktisch endet das Ganze darin, dass grössere Projekte meist mit unterschiedlichen Programmiersprachen gelöst werden.

Viele meiner Windowsprojekte bestanden aus Visual Basic für die Benutzeroberfläche und C/C++ für den technischen Teil.

Auf Micro-Controllern ohne Betriebssystem hat man meist nur die Wahl zwischen Assembler und C.

Selbstverständlich kann man auch ein Web-Interface in C programmieren. Allerdings muss man dann zuerst viele grundlegende Funktionen erst selbst programmieren oder Bibliotheken verwenden.
Bei entsprechenden Sprachen wie Pearl, Ruby usw. sind solche Funktionen schon Bestandteil der Sprache.

Dann stellt sich noch die Frage nach der Programmumgebung, z.B. ist C# nur unter einem MS-Betriebssystem verwendbar…

Also, im Prinzip ist die Sprache egal, aber du musst dir zuerst überlegen was du machen willst und unter welchem Betriebssystem. Dann erst kann man über die Sprache reden.

Achja, grundsätzlich kann man höhere Programmiersprachen in 3 Kategorien einteilen:

  1. Prozedurale
    Diese bestehen aus Funktionen, welchen man Parameter übergibt und welche dann mit den Parametern Berechnungen machen und ein Resultat zurück liefern.
    Die abstrakte Betrachtung basiert auf dem Rechenvorgang.

  2. Obejktorientierte
    Hier hat man Objekte, also Daten, welche im Zentrum stehen. Zu diesen Objekten gehören dann Prozeduren, welche die Daten manipulieren können.
    Hier beruht die abstrakte Betrachtung auf den Daten, und welche Wege diese gehen.

  3. KI-Sprachen.
    Naja, hier weiss keiner so genau wie es funktioniert :smile:
    Hier schreibt man zwar anfänglich auch Programme und Datenstrukturen aber da diese Systeme lernfähig sein sollen, verändern sich dann Programme und/oder Datenstrukturen mit dem Lernen selbständig …

MfG Peter(TOO)

Hallo,

ich würde eine imperative Programmiersprache als erste empfehlen, so lernt man das Grundgerüst für weiteres.
EIne solche wäre Pascal.
man kann aber mit jeder beliebigen Sprache anfangen.
Wie schon andere erwähnt haben, es kommt darauf an, wofür man programmiert.

Viel Erfolg
Kama

Man kann programmieren nicht lernen.
Hallo Michael

falls Du eine Sprache lernen willst… das geht praktisch nicht. Wie bei Klavier, Fußball oder Schach: Man kann es nur tun. Und mit dem tun kann man seine Erfahrung und Technik verbessern. Und dabei kann man auch theoretisch darüber nachdenken, trotzdem muss man es vor allem tun.

Das heisst konkret: Suche Dir eine Aufgabe, ein Programmiersystem, einen Fachmann oder ein gutes Buch zur Einführung und programmiere. Alles andere ist vertane Zeit.

worauf man bei der Wahl einer Programmiersprache überhaupt achten sollte.

Als Anfänger sind es eher rein praktisch Erwägungen:
Die, die Unterricht, Studienordnung oder Praktikum von mir erwarten,
Die, in der ich guten Support durch Freunde, Kollegen, Bücher, Internet habe
Die, die für meine Plattform, meine Aufgabe, meine Interessen weit verbreitet, verfügbar und bezahlbar ist.

Und wenn letzteres der Fall ist: wie findet man heraus, welche
Sprache man für welches Projekt nutzen sollte?

Die, mit der Aufwand/Kosten am geringsten sind bzw. scheinen. U.A.: Einarbeitung, Zuverlässigkeit, Verfügbarkeit, Verlässlichkeit, Support, Weiterentwicklung/Zukunftsaussichten, Kosten, Portabilität, Verfügbarkeit an Experten dieser Sprache.
Meist muss man sich danach auch für ein konkretes Produkt/Framework/Architektur/Betriebssystem/Anbieter/Toolchain/Libraryset/HW/… entscheiden.

Wichtiger als die richtige Sprache in der richtigen Umgebung ist daher: es zu tun, zu programmieren.

Gruß
achim

Noch eine Frage und diverse Kommentare
Guten Morgen an Alle!

Danke erst einmal für die vielen Antworten (und gleichzeitig ein dickes Sorry von mir, dass ich mich erst jetzt wieder melde - leider hatte ich in den letzten Tagen etwas zu viel um die Ohren :frowning: )
Da ich bei einigen Antworten noch Fragen habe, erlaube ich mir, diese hier hineinzukopieren. Selbiges auch für Kommentare.

etwa für Webanwendungen wäre das PHP mit MySQL, was dann in HTML und :Javascript resultiert.

PHP und MySQL kommen ohnehin noch an die Reihe. Allerdings bin ich bisher davon ausgegangen, das PHP die Sprache ist, um auf Datenbanken zuzugreifen, zumal ich PHP fast immer in Verbindung mit MySQL bei Büchern finde.

allerdings ist JavaScript-losigkeit heutzutage mittlerweile eine noch größere :Barriere.

Da muss ich sicherheitshalber nachfragen: Wieso?
Gerade bei statischen Seiten benötigt man meines bescheidenen Wissens nach kein JS. Zwar will ich eine Mischung aus statischen und dynamischen Seiten erstellen, aber immer wieder die Barrierefreiheit im Blick dabei behalten.
Ist das denn so verkehrt?

Pascal (weiterentwickelt zu Modula, Oberon, Delphi) war nach rein didaktischen :Gesichtspunkten konzipiert. Deshalb war es ursprünglich nicht geeignet direkt :die Hardware anzusteuern.

Das wird zwar jetzt OT, aber Pascal hatten wir vor circa 30 Jahren in der Schule im Computerunterricht. Und auch da nur angerissen.
(ich wollte es nur mal erzählen, weil ich mich tatsächlich daran erinnere :smile:)

man kann aber mit jeder beliebigen Sprache anfangen.
Wie schon andere erwähnt haben, es kommt darauf an, wofür man :stuck_out_tongue:rogrammiert.

In diesem Fall will ich eine spezielle Lernkartei programmieren, die sowohl von visuell Lernenden als auch für auditiv Lernende als auch für auditiv Lernende mit Sehbehinderung genutzt werden kann.
Und das ganze für`s Netz.

falls Du eine Sprache lernen willst… das geht praktisch nicht. Wie bei Klavier, :Fußball oder Schach: Man kann es nur tun. Und mit dem tun kann man seine :Erfahrung und Technik verbessern. Und dabei kann man auch theoretisch :darüber nachdenken, trotzdem muss man es vor allem tun.

Das ist sicherlich richtig.
Dennoch denke ich, dass man grundsätzlich die ganzen Befehle können muss. Es ist wie beim Schreiben eines Romans oder einer Kurzgeschichte: Was nützt einem das Handwerk, wenn man nur die Buchstaben A - L kennt?
Ansonsten gebe ich Ihnen da zu 100% recht: Learning by doing ist ein sehr guter Weg, sofern man dann auch Hilfe bekommt, wenn man nicht weiter weiß oder sich zeigen lässt, was man wie verbessern kann.

Es wäre lieb, wenn man mir noch die eine Frage beantwortet.
Ich sage noch einmal Danke für die Hilfe und die Antworten.
Lieben Gruß
Michael Vogl

Hallo Michael,

Dennoch denke ich, dass man grundsätzlich die ganzen Befehle
können muss. Es ist wie beim Schreiben eines Romans oder einer
Kurzgeschichte: Was nützt einem das Handwerk, wenn man nur die
Buchstaben A - L kennt?

Programmieren ist heute anders wie vor 30 Jahren, wo ich es auch gelernt habe: Damals gab es in der Tat einen Sprachumfang der in ein paar Seiten beschrieben wurde. Siehe Pascal, siehe C, siehe das Basic der damals verbreiteten Heimcomputer. Spätestens mit Turbo-Vision und später Windows änderte sich alles. Wenn Du eine .Net Anwendung schreibst, ist es pratkisch egal, ob Du in Basic oder C# programmierst.

Heute hat das zugehörige Framework meist Millionen von Befehlen, die man per Maus in der IDE, per Hilfe/Bücher/Bekannte, per Copy’n’Paste, meist jedoch per Google zusammensucht. Ich kenne Leute, die kleine Tools in C# schreiben und kaum eine Ahnung davon haben, was ein Integer ist.

Viel Erfolg.

achim

etwa für Webanwendungen wäre das PHP mit MySQL, was dann in HTML und :Javascript resultiert.

PHP und MySQL kommen ohnehin noch an die Reihe. Allerdings bin
ich bisher davon ausgegangen, das PHP die Sprache ist, um auf
Datenbanken zuzugreifen, zumal ich PHP fast immer in
Verbindung mit MySQL bei Büchern finde.

Nein um Himmels willen („Sprache …, um auf Datenbanken zuzugreifen“). PHP ist ein Unfall, die schlechte Lösung, die aber einen einfachen Einstieg liefert, das GWBASIC der Web-Programmierung. Aber es ist universell verfügbar und damit nicht mehr zu umgehen.

Im Prinzip so wie JavaScript, erfunden für kleine Aufgaben, weit über diesen Rahmen gewachsen, nur dass JS von Anfang an ein besseres Sprach-Design hatte.

allerdings ist JavaScript-losigkeit heutzutage mittlerweile eine noch größere :Barriere.

Da muss ich sicherheitshalber nachfragen: Wieso?
Gerade bei statischen Seiten benötigt man meines bescheidenen
Wissens nach kein JS. Zwar will ich eine Mischung aus
statischen und dynamischen Seiten erstellen, aber immer wieder
die Barrierefreiheit im Blick dabei behalten.
Ist das denn so verkehrt?

Das hängt davon ab, was Du unter „dynamisch“ verstehst. Webseiten mit JS-Skripten können statisch, also ohne dynamische Bearbeitung, auf dem Server liegen und ausgeliefert werden.

Pascal (weiterentwickelt zu Modula, Oberon, Delphi) war nach rein didaktischen :Gesichtspunkten konzipiert. Deshalb war es ursprünglich nicht geeignet direkt :die Hardware anzusteuern.

Das wird zwar jetzt OT, aber Pascal hatten wir vor circa 30
Jahren in der Schule im Computerunterricht. Und auch da nur
angerissen.

Dann sollten die Gundstrukturen des Programmierens, die für alle prozeduralen Sprachen gelten, bekannt sein. Deine Herausforderung ist dann das Event-Modell und das richtige Framework zu finden und zu beherrschen. Die konkrete Sprache ist da zweitrangig.

Dennoch denke ich, dass man grundsätzlich die ganzen Befehle
können muss. Es ist wie beim Schreiben eines Romans oder einer
Kurzgeschichte: Was nützt einem das Handwerk, wenn man nur die
Buchstaben A - L kennt?

Der Befehlsumfang der meisten Sprachen ist nicht so groß, 30-50 Schlüsselworte und die dahinter stehenden Strukturideen. Der Rest sind Software-Bibliotheken, wobei Qt zum Beispiel so gut wie alle Standard-Bibliotheken von C++ ersetzt und fast als eigene Programmiersprache gelten kann.

Gruß, Lutz

Hallo nochmal :smile:

Nein um Himmels willen („Sprache …, um auf Datenbanken
zuzugreifen“). PHP ist ein Unfall, die schlechte Lösung, die
aber einen einfachen Einstieg liefert, das GWBASIC der
Web-Programmierung. Aber es ist universell verfügbar und damit
nicht mehr zu umgehen.

Huch.
Jetzt bin ich noch mehr verunsichert. Was darf man denn sonst nehmen, um auf Datenbanken zuzugreifen?
Oder anders gefragt: Mein Webspaceanbieter lässt PHP 5.3 und PHP 5.4 zu. Darf ich diese Sprache dann nur nutzen?

allerdings ist JavaScript-losigkeit heutzutage mittlerweile eine noch größere :Barriere.

Da muss ich sicherheitshalber nachfragen: Wieso?
Gerade bei statischen Seiten benötigt man meines bescheidenen
Wissens nach kein JS. Zwar will ich eine Mischung aus
statischen und dynamischen Seiten erstellen, aber immer wieder
die Barrierefreiheit im Blick dabei behalten.
Ist das denn so verkehrt?

Das hängt davon ab, was Du unter „dynamisch“ verstehst.
Webseiten mit JS-Skripten können statisch, also ohne
dynamische Bearbeitung, auf dem Server liegen und ausgeliefert
werden.

Unter dynamisch verstehe ich, dass der User zum Beispiel einige Vokabeln, die er lernen will/soll/muss in „einen Topf“ wirft und das Dynamische daraus ein Kreuzworträtsel bastelt

Pascal (weiterentwickelt zu Modula, Oberon, Delphi) war nach rein didaktischen :Gesichtspunkten konzipiert. Deshalb war es ursprünglich nicht geeignet direkt :die Hardware anzusteuern.

Dann sollten die Gundstrukturen des Programmierens, die für
alle prozeduralen Sprachen gelten, bekannt sein. Deine
Herausforderung ist dann das Event-Modell und das richtige
Framework zu finden und zu beherrschen. Die konkrete Sprache
ist da zweitrangig.

Ähem…wie gesagt: an die 30 Jahre her. Ich glaube, die Grundstruktur ausser dem EVA-Prinzip dürfte ich jetzt echt nicht mehr auf Kette haben :frowning:

Dennoch denke ich, dass man grundsätzlich die ganzen Befehle
können muss. Es ist wie beim Schreiben eines Romans oder einer
Kurzgeschichte: Was nützt einem das Handwerk, wenn man nur die
Buchstaben A - L kennt?

Der Befehlsumfang der meisten Sprachen ist nicht so groß,
30-50 Schlüsselworte und die dahinter stehenden Strukturideen.
Der Rest sind Software-Bibliotheken, wobei Qt zum Beispiel so
gut wie alle Standard-Bibliotheken von C++ ersetzt und fast
als eigene Programmiersprache gelten kann.

Gruß, Lutz

Auf Datenbanken greift man üblicherweise mit SQL zu. Dazu gibt es dann in jeder Programmiersprache Bibliotheken, die das Abfrageergebnis als Collection von Datensätzen mehr oder weniger automatisch zurückgeben. Das ist also vollkommen von PHP unabhängig.

Wenn man natürlich nur einen (PHP-)Hammer hat, dann sieht natürlich jedes Problem wie ein (PHP-)Nagel aus.

Der aktuelle Trend für Web-Services scheint, aus meiner Fernbetrachtung, zu sein entweder Java auf dem Server oder etwas auf Basis von Node.js, und Webseiten mit AngularJS oder EmberJS und Ajax/JSON für dynamische Inhalte. Wobei es natürlich noch viele weitere Lösungen gibt, C# mit ASP.Net hat sich auch modern weiterentwickelt (manche sagen, als so ziemlich einziges im .Net-Framework).

Gruß, Lutz

Hallo Michael,

falls Du eine Sprache lernen willst… das geht praktisch nicht. Wie bei Klavier, :Fußball oder Schach: Man kann es nur tun. Und mit dem tun kann man seine :Erfahrung und Technik verbessern. Und dabei kann man auch theoretisch :darüber nachdenken, trotzdem muss man es vor allem tun.

Das ist sicherlich richtig.
Dennoch denke ich, dass man grundsätzlich die ganzen Befehle
können muss. Es ist wie beim Schreiben eines Romans oder einer
Kurzgeschichte: Was nützt einem das Handwerk, wenn man nur die
Buchstaben A - L kennt?

Das ist eigentlich zuerst einmal ein untergeordnetes Problem.

Um beim Roman zu bleiben, man muss auch Ahnung von Grammatik haben. Die Grammatik als solches ist sogar sprachunabhängig, man kann die Grammatik für jede Sprache verwenden. Wenn man die Grundlegenden Elemente eines Satzes kenn, kann man dann nachsehen wie das in einer bestimmten Sprache gehandhabt und geschrieben wird.

Wenn man einen Text hat, weiss man, dass es auch irgend einen Variablentyp dafür geben muss. Dann weiss man schon mal unter was man nachschlagen muss.
Wenn’s den Datentyp gibt, gibt es auch Mechanismen um diesen irgendwie zerlegen zu können.
Wenn man die abstrakte Programmierung verstanden hat, ist die Umsetzung in eine konkrete Programmiersprache das kleinere Problem. Anfangs muss man sowieso die Befehle immer wieder nachschlagen, bis man es mal Auswendig kann. Später muss man nur noch die seltenen speziellen Fälle nachschlagen…

So ab der dritten Programmiersprache wird’s dann einfach, wenn man nicht gerade zu KI-Sprachen wechselt, da ist aber auch die Denkweise anders.

Ich selbst habe 1976 mit BASIC auf einem Wang angefangen, heutige BASICs trennen da Welten. Da kamen einige BASIC-Dialekte mit den Jahren zusammen. Dann kamen diverse Assembler, Pascal, FORTH, PL/M, C, C++ und noch ein paar dazu. Mit diesen Sprachen habe ich produktive Projekte durchgezogen. Hinzu kommen noch etliche Sprachen die ich lesen kann, aber selbst nie damit programmiert habe.

MfG Peter(TOO)