steep
sorbet
steep | sorbet | |
---|---|---|
9 | 59 | |
1,407 | 3,683 | |
1.3% | 0.7% | |
9.7 | 9.9 | |
5 days ago | 3 days ago | |
Ruby | Ruby | |
MIT License | Apache License 2.0 |
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.
steep
-
A decent VS Code and Ruby on Rails setup
I saw no mention of RBS+Steep, the latter providing a LSP. I use it a lot and very much like it, although it's still young and needs love, but it's making good, steady progress! I've been very pleasantly surprised by some of the crazy things Steep can catch, completely statically!
You appear to be working on projects with Sorbet (which I tried to like but found it fell short in practice, notably outside of the app use case i.e it's mostly useless for gems) so it may be a tall order to try on those. Maybe you can give RBS+Steep a shot on some small project?
RBS: https://github.com/ruby/rbs
RBS collection (for those gems that don't ship RBS signatures in `sig`, integrates with bundler): https://github.com/ruby/gem_rbs_collection
Steep: https://github.com/soutaro/steep
VS Code: https://github.com/soutaro/steep-vscode
Sublime Text: https://github.com/sublimelsp/LSP
Vim (I'm working on it): https://github.com/dense-analysis/ale/pull/4671
-
Bringing more sweetness to ruby with sorbet types 🍦
1. Lack of LSP: Since this new type check solution is quite new (at the time of writing), we don't have nice editor support via LSP. Things like steep will probably solve this in the future, but it's not a reliable solution now. On the other hand, Sorbet has existed for many years on the market and already provides a lot of tools for code intelligence, you can see more in this blog post.
-
State of the Ruby language server (LSP) ecosystem / looking for suggestions
https://github.com/soutaro/steep Also a type checker. This one uses rbs files. Not sure what subset of LSP features it supports either.
-
steep VS sorbet - a user suggested alternative
2 projects | 17 Apr 2022
-
Open-sourcing the Sorbet VS Code Extension
What type-checkers can use RBS? I find steep? Any others? Does anyone have a sense of how much use RBS is getting (and compared to Sorbet?) in the wild?
-
rbs collection was released!
rbs collection feature integrates this repository and tools use RBS, such as rbs command, Steep, and TypeProf.
-
Which one is a better VS Code language server for Ruby?
steep also can be run as a langserver, which is then used in the vscode plugin for type checking.
-
Static Typing in Ruby 3 Gives Me a Headache (But I Could Grow to Like It)
Once you have those in place, you use a tool called Steep, which is the official type checker "blessed" by the Ruby core team. Steep evaluates your code against your signature files and provides a printout of all the errors and warnings (similar to any other type checker, TypeScript and beyond).
-
15 Resources I Learned Something From This Weekend
soutaro / steep
sorbet
-
Tiny JITs for a Faster FFI
If you're looking for static typing a dynamic language is going to be a poor fit. I find a place for both. I love Rust, but trying to write a tool that consumed a GraphQL API with was a brutal exercise in frustation. I'd say that goes for typing of JSON or YAML or whatever structured format in general. It's refreshing being able to just work with data in the form I already know it's in. Ruby can be an incredibly productive language to work with.
If you're looking for static analysis in general, please note that there are mature tools available. Rubocop¹ is probably the most popular and allows for linting and code formatting. Brakeman² is a vulnerability scanner for Rails. Sorbet³ is a static type checker.
The tooling is there if you want to try things out. But, if you want a statically typed language then that's a debate that's been going since the dawn of programming language design. I doubt it's going to get resolved in this thread.
¹ - https://github.com/rubocop/rubocop
² - https://brakemanscanner.org/
³ - https://sorbet.org/
-
A Neuromorphic Hardware-Compatible Transformer-Based Spiking Language Model
Context: Sorbet is also the name of a popular Ruby type checker[1], built by Stripe.
[1]: https://sorbet.org
-
Ruby’s hidden gems: Sorbet
Sorbet, implemented in C++, is a Ruby gem designed to harmonize the dynamism of Ruby with the reliability and predictability of static typing. As Ruby projects scale in size and complexity, maintaining code quality and preventing errors becomes increasingly challenging. A primary culprit is the absence of static typing, which often necessitates heavy reliance on extensive testing and runtime checks to ensure code correctness, resulting in more frequent bugs slipping into production.
-
Let's Read – Eloquent Ruby – Ch 8
...which goes beyond static typing into declaring explicitly what something needs to support to be used by the method. Granted this is more complicated than it sounds and has a number of drawbacks, as you can see in this discussion.
-
The Design Principles of the Elixir Type System
Not part of the official language spec, but Ruby has Sorbet, from a company who employs Ruby core contributors and helped with the recently released JIT additions to the language, amount countless other contributions over the last couple decades.
https://sorbet.org/
- Почему я программирую на Ruby
-
Bringing more sweetness to ruby with sorbet types 🍦
First let's introduce the tool: Sorbet is a gem developed by Stripe that aims to bring type notation syntax and type checking support for the Ruby ecosystem by utilizing the "Gradual typing" philosophy, it also provide type generation from YARD comments via the tapioca gem, allowing to grow alongside the already built Ruby codebase.
-
An Introduction to Metaprogramming in Ruby
We have hundreds of thousands of lines of ruby code spanning many services / monoliths. Even now I find it somewhat annoying to open a controller / component that is basically an empty class def but somehow executes a bunch of complex stuff via mixins, monkey patches etc, and you have to figure out how.
We are turning to https://sorbet.org/ to reign in the madness. I'm keen to know if others are doing the same, and how they are finding it (pros and cons)
- A few words on Ruby's type annotations state
-
Is Ruby on Rails still in demand?I see very few companies using it.Is it used in big tech companies like Google,Amazon,Facebook,Microsoft?
According to https://sorbet.org/ , the vast majority of code at Stripe is written in ruby.
What are some alternatives?
solargraph - A Ruby language server.
rbs - Type Signature for Ruby
rubocop - A Ruby static code analyzer and formatter, based on the community Ruby style guide.
gem_rbs_collection - A collection of RBS for gems.
tapioca - The swiss army knife of RBI generation