To view parent comment, click here.
To read all comments associated with this story, please click here.
I share the same opinion, although I do like multi-paradigm languages.
I loathe the way some developers seem to try to bend a given language to use it in ever conceivable scenario.
Don't mix Software Engineering with CS names. My university degree when I took it, was called Software Engineering in my mother language, but the actual contents were what is known as CS in other countries.
I'm absolutely for the existence Software Engineering courses; after all, there's a huge need in today's world for applied software engineers, and plenty folks who desire such jobs. I just hate it when such courses call themselves 'Computer Science' [1] when the curriculum clearly is not.
Personally I think a big heaping dose of honesty is needed from universities... and from students too. Everyone's perfectly happy to distinguish between, say, Applied and Theoretical Physics, so why conflate Applied and Theoretical Computing? The only reason I can think of is ego marketing: students want to be software engineers but call themselves 'computer scientists' because that sounds cleverer.
And so everyone forgets what CS actually is and what it's meant to do: push the boundaries and [re]define the state of the art. Just as in the sciences, you need a vibrant theoretical community generating new ideas and improvements that can eventually feed into the applied world, otherwise the latter grows close-minded and stagnant. It's not healthy, but I suspect a lot in the programming world isn't what it ought to be.
[1] Which should probably be called 'Computer Math', but that's a separate gripe.
Perhaps FP is a special case, but it only takes one mutable piece of data or a function with a side effect to make it useless (in a concurrent/parallel context).
So I agree that single paradigm languages have their place. Also, many of the things done in OOP can be done in FP but using a different way of thinking.
And I think that is the crux of the problem. People don't want to have to learn a new way of thinking. They are ok with learning new API's or even new languages that fit their mold (OO, imperative, Relational, logical etc), but having to think in a new way is too much work for many people.





Member since:
2006-11-28
I disagree. Maintaining a clear, precise focus is a Very Good Thing (see: Coupling and Cohesion 101). You never see a joiner using the same tool to do everything from slice wood to turn screws to drive nails to apply varnish. There's a reason for that.
I think the real problem is developers not being able to hop quickly and effortlessly between different languages within a project. That may be partly down to bridging and tools not being good enough to allow seamless mixing and matching. But I suspect the biggest barrier is developers themselves lacking the mental agility to switch between languages and idioms. That, compounded by a self-indulgent fondness for inventing complex solutions using tools they already know rather than seeking out simple solutions involving tools they don't. The modern trend for Computer Science courses to silently retool as Software Engineering, and from there to lowest-common-denominator Java diploma mills, probably doesn't help either; but that's another debate.