4 ms·
Implementing a simple object system from scratch in Ruby
- block_dagger 2y agoInteresting. Why the inconsistent use of hash rockets?
- metacircu1ar 2y agoThanks for spotting this. The parts of code were written at different times. I'll fix this to standardize on :key => value form, as I want symbols to be clearly distinguishable both on call sites and in the method table.
- alehlopeh 2y agoNot that it necessarily applies here but any time I see hash rockets in a PR it just screams “an llm wrote this”
- metacircu1ar 2y agoI write some ruby code for my job to automate some API testing stuff, where I use hash rockets exclusively.
- caseyohara 2y agoYou should know that using the hash rocket syntax has not been idiomatic Ruby since the new hash syntax was introduced in 2012. Unless your keys are not symbols, there’s no reason to use hash rockets.
- VeejayRampay 2y agoRuby really is a powerful language it might not be the fastest or the strictest, but man is it expressive
- uticus 2y agoYou are correct technically, but the implication that you must sacrifice speed or static typing is practically incorrect: faster on startup than .NET [0]. You can get benefits similar to static typing in for a while now [1]. [0] tested locally on a Linux environment [1] https://github.com/ruby/rbs#readme https://github.com/ruby/rbs#readme
- neonsunset 2y ago> faster on startup than .NET [0] This is unlikely. When you invoke 'dotnet run' you're essentially going through the entire build system, it doesn't "just" launch the application - it also builds it or verifies that it doesn't need to. The actual startup time for compiled applications is <100ms for JIT (sometimes even <50ms) and ~10ms for AOT. Feel free to verify this with: dotnet new console --aot dotnet publish -o . hyperfine ./{name of the program} (make sure to use up-to-date version of the SDK, can be installed with sudo apt install dotnet9 / brew install dotnet) Of course performance of the code itself is going to have more than an order of magnitude of difference: https://benchmarksgame-team.pages.debian.net/benchmarksgame/performance/comparable.html https://benchmarksgame-team.pages.debian.net/benchmarksgame/...
- igouy 2y ago> [Ruby] ... faster on startup than .NET Please share. fwiw C# aot in-process timing (0.029) about 0.005 faster than process timing. Ruby yjit in-process timing (1.565) about 0.083 faster than process timing. https://benchmarksgame-team.pages.debian.net/benchmarksgame/performance/startup.html https://benchmarksgame-team.pages.debian.net/benchmarksgame/...
- deleted 2y ago[deleted]