What does HackerNews think of cinder?
Cinder is Meta's internal performance-oriented production version of CPython.
It's probably worth noting Meta made their own JIT'd version of CPython just for Instagram/Threads. Maybe mastodon devs can use their interpreter, but Meta's human/compute resources are magnitudes more than mastodon, the lessons from Meta might not be very applicable.
Instagram (and presumably threads) runs on Cinder which is Meta's fork cpython with GIL removed.
Meta has its own production fork of CPython, Cinder:
I think the problem there is even a company like Meta wants to rest on the shoulders of the giant Python community. It makes sense for Meta to try to get parts of Cinder into Python.
https://github.com/facebookincubator/cinder/
Disclaimer: I used to work on it.
Facebook literally maintains a python fork: https://github.com/facebookincubator/cinder
Google invented "NoSQL" before anyone else knew what it was, and all those "cloud" tools they used internally were obviously proprietary (except the ones they open sourced). Ex-Googlers I work with typically had to spend quite a bit of time re-adjusting to the "inferior" tools and processes in other companies.
Microsoft invented their own development ecosystem, and the only reason it's "common" or "standard" in the tech community is because they sell it as a product. This is the same for Apple at least for iOS development, and Amazon for their cloud service offerings.
When companies have millions of dollars to spend on maintaining a custom development environment that they think will give them a competitive edge, they will do it. It's the smaller shops that can't afford not to go with the flow, so to speak.
[disclaimer: I work on Cinder]
However, I called static typing a "trend", and I'll try to explain why. I think attempts to type Python, JS, Ruby and the popularity of Go and Rust are the natural consequences of people departing from the Java/C++ ecosystem 10-20 years earlier (for good reasons). Now they are rediscovering the good parts of this ecosystem (ease of deployment with binaries/fat jars, static typing, performance). Since Twitter, Github, Youtube, Shopify, Instagram, etc have all that code around, they are going to either improve it, or try to migrate from it. For example, Shopify is working on a compiler to native for Ruby based on LLVM https://sorbet.org/blog/2021/07/30/open-sourcing-sorbet-comp.... Instagram is working on a performance-oriented CPython fork https://github.com/facebookincubator/cinder. Twitter, from what I understand, went back to Java, going through Scala first (which is another example of "better type system"). KhanAcademy is migrating services from a Django monolith to Go services https://blog.khanacademy.org/half-a-million-lines-of-go/. Whatsapp even had a project to do a statically typed "Erlang 2".
The "trend" here is that some companies that use "new" dynamic languages in the 00s are now very large companies that have enough money to invest in language, tooling and things like that.
But there are various projects for Python.
For example, there's Pyston [0] which was started by Dropbox. Or Cinder [1] which was started by Facebook. Or PyPy [2].
[0] https://github.com/pyston/pyston
I think the obsession with monocultures is unhealthy.
Python is a great language. It is reasonably easy to learn, somewhat readable if you dont yet. It is one of the most popular programming languages on the planet. But it was not created to produce the fastest code possible.
There are other programming languages that are focused on speed.
Perhaps for the most critical parts use one of them. Python can integrate pretty well with C with some magic i hear- (Never tried it myself).
One programming language will never cover all use cases and they should not have to.
Every programing langue is not made to be "functional" but they can be tortured into it.
Every programming language is not object oriented, but they can be tortured into it.
Every programming langue is not focused on being the fastest on execution but they can be tortured into it.
There is a reason carpenters have more than one tool to build something.
For the longest time I programmed in C with some C++ mixed into it. It is a great language. There are many problem domains I would not recommend using C.
I think it was delightful ot pickup Python many years ago.
It is great. I can be very productive in Python in contexts were Python is great.
It is not C, it should not want to be.
Now I am picking up Elixir, I am learning a lot. It is neither Python or C and I am happy with that.
use proper tool for the job at hand
e to https://github.com/facebookincubator/cinder reply
Last year (I think it was last year, but can't tell if that was 2020 or 2019) they released it on their own, thinking of a commercial model. Now they have switched to OSS+services, which is interesting because it'llopen up more people using Pyston.
I tihnk this is interesting in its own right, but yesterday we got Facebook announcing Cinder[1] -- which is unsupported to outsiders, but significantly faster than Pyston. According to Facebook, they intend for parts of Cinder to be upstreamed (and have already upstreamed a few, apparently) to CPython. So again, and sorry for using such a vague word, it'll be interesting to see how all these things play out in time.
Steps to Reproduce Install docker from docker.com
docker run -t -i fedora:32 bash
git clone https://github.com/facebookincubator/cinder.git
yum install zlib-devel openssl-devel
./configure
make
make altinstall
This error is occurs when you do ./configure --enable-optimizations this version of python complies it either way. >> Objects/accu.o
Parser/listnode.c: In function ‘list1node’:
Parser/listnode.c:66:1: error: ‘/cinder/Parser/listnode.gcda’ profile count data file not
found [-Werror=missing-profile]
66 | }
| ^
If you get this error it is because you used --enable-optimizations.github.com/brianherman https://www.linkedin.com/in/brian-herman-092919208/
Edit: Removing github flavored markdown Edit: Answering own question Edit: More formatting