Estimate project

The 15 Best Languages for App Development in 2024

Mobile App Development   -  

January 01, 2024

Table of Contents

There are more than 6,900 languages in the world, but only a handful are used to create apps.

Knowledge of these languages will allow you to be more employable with app development skills.

The best languages for app development are among:

1. Swift (for Apple devices)

2. Java (for Android devices)

3. Objective-C (for both iOS and Android)

4. C++

5. C#

6. Python

7. JavaScript.

8. HTML/CSS

9. Kotlin

10. Rust

11. Ruby

12. Prolog

13. LISP

14. Malboge

15. Go

The best languages for app development

Top 15 best languages for app development

With the rise of the mobile app market, it’s no wonder why more and more people are looking to create apps of their own. With so many languages and frameworks out there, it can be hard to know which one will work best for you. This quick guide has all the information you need about the 15 best languages for app development. From Swift to Kotlin, we will give you an overview of each language and what makes them stand out. This is your one-stop shop for all things app development.

1. Swift (for Apple devices)

Swift (for Apple devices) the Best Language for App Development
Swift (for Apple devices) the Best Language for App Development

The first candidate is Swift. It is a programming language by Apple, originally designed as a successor to Objective-C. It has been used since 2014 as a replacement for Objective-C in most Apple products.

Swift is a general-purpose programming language, with modern features targeting desktop and server development. Swift’s syntax is based on that of Objective-C, but it introduces many changes to the original Concepts from that language.

Pros

Swift is one of the iOS app development languages and macOS app development. Swift is a general-purpose programming language but was designed with the Cocoa and Cocoa Touch frameworks in mind, making it very effective for developing iOS apps.

There are several reasons why Swift is a good choice for app development:

  • Swift uses fewer lines of code than other languages to do the same job.
  • The syntax is easy to learn by following rules that are similar to other languages like Java, C++, and Python.
  • It has many powerful features like type inference, generics, closures, fast compile times, and more that make coding simpler and faster than it would be otherwise.
  • The compiler is really intelligent so it can catch errors quickly during compilation rather than you having to run your code before it finds any errors which would cause delays in the app development timeline later on in the mobile app design process.
  • There are great online resources available to help you learn how to use Swift efficiently including books about Swift or courses through Stanford University’s open courseware or MIT OpenCourseWare (OCW) project (www.ocw.mit.edu).

Cons 

Programming in Swift is not always easy.

The learning curve for this language is much higher than in other computer programming languages, which means it will take much longer before you’re able to create an app.

The code for Swift also tends to be more verbose and can sometimes be more difficult to read. This is because the language was designed with safety in mind and reads like English.

Swift has much stricter type-checking than other languages, so if your code doesn’t match the type you set, an error will occur preventing you from compiling the app.

Lastly, due to Apple’s tightly-controlled ecosystem, Swift is exclusively limited to iOS development, meaning that there’s no way for developers who work on Android devices to use this language.

Recommended reading: Top 4 Best Programming Language for Beginners in 2022

2. Java (for Android devices)

The Best Language for App DevelopmentJava (for Android devices)
The Best Language for App DevelopmentJava (for Android devices)

Java is one of the most popular programming languages used by top companies in the world. It’s also widely used for Android app development languages.

Java was created by Sun Microsystems in 1995. There are many reasons why it’s useful for app development:

1. Java is a general-purpose language, meaning it can be used for a wide range of purposes.

2. It offers portability across different platforms and operating systems because it can run on any system with a JVM (Java Virtual Machine).

3. It’s object-oriented, which means you can write software that uses objects to represent things or actions in your program—so, if you wanted to create a car in Java, you could create a car object and use it to interact with other pieces of code inside your program.

Pros

Java is a programming language that was designed to function well with the Internet and its security needs. Java is one of just a handful of languages that can be used to develop apps for Android and iOS devices, and it’s the most popular language for mobile app development.

The pros of using Java as your programming language include:

  • It’s object-oriented
  • Its syntax is similar to C++, C#, and more
  • Its code is easy to read
  • It has a large digital library (available online)

There are many reasons why you should learn Java programming. Learning this language will help you get better at app development and make more money in the future.

Cons

Java is a programming language that was created for the Java platform to enable programmers to build and use objects.

The language is very popular, but not without its negatives. Java is often criticized for being overused and bloated, which can make it run slowly. This is especially true if you are developing an app for an older cell phone. With this in mind, you may want to explore other languages, such as Swift or C++, which are newer and more efficient.

Java also requires developers to use large amounts of code just to do simple tasks, which can be frustrating for less experienced programmers who are just getting started with the language.

Recommended reading: iOS and Android App Development: Market and Development Comparison

3. Objective-C (for both iOS and Android)

Objective-C (for both iOS and Android)
Objective-C (for both iOS and Android)

Generally, Objective-C is a general-purpose, object-oriented programming language that adds Smalltalk-style messaging to the C programming language. This language features dynamic typing, partial typing, named parameters for methods and function calls, and numerous data types including objects, structs, arrays, strings, etc.

Objective-C was originally developed in the 1980s by Brad Cox and Tom Love at Stepstone (now part of Novell). It was created as an extension of the C programming language to support OOP (object-oriented programming) techniques.

It supports both OS X and Windows ora.

Pros

  • Objective-C is a powerful programming language that was developed to work on both Apple and Android devices.
  • Unlike Swift, Objective-C does not have a runtime library, meaning that the software has to be compiled before it can run. Because of this, Objective-C is considered a lower-level programming language.
  • Objective-C is object-oriented and supports procedural programming as well as functional programming.
  • It also allows for inheritance from parent classes, which makes it easier to build upon other people’s work without having to start from scratch.

Cons

Objective-C is a difficult language to learn. In order to become an effective programmer in the language, you have to know a lot of different concepts and commands.

You can’t do as much with Objective-C as you can with other languages. There are not a lot of options for developers when it comes to using this language, so if you want your app idea to be successful, it has to be simple enough for the Objective-C programming language.

Some say that it’s not as efficient as other languages. For example, Java is more efficient because of how it handles memory allocation.

Recommended reading: Mobile App Development Process: 9 Stages that You Should Know

4. C++

C++ is one of the most popular programming languages in the world.

It is the language that’s used by many game developers and software engineers.

It’s also great for beginners too, as it has object-oriented capabilities, which makes it easier to learn.

C++ the best language for app development
C++ is the best language for app development

Pros

C++ is a general-purpose programming language that has been around for more than 40 years. It’s still used by students to learn to program, and it’s one of the most popular languages among professional software developers.

C++ has powerful features that allow you to find bugs quickly and produce high-performance code. It is often used in cases where speed is essential, such as video games or operating systems. One feature, const, allows you to define immutable values at the time of definition rather than when they are used for the first time.

Another plus for C++ is that it supports both object-oriented programming and procedural programming styles, which makes it easy to switch between them depending on your needs. C++ also offers better support for inline assembly than other languages like Java or Objective-C do.

Cons

C++ is an object-oriented programming language that was developed in 1980. It offers many benefits, but it also has disadvantages.

There are positives to C++, like the ability to create more secure code and debug errors quickly. However, it can be difficult to find programmers who know this language and it is less user-friendly than other languages.

Additionally, not all web browsers support C++, which makes it difficult for programmers to use this language for web apps.

It’s also worth noting that C++ cannot run on devices with low system RAM (random access memory). The only benefit of this is that the app will be much faster if it does work on these devices!

5. C#

C# and Python are two popular choices among app developers, but they’re not as common as the other languages. If you want to learn a new language and need some guidance, these two will give you the best return on your time investment.

C# the best language for app development
C# the best language for app development

If you’re an app developer looking for a new challenge, C# is a formidable choice. It’s one of the most common programming languages in the world, and it’s used by Microsoft. You can use C# to write programs for all Windows devices as well as for apps on Windows Phone and Xbox One.

Python is one of many popular programming languages used by app developers. It is also designed with usability in mind and is supported by a large user base. You can use it to develop cross-platform apps and games on iOS and Android devices. It’s also powerful enough to be used in web applications, machine learning projects, data science problems, and hardware interfaces – basically anything you want!

Pros

If you’re looking for a language that’s easy to learn, has an efficient syntax, and is open source then the C# programming language might be a good choice.

C# is a general-purpose object-oriented programming language created by Microsoft designed for building a variety of different apps. It was released in 2000 as a successor to another Microsoft language called C++.

C#’s features include:

  • Powerful object-oriented programming capabilities
  • Support for multiple languages 
  • Support for libraries of code written in other languages, such as C++ and Visual Basic .NET 
  • Support for multitasking and multithreading
  • Garbage collection

Cons

The C# language is an object-oriented programming language developed by Microsoft. It is currently one of the most popular languages that support app development for Windows, Android, iOS, and many other devices.

C# has a lot of similarities to Java in syntax and structure. However, it does have its own unique aspects.

One downside to this programming language is that it lacks a large community of developers and programmers who can help enhance the code or provide support. This means that if you are looking for more information on how to use this language, you will not find as much readily available information as you would with another language such as Java.

6. Python

Like others, Python is a great language for app development because it’s both easy to read and learn. It is also very popular among developers, which means there are plenty of resources available to help you out as you develop your skills. Here is a free course to get started with.

Python
Python

It’s also cross-platform, so you can use it on either iOS or Android devices without having to switch languages.

Python has a ton of libraries that make it easier than ever before to build the perfect app. Some of these libraries include:

  • Xcode (for iOS) 2. Interface Builder (for Android)
  • REST API
  • WebSocket API
  • SQLite3

Recommended reading: Python Best Practices: The 7 Steps That Help You Master

Pros

Python is a general-purpose language that is easy to learn and has a user-friendly design. The language, in many ways, can be viewed as the “staircase” of programming languages. It has been designed to make your programming journey easier and more intuitive.

The language is interpreted rather than compiled, which means it executes one line at a time rather than all at once. This makes developing with Python a lot quicker and simpler- not to mention that it’s also free!

Python was built with the beginner in mind, so you won’t have to worry about any confusing parts of the code when you’re just starting out. Developed by Guido van Rossum, Python was first presented publicly on December 2, 1989. Those who have learned this programming language have praised its simplicity and readability. 

Cons

The benefits of this language are many, but it’s not without its drawbacks.

Python is a good language for beginners to learn because it has fewer rules and is easy to read. You can create programs with fewer lines of code, which reduces the time needed for coding.

However, this language isn’t suitable for large-scale projects. For this reason, you need to know another programming language, like Java or C++.

Further, if you work in an academic setting or want to use this language in your research or data analysis project, you’ll find that there are very few libraries available to help with these tasks.

7. JavaScript

JavaScript is a high-level, interpreted programming language that is primarily used for client-side scripting on web pages. It has been standardized in the ECMA standardization committee.

JavaScript the best language for app development
JavaScript is the best language for app development

Brendan Eich of Netscape Communications initially developed the language to allow programmers to reuse code that had already been written. This allowed programmers to focus more on the design of the app instead of writing code from scratch.

The language was originally known as LiveScript until version 1.0 when it was renamed Netscape JavaScript due to trademark issues.

Recommended reading: Why Learn Javascript Help You Make a Lot of Money?

Pros

  • The language is relatively new and therefore less ‘dated’ than other languages
  • The language has support from the most popular browsers, including Microsoft Edge, Apple Safari, Google Chrome, Mozilla Firefox, etc.
  • It’s a versatile language that offers you to build apps with backend dynamism and frontend complexity.
  • It has a vast community of developers and programmers who are willing to help beginners in their journey of learning the language.
  • JavaScript is easy to learn as it doesn’t require any formal education and basic computer/web knowledge is enough to start programming in it.
  • The language can be used for web development but can also be used for desktop app development which makes it a highly flexible language for various purposes.

Cons

  • JavaScript is not a compiled programming language, meaning that it cannot be easily changed and updated.
  • It’s difficult to find qualified developers who know JavaScript.
  • There are many cross-platform programming languages available (e.g., Java, iOS, Android).

8. HTML/CSS

HTML (Hypertext Markup Language) and CSS (Cascading Style Sheets) are the foundational technologies that empower the visual and structural aspects of websites. Together, they form the backbone of web development, enabling developers to create captivating and well-structured web pages. Let’s explore the essence of HTML and CSS and understand their roles in shaping the online world.

HTML/CSS

Pros

  • Easy Learning Curve: Beginners find HTML and CSS relatively simple, providing a smooth entry into web development.
  • Consistent Styling: CSS ensures a consistent application of styles across diverse websites, maintaining a polished look.
  • Seamless Integration: HTML easily integrates with other languages like JavaScript and CSS, enhancing functionality.
  • Simplicity in Structure: The coding structure of HTML is straightforward, making it easy for developers to understand.
  • Cost-Free: Both HTML and CSS come at no cost, contributing to their widespread adoption.
  • Versatility in Design: CSS offers a range of formatting options, allowing developers to design web pages in various ways.

Cons

  • Browser Compatibility Challenges: Differences in browser behavior may pose challenges, requiring developers to test across various platforms.
  • Security Concerns: CSS may lack robust security measures, demanding additional precautions to protect web content.
  • Coding Complexity: Managing extensive HTML code can become complex, especially in large-scale projects.
  • Limited Capabilities of HTML Alone: HTML, on its own, can only create basic web pages, necessitating the use of additional technologies.
  • Confusion with CSS Versions: Different CSS versions (CSS, CSS 2, CSS 3) can lead to confusion among developers, impacting consistency.

9. Kotlin

Kotlin has emerged as a strong and versatile player. Developed by JetBrains and endorsed by Google as the official language for Android development, Kotlin’s impact extends beyond mobile applications to include iOS and web browsers. Let’s delve into the pros and cons that make Kotlin a noteworthy language for app development in 2024.

Kotlin

Pros

  1. Readability: Kotlin’s code boasts enhanced readability and conciseness, fostering a more accessible coding experience.
  2. Amazing Compiler: The robust compiler of Kotlin detects errors and potential bugs during the compilation phase, ensuring a more stable runtime environment.
  3. Interoperability: Kotlin seamlessly interoperates with Java, allowing developers to leverage existing Java codebases and libraries.
  4. Cross-Platform Development: With support for cross-platform development, Kotlin enables the creation of applications that can run on various platforms, streamlining the development process.
  5. Convenience: Adopting Kotlin is convenient for developers, offering a smooth learning curve and efficient coding practices.

Cons

  1. Scarce Resources for Learning: Despite its popularity, Kotlin has fewer learning resources compared to other languages, potentially posing a challenge for newcomers.
  2. Small Community: The Kotlin community is relatively smaller compared to some other languages, which may limit the available support and resources.
  3. Compilation Speed: Developers might find the compilation speed of Kotlin to be slower than desired, impacting the efficiency of the development workflow.
  4. Not Java: While Kotlin is interoperable with Java, it is essential to note that it is a distinct language with its syntax, potentially requiring developers to adapt to a new paradigm.

10. Rust

Embracing the dynamic landscape of app development, Rust stands out as a statically-typed language making waves in diverse ecosystems. Developed in 2011, Rust has swiftly gained global recognition for its versatility and robust features. Let’s explore why Rust deserves a spot among the best languages for app development in 2024.

Rust

Pros

  • Readability: Rust code boasts readability and conciseness, ensuring a smooth coding experience.
  • Amazing Compiler: Detecting errors during compilation, Rust’s compiler guarantees a stable runtime environment, fortifying the app against potential bugs.
  • Interoperability: Rust seamlessly interoperates with Java, allowing developers to harness the power of existing Java codebases.
  • Cross-Platform Development: Rust supports cross-platform development, enabling the creation of applications that transcend device boundaries.
  • Convenience: Adopting Rust is convenient, offering developers an efficient and user-friendly environment.

Cons

  • Scarce Resources for Learning: Rust faces a challenge with fewer available learning resources, demanding a more dedicated approach from developers.
  • Small Community: The smaller Rust community might limit immediate support and collaborative resources.
  • Compilation Speed: Developers might find Rust’s compilation speed slightly cumbersome, affecting the speed of the development workflow.
  • Not Java: While Rust is interoperable with Java, it’s essential to note that Rust is a distinct language, not Java itself.

11. Ruby

Ruby is another dynamic and open-source gem that prioritizes simplicity and productivity. Crafted by Yukihiro Matsumoto in the mid-1990s, Ruby has since evolved into a language known for its elegant syntax and versatility, supporting multiple programming paradigms.

Ruby

Pros

  • Readability: Ruby’s clean syntax ensures code is easily understandable, fostering a smooth development process.
  • Flexibility: Developers can freely alter Ruby’s components, providing a customizable and adaptable programming experience.
  • Community and Gem Library: A vibrant community surrounds Ruby, and its RubyGems repository offers a vast collection of libraries, expediting the software development journey.
  • Testing: Ruby places a strong emphasis on testing, featuring several robust testing frameworks for ensuring software reliability.
  • Metaprogramming: Boasting strong metaprogramming capabilities, Ruby allows developers to write code that writes code, enhancing efficiency.

Cons

  • Performance: Despite its simplicity and flexibility, Ruby may exhibit slower performance compared to some other languages.
  • Threading Model: Ruby’s threading model falls short when compared to certain other languages, potentially affecting concurrent processing.
  • Documentation: While Ruby has a wealth of gems, not all enjoy comprehensive documentation, posing a challenge for developers.
  • Runtime Speed: Ruby’s runtime speed may lag behind languages like Python or Java, influencing the overall execution speed of applications.

12. Prolog

As an acronym for “PROgramming in LOGic,” Prolog plays a pivotal role in artificial intelligence, standing out as a declarative language where problem-solving takes precedence over implementation details.

Prolog

Pros

  • Declarative Language: Prolog’s declarative nature allows developers to focus on specifying problems rather than the intricacies of their solutions, streamlining the development process.
  • Easy to Build Database: Simplifying database construction, Prolog minimizes programming effort, making data management more accessible for developers.
  • Pattern Matching: Prolog excels in pattern matching, utilizing recursion-based search mechanisms for efficient problem-solving.
  • Built-in List Handling: The inclusion of built-in list handling simplifies algorithm implementation, particularly those involving lists.
  • Efficiency: Prolog showcases high efficiency, tackling complex problems that might pose challenges in other programming languages.

Cons

  • I/O Features: Prolog lags behind LISP in terms of I/O features, potentially limiting its appeal for certain applications.
  • Input and Output Challenges: Occasionally, handling input and output in Prolog may present challenges for developers.
  • Time-Consuming: Prolog programming can be time-consuming, requiring careful consideration and precision in problem-solving.
  • Limited Use: While Prolog finds application in databases, natural language processing, and artificial intelligence, it may not be the optimal choice for numerical algorithms or intricate graphics.

13. LISP

Delving into the diverse landscape of app development, LISP, derived from “LISt Processing,” emerges as a unique and historically significant programming language. Crafted by John McCarthy in the early 1960s at MIT, LISP is distinct for its fully parenthesized prefix notation, emphasizing expressions and functions as core elements.

LISP

Pros

  • Different Paradigm: LISP’s unique paradigm fosters a fresh approach to programming, providing a valuable learning experience.
  • Dynamic Typing: LISP supports dynamic typing, enhancing flexibility in handling data types dynamically.
  • Object-Oriented Programming: LISP seamlessly integrates object-oriented programming, offering versatility in application design.
  • Supports Various Data Types: From objects to structures, LISP accommodates a broad range of data types, empowering developers with diverse options.
  • Expression-Based Language: LISP’s expression-based nature promotes concise and expressive code, facilitating efficient problem-solving.
  • Input and Output Functions: LISP supports a variety of input and output functions, contributing to its versatility.

Cons

  • Complex Syntax: The intricacies of LISP’s syntax may pose a challenge, demanding a learning curve for developers.
  • Limited Use: Despite its strengths, LISP isn’t widely adopted in commercial programming scenarios.
  • Learning Resources: Access to learning resources for LISP may be limited, potentially impacting the ease of adoption.
  • Small Community: LISP’s community size is relatively smaller compared to some mainstream languages, influencing collaborative support.

14. Malboge

Crafted by Ben Olmstead in 1998, Malbolge earns its name from Dante’s Inferno, residing in the eighth circle of hell – a testament to its complexity and cryptic nature.

Malboge

Pros

  • Unique and Challenging: Malbolge stands out as one of the most challenging programming languages, offering a unique and intellectually demanding experience.
  • Unconventional Syntax: Its syntax defies traditional conventions, providing developers with an opportunity to break free from standard programming paradigms.
  • Self-modifying Code: Malbolge’s capability for self-modifying code introduces an intriguing dimension, allowing programs to alter their instructions during execution.
  • Counterintuitive Execution: The counterintuitive nature of Malbolge’s execution challenges developers to think beyond traditional programming logic.

Cons

  • Extreme Difficulty: Malbolge’s exceptional difficulty level is both a pro and a con, as it poses a significant challenge for developers seeking practical applications.
  • Unconventional Syntax: The unconventional syntax, while fostering creativity, may hinder widespread adoption due to its departure from standard practices.
  • Self-modifying Code: The potential for self-modifying code introduces complexity, making it challenging for developers to predict and control program outcomes.
  • Counterintuitive Execution: Malbolge’s counterintuitive execution behavior may be a barrier for those accustomed to more predictable programming languages.

15. Go

Go, affectionately known as Golang, is a robust open-source programming language with the backing of tech giant Google. Conceived by Robert Griesemer, Rob Pike, and Ken Thompson, Go is statically-typed and compiled, showcasing syntax similarities with C but enriched with garbage collection and structural typing.

Go

Pros

  • Google’s Backing: Endorsed by Google, Go benefits from substantial financial support and the expertise of its distinguished creators.
  • Ease of Learning: Go’s syntax, resembling familiar languages, facilitates a smooth learning curve for developers.
  • Concurrency: Go excels in making concurrency manageable and straightforward, offering ease in handling independently executing functions (goroutines) through channels.
  • Open Source: As an open-source language, Go benefits from community-driven improvements, ensuring rapid issue detection and correction.
  • Garbage Collected Language: Go autonomously manages memory activities, enhancing developer productivity.
  • Static Code Analysis: Go relies on static code analysis, contributing to code stability and reliability.

Cons

  • Speed of Production: Go prioritizes production speed, potentially leading to trade-offs in certain scenarios.
  • Operator Overloading: Go faces challenges with operator overloading, limiting some expressive capabilities.
  • Code Duplication and Metaprogramming: Issues with code duplication and limited metaprogramming may be encountered, as these aspects cannot be statically checked.
FURTHER READING:
1. Top 5 Javascript Frameworks That You Should Master
2. 5 Best Javascript Books That You Can’t Avoid From Beginning
3. 10 Best Resources to Learn Javascript for Beginners
4. What Is ECMAScript and the 5 Latest ECMAScript Features

Designveloper’s Languages for ODC App Development

At Designveloper, our app development for ODC during the pandemic showcased our prowess in the ever-evolving landscape of technology. In navigating the complexities of healthcare data, we employed the best languages for app development to ensure efficiency and reliability.

Designveloper's Languages for ODC App Development

Microservices Architecture

Guided by the focus for utilizing the best languages for app development, our team seamlessly transitioned from a monolithic to a microservices architecture. This shift allowed us to handle the surge in tasks during the critical period of Covid-19 response in France.

Backend Development

The choice of Golang, Node.js, and Python for backend development empowered us to process vast amounts of patient information and Covid vaccination forms daily. This dynamic trio of languages formed the backbone of our system, ensuring robust performance even in the face of unprecedented challenges.

Frontend Development

On the frontend, React and Angular brought the ODC solution to life, providing a user-friendly interface for healthcare professionals and administrators. Our commitment to using the best languages extended to mobile app development, where React Native played a pivotal role in creating seamless and responsive applications.

Healthcare Database Management

In managing extensive healthcare databases, we leveraged the capabilities of Postgresql, MongoDB, Elasticsearch, and Redis. These database technologies worked in harmony, facilitating the secure storage and retrieval of critical information such as medical records and medication databases.

Synchronizing Patient Data

To ensure synchronized patient data, we incorporated the use of vitale card readers into our technical approach. This innovation played a crucial role in maintaining data accuracy and integrity, a testament to our dedication to excellence in healthcare app development.

As we expanded our team from 3 to 20 developers within a year, the collaborative effort became the driving force behind the success of the ODC solution. The growth in team size reflected our commitment to meeting the demands of the pandemic head-on and delivering timely features that made a significant impact in field hospitals.

Conclusion

Developing apps has become a big business in the past few years. There are a wide variety of mobile operating systems out there, and new ones coming out all the time. With more than 2 million apps available on app stores worldwide, it’s important to know which languages are most popular for developing apps.

However, Designveloper is excited to help you become the newest technology pioneer. We provide all of the services needed for any size business and more! Make sure we get in touch with our team if you want an estimate or just some advice on how your company can take advantage of this new field.

Also published on

Share post on

Insights worth keeping.
Get them weekly.

body

Subscribe

Enter your email to receive updates!

Got an idea? We can help you realize it.
Submit
body

Subscribe

Enter your email to receive updates!