News for hackers. Stuff that matters.
Re:How to write better scientific code in Python? by atoav on Saturday February 19, 2022 @01:25PM (#30399234)
I think some degree of abstraction can lead to more clarity – especially if it hides a bunch of crap, that is done over and over again throughout the code. But these abstractions need to be very well chosen, clearly named and unless they really give you more clarity (e.g. by hiding some confusing details to bring the general point you are trying to make across more clearly) I would advice against them.

If your scientific code is meant to be used in actual software or if you want to write tests for the functions used, a little bit more abstraction might be a good idea, however.

Re:How to write better scientific code in Python? by mattkrause on Saturday February 19, 2022 @04:10PM (#30400556)
I wish the article had discussed abstraction more, because it's especially tricky in "scientific" code.

The initial abstraction is actually pretty good, conceptually. You have a function that returns a value, like roll(sides=6), or an object you can manipulate to get a value: Die(sides=6).roll(). You then take those samples, somehow analyze them, and get a result. That code matches people's mental model very well.

If you were going to do this in C++, I'd stop here. Things only get more complicated because Python (Matlab and R too) penalize you heavily for leaving the BLAS sandbox.