According to these guys we are doing a lot of very bad things!

Hi there.

I started to program at college using the OOP paradigm (C++, Java). I knew there were other paradigms and design patterns but was not very interested until now that I’m trying to learn JavaScript conscientiously.

I tried to find a good direction and found these articles from Java and JavaScript "gurus":

Due this I started a new journey: Learning some OOP and functional languages (like Smalltalk/Pharo, Erlang, Haskell, Clojure, etc.). I think that I need check personally what they claim, doing some stuff.

Guys, you are a great community so I want to read your opinion about what these guys say.

The guy seems to take quotes out of context, or quotes only what fits his case.

He quotes Jeff Atwood as saying

but forgets to add Jeff’s conclusion:

OOP is an amazing tool. A tool that can be abused. But without that tool, we would be in a world of pain, a hell of 10kLOC procedural PHP scripts.

Thanks for sharing. These are very opinionated posts but interesting to read. There are, of course, correct parts and not so correct parts in these. Overall, fanatical following of design patterns and even some of design principles leads you to over-engineering which is as bad as spaghetti-code if not worse.

I agree again. I’d rather be balanced.

And I will share this final link:

Warm regards.

Thanks for sharing all these. Some good topics.

I was about to suggest that you try functional programming languages, but then I took another look at your post …

Looks like you already have begun walking that path :)

Which is great.

JavaScript… that’s is a crazy scene!

When I program, I try to resist the temptation to over-engineer.

These days, I rarely use (or write) Yii extensions, and I can get away with it because Yii uses Composer.

I don’t need, or want, generalized code when my needs are specific.

The current rage of the JavaScript community is to be ‘reactive’ - whatever that means.

I guess it means that JavaScript finally got proper support for Object-Orientation, and thus people want something different, like functional programming.

PHP is here for those of us who are not fashionistas.

One thing that I like about the newest trend in the JavaScript community is the return to smaller frameworks and the idea of un-coupled, functional code.

But, it is just an idea.

Not religion. Not a silver bullet.

This reminds me of C++ in the 90’s when OO was new and ‘everyone’ went totally crazy with huge inheritance hierarchies.

Now even C++ programmers are getting into the functional (reactive?) "mindset".

In the end, I think, we should focus on what suits our problem domain the best.

And try our best to resist our urge to over-engineer.

And avoid following any shady cult leaders.


Currently, I am working towards having a good handle on the following programming languages:

C - (c11) - this is elegant and immensely powerful. And widely used. And you are able to write in either OOP or functional style.

Racket - this is a Scheme that is mature, has batteries included, and a good alternative to Lisp. Carmack is using Racket, so why not?

Rust - a safe version of C. Much harder to learn, but I think it is going to be worth the effort.

Python - high level language that does everything. It reads well, too.

@jacmoe, these are fantastic tips! Thanks for taking the time to answer this post

:unsure: A spent a month experimenting with the Meteor full stack framework using Aurelia on the client side. The lack of relational SQL support or rather requirement for use NoSQL database engines was my main turn off. Things are changing in the Javascript world as far as OOP support goes, but I would tend to agree that the JS crowd marches by a different drummer.