return to table of content

Transformers for Ruby

czbond
26 replies
2d5h

Thanks for creating this - it looks interesting. Contributions like this are really needed in the Ruby community

berkes
25 replies
2d1h

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.

gjtorikian
11 replies
1d23h

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.

berkes
5 replies
1d8h

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
4 replies
1d

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
3 replies
5h53m

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
2 replies
5h5m

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:

  https://github.com/vidarh/skrift
  https://github.com/vidarh/skrift-x11
  https://github.com/vidarh/ruby-x11
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
1 replies
4h32m

Very cool, thanks. I'd switch to a Ruby WM in a heartbeat if it worked on Wayland.

vidarh
0 replies
1h13m

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.

vinceguidry
1 replies
1d23h

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
0 replies
1d21h

    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.

notjoemama
0 replies
1d19h

I guarantee that whatever answer you give doesn't matter

k

mkl95
0 replies
1d23h

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.

cortesoft
0 replies
1d16h

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.

jashmatthews
3 replies
1d15h

It look like a decline but these are relative numbers right? The whole industry exploded in size over this time period.

berkes
2 replies
1d8h

Does it matter if it's relative or absolute?

felipemesquita
1 replies
1d7h

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
0 replies
4h41m

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
4 replies
1d23h

Can you give me some examples? This seems like an interesting problem.

berkes
3 replies
1d7h

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
2 replies
1d5h

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
0 replies
1d5h

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
0 replies
5h55m

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.

theappsecguy
0 replies
1d19h

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.

qudat
0 replies
1d17h

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.

jashmatthews
0 replies
1d15h

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.

Lukas_Skywalker
5 replies
2d5h

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
1 replies
2d5h

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.

[0]https://github.com/ankane/blazer

petepete
0 replies
2d4h

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.

swyx
0 replies
1d23h

what the heck? has anyone interviewed him? i'd love to learn more about how he works

corytheboyd
0 replies
2d5h

FWIW it’s 199 source repos (excluding forks). Still insanely, wildly productive if even 25% of those are substantive projects!

andruby
0 replies
2d4h

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.

https://github.com/ankane/pghero

mooreds
2 replies
2d1h

He's also done a ton outside the AI space:

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.

mosselman
1 replies
2d1h

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
0 replies
1d5h

ParadeDB founder here -- We migrated the pg_analytics project to its own repo and will be adding JSON support!

rgrieselhuber
0 replies
2d5h

One of the most prolific people that I am aware of.

philip1209
0 replies
2d3h

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
0 replies
2d5h

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 ...

realty_geek
1 replies
2d2h

Seriously, is this guy human? I'd invest a billion dollars in any individual so talented...

delichon
0 replies
1d22h

I'm 100th as talented and would consider accepting a $10M investment.

wkirby
0 replies
1d17h

Seconded. The sheer volume of useful work Ankane puts out for the community is unreal.

theappsecguy
0 replies
1d19h

How does one person end up being this productive? With I assume a pretty busy life of work, family, etc…

shayonj
0 replies
1d22h

Ankane single handedly is contributing so much back to the industry, in so many ways. Wild!

rsoto
0 replies
2d3h

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.

danieldrehmer
0 replies
1d17h

wait, but why?

buf
0 replies
1d4h

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.

blob64
0 replies
2d3h

Some amazing tools from this guy : hip hip hooray for more :)

aantix
0 replies
1d21h

Any plans for implementing coreference resolution, similar to the FastCoref?

Alifatisk
0 replies
1d21h

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.