Introduction

Hello, and welcome to the first lesson of the Introduction to Object-Oriented Programming in Kotlin module.

In this lesson, you’ll learn:

  • The fundamental principles of object-oriented programming.
  • How to differentiate between the procedural and object-oriented programming paradigms.
  • About the advantages and benefits of using object-oriented programming in mobile development.

You’ll also complete a practice session to implement these concepts.

A Brief History of Programming Languages

A good place to start learning about Object-Oriented Programming (OOP) would be from its origins. To do this, you’ll skip over to the early days of analog computing and programming languages like the Assembly language. We do this so that we can focus on languages that can run on any computer architecture. Along the way, important milestones will be highlighted to show how modern OOP languages came about.

Mainframe computers were mostly used for scientific and business computation in its early days. Its smaller counterpart, Minicomputers, were developed in the mid-1960s but were still mainly used in the professional sector. Back then, Apps with Graphical User Interfaces (GUI) didn’t exist until the rise of personal computers in the 1970s. It was also during this period that object-oriented languages started gaining recognition, and today they dominate the software ecosystem, including the mobile app develpment.

Around the middle of the 20th century, academic and industrial research groups began to develop programming languages that were Assembly language alternatives for mainframe computers. IBM created Fortran for scientific computation, and a consortium created COBOL for business use. Originally developed as procedural programming languages, both eventually evolved to support object-oriented programming in the early 2000s and are still widely used today.

In 1972, Dennis Ritchie created the C programming language to write utilities for the Unix operating system of the PDP-11 minicomputer and subsequently used it to rewrite the Unix kernel. C is a procedural programming language, but it’s the foundation for modern object-oriented languages like Java, C#, C++, Objective-C, Python, Swift, etc.

Kotlin was officially released in 2016 and was developed by JetBrains. It was created principally as a Java replacement for developing Android apps but is also used for other purposes. It provides a concise and less bulky syntax as compared to Java and also provides new constructs like functional programming features. It primarily tackled some of the challenges that Java had, such as null safety and faster compilation time.

Kotlin got inspiration from languages such as Java and C#. Objective-C and Ruby were also inherited from Smalltalk, one of the first object-oriented languages developed for educational use at Xerox PARC in the 1970s. Smalltalk used ideas from Simula, which was developed in the 1960s at the Norwegian Computing Center, and it’s generally accepted as the first language with object-oriented features.

As you can see, programming languages have evolved based on the need to simplify how programmers instruct computers and also to make the best use of the advancement of technologies. This means that as science and technology advances, more languages and programming paradigms will evolve and adapt while new ones will be created to further suit the needs at hand.

Why Should You Learn Object-Oriented Programming?

Object-oriented programming has deep roots in computing history, standing almost shoulder-to-shoulder with procedural programming. The mainstream adoption of OOP languages coincided with the personal computer revolution in the 1970s, shaping the foundation for modern apps. This means that the OOP paradigm was created out of necessity to simplify how computer code is constructed and represented.

Today, languages like Kotlin and Swift, rooted in OOP, lead the charge in mobile app development. OOP doesn’t just offer an approach, it’s a boost to productivity and efficiency. With it, modeling your app’s data becomes intuitive, has less code redundancy, and problem-solving becomes more straightforward.

In this lesson, you’ll delve into OOP’s core components, its four essential principles, and its edge over procedural programming.

See forum comments
Download course materials from Github
Next: Instruction