C++ Logo

std-proposals

Advanced search

Re: SCC / ISO IEC - C++ Superset

From: Jason McKesson <jmckesson_at_[hidden]>
Date: Thu, 5 Aug 2021 11:35:59 -0400
On Thu, Aug 5, 2021 at 12:47 AM Phil Bouchard <boost_at_[hidden]> wrote:
>
>
>> On 8/4/21 11:09 PM, Jason McKesson wrote:
>> Personally, I'd rather C++ die a slow death against Rust than have it
>> encumbered by patents.
>
> (That's the last thing I would expect to hear from a ISO C++ committee member... but okay)
>
> We still have legacy code around anyways.

I'm not a member of the committee; I'm just a regular C++ user. But
yes, I feel that way.

Patents are like a form of censorship, and the Internet treats
censorship like damage: it routes around it. Stick patents into C++,
and you've given its users one more reason to migrate to something
else. And we C++ users will deserve that for allowing you to do this.

I like C++, but I'm not married to it. I'm a programmer first and a
C++ user second. Whatever it takes to get the job done is what I'll
use. And if a tool becomes corrupted, I will go find one that lacks
said corruption.

On Thu, Aug 5, 2021 at 9:26 AM Phil Bouchard via Std-Proposals
<std-proposals_at_[hidden]> wrote:
>
>
> On 8/5/21 3:35 AM, Jonathan Tanner wrote:
>
> I was interested in this root_ptr so I had a look and I’ve got to say that it doesn’t appear particularly similar to Herb Sutter’s deferred_heap/deferred_ptr to me, the primary point of that, as given in the name, is that it defers destructor calls by storing them so that you can be sure that all the correct destructors will be called and root_ptr doesn’t do this. Also deferred_heap/deferred_ptr has its own allocator that means that you don’t have to pass around node_proxys. Finally when a deferred_heap is destructed, or cleanup performed, it nulls out deferred_ptrs first so that you don’t need to check for cycles explicitly in your destructor.
> The only thing that seems to have been embraced from root_ptr is the idea of trying to deal with reference counting cycles.
>
> Well both are "region-based memory managers" and forces destruction of nested objects somehow linked together.
>
> And here's even more evidence from the original Boost mailing list I am working on this wayyy back before Herb Sutter:
>
> https://lists.boost.org/Archives/boost/2008/07/140100.php
>
>
>> Finally though, in the CppCon talk when this was presented it was made very clear that this was an experiment and that someone else could take this and run with it, if you take the innovations from deferred_ptr and integrate them into root_ptr I’m sure Herb would be delighted, this is the whole point of open source.
>
> I'm not sure why the mentality of the community in software engineering prevents any capital gains (except for Gates and Ballmer),

Why do you equate "patents" with "capital gains"? Software patents,
more often than not, are used to *stiful* innovation and utility.

Innovation happens best and most effectively when everyone is free to
take good ideas where they find them and build off of them. Software
patents prevent this by making everyone think about whether their code
is using something that will get them sued by a patent troll. So not
only do they have to write the program, they have to do some legal
work to make sure they're not using anything that'll get them in
trouble later. That doesn't help innovation; it only helps people who
buy up patents and sit on them. They lurk out there, waiting for the
day when they can pounce on some application that manages to get
popular enough to be worth skimming some cash from.

That kind of "capital gains" doesn't help improve software. How many
open-source programs can't ship popular video codecs legally because
those algorithms are under patents? How does that help improve
software?

You don't need software patents to make money off of software.
Companies besides Microsoft manage to do this all the time.

And your obsession with Microsoft seems very 90s; you're basically
living in a world where you think Microsoft is still the most
important software maker. They never "embraced and extended" anything
you did. 3D graphing calculator programs existed before yours *and*
Microsoft's; they didn't make one just because you presented one to
them. And using some elements of ideas for dealing with memory
management that *dozens of people* have been iterating on is not
"embrace and extend".

Microsoft is not your personal adversary who is trying to ruin your
life specifically. Treating them as such feels... really weird.
*Especially* since they do make one of the 3 most important C++
compilers, and you would be in a position to leverage your software
patents in C++ against them.

That is, you have personal animosity against one of the most important
C++ compiler makers, and you're angling to have control over who gets
to make future C++ implementations. That sounds like a conflict of
interest. I'm not saying that this is truly our goal or anything. But
your clear animosity towards one of the most important C++ compiler
vendors doesn't make me feel comfortable with you having such power
over C++ compilers.

I'm not asking you to like Microsoft. But this level of irrational
distrust doesn't inspire confidence in your ability to remain
objective when it comes to them.

> Clang at least allows using their own code for commercial purposes

Don't assume this means they'll be happy with software patents in
their code. I mean, they *might*, but you should probably ask them
first.

Received on 2021-08-05 10:36:12