The Master Toolkit: Develop Depth of Concepts and A Breadth of Languages and Approaches
Knowing when to utilize a language enables a software developer to manage large teams effectively. A successful developer may see value in scoping only to a specific language to learn depth of knowledge in a specific area; however, exposure to multiple programming languages allows a software developer to visualize the big picture. After exploring many languages, one learns programming languages all work together to serve different purposes.
C Programing: Foundation of many, Ruler of one
C provides heavy influence on the creation of many of the popular languages utilized today. JavaScript In Plain English highlights C as a foundational language that shaped other programming languages: “one-third of standard Python libraries are implemented in C.” This suggests C programming significantly influences Python. Some people believe that Python exists as the next version of C programming. Python undeniably provides portable, readable code; however, C programming presents significant advantages in performance, resource and memory management, stability, speed, and direct control to interfacing with hardware devices.
A need for an updated Unix operating system language perpetuated the creation of language C by Dennis Ritchie at AT&T Bell Labs during the early 1970s. B programming language’s ignorance of data types and structures significantly impeded the functionality of the language. C programming language retained the ability to create machine-independent applications while enabling complex programs to be broken up into smaller programs called functions.
Exploring C as a software developer holds value because JavaScript and Python implement C and C complies Java. Embedded computer applications, like operating systems, require high performance and commonly utilize C. C generates code that works almost as fast as code written in an assembly language. C provides fast code that teaches a developer to problem-solve. C removes the abstraction that high level programming languages like Java, Python, or Javascript utilize. C forces a programmer to understand the fundamentals of programming by forcing one to work from scratch. My interest in learning C started because C helps programmers learn about the underlying architecture about how things work. Microcontroller programming often written in C sets the foundation for writing bigger programs involving hardware and robotics.
Forth: A toolbox for new developers
Programmers utilize Forth to interact with the hardware. Forth converts to C, and C easily converts to Forth. While C exists as the industry standard for interacting with hardware, a programmer learns Forth in a few hours. Depending on one’s definition of “learning C”, a programmer may need weeks or months to learn C. Forth bends the programming rules and decreases performance, yet gets the job done. Charles Moore developed the Forth programming language for the control of telescopes with small computers in the 1970s. Embedded systems which involve interaction with hardware can utilize Forth. Apple and IBM utilize Forth in open firmware boot ROMs.I n the 80s, Macintosh and Atari utilized Forth to spin up new hardware. I believe Forth has the ability to be useful for this purpose when in a quick build and ditch agile situation where the program will drastically change over time. Forth lacks the architecture and stability of C. Alternatively, Forth provides simplicity and flexibility. Forth looks a lot like Python without methods. Forth utilized as a teaching tool helps a developer learn C concepts and broadens the tool box to include the ability to interact with hardware for developers that do not want to invest in C. If you know C will you write in Forth? I doubt it, but what a great way to easily expand your capabilities as a new developer. I plan on increasing my C knowledge, but I will keep playing with Forth.
If you are interested in Forth, check out this snake game.
https://skilldrick.github.io/easyforth/#snake
GoLang: Language of the Future
Go excels in infrastructures and cloud-based applications. The newness of Go makes excelling in the language challenging because there are fewer teaching tools and guides available. With that said, if you know JavaScript, Go has almost no learning curve to get started. Go exists as a procedural language for microservices and API development that allows developers to access memory pointers. Google developed Go in 2007 as an alternative for C++. I consider it backend JavaScript and personally believe it outperforms Python and Java. Go provides an amazing language if one exists outside of academia and conventions; however, when trying to gain employment or ace an assignment, Go proves less popular. Go represents the language I wish I had time to explore, but never do. Sometimes the most interesting option is not the profitable conventional route.
Perl: Tried and True Text Manipulation
Perl is used for managing cloud-based services, developing apps with speech recognition features, text manipulation, log management, scripting system administration, software testing, and serving web pages. Larry Wall released Perl as a text processing language in 1987. Despite the babble about the language dying, many large companies like Amazon use Perl. While C++ provides a faster option, Perl gets the job done. I wouldn’t want to code in Perl full time, but it’s a nice tool to have.
Fortran: Leave it to NASA
Fortran is used in scientific computing. It is extremely fast and works well for processing numeric formulas. IBM developed Fortran in the 1950s for scientific and engineering applications. NASA uses Fortran. Fortan is easier to learn than C; however, C outperforms Fortran. Fortran opens a niche market that allows a software developer to perform High performance computing for amazing inventions and developments that change history. If I thought I could get a job writing Fortran I would absolutely invest time in learning it.
COBOL: Protect My Money Honey
COBOL is a math heavy language used in finance because it is fast, efficient, and resilient. According to IBM, more than 1 million CICS transactions occur every second every day and 90% CICS transactions are written in COBOL. It is the most common language on z/OS. CODASYL designed COBOL in 1959 for the US Department of Defense to create a portable programming language for data processing. Many large systems utilize COBOL today: banking, travel, the IRS, healthcare, and social security. Learning COBOL enables a software developer to work in government institutions and powerful businesses. COBOL programs are written in everyday English making it easy to learn, self-documenting, quick, reliable, in high demand, and profitable. I want to spend time learning COBOL because it is still a relevant language used today in government and banking.
https://en.wikipedia.org/wiki/COBOL#:~:text=COBOL%20was%20designed%20in%201959,programming%20language%20for%20data%20processing.
https://www.tpr.org/technology-entrepreneurship/2019-05-23/how-cobol-still-powers-the-global-economy-at-60-years-old
https://youtu.be/BdfrbDhsGZg
https://www.softwaretestinghelp.com/python-vs-cpp/#:~:text=Answer%3A%20NO.,not%20in%20the%20near%20future.
https://www.makeuseof.com/c-python-core-differences/
https://javascript.plainenglish.io/c-vs-javascript-a-comparison-between-a-50-year-old-language-and-a-nearly-30-year-old-language-9c5e313a401c
https://www.javascripttutorial.net/javascript-primitive-vs-reference-values/
https://careerkarma.com/blog/java-vs-c/
https://www.phaedsys.com/library/blog/data/Forth_versus_C%20Howerd_Oakford%20%20v3.pdf
https://hackaday.com/2017/01/27/forth-the-hackers-language/
https://users.ece.cmu.edu/~koopman/stack_computers/sec3_3.html#:~:text=The%20Forth%20programming%20language%20was,and%20efficient%20hardware%2Fsoftware%20interaction.
http://www.forth.org/lost-at-c.html#:~:text=Forth%20has%20these%20advantages%20over,application%2C%20its%20own%20operating%20system.
https://bernd-paysan.de/why-forth.html
https://en.wikipedia.org/wiki/Go_(programming_language)
https://deepu.tech/golang-for-javascript-developers-part-1/
https://blog.boot.dev/golang/node-js-vs-go/
http://computernostalgia.net/articles/Perl.htm
https://www.linuxjournal.com/article/3237
https://www.activestate.com/blog/top-10-programming-tasks-that-perl-is-used-for/
https://en.wikipedia.org/wiki/COBOL#:~:text=COBOL%20was%20designed%20in%201959,programming%20language%20for%20data%20processing.
https://www.tpr.org/technology-entrepreneurship/2019-05-23/how-cobol-still-powers-the-global-economy-at-60-years-old
https://youtu.be/BdfrbDhsGZg
Comments
Post a Comment