Ankane's Onnx runtime for ruby is so easy to use that makes you wonder why the official repo for js is so difficult to understand. This guy's a hero, although I'm only scratching the surface for what he has done.
realty_geek 148 days ago [-]
Seriously, is this guy human? I'd invest a billion dollars in any individual so talented...
delichon 148 days ago [-]
I'm 100th as talented and would consider accepting a $10M investment.
Seconded. The sheer volume of useful work Ankane puts out for the community is unreal.
147 days ago [-]
czbond 148 days ago [-]
Thanks for creating this - it looks interesting. Contributions like this are really needed in the Ruby community
berkes 148 days ago [-]
They really are.
The lack of such contributions -in general- or the speed at which they appear, is what leads me to conclude that the Ruby community is slowing down.
In this case, suddenly there's an awesome library for Ruby. Which is fantastic. An achievement to be very thankful for.
But "the community" "produced" this months or years after such libs landed for Python, JS, TS, Rust, Go and so on.
Not just ML/AI, same happens for "gems" (Ruby libs) that deal with any new tech. It used to be that any SAAS or startup would offer official Rubygems from the get-go. Often before offering other platforms or languages. Today, when I want or need to integrate something, from notion to slack to cloudflare: no Ruby option or at least no official one.
This saddens me. Ruby is so much more than Rails (for which I can understand the reluctance or "hate"). Ruby is so much nicer to work in than Python and certainly than JavaScript. Ruby could easily have been what Python is today and tens of thousands of developers would be just a little happier than they are now, I am certain.
theappsecguy 148 days ago [-]
I find the ruby gem ecosystem significantly richer than any another. Maybe not by sheer quality, which quickly translates to millions of abandoned libraries (I’m looking at you nom), but certainly quality.
It’s also recently on the rise in general.
gjtorikian 148 days ago [-]
This is such an odd comment to me.
On the one hand, you praise Ruby, and lament that it gains such libraries so much later than other languages.
On the other hand...if you were paying attention to the "Python, JS, TS, Rust, Go and so on" ecosystems, and noticed the ML/AI work, why didn't you create one for Ruby yourself?
I guarantee that whatever answer you give doesn't matter, because every other Rubyist has their own reply. A "community" begins with one person doing the thing.
mkl95 148 days ago [-]
I have worked both at Ruby and Python shops.
The average Ruby dev works at a mid to small sized company, probably a startup, and they are usually contributing to some proprietary SaaS product on top of Rails. Progress is always happening in the Ruby / Rails world but it's really slow.
On the other hand, Python has three popular web frameworks and a huge data tooling ecosystem that just keeps getting better. It's just easier to get things done with Python these days and the gap is so huge that I can understand OP.
vinceguidry 148 days ago [-]
Not just everyone is skilled enough to make great libraries. There is always going to be an order of magnitude more people interested in using a premade library than are going to be capable of making one themselves. Even if ability wasn't a factor, time often is.
JohnBooty 148 days ago [-]
Even if ability wasn't a factor, time often is.
Right. Not everybody has spare time! Many of us are caring for loved ones, have disabilities, whatever.
cortesoft 148 days ago [-]
No one person can create enough libraries to maintain an entire ecosystem (although the guy who made this transformer library is pretty close), so even if the person you responded to did create a few libraries, their problem wouldn’t be solved.
notjoemama 148 days ago [-]
> I guarantee that whatever answer you give doesn't matter
k
berkes 147 days ago [-]
> A "community" begins with one person doing the thing.
And a community thrives with many one-persons combining their effort and keep doing so.
I have made many libraries (gems), OpenSource. Some paid, many just for the benefit of this community; your implication that I lament but not put my work and effort up is frankly rather offending.
To continue on this lament: libraries in dynamic languages are rather hard to maintain, due to runtime constraints that progress/change over time. And the one thing I see is a dwindling usage. Less issues filed (good! ;), less downloads, less integrations, less praise, etc etc.
The more I pay attention, the more I see the Ruby community dwindling. I hope this is merely Rails dwindling - I frankly won't mind if Rails is replaced -, but I fear that Ruby = Rails in practicality. And that Ruby is on the way to the COBOL or Perl.
This, I lament, because I think Ruby is, in the niche of dynamic scripting languages, by far the nicest, cleanest and fun to work with. It's tooling and syntax far more consistent and sensible than Pythons. It's concepts far better thought out and much nicer executed than PHPs. And, sorry, everything can be better than JavaScript without much effort.
So, to me it makes no sense to make Ruby the next Python or PHP, because it's already much better, IMO. It's just not used as often. One extra person using it, doesn't change that.
And, it makes even less sense to make Ruby more like Go or Rust, because if I need Rust, I'd pick Rust instead of spending years of my life making Ruby more like Rust (i.e. invest in a type system, some compile stuff etc).
And when I need e.g. WASM runtime (in say serverless functions) or integration of some new fancy SAAS, or LangChain alike tooling, why would I poor months or years of effort into building tooling to compile to WASM, build gems around said SAAS, or help with tools like Transformers for Ruby, when I can pick Go or Rust to compile to wasm today, grab the Typescript package for the SAAS today, or learn, use (and dislike) Langchain in python today as well?
vidarh 147 days ago [-]
My desktop is almost all Ruby. Ruby is not going away for decades.
I've just started replacing my shell with a shell in Ruby too. To me one of the nice things about Ruby is that I feel like I can get things done so easily it doesn't matter if the community is smaller. Almost all the code I use apart from the kernel, Chrome and Xorg is now my own.
lambdaba 146 days ago [-]
Do tell us more on how you use Ruby everywhere? I use Ruby exclusively for scripts (I love built-in inline deps with bundler/inline).
vidarh 146 days ago [-]
My X11 window manager is pure Ruby: https://github.com/vidarh/rubywm
That was posted to HN a while back. It's a minimalist tiling wm.
My file manager is (very simplistic, I do most of my actual file management from the shell - it's in effect mostly a desktop launcher) Ruby
It, as well as my desktop switcher (also Ruby) depends on pure Ruby X11 bindings, and a pure Ruby TrueType font renderer:
So does my Ruby terminal (what's on Github is nothing like the full version, which I will package up and push one of these days).
My editor is also pure Ruby, using Rouge (Ruby; not mine) for syntax highlighting. That also needs a major update on Github - what's there probably won't even run for others because my personal "ecosystem" on my system is full of helpers and these things are written to be as minimalist as possible so e.g. my editors "file open" dialog is a 2-3 line wrapper around dmenu.
And I've just replaced my shell with Ruby - but that's just for interactive use, so it's very tiny.
lambdaba 146 days ago [-]
Very cool, thanks. I'd switch to a Ruby WM in a heartbeat if it worked on Wayland.
vidarh 146 days ago [-]
Unfortunately, that's a vastly larger job than an X11 wm because you're either implementing a full display server or need to create bindings to something like Wlroots - under X the wm is close to just another client of the X server.
jashmatthews 147 days ago [-]
Competitive pressure on SaaS companies and startups is much higher now and while there are tons of people are building client wrappers and other much more exciting stuff in Ruby none of its getting extracted, polished and open-sourced because everyone is entirely justifiably freaking out about profitability.
reducesuffering 148 days ago [-]
> is what leads me to conclude that the Ruby community is slowing down
It look like a decline but these are relative numbers right? The whole industry exploded in size over this time period.
berkes 147 days ago [-]
Does it matter if it's relative or absolute?
felipemesquita 147 days ago [-]
A relative decline in a segment where the overall total is growing might mean that the segment’s absolute number hasn’t gone down at all.
tekknik 146 days ago [-]
That’s like grasping at straws to avoid the truth. If the ratio of developers using ruby is dropping, the popularity of it is dropping.
Everything is ML focused now, and python is unfortunately the language most data scientists prefer.
downrightmike 148 days ago [-]
Can you give me some examples? This seems like an interesting problem.
berkes 147 days ago [-]
Examples of what? Missing gems?
I mentioned a few already. Some more that I recently ran into, are in the niche of "verifiable credentials", SSI and DIID. A weird niche, but relevant to my current work.
There's plenty of work, references, implementations, type-systems for TS, Rust, Python and even .net. But nothing significant (a very few experiments at most) in Ruby.
There's little support for WASM, eventhough that's a promising tech to run and manage backend stuff as well as maybe someday client-side stuff already. There's little tooling to manage cloud infra in Ruby (Chef and Puppet still chugging along, but hardly as omnipresent as Ansible etc)
PHP, Python, Typescript: typing is emerging everywhere, albeit "bolted on". Ruby has efforts in this direction, but far behind the ones mentioned above.
There's no practical "frameworks" or libraries to make games. Very few frameworks or tooling to build desktop software. There's little effort around architectural concepts like Event Sourcing, Hexagonal architecture, Actors and so on. They are there, but I suspect overshadowed by Rails and far less used and documented than their counterparts in other ecosystems.
hfyasdflkjwa 147 days ago [-]
I actually dropped Ruby due to lack of typing, if Rails/Ruby gets static typing maybe people like me will come back.
Another problem was lack of concurrency, I don't know if that is still an issue today.
diggan 147 days ago [-]
> I actually dropped Ruby due to lack of typing, if Rails/Ruby gets static typing maybe people like me will come back.
Not every language needs/should have static typing, so sounds like you just found a better language for your own needs, doesn't mean Ruby has to change. Personally I think it's perfect as it is :)
berkes 146 days ago [-]
Same here.
But having worked with PHP and Python, who having typing annotations like Ruby can have through addons (sorbet) and might get to core someday, I would not go back to Ruby if it got this.
Typing annotations in PHP or Python are hardly useful to me. Their net benefits aren't there for me.
So, rather than trying to make Ruby (or Python, or PHP) like Rust, or .net or Java, why not just pick Rust, .net or Java instead?
When I don't need typing, I'll gladly pick ruby still. But when I do, I don't want to shoehorn Ruby into something it was never designed to be, but instead pick an option that has typing designed into its core.
qudat 148 days ago [-]
Such absolutely wild takes here. I think ruby is the worst language I have ever used, especially with rails.
I’m not surprised at all that the ruby ecosystem is dying, people have been complaining about its magic-ness for a decade and it’s still a problem today.
shayonj 148 days ago [-]
Ankane single handedly is contributing so much back to the industry, in so many ways. Wild!
theappsecguy 148 days ago [-]
How does one person end up being this productive? With I assume a pretty busy life of work, family, etc…
Alifatisk 148 days ago [-]
I can’t describe how thankful I am for Ankanes gems, the stuff hes created has been essential for some of my apps. He fills the gap on the ecosystem in my opinion.
blob64 148 days ago [-]
Some amazing tools from this guy : hip hip hooray for more :)
riffraff 148 days ago [-]
I believe Andrew Kane is also a the author of pgvector[0], pgvector-ruby[1], and neighbor[2], all of which are pretty sweet!
Plus a bunch of other stuff[3].
Maybe he solved AI/ML by himself long ago and is using that to be this productive.
This kind of stuff is why rails is so productive for a normal web app. Sure, there are better vendor and point solutions for each of these, but the ability to drop in a gem, do some configuration and have a 80% solution lets you ship so. damn. fast.
mosselman 148 days ago [-]
Ahoy, blazer and field_test form the basis of our very strong no-BS data infra. It is so simple.
I still want to try and combine ahoy with a column store in postgres so that we can run the analytical queries straight onto postgres instead of syncing the events to BigQuery.
I've tried using pg_analytics by Paradedb but they don't support json columns, which is necessary with ahoy. Performance wise that would be ideal though.
philippemnoel 147 days ago [-]
ParadeDB founder here -- We migrated the pg_analytics project to its own repo and will be adding JSON support!
Lukas_Skywalker 148 days ago [-]
Also:
- Chartkick, a charting library for Ruby
- Ahoy, a Rails analytics library
- Searchkick, a Rails search library
There are over 370 repos in his Github profile...
felipemesquita 148 days ago [-]
And blazer[0], the closest thing to a perfect BI tool. It has a SQL editor/runner, saved queries, audit history, dashboards, alerts and user access control; all in a rails engine you can mount with minimal configuration.
Blazer is my favourite BI tool by a country mile. It does all I want with no fuss, is a breeze to set up and it's so much faster and more efficient than any of the other BI tools I've tried.
andruby 148 days ago [-]
PgHero is also from him I believe. Very helpful to identify slow queries in production, remove duplicate indexes, see missing indexes, keep an eye on table size, etc.
FWIW it’s 199 source repos (excluding forks). Still insanely, wildly productive if even 25% of those are substantive projects!
swyx 148 days ago [-]
what the heck? has anyone interviewed him? i'd love to learn more about how he works
philip1209 148 days ago [-]
We use so many tools from Andrew Kane in our production repo. His packages make it possible to build an AI application using Rails.
mtkd 148 days ago [-]
For anyone using Ruby who doesn't know ankane already, there are some very useful tools in his github ... like /disco which is a super simple collaborative filtering implemention if you want to quickly drop some recommendation in somewhere
If you are looking for anything ML related with Ruby ankane has usually had a look already ...
rgrieselhuber 148 days ago [-]
One of the most prolific people that I am aware of.
148 days ago [-]
buf 147 days ago [-]
Andrew Kane and Chris Oliver are the best of the best in the ruby community IMO. Even if I don't use all their contributions, they are most welcome.
aantix 148 days ago [-]
Any plans for implementing coreference resolution, similar to the FastCoref?
The lack of such contributions -in general- or the speed at which they appear, is what leads me to conclude that the Ruby community is slowing down.
In this case, suddenly there's an awesome library for Ruby. Which is fantastic. An achievement to be very thankful for. But "the community" "produced" this months or years after such libs landed for Python, JS, TS, Rust, Go and so on.
Not just ML/AI, same happens for "gems" (Ruby libs) that deal with any new tech. It used to be that any SAAS or startup would offer official Rubygems from the get-go. Often before offering other platforms or languages. Today, when I want or need to integrate something, from notion to slack to cloudflare: no Ruby option or at least no official one.
This saddens me. Ruby is so much more than Rails (for which I can understand the reluctance or "hate"). Ruby is so much nicer to work in than Python and certainly than JavaScript. Ruby could easily have been what Python is today and tens of thousands of developers would be just a little happier than they are now, I am certain.
It’s also recently on the rise in general.
On the one hand, you praise Ruby, and lament that it gains such libraries so much later than other languages.
On the other hand...if you were paying attention to the "Python, JS, TS, Rust, Go and so on" ecosystems, and noticed the ML/AI work, why didn't you create one for Ruby yourself?
I guarantee that whatever answer you give doesn't matter, because every other Rubyist has their own reply. A "community" begins with one person doing the thing.
The average Ruby dev works at a mid to small sized company, probably a startup, and they are usually contributing to some proprietary SaaS product on top of Rails. Progress is always happening in the Ruby / Rails world but it's really slow.
On the other hand, Python has three popular web frameworks and a huge data tooling ecosystem that just keeps getting better. It's just easier to get things done with Python these days and the gap is so huge that I can understand OP.
k
And a community thrives with many one-persons combining their effort and keep doing so.
I have made many libraries (gems), OpenSource. Some paid, many just for the benefit of this community; your implication that I lament but not put my work and effort up is frankly rather offending.
To continue on this lament: libraries in dynamic languages are rather hard to maintain, due to runtime constraints that progress/change over time. And the one thing I see is a dwindling usage. Less issues filed (good! ;), less downloads, less integrations, less praise, etc etc.
The more I pay attention, the more I see the Ruby community dwindling. I hope this is merely Rails dwindling - I frankly won't mind if Rails is replaced -, but I fear that Ruby = Rails in practicality. And that Ruby is on the way to the COBOL or Perl.
This, I lament, because I think Ruby is, in the niche of dynamic scripting languages, by far the nicest, cleanest and fun to work with. It's tooling and syntax far more consistent and sensible than Pythons. It's concepts far better thought out and much nicer executed than PHPs. And, sorry, everything can be better than JavaScript without much effort.
So, to me it makes no sense to make Ruby the next Python or PHP, because it's already much better, IMO. It's just not used as often. One extra person using it, doesn't change that.
And, it makes even less sense to make Ruby more like Go or Rust, because if I need Rust, I'd pick Rust instead of spending years of my life making Ruby more like Rust (i.e. invest in a type system, some compile stuff etc).
And when I need e.g. WASM runtime (in say serverless functions) or integration of some new fancy SAAS, or LangChain alike tooling, why would I poor months or years of effort into building tooling to compile to WASM, build gems around said SAAS, or help with tools like Transformers for Ruby, when I can pick Go or Rust to compile to wasm today, grab the Typescript package for the SAAS today, or learn, use (and dislike) Langchain in python today as well?
I've just started replacing my shell with a shell in Ruby too. To me one of the nice things about Ruby is that I feel like I can get things done so easily it doesn't matter if the community is smaller. Almost all the code I use apart from the kernel, Chrome and Xorg is now my own.
My file manager is (very simplistic, I do most of my actual file management from the shell - it's in effect mostly a desktop launcher) Ruby
It, as well as my desktop switcher (also Ruby) depends on pure Ruby X11 bindings, and a pure Ruby TrueType font renderer:
So does my Ruby terminal (what's on Github is nothing like the full version, which I will package up and push one of these days).My editor is also pure Ruby, using Rouge (Ruby; not mine) for syntax highlighting. That also needs a major update on Github - what's there probably won't even run for others because my personal "ecosystem" on my system is full of helpers and these things are written to be as minimalist as possible so e.g. my editors "file open" dialog is a 2-3 line wrapper around dmenu.
And I've just replaced my shell with Ruby - but that's just for interactive use, so it's very tiny.
That conclusion was apparent awhile ago.
https://trends.stackoverflow.co/?tags=ruby,python,php,typesc...
Everything is ML focused now, and python is unfortunately the language most data scientists prefer.
I mentioned a few already. Some more that I recently ran into, are in the niche of "verifiable credentials", SSI and DIID. A weird niche, but relevant to my current work.
There's plenty of work, references, implementations, type-systems for TS, Rust, Python and even .net. But nothing significant (a very few experiments at most) in Ruby.
There's little support for WASM, eventhough that's a promising tech to run and manage backend stuff as well as maybe someday client-side stuff already. There's little tooling to manage cloud infra in Ruby (Chef and Puppet still chugging along, but hardly as omnipresent as Ansible etc)
PHP, Python, Typescript: typing is emerging everywhere, albeit "bolted on". Ruby has efforts in this direction, but far behind the ones mentioned above.
There's no practical "frameworks" or libraries to make games. Very few frameworks or tooling to build desktop software. There's little effort around architectural concepts like Event Sourcing, Hexagonal architecture, Actors and so on. They are there, but I suspect overshadowed by Rails and far less used and documented than their counterparts in other ecosystems.
Another problem was lack of concurrency, I don't know if that is still an issue today.
Not every language needs/should have static typing, so sounds like you just found a better language for your own needs, doesn't mean Ruby has to change. Personally I think it's perfect as it is :)
But having worked with PHP and Python, who having typing annotations like Ruby can have through addons (sorbet) and might get to core someday, I would not go back to Ruby if it got this.
Typing annotations in PHP or Python are hardly useful to me. Their net benefits aren't there for me.
So, rather than trying to make Ruby (or Python, or PHP) like Rust, or .net or Java, why not just pick Rust, .net or Java instead? When I don't need typing, I'll gladly pick ruby still. But when I do, I don't want to shoehorn Ruby into something it was never designed to be, but instead pick an option that has typing designed into its core.
I’m not surprised at all that the ruby ecosystem is dying, people have been complaining about its magic-ness for a decade and it’s still a problem today.
Plus a bunch of other stuff[3].
Maybe he solved AI/ML by himself long ago and is using that to be this productive.
[0] https://github.com/pgvector/pgvector
[1] https://github.com/pgvector/pgvector-ruby
[2] https://github.com/ankane/neighbor
[3] https://github.com/ankane/
https://github.com/ankane/pretender makes it super easy to impersonate a different user in a rails app
https://github.com/ankane/ahoy is first party analytics for rails
https://github.com/ankane/blazer is BI built into rails
https://github.com/ankane/field_test is A/B testing
This kind of stuff is why rails is so productive for a normal web app. Sure, there are better vendor and point solutions for each of these, but the ability to drop in a gem, do some configuration and have a 80% solution lets you ship so. damn. fast.
I still want to try and combine ahoy with a column store in postgres so that we can run the analytical queries straight onto postgres instead of syncing the events to BigQuery.
I've tried using pg_analytics by Paradedb but they don't support json columns, which is necessary with ahoy. Performance wise that would be ideal though.
- Chartkick, a charting library for Ruby
- Ahoy, a Rails analytics library
- Searchkick, a Rails search library
There are over 370 repos in his Github profile...
[0]https://github.com/ankane/blazer
https://github.com/ankane/pghero
If you are looking for anything ML related with Ruby ankane has usually had a look already ...