loading...
Cover image for Why are developers still using this legacy framework?

Why are developers still using this legacy framework?

nprimak profile image Nadya Primak ・1 min read

Today I was browsing through my Medium recommendations and came across an article titled "Why are developers still using Angular?"

Check it out here: https://medium.com/@PurpleGreenLemon/why-are-developers-still-using-angular-b9ef29d1f97f

It struck a chord with me, as a developer who has worked for six different companies in my career so far, all of which used Angular. More specifically, the five of the four used AngularJS with the only exception being a very early stage startup where I was able to choose the framework, and went with Angular 6.

While the article focuses on the most recent version of Angular and how it differs dramatically from the original, the author was also quick to condemn AngularJS, hoping it would "die a silent death."

The problem with this attitude, and also the issue I want to discuss, is that many of us are still in jobs where we are using outdated frameworks and technologies. Certainly, we all want to catch up, learn React, learn ES6, Typescript, RxJS, and all the other fun things, but there would literally be no time left in the day and burn out is a serious risk.

So for those of us developers who work in companies that still support or actively program with legacy tech, how do you tackle these problems? Do you just try to get out as quickly as possible? Do you use your precious free time at the end of the day to keep learning the new stuff? Do you just not worry about it, knowing that legacy tech will always be there? I want to hear your thoughts.

Posted on by:

nprimak profile

Nadya Primak

@nprimak

I am a full stack developer by day, experimental game developer and indie hacker by night. Blogging at www.nadyaprimak.com/blog

Discussion

markdown guide
 

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.

 

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.

 

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"

 

"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.

 

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.