
Disclaimer: My own experience with OO is limited.
On 30/12/2012, Daniel Díaz Casanueva
My programming life (which has started about 3-4 years ago) has always been in the functional paradigm. Eventually, I had to program in Pascal and Prolog for my University (where I learned Haskell). I also did some PHP, SQL and HTML while building some web sites, languages that I taught to myself. I have never had any contact with JavaScript though.
...
I thought it could be good to me (as a programmer) to learn C/C++. It looks like I have to learn imperative programming (with side effects all over around) in some point of my programming life.
Have to, no. Ought to, yes. As Turing-equivalent computers are essentially imperative, imperative code is nearest to the actions of the machine. Ergo asm may seem the best choice, but not so: C is the wiser choice, as it is machine-agnostic, widely used, and often clear and effective. I never used pascal, and after I read this: http://www.lysator.liu.se/c/bwk-on-pascal.html I care not to do.
So my questions for you all are:
* Is it really worthwhile for me to learn OO-programming?
Likely. Some code is most readily written in objective style.
* If so, where should I start? There are plenty of "functional programming for OO programmers" but I have never seen "OO programming for functional programmers".
Smalltalk.
* Is it true that learning other programming languages leads to a better use of your favorite programming language?
Yes. Either one gains an awareness of certain biases and assumptions made while using prior languages, or else the new language becomes one's favorite (^_~)
* Will I learn new programming strategies that I can use back in the Haskell world?
Maybe. I honestly can't say a priori, but it's a win to know the alternatives. I have done some OO, and a few times while writing in Haskell, the objective model came to mind first, tho in many cases it is cumbersome in Haskell. Cheers, Strake