10
lopu
5y

Hello and welcome, to a presentation in which I will tell you my thoughts on the shortcomings of modern day computers and programming practices.

Computers are based on a very fundamental and old idea, folders, and files, a file is basically a concrete amount of data, whereas a folder is a group of files, and it comes from the real life concept of files and folders, now it might be quite obvious already that using a concept invented in 1898 by a guy called Edwin G. Seibels, might not be the best way for computers to function in the year 2020, but alas, it is.

Unless of course, you step into the world of a programmer.

A programmer’s world is much different, they use this idea of a data structure, or in simpler terms, an object. An Object is just like what you would think of as an object in your head, something with different properties that you can think about in different ways, for example your mobile phone, it has a battery percentage, it has a screen size, it has free space available. Programmers use these data structures to analyse data very quickly, like finding all phones with a screen size bigger than a certain size for example.

The problem is that programmers still use files and folders to create the programs that use these objects.

Consider this example.

Let’s say you want to create a virtual version of a drink bottle, consider what properties it will have, colour, volume, height, width, depth, material, etc..

As a programmer, you can leverage programming features and change the properties of a drink bottle directly, if you wanted to change the colour, you just say, drink bottle “dot” colour, equals blue, or red.

But if the drink bottle was represented as a file, all the drink bottles data would be inside the one file, so you would have to open the whole file, find the line or section of the file that has the colour data of the drink bottle, and select it, highlight it, delete what’s there, and type in your new value.

One way to explain this better is to imagine a folder that now represents the drink bottle, imagine adding a new file into that folder that represents each property I described before, colour, volume, etc.., well now, you could just open that folder, find the file for colour, either by looking with your eyes or you could do a file search in the folder for a file called colour, open it, and edit the value inside. This way of editing objects is the one that more closely represents the way programmers and a program itself interacts with objects inside a running programming language.

But the thing is, programmers don’t use the folder/file way of creating objects and putting them into programs, because it would be too cumbersome, they just create 1 file for an object, or have lots of objects in a file, and create all the objects in 1 file, and then run the program which creates the objects, then when they stop the program, it deletes the objects. So there is no actual link between the object in a file and the object that the program creates by reading the data from that file, if you change the object in your program, it does not get saved to the file.

So programmers created databases to house these objects, but there is still a flaw in databases, they are hard to interface with, and mostly databases are just used to send data or retrieve data from, programmatically, you can’t really browse a database the way you can browse the files on your computer. You can, but database interfaces are not made to be easily navigated the way files and folders are.

As it stands, there is no way to store objects instead of files on your computer and interact with them in complex ways the way programmers can inside the programs they create.

If the idea of an object became standard the way a file and folder is standard, I think it would empower human’s a great deal to express things far more easily and fluidly than they can today.

Thanks for reading.

Comments
  • 2
    Unreal engine basically ignores folders. Everything needs to have a unique name and any duplicates gets a number added on.
    You can refer to example car.1225
    or the car class (all cars)

    You can also refer to any object in relation to a proximity to another or if you can see it or if you pointing at it

    Objects can have parent/child/sibling relations and can be changed on the go.

    It support overlapping as well as colissions.

    You can have your internal arrays and link to sql or any other outside data source.

    You can have different servers doing different parts of the stufg and can move clients between them, or even have back end servers doing stuff the client cant see with another server acting as the middleman.

    The uses are endless. You could drve a 3d printer with it if you really want or make a mobile app that coult remote controll a ship or anything inbetween.

    So yea there are other options already out there..
  • 1
    @CorneliusA wow sounds epic, unreal engine has never come up in my searches for this kind of idea. I'll check it out.
  • 1
    There have been attempts to create other ways to store data, object databases, key value stores and even new filesystems with a more object oriented approach.

    It all boils down to a common standard.

    The classical filesystem might not be the optimal way, but its a way every os and programmer are familiar with and even as there are different filesystems you can often map between them.

    To change this you either need to run it in isolation, I think google has something in this direction internally, or get enough widespread usage, and that is hard.

    The thing is, this next gen file/data storage has been proposed but those proposals are not compatible and no one has so far manage to get a large consensus on one solution.

    But I like that you are not locked in “the box” :)
  • 1
    You might want to read up on unix socks.
  • 0
    @Voxera thanks so much for the info, do you know what the object oriented filesystem is called? I'll look into it!! :)
  • 0
    Umm...I was here for the food. So if you can point me in the direction of the buffet that would be awesome.
  • 0
    @lopu no. I read about it in one if their papers a few years back but I think it was built on their Big Table. Not to much detail and not exactly what you suggested but as an example thar some are trying.

    Still, the current filesystem has the general acceptance that will make it very hard to replace despite how much better something new is :/
  • 0
    @Voxera There's a couple papers hey

    https://pdfs.semanticscholar.org/79...

    https://usenix.org/publications/...

    I can't find anything else about the first link OBFS, like a website or implementation
Add Comment