Using Java for FRC
Author: Brandon Jun
Class: 2025 Software Member
Introduction
As of 2025, Java and Kotlin are the two main languages 4079 uses. The main languages of FRC teams are typically C++, Java, and Python, however is not only limited to these three, which we'll discuss later on. The reasons why we don't use C++ is because it does not give us the benefit that we want for such a low-level language, and for Python the language is simply too inefficient for our robot code, making Java the best and most sufficient middle language for us.
Context Behind Java
Since Java is the more primary language for 4079, knowing Java and the object-oriented system behind it is essential for starting with FRC software, and the best way to learn is knowledge and exposure. There are a plethora of online resources to learn the basics of Java, and simple projects to understand the language to better prepare for FRC software.
Resources:
1. w3schools
w3schools is a great resource for learning Java, as it provides a simple and easy-to-understand guide for beginners. It covers all the basics of Java, from variables and data types to loops and arrays and includes advanced libraries of Java. The website also offers interactive examples and exercises to help you practice your skills.
2. codecademy
Codeacademy is another available resource for learning Java. It offers a more detailed however limited guide for beginners. This course is also more narrowed down on the order of how you learn Java, and is not the highest recommended resource from 4079, but is available for those who want to try it.
Beyond the "Norms"
Touching back on the typical languages of FRC teams, C++, Java, and Python, again, are not the limits of FRC Software. 4079 has seen the likes of C#, Rust, and Go from other teams. During the 2024 off-season, Kotlin, a JetBrains development of Java, was introduced to the team. The specific key advantage of Kotlin will be elaborated in the next page, but we'll explain the functionality of Kotlin here. Since major FRC libraries like WPILIB and [add more] really only recognize C++, Java, and Python, languages like Rust would be really hard to integrate into our robot code. However, since Kotlin has direct support for Java, it can use anything Java can but with all the benefits of Kotlin and its own compiler.