Suche eine Programmiersprache!



  • Ja hallo!

    Hab in nächster Zeit ziemlich viel freizeit und bin darum auf der Suche nach ner Programmiersprache zum Lernen! Habe keinerlei erfahrung mit Programmieren inkl. Compilieren! HTML und Php standen bisher auf dem Programm, das kann ich einigermassen!

    Beim Herumschnüffeln habe ich herausgefunden, dass wohl C das ist was man können sollte! Nun gibts aber C, C++ und C#! Sind das ganz verschiedene Programmiersprachen, oder schlicht Nachfolger voneinander? Sollte das zweite zutreffen, kann ich ja wohl gleich bei C# beginnen??!!

    Habe nun hier etwas über Python gelesen! Wie siehts mit Delphi aus?

    Was meint ihr, wo muss man anfangen? bzw. was ist der Unterschied, oder welche Programmiersprache is besser am Anfang als C etc...?

    Ich denke mal dass der ein oder andere von euch wohl Erfahrungen hat!
    Vielen Dank für eure Tips



  • Hallo, ich würde dir c/c++ empfehlen....von C# hab ich keine ahnung aber C/C++ sind PHP SEHR änlich und daher auch schnell zu erlernen wenn man PHP kann (finde ich zumindestens)....ich Programmier in PHP seit fast schon 3 Jahren und hab jetzt in er schule mit c++ angefangen...es finden sich einfach massenhaft änlichkeiten und ich erlerne die eizelnen elemente der sprache auch recht schnell 👍



  • Wer sucht der findet 🤡



  • Danke für deine Antwort! Nun C oder C++? Egal?
    C++ tönt zumindest mal besser:-)

    @Dali
    Ich suuuche und suuuche und suuuche 😃

    Andere Meinungen?



  • auf keinen fall C, wenn du dir den C++-stil nicht total versauen willst. und es gibt kein C/C++.



  • volkard schrieb:

    auf keinen fall C, wenn du dir den C++-stil nicht total versauen willst. und es gibt kein C/C++.

    damit meinte ich oder 😉



  • volkard: Der Stil ist imho doch eh schon php-versaut. Also ne Sprache mit ner C-unähnlichen Syntax.



  • volkard schrieb:

    auf keinen fall C, wenn du dir den C++-stil nicht total versauen willst.

    weshalb versaut man sich den c++-stil, wenn man erst eine prozeduale sprache lernt und dann eine objektorientierte?

    ich habe mit diesem lego-zeugs angefangen, dann nqc ( fürs lego, aber c-syntax)
    und dann c++ gelernt und ich muss ehrlich sagen, ich halte meinen c++-stil für sehr gut, und die kentnisse in c helfen eher...



  • Wenn Du bisher in PHP hauptsächlich prozedural programmiert hast, kannst Du durchaus auch mit C anfangen. C ist eine kleine, einfache und simple Sprache, und schneller erlernbar als C++.

    Wenn Du bisher in PHP hauptsächlich objektorientiert programmiert hast, dann nimm vielleicht gleich C++ oder C# oder Java.

    C++ ist sehr komplex und vielschichtig; für einen Anfänger kann das verwirrend sein, wenn vermeintlich einfache Konstrukte nicht funktionieren, so wie sollen.

    Um mehr Gefühl für die objektorientierte Programmierung zu bekommen, nimm besser zuerst eine "harte" OO-Sprache wie Java oder C#.

    Java und C# sind vergleichsweise langsam, und Du kannst dann später immer noch C++ lernen.

    Jedenfalls um einige Tücken von C++ zu verstehen, wie Zeiger, dynamische Speicherverwaltung, und klassische C Arrays (Vektoren), ist es besser, zuerst C zu lernen, um ein Gefühl dafür zu kriegen.

    Die Unterschiede zwischen C / C++ / C# :

    C ist eine einfache prozedurale Sprache, die aus der Sprache BCPL hergeleitet wurde (mehr oder weniger begann es als BCPL mit Datentypen und Strukturen). Sie kann als Konkurrent von Pascal betrachtet werden. Die Hardwarenähe von C brachte ihr den Ruf eines "mit Syntax verzuckerten Assemblers" (Niklaus Wirth, Erfinder von Pascal) ein. Jedoch ist das in mehrerlei Hinsicht unzutreffend, vor allem, da der vom Compiler erzeugte Code meist ca. 5-10 mal schlechter als vergleichbarer Assembler-Code ist. Natürlich ist C heutzutage keine "langsame" Sprache mehr, angesichts der schnellen Computer, die wir heute haben.

    C++ ist eine "weiche" OO-Sprache, die auf C aufbaut. Weich deshalb, weil sie es erlaubt, prozedurale Programmierung und objektorientierte Programmierung zu mischen. Template-Klassen waren ursprünglich dazu gedacht, die Makro-Orgien, die oft mit der Benutzung des C Präprozessors einhergingen, zu beenden, und eine saubere Syntax für Makroprogrammierung in C zu entwickeln. Durch sine Klassen, Mehrfachvererbung und Templates ist C++ immernoch die mächtigeste OO-Sprache überhaupt (gefolgt von Ada 95, dessen OO-Features allerdings schwer verständlich sind).

    C# ist eine Microsoft-Erfindung und hat weder etwas mit C noch mit C++ zu tun. Der Name soll wohl primär dazu dienen, C und C++ Entwickler zu C# zu locken. C# wurde als Microsoft-Version von Java entwickelt. Microsoft fand, daß Java nicht mächtig genug sei und entwickelte eine eigene Sprache. C# bietet sehr viele interessante Features, hat aber weitaus weniger Features als C++ oder Java.

    Java ist eine objektorientierte Sprache, die aus Oak entwickelt wurde, einer portablen Sprache zur Steuerung von Mikrocontrollern. Java-Programme sind heutzutage immer noch sehr langsam im Vergleich zu C++ Programmen, trotz HotSpot Engine. Irgendwann werden die Rechner vielleicht schnell genug um auch Java-Programme so schnell zu machen, daß man damit performante Programme schreiben kann.

    Sowohl Java als auch C# sind ideal zur Programmierung grafischer Oberflächen, was man von C++ nicht unbedingt behaupten kann, da die Bibliotheken bei Java und C# genormt sind, und bei C++ nicht. Für C++ gibt es eine Vielzahl plattformspezifischer und plattformübergreifender Bibliotheken, auch für die Programmierung grafischer Obeflächen.

    Wenn Du einen langsamen Übergang zu compilierten Sprachen haben willst, solltest Du Dir vielleicht noch Perl ansehen, das viel mächtiger als PHP ist, aber dennoch Skriptsprachen-Charakter hat. Beide, PHP und Perl, sowie Python sind "weiche" objektoriente Sprachen wie C++.



  • Vielen Dank für den ausführlichgen Thread!

    Na ja, Oo hab ich in PHP nicht wirklich aktiv betrieben! Ich werde mich mal im Netz ein paar Tuts besorgen und dann entscheiden welches mir zusagt!

    Ihr habt mir sehr geholfen!

    Danke



  • Power Off schrieb:

    Jedoch ist das in mehrerlei Hinsicht unzutreffend, vor allem, da der vom Compiler erzeugte Code meist ca. 5-10 mal schlechter als vergleichbarer Assembler-Code ist. Natürlich ist C heutzutage keine "langsame" Sprache mehr, angesichts der schnellen Computer, die wir heute haben.

    Und auch die Compiler haben seit Anfang der 70er dazu gelernt 🙄 .



  • @OT:

    LUZA schrieb:

    volkard schrieb:

    auf keinen fall C, wenn du dir den C++-stil nicht total versauen willst.

    weshalb versaut man sich den c++-stil, wenn man erst eine prozeduale sprache lernt und dann eine objektorientierte?

    ich habe mit diesem lego-zeugs angefangen, dann nqc ( fürs lego, aber c-syntax)
    und dann c++ gelernt und ich muss ehrlich sagen, ich halte meinen c++-stil für sehr gut, und die kentnisse in c helfen eher...

    Ist "dieses Lego zeugs" mindstorms? Damit hab ich auch angefangen (bin dann aber gleich auf "echtes" C++ umgestiegen). War schon geil, grüne und rote und tolle gelbe und blaue blöcke und der robo Fährt die linie lang 😃 .



  • jupp... rcx... das war was nices... aber mit nqc wirklich ganz anständig



  • Walli schrieb:

    Power Off schrieb:

    Jedoch ist das in mehrerlei Hinsicht unzutreffend, vor allem, da der vom Compiler erzeugte Code meist ca. 5-10 mal schlechter als vergleichbarer Assembler-Code ist. Natürlich ist C heutzutage keine "langsame" Sprache mehr, angesichts der schnellen Computer, die wir heute haben.

    Und auch die Compiler haben seit Anfang der 70er dazu gelernt 🙄 .

    Ich sprach ja von heutigen Compilern. Früher erzeugten die Compiler besseren Code, weil es auf jeden Taktzyklus ankam. Heute wird da eher geschlampt ...

    sowas wie Compiler, deren Optimizer nicht funktionieren (weil sie fehlerhaften Code erzeugen), gab es früher nicht so oft.



  • Du weißt aber, wie man die Optimierungen einschaltet?



  • Walli schrieb:

    Du weißt aber, wie man die Optimierungen einschaltet?

    Klar! Wenn man z.B. bei GCC "-O3" setzt und das Programm sich nicht mehr kompilieren läßt, oder beim Start gleich krepiert. Da kann man sich nur drüber bedanken.

    (Oder wenn Microsoft in seinen billig-Schrott-Compilern gar nicht erst einen Optimizer einbaut, weil der eh nicht funktioniert hätte)



  • Power Off schrieb:

    Klar! Wenn man z.B. bei GCC "-O3" setzt und das Programm sich nicht mehr kompilieren läßt, oder beim Start gleich krepiert. Da kann man sich nur drüber bedanken.

    Das hängt ja wohl stark von dem ab was der Code tut. Ich kenne einen, der schreibt Embedded-Software. Auf seiner Plattform hab es keine Möglichkeit den Instruction-Pointer auszulesen. Einfacher Trick: Ne Funktion aufrufen und die Adresse vom Stack lesen. Hat auch gut funktioniert. Nur wenn man die Optimierung auf -O3 gesetzt hat, dann hat der Compiler die Funktion geinlined... was dabei rauskommt ist wohl klar. Aber ist das nun unbedingt ein Compiler-Fehler?

    Power Off schrieb:

    (Oder wenn Microsoft in seinen billig-Schrott-Compilern gar nicht erst einen Optimizer einbaut, weil der eh nicht funktioniert hätte)

    Huh? Von was redest Du? In den Visual C++ Compilern ist doch ein Optimierer drin. Nur in der sehr günstigen Standardversion ist keiner drin.

    Deinen Faktor von 5-10 halt ich im übrigen für frei erfunden.

    Vielleicht kannst Du aber auch einfach mal ein paar Fakten nachlegen statt nur zumzumotzen.



  • Power Off schrieb:

    Walli schrieb:

    Du weißt aber, wie man die Optimierungen einschaltet?

    Klar! Wenn man z.B. bei GCC "-O3" setzt und das Programm sich nicht mehr kompilieren läßt, oder beim Start gleich krepiert. Da kann man sich nur drüber bedanken.

    (Oder wenn Microsoft in seinen billig-Schrott-Compilern gar nicht erst einen Optimizer einbaut, weil der eh nicht funktioniert hätte)

    Dann lies doch mal das und das.



  • Hallo!

    Neben C, C++ und C# gibts noch Objective-C! Diese Sprache ist besonders interessant, wenn man für MacOS etwas schreiben will oder unter GNUstep 😋 entwickeln möchte.

    Gruß
    Michael



  • Power Off schrieb:

    Um mehr Gefühl für die objektorientierte Programmierung zu bekommen, nimm besser zuerst eine "harte" OO-Sprache wie Java oder C#.

    was soll man dazu sagen, ausser müde zu lachen? Wenn Java "hart" OO ist, dann will ich garnicht wissen, was Smalltalk für dich ist ;). Und mal davon abgesehen, dass OOP nicht "alles in Klassen stecken" ist, wies java tut.

    Jedenfalls um einige Tücken von C++ zu verstehen, wie Zeiger, dynamische Speicherverwaltung, und klassische C Arrays (Vektoren), ist es besser, zuerst C zu lernen, um ein Gefühl dafür zu kriegen.

    ähm...nein? mit C++ kannst du dich zuerst drumrum drücken, und wenn du bereit dafür bist, wirst du auch keine schwierigkeiten mehr haben diese "Tücken" zu verstehen.

    C++ ist eine "weiche" OO-Sprache, die auf C aufbaut. Weich deshalb, weil sie es erlaubt, prozedurale Programmierung und objektorientierte Programmierung zu mischen.

    C++ ist keine OO sprache, sie ist Objektbasiert! Und templates wurden nicht gegen die makro orgien eingesetzt, sondern sins spätestens seit dem letzten standard ein mächtiges Werkzeug für generische Programmierung!

    Java-Programme sind heutzutage immer noch sehr langsam im Vergleich zu C++ Programmen, trotz HotSpot Engine.

    Lassen wir halt mal einfach ausser acht, dass Java je nach problem gleich schnell oder sogar schneller ist 😉


Anmelden zum Antworten