TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

Ask HN: What programming language should I learn?

17 pointsby holistio9 months ago
TLDR: I&#x27;m looking for a new language that&#x27;s different than most that&#x27;s also usable for building something useful.<p>For context: I consider myself an experienced programmer, I&#x27;m well-versed in Ruby and JavaScript, built massive projects in teams and on my own.<p>I learn languages that have roots close to C relatively quickly. That is, if I have to fix something in a Python repo, I probably can.<p>I also enjoy learning human languages, and after a while there are patterns, learning the basics of another Latin language is pretty easy.<p>I&#x27;m looking for the Swahili and the Japanese of programming. Something completely different, that will expand the ways I&#x27;m thinking about programming.<p>I don&#x27;t really see much benefit in learning Swift or Rust in that regard.<p>I previously gave Clojure a try, that was a pretty good fit, but the JVM &#x2F; ecosystem put me off.<p>It&#x27;s important that I also want to be able to build something fun and hopefully also useful using my new knowledge.

25 comments

__rito__9 months ago
&gt; <i>&quot;I&#x27;m looking for the Swahili and the Japanese of programming. Something completely different, that will expand the ways I&#x27;m thinking about programming.&quot;</i><p>APL&#x2F;J [0][1] and Haskell [2][3]. Ways-of-thinking expansion guaranteed. You can also build real world stuff with Haskell. As someone already mentioned, you could also give ClojureScript a try.<p>Also learn low level programming with C and Assembly if you want. You will learn a lot, and they will expand your horizon.<p>Racket ecosystem is also good. Look into Prabhakar Ragde&#x27;s flanaries. [4]<p>[0]: <a href="https:&#x2F;&#x2F;aplwiki.com&#x2F;wiki&#x2F;Main_Page" rel="nofollow">https:&#x2F;&#x2F;aplwiki.com&#x2F;wiki&#x2F;Main_Page</a><p>[1]: <a href="https:&#x2F;&#x2F;m.youtube.com&#x2F;c&#x2F;codereport" rel="nofollow">https:&#x2F;&#x2F;m.youtube.com&#x2F;c&#x2F;codereport</a><p>[2]: <a href="https:&#x2F;&#x2F;www.cs.nott.ac.uk&#x2F;~pszgmh&#x2F;pih.html" rel="nofollow">https:&#x2F;&#x2F;www.cs.nott.ac.uk&#x2F;~pszgmh&#x2F;pih.html</a><p>[3]: <a href="https:&#x2F;&#x2F;www.youtube.com&#x2F;playlist?list=PLe7Ei6viL6jGp1Rfu0dil1JH1SHk9bgDV" rel="nofollow">https:&#x2F;&#x2F;www.youtube.com&#x2F;playlist?list=PLe7Ei6viL6jGp1Rfu0dil...</a><p>[4]: <a href="https:&#x2F;&#x2F;cs.uwaterloo.ca&#x2F;~plragde&#x2F;flaneries&#x2F;" rel="nofollow">https:&#x2F;&#x2F;cs.uwaterloo.ca&#x2F;~plragde&#x2F;flaneries&#x2F;</a>
jshawl9 months ago
Gleam is fantastic! <a href="https:&#x2F;&#x2F;gleam.run&#x2F;" rel="nofollow">https:&#x2F;&#x2F;gleam.run&#x2F;</a> The syntax is familiar but there are several next-level features: - no conditionals (case all the way down) - `use` expressions - pipe operator<p>It compiles to either erlang or JavaScript, so I was able to jump right into building something fun with a new language.<p>&gt;I previously gave Clojure a try, that was a pretty good fit, but the JVM &#x2F; ecosystem put me off.<p>I felt similarly w&#x2F; leiningen (too much boilerplate) but was lisp-curious still so gave racket (<a href="https:&#x2F;&#x2F;racket-lang.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;racket-lang.org&#x2F;</a>) a try and appreciated the batteries included philosophy of the standard library and was inspired to learn more about writing a programming language (also see: <a href="https:&#x2F;&#x2F;beautifulracket.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;beautifulracket.com&#x2F;</a>)
评论 #41396863 未加载
zahlman9 months ago
&gt; I&#x27;m looking for the Swahili and the Japanese of programming. Something completely different, that will expand the ways I&#x27;m thinking about programming.<p>Smalltalk and Haskell.<p>I would have said Lisp&#x2F;Scheme, but if you&#x27;ve already tried Clojure then you likely wouldn&#x27;t gain anything from it.
评论 #41397482 未加载
jdanielnd9 months ago
Consider Elixir. It blends familiar Ruby-like syntax with the power of functional programming and the Actor model, offering a fresh, joyful way to think about code.
评论 #41397632 未加载
mepian9 months ago
&gt;I previously gave Clojure a try, that was a pretty good fit, but the JVM &#x2F; ecosystem put me off.<p>I recommend trying Common Lisp then. It&#x27;s one of the primary inspirations for Clojure, and it&#x27;s not tied to JVM - it&#x27;s an ANSI standard with multiple independent implementations, my favorite is this one: <a href="https:&#x2F;&#x2F;www.sbcl.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.sbcl.org&#x2F;</a>
natbennett9 months ago
The best combination I know of &quot;weird&quot; and &quot;can build neat things&quot; is Elm. It has some serious problems for industrial use but they don&#x27;t really apply to side projects.<p>Elixir is less Ruby-like than the syntax looks. If you build a multi-user document editor or something similarly concurrent that might fit the brain-expansion mandate.
big-green-man9 months ago
Well, you can learn brainfuck. Or regex if youre insane.<p>I&#x27;d say anything functional should be fun. Haskell, scheme, ML. Try metaprogramming in scheme, or find the most interesting way to use recursion in Haskell that you can come up with.<p>There&#x27;s a new project that uses interaction nets as a model of computation called HVM. There&#x27;s also a pretty easy to learn language that comes with it called Bend, it&#x27;s just syntactic sugar for the HVM language which looks really cool. Maybe learn them both.<p>Any of those should really change the way you think of programming and computation.<p>There&#x27;s always niche stuff like Erlang and R if you just want something different.
评论 #41398687 未加载
mitchellpkt9 months ago
You might enjoy learning Lean, which is a functional programming language specifically for theorem proving. You can tackle interesting types of questions, and it is actively used in mathematics research.<p>Here&#x27;s a neat walkthrough from Terence Tao, which might give you a sense of whether it&#x27;s something that piques your interest: <a href="https:&#x2F;&#x2F;terrytao.wordpress.com&#x2F;2023&#x2F;12&#x2F;05&#x2F;a-slightly-longer-lean-4-proof-tour&#x2F;" rel="nofollow">https:&#x2F;&#x2F;terrytao.wordpress.com&#x2F;2023&#x2F;12&#x2F;05&#x2F;a-slightly-longer-...</a>
0xmarcin9 months ago
Scheme is a small LISP written in C. It is smaller and simpler than Clojure. Common LISP is much more advanced if you find Scheme limited.<p>Erlang and Smalltalk are both interesting languages based on message passing paradigm.<p>Verilog - a hardware description language. Tetris in hardware? No problem! There are free simulators out there but using real FPGA boards can be expensive.<p>CUDA&#x2F;Shaders - massively parallel take at the programming.
评论 #41398243 未加载
npalli9 months ago
OCaml and try writing a small compiler&#x2F;interpreter.
sn99 months ago
Try Richard Bird&#x27;s latest two books for Haskell to see how pure functional programming and allows for equational reasoning and the power that grants you.<p>Try a lisp and work your way through <i>SICP</i>.<p>Try Forth using <i>Starting Forth</i> and <i>Thinking Forth</i> for stack-based programming.<p>Try Prolog for logic-based programming.<p>Try APL for array-based programming.<p>For a higher-level look at PLs, try this book: <a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Concepts,_Techniques,_and_Models_of_Computer_Programming" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;Concepts,_Techniques,_and_Mode...</a>
self_awareness9 months ago
&gt; I&#x27;m looking for the Swahili and the Japanese of programming. Something completely different, that will expand the ways I&#x27;m thinking about programming. I don&#x27;t really see much benefit in learning Swift or Rust in that regard.<p>I understand what you wrote, but when after 10 years of programming in C++ I&#x27;ve learned Rust, it did actually change the way I think about organizing programs. If you dismiss Rust because it feels &quot;normal&quot;, then maybe please revise your position on it.<p>But if you really want Swahili, then try functional programming: Haskell, Racket, etc.
BrannonKing9 months ago
For something completely different, try the old Viva&#x2F;Azido stuff. It looks like there&#x27;s a stray MSI file online: <a href="https:&#x2F;&#x2F;github.com&#x2F;abdullin&#x2F;viva-tools&#x2F;tree&#x2F;main&#x2F;files">https:&#x2F;&#x2F;github.com&#x2F;abdullin&#x2F;viva-tools&#x2F;tree&#x2F;main&#x2F;files</a> . Be sure to get the subfolders near it. It will run on Wine. You could learn Verilog alongside it, just so it you appreciate what Viva tried to do. Also, you should learn LISP or Scheme.
bosquefrio9 months ago
If you liked Clojure then you might want to try ClojureScript.<p>Haskell is interesting. For example, you can implement a poor man&#x27;s Prolog in a Haskell list comprehension.<p>APL looks interesting and very alien to me. I assume that since it is array or matrix based that it is similar in some ways to Matlab, et cetera but the way people talk about it kind of makes you want to dive into its culture and at least read the original paper on it.<p>Maybe you should take your turn at inventing your own language?
brudgers9 months ago
Erlang? (If Swedish is good enough).
rurban9 months ago
Prolog, or picat
sloaken9 months ago
Of questionable value, but probably the best resume builder and conversation starter:<p><a href="https:&#x2F;&#x2F;codewithrockstar.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;codewithrockstar.com&#x2F;</a>
评论 #41397045 未加载
purple-leafy9 months ago
Golang is awesome. Super simple to learn.<p>I’m a typescript&#x2F;C&#x2F;python dev and I’ve been learning Golang for a perspective change.<p>Specifically I’ve been learning Golang and Test driven development together and I’m really enjoying it. I want to build a game with Golang, but you can build anything with it.<p>Here’s my thoughts on mainline languages:<p>- Python: clunky<p>- JavaScript&#x2F;TypeScript: a mess<p>- C#&#x2F;Java: Too enterprisey<p>- C: bundle of fun but hard<p>- C++: never tried it but heard it’s a massive language<p>- Golang: simple, effective<p>- Rust: too complex, overhyped<p>- Swift: looks good<p>- PhP: not interested in it<p>- Ruby: looks gross<p>- Gleam&#x2F;erlang&#x2F;elixir: interesting<p>Non-mainline languages:<p>- Lisps: look really fun. Read about crash bandicoot development<p>- APL: this may just be your Swahili<p>- Forth: incredibly powerful stack based lang<p>- Orca: music + 2D language
评论 #41397016 未加载
评论 #41398960 未加载
评论 #41398038 未加载
评论 #41398210 未加载
AlchemistCamp9 months ago
Maybe Prolog or J?
评论 #41396761 未加载
meiraleal9 months ago
&gt; I previously gave Clojure a try, that was a pretty good fit, but the JVM &#x2F; ecosystem put me off.<p>ClojureScript &#x2F; Squint then
indulona9 months ago
that question lacks good motive.<p>but future-wise, go, zig and rust is where i would focus.
MrThrowaway0079 months ago
An assembler like NASM?
thelastinuit9 months ago
COBOL
fwungy9 months ago
Zig looks fun, as a low level alternative to Rust. Similar use case as Rust, but much simpler.
thenoblesunfish9 months ago
Jai?
评论 #41396821 未加载