Live data from Hacker News

Borgo is a statically typed language that compiles to Go

github.com

11–20 of 559 posts

Re: Borgo is a statically typed language that compiles to Go

#13
post #2

Is it correct to say Borgo "compiles to Go", or should it say "transpiles to Go" It appears to be a transpiler (consumes a Borgo and does the work to convert and emit a Go program as text): https://github.com/borgo-lang/borgo/blob/main/compiler/src/c...

“transpiler”, “compiler”, either terminology is valid:

https://en.wikipedia.org/wiki/Source-to-source_compiler

Re: Borgo is a statically typed language that compiles to Go

#14
post #2

Is it correct to say Borgo "compiles to Go", or should it say "transpiles to Go" It appears to be a transpiler (consumes a Borgo and does the work to convert and emit a Go program as text): https://github.com/borgo-lang/borgo/blob/main/compiler/src/c...

Transpiler is a kind of compiler

[deleted]

Re: Borgo is a statically typed language that compiles to Go

#15
post #2

Is it correct to say Borgo "compiles to Go", or should it say "transpiles to Go" It appears to be a transpiler (consumes a Borgo and does the work to convert and emit a Go program as text): https://github.com/borgo-lang/borgo/blob/main/compiler/src/c...

“transpiler”, “compiler”, either terminology is valid: https://en.wikipedia.org/wiki/Source-to-source_compiler

Thanks, I'd always thought targeted transformations -> transpiler, but it makes sense it's really a subset of general compiler functionality, sans binary output.

Re: Borgo is a statically typed language that compiles to Go

#16
post #6

Why would you target Go?

It's a language known for having a great runtime and tooling but subpar language semantics. Makes sense to me, at least. Most of the benefits of go with fewer drawbacks.

This is a terrible take.

It's like one of those people who buys a massive over priced knife block with 48 knives in it that they never use.

Most go devs have lived through bloated java/php/python/ruby/js projects that become a pile of dependencies.

Go is to coding what brutalism is to architecture. Simple, functional, efficient. Dont build a massive dependency chain, dont build magic, repeating yourself is OK. Be an adult and deal with your errors (it's a feature)... That minimalist no bullshit language semantics that force you not to be lazy is a feature not a bug.

Re: Borgo is a statically typed language that compiles to Go

#17
post #2

Is it correct to say Borgo "compiles to Go", or should it say "transpiles to Go" It appears to be a transpiler (consumes a Borgo and does the work to convert and emit a Go program as text): https://github.com/borgo-lang/borgo/blob/main/compiler/src/c...

The word "transpiler" propagates the misunderstanding that there is something special about a compiler that emits machine code, that requires some special "compiler" techniques for special "compiler" purposes that are not necessary for "transpiler" purposes because "transpiling" requires a completely different set of techniques.

There aren't any such techniques. If one were to create an academic discipline to study "transpilers" and one to study "compilers", all you'd end up with is an identical bunch of techniques and analyses with different names on them. (A thing that sometimes happens when diverse disciplines study what turns out to be the same thing; see machine learning versus statistics for a well-known example.)

Even "compiling" to machine code isn't special anymore, because CPUs don't actually execute assembly anymore. They themselves compile assembly into internal micro-ops, which is what they actually execute. So compilers don't even compile "machine language" anymore; it's just another target. This also dodges "is it a 'compiler' or a 'transpiler' if it targets WASM?", which is good, because there is no value in that question on any level.

Re: Borgo is a statically typed language that compiles to Go

#18
post #6

Earlier quoted context omitted.

It's a language known for having a great runtime and tooling but subpar language semantics. Makes sense to me, at least. Most of the benefits of go with fewer drawbacks.

I'm not trying to be argumentative, I'm genuinely curious: what is it about the go runtime and tooling that makes them great? I did not post your parent comment.

To name a few things: Excellent and very stable stdlib (if you’re making a networked thing), fast GC optimized for latency, async I/O without any fuss, easy CSP-like concurrency, fast compile time, statically linked binaries, large user community.

Re: Borgo is a statically typed language that compiles to Go

#20
post #2

Is it correct to say Borgo "compiles to Go", or should it say "transpiles to Go" It appears to be a transpiler (consumes a Borgo and does the work to convert and emit a Go program as text): https://github.com/borgo-lang/borgo/blob/main/compiler/src/c...

Readme says transpile: "Borgo is a new language that transpiles to Go." And it's written in rust. Kinda unholy.

Nothing like adding dependencies to the build toolchain.
Post reply on HN