Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

SVG is not considered a graphics API, just like PDF isn't.


You mean YOU don't consider SVG a graphics API. But it's right there in the name, dude.

If the article is going to bring in Canvas, it should bring in SVG. SVG shares more with opengl than Canvas does.


SVG is just a file format though, that I suppose you can manipulate in the DOM. By your standard glTF files would be an "API" also. Have you written D3D/GL/Vulkan/Metal? It's not even remotely similar.


> SVG shares more with opengl than Canvas does.

SVG is declarative.

Canvas and OpenGL/Vulkan are imperative.


These are all tools programmers use to draw to the screen. In the browser there are now 3 such tools: svg, canvas, and webgpu.

svg's primitives are shapes and you program it with js and dom.

canvas primitive is a 2D array of pixels, and you program it with js and an api.

webgpu's primitive are pipelines (or whatever) and you program it with js and an api.

Maybe you're hung up on using the dom instead of an api. But the dom is an api, and it is further specialized by svg. Mutating the screen is exactly equivalent to mutating the dom within SVG. The mental model is that of a persisting scene that you nudge around with changes. This, versus the mental model of canvas where shape persistence is up to you. My understanding of low-level 3d graphics (limited to that of a hobbyist) is that driver commands setup a pipeline and then nudge around a scene graph in a similar fashion to svg. So it is doubly ironic that she would omit it.


I'm going to give you the same unwarranted snark that you gave the author:

"In the browser there are now 3 such tools: svg, canvas, and webgpu."

That's wildly incorrect, and anyone should take your comments with a huge grain of salt. There are far more than 3 drawing tools in the browser.

Why are you excluding CSS? You can draw with it, as well. https://codepen.io/matheuswf95/pen/wgRMwW

Why are you excluding Video HTML elements? It's possible to pipe directly to them from Javascript.

Why are you excluding drawing in the DOM? Do you hate ASCII and ANSI art? https://www.crummy.com/software/ansi2html/

Why are you excluding the JS Console? You can draw to that. https://dev.to/shriji/game-on-console-log-5cbk

Why are you excluding the HTML Title? Someone made a game that you play entirely in the browser's Title? https://titlerun.xyz/

Why are you excluding GIF? I can't find it, but I saw someone made a remote desktop client that encoded the video as a never-ending GIF stream.

Why are you excluding fonts? You can create custom fonts and use them to draw all kinds of crazy things.

We draw the line somewhere. I thought the History of Graphics APIs in the article was great. Sorry it disappointed you. I felt your attack on the author's credibility, "[I]t omitted SVG entirely. So one should take it with a grain of salt" was pedantic and rude.


I had a lot of fun clicking through these links. One of my favorites to add here is drawing with the Checkbox. https://www.bryanbraun.com/checkboxland/



You can create an HTML table with 1 pixel cells, and use the DOM api to change individual cell background colors to make it work like a canvas.

Does that mean that HTML tables are a graphics API?


> svg's primitives are shapes and you program it with js and dom

Maybe you do and that's fine. I program SVG by dynamically generating it on the server in Lisp. No js required unless I need to change an element at runtime. SVG is much more centered on "paint a picture with vectors and then send it to the browser" than "call a function to draw this vector RIGHT NOW" which is why people here are saying it's not really an API the way Vulkan and WebGL and WebGPU are.

For SVG to be considered an API, HTML would have to be one too. For SVG to be relevant to TFA, it would also need to express 3D geometries, and SVG is focused on 2D.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: