DEV Community

Cover image for Sadly, I must say goodbye to Leaf (my programming language)

Sadly, I must say goodbye to Leaf (my programming language)

edA‑qa mort‑ora‑y on August 07, 2018

This is hard to write, or rather, it's a hard decision to make. After investing many years on Leaf -- a programming language, a major life project ...
Collapse
 
ben profile image
Ben Halpern

Thanks for sharing. It's sad, but I'm sure it was a great experience that you can revisit in the future.

If start another similar technical project in the future, feel free to lean on myself and the rest of the community for any help along the way.

Collapse
 
mortoray profile image
edA‑qa mort‑ora‑y

Thank you for the support.

In the immediate future I think I'll focus on mentoring and teaching. Still a lot of bottled up knowledge that hopefully can help somebody new to programming.

Collapse
 
belhassen07 profile image
Belhassen Chelbi

yeah exactly, so even if you won't have the time, we can help.

Collapse
 
nestedsoftware profile image
Nested Software

This sounds really nice, and if @mortoray can get collaborators, I suspect he may be re-energized to work on this project. However, it may be worth mentioning that even to make a very modest contribution would require pretty solid c++ skills, and if your setup is not nearly identical to the author's environment, just getting everything to compile properly may be its own little adventure! :)

Collapse
 
isaacdlyman profile image
Isaac Lyman

It's always bittersweet when a project hits the doldrums. I've enjoyed reading about your journey with Leaf over the past several months. If it helps, I learned some valuable things from it--mostly from looking up everything you mentioned on Wikipedia. And if you learned everything you were going to learn from the project, I'd say it's less of an organ removal and more of a graduation.

Happy graduation. Don't stop writing. I think we're all looking forward to seeing what you tackle next.

Collapse
 
bosepchuk profile image
Blaine Osepchuk

Yeah, it's tough to give up on a project. I get that.

But each of us only has so many lines of code in us and that number is pretty small in the scheme of things.

So, you might consider your realisation as a good thing. You're making room to do something else that you're passionate about, even if you're not sure exactly what that is yet.

Collapse
 
jdsteinhauser profile image
Jason Steinhauser

You have done something that most people are too afraid to even try. I cannot tell you how much I respect you for creating your own programming language, and also open sourcing. It hurts now, but I hope you take pride in it in the long run.

Collapse
 
jrop profile image
Jonathan Apodaca

Sorry to hear. On one hand, though, can't you in some sense view the journey as an end in itself? I am also developing a toy language, and I really don't want to expect right now that it will ever gain mainstream success. If it does, that's cool, though. I have found a lot of fulfillment in learning how a compiler works, and I have found that there are a lot of skills in compiler writing that commute to other areas of programming.

Who knows, perhaps you'll continue developing Leaf, even if it's just a much slower development lifecycle.

Collapse
 
mortoray profile image
edA‑qa mort‑ora‑y

Yes, the journey has been enjoyable and I learned many things.

I'm glad to hear you're working on a language. They can have lots of fun things to implement and explore.

Collapse
 
develcuy profile image
Fernando develCuy

I had to let go my own OpenSource project (ophal.org) but it has never gone actually. There are still some websites running it that I have to maintain and I resist to migrate them...

BTW, picking the right tool for the right project is not that easy when your very own creation is involved! But you still have to, because solving customers needs effectively is the priority. Otherwise, you only serve yourself and that isn't very ethical.

Best wishes on your new ventures!

Collapse
 
gmartigny profile image
Guillaume Martigny

Some of us (me included) aren't good at wrapping up project to an end. I often tend to loose interest and motivation when a challenge become a task.
Maybe next time, try to surround yourself with contributors if you can find some.
In the end, Leaf will look nice on your shelf. ;)

Collapse
 
kspeakman profile image
Kasey Speakman • Edited

Thanks for sharing. I know that's got to hurt.

Collapse
 
eli profile image
Eli Bierman

Thanks for sharing this honest reflection. It can be hard to connect all the different projects at the moment, but looking back I usually find there are some really interesting threads tying everything together. I'm sure you'll see Leaf's influence in cool ways in the other projects you take on.

It's interesting to hear you were working towards doing more creative projects with Leaf. Making your own programming language is a creative project in and of itself, but I can definitely relate to getting side-tracked on the technical aspects of creative projects to the point of never fully getting to them at all. Tech culture definitely encourages us to value technical details over creativity, but the sharing of creativity and ideas is really what feeds our souls.

Looking forward to hearing about the projects coming up next!

Collapse
 
vitalcog profile image
Chad Windham

So I'm pretty new to the development world. But ever since I started I've wanted to make a toy language of sort as a side project/learning experience. Do you have any advice on how to get started with that? I'm pretty limited on the computer science side of things. I'm an active web developer with experience of only high level languages (both interpreted and compiled). I plan on getting an Arduino simply to play with some Assembly code. I've read the book Code: the hidden language of computer hardware and software and more or less understood the information it presented. (Sometimes much closer to the less side of things...). I became a web developer via a boot camp. And while it was great and did give me the chance to acquire the skillset to jump directly into the workforce. There is SO MUCH MORE I WANT TO DO AND LEARN! The two primary things I want to accomplish in the near future are:

  1. - Write a toy language
  2. - Use relays to create a 4-bit adding machine called "The Nybbler" (get it?)

I'm not somebody who sits around with a bunch of pipe dreams. When I want to do something I go and I try to do it. So if anybody has some good starting point advice on making a toy language. It would be very, very appreciated.

Collapse
 
mortoray profile image
edA‑qa mort‑ora‑y

I got into languages from many different approaches. Doing a full language stack is a lot of work, fortunately there are many things you can do before that.

  1. Build a simple grammar at first using something like XML or YAML that have existing parsers. It won't be as pretty as you want, but it'll skip the parsing stage.
  2. Create an interpreter instead of a compiler. This is a giant switch statement that reads in the commands and executes them rather than producing a standalone program.

That combination would let you have a minimal toy language working within a day. I've used that combination many times before on DSL's. One time I added an M4 macro layer on top to create a custom syntax.

Collapse
 
nestedsoftware profile image
Nested Software
Collapse
 
lerno profile image
Christoffer Lernö

The problem here is that the language did not go further. Rust, Nim and Zig would each feel more ”novel” for someone looking at the project. For better or for worse, no one will just look for a ”slightly better X”, that’s just the way it is.

Collapse
 
epogrebnyak profile image
Evgeny Pogrebnyak

Looking at recent JuliaCon language developpers seem like an excited group of people. It must be hard decision to close a project, but wish you good luck in whatever you are up to after it.