3 ms·
SVG is still a stupid format. Who wants to send image data through XML? It would be like sending a raster image through a big JSON array.
by identity0 6y ago
SVG is still a stupid format. Who wants to send image data through XML? It would be like sending a raster image through a big JSON array.
- onion2k 6y agoWho wants to send image data through XML? SVGs aren't image data. They're a set of instructions for recreating image data using a structured language. XML is very good for data like that.
- saagarjha 6y agoAnd their text format is exceedingly useful if you're writing code to generate them.
- IshKebab 6y agoI don't think it would really be any more difficult if it were binary. The only real reason to use XML is better integration with HTML, CSS and JavaScript, which is admittedly a compelling reason. But I think he's right - it would be nice if there was a "proper" binary vector format that was widely supported.
- saagarjha 6y agoI mean, I can write a line of Python that goes print(f"""<rect x="{x}" y="{y}" width="{w}" height="{h}"/>""") I find this eminently easier than working with a binary format.
- IshKebab 6y agoThat's a pretty error prone way of writing SVGs though. In well written code you would use a strongly typed API and that API would be exactly the same for a binary format. Think about how you write Protobuf files for example.
- saagarjha 6y agoIn the circumstances where I actually cared I would use a strongly typed language with nice wrappers, of course ;) The reason why I love SVGs is you can just belt them out from scripts and it's the easiest thing in the world. Same reason why I love GraphViz and Netpbm.
- porphyra 6y agoText-based formats like XML and JSON are good if most of your data is strings, but storing numeric data in decimal strings is both inefficient and inaccurate. That's why I think that HTML is an appropriate use of XML-like markup but perhaps vector images would need a true binary version. However I agree with saagarjha that it is very easy to write code to emit SVG, which is nice.
- mldbk 6y agoSVG is vector. So basically XML is suitable for that task.
- porphyra 6y agoOne could conceivably make a binary format based on Messagepack or Flatbuffers for vector data, which would be much more efficient and eliminate rounding problems of converting between floats and decimal numbers in text representations.