Was ist an PAWN schlecht?

  • Zitat von m4a_X

    MTA hat ein eine Funktion für einen Download-Server welches ermöglicht die Files von den Spielern zu bearbeiten,
    mit einem extra Client ist das auch in SA:MP möglich, aber es gibt genug Spieler die dann rum heulen und meinen das man sich
    dadurch nur Viren herunterlädt etc.


    Das ist so absolut falsch. Es gibt in MTA die Funktion downloadFile, mit der sich neue Dateien herunterladen lassen. Es ist jedoch nur möglich nicht ausführbare Dateien (.exe, .com etc.) herunterzuladen, sodass niemand ausversehen eine Datei ausführt (die ohnehin unter normalen Umständen nicht über den Explorer erreicht wird). Dazu kommt, dass es letztendlich egal ist, ob Viren im Ressourcenordner liegen, solange sie nicht ausgeführt werden. Was du mit Bearbeiten von Dateien meinst, weiß ich nicht, kann dir aber versichern, dass MTA außer deinen Ressourcen im Ressourcenordner weder Dateien im GTA Ordner noch andere Dateien auf deinem PC bearbeitet (durch Lua).


    Zitat

    Dann sollte "C" oder ASM auch scheiße sein


    Du darfst dabei aber nicht vergessen, dass Pawn eine Scriptsprache ist, die interpretiert wird. Der große und einzig hierfür relavante Vorteil von C und direktem Assembler Code ist die Ausführgeschwindigkeit, die der von Scriptsprachen um ein Vielfaches überlegen ist. Wenn es um Sauberkeit und Wartbarkeit von Code geht, ist Assembler eine Katastrophe und wird nicht ohne Grund nur an kritischen Stellen verwendet. Vorteil von MTA sind an dieser Stelle auch die clientseitigen Scripte, wodurch ein Teil der Rechenlast auf die Clients verschoben wird, sodass ein MTA Server bei einer ähnlichen Spielerzahl deutlich performanter läuft als ein SA:MP Server.


    Zitat von Sense

    OOP ist sowieso überbewertet meist von den Leuten die nicht ohne klar kommen.


    Wenn es meist von Leuten kommt, die "nicht ohne klar kommen", dann sage ich, dass der zitierte Satz nur von Leuten kommt, die noch nie richtig mit Objektorientierung gearbeitet haben oder das Konzept nicht vollständig verstehen. Nicht ohne Grund hat sich Objektorientierung in der modernen Programmierung nahezu durchgängig durchgesetzt.


    Zitat von Sense

    Pawn ist eine alternative die man individuell in eigene Projekte einbinden kann und nur weil dies nicht oft getan wird heißt es nicht dass die Sprache schlecht ist.


    Schlecht ist Pawn sicher nicht, nur schlechter als andere, etabliertere Sprachen.


    Zitat von Sense

    Lua ist zudem ein Interpreter , sprich der Code wird direkt übersetzt und ausgeführt und wird nicht erst in einen Maschinencode verwandelt.


    Worin unterscheidet sich Lua dann zu Pawn? Pawn wird genauso interpretiert. Analog zu den in Bytecode kompilierten AMX Dateien, gibt es in Lua genauso Lua Bytecode, der meist die Dateiendung .luac aufweist.
    Da Lua sich mittlerweile sehr etabliert hat, gibt es auch einige Lösungen, die die Ausführgeschwindigkeit noch weiter erhöhen sollen. Dazu wurde u.a. ein Just-In-Time Compiler (LuaJIT) entwickelt, der den Lua Quellcode zur Laufzeit in richtigen x86 Maschinencode übersetzt, was eine erhebliche Geschwindigkeitssteigerung bedeutet. Zu beachten ist dabei allerdings, dass die meiste Zeit nicht die Ausführung der Scriptsprache beansprucht, sondern den Wechsel von Lua (oder auch Pawn) zu C++.


    Zitat von [DT]Sniper

    Ich muss aber auch sagen dass SA:MP so einen mehr erfolg gegenüber MTA hat kommt höchstwahrscheinlich auch von der Sprache, da diese recht einfach zu erlernen und Übersichtlich ist.


    Das wage ich sehr stark zu bezweifeln. Dazu würde ich gerne deine Argumente hören...
    Der einzige Grund, warum SA:MP, meiner Meinung nach, (noch) mehr Erfolg als MTA hat ist der, dass SA:MP früher da war und anfangs deutlich stabiler lief als MTA. Dazu kommt, dass der Name "MTA" im Zusammenhang mit Suchmaschinen ungünstig gewählt wurde. Wenn jemand nach einem Multiplayer für San Andreas sucht, wird man im Normalfall auch "San Andreas Multiplayer" eingeben und das ist (leider) genau das, wofür SA:MP steht (Niemand würde auf die Idee kommen "Multi Theft Auto" einzugeben.

  • Das wage ich sehr stark zu bezweifeln. Dazu würde ich gerne deine Argumente hören...
    Der einzige Grund, warum SA:MP, meiner Meinung nach, (noch) mehr Erfolg als MTA hat ist der, dass SA:MP früher da war und anfangs deutlich stabiler lief als MTA. Dazu kommt, dass der Name "MTA" im Zusammenhang mit Suchmaschinen ungünstig gewählt wurde. Wenn jemand nach einem Multiplayer für San Andreas sucht, wird man im Normalfall auch "San Andreas Multiplayer" eingeben und das ist (leider) genau das, wofür SA:MP steht (Niemand würde auf die Idee kommen "Multi Theft Auto" einzugeben.


    Ich kann dir da keine großen Argumente liefern, ich persönlich mag Lua nicht, dadurch dass keine geschweiften Klammern eingesetzt werden ist es zu unleserlich für mich. Zudem kenne ich mehr die Multiplayer von GTA spielen die Pawn können als LUA.
    Es gibt Sonderfälle die beides können meistens aber trotzdem bei Pawn/Samp bleiben was vom Hauptgrund her wohl die höheren Userzahlen sein werden.


    aber ansich ist PAWN ähnlicher an C oder PHP als LUA was in meinen Augen nen Vorteil ist. auch wenn Lua ebenso nicht Schwer ist.

  • Also PAWN ist halt in meinen Augen nur sinnvoll wenn man für SA:MP n Script oder Gamemode entwickeln möchte,
    ansonsten auch nicht.
    Für pawn fehlt meiner meinung nach der Anwendungsbereich, ist wie Python.
    Aber naja.


    Kannst mit pawn dank der sourcemod auch für css cs1.6 team fortress und mehr Serverseitige Scripts schreiben.

  • Zitat von [DT]Sniper

    ich persönlich mag Lua nicht, dadurch dass keine geschweiften Klammern eingesetzt werden ist es zu unleserlich für mich.


    Grundsätzlich bin ich auch Fan der geschweiften Klammern, für mich überwiegt aber die Übersicht dennoch in Lua.


    Blöd zu handlen in Pawn sind z.B. Floats:
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid, x, y, z);
    new message[32]; // zählen???
    format(message, sizeof message, "X: %.2f, Y: %.2f, Z: %.2f", x, y, z);
    SendPlayerMessageToPlayer(playerid, 0xFF0000FF, message);


    MTA:

    Code
    -- prozedual
    outputChatBox(string.format("X: %.2f, Y: %.2f, Z: %.2f", getElementPosition(player)), player, 255, 0, 0)
    
    
    -- objektorientiert
    local pos = player:getPosition()
    player:sendMessage(("X: %.2f, Y: %.2f, Z: %.2f"):format(pos.x, pos.y, pos.z), 255, 0, 0)


    An diesem Codeschnipsel kann mir niemand erzählen, dass die Lua Variante schwieriger/unübersichtlicher aussieht.

    Einmal editiert, zuletzt von Guenther320 ()

  • Ja, weil MTA Open Source ist und SA:MP nicht..
    überleg mal wie viel du machen könntest wenn SA:MP wie MTA wäre..


    Dann werden die Leute gar nichts an SA-MP machen, da der Server so scheiße resourceninperformant programmiert würde, das jeder Durchschnittsprogrammierer einen Krampf in der Hand bekommt, wenn er den Code anfassen würde.
    Auf die Tatsache das jedesmal wenn ich den SA-MP Server starte eine kleine Diode in meinem Prozessor suizid begeht, müsste man den Code erstmal komplett umstrukturieren sodass man überhaupt zusammen an diesem Code arbeiten kann.


    Das arbeiten mit einem SVN würde die Arbeit zwar erleichtern, aber man müsste den Code erstmal so anpassen das es überhaupt Funktioniert, im Team zu arbeiten.


    (Meiner Meinung nach.)

    526C4Hj.png Mit freundlichen Grüßen,
    Noneatme

    • Offizieller Beitrag

    Man kann ja alles in einzelne Includes auslagern und dann wunderbar mit Git arbeiten - ob das so effizient ist ist ne andere Sache


    „Nicht das, was du nicht weißt, bringt dich in Schwierigkeiten, sondern dass, was du sicher zu wissen glaubst, obwohl es gar nicht wahr ist.“
    Mark Twain

    ---
    ICH BIN NUR HIER UM LEUTE ANZUSCHREIEN

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Also PAWN ist halt in meinen Augen nur sinnvoll wenn man für SA:MP n Script oder Gamemode entwickeln möchte,
    ansonsten auch nicht.


    Pawn ist ne wunderbare Sache, wenn es darum geht eine Kleinigkeit in Konsolenanwendungen zu gestalten.
    Schnell mal ne Rechnung -> ausführen -> fertig.


    Ansonsten müsste man müselig in C / Java oder was auch immer her gehen und den kram neu schreiben.


    Pawn ist eine einfache Sprache, deswegen ist sie auch Ideal zum erstellen von kleineren Dingen.

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

  • Wie kann man das denn in Pawn realisieren?


    In PAWN gar nicht.
    Dazu brauchst du nen Interpreter (Implementer Guide lesen).
    Der SA:MP Server ist ansich ja nichts anderes.


    Er "liest" die amx und führt die Anweisungen darin aus.

    "Bevor ich mir Informationen aus der "Bild" hole,
    werde ich anfangen, Wahlergebnisse danach vorauszusagen,
    neben welchen Busch unsere Katze gepinkelt hat."

    Margarete Stokowski

    Einmal editiert, zuletzt von Akino Kiritani () aus folgendem Grund: n und m - so nah beieinander ._.

  • Wie ein Entwickler von sourcepawn sagte:


    Zitat

    Pawn is derived from "Small C", which was made in 1984. It has a number of severe syntactic and semantic flaws compared to modern languages, and it's become quite painful to use. All of its problems can be ultimately blamed on the tag system. The tag system erases type information, which prevents us from implementing garbage collection, which prevents us from implementing better datastructures, true arrays, true strings, objects, and lambda functions.


    wäre dafür wenn man quasi ans unbauen denkt ähnlich wie bei sourcepawn

  • Genauso wie ich in der Webentwicklung abgesehen von ASP nur PHP verwenden kann


    Also ich verwende ja C++ für Webentwicklung. Und wenn es sein muss verwende ich auch PAWN (via CGI). Keine Ahnung was die Aussage aussagen (get it?) soll.


    B2T: Nichts an PAWN ist schlecht, in Anbetracht des "eigentlichen" Einsatzzwecks.

    Moderator der Bereiche: Coding, Vorstellungsrunde und Handelsecke. Über Verwarnungen, falls du zu den Wenigen gehörst, die eine Verwarnung von mir erhalten haben, kannst du jederzeit mit mir reden, sofern der Umgangston stimmt.


    expect us. / unkompetent. Das neue dynamisch. / easy-stripping.net - coming soon! / "9§. the entire website bestands out of english." / Vollprofi in allem, wo gibt und noch mehr; kann auch OOP.
    Kleine Coding-Frage? Schau doch in #dev im IRC vorbei, wir können dir sicher helfen.


    Ich bin für Aufträge im Bereich der Webentwicklung (z.B. User Control Panel) zu haben. Kontaktiere mich diesbezüglich einfach in einer privaten Nachricht mit deinen, möglichst konkreten, Vorstellungen.


    lesen.denken.posten. - [22:54:14] <Goldkiller2> früher gabs immer so coole user da stand in der signatur "lesen.denken.posten."


    Mafia 2 Multiplayer (m2mp.de) - Eine kostenlose Modifikation für Mafia 2, die es, ähnlich wie SAMP, erlaubt über das Internet oder LAN mit bis zu 1000 anderen Spielern zu spielen.

  • Wir gesagt, ist die Aussage, dass für Webentwicklung nur php oder asp funktionieren absoluter blödsinn, perl, ruby, python sind auch schon recht etabliert, im prinzip ist jede Sprache, die text ausgeben kann, geeignet.


    Pawn an sich ist für den Einsatzzweck, nämliche "simple" programmierung auch gut geeignet, es gibt einfachere und auch komplexere Sprachen, aber für SA:MP passt Pawn schon.

    Die moralische Instanz des Brotfisches.

  • Beitrag von ChristianW ()

    Dieser Beitrag wurde gelöscht, Informationen über den Löschvorgang sind nicht verfügbar.
  • @NicoWiss:
    Es gibt viele Seiten bzw. Firmen, die benutzen nen Apache Tomcat, Glassfish, o.Ä, für das Konzipieren ihrer Websites mittels JavaServlets und JavaServerPages (Java Enterprise Edition).


    LG

    Main: CPU: Intel Core i5-4440 @ 3,10 GHz | CPU-Cooling: Matterhorn -PURE- | RAM: 16GB Crucial Ballistix Sport DDR3-1600 DIMM CL9-9-9-24 |
    Motherboard: ASRock B85M Pro4 | GPU: Sapphire Radeon R9 390X Nitro 8GB GDDR5 |

    SSD: Samsung SSD 840 Evo 500GB | Power Supply: 550 Watt Corsair CS Series Modular 80+ Gold | Case: beQuiet! Silent Base 800


    As I walk through the valley of the shadow of death
    I take a look at my life and realize there's nothin' left.

  • Es tut mir Leid aber der einzige, der sich anscheinend nicht auskennt und immer irgendein Pseudowissen anbringen willst, bist du. Wenn du dich wirklich auskennen würdest, müsste ich hier nur Ruby on Rails erwähnen. Und ja. Das wird oft mal verwendet. Google einfach und informier dich.

    Die moralische Instanz des Brotfisches.

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen