This weekend I have survived on Veela and Mountain Dew. Releasing Rope to GitHub, starting PiBooth, and some more thought about JB. I still refuse to touch JB until I feel I am completely ready. When I start development on it, I’m going to put every bit of my heart into it. But let’s talk about a few things I’ve learned from both Rope and what little I’ve done with PiBooth.
Let’s get the short one out of the way. I don’t like Python. To reiterate what I said on Twitter, Python is not in any way horrible. It’s not Java. I still think that Ruby is a bit more non-developer friendly, but it really comes down to how the developer packages their application.
Even before I discovered Ruby, I never really liked Python. But especially after Ruby completely spoiled me, my dislike for Python grew substantially. Ruby just really showed me what a general purpose programming language should be, and Python doesn’t quite cut it.
Now am I dissuading new developers from learning Python? Absolutely-fucking-not. If you like Python, I envy you. I want to like it, but I can’t.
Which brings me to my next topic on things I want to like but can’t. Rails, my old enemy. Let me just ruin any chances of a career of a Rails developer by saying “Fuck you, DHH, your framework sucks.”
Even though I was a little ignorant shit in my earlier post about Rails, now I actually understand what a good MVC framework can be. I actually understand the magic now. But that still doesn’t make Rails any better. In fact, it only makes it worse.
So let’s get into my little project called Rope. Rope is a parody/clone/slightly-different-but-better version of Vine. It was started by taking a GIFs with sound idea and applying a Vine guise to it. And also making it desktop-friendly. So I decided to give Rails a try, surely it can’t screw up something so simple? Nope. File uploads are broken in Rails 4. Completely broken. “Paperclip/Carrierwave.” I couldn’t get either of them to work. “Just use Rails 3.” Why won’t Rails 4 work? They actually fixed some problems I had with 3 in 4. So I actually started to like Rails 4 a bit. But to no avail.
After two weeks of battling with Rails, I gave up, moved everything to ~/Projects/Broken_Rope and started learning Padrino. I can honestly say I’m blown away at how amazing it is. It’s simple. No bullshit. I rewrote the entire thing in one day. Started around 3 AM on Sunday, Finished around 1 AM on Monday, and had a nap in the middle. I had a few hiccups with getting Sequel to work exactly like I wanted (Guys, use an options hash instead of a URI query. It takes up more room, but it’s much clearer to see what’s happening.) but otherwise painless. Getting CSRF protection to work perfectly was a little weird, but it was mostly my fault for not including a few lines of code that I should have. I’m going to start on the user account functionality of Rope sometime this week, so we shall see how Padrino handles authentication and sessions. From looking at the padrino-admin stuff, it seems to do it pretty well, although it’s implementation is a bit odd. Could just be because they are using ActiveRecord and DataMapper in the samples while I’m using Sequel, could be an oversight on their part, who knows.
So yeah. I’m only 99% loser now that I’m actually trying to do something productive.