Programmiersprache erlernen

  • Huhu Community :)
    Ich kann PAWN ziemlich gut und kriege eigentlich alles hin und möchte nun eine Programmiersprache erlernen.
    Durch das Scripten kenn ich ja die meisten Grundlagen von Sprachen wie C (die Reihe), Java usw., jedoch nicht das erweiterte.
    Das blöde ist nun, bei Tutorials kenn ich schon die Hälfte und habe keine Lust mir die alle anzuschauen, beziehungsweise durchzulesen,
    da ich die Hälfte schon weiß und dann manches nicht ganz verstehe wenn ich das überspringe.
    Aber nun erstmal zu der wichtigen Frage: was wäre eine gute Programmiersprache für mich, welche ich auf die PAWN Kenntnisse leicht erlernen kann und habt ihr evtl. gute Tutorials für mich?
    Oder auch andere Wege es zu erlernen?
    Danke jetzt schon einmal.


    LG

  • Wie hast du die Sprachen erlernt?
    Hättest du evtl. ein paar Tipps für mich?


    Wie eine Person am besten lernt, dass weiß nur leider die Peson selbst.


    Versuch es am besten erstmal mit Büchern, Videos und dem Internet, wichtig ist überrenn dich nicht und fang mit kleinen auch langweiligen Sachen an,
    Bsp: C# Konsolenanwendungen

  • Java ist relativ einfach zu verstehen, auch wenn es da sicherlich schon schwerere Themen gibt. Dir wird eben vieles abgenommen, von fehlenden Zeigern/Zeigerarithmetik, über Memory Leaks und und und.
    Das ganze gibt's aber eben nicht umsonst, die Garbage Collection kostet eben schon durchaus Performance, abgesehen davon, dass eh alles innerhalb der Java VM läuft, was nicht dazu beiträgt sonderlich schnell zu sein.


    In C++ musst du halt oftmals eigene Lösungen entwickeln oder auf fremde Lösungen zurückgreifen. (Boost Framework z.B.)
    In den neueren C++ Versionen gibt's halt aber auch schon Smartpointer, Initializer Lists (RAII), safe_bools etc.etc.


    Ist halt schwerer, nicht nur dass du Zeiger hast, die hast zusätzlich auch noch Templates, die schwerer verständlich sind als die Java Generics.


    Kann die für C++ das Buch "C++ Primer" empfehlen, sofern du des Englischen mächtig bist. Dort werden unteranderem wichtige Punkte wie Patterns, RAII, uniform initialization, AAA und rvalue references angesprochen, die ein C++ Entwickler doch kennen sollte.
    http://www.amazon.de/C-Primer-…1&keywords=c%2B%2B+primer

  • Du könntest dir auch mal die "SAMP c++" Version anschauen. Also das Erstellen eines Gamemodes mit c++. Da kann man bestimmt einiges lernen. Der Anfang wird sicherlich schwierig sein, aber je mehr du übst, desto besser wird es.

  • Versuch's doch mal in der Webentwicklung.
    Der grobe Syntax von PAWN und PHP haben ja einiges gemeinsam und PHP ist relativ einfach.
    Ich bspw. habe erst nach PAWN mit PHP angefangen und es klappte wie am Schnürchen.


    Wenn du dann darin sicher bist, geh immer eine Stufe weiter, irgendwann kommen dann die höheren Sprachen wie C und C++.
    Und vielleicht bist du dann mal irgendwann so weit, dass du Assembler kannst. :P


    Wichtig ist halt, dass du immer stufenweise voranschreitest.
    Man kann zwar auch direkt mit C++ anfangen, aber aufgrund der Komplexität ist das eher nicht ratsam.

  • Das ganze gibt's aber eben nicht umsonst, die Garbage Collection kostet eben schon durchaus Performance, abgesehen davon, dass eh alles innerhalb der Java VM läuft, was nicht dazu beiträgt sonderlich schnell zu sein.

    Das stimmt so absolut nicht. Gerade die Garbage Collection und die VM tragen dazu bei, dass Java deutliche Performance Vorteile gegenüber anderen Sprachen besitzt. Nicht ohne Grund setzen der Großteil der Unternehmen Java EE im Backend ein und nicht ohne Grund werden eine Vielzahl der Datenbanken, die in Unternehmen wie Google oder Facebook eingesetzt werden in Java entwickelt.


    Für den Einstieg würde ich zu dir zu Java raten. Gut dokumentiert und einfache Syntax. Abgesehen davon orientieren sich viele moderne Sprachen an der Syntax von Java, sodass du keine Probleme haben wirst auch andere Sprachen leicht zu lernen.

  • Java ist ein C Abkömmling, C# ist ein C Abkömmling , PAWN & PHP ebenso.... kannst dir einen der C Abkömmlinge aussuchen, die Syntax ist nazu ähnlich

    Mit freundlichen Grüßen
    Developer
    Go/Python Developer | ehm. Webdeveloper | Fachinformatiker Anwendungsentwicklung
    Arbeitet in einem cloudigen Umfeld bei einem der größten deutschen Rechenzentrumsbetreibern

  • Zitat

    Das stimmt so absolut nicht. Gerade die Garbage Collection und die VM tragen dazu bei, dass Java deutliche Performance Vorteile gegenüber anderen Sprachen besitzt.


    Nicht richtig. Die Garbage Collection bietet nur dann einen Vorteil ggü. anderen Sprachen wenn in diesen (z.B. C++) falsch mit Zeigern umgegangen wird. Durch die richtige Verwendung von Smartpointern etc. sind die Probleme, die die Garbage Collection angeht eben nicht existent.
    Es gibt schon einen Grund warum z.B. im medizinischen Bereich viel mit C oder C++ gearbeitet wird.
    Wenig Speicherplatz, geringe Anforderungen, viele Möglichkeiten. Da springt mir in einem zeitkritischen Bereich nämlich nicht plötzlich die Garbage Collection rein.
    Wenn Unternehmen etwas benutzen, heißt das noch lange nicht, dass es die beste Wahl ist. ;) Da spielen einige Faktoren mit, angefangen bei der existierenden Entwicklungsabteilung, die eventuell fast gänzlich aus Java Entwicklern besteht oder der bereits existenten Java Infrastruktur.


    Fakt ist, die GC fummelt mir einfach zu oft rein, wo ich das als Entwickler eventuell gar nicht haben möchte. Abgesehen davon entsteht durch die Garbage Collection oftmals ein ungewollter Overhead.

  • Fakt ist, die GC fummelt mir einfach zu oft rein, wo ich das als Entwickler eventuell gar nicht haben möchte. Abgesehen davon entsteht durch die Garbage Collection oftmals ein ungewollter Overhead.

    Ich möchte hier nun nicht wieder allzu stark vom Topic abweichen, aber grade die Garbage Collection verhindert doch einen zu starken Overhead, dadurch, dass eben "Müll" gesammelt und vernichtet wird. Und irgendwo "zwischenfummeln" wird sie garantiert nicht, nur dort wo es auch tatsächlich Sinn macht. Fakt ist, dass die Java Server VM + Java EE deutlich schneller ist als C Anwendungen. Ähnlich verhält es sich mit der V8 Engine von Google, die auch immer öfter als Ersatz zu C++ eingesetzt wird, weil einfach mehr Vorteile auch in Bezug auf Geschwindigkeit bestehen.


    Dass C++ absolut notwendig ist, möchte ich nicht bestreiten. Meiner Meinung nach stellt C++ aber eher eine solide und gute Grundlage für Weiterentwicklungen dar, schließlich ist die Java VM oder die V8 Engine auch "nur" in C oder C++ geschrieben. Es mag auch Bereiche geben in denen C++ deutliche Vorteile bietet, werden große Datenmengen bearbeitet oder geht es etwa um Speicherung und Verarbeitung, würde ich immer auf Java zurückgreifen.

  • Wenn du für Windows entwickeln möchtest, C#


    C# hat eine so grandiose Syntax, die du bei jeder anderen Sprache vermissen wirst. Alles ist ein Objekt und kann auch dementsprechend verwaltet werden und OOP ist auch einfach zu lernen. Die Dokumentation - MSDN - ist grandios und gut verständlich.


    Zudem läuft C# nachgewiesenermaßen auf Windows schneller als C++


    Kostenlose Pawno Alternative / PAWN IDE -> PawnStar
    Mass Effect
    :love:

  • Danke für all die tollen Antworten, werde mich jetzt aber erstmal im Bereich Webcoding beschäftigen.
    Danke @Liam Rocky:, werde mich da mal durcharbeiten, habe die ersten 2 Lektionen oder Kapitel (?) schon durch.


    Also beschäftige mich nun vor allem mit PHP und JS.