First, spree is amazing. Spree is a breathe of fresh air. Not just from when you move from say Magento to Rails, but each and everytime you run
rails new app --database=postgresql && spree new app. Its like a new challenge. A new fight; and if you know me, you know I like to fight.
Its also the dawn of some new coding horrors.
You’ve seen the word “coding horror”. I bet you think I’m refering to Jeff Atwood, but to be honest, I’m actually referring to the actual definition of “coding horror”. No, Jeff Attwood is not the defeinition of a coding horror, move on…
A “coding horror”, at least to me, is a piece of code that is functional. Code that can run and get the job done. Its also bad code. Code that might make you wish you could rip your hair out. You can think of a coding horror as a code smell, “WET” code (as opposed to DRY), or an anti-pattern. Either way, you see it written, in the source, and on production… Its a coding horror.
When I was first beginning with spree I really wanted to learn it (and I did). My initial reaction was that it was terrible. Buggy.
Thing is, spree was developer friendly. It wasn’t until I pulled my socks up and knuckled down that I began to build my own personal spree cookbook.
And so I got good at it… I created a machine learning program for it for crying out loud.
Then people got in contact with me. People with money. People with power. People with products. People who wanted a storefront online. I accepted this small start up and began contract work with them. Small and simple, but start up. Just how I like it.
Then I began contract work part time with Rails Dog. The creators of Spree. They told me to get in contact with them. I did. I talked to them. Before I knew it, they had somehow, without telling me, pushed me through from casual friendly Skype chat to full on tech interviewing. Three or five interviews later… There’s a contract. I signed.
And there I was, working day and night with spree.
There’s also something that I need to confess: Spree is not easy. Spree makes you think. Spree is an ecommerce framework for Ruby on Rails. Rails is a web framework for Ruby. Ruby is a dynamic language that compiles down to C.
Spree’s issue is that it can burn a developer out. If you’ve ever seen the Shopify source code, you know what I mean. The enourmous amount of files and complexity can get at you and that’s when you burn out.
When something gets at you, you don’t just burn out, you might lock yourself in your room and go offline or (if you’re me) tackle the problem head on, get into a fight, and consider yourself victorious. It doesn’t matter what you do really, you’ve burned out.
Frankly, I’ve been getting tired lately. Oddly so. I used to get up at 8. Now its 10. I used to shut my computer down at a good time. Now I force myself at 9 some nights for my own good; last week not so much. Its 9:04pm right now. Mac is still on. I’m still typing. Failed that rule. I look out the window, its nightime. Somewhere in the world, there’s a sunrise. Someone is readying for a new day. Wish I was there.
The enormous amount of complexity that ensues with Spree is, unfortinately, too much for a full time job. I don’t mind writing ruby script or Rails apps full time, but for some reason, when you have to add a new layer of complexity, you start to feel the ground beneath you weakening.
Ruby is fantastic. Ruby has 1_759_542 lines of code. Ruby is simple, elegant, and amazing. Rails is also fantastic. Rails has 347_658 lines of code. Rails is powerful and definately a game changer for us web developers. Spree is my favourite. Spree has 197_207 lines of code. Spree is a full blown framework that is 56.724424578% the size of Rails. I mention this because if you think, for five seconds, that Spree is going to take you a day to learn, think again. Did Rails take you a year to learn? Then give Spree some credit and give it six monthes of your time. No joke. You’re learning a whole nother framework buddy. This ain’t going to be easy.
So you’re sitting there and programming on three difficult levels at once. No one said this was going to be easy. No one said it was pretty either. You burn out and you crash. Such is programming. Just remember: you made money doing it. You made it with Spree.
Now I move onto the conclusion of the blog post. As you can tell, I’m burning out. I’m crippling. By the end of November, I’ll be just doing programming part time with Spree. The other half of my time go to my personal health, which needs to be looked at. Sitting on your butt all day doesn’t help you much. Sorry, but I’m contracted part time to a company for a year. Probably going to use that to my advantage.