Hi project owner (Mark) here. It is a bit late in the evening for me but I will try to answer any questions when I can. The Bosque language is currently in a very early state with lots of work to do and not ready for practical use. However, I am very excited by the potential in the concepts and wanted to make the project a collaborative endeavor, including both other academics and developer community, from the start.…
The Bosque Programming Language
11–20 of 172 posts
Re: The Bosque Programming Language
#12A project language with a reference implementation written in...TypeScript? O.o
Re: The Bosque Programming Language
#13Yet another programming language. I wish I was that rich that I could just throw money at people to develop yet another programming language. I think at this point programming languages do more harm than good. Why, because some poor fellow is going to spend time that he could be using to cure cancer but instead he reinventing the wheel in some language that he is going to be sick of by time he if 35 - 40 years of age…
Programmers, on the other hand, do spend their time learning languages (at least some of them, anyway). People frequently ask me how many programming languages I know. I've lost count of the programming languages I've used on commercial projects (it's well over 20). I don't "know" any of them any more. I stupidly put C++ on my CV the last time I was looking for a job and someone started asking me about Boost. I had to reply, "The STL had just been released the last time I used C++. We thought RogueWave was pretty cool at the time". I mean it's actually a completely different language right now. I need to have a section on my CV for "Can tell you amusing anecdotes for this technology but can't actually use it any more".
However, the important thing is that if you throw tens of thousands of lines of legacy code in any language that is in a style I'm familiar with, I'll be up to speed in a week or two. That's because I'm a professional programmer. It's what I specialise in.
New programming languages are great for a number of reasons. First it moves the state of the art forward without having to be backward compatible. Yeah, the state of the art moves slowly and each new language only adds a tiny bit of improvement, but over time it adds up. You don't want to be using CFront like I was at the beginning of my career. Pretty much any modern language you pick is going to be head and shoulders above that.
But the other thing is that becoming fluent in new languages makes you a better programmer in every language. You see idioms you've never seen before. Techniques that are the bread and butter in one language are unheard of in another language -- mainly because you've got crusty old guys like me who've done the same damn thing every day for 30 or 40 years.
I've actually worked in a physics lab before. They wrote some important papers during the time I worked there and I helped -- by writing the code they needed to analyse their data. That was when I was very young (20???). I'd do a much better job of helping them now, in part because I'd do a better job of taking their hacked up Fortran code and making something that could be maintained long term.
Yeah, you don't need to be a fanboi for some language or other, but you also don't need to be a luddite either. Times change and new things happen. It's one of the fun parts of being a programmer.
Re: The Bosque Programming Language
#14Re: The Bosque Programming Language
#15Yet another programming language. I wish I was that rich that I could just throw money at people to develop yet another programming language. I think at this point programming languages do more harm than good. Why, because some poor fellow is going to spend time that he could be using to cure cancer but instead he reinventing the wheel in some language that he is going to be sick of by time he if 35 - 40 years of age…
Do you suggest we should stop making new languages? There are a lot of problems with current languages.
Re: The Bosque Programming Language
#16Hi project owner (Mark) here. It is a bit late in the evening for me but I will try to answer any questions when I can. The Bosque language is currently in a very early state with lots of work to do and not ready for practical use. However, I am very excited by the potential in the concepts and wanted to make the project a collaborative endeavor, including both other academics and developer community, from the start.…
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 to any less complexity than what I’d get if I strung together similar building blocks in Lisp or Python or ML.
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. I admit that this may be due to my ignorance of a term of art.
The introduction to your publication is even more bold: “Regularized programming” (and hence Bosque) will (supposedly) unleash a revolution on programming the same way structured programming did the paradigms before it, ushering a “golden age” of programming and the like.
Focusing on the term “accidental complexity”, can you elaborate what that means? What is an example of accidental complexity and how does it naturally come about with the current crop of languages. And how—in the large—does this programming language avoid it (or help the programmer avoid it)?
Edit: I see in your publication, upon the mention of “accidental”, you cite “Frederick P. Brooks, Jr. 1987. No Silver Bullet Essence and Accidents of Software Engineering. Computer 20 (1987), 10–19.” But in reading this [0], Brooks says:
> The complexity of software is an essential property, not an accidental one.
He only speaks of certain difficulties as being “accidental”, and past ways in which we’ve improved the impedance of such difficulties.
[0] http://www.cs.nott.ac.uk/~pszcah/G51ISS/Documents/NoSilverBu...
Re: The Bosque Programming Language
#17Earlier quoted context omitted.
No, people don't argue about stuff on web forums. That's crazy.
I respectfully disagree, some do.
Re: The Bosque Programming Language
#18Hi project owner (Mark) here. It is a bit late in the evening for me but I will try to answer any questions when I can. The Bosque language is currently in a very early state with lots of work to do and not ready for practical use. However, I am very excited by the potential in the concepts and wanted to make the project a collaborative endeavor, including both other academics and developer community, from the start.…
Re: The Bosque Programming Language
#19Hi project owner (Mark) here. It is a bit late in the evening for me but I will try to answer any questions when I can. The Bosque language is currently in a very early state with lots of work to do and not ready for practical use. However, I am very excited by the potential in the concepts and wanted to make the project a collaborative endeavor, including both other academics and developer community, from the start.…
Re: The Bosque Programming Language
#20Hi project owner (Mark) here. It is a bit late in the evening for me but I will try to answer any questions when I can. The Bosque language is currently in a very early state with lots of work to do and not ready for practical use. However, I am very excited by the potential in the concepts and wanted to make the project a collaborative endeavor, including both other academics and developer community, from the start.…
I do not understand the concept op typed strings. Would that not be simple a subtype of strings (implementing additional restrictions on the values of the strings, a true substype)?
Also, when I see something like: 'args.all(fn(x) => x % 2 == 1)' I do experience it as 'simple, obvious, and easy to reason about for both humans and machines' because it only makes sense if you already have a lot of knowledge about languages like TypeScript. I think that something like: 'All x in args: x % 2 == 1' is easier to read. BTW, why does 'fn(x)' not have a type? Are types optional in your langauge?
I would not give examples of mechanisms that have not been implemented and seem to go against your principle ideas, such as references. What happens, I pass a part of a value to a 'ref' argument of a function?
There are some other language out there that are only based on immutable values. If you are fond of immutable values, why not implement them in an existing language and see how far you get. This has the benefit that people do not have to learn a new language and keeps you from reimplementing a lot of stuff that others already have implemented.