Hacker Newsnew | past | comments | ask | show | jobs | submit | gozzoo's commentslogin

If i remember correctly Feynman said in one of his lectures that we know the mass of the electron with much greater precision than the proton, which may mean that it electrons are easier to study. I don't know if this is still true though.


Oh yes and so much so! Electrons are point-like (not composite like a proton) and interact only electroweakly (not strongly).


> point-like

Oh, your going to love this theory.

https://fondationlouisdebroglie.org/AFLB-222/MARK.TEX2.pdf

In summary, There is a way to model electrons as a twisted self enclosed em field.

A decent digest summary of the paper is this video

https://www.youtube.com/watch?v=hYyrgDEJLOA (Huygens Optics: Are Electrons made of Light? )


And neutrons are neither.


I have quetion - slightly off topic, but related. I was wandering why is pyhton interpreter so much slower than V8 javascript interpreter when both javascript and python are dynamic interpreted languages.


I know of a couple reasons offhand.

JavaScript is JIT’ed where CPython is not. Pypy has JIT and is faster, but I think is incompatible with C extensions.

I think Pythons threading model also adds complexity to optimizing where JavaScripts single thread is easier to optimize.

I would also say there’s generally less impetus to optimize CPython. At least until WASM, JavaScript was sort of stuck with the performance the interpreter had. Python had more off-ramps. You could use pypy for more pure Python stuff, or offload computationally heavy stuff to a C extension.

I think there are some language differences that make JavaScript easier to optimize, but I’m not super qualified to speak on that.


> I would also say there’s generally less impetus to optimize CPython

Nonetheless, Microsoft employed a whole "Faster CPython" team for 4 years - they targeted a 5x speedup but could only achieve ~1.5x. Why couldn't they make a significantly faster Python implementation, especially given that PyPy exists and proves it's possible?


Pypy has much slower C interop than CPython, which I believe is part of the tradeoff. Eg data analysis pipelines are probably still faster in numpy on CPython than pypy.

Not an expert here, but my understanding is that Python is dynamic to the point that optimizing is hard. Like allowing one namespace to modify another; last I used it, the Stackdriver logging adapter for Python would overwrite the stdlib logging library. You import stackdriver, and it changes logging to send logs to stackdriver.

All package level names (functions and variables) are effectively global, mutable variables.

I suspect a dramatically faster Python would involve disabling some of the more unhinged mutability. Eg package functions and variables cannot be mutated, only wrapped into a new variable.


See Smalltalk, Self and Common Lisp, and you will find languages that are even more dynamic than Python, and are in the genesis of high performance JIT research.



> why is pyhton interpreter so much slower than V8 javascript interpreter when both javascript and python are dynamic interpreted languages.

Because JS’s centrality to the web and V8’s speed’s centrality to Google’s push to avoid other platform owners controlling the web via platform-default browsers meant virtually unlimited resources were spent in optimizing V8 at a time when the JS language itself was basically static; Python has never had the same level of investment and has always spent some of its smaller resources on advancing the language rather than optimizing the implementation.

Also, because the JS legacy that needed to be supported through that is pure JS, whereas with CPython there is also a considerable ecosystem of code that deeply integrates with Python from the outside that must still be supported, and the interface used by that code limits the optimizations that can be applied. Faster Python interpreters exist that don’t support that external ecosystem, but they are less used because that ecosystem is a big part of Python’s value proposition.


I can think of two possible reasons:

First is the Google's manpower. Google somehow succeeds in writing fast software. Most Google products I use are fast in contrast to the rest of the ecosystem. It's possible that Google simply did a better job.

The second is CPython legacy. There are faster implementations of Python that completely implement the API (PyPy comes to mind), but there's a huge ecosystem of C extensions written with CPython bindings, which make it virtually impossible to break compatibility. It is possible that this legacy prevents many possible optimizations. On the other hand, V8 only needs to keep compatibility on code-level, which allows them to practically switch out the whole inside in incremental search for a faster version.

I might be wrong, so take what I said with a grain of salt.


Don't forget that there was a Google attempt at making a faster Python - Unladen Swallow. It got lots of PR but never merged with mainline CPython (wikipedia says a dev branch was released).

see https://en.wikipedia.org/wiki/Unladen_Swallow


Unladen Swallow got a lot of hype but was only a very small project. IIRC the only people working on it were two interns.

V8 was a much higher priority - Google hired many of the world’s best VM engineers to develop it.


Some of them like Lars Bak, have background up to Self VM, which is a language much more dynamic than Python.

Anything goes regarding changing object shapes, it is one step further than Smalltalk in language plasticity.


keep in mind that, apart from the money throw at js runtime interpreters by google and others, there is also the fact that python - as a language - is way more "dynamic" than javascript.

Even "simple" stuff like field access in python may refer to multiple dynamically-mapped method resolution.

Also, the ffi-bindings of python, while offering a way to extend it with libraries written in c/c++/fortran/... , limit how freely the internals can be changed (see the bug-by-bug compatibility work done for example by pypy, just to name an example, with some constraint that limit some optimizations)


> python - as a language - is way more "dynamic" than javascript

Very true, but IMO the existence of PyPy proves that this doesn't necessarily prevent a fast implementation. I think the reason for CPython's poor performance must be your other point:

> the ffi-bindings of python [...] limit how freely the internals can be changed


> Very true, but IMO the existence of PyPy proves that this doesn't necessarily prevent a fast implementation.

PyPy pays for this by having slower C interaction.


See Smalltalk, Self and Common Lisp for highly dynamic languages with good enough JIT, the first two having their research contributed to Hotspot and V8.


genuinely curious, doesn't JS's proxy objects and prototype-based MRO have a similar performance impact in theory?


Yeah, I don't see how Python is fundamentally different from JavaScript as far as dynamicism goes. Sure Python has operator overloading, but JavaScript would implement those as regular methods. Pyrhon's init & new aren't any more convoluted than JavaScript's constructors. Python may support multiple inheritance but method and attribute resolution just uses the MRO which is no different than JavaScript's prototype chain.


Urban myths.

Most people that parrot repeat Python dynamism as root cause never used Smalltalk, Self or Common Lisp, or even PyPy for that matter.


Python is much, much more dynamic. E.g. look at how something as basic as accessing an attribute on an object works: https://docs.python.org/3/howto/descriptor.html

Also Python has a de facto stable(ish) C ABI for extensions that is 1) heavily used by popular libraries, and 2) makes life more difficult for the JIT because the native code has all the same expressive power wrt Python objects, but JIT can't do code analysis to ensure that it doesn't use it.


Even though Javascript is quite dynamic, Python is much worse. Basically everything involves a runtime look-up. It's pretty much the language you'd design if you were trying to make it as slow as possible.


Just like Smalltalk and Self.

Which can change on the fly anything that is currently executing in the image.

Also after breaking into the debugger, the world can be totally different after resuming execution at the trap location.

Then there are nice primitives like a becomes: b. where all occurrences of a get swapped with b.


aren't such places too busy for meditation?


For quite meditation types, perhaps, but mindfulness meditation, for example, doesn't require stripping away nuisance, but acknowledging it while keeping a mindful state instead.


Yes, but I suppose there shoudln't bee too many things happening in order to acknolege them, preferebly only the things in you mind.

I've been trying somithing similar, but more active - beach walks in the in the early eavning. there are still people there but not too many. my goal was to acknoledge everything and enjoy the moment. i was not quite successfull though, it was still too much for me to acheive tranquility :)


That's so cool. Can you share more about this. What program and keyboard did you use? Did you proceed with more serious learning?


I used an Akai LPK25 with my iPhone (using the Camera Connection Kit and a combined usb hub/dac) and an app called Simply Piano. They make a wireless version of that now that would simplify the setup a great deal. It is a mini keyboard and the keys are quite small, but in my experience it was fine for the beginner stuff (and the keyboard is useful in general later). As I said before, I stuck with this until the app started using keys outside the range I had.

Now, as for "did I proceed with more serious learning" - I alternate though a ton of hobbies. So I moved on after that, though still go back to it from time to time. But I also have other musical interests and it was helpful to those as well.

Also did a lot of music on the commute on my iPhone with Korg Gadget (and Caustic before that). Sometimes with a keyboard, sometimes without.


I have asked ChatGPT recently how to de-optimize my life. It seems I'm not the only one who wants go back to the old ways of doing things :)


I’m pretty sure step one to going back to “the old way” is not to ask ChatGPT


I maintain a list of things I have done here: https://nicolasbouliane.com/blog/silence


I love the design and content. Keep writing Nicolas


The GP not de-optimizing, just simplying life which is always a good thing.


from the comments:

> Definitely every one of these is sluggish at best on a very modern machine but they are also full of UI annoyances.


The constant scrolling is very distracting. I couldn't follow up


Thanks for the feedback!


So, case by case then?


What about the so called NPUs which are present in some modern microcontroller chips?


Exactly the same thing with Bulgarian voices.


It should work well for the logged in voices here: https://elevenlabs.io/app/voice-library?language=ro

We are in the process of updated the homepage voices for the new languages


It does, indeed. Thanks for looking into it.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: