philm

joined 1 year ago
[–] philm 4 points 1 year ago (40 children)

And we're about to enter the fourth rainbow dimension in the next comment...

[–] philm 9 points 1 year ago* (last edited 1 year ago)

Until the competition isn't as shitty and doubles the salary ¯\_(ツ)_/¯

[–] philm 4 points 1 year ago (42 children)

We're in the third rainbow, keep building more stripes lol

[–] philm 1 points 1 year ago

True, Python has a very big userbase and a lot of cool libraries and is nice to quickly hack something together.

Though the title of the post is

If you had to choose one programming language that you had to use for the rest of your life, what would it be?

So TMU I want to predict the future in a way that it positively affects me, and find a language that fulfills this role best (throughout the stack, so that I'm not limited). And honestly I wouldn't want to touch Python with a long stick, if the project is moderately complex (and isn't easily off-loadable to native libraries that Python builds upon) and say > 5000 LOC, the super dynamic nature of python is a curse in this regard.

[–] philm 4 points 1 year ago (1 children)

Zig > Rust because actually writing safe Rust code

Start thinking more functional, I rarely have issues with the borrow-checker, or even have to write unsafe. But it obviously depends on the context, when the issue at hand really requires a lot of interior mutability or unsafe can be pain.

I'm also super fast nowadays with Rust, probably faster than with any other language (thanks to great tooling?).

[–] philm 2 points 1 year ago (2 children)

Behold, Rust is blazingly fast in approaching the most popular language :)

Also, in comparison to Python you can do pretty much everything throughout the stack, which would be the reason I would go for Rust (not mentioning all the other niceties it has to offer).

Also learning Rust nowadays is much more approachable compared to say 7+ years back (ecosystem got way better)

[–] philm 1 points 1 year ago

Depends on what trait bound error messages you have had yet, I had 1000 lines long already, where it's not obvious at all what is meant (and is often a very simple fix). But I'm sure this will get better over time, there's already a bigger ongoing redesign of the type system solver, so maybe it will be integrated into stable rust soon.

[–] philm 5 points 1 year ago* (last edited 1 year ago) (16 children)

but effectively it's bash, I think /bin/sh is a symlink to bash on every system I know of...

Edit: I feel corrected, thanks for the information, all the systems I used, had a symlink to bash. Also it was not intended to recommend using bash functionality when having a shebang !#/bin/sh. As someone other pointed out, recommendation would be #!/usr/bin/env bash, or !#/bin/sh if you know that you're not using bash specific functionality.

[–] philm 3 points 1 year ago

Well I was spending too much time with configuration, and (this is the main reason I guess) configuration was very often broken, because plugins have changed too often, so I was continuously fixing the plugins, which was time-consuming and annoying. To be fair that was when lua support slowly stabilized, I think the situation got a little bit better, but even more so for helix (I'm using helix now for 2 years I think).

And also helix is fast, very fast (this was also a reason: instant feedback), you really feel, that everything there is done in the core implementation (no plugin system yet unfortunately, but I have almost everything I need currently with helix, unlimited undo + persistent session would be cool, but otherwise I'm happy).

Also after using it a little bit more, the kakoune inspired visual/selection first makes more sense IMO, it's feels more intuitive ("darn, I miscalculated 3fs, so I'll just press v and go to the next s manually", or multiple cursors as selections, you see exactly what you're doing, no cgn or stuff like that)

[–] philm 3 points 1 year ago (2 children)

Funny, I switched from neovim (after a decade of use) to helix...

[–] philm 5 points 1 year ago

People use the most convenient way to collaborate, and that's for me currently Github. Really hope, some day a better alternative with ForgeFed becomes reality.

[–] philm 3 points 1 year ago

Yep this sums up my experience quite well too.

I want to emphasize two things here:

  • Learn reading code (by reading code...) of high quality open source projects. It helps getting new concepts and actual creative coding patterns for concrete problems (unlike learning all these "design patterns" in books that IMHO are often just boilerplate generation (hard take I know...)).
  • Start coding (open source) projects, especially challenging ones, and keep pushing your limits, by trying to learn new smart things, how to achieve problem X. I stagnated in my workplace for quite some time, got unhappy (around COVID), scaled down working hours significantly (I have quite a spartan life, so I can fortunately afford it), and am coding a lot more open source since then. I think I almost learned more in the last 2-3 years until at least to the years of university (quite some time ago), maybe even more than in university, and have a lot more fun while coding. I think going in depth with a programming language comes automatically, when the project is fancy enough, I learned a lot of limitations of Rust (and thus basically reached the deepest level of (parts of) the language) while designing smart APIs.
view more: ‹ prev next ›