[[프로그래밍 언어|'''프로그래밍 언어 {{{#!wiki style="font-family: Times New Roman, serif; display: inline;"]] | ||||||||
{{{#!wiki style="min-height: calc(1.5em + 5px); margin: 0 -10px -5px" {{{#!wiki style="display: inline-table; min-width: 40%; min-height: calc(1.5em + 5px)" {{{#!folding [ 목록 ] {{{#!wiki style="margin: -5px -1px" | <colbgcolor=royalblue><colcolor=#fff> ※ 나무위키에 등재된 프로그래밍 언어 목록 | |||||||
A | ActionScript · Ada · Agda · ALGOL · APL · awk | |||||||
B | BASIC · Befunge · Brainfuck | |||||||
C | C · C# · C++ · Carbon · Chef · Clojure · COBOL · CoffeeScript · Coq · Crystal | |||||||
D | D · Dart | |||||||
E | Elixir · Elm · emojicode · Erlang · ETA | |||||||
F | F# · Forth · Fortran | |||||||
G | GNU Octave · Go · Groovy | |||||||
H | Haskell · HolyC · HQ9+ · HRON | |||||||
I | ||||||||
J | Java · JavaScript · Julia | |||||||
K | Kotlin · Krait | |||||||
L | Lean · LISP · Lua | |||||||
M | Malbolge · MATLAB · Max · Mojo · Moonlight | |||||||
N | Nim · Nix | |||||||
O | Oberon · Objective-C · OCaml · Ook! | |||||||
P | Pascal · Perl · PHP · Processing · Prolog · Python | |||||||
Q | Q# | |||||||
R | R · Racket · Raku · ReasonML · Ruby · Rust | |||||||
S | Scala · Scheme · Scratch · sed · Shakespeare · Shell Script · Smalltalk · Swift | |||||||
T | TypeScript | |||||||
U | Udon | |||||||
V | Visual Basic · Visual Basic .NET · Visual Basic for Applications · vvvv | |||||||
W | Wave · Whitespace | |||||||
X | ||||||||
Y | ||||||||
Z | ZenScript · Zig | |||||||
한글 | 누리 · 숨 · 씨앗 · 아희 · 약속 · 엄랭 · 엔트리 · 창조 | }}}}}}}}}{{{#!wiki style="display: inline-table; min-width: 40%; min-height: calc(1.5em + 5px)" {{{#!folding [ 순위 ] {{{#!wiki style="margin: -5px -1px -10px" | {{{#!wiki style="min-height: calc(1.5em + 5px); margin: 0 -10px -5px" {{{#!wiki style="display: inline-table; min-width: 25%; min-height: calc(1.5em + 5px)" {{{#!folding [ IEEE Spectrum 2024 ] {{{#!wiki style="margin: -5px -1px" | <tablewidth=100%><tablebgcolor=transparent><colbgcolor=#11a500><colcolor=#fff> 스펙트럼 부문 상위 10개 프로그래밍 언어 | <colbgcolor=#ff1100><colcolor=#fff> 직업 부문 상위 10개 프로그래밍 언어 | |||
1 | Python | 1 | SQL | |||||
2 | Java | 2 | Python | |||||
3 | JavaScript | 3 | Java | |||||
4 | C++ | 4 | TypeScript | |||||
5 | TypeScript | 5 | SAS | |||||
6 | SQL | 6 | JavaScript | |||||
7 | C# | 7 | C# | |||||
8 | Go | 8 | HTML | |||||
9 | C | 9 | Shell | |||||
10 | HTML | 10 | C++ | }}}}}}}}}{{{#!wiki style="display: inline-table; min-width: 25%; min-height: calc(1.5em + 5px)" {{{#!folding [ Stack Overflow 2024 ] {{{#!wiki style="margin: -5px -1px" | <colbgcolor=#ffa500><colcolor=#fff> 2024년 Stackoverflow 설문조사 상위 25개 프로그래밍 언어 | |||
1 | JavaScript | <colbgcolor=#ffa500><colcolor=#fff> 14 | Rust | |||||
2 | HTML & CSS | 15 | Kotlin | |||||
3 | Python | 16 | Lua | |||||
4 | SQL | 17 | Dart | |||||
5 | TypeScript | 18 | 어셈블리어 | |||||
6 | Bash | 19 | Ruby | |||||
7 | Java | 20 | Swift | |||||
8 | C# | 21 | R | |||||
9 | C++ | 22 | Visual Basic | |||||
10 | C | 23 | MATLAB | |||||
11 | PHP | 24 | VBA | |||||
12 | PowerShell | 25 | Groovy | |||||
13 | Go | }}}}}}}}}{{{#!wiki style="display: inline-table; min-width: 25%; min-height: calc(1.5em + 5px)" {{{#!folding [ TIOBE 2025 ] {{{#!wiki style="margin: -5px -1px" | <colbgcolor=#2777c2><colcolor=#fff> 2025년 2월 TIOBE 검색어 점유율 상위 20개 프로그래밍 언어 | |||||
1 | Python | <colbgcolor=#2777c2><colcolor=#fff> 11 | Fortran | |||||
2 | C++ | 12 | Scratch | |||||
3 | Java | 13 | Rust | |||||
4 | C | 14 | PHP | |||||
5 | C# | 15 | R | |||||
6 | JavaScript | 16 | MATLAB | |||||
7 | SQL | 17 | Assembly language | |||||
8 | Go | 18 | COBOL | |||||
9 | Delphi / Object Pascal | 19 | Ruby | |||||
10 | Visual Basic | 20 | Prolog | }}}}}}}}}{{{#!wiki style="display: inline-table; min-width: 25%; min-height: calc(1.5em + 5px)" {{{#!folding [ PYPL 2025 ] {{{#!wiki style="margin: -5px -1px -10px" | <colbgcolor=green><colcolor=#fff> 2025년 3월 PYPL 검색어 점유율 상위 20개 프로그래밍 언어 | |||
1 | Python | <colbgcolor=green><colcolor=#fff> 11 | Swift | |||||
2 | Java | 12 | Go | |||||
3 | JavaScript | 13 | Kotlin | |||||
4 | C/C++ | 14 | MATLAB | |||||
5 | C# | 15 | Ada | |||||
6 | R | 16 | Dart | |||||
7 | PHP | 17 | Ruby | |||||
8 | Rust | 18 | Lua | |||||
9 | TypeScript | 19 | PowerShell | |||||
10 | Objective-C | 20 | VBA | }}}}}}}}}}}} | }}}}}}}}}}}} | |||
분류:프로그래밍 언어 · 프로그래밍 언어 목록 · 언어별 예제 · 틀:프로그래밍 언어 문법 |
크리스탈 Crystal | |
| |
<colbgcolor=#ffffff,#1c1d1f><colcolor=#000,#fff> 개발 | Crystal Team |
전 개발자 | Ary Borenszweig Juan Wajnerman Brian Cardiff |
안정 버전 | v1.15.1 |
최초 발표 | 2011년 6월 19일[1] |
컴파일러 | LLVM |
라이선스 | Apache License 2.0 |
지원 플랫폼 | Linux, macOS, Windows[2] |
확장자 | .cr |
|
1. 개요
#!syntax ruby
puts "Hello, World!"
C 수준의 성능과 Ruby의 간결함을 동시에 만족시키기 위해 위한 LLVM 기반 고급(High-Level) 컴파일 프로그래밍 언어.
2. 특징
2.1. 장점
- Ruby와 유사한, 간결하고 직관적인 문법을 제공해 사람에 따라 타 언어보다 배우기 쉽게 느껴질 수 있다.[3] 특히 이미 루비에 익숙하거나 루비 개발자라면 더욱 쉽게 익힐 수 있다.
- 순수 동적 타입 언어인 루비와 다르게 정적(static) 타입 시스템을 사용한다. 다시 말해 컴파일 타임에 모든 타입을 검사하여 버그를 잡아낼 수 있다. 타입 추론 역시 지원하기에 타입을 명시하지 않아도 추론이 가능하다.
- 타입 시스템에서 제네릭을 사용 가능하다. 클래스를 선언할 때
(T, V)
식으로 타입 변수를 선언하는 식. 상속 특수화 타입도 지원한다. - LLVM을 이용하여 네이티브 바이너리 형태로 컴파일되므로 런타임 오버헤드가 줄고 실행 속도가 빠르다.
- GC 지원으로 프로그래머가 메모리 할당을 관리할 필요가 없다.
- Go와 비슷하게 Fiber 형태의 경량 스레드를 지원하며 이를 활용해 고성능 네트워크 프로그래밍을 쉽게 할 수 있다.[4]
- 컴파일 타임 메타프로그래밍으로 코드 생성을 자동화할 수 있다.
2.2. 단점
- 공식적으로 Linux, macOS를 우선 지원하다 보니 결과적으로 Windows의 지원이 미흡하다. 이렇다보니 윈도우만 이용하는 개발자의 경우 큰 걸림돌이 될 수 있다.
- Python, Java, JavaScript처럼 방대한 라이브러리 생태계를 갖추지 못했다. 주로 머신러닝, 데이터 과학 관련 라이브러리가 부족하다.
- 정적 타입과 LLVM 최적화 과정, 다중 스레드 지원 제한으로 인해 컴파일 속도가 상당히 느리다. 빌드시
--no-debug
옵션을 넣는 등의 유사 해결책들이 있으나 완전히 문제를 해결하지는 못한다. Ruby처럼 JIT 도입 논의가 아예 없는 것은 아니나 현재 상용 수준으로 쓸만한 구현체는 없는 실정.
3. 기타
- {{{crystal app.cr