기존의 언어를 가지고 무엇인가 만들다 보면 그 코드의 쓰임새에 있어서 패턴/정형화가 된다.
그것을 구체적으로 이름 붙히고 규율을 정해 놓으면 사람들이 이해하기 더 쉬워 지는건 인지상정.
예를들어 고양이과 동물을 다 고양이라고 하고, 호랑이에 대해서는 메우 큰 고양이, 사자에 대해서는 목에 털이 많은 고양이라고 말을 해도 알아먹기야 하겠지만, 고양이과를 사자,호랑이로 명확히 나누어서 소통하면 더 빨리 이해 할 수 있게 될 것고 효율적이게 될것이다. 프로그래밍 언어도 마찬가지이다.
새로운 언어는 보통 이전 언어/ 경쟁 대상 언어보다 더 키워드가 많아 지게 되는데 예를들어
C++에는 없던 interface 키워드가 자바에서는 생겼는데 C++에는 비록 interface가 없더라도 class가 그 역할을 겸하였지만, 자바에서는 Interface라고 키워드를 추가하였기 때문에 자바 개발자들은 인터페이스를 적용하는면에 있어서 더 나아졌다. 즉 처음 자바로 프로그래밍을 공부한 사람은 그냥 그게 너무 당연한 Class와 구분된 기능인 것이다.
마찬가지로 보통 자바 개발자들은 class에 대해 보통 한가지를 떠올리겠지만. 자바 class를 많이 사용한 자바구루들은 어떤 정형화 된 패턴들을 발견 할 수 있었을 것이다. 이런식으로 사용되는 클래스 저런 제한이 있는 클래스..
코틀린에서는 신생언어 답게 이런 것들을 세분화 시켜서 키워드를 추가하였다.
그런 덕분에 코틀린을 공부한 사람은 자연스럽게 Class를 더 품격(?) 높게 구분해서 사용 할 수 있는 힘을 갖게 되었다.
data class, value class, sealed class, enum class 등이 바로 이런 것들이다.
'소프트웨어 사색' 카테고리의 다른 글
| Rust (async/Future) vs Kotlin Coroutines vs Java Virtual Threads 차이 [기초] (2) | 2024.12.20 |
|---|---|
| 고품질 코드 (1) - 기존 코드 건드리지 말기 (feat. 코틀린) (0) | 2023.06.05 |
| 내 언어의 한계가 내 세계의 한계다 (1) | 2022.08.30 |
| 잘 짠 코드란?? (0) | 2022.05.07 |
| SI,정부과제 vs 서비스 vs 솔루션 장단점 (1) | 2022.03.14 |