Live data from Hacker News

The Borgo Programming Language

borgo-lang.github.io

181–190 of 204 posts

Re: The Borgo Programming Language

#181
post #172
post #101

I wonder if there will ever be another programming language on top of the most high level languages we currently have (like to python what python was for C)

Higher level easily end up more domain specific. Think SQL or other query languages. Future ones will likely be designed around AI somehow.

Eventually AI systems will be able to generate executables directly.

Anyone that thinks transpilling to standard languages will remain are fooling themselves.

Like Assembly programmers always wanted to have the first generations of compilers to generate Assembly instead of machine code directly, because they didn't believe they could outperform them.

Re: The Borgo Programming Language

#182
post #151

Earlier quoted context omitted.

And part of that specific purpose was to prevent lesser developers from making a mess, like it or not.

And the problem with that is? Honestly, the more experienced a developer is, the more their code naturally seems to look like what Go shepherds you towards. It's not a perfect language, but it's a pretty good language for building shit and shipping stuff.

I've written a ton of Go, for fun and professionally.

And it starts getting to you, because a lot of problems just don't have nice solutions in the language because of its limitations. So you start accumulating kludges, which lowers the bar for quality in the entire code base.

There are PLENTY of techniques and abstractions that are VERY useful yet not expressible in a sane way in Go.

It's a nice enough language for beginners, but acting like it's the end all of programming just makes you look like a fool.

Re: The Borgo Programming Language

#183
Sounds interesting. Shame the entire linked site assumes you know Go and describes Borgo only in terms of deltas from Go. That essentially means I and anyone else unfamiliar with Go will learn nothing from the site and dismiss the language.

And the reason I know nothing about Go is I bounced off it so hard probably due to all the things Borgo fixed! So I am probably the target developer.

Re: The Borgo Programming Language

#184
post #43

Earlier quoted context omitted.

> Proper preservation of where every folded token came from for byte-perfect reconstruction of the original code. I wonder if you could cheat by insisting the original code must have been run through an opinionated formatter so there's a One True Represenation of the source and you can restrict the problem to byte-perfect reconstruction of -that-? (I have the same dream too sometimes and keep wondering if that would,…

That is a really intriguing idea! Not sure if Go has exactly the sort of tool you are talking about, `go fmt` still allows for some minor differences, and I believe the same applies to `gofumpt` as well. But it still sounds totally doable!

Right, even the most opinionated of modern formatters don't go quite that far.

The only thing I can think of that did is the Interlisp-D editing functionality provided by Interlisp Medley, where your code was stored within the system as parsed S-expr trees and when you opened an editor onto something it reverse engineered a textual expression of the thing according to your configuration.

Tagging every, single, node, with enough data to recreate the indentation and formatting seems theoretically doable, and if you're wanting to let people edit things that are, say, config file shaped, then you're going to have to do that if you want the resulting commit diffs to be sufficiently coherent that people will be willing to use it.

But taking the Medley approach for a first attempt/first release feels a lot more doable, and given the biggest obstacle to such a thing is almost certainly congruent to "being able to make a start over a weekend for the sheer fun of it" I think it's well worth considering :D

Re: The Borgo Programming Language

#185
post #79
post #39

Earlier quoted context omitted.

What I find truly fascinating is that given the complexity of most build systems (especially ones that use babel) basically every node project I encounter is in fact effectively transpiled, it's just it's "javascript compiled to javascript" rather than having a different source syntax. I don't even mind[0], I think it's actually kind of amazing. [0] I have all the usual complaints about build systems and about the no…

But it's the minimal translation to allow newer language features and APIs to be still used in older browsers. OTOH I haven't seen a pure JavaScript project for a number of years. It's all Typescript now, maybe with some vestiges of legacy JS slated for eventual migration to TS.

Much of it is such minimal translation.

Much, not so much.

I see JSX as basically 'compiling augmented javascript to javascript,' much of decorators is much like that as well, and things like e.g. vue's turning expressions on its reactivity based signals seen in templates into something more clever is also in the category I was trying to gesture at.

(TS is awesome but I should've predeclared that it wasn't really what I had in mind, sorry for any confusion induced by that mistake on my part)

Re: The Borgo Programming Language

#186
post #79

Earlier quoted context omitted.

But it's the minimal translation to allow newer language features and APIs to be still used in older browsers. OTOH I haven't seen a pure JavaScript project for a number of years. It's all Typescript now, maybe with some vestiges of legacy JS slated for eventual migration to TS.

There are people who insist on writing JS (with types in JSDoc), but Svelte is the only such project I can name off the top of my head.

I tend to start off a project with typeless zero-build JS, because I've been working with dynamic languages so long that the types mostly don't actually help me find bugs in the early days, but if I don't convert it to reasonably typed TS before I release a 0.001.001 then I would expect people to judge me for it, and I would consider them to have every right to do so.

Re: The Borgo Programming Language

#187
post #6

I love it. This is a language that everyone here says they want but no one will use, even though it's stable and mature (I assume because it compiles to stable and mature Go and can use every existing Go library). It hits all the "ok, Go is popular but made by morons for morons and if only it had this X advanced feature, it would be totally great". It has immutability. It has advanced enums. It has algebraic types. I…

> compiles to stable and mature Go and can use every existing Go library

Go+[1](goplus), around since 2020, is already an "extra features" version of Go, that compiles into Go

> It has immutability. It has advanced enums. It has algebraic types. > It literally addresses every major complaint people have with Go

V[2](vlang) is a Go alternative language that has such features. It was originally given the title of child of Rust and Go[3]. On top of that, even has a Go2V transpiler available.

Speaking of Go alternatives, Odin[4] is not too far away as well, and has recently taken the position of labeling itself as an alternative to Go.

> if only it had this X advanced feature, it would be totally great

Not only are these languages labeled as Go alternatives (Go+, Vlang, and Odin), but they have a significant number of fans, more GitHub stars, and/or a large numbers of contributors.

It could be argued that the field is already kind of crowded. If we squint a little, several other languages could have been added to the list (like C3 and Jai), as alternatives.

[1]: https://goplus.org/

[2]: https://vlang.io

[3]: https://www.youtube.com/watch?v=puy77WfM1Tg (Is VLang Better Than Go And Rust? --Anthony GG)

[4]: https://odin-lang.org/

Re: The Borgo Programming Language

#188
Discovered this at work and it's amazing. Between Gleam and Borgo, I don't know which one to use for the advent of code this year!

ADT in mainstream languages for me are a hard requirement. I literally think in terms of adt so often, that's frustrating modeling things differently

Re: The Borgo Programming Language

#189
post #154

Earlier quoted context omitted.

> that the Go team exhibits engineering genius, taste, and particularity that is rare to find in our industry Those geniuses fought against implementing generics for almost 10 years.

And they were right. The generics in Go have turned out dogshite... I try to avoid them at all costs because besides simple data structures like Trees and so on, they're just more trouble. Go was not meant to have generics.

Static typing prevents reusing functions unless they're generic. The other option is to give up static typing and pass "all" everywhere, like a dynamic language.

Re: The Borgo Programming Language

#190
post #84
post #60

Earlier quoted context omitted.

You're right nobody will use it: it's a one man language are you going to bet your codebase on it? It probably doesn't have any tooling, debugggers.. Are the error messages from the compiler good?

Elm is also a one-man language, but it enjoyed some popularity. Zig has been a one-man language for some time, but it's got traction, following, and more contributors. Syntax squiggles are not very important, but other language features, like a good design and removing whole classes of bugs, are.

Along with Elm, another long time one-man show of significance (per GitHub and Wikipedia) is Seed7.
Post reply on HN