Hello - I'm Steve, and I'm a polyglot programmer


(Stephen Orr) #1

That’s my confession out of the way then…

I’m a Senior Developer working for Siftware; they’re based out of Shrewsbury, but I get away with only going to the office one day a week. Remote work is absolutely awesome.

My day job is PHP, and that’s been the case since 2006. I’ve worked with most of the major frameworks - Zend Framework, Symfony, CakePHP - although I’m really not interested in Laravel, despite its popularity.

Around the same time as I started working with PHP commercially, I came across Ruby (take into account that this was back in 2006, right when Rails was at the top of its hype cycle). I’ve been dabbling with it ever since, and I’ve tried to convince every employer I’ve ever had to at least consider it. Usually the problem has been “oh, none of our other developers know Ruby, and we don’t want to cross-train them”. That’s a valid concern, of course, but I’ve found that through applying techniques I’ve learned in the Ruby world, my PHP code has become significantly better (for example: test-driven development is something many PHP devs ignore, but it’s a key factor for many Ruby devs - primarily because their tools make it easy).

A couple of years ago I signed up to be a Technical Reviewer for the Pragmatic Bookshelf. As a result, I’ve been exposed to a lot of great books and I’ve gotten my name in print a few times - check the acknowledgements of some of their recent titles :slight_smile: Most recently I reviewed the upcoming Rails 5 edition of Agile Web Development with Rails, but I did the Rails 4 edition too.

I’ve dabbled with JavaScript, but so far I haven’t seen any particular advantages to using Node on the server side. Maybe I’m missing something, but I prefer to avoid callback hell :slight_smile: Likewise, on the front-end I’m ignoring the hip new technologies like Angular and React. I’ll use them when I find that I can’t do what I need to any other way.

I’ve recently been playing with Elixir, Rust and Go - but I don’t really have a specific reason yet to explore them on a real project…


(Daniel Hollands) #2

Welcome @stephenorr, good to have you onboard.

You was you at WMRUG on Wednesday, right? I hope my Pi talk didn’t bore you. :joy:

This is exactly my current set-up, one day a week in Tamworth, every other day I’m working from home in central Birmingham.

Being an ex-PHP dev, I’ve left the language far behind me, so this is surprising to me, as if there was something which would claw me back, it’s Laravel.

That sounds interesting - would I be correct in thinking that your job is to follow the instructions in the book, to make sure they do what they’re meant to? I’ve read far too many books by a certain publisher (who I won’t name, to protect to guilty) that has been of such poor quality that it’s obvious that no one even read them, let alone check their code actually works.


(Stephen Orr) #3

I was at WMRUG on Wednesday, yes :slight_smile: And no, your talk didn’t bore me. I’ve been meaning to do more with my Pi(s) for a while, you gave me some ideas.

The main reason I don’t like Laravel is the overuse of static methods. They’re a pain in the backside to test, because you can’t mock them out with PHPUnit, which means you’re calling the real methods far too much and possibly introducing side effects.

As for being a Technical Reviewer - yes, part of the job is following the instructions in the book, making sure they’re accurate, correct and that the chapters flow together well, building on each other. Generally you have to run the code samples as well, if there are any.

Would the certain publisher’s name being with P and be exactly 5 letters in length? :wink:


(Daniel Hollands) #4

Good stuff… I’m full of ideas, what I’m lacking is the time and money to do all that I want to do.

From what I understand, this is a bit of a misconception - they look like static methods, but are in fact what they call a facade. Take a look at http://usman.it/laravel-4-uses-static-not-true/

:zipper_mouth:


(Greg Robson) #5

Indeed @LimeBlast - you’re right in saying that they use Façades.

You should have a look at the testing abilities of Laravel @stephenorr - there are several Laracasts on the subject:
https://laracasts.com/index/testing

More recent versions (5.1 onwards) have introduced handy methods to improve the testing experience.
https://laravel.com/docs/5.2/testing

I’m biased, but from what I have seen of the different frameworks Laravel is ahead and thanks to Laracasts’ excellent tutorials they have made Laravel users some of the most unit testing aware developers around :slight_smile:

I would like to try Ruby/Rails some day. I have a huge amount of respect for DHH and his pragmatic approach to the language and his articles always inspire me. https://medium.com/@dhh

JavaScript is something I need to get my head around properly. Approaching async development when you mostly use PHP does cause some head scratching!! :smiley:


(Stephen Orr) #6

Thanks both. Useful to know that maybe Laravel isn’t as awful as I thought.

@GregRobson: There’s no time like the present. Getting set up with Ruby and Rails these days is easy (as long as you’re not trying to do it on Windows, and even then it’s not as hard as it used to be). You could do worse than read Michael Hartl’s Rails Tutorial book (freely available online, but not yet updated for Rails 5), or pick up a copy of Agile Web Development with Rails (in beta for Rails 5).

I’d imagine many of the concepts that Rails is now introducing will be appearing in PHP frameworks soon, but Ruby allows rather more flexibility with syntax than PHP does, often making for a friendlier developer experience. That’s certainly what attracted me to Ruby initially.


(Daniel Hollands) #7


(Stephen Orr) #8

Ha, awesome :slight_smile:


(Philip Wattis) #9

Ruby and PHP? I don’t suppose I could tempt either of you with a paid job at a startup in Central Birmingham?


(Daniel Hollands) #10

:joy:

Sorry, I just find it funny that you even need to specify that it’s paid - that should go without saying, but alas doesn’t tend to be.


(Philip Wattis) #11

Sorry, I just find it funny that you even need to specify that it’s paid - that should go without saying, but alas doesn’t tend to be.

True. In the circles I move in I meet lots of people with ideas looking for software developers who will work for sweat equity only - I get approached a few times every week with such offers. I wanted to distinguish this job in being that it is at a startup, but attracts a market rate salary.