Announcement

Collapse
No announcement yet.

Cairo Proposed To Become Part Of ISO C++

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • #21
    Cairo is not something the committee is actually planning to incorporate. It's just something they're investigating. You know, that thing that rational people do _before_ making any kind of decision for or against.

    It's desired by some to have a standard basic drawing, input, and windowing library provided with C++ implementations (not part of the core standard library) since "hello world" on a text console is no longer a great starting point for developers in 2014. Cairo came up in mailing list discussions and so now it's being looked at, but it's very unlikely it'll be chosen as a basis given that it lacks all of the other basic necessities of a GUI library.

    The committee is quite well aware of all the options and existing solutions including the OS-specific ones, Qt, and so on. The goal is not to replace those, but to make it so that every C++ compiler on a graphical platform can be expected to ship with a well-known and compatible library capable of basic graphical I/O. Something like a stripped-down Cinder is the original motivating example.

    Here is the original paper on the intent of the "lightweight drawing library" (which yes, is intended to be more than just drawing; displaying a window, showing text, and supporting drag-and-drop are all listed as necessities under the Requirements bullet points).

    Comment


    • #22
      Originally posted by LightBit View Post
      File is not screen!
      Most people don't have telepathic ability to read files from disk or memory.
      It is still drawing. That's the point. I'm not against standardizing drawing, but just pointing out that drawing doesn't imply the use of a screen. Displaying requires a screen, not drawing.

      Originally posted by Marc Driftmeyer View Post
      I see this as a desperate attempt to gain public exposure and help with heavy lifting for Cairo.

      The production of that project has steadily declined for the past year. Meanwhile, a project that uses Cairo [amidst countless], Poppler, is blooming with activity.

      How about Poppler, Inkscape and a few others pitch in and bring Cairo up to meet it's lofty aims, sans illogical adoption into the ISO C++ Specification.
      Except that doesn't make sense, because it wasn't Cairo proposing this, but the other way around.

      Comment


      • #23
        risk to differ

        Originally posted by silix View Post
        Even as far as STL goes, I am not quite sure that should be there as well.
        especially given that one often writes his own container classes - or anyway uses different ones
        if you use Qt for instance, chances are you're already using qt's own classes rather than the stl ones..
        Actually, exactly because the C++ provides the STL one should never write one's own container class without a very good reason. Usually the compiler comes with a well debugged implementation that can save you a lot of time. IMHO even if the STL doesn't provided what you need, its is always a good idea to base ones own implementation on an STL container. Besides, the advantage of a standard is, you need to learn it only once.

        It's another story if you are already in QT land, then you would of course use Qt containers and probably base new containers on these. But I think it would still be a bad idea to implement a new container from scratch, unless you have very specific needs.

        Comment


        • #24
          Originally posted by Illasera View Post
          Here is the thing, you can say that on ANYTHING, Next thing you know, you will include "boost" as part of the standard.
          Most new features are pulled right out of boost...

          Comment


          • #25
            Originally posted by silix View Post
            POSIX is an operating system specification - and specifically one for Unix, hence the X in the acronym - C is a language and associated runtime, as such it shall be os agnostic...
            if you make posix a part of the language standard you mandate for things such as (for instance) signals, or fork/exec that other perfectly working OS's dont have because they're inherent to the unix process model - or are you advocating every Os to be a clone of unix?

            Of course to have drawing standardized seems like a nice thing , BUT wouldn't fit with the intended scope and goal of C and C++ as languages (to remain as lean as possible so as to allow for anything upper level to be built and used upon it without tying itself to anything in particular)

            OTOH, why a somewhat "arbitrary" library like Cairo (worse, a C++ified (sic) version of it)?
            why not, for instance, AGG (which is C++ and is in widespread use in non - unix systems too)?
            or OpenVG, which is at least backed by an industry consortium of sorts and, unlike cairo, has hw-accelerated implementations in existence?
            Surprisingly to me at least is that openvg has very little to no hardware adoption. The implementations that exist are apparently software.I read about this on the fxos mailing lists FYI.
            IOW, it's dead Jim.

            Comment


            • #26
              Incorporating a library like cairo in the C++ standard would be a big mistake, it's already becoming obsolete and is not very suited for full GPU implemented rendering on multiple platforms. The standard libraries of C and C++ should remain as clean and lean as possible, leaving out any platform or architecture specific utilities. Lots of libraries also tend to do "everything", but doing nothing very well. Just take a look at the massive feature set of libraries like SDL. They should have focused solely on window and event management and doing it very well, instead of having an impressive feature list consisting mostly of useless implementations.

              Comment


              • #27
                Originally posted by LightBit View Post
                I also think it was mistake not to include POSIX into ISO C.
                iso c targets all systems including windows, while posix doesn't

                Comment


                • #28
                  Originally posted by Illasera View Post
                  For the reason that people may WANT something from it, Does it have anything to do with the language itself or the c++ committee? I am not sure.
                  so why aren't you whining about including printf in standard c library ? some people WANT printf - check. let's whine

                  Comment


                  • #29
                    Originally posted by gerddie View Post
                    Actually, exactly because the C++ provides the STL one should never write one's own container class without a very good reason. Usually the compiler comes with a well debugged implementation that can save you a lot of time. IMHO even if the STL doesn't provided what you need, its is always a good idea to base ones own implementation on an STL container. Besides, the advantage of a standard is, you need to learn it only once.

                    It's another story if you are already in QT land, then you would of course use Qt containers and probably base new containers on these. But I think it would still be a bad idea to implement a new container from scratch, unless you have very specific needs.
                    In theory, I agree with you. In practice, I don't. STL containers are not safe to pass across DLL boundaries without great care, and are not designed to be inheritable, so they're often not practical to use.

                    Comment


                    • #30
                      Originally posted by silix View Post
                      Of course to have drawing standardized seems like a nice thing , BUT wouldn't fit with the intended scope and goal of C and C++ as languages (to remain as lean as possible so as to allow for anything upper level to be built and used upon it without tying itself to anything in particular)
                      there is no such goal for c++, you live in fantasy world
                      Originally posted by silix View Post
                      OTOH, why a somewhat "arbitrary" library like Cairo (worse, a C++ified (sic) version of it)?
                      why not, for instance, AGG (which is C++ and is in widespread use in non - unix systems too)?
                      or OpenVG, which is at least backed by an industry consortium of sorts and, unlike cairo, has hw-accelerated implementations in existence?
                      it is one of possible proposals at early stage. feel free to submit another and accept feedback. process is open for everyone.

                      Comment

                      Working...
                      X