Used to love Python. Now, unless it has type hints, not so much. Used to hate static types, or at least I thought I did. Really, I just hated C++ and Java. Go is Bae, trying to learn some rust.
Computers are rigid. The more rigid the lang you talk to them, the less you get bitten.
Untyped python, bash, javascript, just not worth it imho.
FYI: Perl has moderately strong typing, as well as forward references, an excellent debugger and probably the most powerful web framework, mojolicious.
If you're unhappy with how loose python and js are, you might find happiness with Perl.
TL,DR: Try F# or other "impure" ML languages if you want the security of types but you don't like actually typing the types.
I also used to love js / php because because I thought types make the code unnecessarily verbose. After some pet projects with a strongly typed lang (c#) I realized the peace of mind that using types gives. But I still maintain my opinion that types make the code too verbose.
But then I saw the "light" that is F# and I'm here to preach:
F# has types BUT you don't need to type them (most of the time) because it has type inference.
F# can be used in the .net ecosystem and most of the time it can replace C#.
F# can be compiled to js (although the interop is a bit messy).
F# is a better typed javascript than typescript.
F# is predominantly functional but you can also write code in the non-functional(ha!) style of your choice.
F# discourages you from coding mutable spaghetti
F# has decent tooling: VSCode + Ionide + dotnet + paket
F# has pipes |>
The bad parts:
F# is not a hard-core functional language like Haskell, but for me this is a positive
F# is a functional language which requires a change about how you think about a program.
F# doesn't have a huge community
F# doesn't give you a lot of job prospects
F# doesn't have a lot of 3rd party libraries (but you can use c# libraries in .net or js libraries with fable. You can also mostly port libraries from other functional languages)
F# requires you to think about the order of your declaration. Cyclic dependencies are harder to accomplish although this might be a good thing.
For the good parts, I would add the effortless type declarations to overcome “Primitive Obsession”, the immensely useful pattern matching to ensure you cover all edge cases and what I really found to be the killer feature: Type Providers to enable typed data wrangling in just a few lines.
That's what I meant with "unless it has type hints" but thanks for the link :)
Blue ocean python I pretty much start with hints and interface definitions, the logic follows. Helps me through writing the logic when I have autocompletion of methods.
I like Ruby for prototyping and quick throwaway scrips. I can write code really fast in it. Still my favorite language. But reading unfamiliar code or cooperating with others is hard. This is a good step forward in that direction.
Computers are rigid. The more rigid the lang you talk to them, the less you get bitten.
Untyped python, bash, javascript, just not worth it imho.