Follow Slashdot blog updates by subscribing to our blog RSS feed

 



Forgot your password?
typodupeerror
×
Programming

How C++ Programming Language Became the Invisible Foundation For Everything, and What's Next (techrepublic.com) 107

The origins of C++ date back 40 years, yet it remains one of the most widely used programming languages today. TechRepublic spoke to C++ creator, Bjarne Stroustrup, to find out why. An excerpt from the interview: Today, Stroustrup is a Technical Fellow at Morgan Stanley. His work with the International Organization for Standardization (ISO) for the C++ standard and on the C++ Core Guidelines are considered part of his role with the finance giant, and he remains very much involved in the development of C++. Most notably, Stroustrup forms part of the direction group, which presents and discusses recommendation about the future of the programming language. He also follows the evolution group, and takes part in discussions about new language features. When it comes to the day-to-day running of C++, however, Stroustrup is happy to take more of a backseat role. "I follow administrative activities but try to do as little as possible there. I am not a great administrator," he admits. Before the pandemic, Stroustrup would travel a lot to teach, and to explain C++ to the world at large through his books, articles, and interviews -- though much like the rest of the world, 2020 has put a temporary end to this.

"For my work, I depend critically on talking with people to learn about their problems and hear how my ideas might help them," Stroustrup says. "In this time of the pandemic, I am deprived of much-needed feedback. Virtual talks and interviews are not the same, and the dynamic of Zoom meetings are inferior to real face-to-face meetings when it comes to discussing design and ideas." The COVID-19 pandemic has also hindered progress with the next two iterations of the language, C++20 and C++23, though Stroustrup affirms that "almost all" of C++20 will ship in 2020. "Beyond that, there is work on Unicode, numerics, game development and low latency, tooling, AI, and much more," he says. "We ship a feature (language and library) when it is ready, and we issue a revised standard every three years. C++14, C++17, and C++20 shipped on time. It is worth noting that the standards effort and the major implementors are very much in sync. "It is crucial that C++ remains coherent and is a stable platform for development."

This discussion has been archived. No new comments can be posted.

How C++ Programming Language Became the Invisible Foundation For Everything, and What's Next

Comments Filter:
  • by Z80a ( 971949 ) on Friday November 13, 2020 @04:25PM (#60721186)

    Except for all the others

  • Python went the wrong way making Python 3 incompatible with Python 2.
    But C++ has gone too far the other way, not adding any new words and onstead overloading the old ones.
    And when I switch from Python to C++, the ugly C++ syntax really sticks out.

    "static" should have ONE meaning and ONE meaning only, FFS.

    • by Joce640k ( 829181 ) on Friday November 13, 2020 @04:48PM (#60721278) Homepage

      the ugly C++ syntax really sticks out.

      You can get used to syntax.

      It's a lot harder to get used to a language that keeps running into brick walls WRT abilities or performance, or that happily compiles and runs and constantly massages data types so you can compare strings with numbers and get all sorts of subtle errors at runtime.

    • by VaccinesCauseAdults ( 7114361 ) on Friday November 13, 2020 @05:37PM (#60721428)
      Static already had two meanings in C in the 1970s before C++ was even born.

      For a global variable, static gives it internal linkage. For a local variable, static gives it a fixed memory location and initialisation on first use only.

      Yes, C++ added another similar meaning (per-class storage rather than per-instance storage), but the overload of static already existed in C.

    • by raymorris ( 2726007 ) on Friday November 13, 2020 @05:39PM (#60721434) Journal

      For Python 2.0 to 3.0, I have no problem with sacrificing backwward compatibility where necessary. That's what major versions *mean*, in my mind, an incompatible change.

      What made me feel sick to my stomach whenever I saw "Python" is this:

      Python 2.6 breaks compatibility with Python 2.5
      2.7 breaks things written in 2.6
      2.8 isn't compatible with 2.7 oops never mind 2.8 officially isn't Python anymore
      3.0 breaks things written in any earlier version

      We're not talking about breaking little-used features either, we're talking they broke things like PRINT. Pretty much every single script ever written in Python was broken.

      Over the course of 20 years or 40 years some things have to be broken as the language progresses, right? Python broke the basics three times in three years! Ever damn year they broke everything again.

      They say they are thinking about only breaking everything every few years now. We'll see what they actually do.

      • by Ksevio ( 865461 )

        For the most part, a Python 2 script can be made compatible with Python 3 with just importing the print function. A few libraries have changed, but I found the migration fairly painless

      • by Kisai ( 213879 )

        Yeah, this problem I want to say originated in Perl, as PHP and Python and Ruby have all done this "point release breaks things"

        The only appropriate way to version software is:

        (majorversion) . (minor version feature set) . (bug/security fix version).(optional build number or letter)

        In Major versions, you're allowed to remove features while adding new features that are improvements over the feature being removed.
        In Minor versions you introduce the features you intend for the next major version, but only depr

        • Twenty six years (Score:4, Insightful)

          by raymorris ( 2726007 ) on Friday November 13, 2020 @07:45PM (#60721814) Journal

          I've been using Perl regularly for over years and I can't think of anything that's been broken. The code I wrote 15 years ago runs just fine today. (An is an integral part of hundreds of thousands of web sites, so stability matters).

          Contrast Python 2.5, 2.6, 2.7, (2.8), 3.0 breaking most code every single year. Three total breakages in three years.

          I'm sure there has been SOMETHING that works slightly differently in the last 26 years, the 26 years that we've been using Perl 5. Whatever that is, it's enough of an edge case that I've not had a single problem with it. Generally what Per does is add new functionality, not randomly rename core functions or change their arguments (fucking Python). If you want different arguments, in Perl you add the new one as an optional argument. The old calling convention keeps working just fine.

          • by alantus ( 882150 )
            This exactly.
            Everybody likes crapping on Perl, but it just does what it's supposed to, it doesn't break things, and it's efficient.
            The problem is it doesn't force people to write legible code, so some people think who they're clever but end up writing crap they can't make sense of a month later. Also, OOP was added as an afterthought and is ugly, this is where Python excels.
            Nevertheless, for small programs, nothing beats Perl.
            • There is one really cool thing about Perl's object implementation. It's transparent. You can easily see exactly how it works. Building one class in Perl, you learn how objects actually work under the hood in most languages. I think that's really cool.

        • I can still run almost all my Ruby scripts from 2004 now, with a modern Ruby.

          Even most of my old libraries in C still work. The C api has grown but is mostly compatible.

          The stuff that changed and would break is mostly related to meta-programming, something you shouldn't normally do anyway outside of rapid prototyping.

    • by Viol8 ( 599362 )

      And other stupidities such as throw meaning throw , uh , except when part of a function definition when it means the exact opposite.
      Oh , and const_cast which perversely means remove const ness.

  • One of the more interesting computer programming related books I've read, was "The Design and Evolution of C++" by Bjarne Stroustrup. He did a really good job laying out how the language came to be...

    Doesn't anyone know if there's any updates to that? The one on Amazon appears to still be the one from 1994; it would be really interesting to see a similar work covering the changes that have happened since then.

    • by N7DR ( 536428 ) on Friday November 13, 2020 @04:42PM (#60721258) Homepage

      Doesn't anyone know if there's any updates to ["The Design and Evolution of C++" ]

      The closest is, I believe, his "A Tour of C++", which is basically a "This is what the new [up to C++17] features are there for" book, although you wouldn't really know that from the title. Not exactly the same emphasis as the earlier book... but it's by Stroustrup and therefore worth reading regardless.

      • it's by Stroustrup and therefore worth reading regardless.

        Thanks, didn't think about looking for other books by Stroustrup, I'll take a look. I don't really do any C++ at the moment but I like to keep up with what the language is doing, so even though that sounds less philosophical it still is probably a good idea to read through.

    • One of the more interesting computer programming related books I've read, was "The Design and Evolution of C++" by Bjarne Stroustrup.

      ...should be mandatory reading for C programmers.

      • ...should be mandatory reading for C programmers.

        That is a great point, I think maybe it should be mandatory reading for just about any programmer! The concepts it covers are really timeless and it's a really well written book that covers a pretty deep topic of language design... I think it would give anyone better appreciation for whatever language they ware working with.

        Probably time for a re-read myself..

  • by AndyKron ( 937105 ) on Friday November 13, 2020 @04:37PM (#60721232)
    I can't wait for what's next because I never understood C++. I never understood why it had to be so hard to use.
    • I can't wait for what's next because I never understood C++. I never understood why it had to be so hard to use.

      It's not hard to use, it just takes some time/effort to learn.

      (Time/effort that's well invested and will make you a real programmer, not just a fingers crossed copy-paster).

    • by joe_frisch ( 1366229 ) on Friday November 13, 2020 @06:10PM (#60721528)

      I thought early versions of C++ were very nice, they added object oriented features to C in a simple, and efficient way. IMHO that made it a very nice tool for low level programming the efficiency of C with some nice added syntax.

      Gradually though its become more complicated. Not it seems neither fish nor fowl, not really appropriate for low level coding, but as the poster above implied, far harder to use than high level language like Python.

      • Not it seems neither fish nor fowl, not really appropriate for low level coding,

        How is it not appropriate for low level coding? I sometimes write code for ATTiny's and when I do it's C++.

        far harder to use than high level language like Python.

        Depends on the task. Often you can hack something together in python faster, though by no means always. For code with longevity, Python is horrid. Lack of static typing for example makes refactoring a complete nightmare.

    • by jimmydevice ( 699057 ) on Friday November 13, 2020 @07:24PM (#60721762)

      C++ is for people too dumb to use pass by reference and function pointers.

  • by 140Mandak262Jamuna ( 970587 ) on Friday November 13, 2020 @04:56PM (#60721306) Journal
    One of the greatest thing about C++ is STL, the Standard Template Library.

    Its syntax is arcane and abstruse, but the power is amazing. I live and die by STL.

    If it is possible to support a UI markup language, leaving the actual rendering to the system but the same call to launch and get a file name browser from directory, something simple, buttons, radio buttons, drop box, edit box, .. It would be great.

    Like it is absorbing boost and stuff, it should absorb basic Qt or something.

  • No (Score:3, Funny)

    by eclectro ( 227083 ) on Friday November 13, 2020 @05:00PM (#60721322)

    Security has become too important. Code will be rewritten in languages like Rust and C++ will be thrown on the same scrap heap Cobol was.

    Remember when Pascal was the be-all to end-all?? Same thing will happen with C++

    That's great they're updating it though. They do the same with Fortran from time to time.

    • Pascal, ada etc not c, C++
    • Re:No (Score:5, Insightful)

      by OzPeter ( 195038 ) on Friday November 13, 2020 @05:21PM (#60721386)

      Security has become too important. Code will be rewritten in languages like Rust and C++ will be thrown on the same scrap heap Cobol was.

      Remember when Pascal was the be-all to end-all?? Same thing will happen with C++

      That's great they're updating it though. They do the same with Fortran from time to time.

      Cobol has been thrown on a scrap heap? Seriously?!?! You think that?!?!?

      • Re:No (Score:4, Insightful)

        by bug_hunter ( 32923 ) on Friday November 13, 2020 @05:35PM (#60721422)

        I feel we need to move past "The language is not dead, there's still a bunch of ancient software in COBOL that needs to be maintained".

        No programming language ever truely dies,
        they just fade away.

        • You're ignorant. There is modern maintained code in COBOL, moving your money in banking and insurance. Not dead and one of the most prolific languages ever for business.

          • I took the comment to mean that new software is not being written in COBOL, though certainly new code is being written to support old software. I thought financial software was mostly written in Java now?

            • by hawk ( 1151 )

              >I thought financial software was mostly written in Java now?

              For some reason, I've feeling an urge to go bury my wealth in the back yard . . .

              (but can't, because it's practically impossible to find coffee cans thee days!)

          • by jma05 ( 897351 )

            So tell us.
            What features of COBOL, other than to use existing routines entrenched in a given business, draws people to use it over any of the modern languages?
            What makes modern COBOL attractive over the modern alternatives?
            What kind of new project would I say, I should use COBOL for this, it just is the right tool for the job? Aside from interfacing with legacy systems, that is.

            • What features of COBOL... draws people to use it over any of the modern languages?

              1) Decimal math, everywhere.
              2) Easily link C libraries when needed
              3) Very fast formatted IO
              4) Efficient, deterministic runtime

              What kind of new project would I say, I should use COBOL for this?

              You won't. If you had to ask, use a more general tool.

            • COBOL is a specialised language that excels at volume processing tasks - like when I was taught it, the first thing you're given to do is merge a set of payroll and employee datasets. 3 lines of COBOL later you think, "well that was easy". And 2 of them were print statements.

              Its a bit like SQL, great language for what its designed to do, and what it does is exactly what financial systems do mostly - manipulate vast sets of data.

              • by jma05 ( 897351 )

                You mean easier than what you can do today with modern DataFrames in Python, R or Scala?

        • Don't underestimate the value of knowing that all your numbers are decimal.

    • by PPH ( 736903 )

      Code will be rewritten in languages like Rust and C++ will be thrown on the same scrap heap

      But what language will we write the Rust toolchain in?

      • by Sique ( 173459 )
        In Rust. The C tool chain is written in C. The C++ tool chain is written in C++.

        When I was studying CS (some decades ago), it was clear that you write the tools for a language in the language itself. And then you write a basic compiler in machine code, that is able to compile a simple compiler for a stripped down version of the language, which was used to write a compiler for the fully fledged language, in which you then write the compiler with all the bells and whistles and optimization options for the l

        • Re:No (Score:4, Informative)

          by PPH ( 736903 ) on Friday November 13, 2020 @07:56PM (#60721842)

          In Rust.

          Really? I don't see Rust's dependence on LLVM going away soon. I also don't see LLVM being ported to Rust. So the whole 'throw C++ on the scrap heap' seems a bit premature.

          • by Sique ( 173459 )
            LLVM in this case can be treated as the target architecture and you do not care how LLVM is implemented.
        • by shoor ( 33382 )

          You don't necessarily have to write the basic compiler in machine code. You can write a cross compiler in C, Pascal, Lisp...etc.

          I'm old enough to remember when a lot of stuff was written in Assembler, and I've even toggled binary code in from the front panels of machines a few times, but I don't think that happens very much anymore. (They don't even have front panels anymore.)

          • by Megane ( 129182 )
            Front panels basically went away once boot ROMs became a thing. It took a few years more for this to happen on microcomputers than on minicomputers. Those microcomputer front panels did some crazy shit like clocking jump instructions on to the bus.
            • by shoor ( 33382 )

              My personal experience with front panels was mostly with the Modular Computer Systems ModComp II, a 16 bit computer. You would be debugging some code, and want to try some little change. Rather than re-assemble, link, and load the whole program, you could sometimes get away with just toggling in a change, maybe a value to be loaded in a register, something like that, to see how it worked with the program already loaded. Those Modcomps had magnetic core memory. You could turn them off, then turn them bac

        • When I was studying CS (some decades ago), it was clear that you write the tools for a language in the language itself.

          That's a self-hosted [wikipedia.org] language, as opposed to bootstrapped [wikipedia.org]. They are both things.

        • The C tool chain is written in C.

          No it isn't, it's written in C++. GCC was written in C in the past. It got moved over to C++ and they recently adopted C++. Personally I think that GCC's bootstrapping policy is daft. I think a much better policy would be to update the minimum compiler much more frequently, possibly set to the previous major version number release.

          Don't get me wrong, it would be irritating to bootstrap, say, gcc 11 from gcc 4.8 by going to 5-6-7, etc all the way up to 11, but frankly not tha

      • by Kisai ( 213879 )

        A programming language isn't a real programming language unless it can compile itself. If it can't compile itself, then it's not yet a mature language. LLVM is the exception to the rule here because it is a C++ IR. So the front end compiler for Rust to LLVM means it's really being translated to C++, not actually depending on a self-hosted Rust runtime.

        Because OS's only come with C runtimes, fundamentally every OS runs on, and depends on C. Some OS's like Windows and OSX also come with additional runtimes, b

    • C++ will be thrown on the same scrap heap Cobol was.

      In your wishes. C++ enables one to write extremely low-level and extremely high-level code in the same language, there will always be people who understand and appreciate that. Even Cobol is far from dead, BTW.

      • Re:No (Score:4, Insightful)

        by Pinky's Brain ( 1158667 ) on Friday November 13, 2020 @06:26PM (#60721580)

        Hopefully people will stop commissioning high level code written in C++ though, it would do us all a massive favour. C(++)'s continued widespread use for the last few decades long after the seriousness of exploitability of the type of errors common in "unsafe" languages is economically unjustifiable, a trillion dollar mistake.

        Lots of rich criminals, lots of broken windows and wasted efforts on bandaids ... just because programmers refused to let go of their illusion of control.

        • If you think switching languages will get rid of security errors, I have news for you.

          It's scarily common for websites to allow login without a password. That's not incompetence, it's outright not caring.
    • Re:No (Score:5, Informative)

      by Dutch Gun ( 899105 ) on Friday November 13, 2020 @06:14PM (#60721540)

      There are plenty of cases where security isn't of primary importance, like in videogames. No one is going to seriously suggest rewriting the million or so battle-tested lines of C++ in the Unreal or Unity engines in Rust, not to mention all the native OS/console APIs, utility libraries, frameworks, etc. It's just not going to happen, period, because it's *not practical*.

      Rather, what's going to happen is that C++ will evolve into a language that emulates more Rust-like behaviors and traits, improving memory safety and tooling over time, all while trying to carefully maintain backwards compatibility - something which has been achieved to a remarkable degree so far, and makes C++ very attractive for long-term projects.

      C++ isn't just being "updated from time to time", like its in maintenance mode. Rather, the C++ language and standard libraries have undergone very substantial overhauls over the past decade. For instance, C++ 11 was a very substantial update, the beginning of what we call the "modern C++" era, introducing automatic memory management via smart pointers lambdas, and other modern techniques. C++ 20 has introduced modules, eliminating the need for archaic header files. The most recent language looks remarkably different than it did only a decade ago.

      Also, who exactly is touting C++ as the be-all end-all? Certainly not anyone I know of. It's a fairly specialized and difficult language only to be used in specific circumstances. C++ excels in three areas: high performance, powerful zero-cost abstractions, and its broad ecosystem and compatibility. If you don't need all three of those, pick another language.

      • Lack of security in video games will likely come as a surprise to those companies selling video games. I suspect that you are referring to the core gaming code rather than the game as a whole. Security is paramount for at least two aspects of the gaming industry: preventing cheating and locking down the games from pirates. Security is also employed in communication in multiplayer games as well. Security is also an issue for the core code if general flaws in the application can allow attacks to expand into b
        • Obviously, I'm not claiming security isn't important in some non-core aspects. I only said security wasn't of "primary importance", not that it was completely irrelevant. This is especially true for multiplayer games and MMOs.

          Keep in mind that you CAN write secure code in C++, especially modern C++, which has much better facilities for avoiding memory-related issues. Naturally, it's not nearly as good as Rust in this aspect, but far better than C or even older C++. Besides which, just as writing code in

    • COBOL isn't on the scrap heap, you're just ignorant of two of the hugest uses on planet earth apparently. COBOL moves your money and provides your insurance. Rust is a fad language, it will be nowhere in 15 years. No major industry is using it.

    • by Anonymous Coward

      Remember when Pascal was the be-all to end-all??

      I don't think Pascal never achieved the mindshare of C or C++ in the commercial world - not even close.

      I was programming in C in the very early 80's and went to a startup that was using Pascal (with some mods to support pointers - it was a parallel database machine that still is sold today although the code has since been mechanically converted to C and, of course, extended and with completely different hardware) - but we would have preferred C had we been abl

      • Delphi was incredibly popular for a very long time.

        It should have been adopted instead of Visual Basic, but like so many other failures-in-the-name-of-profit-and-control, MS saw it off.

    • Security has become too important.

      I'd like to agree with you, but security is an afterthought if you're lucky.

    • by sjames ( 1099 )

      The difference is that in spite of huge amounts of hype, Pascal never actually got much traction in the real world. Meanwhile, C++ is everywhere, and honestly is a more credible choice now than it was in the '90s (I saw some pretty awful code in the '90s that tried way too hard to be C++).

    • by Jeremi ( 14640 )

      Code will be rewritten in languages like Rust and C++ will be thrown on the same scrap heap Cobol was.

      ... someday. Probably a decade or two after IPv4 has been thrown on the scrap heap.

      Face it, there are too many millions of man-hours invested in developing, debugging, and maintaining all the C++ code that's already out there; nobody in their right mind is going to throw away all that working code until they absolutely have to. Which means we're going to keep using C++ for the foreseeable future, regardless of how fakatka the language is.

    • Remember when Pascal was the be-all to end-all??

      Pascal was never the "be-all to end-all".

      It had serious problems that were well known to everybody, eg.: https://www.lysator.liu.se/c/b... [lysator.liu.se]

  • by UnknownSoldier ( 67820 ) on Friday November 13, 2020 @06:25PM (#60721572)

    While C++ has become ubiquitous for "systems" programming, game development, etc. it encourages what I call Crap++ thinking. C++ encourages slow, bloated, over-engineered code that takes forever to compile:

    * iostream performance [gitlab.com] is crap. [fastformat.org] This has been known about since 2013 [youtu.be] The committee is looking to adopt std::format() to address these performance concerns. Who cares about performance when you can just throw more hardware at a problem!? /s
    * Modules are finally herein C++20. Meanwhile Pascal has had modules for what 50 years? ??? Why did it take so fucking long???
    * A simple crc32() in C takes roughly ~25 lines of code to implement. Parameterizing this into C++ turns it into this clusterfuck "solution": Boost's 2305 lines of code [boost.org]!?!?! The problem is that C++ encourages people to use a bloated library without actually thinking about the underlying, real problem. Because the last time you needed to extend a crc() function from 32-bits to X bits was when exactly? NEVER! You would be using a DIFFERENT algorithm that is faster, and more cryptographically secure.
    * Instead of lambas having a nice single keyboard, say I don't know "lamba", we get the [] and [=] clusterfuck array overload notation. A keywords makes searching trivial.
    * C++11 "auto" is constantly over-used. While this makes code easier to write it makes it much harder to read because now I have to do the job of the compiler. Why is there no standardized way to turn this crap off?

    I see that the C++ committee continues to remain out of touch:

    * Someone is still trying [open-std.org] push the stupidity of adding a 2D Graphics Rendering API into the language. A solution in search of a problem. Meanwhile everyone else is already using D3D12, Vulkan, or OpenGL. [steampowered.com] and setting z=0. OpenCL and CUDA already exist. Hell, even single header include files like stb_image.h [github.com] has existed for years.

    * When is C++ getting standardized support for float16 [wikipedia.org]?

    * When is C++ going to deprecate the "short" and "long long" nonsense?

    C++ has remained popular and will remain popular because it gives good performance in-spite of its design-by-committee problems.

    --
    There are two types of programming languages: The one everyone bitches about and the one no-one uses. -- Bjarne Stroustrup

    • Re: (Score:2, Informative)

      your post isn't right. It's not even wrong.

      It's so far wide of the mark that outs hard to know when where to begin.

      I will however congratulate you on your parsimonity; in a mere two lines you managed to convey a, lack of understanding of C++, the standardisation process, Cairo, Vulkan, OpenCL, CUDA, and stb_image.h

      • You don't know what the fuck you are talking about.

        Cairo (A Proposal to Add 2D Graphics Rendering and Display to C++) was proposed back in 2014 [open-std.org].

        In 2020 [open-std.org] it STILL hasn't been implemented.

        So what were people supposed to do in the six years they have been waiting for "Cairo" to be implemented? Wait ANOTHER 4 years before it gets standardized???

        Do you even understand the difference between CPU rendering vs GPU rendering???

        • You don't know what the fuck you are talking about.

          I really do.

          Cairo (A Proposal to Add 2D Graphics Rendering and Display to C++) was proposed back in 2014.

          In 2020 it STILL hasn't been implemented.

          Eh? Cairo, the library, has been implemented, working and in use for years, nearly 20 if I recall correctly. The proposal was to essentially add Cairo to the C++ standard. It was proposed 6 years ago, and the committee are still not happy with actually bringing it into the C++ standard. You don't seem to realise

          • Cairo, the library, has been implemented, working and in use for years, nearly 20 if I recall correctly

            It seems like that's how long I've been trying to get it to compile, anyways. If it wasn't for that one stinker, I could probably use the same distro for 10+ years, but I end up having to compile half the world for that to work.

            • It seems like that's how long I've been trying to get it to compile, anyways. If it wasn't for that one stinker, I could probably use the same distro for 10+ years, but I end up having to compile half the world for that to work.

              Ouch. I've never tried, myself, but I've encountered libraries that are weirdly hard to compile before. You have my sympathy.

          • > The proposal was to essentially add Cairo to the C++ standard

            C++ doesn't need a C++ wrapper for C code [wikipedia.org] for yet another shitty, incomplete graphics API.

            There is a formal proposal to incorporate a 2D graphics API into the C++ language standard by manually translating the C source code into C++

            Putting it into the standard is NOT going to a change a single damn thing except for:

            1/ People who need it are ALREADY using it. Everyone else who needs rasterization is already using another API.

            2/ This will only

            • if you have a problem with projects sponsored by DARPA, i have some bad news about the internet...

            • You seem angry about something. You've ragily replied to my post as if I were somehow one off the authors off this proposal, or a supporter of it. But you know, you do you bro.

              Putting it into the standard is NOT going to a change a single damn thing except for:

              3/ new code which isn't written yet.

              And your point 2 isn't exactly correct: it's not the necessarily three same people implementing the libraries and the core compiler, so it's not like one detracts from the other, and besides in terms of core languag

              • Does OpenGL belong in the standard C++ library? No
                Does Vulkan belong in the standard C++ library?
                Does someone's pet graphics library belong in the standard C++ library? No

                I'm tired of of morons proposing half-baked retarded ideas.

    • Nothing "nonsensical" about "short" and "long long", they're 18 and 72 bits on one non-IBM mainframe, there are more types of processors in this world than what you know about, x86 boy

    • * iostream performance [gitlab.com] is crap. [fastformat.org] This has been known about since 2013 [youtu.be]

      Are you kidding me? Are they still struggling with that? iostreams performance problems go back way longer than 2013, I actually thought that was a 1990's problem that they surely must have solved by now.

      It's the perfect illustration of where C++ fails to live up to its promise. If you look at the iostreams design, there's some nice thinking behind it. The idea is to replace the slow printf interpreter with compile-time machinery for the double benefit of type-safety and speed. In theory all those laye

  • by rthille ( 8526 ) <web-slashdotNO@SPAMrangat.org> on Friday November 13, 2020 @08:11PM (#60721878) Homepage Journal

    I assume in response to this: "How C++ Programming Language Became the Invisible Foundation For Everything" the answer was "mistakes were made".

  • Most devices are mobile, they use C and Java (Android) or C and Objective-C (iOS)

    Also Windows kernel is C, the C++ is layers about that.

    C is the foundation. C++ is facade and interior decoration.

  • by fleeped ( 1945926 ) on Saturday November 14, 2020 @08:25AM (#60723484)

    Procedural, OOP, functional, high-performance, backwards-compatible, you name it. It's an unholy mess and half the time you're walking through a minefield, yes, but you can go wherever you want. C is the basis of everything, C++ is that too, plus a million ways for more fun and self-harm :)

    • Procedural, OOP, functional, high-performance, backwards-compatible, you name it. It's an unholy mess

      You know what's even more messy? People writing all those "paradigms" in languages that don't support them. Just look at C libraries and Javascript trying to support OO.

      C++ is actually really simple - no one writing professional C++ actually cares about what paradigm they're using. It only matters to poor programmers and noobs who can't program but are actually just cargo culting it.

      In C++, all there is is the question "what minimal thing do I need to implement this functionality?". It also gives the

You know you've landed gear-up when it takes full power to taxi.

Working...