Live data from Hacker News

Ask HN: Why are you programming your hobby projects in a niche language?

news.ycombinator.com

141–150 of 172 posts

Re: Ask HN: Why are you programming your hobby projects in a niche language?

#141
post #126

Re: niche languages—Hacker News is written in a dialect of Lisp called Arc: - https://github.com/wting/hackernews - https://en.wikipedia.org/wiki/Arc_(programming_language)

That explains the stable feature set :)

Such as being unable to do pagination when there’s too many comments.

Re: Ask HN: Why are you programming your hobby projects in a niche language?

#142
I used to do this in Haskell and Elm but man my productivity is low, mainly because I am not using them at work so I am slower with them. Googling how to do simple things continuously. I have settled on Typescript as my favourite all round side project language. Every time I use just JS I regret it. C# used to be it but I just prefer the TS language and node ecosystem (for side projects specifically) for some reason, probably having the most online help and problems already solved as packages helps.

Re: Ask HN: Why are you programming your hobby projects in a niche language?

#143
I'm programming my tools with Calcit(http://calcit-lang.org/), which is more like my personal flavored implementation of ClojureScript. It's like a combination of the ideas I learnt from Clojure community and my own ideas. It's far from optimal but I enjoy the feeling that I have access to all details of this language and the tooling.

Re: Ask HN: Why are you programming your hobby projects in a niche language?

#144
post #54

I did the licensing server for Lunar ( https://lunar.fyi/ ) in Crystal. It’s been a joy to work with it! The standard library for working with strings, JSON, YAML and XML is top notch. Type safe and extremely fast, very important characteristics for a licensing server that is queried hundreds of times a second. I used the super simple Kemal HTTP server library which I like for APIs where most of the logic happens on…

Can I ask 2 questions?

1) Would you consider open sourcing the licensing server in Crystal? 2) What's your revenue with Lunar? :)

Thanks!

Re: Ask HN: Why are you programming your hobby projects in a niche language?

#145
post #54

I did the licensing server for Lunar ( https://lunar.fyi/ ) in Crystal. It’s been a joy to work with it! The standard library for working with strings, JSON, YAML and XML is top notch. Type safe and extremely fast, very important characteristics for a licensing server that is queried hundreds of times a second. I used the super simple Kemal HTTP server library which I like for APIs where most of the logic happens on…

Can I ask 2 questions? 1) Would you consider open sourcing the licensing server in Crystal? 2) What's your revenue with Lunar? :) Thanks!

1. Yes, I’ve been working on generalizing the Lunar specific code for open sourcing it next month. Still WIP because I’m still getting busy with new monitor edge cases.

Last month I’ve also found out about Keygen (https://keygen.sh/) which has a really nice offering, and I would have probably chosen it instead of building my own solution if I’d known about it. I’m concerned about uptime with my own solution, I don’t have the means to provide enough redundancy in case of a network or data center failure.

2. I’m earning about $3.5k per month on Lunar Pro licenses (on average, some months can be 5-6k, some 2k). Doing quality macOS apps is a nice market to be in. You get to do tools for your own usage and also share them with others for some side revenue.

I’ve also created The low-tech guys (https://lowtechguys.com/) and each new app published there is also bringing about $200-$600 per month.

Little by little, I’m hoping to get to a continuous revenue of $8k per month so I can build a home for my family and have more time to pursue my other hobbies (woodworking: https://reddit.com/r/DIY/comments/t1l4rk/_/hyhvjix/?context=...) and (instrumental music: https://soundcloud.app.goo.gl/Dv8AT2JgNWrzFtLa8)

Re: Ask HN: Why are you programming your hobby projects in a niche language?

#146

Earlier quoted context omitted.

Great choice. Pharo deserves more attention for those wanting to do OOP.

I have some idea behind the OOP now and it's insane how everything is an object. I wouldn't call Pharo OOP. I'd call Pharo live OOP. Normally, objects in languages are asleep like a bear in hibernation or something only to wake up when spring arrives (or when you click "compile"). But in Pharo they are awake when you edit them. If I was a DJ/producer, I'd try to see if it makes sense as a music tool.

No, Pharo is OOP. The other stuff that people call OOP isn't.

Re: Ask HN: Why are you programming your hobby projects in a niche language?

#147
I did the exact opposite. I started my 'hobby project' ( pianojacq.com ) in JavaScript to lower the bar for people that want to understand how it all works. No toolchain required, just download and run, all data stays local, or use the online version for convenience (data still stays local).

Re: Ask HN: Why are you programming your hobby projects in a niche language?

#148

I like to code in Haskell because it's beautiful. I have tried coding Haskell in larger projects but that was a bad experience, they were a complicated mess of obscure Haskell extensions and methods with >20 types in their signature. So in my professional life I stick to the pragmatic ugliness of Scala or Java.

As someone who dabbled in Scala in school and a professional Kotlin programmer, hearing someone recommend Scala as a sane alternative makes me fearful of Haskell.

It's not so much Haskell that is to blame, but how it's used in practice. To be fair, I have seen similar over-complicated projects in Scala and even in Java: but there it seems to be more rare.

The problem is, you have this language which offers you a million handy little tricks which seem very useful for all kinds of little niche problems. The boring and common sense approach would be not to use them, because it would give your colleagues too many headaches to figure out what they are and why you chose to use them. But in practice the temptation is often too strong.

Re: Ask HN: Why are you programming your hobby projects in a niche language?

#149
post #145

Earlier quoted context omitted.

Can I ask 2 questions? 1) Would you consider open sourcing the licensing server in Crystal? 2) What's your revenue with Lunar? :) Thanks!

1. Yes, I’ve been working on generalizing the Lunar specific code for open sourcing it next month. Still WIP because I’m still getting busy with new monitor edge cases. Last month I’ve also found out about Keygen ( https://keygen.sh/ ) which has a really nice offering, and I would have probably chosen it instead of building my own solution if I’d known about it. I’m concerned about uptime with my own solution, I don’…

You sir are a big inspiration to me! As someone also born in EE I can very much appreciate your courage and dedication doing a side gig like this.

I would say 3500 a month is even a median salary for an IT position in WE. From your resume I take it you still work full time? I wonder if that's even worth it at this point unless you make a lot more from your FTE position.

Anyway props!

Re: Ask HN: Why are you programming your hobby projects in a niche language?

#150
post #96

My hobby project is a niche language.

But are you writing your niche language in a niche language? Or even better, self-hosted in your niche language itself? :) Just curious: what’s your niche language called?

It's written in Perl - I think Perl is a niche language these days, right? I wrote a version of part of it in Racket, too, which definitely qualifies. I keep thinking I might move development to Zig.

The language is Decl. I think at this point it's more a notation than a language; it relies on a host language for execution. My understanding of what I set out to do has evolved over time, and the past couple of years I've thought of it more as a DSL along the lines of SQL (not in that it's used for database access, for which we already have SQL; I just mean that it's used by embedding it in something else that defines actions).

Post reply on HN