[-] philm@programming.dev 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@programming.dev 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.
[-] philm@programming.dev 3 points 1 year ago

Not him, but I much more like the type-system of rust (e.g. enums).

[-] philm@programming.dev 3 points 1 year ago

Yes, and Rust with incremental compilation is pretty fast to iterate as well, as long as you don't use massive libraries/build-scripts etc.

[-] philm@programming.dev 3 points 1 year ago

It has Properties (basically syntax sugar...)

[-] philm@programming.dev 3 points 1 year ago

Yeah but why do I have to use an IDE to generate getters and setters in the first place? It just adds up to more mental overhead, because my brain has to process this boilerplate somehow, even if my IDE can generate it (I know it's simple code, but it's even simpler to not have that boilerplate code at all).

[-] philm@programming.dev 3 points 1 year ago

Swift is a nice language though.

But I'm obviously on team Rust^^ for various reasons (one being that you can do the whole stack in Rust (not that it's necessarily the best choice for each level, but it really composes well and with a little bit of trait-magic abstraction in the higher levels it works quite well IME)

For ML, python yes, certainly for high-level stuff at least currently. I wouldn't be so sure in the future about the lower stack though, Rust seems to gain momentum there as well (potentially replacing use-cases where currently python is dominant too).

[-] philm@programming.dev 3 points 1 year ago

Also checkout https://doc.rust-lang.org/rust-by-example/. It often goes a little bit more into actual detailed code examples and often contains stuff that isn't in the book. Basics are well explained in the book though (like lifetimes)

[-] philm@programming.dev 3 points 1 year ago

I probably wouldn't see it that negative TBH. I'm often finding interesting content for whatever problem or interest I'm currently having via google (SO and yes reddit has also quite a lot to offer from the community). I rarely click anything that looks too profit-oriented and fortunately those pages although are on the first page, often aren't the first search result.

SEO got a little bit smarter nowadays, sure it's still a game with the search, but modern SEO is more focused on information and site design (e.g. does it display on mobile correctly?) etc. AFAIK.

[-] philm@programming.dev 3 points 1 year ago

Certainly, it will be really "interesting" how to produce food for ~10 billion people in this uncertain future. But if we finally learn to accept that e.g. cattle isn't the way forward, I think it may be possible with plant-based food. Although something like vertical farming etc. is definitely not viable today, it may be in the future. And at least currently it's totally possible to sustainably produce enough (plant-based) food. I think we'll learn to adapt, that much I trust in agricultural-technological advancement etc. But it will be "meaty" for most people and conflicts will arise (as they already are, see e.g. the conflict in Sudan that is indirectly related to climate change already, similarly as Syria previously (there were quite a few droughts the years before))

[-] philm@programming.dev 3 points 1 year ago* (last edited 1 year ago)

And yet another time I disagree with pretty much all you've said.

you can do about anything with python.

And this thinking is why we have sloppy running UI with 10000 times the power of devices compared to say 20 years ago (where UI was not sloppy...).

Why sacrifice performance, language ergonomics(!) and write something in python for production? I get why (AI) researchers are using it because it's easy to quickly hack stuff together, and prototype stuff.

But as soon as it's something larger with a bigger team you want to have static typing. because working in a team is pain in the ass with a untyped languages á la javascript or python. Also think about something like IDE tooling, it's so much more comfortable to use rust-analyzer (which I think really is generally the best LSP by now), compared to all the python tooling I tried (and that was a lot...).

Dealing with large projects? Go with C/C++ then ;-) I mean it’s all about architecture.

Sorry, but you sound a little bit unexperienced, I really would suggest learning a few more programming languages, it's not "all" about architecture. The languages/paradigms kind of suggest how you should layout your architecture, e.g. OOP by using classes (unfortunately often promoting the IMHO anti-pattern inheritance) , or functional by composing everything together without side-effects in functions.

C++ is absolutely the last language I would choose nowadays, it's an absolute techdebt mess, promoting all kinds of anti patterns IMHO (I've got roughly 10+ years of experience in it, for context). You really have to have a real good discipline and idea how to write programs to make a reasonable choice in architecture. And if you do it's ugly as hell anyways (using iterators for example is pain in the ass although you should do that). I just default to Rust, it's so much more comfortable than C++ in pretty much every aspect, way better designed language...

Really learning new languages also helps thinking about architectures/laying out your code in other languages, and generally helps improving your technical skill.

[-] philm@programming.dev 3 points 1 year ago

Well depending on the "depth" of the stack Rust is probably the first choice by now for new projects in "the" industry (speaking of experience, a lot of companies are evaluating this choice now).

Have you tried Zig instead for low level stuff? It's a little bit simpler AFAIK and probably a good choice when the project doesn't get too big (in which case I would prefer Rust because of its safety guarantees). FFI is always an option...

With JSdoc and IDE support I can still understand why one would choose Javascript instead of Typecsript (having worked with both more extensively) and with e.g. https://github.com/tc39/proposal-type-annotations the boundaries will slowly fade. (mainly to avoid a massive stack of bundling and tooling software)

But I would absolutely avoid either honestly if possible Javascript (or the "static" typing Typescript is adding on top) is still not really comparable to a real strict statically typed language (apart from all the weirdness that consists in either). The way I want to program in it (functional, composable, avoiding this) is unfortunately relatively inefficient... I still don't get why it was "chosen" as the web language...

view more: ‹ prev next ›

philm

joined 1 year ago