When I was eleven, I learned BASIC in school and that day I experienced such a feeling of overwhelming amazement at realising that any idea I might have could be turned into something !alive! by the -simple act- of typing in some weird magical spells with words like FOR, IF, DATA and GOTO.
Forty three years have passed; the feeling still persists, just how does any of it work anyway ?
I am not even sure anymore what that means. When I was eleven I didn't know anything about the world, the universe, the cosmos, how anything works. After all these years I now know a lot as an interested layman in quantum physics and cosmology and now...I know even less about how any of it works!
How is it that anything I type can produce a real world effect ? It's pretty mind blowing and I think that a lot of people who work with software never really stop and think about what it is that they are doing, what they are -really- causing to happen.
I remember building serially clocked TTL circuits in college, watching bits clock in, get combined with other bits, and bits clocked out to an LED display. It has a half-adder IIRC.
I have also on two occasions built "analogue" circuits that used op-amps to implement some functions that came about as the result of some calculations for controlling a gate barrier up or down with error control and damping. That was a long time ago. But it was a real eye opener that actually, "computing" doesn't need -digital- chips... that "computing" is in fact a process that is "substrate independent". Potentially a computer could be made out of anything; I now view that small cactus plant on my window sill as a computing device that exchanges information with its immediate environment. It is the solution to the problem... well, I don't know what the problem is that the cactus is the solution to! Do you?
You might view yourself as the solution to the question, "How do I build a Fred Smith?" assuming your name is Fred Smith.
And lately there has been much musing about all of "this", our reality, being a simulation.
When you look at The Standard Model, and the way that we seem to have to apply higher and higher amounts of energy to drill down deeper and deeper, it's a brilliant way of maybe hiding the fact that none of this is real.
When I first learned about "atoms", first posited by Democritus, I was blown away. And for a while it seemed that that was as small as we could go. But then we went deeper. Then it was neutrons, protons and electrons. Then it was quarks. Now it's strings. What's next? Recently I've been following the likes of Lee Smolin and Donald Hoffman and it all gets weirder again!
It seems to me it's almost the case that -we- (the scientific community) are slowly but gradually creating reality by thinking about it, building experiments then "finding" or not, what they expect. I wonder how long we can continue before our current technology fails to provide?
That term always confused as nothing is solid. It's all an illusion. Nothing touches anything. It can't, it's not physically possible. At the final interface, there is repulsion, or bonding. And if something bonds then there are no longer two separate things!
Well, I have jolly well confused the hell out of myself so far trying to just straighten things out in my head!
According to Sussman and Steele, we are all wizards. I encourage you to track down and watch the SICP videos if you haven't done so already. The talk about "the shape of your programs" is very enlightening.
But I think it just might be wizardry and magic when all is said and done and the end of the day.
When you "save" your work into the cloud, where is it actually ? Just what did it become? When you copy files from one place to another, neither donor nor recipient device changes their relative weights (not -strictly true- but not now, please...) so what actually happened ? As a developer you see "characters" be they representing JSON, Java, PHP, whatever. That's how that appear to you but only to you. To the machines, the wires, the storage devices those characters are just electrical in nature. Disturbances in the ether held in place by a physical substrate be it magnetic or silicon. The substrate itself is equally confused because it doesn't know it's part of your application storage solution either. It just "is".
It is the modulations and manipulations of our devices that change the substrate patterns to mean something to us. In layers. Everything is in layers. At the bottom we have quantum soup. Then we have atoms. Then molecules. Then materials. Then devices. Then users. And users are the "sentience" that "interprets" those substrate modulations to "mean something" to us and the world at large.
It's all in the interpretation. Interpeters...the first step between you and getting a "computer" to do anything at all.
I will take a rest now and gather some more thoughts on "lexical analysis" as the first step in the roller coaster ride that is "programming".
Thank you for reading my ramblings.