I'm submitting a ...
Current behavior:
Dirty checking is slow and inefficient.
Expected / new behavior:
There are 3rd party libraries that offer an alternative to the "dirty checking" technique by means of observables like https://github.com/mobxjs/mobx.
Effectively replacing ONLY the "dirty checking" mechanism with the use of such 3rd party library (or by borrowing the concepts if not incorporating the actual code - becase this is open source in the end, nobody is stopping you guys from actually grabbing the code and integrate it in core angular) would completely remove the "slow" stigma from angularJS(1.x) and provide a better runtime engine for all the existing applications that still run (and for sure will keep running) angularJS for a long long time.
Given that AngularJS(1.7.x) will enter soon the [Long Term Support] phase (https://blog.angular.io/stable-angularjs-and-long-term-support-7e077635ee9c),
I believe this change would benefit a lot of companies and projects that had commited early on using and popularizing the angular movement - in other words, instead of ending the angularJS story as "slow because dirty checking" why not end the story as "a reliable and FAST framework for its time"?
@angularTeam The choice is yours!
Minimal reproduction of the problem with instructions:
Run an angularJS app.
AngularJS version: 1.7.x
Browser: [all]
Anything else:
Use mobxjs/mobx to replace the "dirty checking" mechanism from core angular while leaving all the behaviours and concepts intact (the API should not change).
Hello! You'll be happy to know that a few folks have forked AngularJS and have built up a new version using Observables (Rx-based, though, not mobx) as a CD backbone. You can find that project here: https://github.com/angular/angular
If this is a joke then it's not funny. You are not funny.
If I would do what those "few folks" did at my workplace probably I would be fired!
You can not just simply be so arrogant to expect every reasonable company/developer will jump in the angular versions roller coaster: there are major releases every other 3 months!
Semantic versioning?
Is there any mature person on that project anymore?
AngularJS(1.X.X) will be my last angular framework!
For our next project I will look for a framework that treats us with respect and understands that nobody (with budgets and deadlines) can afford to train teams and switch tooling every other month.
I would give you an advice (not that you care or ever will) : get serious and treat companies/developers who adopt your framework with respect and get real.
Good luck with your pet project!
PS: As for our next framework we will use https://github.com/aurelia because we don't use JS frameworks for hobby projects, we use it for business purposes, to deliver real value to customers and we need a project(and a team) that is being run by grown-ups.
@SomeKittens comment was simply a tongue in cheek way of telling you that a full observable dirty checking (?) mechanism is simply so big a task that it wouldn't make sense to try and include it into AngularJS, especially since Angular already does it. We will instead focus on making the existing parts of AngularJS better and adding smaller but useful bits.
Note also that Angular has better semantic version support than AngularJS, as breaking changes happen only in major versions. That's why there are many major version updates happening.
Good luck with your future projects. You're always welcome back in the Angular(JS) world.
@Narretz thank you for clarifications.
I know its hard to do open source and I wish you and the angular contributers good luck taking angular.io where you desire.
My advice is to have a vision, a plan for the long term, otherwise its really hard for anyone to adopt a framework for business use having such fast paced major releases... its really not realistic to expect businesses to migrate from one major release to the other when this happens (almost) on a monthly basis... the risk is that angular will loose relevancy in the long term.
Right now the feeling is that someone in the angular team has a new "cool idea" and when it comes to BC everyone is like "fuck it, lets just release a new major"... I understand that this might not be the case, but from the outside this is the impression.
Think what would have happen if all open-source projects would have the same approach, I dont think you would be cool with that.
Regards!
@atompulse - please be careful that your comments are accurate, especially when criticising a project.
1) https://angular.io is simply the documentation website for the Angular project. I don't think that is relevant to this discussion.
2) Both AngularJS and Angular are committed to communicating their vision and plans as openly and transparently as possible. This is one of the reasons for the recent blog post about AngularJS LTS. It is also a driving force behind the announcement of Angular Labs, which gives developers an early view of what might be coming in the pipeline.
2) Apart from the original release of Angular (denoted Angular 2.0.0), which was a significant change from the preceding project (AngularJS), there has been a very carefully planned and communicated release schedule to enable companies to choose exactly when to move from version to version.
3) In September 2016 the team announced that Angular was fully adopting semantic versioning and that patch versions (no breaking changes&) would be released on a weekly basis (~50 per year) and minor versions (no breaking changes) would be released monthly for 3 months following a major version release.
4) Further, every 6 months (not monthly) there is a major version release that is backwards compatible with the previous release for most developers, but might remove APIs that have been deprecated two major versions ago (12 or more months ago).
5) Angular has committed to regular LTS versions, which companies can choose to stick with if they don't want to update on the 6 monthly cycle:
Version | LTS Start Date | LTS End Date
-- | -- | --
^4.0.0 | October 2017 | October 2018
^6.0.0 | October 2018
You can read about the detail of the release schedule here: https://github.com/angular/angular/blob/master/docs/RELEASE_SCHEDULE.md.
While the Angular major release cycle may be more frequent than the other frameworks (e.g. React releases major versions every 18 months) I hope you can see that the project actually has made every effort to balance stability with progress in a way that gives developers the ability to choose when to move from version to version.
@petebacondarwin Thank you for your clarifications and the time you took to give this input,
I appreciate it and I respect that!
Then, if the angular team can't accept criticism then that is their/your own problem.
As for the lack of accuracy, you really cant expect everyone to participate on conferences to get the information from the source and its the core team's decision to have such a diluted communication chanel.
I feel free to criticize any project and will continue do so as long as I feel so and every other developer participating on platforms like github should do the same - that's the whole idea, express your ideas and concerns, this is not religion, its technology, everybody has the right to think what they want and hopefully there are adults on both sides of the screen who can "take it".
I'm sorry if your lack of communication made me feel this way, I'm sorry that your core teams decisions on the future of angular made me feel this way, but I'm not sorry that there are projects like https://github.com/symfony/symfony which educated me thinking this way: appreciate weekly updates https://symfony.com/blog, clear communication and a vision of WHY going in one direction or the other.
It's my personal impression, and I stick to it, that angular lost the original focus!
I perfectly understand that if I feel like this then its my own problem - granted!
So lets agree to disagree.
Cheers!
PS: Please lets end this thread, it lost the initial constructive purpose and became a mouse vs elephant thingy, it doesnt worth it.
Most helpful comment
Hello! You'll be happy to know that a few folks have forked AngularJS and have built up a new version using Observables (Rx-based, though, not mobx) as a CD backbone. You can find that project here: https://github.com/angular/angular