So you’re no meant to use generators/discriminators/whatever because they’re too fancy or something?
IMO any language feature, any technology feature that is there and documented in the API is fair game to be used.
The author seems to be suggesting there is some “standard” way of programming ….. not too advanced mind you …. and that anyone who uses more than some baseline set of features is setting up some crazy complex house of cards.
Codswallop.
What exactly is this line below which you’re a good normal sane programmer and above which you’re a narcissistic primadonna who makes write only software.
Don’t write your software for a baseline of barely competent programmer …. write the best software you can according to the project priorities defined by management.
And use every advanced technique you think is right for the job.
As long as you strive for simplicity then whatever you need to get there is the right technique.
The alternative is done stupid set of rules that go through the programming APIs and cross a whole bunch of stuff out, forbidden for being “too advanced”. Silly. You’re a professional software developer, do your job.
From my experience in 15 years of mobile development - there are developers out there who are more interested in building great software rather than building great products. The framework that they work in is the highest order of priority, and everything else is secondary to that.
If a new requirement comes in, they will pass it off as "impossible" or give it an incredibly high estimate, when in reality, it just needs a little creativity and doesn't work in their self-imposed limitations of the application.
Not to say these developers aren't useful - they are great at cleaning up and organizing messy codebases, but it can easily be taken to an extreme, at the detriment of the actual goal of the project.
But again - I don't think this even applies only to developers - it is all industries. There are people who optimize things for a better end-user experience, and people who optimize things for their own personal/team work experience. Ultimately you want both once your team grows beyond a handful of people.
> What exactly is this line below which you’re a good normal sane programmer and above which you’re a narcissistic primadonna who makes write only software.
Look at the rest of your team, all the other developers that have to work on the product. Write for the average capability of those, bearing in mind that employee churn will mean new people have to be on-boarded.
Realise that code that is 'simple' to you, often may not be to others - you will see it thought your own. The code has to be readable and maintainable by others.
> You’re a professional software developer, do your job.
Exactly. That's not just about churning out clever code and moving on. It's about creating a product that can be maintained by everyone on the team.
Anyone who's had to maintain a 'legacy' codebase knows exactly what this means, as they curse the names of those who came before and the stupid decisions they made... and spend far too long trying to figure out the obscure code ideas they used.
So you’re no meant to use generators/discriminators/whatever because they’re too fancy or something?
IMO any language feature, any technology feature that is there and documented in the API is fair game to be used.
The author seems to be suggesting there is some “standard” way of programming ….. not too advanced mind you …. and that anyone who uses more than some baseline set of features is setting up some crazy complex house of cards.
Codswallop.
What exactly is this line below which you’re a good normal sane programmer and above which you’re a narcissistic primadonna who makes write only software.
Don’t write your software for a baseline of barely competent programmer …. write the best software you can according to the project priorities defined by management.
And use every advanced technique you think is right for the job.
As long as you strive for simplicity then whatever you need to get there is the right technique.
The alternative is done stupid set of rules that go through the programming APIs and cross a whole bunch of stuff out, forbidden for being “too advanced”. Silly. You’re a professional software developer, do your job.