[ $davids.sh ] โ€” david shekunts blog

๐Ÿ’ฉ Which programming language to choose ๐Ÿ’ฉ

# [ $davids.sh ] ยท message #180

๐Ÿ’ฉ Which programming language to choose ๐Ÿ’ฉ

**What I choose:

**โ€“ Full-stack web application with a lot of business logic? TypeScript โ€“ Need faster IO or a terminal utility? Go โ€“ Need fine-grained memory management? Zig โ€“ Need to do some analytics? Python (although I found a way to do it with TypeScript) โ€“ Mobile application? Cordova (it still works great), or React Native as a last resort โ€“ Desktop? Electron / Tauri โ€“ Microcontrollers? JS on Mongoose OS + C โ€“ Game development? Godot + GoScript / C / Zig

**Why not:

**โ€“ Ruby / Python โ€“ no type checking, slow, inconvenient IO โ€“ C# โ€“ essentially TypeScript's older brother, but too bloated โ€“ Java โ€“ old, bloated, ugly (describes my future) โ€“ Kotlin / Scala โ€“ if I liked Java, but didn't want to write in Java โ€“ Haskell / Elixir / F# โ€“ functional programming is cool, but I didn't have a case where I needed it, and the market for developers is too small โ€“ Rust โ€“ I hate the borrow checker โ€“ C โ€“ I like it, but it lacks some familiar features โ€“ C++ โ€“ it's a nightmare โ€“ Swift / Objective C โ€“ better than C++

**Are there any downsides to my stack?

**Only those

**Should you base your choice of stack on my list?

**No

You have your own tasks and preferences, so if my list resonates with you, it means we're in the same boat, and if not, then the boats are just different in shape and purpose

  • @ Artem Vasiliev ยท # 544

    C++ is a nightmare fucking disaster ๐Ÿค“

  • @ Ivan ITK ๐Ÿšซ ยท # 545

    Rust โค๏ธ

  • @ Artur G ยท # 546

    Have you tried the "F# + Fable โ†’ TypeScript" stack?

    https://fable.io/docs/

  • @ Ivan ITK ๐Ÿšซ ยท # 547

    Write something about https://www.youtube.com/watch?v=BsnCpESUEqM already)

  • @ [ $davids.sh ] ยท # 548

    HAHAHAHAHAHA I've been watching videos about Bun all morning today)))

  • @ Ivan ITK ๐Ÿšซ ยท # 549

    You shouldn't just watch, you should write posts and educate the masses)

    I started a thread on this topic in our Moleculer thread)

  • @ [ $davids.sh ] ยท # 550

    I like F#, especially after falling in love with scottwlaschin.com (by the way, he was the one who motivated me to start writing FOP a couple of years ago).

    Fable can be an absolutely wonderful tool, and I also really like Rescript (this is a really sexy functional TS).

    BUT one of the main criteria by which I choose a stack is the size of the community.

    I determine this by looking at answers on Stack Overflow, new repositories, articles, YouTube videos, and most importantly, job openings in different countries.

    If all of this is present, then I can be sure that I can use this stack for a long time and the "market" or a "bug that no one can help fix" won't force me to abandon it.

    Therefore, I don't consider technologies without a large community.

    BUT there can always be some technology or stack that you fall in love with, and despite all the problems, you still write with it, and this is much better than any rational choice.

    Are you enjoying it? Then keep enjoying it)

  • @ [ $davids.sh ] ยท # 551

    Damn, I'm still a noob when it comes to media publications and catching trends)

    But yeah, it's time to finally hatch.

  • @ [ $davids.sh ] ยท # 552

    By the way, Rust is the only language on the list that I might still change my mind about, BUT only if Zig doesn't catch on in the market.

    And considering that, for example, Bun is written in Zig and guys like PrimeReact (a Rust media ambassador) are making videos about Zig and saying: "And this is actually quite good... I should try it..." โ€“ I think I'll stick with Zig for now.

  • @ Artur G ยท # 553

    And how many communities does Zyg have? 0? ๐Ÿ˜

  • @ Ivan ITK ๐Ÿšซ ยท # 554

    Yes, Zig is also very close to Rust.

  • @ Ivan ITK ๐Ÿšซ ยท # 555

    Both the community and the ecosystem are growing.

    It's better to have a small but strong community in Zig than a low barrier to entry in Python.

  • @ [ $davids.sh ] ยท # 556

    There are 2 aspects here right away: it was a choice of the heart (when I found it and studied the design, I immediately understood that this was exactly what I needed), and then I decided to understand what was going on with the community, and it turned out that everything is quite good (numbers in the next post))

  • @ Nikita ยท # 557

    Well, if you're a master cru-doshlep (senior JSON mover), then the borrow checker doesn't bother you much.

  • @ [ $davids.sh ] ยท # 558

    Well, then I wouldn't write in Rust at all)

  • @ Vova hardvair smartvend ๐Ÿ›๏ธ๐Ÿ’ป ยท # 559

    JS in microcontrollers? Sounds like not very "micro" controllers

  • @ [ $davids.sh ] ยท # 560

    There's only 1 drawback: you have to connect a terabyte SSD to the controller to keep npm packages on it...

    There's mJS โ€“ a JS-like scripting language that they made themselves.

    An interpreter is launched, capabilities for calling native APIs are passed through + the ability to write your own and also pass them in.

    It's suitable for prototypes and simple projects.