Today I was browsing through my Medium recommendations and came across an article titled "Why are developers still using Angular?"
Check it out h...
For further actions, you may consider blocking this person and/or reporting abuse
I try to learn as much as I can from legacy systems. Typically I strive to understand the design patterns and architectural structure of the software..In most cases the patterns used in legacy systems and modern systems are not that different.
Understanding the common architectural patterns means that learning a new framework only requires me to learn new syntax which turns out to be very easy
The definition of "legacy" is tricky, especially in the front-end world. People usually use it to mean out-dated. As a developer, we want to use the latest tech that we just read about yesterday, because it looks so much better than what the company is using currently. However, this is often not what the company or the application needs. An older, well-used framework is often more stable and easier to find experienced dev to hire. The cost of changing the underlying framework for an existing application often greatly outweighs the benefits of that of a newfangled one. Is Angular.js really that bad if it gets the job done?
This is a good question and one I have definitely asked myself. Compared to the newer versions of Angular, AngularJS does feel pretty flawed. On the other hand, its easier to find solutions and libraries when you come across a problem. In the DC area there are especially a lot of companies and government contractors still supporting or even building apps with AngularJS because they don't have the resources to update everything.
This just popped up in my side feed. The reason you see legacy technologies is often because they lack the requirements to rebuild the solution with more modern technologies. To do a complete rewrite, you need to perfectly understand the requirements, otherwise, how will you know that what gets written does its job? A lot of Agile teams probably have absolutely nothing describing system acceptance criteria or why design decisions were made because Agile de-prioritizes documentation. One guide I read ironically stated we should "treat documentation like a requirement"...I sure wouldn't want to be held responsible for the success of a project driven by half-assed user stories delivered by some consultant who is now selling snake oil somewhere else.
If I am offered legacy work, I tell recruiters I will only do so for $125/hr minimum. They think I am out of my mind, but I tell them they'll be paying that rate when they are forced to hire a local consulting firm to do the work. I have never had any of them take me up on that, but I guarantee you whatever number you name is more reasonable than the "expert" consultants they eventually hire who will turn around and let a junior analyst or overseas team perform the work.
I think we spend too much time reinventing the wheel..
In my 20 years of web programming I've rarely found new languages/frameworks to be much better than the older ones. In fact, they tend to lack a lot of good features the more mature frameworks had (but we cannot use anymore because they are "out of date").
I think overall this tendency towards abandonware is not really a benefit for companies.
I'm not against innovation, but very few new things are true innovation. Most are just new ways of doing the same old thing.
Like fashion.
Well, Angular.js devs are scarce. It's not outdated - it's ancient, not supported (literally deprecated) and just not good enough once you see the alternatives. jQuery would get the job done too, would you pick it for a new project now?
Also due to how the front end world looked back when Angular.js was good when you join a project now it's a Russian roulette as far as quality goes. Usually full of weird constructs and antipatterns written by people that don't want to let it go.
I just want to leave here that I know a few places still running Novell Netware. I know first hand that their sysadmins wouldn't mind switch to a more modern system for their net, but the companies don't want to make the investments because of those dinosaurs keep doing their jobs. I know they are bringing new servers with modern OS but the netware net still up and running.
If something works and do the job and you are okay with it, what's wrong with that? Wouldn't you agree?
Also point out that changes cost money, a lot of money most of the time, with huge apps using "legacy" systems. Why is it sap(abap) so widely used?
Thanks for bringing in this interesting post!
Same experience here. In a business context it's always going to be about money, and Gernot Starke has a really good talk from GOTO 2016 on this subject:
The company I work at is using AngularJS, but is definitely open to use different technologies like Vue. We just haven't had time. Hopefully, we can all dip our toes into Vue soon and next fresh project we can start with it
That's a great next step to migrate, there's a lot of similarities between AngularJs and Vue.
I would check to see if your employer allows for time/money to be spent on employee improvement. A lot of companies allow and would even pay for classes or courses, or provide some small amount of time to be spent on personal projects.
Use small projects or spend 30min daily on research/study of new stuff.
Developer velocity should be one of the most important things for companies, and lots of modern frameworks allow you to do more faster with less bugs/code. So learning this stuff & doing presentations on it can often times convince a boss to use it on a smaller project first.
Thanks for the tips. When I have free time during the day I definetely try to fit in other projects such as web scraping with NodeJS. I've also attended several conferences. Just worried if that's enough.
"Certainly, we all want to catch up, learn React, learn ES6, Typescript, RxJS, and all the other fun things." No, not all. Frameworks are made for certain kinds of people: those without time and/or without discipline.
I'm gonna start saying that I too hope Angularjs would die a silent death. I worked for a huge client's project where they used that version coupled with an old version of the Zend framework and my god that was awful. Recently I was contacted to be part of a team in which the client specifically requested Angular to be the framework used (though we're still debating the version). One of the primary reasons for it was due to the licensing in which they would be off the hook if they use Angular instead of React.
Now on to the actual answer, I try my best to not get involved in projects with too much legacy tech taking care that I don't end without a job. I do keep updated learning new stuff on the side but not at the end of the day (that time is for my personal endeavors) more like on weekends. I would hope that legacy tech will more and more die out and people will move out altogether but like I tell most of my close friends and family "the client only cares about doing biz not about having the tech up to date"
I can't understand why anyone would call Angular a "legacy" framework...
As someone who runs their own consulting shop, I usually have the freedom to select technologies for my projects and tend to go with new, exciting, and bleeding-edge.
However, the only thing that has stayed constant over the last 8 years in 90% of all my web applications was Angular.
I know many people don't like it, but all of the arguments I've seen against it are mostly the same as those against Rust -- "it goes against what I am used to and I don't really want to take the time to understand it in-depth".
I actively develop using CakePHP2 and AngularJS 1.3.20. When I'm at home I spend time learning Laravel and VueJS with the hopes that we eventually have either the time or workforce to rebuild to something newer.
My biggest issue isn't really learning new things. It's motivation to learn the old tech I work with.
That's understandable. Since I used Angular.js in some of my previous roles I don't spend too much time with the learning the legacy stuff. I have motivation to learn the new stuff but I also have other passions like game development and I'm not sure if that can fit in in not.
Let me ask you this: What do you think your employer's company is worth without people like you? Does the company sell any products that could live without developers to improve or support said products?
No? Well that's because the value of most software or consultancy firms lies in the heads of their employees. To improve the company's value means to invest into its employees. You can invest in employees in two ways. Either give them the time to improve their skills or lay them off and get some fresh blood in the company. The latter is not sustainable because a company that doesn't invest in employees will eventually run out of people who want to work there. Long story short: If you don't have the time to improve yourself and only work with old stuff, you should get a new job. That or you kindly ask your manager if it's not in his interest that you become better and thus increase the companies value.
I always strive to help companies I work at progress forwards and will usually recommend newer technologies, especially when they are using ones that have lost support.