state_machines
benchmarks
Our great sponsors
state_machines | benchmarks | |
---|---|---|
5 | 40 | |
793 | 2,741 | |
1.1% | - | |
4.6 | 7.2 | |
3 months ago | 3 months ago | |
Ruby | Makefile | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
state_machines
- Gem adds support for creating state machines for attributes on any Ruby class
-
Practical State Machinery
State Machines (Ruby) - A popular library providing a Ruby DSL for easily building finite state machines
-
Why Developers Never Use State Machines (2011)
As a regular user of the state_machine Ruby gem, I wouldn't recommend it. If you don't believe me, just check out the "Class definition" section of the usage examples: https://github.com/state-machines/state_machines#usage
The problems are obvious. It's built on magic and indirection. This leads to difficult to debug state machine problems. For anything beyond simple state machines you quickly lose any idea of what your object is doing.
-
ActiveRecord: Adding Boolean methods for DateTime columns
Might this be better handled with a state machine with active record integration?
-
Ruby 3 Released
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:
benchmarks
- Some Benchmarks of Different Languages
- Building a high performance JSON parser
- Top 5 Fastest Programming Languages
- Twitter (re)Releases Recommendation Algorithm on GitHub
-
How green or energy efficient is the Go programming language?
GitHub - kostya/benchmarks: Some benchmarks of different languages
- how to benchmark a programming language
-
Ruby 3.2.0 Is from Another Dimension
In all the language comparisons I've found over the years, Python consistently comes out slightly slower, for example:
https://github.com/kostya/benchmarks
Bearing in mind these are probably not even using YJIT, which makes Ruby considerably faster in some scenarios.
- I made a 88x88 version of the big display image command generator in Python! (will share github link if admins allow it)
-
The original computer languages benchmark is back
Also, here is another benchmark: https://github.com/kostya/benchmarks
- Why does Scala seem to be slow at benchmark results?
What are some alternatives?
AASM - AASM - State machines for Ruby classes (plain Ruby, ActiveRecord, Mongoid, NoBrainer, Dynamoid)
libuv - Cross-platform asynchronous I/O
State Machine - Adds support for creating state machines for attributes on any Ruby class
lua-languages - Languages that compile to Lua
Statesman - A statesmanlike state machine library.
julia - The Julia Programming Language
simple_states - A super-slim statemachine-like support library
beartype - Unbearably fast near-real-time hybrid runtime-static type-checking in pure Python.
state_shifter
mypyc - Compile type annotated Python to fast C extensions
transitions - State machine extracted from ActiveModel
Cython - The most widely used Python to C compiler