Technically this is also possible with for loops, like with OpenMP
Technically this is also possible with for loops, like with OpenMP
Compiler optimizations like function inlining are your friend.
Especially in functional languages, there are a lot of tricks a compiler can use to output more efficient code due to not needing to worry about possible side effects.
Also, in a lot of cases the performance difference does not matter.
Depends on how deep down the rabbit hole you want to go :p
Dogmatic statements like this lead to bad, messy code. I’m a firm believer that you should use whatever style fits the problem most.
Although I agree most code would be better if people followed this dogma, sometimes mutability is just more clean/idiomatic/efficient/…
In functional programming, everything is seen as a mathematical function, which means for a given input there is a given output and there can be no side effects. Changing a variable’s value is considered a side effect and is thus not possible in pure functional programming. To work around this, you typically see a lot of recursive and higher order functions.
Declaring all values as const values is something you would do if you’re a diehard functional programmer, as you won’t mutate any values anyway.
Tar Xtract Ze Vucking File
Edit: apparently someone else already mentioned this, oops
Is there any reason why you didn’t just switch the keyboard layout to US if that’s what you’re used to?
I switched to US at some point because many if the keys for programming were just so much easier to access. If I have to use a pc for any decent amount of time, I just switch the OS layout to US now regardless of the layout that’s printed on the keyboard.
Nope, IaaS. With a VPS you are in charge of everything except for the hardware. PaaS the only thing you’re in charge of is your code.
Dot in dutch is punt
Does commercial mean closed source in this context though? It seems like a waste of resources not to provide the source code for an rtos.
Considering how small in size they tend to be + with their power/computational constraints I can’t imagine they have very effective DRM in place so it shouldn’t take that much to reverse engineer.
May as well just provide the source under some very restrictive license.
Don’t you have the code in most cases? Like with e.g. freeRTOS? That’s fully open source
Isn’t that still the same exact process as a normal compiler except in the case of embedded systems your OS is like a couple kilobytes large and just compiled along with the rest of your code?
As in, are those “crazy optimizations” not just standard compiler techniques, except applied to the entire OS+applications?
Regarding your note on quantum secure cryptography: Yes it exists and is a thing, but a lot of the internet still relies on cryptography that is not quantum secure, e.g. TLS for starters.
“Your secret is safe with my indifference” - Taliesin Jaffe
Oh yeah, it’s actually pretty extensive and expressive. If you’re interested in this sort of stuff it’s worth checking out the IR language reference a bit. Apparently you can even specify the specific garbage collection strategy on a per-function basis if you want to. They do however specify the following: “Note that LLVM itself does not contain a garbage collector, this functionality is restricted to generating machine code which can interoperate with a collector provided externally” (source: https://llvm.org/docs/LangRef.html#garbage-collector-strategy-names )
If you’re interested in this stuff it’s definitely fun to work through a part of that language reference document. It’s pretty approachable. After going through the first few chapters I had some fun writing some IR manually for some toy programs.
LLVM is designed in a very modular way and the LLVM IR allows you to specify e.g. if memory management should be manual/garbage collected.
You could make a frontend (design a language) for LLVM that exposes those options through some compiler directives.
In general I’d heavily recommend looking into LLVM’s documentation.
Reminds me of the old joke that monads are easy to understand, you just have to realize monads are just monoids in the class of endofunctors.
Couldn’t you do something like JWT except allow the client to slap on their credentials to any initial request?
From the backend side that means that if there is no valid token, you can check the request body for the credentials. If they’re not there, then it’s an unauthorized request.
You’re eliminating a singular request in a long period of time at the cost of adding complexity to both client and backend but if the customer wants to be silly that’s their fault
JS was a mistake.
While you do have a fair point, I was referring to the case where one is basically implementing a map operation as a for loop.