Live data from Hacker News

The Bosque Programming Language

microsoft.com

131–140 of 172 posts

Re: The Bosque Programming Language

#131
post #97

Earlier quoted context omitted.

> GitHub, which pretty much exists to make contributions easy across institutional boundaries No, GitHub exists to somehow benefit the current owners, Microsoft, however they decide is the best way. > No one benefits from the choice of MIT as a GitHub default. Actually, there is a good argument to be made that Microsoft actually benefits from MIT being the default, as nickpsecurity pointed out in a sibling comment.

OK I see what you're getting at. Sure, maybe MS is pushing MIT out of sneaky bastardliness. But, it kinda sounds like what you're saying is that as long as it's good for the owner it can't also be horrible. I mean, my auto shop exists to benefit me however I decide is best, and there is a good argument to be made that I benefit from sabotaging my customers' cars. So what!

> But, it kinda sounds like what you're saying is that as long as it's good for the owner it can't also be horrible.

Oh, that explains the downvotes. No, that’s not what I meant. What I was trying to do was to socratically tease out the strangeness of calling something “horrible for GitHub repositories”, as if GitHub repositories had an inherent purpose.

Re: The Bosque Programming Language

#132

Earlier quoted context omitted.

Oh okay. I thought it might have something to do with Basque: "Basque is a language spoken in the Basque Country, a region that straddles the westernmost Pyrenees in adjacent parts of northern Spain and southwestern France. Linguistically, Basque is unrelated to the other languages of Europe and is a language isolate to any other known living language." I didn't know about the forest meaning at all. (Maybe a subconsc…

I'll spell it out (for the downvoter): "is a language isolate to any other known living language" as well as being "a language". It has a very special status between France and Spain. I think anyone who knows about Basque would think of Basque when reading about a computer language named Bosque.

Not really: Bosque, Bosco, Bois, Bos, all mean "wood", "forest" in, respectively, Spanish and Portuguese, Italian, French, Dutch. So it's a pretty familiar word to most Europeans.

Re: The Bosque Programming Language

#133
post #130

Earlier quoted context omitted.

No, it's not meaningless. It refers to everyone who has contributed. According to the Blue Oak license, everyone who has contributed licenses their contribution according to the terms of that license. There’s no need to identify them separately, not for licensing purposes anyway. If their code is in there, it’s covered by the license.

No, not unless you have a record that they agreed to contribute their code under that license. There's no magic wording in a license file that can make it possible to get by without keeping a proper record of contributors.

Yes there is such magic wording. You can't use the software without agreeing to the license. It is obviously the case that anyone who contributes is a user of the software. Thus all contributors are bound by the license terms whether or not their names are added to any list. If any contributor were to assert a violation of their copyright, they would themselves be in violation of the license.

Re: The Bosque Programming Language

#134
post #84
post #81

Earlier quoted context omitted.

>MIT assumes all contributors work for a single institution Could you expand on this? I can't see this assumption anywhere in the MIT license, and the link you provide doesn't clarify on this point. I also find the Blue Oak license much more difficult to understand than the MIT license, FWIW.

I have never heard that either but I guess that impression might come from the first line of the MIT license: > Copyright (c) Where is often filled as the company of the primary developer, e.g. "Facebook". What I often see (and use) to avoid this, is filling it in with "The developers", e.g. "The React developers".

In the blog post linked above, I make the point that

> Copyright the Project developers

conveys zero information. Of course contributors to a software project hold copyright in it. Who else should?

But who are those contributors? The Blue Oak Model embraces the practical reality: When we want to know contributed to an open software project, we look to development files and revision-control data, not the license.

Re: The Bosque Programming Language

#135
post #86

Earlier quoted context omitted.

Ah I see, good point. I think management of code copyright is inherently complicated and not something that a license template can really fix. You do need to keep track of who has copyright of the code.

The link I provided does explain this, under the section “MIT and BSD don’t expect more contributors”, which reads in part: “MIT and BSD terms include a space for a single copyright notice, because they were written for releases from academic institutions that own all the copyrights in their employees’ work. What about other contributors to the project? They hold copyright in their contributions.” Apache 2.0 DOES add…

I don't think contributing back on Blue Oak terms is a condition of the Blue Oak Model License, in the sense of https://www.apache.org/licenses/LICENSE-2.0#contributions. Rather, the Blue Oak Model clearly expresses the expectation that all contributors will do so.

Expressing that expectation in writing can help make a legal case that submitting a contribution for inclusion in the public project implies a license under the same terms. But that's a distant second best to creating a written, public record of each contributor's affirmative intent to license their work under Blue Oak Terms.

That evidence doesn't have to look like a "formal" CLA. It could be as simple as a public comment on the PR:

> I license my contributions under Blue Oak Model 1.0.0.

It could be as simple as having contributors add their names to a THANKS or AUTHORS or CREDITS file in the repo, under a note that everyone licenses BlueOak-1.0.0, with Git commit data showing each contributor added their own name.

Re: The Bosque Programming Language

#136
post #130

Earlier quoted context omitted.

No, not unless you have a record that they agreed to contribute their code under that license. There's no magic wording in a license file that can make it possible to get by without keeping a proper record of contributors.

Yes there is such magic wording. You can't use the software without agreeing to the license. It is obviously the case that anyone who contributes is a user of the software. Thus all contributors are bound by the license terms whether or not their names are added to any list. If any contributor were to assert a violation of their copyright, they would themselves be in violation of the license.

Yeah, but you don't know that the person who contributed the code actually holds the copyright to it unless you keep proper records. It's also unclear whether people do in fact automatically agree to all the terms of a license merely by, say, submitting a pull request. Even if the license asserts that this is the case, not all terms of a license are necessarily legally meaningful or enforceable in any given jurisdiction. There isn't a huge amount of case law on this kind of thing, as far as I'm aware.

The bottom line is that any kind of open source license has copyright as its foundation. If you don't have a proper record of the copyright holders, then the license doesn't mean much. You need to know exactly who has the copyright to the code and exactly who is agreeing to release the code under a given license.

Re: The Bosque Programming Language

#137
post #132

Earlier quoted context omitted.

I'll spell it out (for the downvoter): "is a language isolate to any other known living language" as well as being "a language". It has a very special status between France and Spain. I think anyone who knows about Basque would think of Basque when reading about a computer language named Bosque.

Not really: Bosque, Bosco, Bois, Bos, all mean "wood", "forest" in, respectively, Spanish and Portuguese, Italian, French, Dutch. So it's a pretty familiar word to most Europeans.

OK, thanks.

Re: The Bosque Programming Language

#138

Earlier quoted context omitted.

Equals is a verb AND a adjective though. So I disagree it's notoriously bad to use it as assignment. This is a situation solved entirely with = (make these equals) and == (are these equals?). >Thus, x = y does not mean the same thing as y = x. Unless it does, or should. The specfic argument you're arguing here is on that is just a simple syntax. You don't like = for assignment, but I do. You like = for comparison, bu…

But why change the meaning of one of the most common mathematical symbols? Every new generation of programmers must then relearn what "=" means. If you see "=" in a comment you are never really sure what it means, is it assignment or is it the standard mathematical predicate?

It's not changing the meaning at all. You're picking your preferred meaning, and I'm picking mine. Mine happens to be the almost universal standard for programming.

Most lines of code are written as true statements. If you understand how a computer actually works at the register level you'd see that

x=5; has a result. And it's not 5. It's TRUE. I'm not asking if x equals 5, I'm saying HEY YOU, X IS EQUAL TO 5. I'm telling the computer this is now the truth. 5 is moved into the x RAM location and the result is true, because the CPU is doing what I told it.

You're just wrapped up in your semantic view. There is nothing wrong with = for assignment and == for evaluation. Someone would complain if it was the other way around, so just accept this is the standard - or make your own language that "does things right". But.... Just because it isn't the way you like it, doesn't make it wrong.

Re: The Bosque Programming Language

#139

Earlier quoted context omitted.

I think I remember someone talk about undefined behavior in specifications and how it is actually a good thing, in the sense that offers increased liberty for implementations and some other advantages. Anybody else has heard this? Don't quite remember where I read it. My humble opinion aligns with yours, it seems intuitively "better" to have no undefined behavior. https://en.wikipedia.org/wiki/Undefined_behavior#Risk…

Yes, I've heard the same thing. The C and C++ specifications specifically mention that some things are undefined behaivour, that shows that its not something that slipped through the cracks (at least in those cases) but rather a conscious decision to leave it undefined. This only makes sense if its done to allow the compiler room to do things like aggressive optimisation. I only wish that undefined behaviour in C++ w…

The reason that these behaviors are undefined typically is that the compiler cannot prove whether or not a program will execute undefined behavior, and needing to account for it would lead to less efficient code. For example if (x+1 > x) can be simplified to if (true) for signed integers only because signed overflow is undefined.

That said, there is UBSan, which is a runtime checker for undefined behavior that can help you to identify if your code is depending on some undefined result.

Re: The Bosque Programming Language

#140

Earlier quoted context omitted.

Equals is a verb AND a adjective though. So I disagree it's notoriously bad to use it as assignment. This is a situation solved entirely with = (make these equals) and == (are these equals?). >Thus, x = y does not mean the same thing as y = x. Unless it does, or should. The specfic argument you're arguing here is on that is just a simple syntax. You don't like = for assignment, but I do. You like = for comparison, bu…

But why change the meaning of one of the most common mathematical symbols? Every new generation of programmers must then relearn what "=" means. If you see "=" in a comment you are never really sure what it means, is it assignment or is it the standard mathematical predicate?

Most programming languages change the meaning of one of the most common mathematical symbols. There are at least 3 meanings of "X = Y".

Pascal: Is X equal to Y?

C: Change X, making it equal to Y.

Mathematics: X is equal to Y.

Those are all valuable in programming. Normally programmers get the mathematical meaning via a feature such as __assume or __builtin_expect or assert. It can be used for optimization. When the constraint is violated, various bad things can happen. The code can run slower, halt with an error message, or behave in an undefined way.

Every new generation of programmers starts off expecting the mathematical meaning. I don't know of any programming language which uses it. Ideally that would be fixed, but the change might be difficult for the current generation of programmers.

Note that the Pascal meaning can be fairly compatible with the other meanings. The solution is simply to be aware of context. On a line by itself, X=Y makes no sense as an equality test. Within the controlling part of an "if" or loop, assignment need not be supported. That does the job. Alternately, the meaning could change by having a keyword in front for assignment ("let" is popular) and/or for the assertion. So we could distinguish all three meanings with syntax like "if X=Y", "let X=Y", and "assume X=Y".

Post reply on HN