Like Lahja this too is rather much in the alpha stage, but I have been using it in production for over a year now.
I mention it here in case it is interesting to anyone, interest/feedback always welcome!
I'd be interested to see how well this holds up under load, especially compared to other common event bus patterns.
- https://github.com/jodal/pykka (Python)
- https://github.com/quantmind/pulsar (Python)
- https://github.com/akka/akka (Java)
- https://github.com/eclipse-vertx/vert.x (Java)
- etc.
This feels quite a bit like Vert.x from the Java world, which flows data between components via an event bus.
Noob python question: does Python support reactive extensions and chaining? That would fit well on top of this too.
I’ve used Redis in the past for lightweight pub/sub and zeromq for IPC before we had adopted Python 3 (and I left that job before then). I hated juggling threads and queues before that and then having to run Redis just to run your program was a pain.
The syntax looks similar enough to both of those to get started quickly and easily.
I’ve been writing Go so much I don’t know how much this is “needed” in Python but the examples using context managers ring the “it’s Pythonic” bell.
I suspect the answer will also apply to something like Lahja.
EDIT: Thanks HN, try working in an industry where every new project is in Python 2, and have no intention to move on, before saying "moeve to 3", it doesn't help at all.
You may be okay to stick with Python 2, but this means you also agree not to expect new features and new libraries. So please don't mention Python 2 to a new library.
Also, Python 3.9 is now out which means there's been more than enough time to migrate - https://docs.python.org/3.9/whatsnew/3.9.html
Upgrade. Or accept that you are using a dead language.
Python 2 is very close to being not supported anymore, which means no more security updates, etc.
You'd be surprised how Python 2 is _still_ being used in this day and age.
Lots of big players still use Python 2 (Google being the most prominent), and untold smaller players.
Besides, Windows XP and PHP are also in use, as are 50+ year old COBOL systems, so there's that.
Unless you come in and do the port yourself, many systems are not getting ported anytime soon. RedHat and co will continue to release 2.7 patches for the foreseeable future, long after 2020.
For anyone interested, this is the VFX industry reference platform, which is finally hoping to move to Python 3 next year: https://vfxplatform.com/
If you say airline...
Not all of us move fast and break things here, unlike the web dev world.
Incidentally this is how you do a notification on your UI .
I can almost understand if you have legacy software that your bosses don't want to move to Python 3, but actually building new software in Python 2? It's just crazy and asking for serious problems in the very near future.
Yes, sadly this still happens.
If it's a new project, there are no excuses imho
http://python-future.org/automatic_conversion.html and https://python-modernize.readthedocs.io/en/latest/
Which should get you most of the way there. Look at https://docs.python.org/3/howto/pyporting.html for more info
Any new code written in the last 5 years should have been Python 3 compatible (and tested).
If you’re on Python 2 you’re on a dying platform. If your code is important plan accordingly... something many have failed to do.
Also Google have golang, which I'd imagine would be their target now, not python 3 (for migrations)
I don't think the "many eyes" theory ever panned out. There are projects used by billions, and on which thousands of other FOSS projects work, and only have like a handful of people working at the codebase (and less catching bugs)
>Also Google have golang, which I'd imagine would be their target now, not python 3 (for migrations)
Not really, Golang was never Google's official/mandated language. Just a language some Googlers made with Google's use cases in mind. Google still uses C++, Java, and Python (plus some Dart). Some things use Golang, but not in some top-down "Googlers shall use Golang" way.
Build system automation of all kinds (although the main build tool is in Java)
Test automation
Deployment automation
Many services configure their job placement and options with a Python-derived language (not mine)
Monitoring configuration and dashboards
Data analysis using Scipy, Scikit, Numpy and various kinds of notebook UIs
Configuring Tensorflow and analysing the results of ML projects
Hundreds of little command-line utilities for all sorts of small code and data manipulations
Thousands of internal websites
The youtube.com site was still Python last time I looked
There was no "move fast and break things" in this python 3
Which is neither here, nor there. Pre-announcing doesn't give any reason or motive (or funding) for porting large codebases. Many businesses stuck with 2.x will fund 2.x maintenance if the core devs don't do it, and port on their own schedule not on whatever was "pre announced".
Nope, not when new versions of software comes out with Python 2 still, (can't do anything about those licences bought) small studios cannot afford moving/rewriting tools in P2 to 3, not a priority, rather keep P2.
And certainly don't badmouth people who are using the not-deprecated tool as being ok with unstable infra.
I had to roll my eyes at that one. Fine if your industry is accepting the high risk of using deprecated releases for new software, but don't try to act like upgrading from deprecated software is "moving fast and breaking things". This deprecation has been announced for 6 years. Python 3 was released over a decade ago.
This ain't a new JavaScript built tool -- this is a carefully planned end-of-life situation for a very old piece of technology.
I'm just pointing out that it's a risky move to adopt a soon-to-be-deprecated programming language for new projects, given the potential for security issues that won't be patched. It's the kind of ignorant arrogance that has always bugged me about many companies with non-technical management (please note: these words are not directed at user kgrave given that this appears an edict from above at his company, and he's unable to change it).
Then how many more years do they need to switch to Python3?
How many years does it take companies to switch from COBOL (which still runs billions of lines of 40+ years critical code)?
Could almost really say “how many decades” at this point.
You think we haven't been doing this? We had a representative from one of these vendors come in to discuss their roadmap, they told us straight up that "We still intend to keep using Python 2".
> Don't complain to developers for ignoring a platform whose deprecation was announced over a decade ago.
Yes, because web dev is the hot tech stuff now, nobody wants to work in a boring sector, so they are not willing to change anything, cycle continues.
> And certainly don't badmouth people who are using the not-deprecated tool as being ok with unstable infra.
I read this sentence twice and I still don't understand what you're trying to say, clarify?
Change what? You're asking for...what exactly? People to provide support for a deprecated platform? That just encourages those companies you're complaining about to continue to use python2 and further splits the ecosystem. No!
Instead of trying to put words in my mouth and being hostile, try to address my concerns. What I mean is that nobody that is a dev wants to work in a slow boring sector, Which means no work gets done to Python 3 on the vendor side hence, studios like ours keep developing on it.
Nothing changes and no choice other than leaving.