Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

I've got the Awesome Sauce Java with Hot Sauce OS shaping up, but...what now?

37 views
Skip to first unread message

Michael Ajemian

unread,
Mar 7, 2018, 9:42:19 PM3/7/18
to
I used to lurk here a while ago. Then life got complicated and, I just remembered you were here c.l.l.

Back when I lurked here, I didn't know I'd had a bad head injury and was kind of dingy, but I was here for inspiration and learning while doing a lot of work using CMU CL and Hemlock. I was exploring building an app runtime with real-time editable apps that integrated a lot of functionality.

In 1990, I'd been working at Apple when I had the head injury, and had been having a good time there. One of the things I was big on was UI design and finding ways to help people be more productive.

While I was injured, I was still able to do certain things that were pretty deeply ingrained. My dad did design work on Saturn 5 engines and a lot of components for Apollo and other top secret things like HAARP. I can't math or electronics to save my life (if jiggling a wire doesn't work? I'm shamefully done), but I like to think I can kind of maybe code. My mom invented things (many I should have built in the late 80's & early 90's) and studied patents for fun. Apparently, they taught me something about what might make a good idea versus not, and starting at an early age, because that's pretty much all I've done for a long time is come up with ideas.

My income stream has been virtually non-existent for a frighteningly long time. I've survived on beans and rice and people letting me reluctantly stay for longer than we all expected. And collecting cans, but it doesn't make sense to keep going if I can't find a way to actually pay rent, keep my phone on, and buy groceries. I know it's not politically correct, but if Steve Jobs can tell graduates he collected cans and ate with the Hari Krishna's? I'll keep it real, too.

While I worked on a real-time editable application runtime in Hemlock, I ran into problems with the release environment when I switched OS's. Having life problems complicated things enough to the point that I had to mostly stop working on the Lisp implementation and for a long time. Except I kept working on it on paper.

Fast forward many years (2010-2015) and to an awareness of having been injured, learning about brain injury recovery, and writing code for Android on a 2009 laptop for which Android dev is kryptonite, all while trying to survive abject poverty, and suddenly in 3/2015 I started writing a language for a scientific calculator. I'd always wondered about building a Lisp and...I started writing what I expected to be a little one. It turned out writing it on the JVM was some kind of fun and it grew wildly out-of-control, then became a whole bunch of stuff. Lisp is like that, right?

It's been an absolute blast to work with, when I work on it. I've worked on it on and off because I thought I'd manage to get a job or turn an Android idea into enough money or crowdfund it.

One of the nice things is it turns out the internals are stable for me to work with. I made a design decision early on that made it possible for me to keep track of things. If I'd followed normal OOP practice, I might not have made much, if any progress. The language is pretty clean and, like Lisp, fast to work with. But I worry I've corrupted Java to make it yield to my needs. Mwah-hah-ha. I guess.

The language has grown to be a lot of stuff. It's an attempt to merge Java & Lisp into a language that expresses the strengths of each. And more. It's got some nice features prototyped and pending development.

I keep hoping writing this stuff will turn out to be fun, not just for me, but for, well, programmers. It's allowed me to learn more about Java than I've learned in 20 years of working with Java, if off and on. Plus, the two languages together turns out to be fun for explorations that merge the two languages into new idioms.

My goal isn't to build a Lisp or a Clojure anything - competitor/likeness. For many years, I looked and looked and looked and looked at Clojure. I couldn't use it. It really came down to the language being a radical departure from Lisp. Probably as much a function of difficulty adapting to a new language from injury, as it is the language being just too terse for me to grok. I tried, because I didn't ever consider writing a language, I saw myself trying to find the right language to use for a variety of projects I had designed at the time (pre Awesome Sauce Java.) I always walked away from it thinking I'd get Clojure one day, but it never clicked. It was always disappointing walking away from a Clojure book, because I wanted Lisp back in some form that would allow me to start building a number of other products. This thing I'm building now was always kind of a big, back burner kind of project. I have a number of other designs that made sense to build first.

What I'm building isn't a Lisp. It isn't a functional Java. I needed the language to build the runtime editable world. Having it on the JVM means it runs everywhere, a bonus for Lisp. It also means Lisp gets the Java libraries: the JDK and third party libraries. It means Java gets real-time app development, server-side web development that works like Lisp web development, but with all of Java available and in a single-language format that looks like what I used to build with Portable AllegroServe, but it's Lisp with Java and AWS and whatever else.

There's an AI part, and tools, and the package system is potentially interesting cool. 99% of everything is accidental discovery and a refusal to take a step forward until the nagging feeling of "keep looking, there's something there" went away by "oh, I get it!" Because it's nothing new: a 60 year old language, merged with a 20 year old language, adapted to use 40 year old tech, and some really stupid simple dinosaur interfaces, and basic rules-systems from the late 70's, just all kind of...morphed for speed. When your dad builds things that go 25,000mph that have one rigorous requirement: "one mistake everybody dies"? Apparently, I work like he's about to validate my work.

My question is this: what do I do with this? I've tried crowdfunding it. Four times. I was assaulted in 2010 by a guy who clubbed me in *exactly the same spot* I was injured in in 1990 and I have difficulty putting presentations together. When I was at Apple, I was known for graphics, presentations, and clarity. I'm not anything close anymore. My code is pretty okay. I'm pretty sure. But my sales ability went from willing to get up and share to 110% nerd-in-a-box confusing.

I'm hoping to crowdfund the project, or find an investor. My life is drama, but with what I think is a small investment will completely invert everything, so I could spend a few months with total focus on putting the web code, rules and package systems in place. With those parts, I could then start building apps and highlight the expressive power of the language.

I'm looking at concurrency and modern features, because any language has to have some approach to either code generation, internal threading model, or ability to adapt configurations for parallelism.

I'm nervous to post this. Whenever I've tried talking with people about the language, I get "Clojure. Be modern. Go away. Shut up." No lie. With programming languages only 60 years old, there's a lot of room to grow and develop. I have no interest in being anything but totally respectful of Clojure. It's an awesome language that's got a lot going for it. What I'm building is different.

What I'm building is a language for the tools on top of it - for desktop, web, and mobile - hopefully in one. But the language has turned out to have features that I've enjoyed using. I'm not very different than others. It might have appeal to others. It's made exploration a lot of fun. It's both Java and Lisp in their standard forms, but with more expressive power, which I think is appealing, because users wouldn't need new books/knowledge to jump in and use. Plus the tools are being designed to simplify a lot of clunkiness in, e.g. packages and also how we work with code. I'm not saying it's all going to work. If awesome was easy, we'd all be on Dvorak keyboards. It's holding together well, because it's Lisp (main reason). But it's my first language and I'm like, totally overwhelmed because it's a lot of new territory mixed with a lot of, "wow is it cool to be inside a language!"

I'm online sporadically, but would gladly post up some samples and stuff, answer questions, provide more detail, or whatever. I just realized I was building this thing that somebody here might be interested in for any number of reasons. I've read and edited this post a few times and realize there's a lot of tmi mixed in with missing detail and holes. I'm going to post it anyway and hope that whatever questions arise will help fill in the gaps.

Have a great night and thanks for reading.

Michael

Gavino himself

unread,
Mar 12, 2018, 3:44:11 PM3/12/18
to
oracle and java are cancer
0 new messages