I'm begging you, just use a language that compiles to a single binary. It can self update in place, be easily installed on developer machines and CI pipelines without requiring a whole additional toolchain in every container. Google, Heroku, AWS, Shopify all do and it's an awful developer experience.
From Ruby to Node: Overhauling Shopify’s CLI for a better developer experience
31–40 of 109 posts
Re: From Ruby to Node: Overhauling Shopify’s CLI for a better developer experience
#32Cool. But god, the Shopify CLI / developer experience has degraded so much in the past few years. With the newest iteration, they want a full app re-structure just to work with the CLI properly. It is absolutely brutal. Sure, before they had basically no tooling, but then they had some basic ones that everyone was basically happy with, and then they just decided to iterate too much. (saying this as a ~ 8 year long Pa…
Nowadays it's not that hard to get UX/DX right if you are actually committed to it.
Re: From Ruby to Node: Overhauling Shopify’s CLI for a better developer experience
#33Interesting. TIL about the Open CLI framework that they all seem to be moving to: https://oclif.io/
I moved the Zapier CLI to oclif a few years ago over a bespoke version, since it handles a lot of the nitty-gritty of displaying text in terminals. It's a pretty nice setup and allowed us to focus on the important things.
Re: From Ruby to Node: Overhauling Shopify’s CLI for a better developer experience
#34I just find working with Node to be gross. Look at this: https://github.com/Shopify/cli/blob/main/package.json but wait...this too: https://github.com/Shopify/cli/blob/main/packages/app/packag... https://github.com/Shopify/cli/blob/main/packages/cli-hydrog... https://github.com/Shopify/cli/blob/main/packages/cli/packag... https://github.com/Shopify/cli/blob/main/packages/create-app... etc, etc, etc VS https://github.…
Re: From Ruby to Node: Overhauling Shopify’s CLI for a better developer experience
#35Earlier quoted context omitted.
What's the mechanism for self-updating in place? Something more intelligent than just downloading and copying the file over itself? A running program itself is a copy of the file on disk, I think. So that sounds fine. But this still depends on getting permissions right though I think. Also, does a binary always know where it lives (across Win/Mac/Linux)?
Download-and-copy is the way. A single binary CLI can just copy over itself and exec into the new version. You can preserve the permissions of the original file. With scripting-language CLIs, you either have to deal with the module install process or use an external packaging solution.
Re: From Ruby to Node: Overhauling Shopify’s CLI for a better developer experience
#36Cool. But god, the Shopify CLI / developer experience has degraded so much in the past few years. With the newest iteration, they want a full app re-structure just to work with the CLI properly. It is absolutely brutal. Sure, before they had basically no tooling, but then they had some basic ones that everyone was basically happy with, and then they just decided to iterate too much. (saying this as a ~ 8 year long Pa…
One of the things I find fascinating is that in the days where it was Liquid templates, and Vercel etc. were barely a twinkle in people's eyes, Shopify had a huge value add - that you or an app development consultancy could iterate on customizing interfaces here and there, and deploy changes from the CLI or directly on the Shopify platform, without needing to worry about deployment, payment processing, etc. But so mu…
And whilst she appreciates all of the Shopify Apps they are secondary to the fundamental process of taking, processing and shipping orders.
The key to the whole ecosystem are non-technical users like her not the app developers.
Re: From Ruby to Node: Overhauling Shopify’s CLI for a better developer experience
#37Earlier quoted context omitted.
One of the things I find fascinating is that in the days where it was Liquid templates, and Vercel etc. were barely a twinkle in people's eyes, Shopify had a huge value add - that you or an app development consultancy could iterate on customizing interfaces here and there, and deploy changes from the CLI or directly on the Shopify platform, without needing to worry about deployment, payment processing, etc. But so mu…
My partner runs a medium sized ecommerce store on Shopify and her priority is having a system that is simple and stress-free. And whilst she appreciates all of the Shopify Apps they are secondary to the fundamental process of taking, processing and shipping orders. The key to the whole ecosystem are non-technical users like her not the app developers.
Re: From Ruby to Node: Overhauling Shopify’s CLI for a better developer experience
#38I just find working with Node to be gross. Look at this: https://github.com/Shopify/cli/blob/main/package.json but wait...this too: https://github.com/Shopify/cli/blob/main/packages/app/packag... https://github.com/Shopify/cli/blob/main/packages/cli-hydrog... https://github.com/Shopify/cli/blob/main/packages/cli/packag... https://github.com/Shopify/cli/blob/main/packages/create-app... etc, etc, etc VS https://github.…
Re: From Ruby to Node: Overhauling Shopify’s CLI for a better developer experience
#39Cool. But god, the Shopify CLI / developer experience has degraded so much in the past few years. With the newest iteration, they want a full app re-structure just to work with the CLI properly. It is absolutely brutal. Sure, before they had basically no tooling, but then they had some basic ones that everyone was basically happy with, and then they just decided to iterate too much. (saying this as a ~ 8 year long Pa…
As you mentioned, if they're not OK with CLI, they could refactor in Ruby. The whole "embracing functional programming" and MVC architecture (i think Rails when i hear MVC) as reasons to go to Node, and not Ruby, is nuts.
If they were worried about dependencies, they'd use Rust or Go as they mentioned.
Re: From Ruby to Node: Overhauling Shopify’s CLI for a better developer experience
#40Cool. But god, the Shopify CLI / developer experience has degraded so much in the past few years. With the newest iteration, they want a full app re-structure just to work with the CLI properly. It is absolutely brutal. Sure, before they had basically no tooling, but then they had some basic ones that everyone was basically happy with, and then they just decided to iterate too much. (saying this as a ~ 8 year long Pa…
It will happen again. I believe they have terrible tech leads / managers who push/approve wrong things. They also grew exponentially during the pandemic, so that grew their manager's incompetence exponentially as well.