I have (at least I think) a decent background in Object Oriented Programming and specifically in Java: I started in 2000, IBM Websphere ran with a damned JVM 1.1.8 and it had a slooow admin console written with Java Foundation Classes.
Now, after 15 years I don't feel myself an "expert" but just a passionate developer. This because everything changes too much frequently and in my opinion it's quite hard to become an "expert", especially if you changed, like me, several companies, growing your working experience in several and different fields.
I always thought the key factor that drove my developer path and my passion has been the curiosity. I was, I am and hopefully I will be curious, always.
In the last few years I started hearing about the functional paradigm and, in my free time, I started reading something about that....just reading, without trying to touch things with my hands, without doing something concrete.
Having grown up (only) with Java I always had the regret of ignoring the outside world, other programming languages, other paradigms. So when I heard for the first time about Scala (I know, damnably late) I tried to take the plunge: the result was horrible...I'm not actually sure If that was a wrong time for doing that or if the excessive Object Oriented and Functional mix confused me...
I was not able to move away from "thinking in Java"... I felt Scala like a Java dialect and I could not reason in different terms. So after trying a bit, I realized I was still programming in Java, even if my source files had a different suffix (from .java to .scala). Do you know the Chapman Stick?
It's a 10 (or 12) strings instrument that theoretically can be seen as the union of a bass and a guitar. But if you're a bassist (or a guitarist) and you try to play it with that perspective in mind, you won't never be able to actually understand its power, because it's not a guitar, it's not a bass, it's not a guitar and a bass: it is simply a new instrument, that has to be played with its own rules.
Now, coming back to our technicalities, I decided to stop (at the moment) with Scala, and I started looking for something effectively different from Java, but also something that, at the same time, could reuse libraries, utilities, framework and practical things I know about Java...and then I met Clojure: perfect, it runs on top of the JVM, it forces you to think in functional terms, it can use Java classes and libraries, it's popular and there is a lot of documentation, tutorials, online resources, books...what else?
After reading a bit about it, I thought it was exactly what I was looking for...so, nothing, I decided to start this new path, with my usual curious approach.
Differently from the past, I also decided to annotate my progresses here in this blog, in order to track my activity, my doubts, my faults.
No comments:
Post a Comment