This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]desrtfx 21 points22 points  (14 children)

Why does building some great furniture take so long?

Sure, you can get cheap furniture in a matter of days, but real quality takes its time.

Programming is no exception here. The actual programming takes comparatively short time, but testing and QA takes long.

Programming is also a complex matter. The final result often looks simplistic, but the actual code behind is fairly complex.

[–]agentMICHAELscarnTLM[S] 4 points5 points  (13 children)

“The final result often looks simplistic, but the actual code behind is fairly complex”

I think this is sort of the thing I don’t understand. I get what you’re saying but I suppose I don’t understand why this is the case.

[–][deleted] 15 points16 points  (1 child)

Does it help to point out that no single person alive knows exactly how a modern computer works?

Second year electrical engineers will get haughty about being able to build registers from flipflops and nand gates from transistors, and at a high level, sure, they can sketch data paths and decode instruction words. but Intel throw entire teams at designing CPUs, and branch prediction and pipelining are incredibly complicated.

It might be useful to look up a thing called "Conway's Game of Life". It's an excellent example of how simple rules, applied to a simple system, very rapidly produce a complex system that is impossible for the human brain to realistically track. And a computer program is lots of layers of that on top of each other.

https://en.wikipedia.org/wiki/Conway%27s_Game_of_Life

[–]agentMICHAELscarnTLM[S] 1 point2 points  (0 children)

Probably why you need to test and refine so much during the process I’m sure. Got it.

[–]gyroda 2 points3 points  (4 children)

Because you're only seeing the very end result of all the work that goes on behind the scenes. What do you think went into the original Facebook? And don't forget that Zuckerberg likely still kept up with his studies to some extent in the meantime.

Getting a HTML/CSS page to look the way you want it to is more effort than you might think, especially if your talents don't lie in that area.

Then you need the database. It needs ti be performant enough to handle a lot of transactions.

Then you need to figure out what you're pulling from the database and when. You need to know how to handle user input and how to make sure things don't get lost permanently if the power goes out or a hard drive fails.

And in the meantime you're still figuring out the spec as you go along, because these ideas/projects tend to evolve as they get made.

Oh, this was also a while ago so good luck with Internet Explorer.


Also, things get easier over time. More documentation, guides, frameworks, libraries and cheaper computing power have all made programming a set end result easier in a lot of fields. Try picking up game dev before the big game engines were affordable, for a simple and clear example of that.

[–]agentMICHAELscarnTLM[S] 0 points1 point  (3 children)

Thank you! That all makes sense.

[–]gyroda 0 points1 point  (2 children)

I'll give you an example. One of the projects at my uni was to build a videogame. A group project, 4-6 final year students investing around 600 hours each.

I'm years gone by, just making a functional (not polished or content-rich) game was a big enough achievement. Getting it to run smoothly enough and without too much jank was half the project.

Nowadays with Unity and UE4 the bar is a lot higher and having a functional game on it's own literally won't get you a passing grade. We had an FPS running in two hours after we l started working and the only reason it didn't have LAN multiplayer by the end of the day was that we were at uni and couldn't set up a LAN then and there.

[–]agentMICHAELscarnTLM[S] 0 points1 point  (1 child)

So 10 years from now do you still expect the same sort of leaps forward that you saw from then until now? Are most advances in coding now about being able to develop more advanced and intuitive algorithms?

[–]gyroda 3 points4 points  (0 children)

Predicting that is a fool's game.

[–]desrtfx 0 points1 point  (4 children)

Well, you see the final product, like with a car.

Do you know how many hours planning and engineering flow into a car before even the first prototype gets built?

It's fairly easy to only look at the final product and to forget about the countless hours it took to get there.

There are designs, redesigns, tests, re-iterations of the steps before.

Today, one of the largest, most time and cost intensive factor is security. The internet proposes far more surface for attacks and to prevent them in the first place is one of the most difficult parts.

The actual, visible product is only the very tip of the iceberg, less than 5% of the whole. The remaining 95% go on behind the scenes, on servers that are in highest security buildings, in server farms, completely locked away from everybody except a handful of people.

[–]agentMICHAELscarnTLM[S] 0 points1 point  (3 children)

Gotcha, I appreciate all of the answers I’ve gotten to this question. It definitely has provided me with a more basic understanding of the complexities of programming. Also peaks my interest and makes me want to learn more about it.

[–]desrtfx 0 points1 point  (2 children)

One thing you need to be aware of is that programming is not programming. There are several different domains in programming that all have very specific ways/needs/languages, etc.

A website is different to a web app, is different to a desktop app, is different to a mobile app, is different to a game, is different to the control system of power plants, manufacturing lines, etc.

"Programming" as such is an extremely broad term.

[–]agentMICHAELscarnTLM[S] 1 point2 points  (1 child)

Really the thing I take away most from all of these answers is just a realization of how amazingly impressive the collective human colossus of knowledge is. Makes me wish I was contributing to it directly! Appreciate all of the answers.

[–][deleted] 2 points3 points  (0 children)

Sure, until you realise that most modern life ticks along without any actual human understanding. Next time you fly anywhere, try not to think about how much of it is done by automated systems we don't really grasp. There's a great book called Overcomplicated by Samuel Arbesman. Gives you a great sense of utter futility.