What is Scala?

1 분 소요

Scala

  • Scala는 Programming language입니다. Scala 또한 요즘 나오는 대부분의 Programming Language처럼 “General-purpose programming”라고 합니다만, 굳이 따지면 “함수형 프로그래밍 언어”에 가깝습니다. 물론, Haskell처럼 pure-functional language는 아니구요.
  • “뭐야, “뭐야, 그럼 Scala를 잘 쓰려면 Functional Programming을 알아야 하는거 아니야?”라고 생각할 수도 있지만, 반대로, “Scala를 대충 훑어 보면 Functional Programming을 잘 쓸 수 있어”라고 생각하는 게 더 좋을 것 같네요.

Scala의 탄생

  • 스위스 로잔 연방 공과대학교의 ‘마틴 오더스키’ 교수가 개발했습니다.
  • 마틴 오더스키 교수는 이전에 함수형 언어를 연구했고 동시에 Java의 기능 확장에 대해서도 연구했습니다. 그리고 그 과정에서 Scala 개발 이전에는 Funnel - functional Nets이라고 하는 “Petri-net과 함수형 언어를 통합”한 언어를 개발하기도 했죠.
    • 제가 대학원에서 PetriNet을 연구했기 때문에, Petri-Net과 함수형 언어를 어떻게 합쳤는지 궁금하기는 한데, 귀찮으므로 다음에 하도록 합니다.

Java와의 관련성

  • Scala의 경우 Java Bytecode(.class)로 컴파일 됩니다. 즉, JVM에서 실행 가능하다는 이야기죠.
  • 뿐만 아니라, java의 다양한 라이브러리들과도 연결되어 있어서 자유롭게 호환된다는 강점이 있죠.
  • 마틴 오더스키 교수는 원래 Java의 확장에 대해서 연구했고, 함수형 프로그래밍 측면에서 어떻게 Java의 기능을 함수적으로 확장할까?를 고민하다가 나온 결과물이 Scala라고 생각하셔도 됩니다.

Kotlin과 Scala의 차이점

  • Scala는 학계에서 ‘Java를 함수적으로 확장하기 위해’ 나온 언어이고, Kotlin의 경우는 산업계, JetBrain이라는 회사에서 만들었죠.
  • 회사에서 만들어진 것처럼 Kotlin의 경우는 기존의 복잡한 Java Programming을 편하게 하기 위한 실용적인 목적으로 개발되었습니다. 긴 코드를 상대적으로 짧은 코드만으로 표현할 수 있다는 점이 Kotlin이 가지고 있는 강점이죠.

Wrap-up

  • 그 외에도 좀 더 정리할 것들이 있는 것처럼 보이지만, 일단은 여기까지만 정리하겠습니다. 나머지는 직접 개발을 좀 해봐야 알 것 같아요.

reference

댓글남기기