Hacker Read top | best | new | newcomments | leaders | about | bookmarklet login

+1 for Good programming is not an objective concept.


view as:

== Programming sucks nowadays.

There is not even a consensus on what is good in programming! Take a look at other professional cultures: people work extremely hard to develop the skills that everybody else in their profession have. What does a software developer do? Whatever they like on their own, there is no professional culture whatsoever: "Don't give a crap about the humankind's experience, I'll invent everything on my own the way I like".

This is actually unbelievable how different programming is in this aspect from other disciplines. I don't even mentor Junior Developers because of that, as I can't refer to anything authoritative and say "Do it like this" because there is always a bunch of folks that do it the opposite way. There is almost nothing to rely on.


The nature of programming is that any consensus solution can be automated. That's a good thing.

I'm always amazed though the extent to which that isn't followed through on. Consider the code for logging in and storing user credentials. The level of collaboration on this is at the level of a list of best practices. Why are we still letting anyone (re)write this code?

Okay, how do you use /bin/login over HTTP?

Situations change. So do languages. I hope you can find an Algol compiler, but not Algol-68---that's too new for this code.


If you can't draw upon your past mistakes, or techniques that have failed for you before, you shouldn't be mentoring.

Put more positively, use your experience to guide others.


It's not that there's no professional culture in programming, it's that programming has a problem/solution space orders of magnitude larger than any other profession that has ever existed. If we could agree on some constraints of what software does and what the priorities are then we could develop more concrete professional standards, but that's not how it works. Software is the stuff of pure thought; it is layer upon layer of abstraction that towers up to henceforth unknown data processing tasks. As messy as it is, we can only strive to further the state of the art as it applies to the task at hand. There's no way to definitively pit NASA's process against Facebook's against a random perl data cruncher. None of this means programming doesn't have a professional culture, just that it will take a while longer to distill the strongest knowledge and it will necessarily be a broader than the other professional standards.

Another thing we can expect is further specialization with different standards.

> There is almost nothing to rely on.

You could rely on your experience.


I would have thought www.swebok.org (Software Engineering Body of Knowledge) represents some consensus on what is good in programming?

There's stuff to rely on, it's just that mostly nobody wants to spend the time reading it.

I dont agree with that.

There is a confusion about programming though, an idea that it is a purely technical discipline, like laying bricks when in reality its a design discipline, like designing a building.

If you wanted to build a house you wouldnt just hire a couple of bricklayers and tell them "do it". Yet thats what happens in programming...


Legal | privacy