C# is NOT Java Done Right. Hear me out.
- C#은 Java를 단순히 개선한 것이 아니라, Kotlin이 Java를 개선한 언어라고 생각함. 💡
- Java 제네릭은 컴파일 시 타입 정보가 제거되어 런타임 시 박싱/언박싱이 발생하지만, C#은 런타임에도 타입 정보를 유지하여 더 효율적임. 📦
- C#은 속성(properties)을 언어 차원에서 지원하여 getter와 setter를 간결하게 작성할 수 있지만, Java는 Lombok과 같은 도구를 사용해야 함. ⚙️
- C#은 확장 메서드를 통해 기존 클래스에 새로운 메서드를 추가할 수 있지만, Java는 이러한 기능이 없음. ➕
- Java는 checked exception을 강제하지만, C#은 unchecked exception을 사용하여 코드의 간결성을 높임. ⚠️
- C#은 async/await 키워드를 통해 비동기 코드를 동기 코드처럼 작성할 수 있지만, Java는 CompletableFuture와 같은 복잡한 방식을 사용해야 함. ⏱️
- C#은 LINQ를 통해 컬렉션 데이터를 쉽게 필터링하고 조작할 수 있지만, Java는 Stream API를 사용해야 함. 🔗
- Java는 Spring, Hibernate, Maven, Gradle 등 대규모 생태계를 가지고 있지만, C#은 Microsoft에서 제공하는 기능이 많아 생태계가 상대적으로 작음. 🌐
- Java는 크로스 플랫폼 지원이 강점이지만, C#은 Unity 게임 개발에서 많이 사용됨. 🎮
- 결론적으로, C#과 Java는 각각 장단점이 있으며, Kotlin은 두 언어의 장점을 결합한 언어라고 생각함. ⚖️