Preparation for the Summit
I'm not summiting anything anytime soon, but I liked the title. It's kind of appropriate, but unlike real life, the summit in software is the next peak from which to start the next ascent into the unknown. I hope. While my life is chaotic due to what I get to call spatial blindness and brokenness to time, when I write ASJ code, it's pretty fun to experience what grows.
This morning on the train, I had the chance and the perspective to review what ASJ is, how it works and where to take it next. I'm pretty sure getting macros moving/working has really taken a load off my mind. One thing I've noticed recently, and I hope the awareness is a sign of healing, is that when I sometimes think of something I have to build, there's a big fear that overwhelms my logical mind.
In the abstract, it seems to make sense that fear would overwhelm certain thoughts or behaviors, as the most likely area to suffer when violently clubbed in the front of the head is the higher mind. The higher mind is that part of us that tells fear, "I hear you, don't worry, I'll keep you, me, and this big giant knucklehead safe...with time-based logic. Just keep your eyes open and let me know if you see anything else we need to be aware of, okay? But when I say jump, we all gotta jump together! Ready? Let's roll."
The problem with brain injuries isn't just that nobody knows anything about them, except that if they come up with a magic pill, they'll make bank (there's no magic pill, doctor's lie), it's that they take time, diet, and education to heal. And good sleep.
Trying to bring this all to the point...is that for the six months or so my mind has thought "macros", it's immediately and instinctively recoiled in terror at the fear of them biting me, throwing me off a cliff, or similar severe judgment that little pile of code engendered. I've been getting better at catching the behavior, but I haven't been seeing my son for the last year+. He helps me by his enthusiasm. He's like my light in the darkness. Without seeing him, I forget him in the darkness of my mind. It slows me down coding. I think that's the point.
Now that macros are working? It's giving me the chance to see the 30,000 foot view of the design of the internals and make some plans. While I allow myself to be afraid at thoughts of things (like "gotta build macros"), there's plenty of things in ASJ to work on. And I have to not only make the code work, I have to figure out brain healing, too.
So I think things, test the response, and when my mind is in a logical perspective, I start working. That's how macros finally came together. I thought "macros!" And instead of fear, my brain said, "start...here." And I was off.
The cool thing about macros, is they started scary, then came together like all the other functions and details, because the code inside Awesome Sauce Java is frighteningly consistent in an amazingly good way. I'd love to take credit for that, but it was a total accident.
I just knew what I didn't want to build and when that old familiar set of development patterns tried to suck me into the vortex of insanity, time-wasting modes, and confusion, I veered left. Like that Star Trek episode where they were doing laps in a vortex of confusion and the last time they almost went into it forever, somebody remembered to turn left at the last second but they didn't know why until after they did it. I know! It totally doesn't make sense, but it really does, because it's the internals of a program that define extensibility, stability, and all kinds of other metrics we use to define good vs bad.
But the 30,000 foot view? It's good. The next few days I'm going to go as fast as I can to build schematics, docs, and assurances that all the stable is in and all the stupid is out. I was especially excited on the train ride in, because I could see the layout and interactions of the internals. It could be because of macros. But it could also be because I've been developing the concurrency models for two different configurations. It could also be because the product offerings are coming together, for both users and developers.
The cool thing about building Awesome Sauce Java is it's a fun language. I'm supposed to say that. But it has to offer something different, or I'd be using Clojure or Armed Bear or any of a million other product offerings. It's fast for me to work with and has proven to be a valuable tool for prototyping functions and learning Java. That made it real for me and gave me motivation to work with and on it.
The really cool thing about it is that it's providing the foundation to put together 15+ years of R&D into language meets runtime application editing meets OS that runs on every other OS. It's a lot of products bundled into one.
My hope is that the next few days (week?) will allow me to ensure and confirm the entirety of the model is clean, consistent, tested, stable, and well documented. Maybe that sounds like a lot of uncertainty about the construction of the language, but it's not. It's honesty.
I test everything and make sure A is built on B and all is known and clear and well-designed. I just go over and over and over things, like woodworking, or very real engineering, to make sure things look and work as good as possible. I'm not hacking a language together, I'm building a tool for people to get work done with. I can't ship crap.
I can't ship crap, not because my dad worked on Apollo, or my mom studied patents and played piano beyond virtuosity. My parents were aliens because they went a million miles an hour and rarely made any mistakes. I can't ship crap, because crap software is wasteful. It wastes electricity, materials (more computers, drives, cables, cooling, real estate), time, and effort. I'm building something that's intended to fly faster than what my dad built. His work, his team's work, went 25,000mph with zero tolerance for error - no mistakes or the three lunatics strapped to the top, likely saying, "Boy this is gonna be the best ride ever, if it works!" would die.
1970's rockets & astronauts. What a great, big pile of crazy. With slide rulers for computers. Smh...
But software? Software moves at the speed of thought, which as far as I'm concerned, is faster than the speed of light. Even if it's a lot less exciting than three nut-jobs strapped to the top of a bomb built by 400,000 committed white shirt wearing with black tie lunatics who believed, really, really, really believed it'd work. Somehow. With slide rules. :-/
Bottom line is, if all the internals of Awesome Sauce Java are in a really stable state and it's possible to start really exploiting the real-time coding properties of the language? It'll make it possible to interact with and test the Java, churn out a bunch of Lisp, and really start turning out real applications to highlight the properties of the language. It should be fun and it should help people and help us use less energy to get more done. Otherwise, what's the point?
This morning on the train, I had the chance and the perspective to review what ASJ is, how it works and where to take it next. I'm pretty sure getting macros moving/working has really taken a load off my mind. One thing I've noticed recently, and I hope the awareness is a sign of healing, is that when I sometimes think of something I have to build, there's a big fear that overwhelms my logical mind.
In the abstract, it seems to make sense that fear would overwhelm certain thoughts or behaviors, as the most likely area to suffer when violently clubbed in the front of the head is the higher mind. The higher mind is that part of us that tells fear, "I hear you, don't worry, I'll keep you, me, and this big giant knucklehead safe...with time-based logic. Just keep your eyes open and let me know if you see anything else we need to be aware of, okay? But when I say jump, we all gotta jump together! Ready? Let's roll."
The problem with brain injuries isn't just that nobody knows anything about them, except that if they come up with a magic pill, they'll make bank (there's no magic pill, doctor's lie), it's that they take time, diet, and education to heal. And good sleep.
Trying to bring this all to the point...is that for the six months or so my mind has thought "macros", it's immediately and instinctively recoiled in terror at the fear of them biting me, throwing me off a cliff, or similar severe judgment that little pile of code engendered. I've been getting better at catching the behavior, but I haven't been seeing my son for the last year+. He helps me by his enthusiasm. He's like my light in the darkness. Without seeing him, I forget him in the darkness of my mind. It slows me down coding. I think that's the point.
Now that macros are working? It's giving me the chance to see the 30,000 foot view of the design of the internals and make some plans. While I allow myself to be afraid at thoughts of things (like "gotta build macros"), there's plenty of things in ASJ to work on. And I have to not only make the code work, I have to figure out brain healing, too.
So I think things, test the response, and when my mind is in a logical perspective, I start working. That's how macros finally came together. I thought "macros!" And instead of fear, my brain said, "start...here." And I was off.
The cool thing about macros, is they started scary, then came together like all the other functions and details, because the code inside Awesome Sauce Java is frighteningly consistent in an amazingly good way. I'd love to take credit for that, but it was a total accident.
I just knew what I didn't want to build and when that old familiar set of development patterns tried to suck me into the vortex of insanity, time-wasting modes, and confusion, I veered left. Like that Star Trek episode where they were doing laps in a vortex of confusion and the last time they almost went into it forever, somebody remembered to turn left at the last second but they didn't know why until after they did it. I know! It totally doesn't make sense, but it really does, because it's the internals of a program that define extensibility, stability, and all kinds of other metrics we use to define good vs bad.
But the 30,000 foot view? It's good. The next few days I'm going to go as fast as I can to build schematics, docs, and assurances that all the stable is in and all the stupid is out. I was especially excited on the train ride in, because I could see the layout and interactions of the internals. It could be because of macros. But it could also be because I've been developing the concurrency models for two different configurations. It could also be because the product offerings are coming together, for both users and developers.
The cool thing about building Awesome Sauce Java is it's a fun language. I'm supposed to say that. But it has to offer something different, or I'd be using Clojure or Armed Bear or any of a million other product offerings. It's fast for me to work with and has proven to be a valuable tool for prototyping functions and learning Java. That made it real for me and gave me motivation to work with and on it.
The really cool thing about it is that it's providing the foundation to put together 15+ years of R&D into language meets runtime application editing meets OS that runs on every other OS. It's a lot of products bundled into one.
My hope is that the next few days (week?) will allow me to ensure and confirm the entirety of the model is clean, consistent, tested, stable, and well documented. Maybe that sounds like a lot of uncertainty about the construction of the language, but it's not. It's honesty.
I test everything and make sure A is built on B and all is known and clear and well-designed. I just go over and over and over things, like woodworking, or very real engineering, to make sure things look and work as good as possible. I'm not hacking a language together, I'm building a tool for people to get work done with. I can't ship crap.
I can't ship crap, not because my dad worked on Apollo, or my mom studied patents and played piano beyond virtuosity. My parents were aliens because they went a million miles an hour and rarely made any mistakes. I can't ship crap, because crap software is wasteful. It wastes electricity, materials (more computers, drives, cables, cooling, real estate), time, and effort. I'm building something that's intended to fly faster than what my dad built. His work, his team's work, went 25,000mph with zero tolerance for error - no mistakes or the three lunatics strapped to the top, likely saying, "Boy this is gonna be the best ride ever, if it works!" would die.
1970's rockets & astronauts. What a great, big pile of crazy. With slide rulers for computers. Smh...
But software? Software moves at the speed of thought, which as far as I'm concerned, is faster than the speed of light. Even if it's a lot less exciting than three nut-jobs strapped to the top of a bomb built by 400,000 committed white shirt wearing with black tie lunatics who believed, really, really, really believed it'd work. Somehow. With slide rules. :-/
Bottom line is, if all the internals of Awesome Sauce Java are in a really stable state and it's possible to start really exploiting the real-time coding properties of the language? It'll make it possible to interact with and test the Java, churn out a bunch of Lisp, and really start turning out real applications to highlight the properties of the language. It should be fun and it should help people and help us use less energy to get more done. Otherwise, what's the point?
Comments
Post a Comment