What about month year day ?
What about month year day ?
To quote the guy who invented PHP:
“I don’t know how to stop it, there was never any intent to write a programming language […] I have absolutely no idea how to write a programming language, I just kept adding the next logical step on the way.”
All those tools you mention would fall under the accidental complexity header. There have been many advances in that field. But none of those tools reduce the essential complexity. SQL doesn’t mean you don’t have to think about how you organize your data. You still need to think about things like normalization. Even ORM doesn’t free you from this.
Same goes for debuggers, sure it’s easier to inspect code at runtime but that doesn’t help you design good code.
You can reduce this accidental complexity but in the end there is always the core of the essential complexity. The difference with past decades is that for a simple program the accidental complexity would be a huge part of the total complexity, so in that regard you’re right. It has become a lot easier to write trivial programs where the essential complexity is very low.
This may apply to a lot of hobby-level / beginner projects, but in the end it doesn’t have as much an impact on what we do as professionals. As you said, I spend a lot more time thinking about coding than actually writing code. Especially as I got older and more experienced. As a senior developer I write a fraction of the code I did as a junior, but I’m working on more complicated problems as well.
It was clearly a reference to the so called ‘cookie laws’ requiring permission for tracking cookies. However, cookies that are not for tracking purposes do not require any form of consent.
You can easily find ‘No Silver Bullet’ online http://worrydream.com/refs/Brooks-NoSilverBullet.pdf
He basically splits the complexity of programming into two categories: accidental complexity and essential complexity. The accidental complexity you can fix, it’s the difficulty caused by tooling, programming languages, etc. The essential complexity, that is: the complexity caused by the problem your program is trying to solve, cannot be fixed. To quote the man:
The essence of a software entity is a construct of interlocking concepts: data sets, relationships among data items, algorithms, and invocations of functions. This essence is abstract, in that the conceptual construct is the same under many different representations. It is nonetheless highly precise and richly detailed. I believe the hard part of building software to be the specification, design, and testing of this conceptual construct, not the labor of representing it and testing the fidelity of the representation. We still make syntax errors, to be sure; but they are fuzz compared to the conceptual errors in most systems.
I don’t think it is - and I’m not saying that because I think I’m good, it’s because programming is just a different way of thinking
This different way of thinking is something that some people simply will never get, or not at the right level. I’m certainly not a great programmer but I know from experience I’m above average. I know a lot of programmers that simply cannot grasp things above a certain level of abstraction. These are college-educated programmers with years of experience. The easiest way to tell is that bad programmers turn simple problems into complicated code, and good programmers turn complicated problems into simple code.
Why not just set a cookie?
I disagree completely. Sure, there is a learning curve and you’re not going to be a great programmer day one, that is what college and junior programmer positions are for. But the idea that programming can be easy is bullshit.
Programming is inherently difficult, and there is no way to reduce this. Read ‘No Silver Bullet’ by Fred Brooks, it’s as true today as when it was written back in 1986. Not everyone should be a programmer, just like not everyone should be a doctor, or a painter, or a formula 1 driver. People have unique talents and the idea that this is something that everyone should be able to do is frankly ridiculous.
Yes, this is the problem with PHP. It gets a lot of people programming who shouldn’t be. I still have nightmares about the PHP code one of my managers at a previous job wrote.
Legally it’s the same thing. The ‘cookie laws’ don’t explicitly forbid cookies, any kind of tracking is prohibited. Also, just storing a cookie with the information that a banner was shown doesn’t require consent. The only thing that requires consent is tracking the user.
Or, you know, stop half-assing things and build a native app.
It probably has to do with security clearance, considering it’s Thales.