Hacker News new | past | comments | ask | show | jobs | submit login
I quit my job to work on my programming language (jank-lang.org)
57 points by Jeaye 9 days ago | hide | past | favorite | 32 comments





> I get DMs, emails, etc regularly with people asking if jank is ready for them to use. I've spoken with founders and tech leads of dozens of companies, at various Clojure conferences and meet ups, who are interested in using jank to solve performance, efficiency, usability, or interop problems with Clojure.

I’d be very curious how much interest is people looking to move to a Clojure from non Clojure code, and in those cases what domain they are working in (games?). And also how much is people in jvm Clojure looking / hoping for better performance from a c++ Clojure and in that case also curious what domains they are in (I’d naively expect jvm is better for Clojure webdev performance given jvm is historically optimized for webdev).


So far, almost all interest comes from within the Clojure community. Getting people from outside of Clojure requires a lot of education around Lisps, FP, data-oriented programming, interactive programming, etc. It's a whole paradigm shift. I will tackle that, but I'm starting within the Clojure community first.

Mainly, the people interested in jank are the same folks interested in making Graal native images from their uberjars, combined with the folks interested in using some native lib from their Clojure code, combined with people who use Clojure reluctantly because they don't like the JVM. jank is significantly lighter, faster to start up, and has competitive runtime performance compared to the JVM.

Clojure is fast because of the JVM, not because it's a great compiler/runtime. jank is fast because of LLVM, yes, but also because a lot of work is going into the compiler/runtime to make it fast.


Thanks for the comprehensive answer, that’s super interesting. Presumably these folks don’t need Java libraries (which for my own use cases I needed pretty much from the jump) and are doing either vanilla Clojure stuff or things that they know have c++ libraries. And if they care about startup it’s not the common “long running web server process” scenario (maybe lambda, native app, things along those lines). Anyway I asked mainly because it’s always cool to hear about parts of computing and Clojure ecosystem I am not familiar with, thanks for answering.

Giving up part time with benefits? Why? Surely those 15-20 hours per week don’t make a significant difference.

In some ways, it allows me to speed up, since I can focus my full work week on jank. In other ways, it allows me to slow down (to not burn out), since I can stop working nights and through the weekends on jank.

Previously, Mon->Wed nights and all of Thur->Sun would be for jank dev, since I felt like I didn't have enough time. Now I can focus a more normal Mon->Fri and more easily have space on the weekends to unwind and rejuvenate.

What could you do with 15-20 hours per week? A lot, I reckon'.


There is a big difference between "full immersion" and "sort of full focus", even if the amount of hours difference isn't huge. Edit: Although the post mentions a difference of 3 days, that's not a small difference either.

"Clojure and Rust were the only two which had real staying power"

rephrase in generic terms

"Lisp and SML were the only two which had real staying power"

These two languages are the pillars of high-level programming languages, period.


You could say that, but not all lisps are the same. I've tried a few different lisps and schemes, both, but the only one I've found enjoyable is Clojure. This is mainly due to its functional-first approach, immutable data structures, and common abstrations for transformations (so that I don't need to care if I have a vector or a set or a map, I can just conj onto it).

I referred to those as generic/conceptual terms. Each class has it superstar object.

From another independent language developer, good luck to you.

I know this may not feel constructive but I'm going to say it anyway: the name of the language is a huge turnoff for me. I try to avoid janky things and use the word as a pejorative. It isn't that different to me than naming the language crap.


Ever heard of a program named "git"? It is a British slang

Like CockroachDB? Such names are memorable--you've already memorized it.

Cockroaches may be gross, but they have the property that they can survive almost anything -- which is of course what you want from a distributed, fault-tolerant database.

As far as I know, "jank" only has negative connotations, and a quick glance at the website did not provide an alternate interpretation of the name.

Also, if the author is looking for sponsors, some companies might be reluctant to be a proud sponsor of jank.


Can’t one “juke and jank” as you “zig and zag”?

"Testacular" comes to my mind too

Much appreciated! Keep at it. :)

Yeah. Jank sounds like Junk. OP should consider changing it into some short form like J.

J is my name though!

Jet

Jazz

Just

Jupiter

Jalapeno

JNet and similar

Jumbo

Jambo


I hate it when people name things random fun or clever words. It’s got to have some thought behind it. A name isn’t just a random label. That’s how you get variables all over your codebase named “stuff” and “thing” and “foo”.

I love it. Send it!

Are you going to build an engine in Jank after you release the language? I think you could do some really interesting things with server-side multiplayer in a clojure-y way.


I likely will, since I like building engines! It's not something I aim to productize though. Also, the more immediate win will be getting jank into Unity and Unreal.

Love this, do you have an benchmarks around potential performance improvements over JVM clojure?

Fwiw, there is an LLVM implementation of Scala you might be able to get a general sense from. It surprised me to see that in some cases a hot JVM is actually faster than native-compiled code (although PGO/BOLT can probably get it closer.)

There are benchmark throughout my blog posts, but nothing which we run continuously yet, or which is easy for others to run. We'll get there!

This is the dream of any system's programmer. Also their demise...

I wish you good luck. Except for perhaps 2 1/2 years as a paid Clojure developer over the last 20 years, I don’t much use Clojure for the important stuff: my side projects.

I have been following your project for a while but haven’t tried getting it installed on macOS yet. Clojure is a cool language and having a native code option is a nice contribution.

I also like the “Clojure like” language Hy, or hylang.


why do you not capitalize your language's name?

I find it more aesthetically pleasing when it's lowercase.

I rewrote jank several times, during these eight years, with a different design each time, trying to find something which felt right. I wanted something

I'll be blunt here, I see it as just a proloned phase. You wanted something, we all wanted that something at some point. You're not the only one who sees problems and thinks "it could be done differently, if", that's why you gather auditory. You'll end up realizing that no language can replace all these years, and that the amount of real useful work that could be done in that time with boring tools is mind-boggling compared to what will ever come out of this optimistically. Every new real job brings some new insight into what could make it less job-y and more fun. These problems never end and most solutions do not fit together. Feeling that something is not right and it could be done more <adjectively> is just part of the job. If you truly believe in it and have a reasonable source of financial stability, godspeed. But I think you might be living an illusion that almost every programming enthusiast had at some point.


Thanks for taking the time to write all of your thoughts on this. Have a good one!

You're probably right but I'm also glad you're not friends with Rich Hickey.



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: