3 ms·
The motivation reads exactly like the xkcd comic on standards. http://xkcd.com/927/ http://xkcd.com/927/ The rest of the document reads like someone just disco
by rcfox 13y ago
The motivation reads exactly like the xkcd comic on standards. http://xkcd.com/927/ http://xkcd.com/927/
The rest of the document reads like someone just discovered the Cairo library and wouldn't it be cool if we jammed this into our already overly-bloated standards document?
There is no all-purpose graphics library. What's good for games isn't necessarily good for rendering PDFs and vice versa.
- adamnemecek 13y agoThat comic is starting to be used in situation where it's pretty irrelevant, such as here. How many cross-platform 2D graphics libraries are there? Also, the purpose is pretty obvious if you look at the use cases of Cairo and it's obviously not meant for (serious) game making, but there already is an open standard for that.
- rcfox 13y agoI'd say it's very relevant. The "Motivation and Scope" section bemoans the over-abundance of library choices and then declares that there should be one standard library for all developers to use. That's literally the situation in the comic. > How many cross-platform 2D graphics libraries are there? The document itself points out 4 cross-platform libraries. A simple Google search for "cross-platform 2d library" yields at least a dozen more. > Also, the purpose is pretty obvious if you look at the use cases of Cairo and it's obviously not meant for (serious) game making ... They explicitly state that they want to serve rendering of any type, including games.
- adamnemecek 13y ago>> That's literally the situation in the comic. No, the comic describes a situation with 15 competing standards. This is the first standard of it's kind. >> The document itself points out 4 cross-platform libraries. The document points out Qt, Cairo, GTK+, or SDL. Let's not count Cairo since this is basically Cairo. Qt is not GPU accelerated (nor is it a graphics library, Qt's graphics library is called Albert I believe) and GTK+ is not really a graphics library either and AFAIK, it itself relies on Cairo. So the only contender is maybe SDL (idk I don't know much about it, but it appears to be higher in the stack). And yeah, Google search does yield a lot of results. Similarly, if you Google for 'programming language', you will also get a lot of results. That does not mean that all of them are interchangeable or that all of them can be used for general purpose computing. If you are going to build a serious project, you will probably choose a platform with some support (such as a standard implemented by several vendors) behind it. The only real contender that comes to mind is Skia (of the Chrome and Android fames). >> They explicitly state that they want to serve rendering of any type, including games. They're talking about 2D games.
- frankzinger 13y ago...wouldn't it be cool if we jammed this into our already overly-bloated standards document?" I think C++ gets the most flack for being too complex and bloated. But when you compare it to Java and C#, C++11, the language (based on language specification word/page count), is smaller than Java and only a little bigger than C#. The C++11 standard library is much smaller than both the Java 7 SE and the .Net (FX only) libraries. Source: http://media.ch9.ms/ch9/5c51/d30749f7-09d7-4266-bd57-d1d446165c51/GN13HerbOneCpp_mid.mp4 http://media.ch9.ms/ch9/5c51/d30749f7-09d7-4266-bd57-d1d4461..., just after 15 minutes in. Or http://view.officeapps.live.com/op/view.aspx?src=http%3a%2f%2fvideo.ch9.ms%2fsessions%2fgonat%2f2013%2fGN13_Sutter.pptx http://view.officeapps.live.com/op/view.aspx?src=http%3a%2f%..., slide 14 and 15 (see the top-right corner of slide 14 for the metrics used for the comparison (page/word count of the language specs). EDIT, for context: the speaker/author referenced is Herb Sutter, member of the C++ standisation committee, and one of the authors of the graphics proposal in question.
- Daishiman 13y agoYeah, but you can actually understand what is going on in Java pretty quickly and get the weird corners cases on Stack Overflow. By contrast, C++ requires that the user understand most of the minutiae, details, corner cases, and weird things that the language describes just to get a rather low level of competence. The length of a language spec has little to do with its usability.
- edmccard 13y ago>But when you compare it to Java and C#, C++11, the language (based on language specification word/page count), is smaller than Java I watched the presentation where Herb Sutter said that, and I think that claim is disingenuous, because the Java Language Specification is much wordier than the C++ spec. For example, the section on integer literals in the JLS is 1.5 times longer (measured by word count) than the same section in the latest C++ draft. Is it because Java's literals are more complex than C++? No, it's because of things like explicitly listing the minumum and maximum numeric values of int and long literals (in each of decimal, hex, octal and binary) In general, I think that the terseness of the C++ spec is not a good measure of the relative simplicity of C++.
- a-nikolaev 13y agoAbsolutely agree. OpenGL, SDL, Cairo, all are great and useful for their own purposes, with rather small overlap between then. A single uniform API for graphics is practically impossible, so why bother? To attract beginners? Graphics has very limited usage without full GUI. I can think of only games and chart-rendering applications (or similar) that don't really need GUI. But games require some means for windows-handling (like GLUT in OpenGL). And "chart-rendering" require output routines to produce PDF/PS/SVG/PNG.. In any case, you need quite a lot of auxiliary IO functions to really do anything useful. So, how much of thes auxiliary stuff will be included in the standard library? Also, if they plan to implement output with both DirectX and OpenGL, there is quite a lot of work to ensure that everything works on computers with GPU, without GPU, with ancient GPU, on Windows, Linux, OSX and actually looks roughly the same. This is not easy, if you want to do it efficiently. For game development, beginners choose Flash game engines, or GameMaker, or something like that. I doubt that C++ can work better for them, even with Cairo built in. The standard library will always have limitations, so you will need to use external libraries at some point anyway. And a transition to an external library can be difficult, if the standard library is already used extensively. Yes, probably, humongous standard library is good for cross-platform development, but it must be implemented first. And again, external libraries are sometimes necessary anyway. Also some UI libraries are already cross-platform, like Qt, btw.