This project demonstrates the same calculator functionality implemented in both Java and Kotlin, showcasing Kotlin's advantages in conciseness, safety, and modern language features. See:
- README.md - Quick comparison overview
- JAVA_KOTLIN_COMPARISON.md - Detailed technical comparison
-
Prerequisites
- Java 22 or higher
- Git
-
Clone and Build
git clone <repository-url> cd kotlin-java-comparison ./gradlew build
# Run all tests
./gradlew test
# Run Java calculator application
./gradlew runJava
# Run Kotlin calculator application
./gradlew runKotlin
# Run Builder Pattern comparison demos
./gradlew runJavaBook # Java Builder Pattern example
./gradlew runKotlinBook # Kotlin named parameters example
# Generate test reports
./gradlew test jacocoTestReport-
Build and Test Locally
./gradlew clean build test -
Run Both Applications
./gradlew runJava runKotlin
-
Check for Security Issues
./gradlew dependencyCheckAnalyze
All pull requests and commits to main/master automatically trigger:
- Multi-platform builds (Ubuntu, Windows, macOS)
- Unit and integration tests for both Java and Kotlin
- Security scanning for vulnerabilities
- Code quality analysis via CodeQL
- Java: Follow standard Java conventions
- Kotlin: Follow Kotlin coding conventions
- Tests: Write tests for both Java and Kotlin implementations
- Documentation: Update README.md for significant changes
src/
├── main/
│ ├── java/com/claymccoy/
│ │ ├── jcalc/ # Java calculator implementation
│ │ └── builder/ # Java Builder Pattern example
│ └── kotlin/com/claymccoy/kcalc/ # Kotlin implementation
└── test/
├── java/com/claymccoy/jcalc/ # Java tests
└── kotlin/com/claymccoy/
├── kcalc/ # Kotlin calculator tests
└── builder/ # Kotlin Book example (named params)
- Fork the repository
- Create a feature branch
- Make your changes
- Add/update tests as needed
- Ensure all CI checks pass
- Submit a pull request
Feel free to open an issue for any questions or suggestions!