> Was it Einstein who said, "Any scientist who cannot explain what they are doing to an eight year old is a charlatan"?
No. It's commonly attributed to Einstein, but of course he didn't say that, because he knew better. There are things you just can't explain at a certain level. For example Feynman couldn't explain to a layman how magnets work, but explained why not: https://www.youtube.com/watch?v=wMFPe-DwULM.
Yeah, I saw that Feynman video too when it was posted to HN a few days ago.
But despite the claims to the contrary, he did explain magnetism to a layman, at a high level. Feynman's issue, seemingly a pet peeve of his by his tone, was the answering of a physics question asked by a layman that starts with 'Why'.
His long response actually covered just fine all the major points you'd expect in the answer, namely electromagnetic fields, alignments of the electron spins in the materials, etc.
His problem is that 'why' questions by non-experts are hard to answer because he doesn't know how deep to go before knowing he's satisfactorily answered with sufficient clarity and minimal hand-waving. And he did well in starting high and going a few levels deeper. Clearly he stopped before getting to a level requiring deep knowledge of physics.
The trouble with fundamental forces is that they're fundamental. Trying to explain them in terms of something else is ultimately misleading (even though this can work with literally almost everything else). So I'm sympathetic to that specific question.
You can get quite a distance if you start with electostatics, like charges repel, opposite charges attract, which can be demonstrated with simple apparatus.
That can get you a fair distance in describing gravity (it's like the attract example, but much weaker) and the strong nuclear force (very strong attraction, but very very short range). That can then allow you to describe atoms, electrons and the protons in the nucleus attract each other, but [waves hands] not to the point they collapse into each other. And the nucleus, strong force generally overpowers the repulsion of protons.
And at this point a quantum mechanics for poets for chemistry works fairly well, it's not like any of that stuff makes intuitive sense anyway.
This doesn't contradict Feynman, of course, I can't say that I ever really understood magnetism, and I've also left the weak force out, but as I understand it you can wave your hands there and say it mediates beta decay. But the above does help you describe and understand the fundamentals of a lot of the universe, and much of what's important to you. Add Newtonian mechanics, which is pretty intuitive since we live in that world, and you're in fairly good shape. For that matter, a fair amount of special relativity can be easily added, the very basics of motion and the new definitions needed.
You can get quite a distance if you start with electostatics, like charges repel, opposite charges attract, which can be demonstrated with simple apparatus.
That really only answers the "what", though; it doesn't touch on the "why".
We can describe the attraction and repulsion, throw a precise mathematical framework around it, describe how two or more things might just be different aspects of (or viewpoints on) the same underlying phenomenon, even put names and behaviours to the particle-like things involved, but when it comes right down to it, nobody knows why any of it should result in forces that tend to move physical things closer together or further apart.
And that's okay, but it does mean drawing a line somewhere and saying "this is fundamental (at least for now)".
No the problem for chemistry is that it _doesn't_. You end up getting all these just so stories about electron shielding and d orbitals that have absolutely no basis in reality whatsoever even as an approximation.
And it's safe to say no one really understood magnetism properly before quantum mechanics, qua Feynman.
News articles mentioning the phrase were exactly what Jensen claimed would have appeared if the signs existed, and whose absence he claimed proved the non-existence of these signs.
Fried just took the additional initiative of going directly to the newspaper ads, which are primary sources indicating discrimination, rather than the secondary sources of newspaper articles talking about the discrimination.
Not sure if this way of comparing programming languages (i.e. do A in language X and do B in language Y => Y is not slower than X) makes enough sense to draw conclusions. If you can use clever algorithms, in the majority of cases you'd do so in any language and in the majority of cases C would lead to more performant code than Python. Then again, wheteher this matters in the scope of the actual application is something else.
I suspect his comment meant to imply that a level of skill exists for which a programmer could build an FFT in python, a plain DFT in C, but not a proper FFT in C. That programmer would benefit from using python.
Theoretically this is true, but in practice, those who need to write very efficient code competitively, rarely use naive algorithms. (Pure C/C++ also isn't enough nowadays though, the processor isn't competitive with the GPU in a lot of algorithms, so CUDA/OpenCL needs to be also used in most cases.)
I think the replies to this post are getting confused between the FFT/DFT, which is O(n log n), and the "naive Fourier transform", O(n2).
My experience with numerics in regular python is that they're generally 50-500x slower than the equivalent in C/C++, this just pushes back the point at which the asymptotics take over.
My point is that a good algorithm, a good strategy can give you a several orders of magnitude speedup, more than the speed differences among languages. If a higher level language makes it easier and faster to develop good algorithms, then you should use that. After that, if you have time or really need it, you can re-implement it in hand-coded assembly, or even in hardware. But you generally don't have the time and don't really need it.
Because the FFT in python is almost certainly implemented in C, and probably more cleverly done than a naive FFT that I/you/someone would whip up as part of a C program.
Is this a joke? Something written with the same algorithm in c will be faster than python. Why not use someone elses non naive FFT impl in c then as well?
I think the argument isn't that Python code out performs C code, it's that code written by mediocre Python programmers often outperforms code written by mediocre C programmers. C code is fast enough the mediocre programmers get used to letting the language bail them out. Python programmers know that their language is slow and that they have to work around it.
I've encountered this several times in my own career. A co-worker who writes in C will be implementing a process in parallel with my Python implementation. A week later, my O(N) Python code is outperforming my colleagues O(N^3) C code, since I chose a more complex algorithm which is trickier to get right. The C programmer then re-implements my method in C, which would completely trounce my own code, except I've spent that time leaning on BLAS and LAPACK, speeding up my operations again. The C programmer then starts using fast libraries instead of her own code, again beating my old source, only to find that I've now pushed a good chunk of the processing onto the GPU.
Eventually, I will run out of tricks. The final draft of the C code will trounce the final draft of my Python code. However, during most of the creation process, my Python usually out performs their C. Also, a truly talented C programmer would write my colleague's final draft as her first draft, negating every advantage that I had in the process. However, that's not a situation that I'm likely to run into, because places hiring truly talented programmers aren't likely to be hiring me.
Makes literally no sense. The c developer would simply use the same c/fortran library the python implementation is based on. You are creating a false dichotomy for the sake of it.
The c developer should use the same c/fortran library that the python implementation is based on. A good C developer would use that library. In my experience, mediocre C developers will not use that library and will implement their own, naive version.
Well suicide can either be a cry for help or a decision that life isn't worth living. Maybe more men decide the latter.
I also think the financial/work aspect is being overlooked. At around 40 a man will be most likely to have kids/mortgage/wife to support.
For him, it looks like another 25 years of the same 9 to 5 drudgery. This is probably made worse by the face that his spouse is at home or working part time looking after the kids and is pretty much put to pasture, the hard part of her life is over, alot of women don't pick up their career after having kids and will rely on their spouse for support.
No. It's commonly attributed to Einstein, but of course he didn't say that, because he knew better. There are things you just can't explain at a certain level. For example Feynman couldn't explain to a layman how magnets work, but explained why not: https://www.youtube.com/watch?v=wMFPe-DwULM.