Saturday, April 25, 2020

Garbage Collectors

Garbage collection is a concept that, although it is fundamental for every programming language, is not taught as such. It’s also  very simple (and maybe obvious): if you’re not using a resource, don’t hog it and let someone else use it. But at least in my experience, although I’ve heard the term since I first began studying computer science, I never really understood or paid much attention to it. Even today, even though I know what a garbage collector is and why it’s needed, I still don’t fully understand how they work, and I haven’t seen any more than the basics in my classes. 

That being said, I think Alexander Yakushev did a great job explaining how different algorithms go about collecting garbage, and I think more importantly, he made me realize that garbage collectors are more than simply processes that run behind the scenes to make my life easier while coding. In his case, working at Grammarly, it’s very important that memory is freed efficiently, since their plugin has to be working non-stop while a user is typing. That being said, improving garbage collection algorithms can greatly improve performance in any device, and is something every future (and current) computer scientist should be familiar with. 

Yakushev also hit on a very important point that I’ve heard across all areas of computer science I’ve explored: when it comes to software engineering, there is no silver bullet. It is not enough to know what your programs do; you need to know how they work, how they’re made, as well as their limitations, in order to make an informed decision and choose (or create) the right garbage collector for your program, and this applies (or should apply) to everything else that goes into your program, as it’s details like these that really separate a computer scientist from someone who just learned to program online. 

No comments:

Post a Comment