[-] FizzyOrange@programming.dev 3 points 1 week ago

You're still missing the point. We all understand that definition. We're just saying that it is incorrect use of the word "concurrent". Does that make sense? The word "concurrent" means things happening at the same time. It's stupid for programmers to redefine it to mean things not happening at the same time.

[-] FizzyOrange@programming.dev 3 points 2 weeks ago

Yeah it's definitely a vast improvement on previous attempts (Poetry et al).

I dunno if it can be called solved until it's officially sanctioned and installed by default though, and I don't see that happening for a very long time.

[-] FizzyOrange@programming.dev 3 points 3 weeks ago

I seriously wonder what kind of circumstances lead someone to be this irrationally devoted to such a flawed and outclassed language. Probably best if I just block you though...

[-] FizzyOrange@programming.dev 3 points 3 weeks ago

It's an example to demonstrate that linters cannot reliably detect variable name typos - you need static types. None of the stuff you mentioned is relevant.

The typo in your example is also undetectable by linters. I think you're missing the point.

[-] FizzyOrange@programming.dev 3 points 3 weeks ago

What's awful about this example? The only thing I do is access an object member. Does your code not do that??

[-] FizzyOrange@programming.dev 3 points 1 month ago

I would probably recommend not trying to understand the whole field of programming initially. It's huge, you won't understand what the terms mean (e.g. OOP, functional programming, etc.) and it's not very motivational.

Instead I would pick one or two popular languages to learn and actually make something in. The no-brainers are Python and Typescript. They're hugely popular, not difficult, and let you get a lot done.

I think I would consider learning both at the same time. If not, at least don't stick with Python too long. It is immensely popular but also has a lot of brain dead design decisions. Especially a) it's reaaaally slow, you easily get a 50x speed up just by switching language, and b) the "infrastructure" around it - installing Python, adding libraries etc. is completely awful. There are attempts to fix that but they're nascent.

Above all I think a good thing to have is a realistic goal of something to make. For Typescript the obvious thing is a web site. I really like this way of making web sites - you can get started with literally 2 command - but it may be a little too much for a beginner.

For Python I would look into some kind of automation or maybe web scraping thing. It's decent at that.

Or if you have more specific project ideas you could use the most appropriate language for those, e.g. a microcontroller project you probably want to start with Arduino (C++). C++ was my first language (apart from QBasic which doesn't count). Probably not for everyone though. I was very young and had free time.

[-] FizzyOrange@programming.dev 3 points 1 month ago

The only Git GUIs that I've ever liked:

  • GitX, and its many forks. Mac only though.
  • Git Extensions. Terrible name, but this is actually a standalone Git GUI and is surprisingly decent. I think it started Windows only but maybe there's a Linux port now.
  • VSCode's "Git Graph" extension. It's not quite as fully featured but it integrates well into VSCode and is pretty nicely designed.

I've tried almost all the others (SmartGit, Sublime Merge, GitKraken, etc.), and didn't really like how they worked.

[-] FizzyOrange@programming.dev 3 points 1 month ago

Ooo I've not seen this before. Looks interesting.

[-] FizzyOrange@programming.dev 3 points 1 month ago
  1. If your alternative is C++ then it removes the enormous burden of manually tracking lifetimes and doing manual memory management. C++ does have RAII which helps with that enormously but even then there are a gazillion footguns that Rust just doesn't have - especially with the newer stuff like rvalue references, std::move, coroutines etc. It also saves you from C++'s dreaded undefined behaviour which is everywhere.

  2. It has a very strong (and nicely designed) type system which gives an "if it compiles it works" kind of feel, similar to FP languages like Haskell (so they say anyway; I've not used it enough to know). The borrow checker strongly pushes you to write code in a style that somehow leads to less buggy code. More compiler errors, but much less debugging and fixing bugs.

  3. The libraries and APIs are generally very well designed and nice to use. If you've ever used Dart or Go think how nice the standard library is compared to JavaScript or PHP. It took C++ like 2 decades to get string::starts_with but Rust started with it (and much more!).

  4. Fast by default.

  5. Modern tooling. No project setup hassle.

  6. It's a value based language, not reference based. References are explicit unlike JavaScript, Java, C#, etc. This is much nicer and makes things like e.g. copying values a lot easier. JavaScript's answer for ages was "serialise to JSON and back" which is crazy.

Downsides:

  1. Slow compilation sometimes. I'd say it's on par with C++ these days.

  2. Async Rust is kind of a mess. They shipped an MVP and it's still kind of hard to use and has unexpected footguns, which is a shame because sync Rust avoids footguns so well. Avoid async Rust if you can. Unfortunately sometimes you can't.

  3. Interop with C++ is somewhat painful because Rust doesn't have move constructors.

Great language overall. Probably the best at the moment.

[-] FizzyOrange@programming.dev 2 points 1 month ago

It really depends on the domain. E.g. I wrote a parser and copilot was tremendously useful, presumably because there are a gazillion examples on the internet.

Another case where it saved me literally hours was spawning a subprocess in C++ and capturing stdin/out. It didn't get it 100% right but it saved me so much time looking up how to do it and the names of functions etc.

Today I'm trying to write a custom image format, and it is pretty useless for that task, presumably because nobody else has done it before.

[-] FizzyOrange@programming.dev 2 points 3 months ago

The only benefit Octave has over MATLAB is that it's free. Which is something I guess, but in practice it is MATLAB without the benefits of MATLAB.

It's plotting functionality sucks as much as anything else, it has fairly good toolkit support but not remotely like MATLAB, and it still has the mediocre MATLAB language. Worse - with custom incompatible extensions!

[-] FizzyOrange@programming.dev 2 points 3 months ago

threading bugs are sometimes hard to catch

Putting it mildly! Threading bugs are probably the worst class of bugs to debug

Definitely debatable if this is worth the risk of impossible bugs. Python is very slow, and multi threading isn't going to change that. 4x extremely slow is still extremely slow. If you care remotely about performance you need to use a different language anyway.

view more: ‹ prev next ›

FizzyOrange

joined 1 year ago