I’ve only read the Foreword and a few pages of the first chapter but the first paragraph of Chad Fowler’s contribution already resonated with me:
“You’re standing in front of a huge, steep wall of rock. Your neck is straining as you bend our head back as far as you can to take it all in. If you squint, you can barely see something moving around at the top. There’s probably some really good stuff up there. You heard from people you trust that it’s worth climbing this wall. But, you’re damned sure going to hurt yourself on the ay up. You can already see some of the jagged edges jutting out. And what if it turns out that you don’t like what you see when you get there?”
Scala in Action by Nilanjan Raychaudhuri, Foreword
This didn’t just strike a chord with me, it resonated. I’d already blogged about getting a toe-hold in the language, and the image of a cliff face had been one which had occurred to me on multiple occasions. Chad had also effectively articulated my fears. If I was to do this properly, to learn to program Functionally then I need to do it wholeheartedly. That means, as he points out, I risk not liking what I see when I get to the top. Even if I do, it’s going to go against the grain of much of what I already know and trust which means it’ll hurt. It will most likely hurt a lot.
So why? Why go on with something which Chad says in the very next sentence is “difficult”? Because it’s there, and if it proves that I’m just a Java/OO type of guy, then at least I’ll know better why I am.