This week leading academics slammed Java as a first programming language in computer science courses, saying it undermines good software engineering practices and teaches poor programming.
I agree on one specific front, in that there is a lot of complexity for the novice – but then it’s a general purpose language that does a lot [...]
Is about pragmatic software development, and above all that software development should be more about people and process.
What does that mean?
Embracing change
Minimising risk
Reducing complexity
Leveraging tools
Common sense
Knowing when to stop (and cut your losses)
It doesn’t mean spending months or years building huge monolithic systems that by the time they are complete no longer meet the needs [...]