There is only space for two languages at most in the world: the compiled one, and the interpreted one.
Those two are languages not by any means perfect from a language design point of view, and there are likely already better alternatives, they are only chosen due to a pragmatic tradeoff between ecosystem and familiarity.
Ciro predicts that Python will become like Fortran in the future: a legacy hated by most who have moved to JavaScript long ago (which is slightly inferior, but too similar, and with too much web dominance to be replaced), but with too much dominance in certain applications like machine learning to be worth replacing, like Fortran dominates certain HPC applications. We'll see. Maybe non performance critical scripting languages are easier to replace.
C++ however is decent, and is evolving in very good directions in the 2010's, and will remain relevant in the foreseeable future.
Bash can also be used when you're lazy. But if the project goes on, you will sooner or later regret that choice.
The language syntax in itself does not matter. All that matters is how many useful libraries and tooling it has.
This is how other languages compare:
- C: but cannot make a large codebase DRY without insanity
- Ruby: the exact same as Python, and only strong in one domain: web development, while Python rules everything else, and is not bad on web either. So just kill Ruby, please.
- JavaScript: it is totally fine if Node.js destroys Python and becomes the ONE scripting language to rule them all since Python and JavaScript are almost equally crappy (although JavaScript is a bit more of course).One thing must be said tough:
someobject.not_defined_propertysilently returningundefinedrather than blowing up is bullshit. - Go: likely a good replacement for Python. If the ecosystem gets there, will gladly use it more.
- Java: good language, but has an ugly enterprisey ecosystem, Oracle has made/kept the development process too closed, and API patenting madness on Android just kills if off completely
- Haskell: many have tried to learn some functional stuff, but too hard. Sounds really cool though.
- Rust: sounds cool, you will gladly replace C and C++ with it if the ecosystem ramps up.
- C: Microsoft is evil
- Tcl, Perl: Python killed them way back and is less insane
- R, GNU Octave and any other "numerical computing language": all of this is a waste of society's time as explained at: Section "Numerical computing language"
- Swift: Ciro would rather stay away from Apple dominated projects if possible since they sell a closed source operating system
Overview of Shimano brands 2018: www.evanscycles.com/coffeestop/advice/the-complete-guide-to-shimanos-mountain-bike-groupsets-and-their-hierarchy
- Shimano Altus RD-M310: almost cheapest MTB
- Shimano Acera RD-M360: second cheapest MTB
- Shimano Alivio RD-M410: third cheapest MTB
- Shimano Claris: entry 8-speed road bike www.youtube.com/watch?v=6dFQDDg6Wt0
- Shimano Sora: 9-speed road bike bike.shimano.com/en-EU/product/component/sora-r3000.html
- Shimano Tiagra: 10-speed road bike bike.shimano.com/en-EU/product/component/tiagra-4700.html
- Shimano Deore: non-shitty MTB, in increasing performance: M610, M6000, M7000, ...)
- Shimano Tourney; commuter, likely the shittiest of all lines: bike.shimano.com/en-EU/product/component/tourney.html
Explains how it is possible that everyone observes the same speed of light, even if they are moving towards or opposite to the light!!!
This was first best observed by the Michelson-Morley experiment, which uses the movement of the Earth at different times of the year to try and detect differences in the speed of light.
This leads leads to the following conclusions:
- to length contraction and time dilation
- the speed of light is the maximum speed anything can reach
The "special" in the name refers to the fact that it is a superset of general relativity, which also explains gravity in a single framework.
Since time and space get all messed up together, you have to be very careful to understand what it means to say "I observed this to happen over there at that time", otherwise you will go crazy. A good way to think about is this:
- use Einstein synchronization to setup a bunch of clocks for every position in your frame of reference
- on every point of space, you put a little detector which records events and the time of the event
- each detector can only detect events locally, i.e. events that happen very close to the detector
- then, after the event, the detectors can send a signal to you, who is sitting at the origin, telling you what they detected
Basically the opposite of reductionism.
Figure "xkcd 435: Fields arranged by purity" must again be cited.
As an overkill example, the happy family are subquotients of the monster group, but the monster group is simple.
The first really good quantum mechanics theory made compatible with special relativity was the Dirac equation.
And then came quantum electrodynamics to improve it: Dirac equation vs quantum electrodynamics.
TODO: does it use full blown QED, or just something intermediate?
www.youtube.com/watch?v=NtnsHtYYKf0 "Mercury and Relativity - Periodic Table of Videos" by Periodic Videos (2013). Doesn't give the key juicy details/intuition. Also mentioned on Wikipedia: en.wikipedia.org/wiki/Relativistic_quantum_chemistry#Mercury
Man-in-the-middle attack
quantumcomputing.stackexchange.com/questions/142/advantage-of-quantum-key-distribution-over-post-quantum-cryptography/25727#25727 Advantage of quantum key distribution over post-quantum cryptography has Ciro Santilli's comparison to classical encryption.
Long story short:
- QKD allows you to generate shared keys without public-key cryptography. You can then use thses shared keys
- QKD requires authentication on a classical channel, exactly like a classical public-key cryptography forward secrecy would. The simplest way to do this is a with a pre-shared key, just like in classical public key cryptography. If that key is compromised at any point, your future messages can get man-in-the-middle'd, exactly like in classical cryptography.
QKD uses quantum mechanics stuff to allow sharing unsnoopable keys: you can detect any snooping and abort communication. Unsnoopability is guaranteed by the known laws of physics, up only to engineering imperfections.
Furthermore, it allows this key distribution without having to physically take a box by car somewhere: once the channel is established, e.g. optical fiber, you can just keep generating perfect keys from it. Otherwise it would be pointless, as you could just drive your one-time pad key every time.
However, the keys likely have a limited rate of generation, so you can't just one-time pad the entire message, except for small text messages. What you would then do is to use the shared key with symmetric encryption.
Therefore, this setup usually ultimately relies on the idea that we believe that symmetric encryption is safer than , even though there aren't mathematical safety proofs of either as of 2020.
Unlisted articles are being shown, click here to show only listed articles.