Author Topic: Layers of Complexity  (Read 4739 times)

0 Members and 1 Guest are viewing this topic.

Offline The E

  • He's Ebeneezer Goode
  • 213
  • Nothing personal, just tech support.
    • Steam
    • Twitter
Layers of Complexity
Via the @CompSciFact twitter comes this interesting little post by Jean-Baptiste Queru:

Quote
Dizzying but invisible depth

You just went to the Google home page.

Simple, isn't it?

What just actually happened?

Well, when you know a bit of about how browsers work, it's not quite that simple. You've just put into play HTTP, HTML, CSS, ECMAscript, and more. Those are actually such incredibly complex technologies that they'll make any engineer dizzy if they think about them too much, and such that no single company can deal with that entire complexity.

Let's simplify.

You just connected your computer to www.google.com.

Simple, isn't it?

What just actually happened?

Well, when you know a bit about how networks work, it's not quite that simple. You've just put into play DNS, TCP, UDP, IP, Wifi, Ethernet, DOCSIS, OC, SONET, and more. Those are actually such incredibly complex technologies that they'll make any engineer dizzy if they think about them too much, and such that no single company can deal with that entire complexity.

Let's simplify.

You just typed www.google.com in the location bar of your browser.

Simple, isn't it?

What just actually happened?

Well, when you know a bit about how operating systems work, it's not quite that simple. You've just put into play a kernel, a USB host stack, an input dispatcher, an event handler, a font hinter, a sub-pixel rasterizer, a windowing system, a graphics driver, and more, all of those written in high-level languages that get processed by compilers, linkers, optimizers, interpreters, and more. Those are actually such incredibly complex technologies that they'll make any engineer dizzy if they think about them too much, and such that no single company can deal with that entire complexity.

Let's simplify.

You just pressed a key on your keyboard.

Simple, isn't it?

What just actually happened?

Well, when you know about bit about how input peripherals work, it's not quite that simple. You've just put into play a power regulator, a debouncer, an input multiplexer, a USB device stack, a USB hub stack, all of that implemented in a single chip. That chip is built around thinly sliced wafers of highly purified single-crystal silicon ingot, doped with minute quantities of other atoms that are blasted into the crystal structure, interconnected with multiple layers of aluminum or copper, that are deposited according to patterns of high-energy ultraviolet light that are focused to a precision of a fraction of a micron, connected to the outside world via thin gold wires, all inside a packaging made of a dimensionally and thermally stable resin. The doping patterns and the interconnects implement transistors, which are grouped together to create logic gates. In some parts of the chip, logic gates are combined to create arithmetic and bitwise functions, which are combined to create an ALU. In another part of the chip, logic gates are combined into bistable loops, which are lined up into rows, which are combined with selectors to create a register bank. In another part of the chip, logic gates are combined into bus controllers and instruction decoders and microcode to create an execution scheduler. In another part of the chip, they're combined into address and data multiplexers and timing circuitry to create a memory controller. There's even more. Those are actually such incredibly complex technologies that they'll make any engineer dizzy if they think about them too much, and such that no single company can deal with that entire complexity.

Can we simplify further?

In fact, very scarily, no, we can't. We can barely comprehend the complexity of a single chip in a computer keyboard, and yet there's no simpler level. The next step takes us to the software that is used to design the chip's logic, and that software itself has a level of complexity that requires to go back to the top of the loop.

Today's computers are so complex that they can only be designed and manufactured with slightly less complex computers. In turn the computers used for the design and manufacture are so complex that they themselves can only be designed and manufactured with slightly less complex computers. You'd have to go through many such loops to get back to a level that could possibly be re-built from scratch.

Once you start to understand how our modern devices work and how they're created, it's impossible to not be dizzy about the depth of everything that's involved, and to not be in awe about the fact that they work at all, when Murphy's law says that they simply shouldn't possibly work.

For non-technologists, this is all a black box. That is a great success of technology: all those layers of complexity are entirely hidden and people can use them without even knowing that they exist at all. That is the reason why many people can find computers so frustrating to use: there are so many things that can possibly go wrong that some of them inevitably will, but the complexity goes so deep that it's impossible for most users to be able to do anything about any error.

That is also why it's so hard for technologists and non-technologists to communicate together: technologists know too much about too many layers and non-technologists know too little about too few layers to be able to establish effective direct communication. The gap is so large that it's not even possible any more to have a single person be an intermediate between those two groups, and that's why e.g. we end up with those convoluted technical support call centers and their multiple tiers. Without such deep support structures, you end up with the frustrating situation that we see when end users have access to a bug database that is directly used by engineers: neither the end users nor the engineers get the information that they need to accomplish their goals.

That is why the mainstream press and the general population has talked so much about Steve Jobs' death and comparatively so little about Dennis Ritchie's: Steve's influence was at a layer that most people could see, while Dennis' was much deeper. On the one hand, I can imagine where the computing world would be without the work that Jobs did and the people he inspired: probably a bit less shiny, a bit more beige, a bit more square. Deep inside, though, our devices would still work the same way and do the same things. On the other hand, I literally can't imagine where the computing world would be without the work that Ritchie did and the people he inspired. By the mid 80s, Ritchie's influence had taken over, and even back then very little remained of the pre-Ritchie world.

Finally, last but not least, that is why our patent system is broken: technology has done such an amazing job at hiding its complexity that the people regulating and running the patent system are barely even aware of the complexity of what they're regulating and running. That's the ultimate bikeshedding: just like the proverbial discussions in the town hall about a nuclear power plant end up being about the paint color for the plant's bike shed, the patent discussions about modern computing systems end up being about screen sizes and icon ordering, because in both cases those are the only aspect that the people involved in the discussion are capable of discussing, even though they are irrelevant to the actual function of the overall system being discussed.

CC:BY 3.0
If I'm just aching this can't go on
I came from chasing dreams to feel alone
There must be changes, miss to feel strong
I really need lifе to touch me
--Evergrey, Where August Mourns

 

Offline headdie

  • i don't use punctuation lol
  • 212
  • Lawful Neutral with a Chaotic outook
    • Skype
    • Twitter
    • Headdie on Deviant Art
Re: Layers of Complexity
:headsplode:

A very insightful text which by it's nature can tell us very little, still, and interesting read thanks for highlighting that The E
Minister of Interstellar Affairs Sol Union - Retired
quote General Battuta - "FRED is canon!"
Contact me at [email protected]
My Release Thread, Old Release Thread, Celestial Objects Thread, My rubbish attempts at art

 

Offline Nuke

  • Ka-Boom!
  • 212
  • Mutants Worship Me
Re: Layers of Complexity
ive been aware of the complexity of technology for some time. i like to call them "layers of bull****" because a lot of the systems involved are more complex than they need to be. im all for abolishing patents. they were meant so that people with no resources could have an idea for some gizmo and buy them time to drum up investment, develop a product, and turn a profit. i dont think it was ever meant so that mega companies which have resources to turn a profit on any idea that comes across em, and then use the patent to control a monopoly on that idea so that no one else can use it. i hate closed and proprietary technologies not because they cost money but because they are easily lost when the corporation goes tits up, gets nuked, destroyed by asteroids, etc.
I can no longer sit back and allow communist infiltration, communist indoctrination, communist subversion, and the international communist conspiracy to sap and impurify all of our precious bodily fluids.

Nuke's Scripting SVN

 

Offline Flipside

  • əp!sd!l£
  • 212
Re: Layers of Complexity
I don't think it's so much 'layers of Bull****' as 'Layers of Technobabble' to be honest. Though I'll admit, some things are carry-overs from older systems (Anyone who's worked with Networking knows all about redundant stuff in several protocols). Part of the barrier to getting into technology is often not the complexity of the tech itself, but the vast quantity of 'catchy names' and acronyms that litter the entire field and make it sound more complex than it is.

 

Offline z64555

  • 210
  • Self-proclaimed controls expert
    • Steam
Re: Layers of Complexity
Some layers of complexity are needed, other layers of complexity are for convenience by one party or another.

As an example, SDL.
Secure the Source, Contain the Code, Protect the Project
chief1983

------------
funtapaz: Hunchon University biologists prove mankind is evolving to new, higher form of life, known as Homopithecus Juche.
z64555: s/J/Do
BotenAlfred: <funtapaz> Hunchon University biologists prove mankind is evolving to new, higher form of life, known as Homopithecus Douche.

 

Offline redsniper

  • 211
  • Aim for the Top!
Re: Layers of Complexity
Quote
single-crystal silicon ingot

Oh holy ****, really? I didn't realize this.

Like.... it's all one uniform lattice, right?
"Think about nice things not unhappy things.
The future makes happy, if you make it yourself.
No war; think about happy things."   -WouterSmitssm

Hard Light Productions:
"...this conversation is pointlessly confrontational."

 

Offline Nuke

  • Ka-Boom!
  • 212
  • Mutants Worship Me
Re: Layers of Complexity
Quote
single-crystal silicon ingot

Oh holy ****, really? I didn't realize this.

Like.... it's all one uniform lattice, right?

it absolutely needs to be, especially as the size of the process decreases. a tiny flaw might ruin a transistor and cause a logic gate not to function properly. one bad transistor can **** up the entire chip.
I can no longer sit back and allow communist infiltration, communist indoctrination, communist subversion, and the international communist conspiracy to sap and impurify all of our precious bodily fluids.

Nuke's Scripting SVN

 

Offline Aardwolf

  • 211
  • Posts: 16,384
Re: Layers of Complexity

 

Offline Nuke

  • Ka-Boom!
  • 212
  • Mutants Worship Me
Re: Layers of Complexity
^ this
I can no longer sit back and allow communist infiltration, communist indoctrination, communist subversion, and the international communist conspiracy to sap and impurify all of our precious bodily fluids.

Nuke's Scripting SVN

 

Offline headdie

  • i don't use punctuation lol
  • 212
  • Lawful Neutral with a Chaotic outook
    • Skype
    • Twitter
    • Headdie on Deviant Art
Minister of Interstellar Affairs Sol Union - Retired
quote General Battuta - "FRED is canon!"
Contact me at [email protected]
My Release Thread, Old Release Thread, Celestial Objects Thread, My rubbish attempts at art

 

Offline General Battuta

  • Poe's Law In Action
  • 214
  • i wonder when my postcount will exceed my iq
Re: Layers of Complexity
better hope randall munroe never learns any biology because then he'd really freak out

 

Offline Mongoose

  • Rikki-Tikki-Tavi
  • Global Moderator
  • 212
  • This brain for rent.
    • Steam
    • Something
Re: Layers of Complexity
<3 Maru

 

Offline Ravenholme

  • 29
  • (d.h.f)
Re: Layers of Complexity
better hope randall munroe never learns any biology because then he'd really freak out

Weirdly enough, that was my exact thought.
Full Auto - I've got a bullet here with your name on it, and I'm going to keep firing until I find out which one it is.

<The_E>   Several sex-based solutions come to mind
<The_E>   Errr
<The_E>   *sexp

 

Offline Rodo

  • Custom tittle
  • 212
  • stargazer
    • Steam
Re: Layers of Complexity
Interesting, I'm certainly not unaware of the complexity of today's PCs, all thanks to a somewhat technical formation, it was fun recognising most of the things in there.

Now, I've got a doubt..

If I spill some milk all over my keyboard, would that be considered like... adding another layer of complexity to it?
el hombre vicio...

 

Offline z64555

  • 210
  • Self-proclaimed controls expert
    • Steam
Re: Layers of Complexity
If I spill some milk all over my keyboard, would that be considered like... adding another layer of complexity to it?

No, that just removes several layers of complexity and replaces them with a short-circuit.
Secure the Source, Contain the Code, Protect the Project
chief1983

------------
funtapaz: Hunchon University biologists prove mankind is evolving to new, higher form of life, known as Homopithecus Juche.
z64555: s/J/Do
BotenAlfred: <funtapaz> Hunchon University biologists prove mankind is evolving to new, higher form of life, known as Homopithecus Douche.

 

Offline Nuke

  • Ka-Boom!
  • 212
  • Mutants Worship Me
Re: Layers of Complexity
at least till you stick it in the dishwasher
I can no longer sit back and allow communist infiltration, communist indoctrination, communist subversion, and the international communist conspiracy to sap and impurify all of our precious bodily fluids.

Nuke's Scripting SVN

 
Re: Layers of Complexity
Interesting article. It's good to be reminded every once in while just how abyssaly complex our technology actually is, and, in a way, how lovecraftianly incomprehensible it is to virtually everyone.

If I spill some milk all over my keyboard, would that be considered like... adding another layer of complexity to it?

No, that just removes several layers of complexity and replaces them with a short-circuit.
Depends on the kind of cumputer you're using ; if it's a desktop, it depends on the amount of milk, between me, my brother and my friends we've spilled all of stuff on our keyboards and I have yet to see a keyboard short-circuit because of it ; if it's a laptop, on the other hand, it might be a problem.

 

Offline Nuke

  • Ka-Boom!
  • 212
  • Mutants Worship Me
Re: Layers of Complexity
its only 5 volts and a few hundreds (sometimes tens) of miliamps. its not really enough to have any catastrophic arcing. you might get a short but at most it will just cause erroneous operation, not catastrophic failure. microcontrollers are tough. especially the old skool 40-pin dip packages that a lot of keyboards still use for some reason.
I can no longer sit back and allow communist infiltration, communist indoctrination, communist subversion, and the international communist conspiracy to sap and impurify all of our precious bodily fluids.

Nuke's Scripting SVN

 

Offline jr2

  • The Mail Man
  • 212
  • It's prounounced jayartoo 0x6A7232
    • Steam
Re: Layers of Complexity
I'm aware of the layers... and I know that I'm not aware of plenty.  But, knowing that, I can research the layers on teh internetz if I need or want to learn more about what might be causing a specific problem.  I generally have a feel for which layers are responsible for what and the symptoms when they go wrong.  However, I've been totally stumped before.

You know what I'm talking about, right? When you spend hours and hours trying to fix a problem, only to have it disappear for no reason, leaving you to wonder if you a) accidentally fixed it, or if it was b) an intermittent problem, or if it was c) a cascade failure brought on by multiple sub-problems which you finally fixed enough of to get the system working properly again, and the failure won't be back until a) it gets broken again, b) the gremlins decide that it's time for the flip side of intermittent again, c) enough sub-problems are created again to cause the originating circumstances of the problem and re-create it.    :banghead:

EDIT: And if it's software related, this tends to make me lean more towards the Nuke all the things approach to bugfixing.

 

Offline Nuke

  • Ka-Boom!
  • 212
  • Mutants Worship Me
Re: Layers of Complexity
say what you want about it, it works. hardware causes less headaches than software i think. you know the hardware is fine when the system posts, or when you pass memtest86. seems to me there are more layers in software than in hardware, especially on high end systems. i wonder how much cpu power gets squandered on just making every software subsystem plays nice with every other software subsystem.  hardware on the other hand is just vast arrays of the same old stuff. same old logic gates over and over again. increase the word size? no problem, just stick 2 32 bit adders together and you got a 64 bit adder. your just making the bus wider. you might get some proprietary hardware (most gpus) but its all made out of the same old transistors, making the same old logic gates on the same old silicon die.

like with fpgas, a single generic logic cell can be connected to large numbers of other completely identical cells in varying ways, allowing you to spin a custom cpu out a generic assembly line part. someone even spun a feature compatible cray-1 on an fpga which could run native cray code. same chip could easily be reconfigured to be feature compatible with a completely different processor architecture, like x86 or arm (granted im not sure these things have enough cells to be configured as cutting edge chips). and this is all from an array of completely identical parts. its a tech i want to get into eventually.

with software you have an os, which by nature of trying to do everything is always gonna be bloatware. you have to supoport hardware with drivers, you need a framework in which everything operates, then you need to provide ui, multitasking, the ability to load software, and to talk on the net. for some reason the bundle an os with a bunch on applications that you could have obtained yourself. why use wordpad when you can get notepad++? when all this is bundled into an operating system, you dont really have control of the layers, you just trust the software to deal with it all for you. your not allowed to get rid of layers you dont want. just by shear brute force of processing power all this bull**** is instantaneous and you dont notice most of the time that its happening. you just have a machine patiently waiting an eternity for input occasionally entertaining itself with the bull**** as usual. you only ever notice it when you absolutely need the whole computer's resources to solve a single complex problem (like encoding a video) and it takes multiple times longer than should be theoretically possible given the speed of the hardware..
I can no longer sit back and allow communist infiltration, communist indoctrination, communist subversion, and the international communist conspiracy to sap and impurify all of our precious bodily fluids.

Nuke's Scripting SVN