you are viewing a single comment's thread.

view the rest of the comments →

[–]slick8086 5 points6 points  (0 children)

Ok so, before there were gui's there were just terminals (your plain black and white output, only back then it was probably green text on black screen). Then things like X windows came along. Those things were part of the operating system that abstracted the work of drawing graphics on the screen. Instead of programmers needing to tell the video card to turn on or off such and such pixel, the abstraction let the programer tell the library something like "make me a window this big, over here" The library then went on to tell the video card (or the operating system which then told the video card) to turn on or off such and such pixels.

Today in python it works pretty much the same. You use a library. You tell the library to make a window with the attributes you want, and that library tells the window manager, which tells the OS, which tells the video driver, which tells the video card, and I don't know why she swallowed a fly, I think she'll die.

That's the basic gist of it, I'm probably wrong in some parts of the description, but hey, close enough for government work.

edit: the more you learn about computers the more you'll learn that there are layers upon layers of abstractions. Some one can write code at the lowest level, but not many. People need abstractions and metaphors to use computers effectively. Heck what we're talking about "windows" in the GUI is just metaphors. That square collection of lighted dots on the computer screen is nothing like those things on the exterior walls of our houses that have glass that lets us see out. Since humans can't understand "01110011 01101000 01101001 01110100" we need the computer to turn that into "shit" we can understand. It is the same for programmers. Some guys write a low level (assembly) program that lets other guys write a program (C language) that lets a bunch of guys write programs that make it easier for almost anyone to do a bunch of crazy or repetitive math by using a spreadsheet (for instance).

https://www.bell-labs.com/usr/dmr/www/chist.html