Hallo dedlfix,
eine ernstgemeinte Frage, denn ich weiß es nicht: Gibt es nicht auch bei solchen Austauschformaten eine Art indirekten Kontextwechsel, wonach man sich einigermaßen richten kann?
Also zum Beispiel: Wir haben verschiedene Sprachen, sagen wir einfach mal JavaScript, PHP und Perl. Könnte man dann nicht sagen:
- Möchten JavaScript und PHP Daten austauschen, "einigen sie sich" entweder auf JSON oder PHP-serialize
In dem Fall besser JSON. JSON hat Tools in beiden Welten. PHPs serialize() ist nur bedingt mit Javascript verarbeitbar. Knackpunkt ist hier die unterschiedliche Handhabung von Arrays und Objekten in beiden Welten. Das geht zwar prinzipiell alles, aber man muss sich erstmal Tools herstellen oder anderenorts welche finden.
Hier würde ich auch JSON nehmen, es ging mir nur um das generelle Vorgehen.
- Will JavaScript etwas z.B. im localStorage speichern wird JSON verwendet
- Will PHP etwas z.B. in einer Datei speichern wird PHP-serialize verwendet
- Will Perl etwas z.B. in einer Datei speichern wird Perl-Storable verwendet
Das ist wohl das vernüftigste, weil das individuell auf die Sprache und deren Belangen bei den Datenstrukturen abgestimmt ist.
Das wäre auch meine Einschätzung gewesen.
Zum Austausch kann natürlich auch ein anderes Format (XML, CSV, was-weiß-ich) verwendet werden, aber innerhalb sollte doch immer die dafür geeignetste Methode verwendet werden!?
Besser ist das. Es sei denn, man hat Grunde es anders zu machen. Und damit meine ich nicht irgendwelche generellen Gründe sondern bezogen auf den konkreten Anwendungsfall.
Der konkrete Anwendungsfall sollte erstmal außenvorbleiben.
Wenn dem so ist hätte man doch eine einigermaßen klare Regel für "richtig" und "falsch" mit der Begründung "Kontextwechsel".
Kontextwechsel braucht man nicht zu berücksichtigen, das machen die jeweiligen Tools. (Es sei denn, man schreibt das Tool selbst.) Der Kontextwechsel muss aber weiterhin beachtet werden, wenn solche serialisierten Daten in einen anderen Kontext gebracht werden.
Ich habe nebenan als Antwort auf Jörg noch etwas mehr hierzu geschrieben. Ich habe "Kontextwechsel" wahrscheinlich irreführend benutzt und meine eher so einen "Meta-Kontextwechsel", auch wenn das die Sache nicht einfacher macht :-) Ich weiß halt nicht, wie man das nennen soll. Vielleicht eher "kontextgerecht"?
Gruß, Dennis