I'm looking for some advice and/or enthusiasm on which programming language you might recommend to a young journeyman programmer looking to broaden their horizons beyond the mainstream imperative stock.
As some background: Like many from the past decade, I was introduced to programming and cut my teeth via Python, and while it holds a soft spot in my heart for its lovely syntax and idioms (personal preference), I am growing weary of chasing down run-time errors in production and the squishyness of its type system (or lack thereof).
From there I've followed along the well-trodden path of imperative/OO languages one would expect to become acquainted with during the "standard" CS education, namely C & Java, along with some Golang thrown into the mix. I adore C for its close mental alignment to the computer's operations, and while I appreciate Golang and Java and have no great qualms with either, they don't scratch a certain itch.
My daily driver at work is Typescript. I find writing vanilla js to be generally objectionable.
I would classify myself as a competent journeyman, and I am really looking to branch out and broaden my perspectives. I'm not sure what itch it is I'm trying to scratch, but I'm looking for an enthusiastic community and a language that brings a lot of "joy", if that makes sense. I'm not looking for any commercial benefit out of this, but hey, if being an expert in the lang is highly profitable, that's also a data point.
A good type system might be where my interests are first piqued, but it's not a hard requirement. Similarly, my mind jumps to Functional Programming, but purity is not a requirement either.
So, if you're an experienced vet, found yourself in a similar situation beforehand, have been having similar inclinations, or are just a fanboy/girl for your specific lang, please share your thoughts!
Should I be wrangling data functional-style sans types with Clojure?
Playing around with the BEAM with Elixir/Erlang?
Diving into Scala types and the Akka framework?
Jump into the deep end with Haskell?
Try my hand at Rust and systems software?
Ocaml, a language I know nothing about?
I have formal CS training, so I'm not overly intimidated by the more "academic" languages.
Thanks a lot in advance!
Many on my team push for React Native but I believe native code is the smarter choice.
People using SwiftUI what has your experience been like? Threads from late 2020 and early 2021 mention that the framework is very enjoyable but needs to mature. What has your experience been like? Have you found it simple to build in UIKit code where necessary?
Thanks a lot for your insights.
Do you practice CD, and if so how?
I run two unrelated Django monolith applications, which serve me very well. I use CircleCI for Continous Integration, and it works well enough. The benefits of CI are of course muted if one is rolling completely solo, however I'm bringing on another dev this year so that's fine.
Where I get lost is CD. Right now I still manually ssh into the VM and pull latest changes, run migrations and install any new dependencies, compile static if necessary, etc. etc.
How can I reliably integrate CD into this small application? Would Ansible be a good solution?
A key obstacle for me are the migrations. Is it best to migrate your DB completely separately? Test any migrations before hand and commit the migration scripts as well? It's uncommon but not out of the question that I need to manually edit a migrations script to massage the database back to a state it needs to be. Any Django user probably has a similar experience to share.
Although I welcome discussion about Kubernetes and other orchestration tools, I'm looking for something a little more lightweight.
Looking forward to a good discussion, some of the best threads on HN are those with founders swapping knowledge.
Thanks in advance.
I am looking for war stories from simple deployments that scaled to large businesses. Does anyone on HN have any stories of running a large business solo, or with just a few engineers?
I just love those stories of "We scaled to $500k+ in Revenue all running on one phsyical linux box with mySQL and Apache."
Perhaps the 2020 version would read something like: "We scaled to massive amounts of users running everything as a static website with FaaS lambda calls wired up to PostgREST".
Thanks in advance. First HN Question so sorry if I am breaking some unwritten rules.
EDIT: Typo