186 karma · joined September 6, 2018
Once there is enough pain, none of the talking points matter for any language. They don't and can't die but linger. I fear that time for C family might come in a decade which would be a shame given how magical Cpp compilers are, all that effort folks pouring in.
[0]: https://github.com/scipy/scipy/issues/18566 [1]: https://github.com/ilayn/semicolon-lapack
It is mostly out of habit. These days there are no differences between languages. Very often they compile to the same machine code. Fortran array syntax is light years ahead of what C++ offers (yes including std::linalg and that's why numpy, julia, matlab picked it up) but lacks everything else as a language including often claimed portability.
From version 1.19 of SciPy there will be no need for fortran compilers (because we translated everything to C https://github.com/scipy/scipy/issues/18566) and then all becomes much easier in all platforms due to the large availability of C compilers in all platforms. Together with the Stable API developments in CPython the wheel clash issues "hopefully" will decrease gradually.
This is a plausible assumption to make but unfortunately it is not true at large. Especially when the traditional sizes are exceeded say n >= 2000 certain operations such as LU can be improved in terms of performance with C-major arrays. However the correct statement is you lose at some place you win at other. There are certainly linalg operations that F-major can give you more performance. However it is also true for C-major layout.
In your example matrix vector product or any BLAS2 or BLAS3 level operations you can also swap out the for loop order to convert things around (row*col buffer multiplication vs sum of weighted column sum interpretation). In particular matrix norm operations are the only exceptions (abs column sum, row abs sum etc.) that certain norms prefer certain orders. In fact if you go into the Goto method deep enough you'll see that internal order is a bit like Morton ordering to fit things into L1 Cache.
The reason why column-major is preferred is historical and requires more surgery to get it running with C-major ordering. Trust me I tried but it's too much work to gain not so much. Maybe someday when I retire I can attempt it. Hence I kept it column major in my retranslation of LAPACK https://github.com/ilayn/semicolon-lapack
Instead I implemented a "high"-performance AVX2 matrix transpose operation so that swapping the memory layout is trivial compared to the linalg cost.
Another note to remember that John Backus, the team lead of the Fortran gang, was in the Algol committee. So these folks knew what they are talking about and spoke to each other periodically. Even John Backus said, Fortran is not the final interface that we should have.
It keeps spinning in the programming circles half-quoted versions of half-baked quotes from original sources. These pioneers, even when they disagreed, had pretty precise arguments and very rarely feeling the feelies.
TimescaleDB is perfect if you also have relational data that you need to join with field data to the point that there no pros of using anything else for this use case, say you have 100000+ sensors and you need to group them by the customer site relations while aggregating per day statistics.
This does not mean Fortran is bad (obligatory disclaimer for Fortran fans).
I still remember their animations about car differential which were magical.
requiring n time the word Greek until you are satisfied is a you problem. I don't care enough about you to attack you personally. If you read more on these you would not get stuck in these accounting problems.
For those who are not related to the field, what the reported subject here (and destabilizing effect of the negative feedback) is fixed by Black to remedy amp ringing, led to Bell labs, develop frequency domain techniques later analyzed by Nyquist and Bode (also seniors in Bell labs) then made western control theory kick off (then united with the Soviet techniques) and today everybody losing their mind about boosters coming back to base with SpaceX (which was already done a few times historically decades ago).
- First make sure that the frequency is not dancing around. If it is then probably it is one of those things your brain making up then it is relatively easier to fool yourself back again. Check it when it happens https://audionotch.com/app/tune/ (disclaimer I am not related to website, just first google result).
- If it is constant then try to counter it with noise especially when trying to sleep. Just give yourself one of those nice YouTube colored-noise videos like this one https://www.youtube.com/watch?v=8SHf6wmX5MU
- Avoid in-ears altogether, especially the bass-boost ones make sure that it does not fit airtight. More bass does not mean you pulsate your ear-canal with an airgun. If you want proper bass sound, invest in hi-fi stereo and listen to it in a good room.
- As mentioned, distract yourself. Even if it is chronic and actually has a pathological cause, the brain finds a way to cope with it, like the glasses on your nose not noticing the weight.
Why don't you make up your own bullshit words instead of randomly picking stuff from other places? That's not even multiplexing.