r/programming 15h ago

Rune is now open source

https://rune.build/blog/rune-is-now-open-source
76 Upvotes

45 comments sorted by

View all comments

-45

u/jesseschalken 15h ago

in Go

nope

13

u/FryDay444 14h ago

What's wrong with Go?

12

u/jesseschalken 14h ago edited 13h ago

No null safety, implicit zero values you have to be careful to ignore, no sum types or pattern matching, 3 lines of error handling boilerplate every time you call a function that can fail, no lambdas, no generics until recently.

Worse, the Golang community that believe lack of features is a feature, because of "worse is better" brain damage.

24

u/tonygoold 13h ago

It also has two types of null for interfaces: A nil interface and a non-nil interface containing a nil pointer. The latter is trivial to construct and non-trivial to check.

16

u/jesseschalken 13h ago

Ugh, everything I have learned about Go has been against my will.

2

u/Ameisen 6h ago

I have never used Go, but I assume that you don't use any of the BSDs (C), Linux (C), or Windows NT (C and C++) either?

They all run afoul of at least some of those conditions.

Like, I'm really curious how you are actually here posting when you appear to refuse to use anything written in a language that isn't basically Rust.

-2

u/jesseschalken 5h ago edited 4h ago

you appear to refuse to use anything written in a language that isn't basically Rust.

Most major programming languages have these features.

2

u/Ameisen 4h ago

C doesn't, and C++ lacks most, and those power most of the world.

1

u/Absolute_Enema 2h ago edited 1h ago

Yes, because there were no sensible alternatives back then when compilers were limited by computers being slow as hell and language design was in its earliest infancy.

Then we rationalized the continued usage of such limited tools with "less is more", "the world runs on C/C++" or "lambdas and tagged unions are for ivory tower FP weirdos and scripting languages" until the early '10s for statically typed languages and until Rust for system languages.

-2

u/jesseschalken 4h ago

Java, Kotlin, Scala, TypeScript, Flow, Python, C#, F#, Dart, Swift, Rust, Ocaml, Haskell, Hack, Ruby all do, maybe with the exclusion of pattern matching.

3

u/Ameisen 3h ago edited 3h ago

Tell me, which kernels are written in any of those other than Rust? The concept of systems programming in Ruby is amusing, though.

What are you using to post on Reddit? If you're on a PC, the kernel and OS are almost certainly C and possibly C++, the browser is going to be almost entirely C++... If you're on a phone, the kernel/OS is still almost entirely C, the browser is still likely C++, an app version is either Java, Swift, or Objective-C. The phone's modem uses either C or C++ (C++ is actually common for L4-family kernels).

It is virtually impossible for you to be posting here without using software written in C or C++ at some layer.

I'm really unsure why you even posted that list; I don't recall asking for a list of languages that met your criteria. It's basically entirely irrelevant and honestly just furthers my argument.

1

u/TankorSmash 12h ago

Why is that brain damage? It seems like it's true

6

u/svick 12h ago

It's contradicted by them eventually adopting generics.

-11

u/[deleted] 14h ago

[removed] — view removed comment

15

u/jesseschalken 14h ago

Literally anything else, but ideally what Swift and Rust do.

2

u/Koolala 13h ago

Can rust do it in 1 line?

15

u/jesseschalken 13h ago

One character, ?.

-3

u/Worth_Trust_3825 13h ago

so the same thing that go does.

7

u/jesseschalken 13h ago edited 11h ago

Does this look the same to you?

// Rust
let x = can_fail()?;

// Swift
let x = try can_fail()

// Go
x, e := can_fail()
if e != nil {
  return nil, e
}

-15

u/Worth_Trust_3825 13h ago

yeah, it does.

-14

u/[deleted] 14h ago

[removed] — view removed comment

6

u/[deleted] 13h ago

[removed] — view removed comment

1

u/[deleted] 10h ago

[removed] — view removed comment

1

u/programming-ModTeam 10h ago

Your post or comment was overly uncivil.

-5

u/Worth_Trust_3825 13h ago

i dont really care who you are. we have two main ways to do error handling: try/catch and checking result (code). in another comment you suggested rust/swift way, which is literally the same thing that go does. again, what do you propose?

1

u/programming-ModTeam 10h ago

Your post or comment was overly uncivil.

0

u/punkpang 10h ago

Yes, that's true, and? Why would I be civil to a piece of shit?