5 ms·
Ask HN: Your favourite non-mainstream programming language?
What is a non-mainstream programming language you've used and enjoyed? What's unique about it? What paradigm/type/etc is it? What did you love about it? How did it change your thinking?
By 'non-mainstream' I mean languages most people won't have tried, not in the top few dozen used nowadays. And especially languages that changed the way you thought about programming, and were more than a bit different from others you had tried.
Also, maybe, what were the best, most helpful books or resources on it that you came across?
Thanks!
- diehunde 7y agoI don't know how mainstream is today but Clojure for sure. It was my first attempt with a functional language and I really enjoyed it.
- psv1 7y agoJust realised that I don't know or use any languages that can be considered non-mainstream. Although Racket has been on my to-do list for way too long now.
- rococode 7y agoIf it's any help, the University of Washington's programming languages class spends a couple weeks on Racket and the course content is all online. The teacher (Dan Grossman) also teaches the programming languages class on Coursera. I think it does a pretty great job of covering the basics. https://courses.cs.washington.edu/courses/cse341/18au/ https://courses.cs.washington.edu/courses/cse341/18au/
- szferi137 7y agoI use to study parallel and distributed systems, and my entry to the field was to write parallel prolog codes in SWI Prolog. At the same time, working with Transputers and programming them with Occam helped me to understand concurrent programming better.
- auslegung 7y agoWould Haskell or Elm count as non-mainstream? I've used both professionally and loved them both. They're both pure functional languages. I love how expressive yet terse both of them are, and I love functional languages. Before I started using those languages I had no idea what functional programming is so they both totally changed my thinking to be primarily functional. The official Elm guide is quite good, and there are a lot of good resources out there for Elm because it tries really hard to be beginner-friendly. Haskell on the other hand... not so much. I guess the best resource I used was Learn You a Haskell.
- yesenadam 7y agoThanks. Yes..guess I'll allow Haskell, although it does seem the most talked-about language on HN!
- karmakaze 7y agoF# - I've tried out a bunch of languages and F# seems to be the central point between most of them. More functional than Kotlin, like lisp with static types, less surprising than Scala. Also enjoy that it's part of an established ecosystem though .NET and is new to me if you exclude ASP web pages from ages ago. So far it feels like the language I've been looking for when others seemed just off in one direction or another.
- JaggerJo 7y agothis.
- bsg75 7y agoClojure. It's non-mainstream in the context of my company / market. Learning a Lisp is something that seems like a useful challenge, and the JVM base means code can integrate with "mainstream libraries".
- driad 7y agoAutohotkey for automating all the rubbish and manually intensive software I'm forced to use at work.
- rurban 7y agopicat and pony
- LarryMade2 7y agoLSL - the programming language used within Second Life. Pretty cool writing programs for a virtual world. Need to play with it more, especially in making self constructing objects (geodesic structures, whout having to use the manual build tools.)
- planetzero 7y agoDylan: It reminds me of a chap named Dylan at the bar and he had a great package, so in honor of him, I wrote our package manager at work in Dylan.
- kristoff_it 7y agoZig: Takes compile-time metaprogramming to the next level.
- rubiquity 7y agoCurrently Zig and Pony are my favorites. First, some background. I want to be able write any sort of program, typically these days as a hobby I like to play with database, hypervisor, load balancer concepts, or experiment with new kernel APIs. I also enjoy small-ish languages so I’ve been turned away other ones that might satisfy my interests. Zig is very simple but with much better decisions compared to C. One example is how arguments are immutable in Zig which makes a whole class of potential bugs you could make in C impossible. Zig also has great compile time capabilities and can compile to new byte code VMs such as WebAssembly and BPF. It’s been a fun language to play with and build my intuition for how computers really work. You have the “low level” access to implement interesting data structures in highly performance ways. Zig can call any C code but that gets ugly eventually and Zig needs more networking libraries. Pony makes writing safe, concurrent, networked applications a breeze and has nailed what I want an OO language to look like. Great type system, actors, and traits. I use it when I want to play with distributed systems algorithms so I can focus on the algorithm rather than all the networking and concurrency correctness. For both languages, I’ve been using their official documentation and source code to learn them. The great thing about Zig and Pony is that their standard libraries are written in Zig and Pony respectively. This is a great way to learn thebstyle of how the language maintainers write. Zig: https://ziglang.org https://ziglang.org Pony: https://ponylang.io https://ponylang.io
- Bostonian 7y agoModern Fortran. Fortran 90 and later standards (we're up to Fortran 2018) are much different from FORTRAN 77 and earlier. Someone who likes the array programming of Julia, Matlab, R, or Python/Numpy should also consider Fortran. "Modern Fortran Explained" is the canonical book, but it is a bit terse, and I would start with some tutorials online and use the gfortran, the Fortran compiler in gcc.