Tiffany Jachja

View Original

Package Managers, Compilers, And More?

Ever had an inkling to try something new? I think many people have wished they were a bit more tech-savvy. Especially when technical jargon gets thrown across think tank spaces, industry, and even the news now.

No matter your tech-inspired goals, I think a good start to navigating and understanding how to develop software can from understanding the frameworks and utilities available out there. So today I'll be talking about package managers and host of other topics to get a little more in tune to the tech space. 

Credits to the host site: http://netrunner-mag.com/2014/03/28/manage-my-package/

 

You may be wondering what package managers are and how they apply to get more stuff done and developing. If you are ready for a small aside, please humor me through this. 

Imagine that you are writing code for an airplane or a mobile phone. You are not going to code all of this from scratch. The nice thing about coding is that language has its standard libraries for reading into data, opening files, etc. These libraries consist of methods or functions that, given a little bit of information, can carry out a process. Imagine having to write the same code over and over again. It'd be hard to read. That's we like to organize our code and modularize it into methods.

Furthermore, it would be challenging to create products if you had to learn programming without the use of any standard library methods. It'd require understanding much computer architecture before even getting to see anything similar to an airplane or mobile app software. And imagine mapping bits and bytes to actual processes on the hardware... ick. No, often, we code software that takes our syntax or coding language and turns it into ones and zeros for our hardware to execute. Note that anytime one language gets translated into another, it's called compiling. Compilers do the work of compiling, and often they are savvy enough to provide additional optimizations and features to our code.

Package managers allow you to download libraries and utilities onto your computer without having to go onto the host site to download a zip file, unpack it on your computer, install in the right place, make sure your computer knows where it is... and then repeat this process every time there's an update to that utility!! If you noticed the meme above, you only have to download and install the package manager for your computer's operating system once, and then you can use that package manager to install any other utility you need. If you are in the tech space you'll often hear things like apt-get install .... or yum install ...

These are the commands you would type into your terminal or computer to execute the package manager and to tell it you want to install a particular library or utility. You can check out a list of package managers here. You'll notice they're operating system dependent.

Last week I saved a ton of time when I installed a cross-compiler to take my C code and compile it into an executable binary code file that my raspberry pi could run. It's called a cross-compiler because it makes the code I developed on my machine (which has an Intel CPU) and compiles it into code an ARM CPU (processor) can read and run. CPUs or central processing units are the brains of a computer. Different CPUs from different companies often don't play very friendly together since the hardware is created differently, so a command of ones and zeros can mean something completely different or gibberish on one machine and be everything nice and understanding to another. 

I think that often there will be this talk up for how difficult getting started is because you need a virtual machine (VM) or a certain operating system (OS). A lot of times we can get around this by simply installing some software utility that we can run from our current system.


Comment below what you would like to read about next! And let me know, what you think? Was this helpful?

More Tech Posts

 

See this gallery in the original post