Hacker News new | ask | show | jobs
by thwy12321 2761 days ago
"The key point here is our programmers are Googlers, they’re not researchers. They’re typically, fairly young, fresh out of school, probably learned Java, maybe learned C or C++, probably learned Python. They’re not capable of understanding a brilliant language but we want to use them to build good software. So, the language that we give them has to be easy for them to understand and easy to adopt. – Rob Pike"

When did computer science become about hand holding? has it always been this way? Look at react. It was designed to force functional programming concepts in an OOP manner. Is the future of programming the implementation of tightly controlled interfaces with extreme type safety? I would argue thats where we are going. Things are becoming less expressive, not more.

3 comments

>When did computer science become about hand holding?

When people with pragmatic goals want to get large teams of new programmers productive fast, and can't expect everyone to be able to fend on their own or can afford the cost of accumulated mistakes.

>Look at react. It was designed to force functional programming concepts in an OOP manner.

Whatever that means, as React has little to do with "OOP manner".

OOP meaning React.Component, functional meaning immutable html state, property inheritance, render(), etc
Component hierarchies != OOP. They are an inevitable part of UI, which is hierarchical.

React has move to stateless components and functions over classes.

It's the Java approach. Don't give people footguns and force them to write software in a readable, testable, maintainable style. It works extremely well in software engineering, because you want systems that work reliably and that can be maintained/extended by any other engineer at your org. In the professional software engineering world, "clever" programmers are almost always a horrible drag on their team.
It's not the Java approach at all. The first languages to remove ubiquitous nulls (e.g. MLs) were looking to increase expressivity and modeling abilities, not to force bondage and discipline upon developers.
Prevention of user error is a good design principle: https://justuxdesign.com/blog/poka-yoke-design-the-art-of-er...