Our great sponsors
-
Here's an example of how it can happen - look at the code examples in https://github.com/state-machines/state_machines - almost everything you are coding is in the DSL of that library if you are using it:
-
Compare another JIT’d VM such as PyPy and it falls well behind. Not to mention the more common languages taking over the microservices realm (Go, Crystal, Elixir, etc) or the ones taking over monoliths (nodeJS, primarily).
-
InfluxDB
Collect and Analyze Billions of Data Points in Real Time. Manage all types of time series data in a single, purpose-built database. Run at any scale in any environment in the cloud, on-premises, or at the edge.
-
are-we-fast-yet
Are We Fast Yet? Comparing Language Implementations with Objects, Closures, and Arrays
According to the Are-we-fast-yet benchmark suite MRI JIT Ruby 3.0 RC1 is about factor 11 slower than Node.js 12.6 and about factor 5 slower than LuaJIT 2.0, and only factor 1.4 faster than MRI Ruby 2.1.0. Here are the results: http://software.rochus-keller.ch/are-we-fast-yet_crystal_ruby_2_3_lua_node_i386_results_2020-12-23.pdf. Here is more information about the benchmark suite: https://stefan-marr.de/papers/dls-marr-et-al-cross-language-compiler-benchmarking-are-we-fast-yet/ and https://github.com/smarr/are-we-fast-yet. It's not just some random micro benchmarks, but a well designed suite with representative algorithms and ideomatic language use optimized for cross-language comparisons.
-
It actually does. https://github.com/arbox/machine-learning-with-ruby
-
I doubt it will be called ergonomic. Scala also has Json objects (e.g. circe), but then you will need to define your whole hierarchy of classes based on some abstract BaseObject(since you can't change existing Object) and cram all methods into it (e.g. https://github.com/circe/circe/blob/c7e6ef1f21d28635b03df36c93decf010221684b/modules/core/shared/src/main/scala/io/circe/Json.scala#L75), some overridden methods in subclasses will raise an exception (or return None: https://github.com/circe/circe/blob/c7e6ef1f21d28635b03df36c93decf010221684b/modules/core/shared/src/main/scala/io/circe/Json.scala#L290). Yeah, possible, but that's exactly what Ruby is trying to avoid.
-
Mergify
Updating dependencies is time-consuming.. Solutions like Dependabot or Renovate update but don't merge dependencies. You need to do it manually while it could be fully automated! Add a Merge Queue to your workflow and stop caring about PR management & merging. Try Mergify for free.