이 문서 내용은 좀 낡았습니다.
60일이나 편집 안된 오래된 망한 문서니 개발 문서인 경우 참고할 때 조심하세요. 최신 정보를 알고 싶으면 게시판에 글 써주세요


목차

1. 개요
2. 왜 차기 언어를 검토하는가?
3. 조건
4. 여러 언어 검토
4.1. Golang (확정)
4.2. Crystal (탈락)
4.3. Dart (탈락)

1. 개요

차기 개발 언어 선정 과정이다

2. 왜 차기 언어를 검토하는가?

  • 속도 개선
  • 공부 겸
  • 언젠간 프로그램 자체를 차기 언어로 넘겨버리기 위해서

3. 조건

  • 네이티브 컴파일 언어
  • 크로스 컴파일 가능
  • GC 있어야함
  • 라이브러리 관리가 편해야함

4. 여러 언어 검토

4.1. Golang (확정)

  • 네이티브 컴파일 언어 O
  • 크로스 컴파일 기능 O
  • GC 있어야함 O
  • Google의 지원을 받음 -> 라이브러리 많음
  • Class가 없고 struct를 통한 상속 구조
  • 스레드 이용하기 쉬움 (고루틴)

4.2. Crystal (탈락)

  • 네이티브 컴파일 언어 O
  • 크로스 컴파일 기능 △(android_X_해결됨)(windows_△)
  • GC 있어야함 O
  • Ruby와 어느정도 호환됨
  • 신생 언어라 라이브러리가 적음
  • 최근에 테스트를 좀 해봤는데 네이티브 크로스 컴파일이 안됨 obj로만 나옴

4.3. Dart (탈락)

  • 네이티브 컴파일 언어 △(3)
  • 크로스 컴파일 기능 X(4)
  • GC 있어야함 O
  • 구글이 밀어주는 언어임
(android_X_해결됨) termux 상에서 제대로 안 돔 - ARM 지원이 미흡함 최근 해결된 듯 하다
(windows_△) exe로 컴파일은 되는데 보장해주질 않음
(3) 기본은 DVM 상에서 작동함 따로 컴파일 가능
(4) AOT를 이용한 컴파일을 지원하는 데 크로스 컴파일이 안됨