Welche Configuration File Formate benutzt Ihr in euren Projekten?
-
YAML oder GAMMEL schrieb:
was genau findet ihr eigentlich besser, JSON oder YAML?
Beide sind sich enorm ähnlich.
JSON ist zB gültiges yamlIm Prinzip hat Side aber schon das essentielle gesagt: einen eigenen Parser schreiben kommt nicht in Frage - also welche Parser hat man zur Verfügung?
Bei uns ist es eben so, dass ein größteil aller Config Sachen in yaml und ini Dateien vorliegt - weil das eben die guten Parser sind die wir haben.
JSON und XML bietet sich hier natürlich auch an, weil es dazu Parser wie Sand am Meer gibt...
PS:
Wegen den Spaces bei YAML: http://editorconfig.org/
Seit es EditorConfig gibt, sind solche Sachen wie Spaces/Tabs etc vollkommen uninteressant geworden. Man lädt die passende Config und schreibt den Code so wie man es gewohnt ist. Den Rest macht EditorConfig.
-
Und was verwendet EditorConfig als Konfigurationsformat? ... INI
-
also wer es nicht auf die reihe kriegt, so einen verschissenen (man verzeihe mir das wort) ini-parser zu programmieren, der darf sich nicht programmierer nennen.
xml ist da schon eine andere liga, aber einen ini parser...
verstehe ich jetzt auch nicht, warum man keine eigenen parser programmieren soll. irgendjemand programmiert parser, sonst hätte ja keiner einen (weil ja keiner einen programmiert).
ob diese leute das genausogut können wie du und ich ist hier die frage.
das gleiche gilt auch für irgendwelche crypto-libs... ständig hört man den spruch "bloß nicht selber implementieren, sondern eine fertige lib verwenden!".
find ich problematisch, immer zu sagen "Ein anderer macht's, und er machts wahrscheinlich auch noch besser als ich!".
-
das übliche blabla schrieb:
also wer es nicht auf die reihe kriegt, so einen verschissenen (man verzeihe mir das wort) ini-parser zu programmieren, der darf sich nicht programmierer nennen.
Es geht nicht ums koennen. Jeder Affe kannen einen validierenden XML Parser schreiben - er braucht halt dementsprechend.
Es geht darum, dass nur dumme Leute alles selber machen. Config parser gibt es wie Sand am Meer. Wer einen selber schreibt, der hat was grundlegendes an der Programmierung nicht verstanden.
-
Shade Of Mine schrieb:
Es geht darum, dass nur dumme Leute alles selber machen. Config parser gibt es wie Sand am Meer.
ja, aber woher willst du wissen, dass die erhältlichen parser nicht auch von "dummen leuten" programmiert wurden?
ich hab schon quellcodes von kommerziellen spielen gesehen. alle haben ini-dateien benutzt, und ALLE hatten einen EIGENEN parser.
-
-.-'' schrieb:
Shade Of Mine schrieb:
Es geht darum, dass nur dumme Leute alles selber machen. Config parser gibt es wie Sand am Meer.
ja, aber woher willst du wissen, dass die erhältlichen parser nicht auch von "dummen leuten" programmiert wurden?
ich hab schon quellcodes von kommerziellen spielen gesehen. alle haben ini-dateien benutzt, und ALLE hatten einen EIGENEN parser.
Sie koennen von den groessten Idioten der Welt programmiert worden sein. Wichtig ist, dass sie Fehlerfrei sind. Und fehlerfrei ist nur Software die sehr sehr sehr sehr gut getestet wird. Und welche Software ist das? Nur Software die ueberall eingesetzt wird.
PS:
google mal nach "das rad neu erfinden"
-
also was jetzt?
ini oder yaml? oder doch json?
was ist jetzt am "leichtgewichtigsten" und resourcensparensten?
-
ini
Lediglich für simple Configs ist das am einfachsten, sowohl für den Schreiber, als auch für den Parser.
-
Nathan schrieb:
ini
Lediglich für simple Configs ist das am einfachsten, sowohl für den Schreiber, als auch für den Parser.ok, und für etwas komplexeres?
yaml oder json?
-
Entweder ganz einfache Konfigs mittels Key=Value-Paare (also ini). Oder wenn es komplexe Konfigs sind, benutze ich gleich eine Scriptsprache, z.B. Lua.
Sowas wie XML ist irgendwie witzlos. Zu viel Overhead für ein wenig Struktur, und trotzdem nicht leistungsfähig wie Lua.
-
Shade Of Mine schrieb:
Es geht darum, dass nur dumme Leute alles selber machen. Config parser gibt es wie Sand am Meer. Wer einen selber schreibt, der hat was grundlegendes an der Programmierung nicht verstanden.
Nur dumme Leute bezeichnen andere Leute als dumme Leute
.
-
Artchi schrieb:
Entweder ganz einfache Konfigs mittels Key=Value-Paare (also ini). Oder wenn es komplexe Konfigs sind, benutze ich gleich eine Scriptsprache, z.B. Lua.
Sowas wie XML ist irgendwie witzlos. Zu viel Overhead für ein wenig Struktur, und trotzdem nicht leistungsfähig wie Lua.
eine skriptsprache als config-file? eine interessante idee. aber wie schaut dass dann aus?
z.b.:
; "userdata.ini" -- http://commons.wikimedia.org/wiki/File:Mustermann_nPA.jpg [USER] username=Erika Mustermann birth_day=12 birth_month=08 birth_year=1964
wie würde dann sowas in lua oder python aussehen? erschliest sich mir nicht ganz
-
Für solche Sachen nutzt er ini, hat er ja auch geschrieben.
-
max mustermann schrieb:
wie würde dann sowas in lua oder python aussehen? erschliest sich mir nicht ganz
$user = array( 'name' => 'Erika Mustermann', 'birth' => new Date(12, 8, 1964) );
Ich mag yaml fuer sowas (yaml und json sind hier prinzipiell deckungsgleich)
user: name: Erika Mustermann birth: year: 1964 moth: 8 day: 12
Aber ganz ehrlich:
Es gibt genau 2 arten von Config Dateien:
Flache Config Schen wie zB ini
Oder strukturierte Formate wie JSON, YAML, XML,...Man muss sich nur entscheiden welche Art man will und dann nimmt man dort das Format dass in der Domain in der man sich bewegt am gaengigsten ist. Denn in der Praxis unterscheiden sich YAML und Lua fuer die configdatei nicht.
-
Aus Anwendersicht empfinde ich YAML als benutzungsfreundlicher. Aus Programmierersicht gefällt mir JSON wegen der eher strikteren Regeln besser. JSON ist ja auch, wie bereits erwähnt, gültiges YAML 1.2.
Meistens setze ich JSON ein, vor allem weil meine Konfigurationsdateien nicht von jedermann bearbeitet werden müssen, heisst nicht wirklich hochgradig benutzungsfreundlich sein müssen, und weil JSON, zumindest meiner persönlichen Erfahrung nach, eine deutlich bessere Unterstützung hat. YAML sehe ich eher selten im Einsatz. Zudem hatte ich schon Einsatzorte, wo ich zumindest damals, weder YAML noch JSON Parser mit den richtigen Feature-Unterstützung zur Verfügung hatte und man ein JSON Parser schneller schreibt als einen YAML Parser. Die strikteren Regeln sind da sehr hilfreich.
XML kommt bei mir eigentlich so gut wie nie mehr zum Einsatz, wenn ich nicht aus externen Gründen dazu gezwungen bin (z.B. bestehende Schnittstellen).
Grüssli
-
"JSON" ausgeschrieben heißt "JavaScript Object Notation"... es mag jetzt dumm klingen, aber ich benutze es nicht, weil es "JavaScript" im namen hat (und ja, ich weiß, dass javascript != java [ich habe mit beiden keine guten erfahrungen gemacht] ist).
yaml (spricht man das eigentlich "y - a - m - l" oder "jammel" aus?) sieht auf den ersten blick recht gut aus.
xml bietet bestimmt mehr features, aber dafür ist es überladen... keine ahnung, wer das heute noch einsetzt? im grunde könnten doch json oder yaml xml ersetzen?
ich lehne mich jetzt mal weit aus dem fenster und sage: yaml ist in den meisten fällen die beste lösung.
-
Whitespace-sensitive *wuerg*
-
xml wird afaik nur von java programmierern benutzt
-
sequel schrieb:
xml wird afaik nur von java programmierern benutzt
Hin und wieder ist es schon etwas peinlich hier im Forum zu sein
Kleiner Edit:
http://programmers.stackexchange.com/questions/61198/if-xml-is-so-bad-why-do-so-many-people-use-it
(aber da gibt's sicher bessere Artikel, nur freut's mich jetzt nicht lange googlen)MfG SideWinder
-
HTML... ne scherz ^^ schrieb:
"JSON" ausgeschrieben heißt "JavaScript Object Notation"... es mag jetzt dumm klingen, aber ich benutze es nicht, weil es "JavaScript" im namen hat (und ja, ich weiß, dass javascript != java [ich habe mit beiden keine guten erfahrungen gemacht] ist).
Dann bist du dumm
JSON ist grundsätzlich gültiges Javascript. Aber was solls? Wieso darf man das nicht auch für etwas anderes verwenden? Zudem ist es wirklich eine sehr gute Syntax. Man braucht auch gar keinen Javascript Parser dafür. Ich kenne niemanden, der für JSON einen Javascript Parser verwendet. Nicht mal in Javascript verwendest dueval
für das Lesen von JSON Daten, da dies ein Sicherheitsrisiko darstellen würde. Es gibt somit extra JSON Parser in Javascript selbst.JSON und Javascript sind somit schlussendlich in ihrer Anwendung komplett unterschiedliche Dinge.
HTML... ne scherz ^^ schrieb:
yaml (spricht man das eigentlich "y - a - m - l" oder "jammel" aus?)
Man spricht es "jammel" aus. Siehe englische Wikipedia:
http://en.wikipedia.org/wiki/YAMLIst ja ursprünglich auch die Abkürzung für "Yet Another Markup Language". Inzwischen heisst es "YAML Ain't Markup Language".
HTML... ne scherz ^^ schrieb:
xml bietet bestimmt mehr features, aber dafür ist es überladen... keine ahnung, wer das heute noch einsetzt? im grunde könnten doch json oder yaml xml ersetzen?
Mir ist nicht bekannt, was man in XML machen könnte, was z.B. in JSON nicht geht. XML ist vielleicht höchstens etwas mehr standardisiert mit Zusatzstandards. Heisst XPath, XSL, XSLT, XML-RPC, etc. Es gibt aber durchaus auch JPath, JSONPath, JsonT, JSON-RPC, JSON-Schema, etc. Zum Teil gibt es aber auch mehrere davon und das Zeug ist noch nicht so vollständig standardisiert. Gibt halt noch ein paar Konkurrenzformate und es benötigt wohl noch etwas Zeit, bis sich hier klare Standards etablieren.
Für binäre Format gibt es übrigens noch BSON.
Grüssli