Live data from Hacker News

The Bosque Programming Language

microsoft.com

81–90 of 172 posts

Re: The Bosque Programming Language

#81

Please consider using a license other than MIT. MIT assumes all contributors work for a single institution, and doesn't protect licensees from later patent infringement claims. https://writing.kemitchell.com/2019/03/09/Deprecation-Notice... Either Apache 2.0 or Blue Oak Model would be better choices.

>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.

Re: The Bosque Programming Language

#82

> Thus, Bosque does not have any undefined behavior I think this is the one that should be highlighted most. Otherwise, from an engineering perspective, many of the other language features have already been implemented and widely used in other languages

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…

Undefined behavior allows a compiler to make assumptions that some things never happen, which can allow them to generate more efficient code by not having to generate code that checks if those assumptions are correct.

If you're going around thinking computing resources are cheap, it doesn't make much sense to avoid those correctness checks, and undefined behavior is probably not good from that perspective.

Re: The Bosque Programming Language

#83

Please consider using a license other than MIT. MIT assumes all contributors work for a single institution, and doesn't protect licensees from later patent infringement claims. https://writing.kemitchell.com/2019/03/09/Deprecation-Notice... Either Apache 2.0 or Blue Oak Model would be better choices.

I'll add to your comment that Microsoft is a known, patent troll. They can give a business something free under MIT, wait until it makes a fortune, and then sue them for same code in patent courts. License like Apache 2.0 give a copyright and patent license for the code. Makes such scenarios impossible.

Whether they'll actually do it or not is an unknown. I'd prefer we default on licenses that nullify the patent risk.

Re: The Bosque Programming Language

#84
post #81

Please consider using a license other than MIT. MIT assumes all contributors work for a single institution, and doesn't protect licensees from later patent infringement claims. https://writing.kemitchell.com/2019/03/09/Deprecation-Notice... Either Apache 2.0 or Blue Oak Model would be better choices.

>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".

Re: The Bosque Programming Language

#85

Please consider using a license other than MIT. MIT assumes all contributors work for a single institution, and doesn't protect licensees from later patent infringement claims. https://writing.kemitchell.com/2019/03/09/Deprecation-Notice... Either Apache 2.0 or Blue Oak Model would be better choices.

I don’t know much about licenses but last week I added a license to one of my GitHub repositories for the first time. GitHub seemed to be heavily pushing MIT as the default. If the MIT license assumes everyone works at the same place then that seems horrible for GitHub repositories, right?

Horrible for who? Who would it be horrible for, who would it benefit, and who is in a position to decide what the default is? Cui bono?

Re: The Bosque Programming Language

#86
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".

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.

Re: The Bosque Programming Language

#87
post #56

Earlier quoted context omitted.

Hello! Disclaimer: I haven’t read the full publication yet and I’ve only skimmed it. A lot of programming languages that are coming out these days talk about simplicity, lowering “cognitive load”, increasing expressiveness, being nimble/lightweight/easy/whatever, and—this one stated by you—reducing “accidental complexity”. When I looked at your grammar and some examples, I saw atomic building blocks that don’t lead t…

> To me, “accidental complexity” doesn’t seem like a very well defined concept. I might say such a term in a meeting room arguing to upper management that we need to pay off tech debt. Or I might blog using such a term to talk vaguely philosophically about software engineering. But I don’t think I’d find myself using it in a formal context to argue the merits (or lack thereof) of a technology. That sounds bizarro. Ac…

Can you show me some examples? I understand complexity, I also understand incidental complexity, but I’m not sure about it being accidental.

Re: The Bosque Programming Language

#88
post #35

Earlier quoted context omitted.

"point.y = value" is typically a statement for a single update of a mutable record. I'm not sure how you'd extend the latter to support the features of the former. The meaning is completely different. Different things should look different.

I think this is nicely solved in Swift.

How? I don't know any way to do a bulk update of an immutable structure in Swift, apart from constructing an entirely new structure and passing all values (not just changed ones) to its initializer.

Re: The Bosque Programming Language

#89

Earlier quoted context omitted.

The current purpose is explore language design choices and their impact on their general utility for programmers and enabling automated developer tools (like verifiers and compilers). The hope is to use Bosque as a proof of concept for various ideas. Some examples of better than existing languages are included as case studies in section 5 of the technical report: -Automatically finding (ideally) any runtime error and…

> -Verifying that a SemVer update is safe or flagging where it will change the behavior of your code. Isn't that similar to what Elm does?

Sounds like it, but Elm is only for front-end web dev.

Re: The Bosque Programming Language

#90
post #43
post #35

Earlier quoted context omitted.

"point.y = value" is typically a statement for a single update of a mutable record. I'm not sure how you'd extend the latter to support the features of the former. The meaning is completely different. Different things should look different.

I expand a little my point. This is from Elixir, functional and immutable, which I've been working with for a couple of years iex(1)> point = %{x: 1, y: 2, z: 3} %{x: 1, y: 2, z: 3} Of course this doesn't work iex(2)> point.x = 4 ** (CompileError) iex:2: cannot invoke remote function point.x/0 inside match This is how we do it, verbosely iex(3)> Map.put(point, :x, 4) %{x: 4, y: 2, z: 3} Or with a syntax shortcut iex(…

I would not understand that. In every language I've used that supported "point.x = 4", the returned value (if there is one) is 4, not point. Bosque's update is more like CONS (or conj) than . =

Your proposed syntax also doesn't have any obvious way to do a bulk update, and I'm not sure what syntax you're proposing for that.

I maintain that it's more important for things to look like how they act, rather than look familiar -- especially if the familiar appearance does something functionally different -- https://stackoverflow.com/a/522168

Post reply on HN