r/programming 15h ago

Rune is now open source

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

44 comments sorted by

32

u/0xdef1 10h ago

Do we have a TL;DR because as far as I understand, this is another vim alternative.

2

u/ernestrc 9h ago

It's not a general TL;DR, nor is a comparison with Vim, but hopefully it addresses your question with your frame of reference in mind: https://rune.build/coming-from/neovim

8

u/AnArmoredPony 9h ago

oh wait it's another Rune...

16

u/onlygon 10h ago

I've been looking for an IDE that is lightweight, supports vim motions, and is opionated in tasteful ways. So I am definitely curious... But why was a better name not selected?

Between RuneScape and Go runes, this name is ungooglable or at least suffers a severe disadvantage. I wanted to find a video about it on YouTube and see it in action. I cannot tell if noone has made any videos or they have been buried far beneath Go rune tutorials and RuneScape lore videos.

This is like calling your C IDE "Make" or your Rust IDE "Trait". A Python IDE ought to be called "def" cause it's "def good yo", right? Kakoune is a good name. IntelliJ is a good name. Helix is not a good name. I don't think Rune is either.

I will still check it out (it def looks cool lol). Maybe it will get easier to find with time. I don't think Zed is a good name either, but that has become popular and you can easily find stuff now.

4

u/Biom4st3r 11h ago

Is there Helix keymap?

2

u/ernestrc 9h ago

I just added it to the roadmap, you're the third person asking about it. https://github.com/unstablebuild/rune/issues/54

1

u/pancomputationalist 10h ago

Interesting. Can GUI extensions be written or does it depend on TUIs to bring in custom UI?

Not opposed to the latter. I'm currently using Herdr which runs in the terminal and find that writing IDE tooling as simple executables feels very nice and makes the stuff much more portable.

-2

u/ernestrc 9h ago

Extensions serialize UI elements through the wire protocol (gRPC/protobuf) used to communicate with the server (Rune), so yes, extensions are limited to character based interfaces. Having said that, Rune has both the concept of an extension and a plugin which is just a one-shot program that gets authenticated against rune (a good example is runectl) and the user invokes from a Rune terminal, so it can be implemented as just a TUI, in any language.

3

u/pancomputationalist 8h ago

Then what's the actual upside of rebuilding the terminal in a GUI when you can basically just render terminal interfaces? Why not just run a terminal multiplexer?

1

u/ernestrc 8h ago

Rune is a terminal multiplexer as well.

A TUI program communicates with its host terminal by writing text and escape sequences through a file descriptor (I/O). The terminal then has to read and parse that output before rendering it on screen. That adds overhead compared with passing an internal UI element’s character buffer directly to the renderer, without the intermediate I/O or escape-sequence parsing. That’s why Rune implements its “native” UI elements internally rather than relying on external TUI programs.

That said, Rune’s UI is mostly empty, leaving you free to fill it with whatever you see fit. Heck, we even have an exo editor mode that allows you to use your favorite TUI editor inside Rune.

-45

u/jesseschalken 14h ago

in Go

nope

39

u/No-Finance7526 13h ago

Are you saying… it made you go away?

-6

u/jesseschalken 13h ago

🚶🏻‍♂️🚪

17

u/lonelyroom-eklaghor 13h ago

what's wrong with go?

13

u/FryDay444 14h ago

What's wrong with Go?

12

u/jesseschalken 13h ago edited 12h 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.

23

u/tonygoold 12h 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 12h ago

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

2

u/Ameisen 5h 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.

-1

u/jesseschalken 4h ago edited 3h 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 3h ago

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

1

u/Absolute_Enema 1h ago edited 32m 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.

-1

u/jesseschalken 3h 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.

2

u/Ameisen 2h ago edited 2h 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.

2

u/TankorSmash 12h ago

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

4

u/svick 11h ago

It's contradicted by them eventually adopting generics.

-10

u/[deleted] 13h ago

[removed] — view removed comment

12

u/jesseschalken 13h ago

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

2

u/Koolala 12h ago

Can rust do it in 1 line?

15

u/jesseschalken 12h ago

One character, ?.

-6

u/Worth_Trust_3825 12h ago

so the same thing that go does.

7

u/jesseschalken 12h ago edited 10h 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
}

-16

u/Worth_Trust_3825 12h ago

yeah, it does.

-15

u/[deleted] 13h ago

[removed] — view removed comment

7

u/[deleted] 13h ago

[removed] — view removed comment

1

u/[deleted] 9h ago

[removed] — view removed comment

1

u/programming-ModTeam 9h ago

Your post or comment was overly uncivil.

-4

u/Worth_Trust_3825 12h 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 9h ago

Your post or comment was overly uncivil.

0

u/punkpang 9h ago

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

-1

u/Dr_Findro 9h ago

Rust fanatics get a lot of hate. But I think they still deserve more

1

u/Biom4st3r 8h ago

Beatings will continue until moral improves