프로그래밍 사이트 선정 프로그래밍 언어 순위 목록 | ||||
{{{#!wiki style="margin: 0 -10px -5px; word-break: keep-all" {{{#!wiki style="display: inline-table; min-width: 25%; min-height: 2em;" {{{#!folding [ IEEE Spectrum 2024 ] {{{#!wiki style="margin: -5px 0" | <rowcolor=#fff> 스펙트럼 부문 상위 10개 프로그래밍 언어 | 직업 부문 상위 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++ |
}}}
}}}
- [ Stack Overflow 2024 ]
- ||<tablewidth=100%><width=9999><-4><bgcolor=#FFA500><tablebgcolor=#fff,#222> 2024년 Stackoverflow 설문조사 기준 인기 상위 25개 프로그래밍 언어 ||
1 JavaScript 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
- [ TIOBE 2024 ]
- ||<tablewidth=100%><width=9999><-4><bgcolor=deepskyblue><tablebgcolor=#fff,#222> 2024년 8월 기준 검색어 점유율 상위 20개 프로그래밍 언어 ||
1 Python 11 MATLAB 2 C++ 12 Delphi / Object Pascal 3 C 13 PHP 4 Java 14 Rust 5 C# 15 Ruby 6 JavaScript 16 Swift 7 SQL 17 Assembly language 8 Visual Basic 18 Kotlin 9 Go 19 R 10 Fortran 20 Scratch {{{#!wiki style="margin: 0 -10px -5px; min-height: calc(1.5em + 5px);"
{{{#!folding [ 21위 ~ 50위 펼치기 · 접기 ]
{{{#!wiki style="margin: -5px -1px -11px"21 COBOL 36 Scala 22 Classic Visual Basic 37 Transact-SQL 23 LISP 38 PL/SQL 24 Prolog 39 ABAP 25 Perl 40 Solidity 26 (Visual) FoxPro 41 GAMS 27 SAS 42 PowerShell 28 Haskell 43 TypeScript 29 Dart 44 Logo 30 Ada 45 Wolfram 31 D 46 Awk 32 Julia 47 RPG 33 Objective-C 48 ML 34 VBScript 49 Bash 35 Lua 50 Elixir
- [ PYPL 2024 ]
- ||<tablewidth=100%><width=9999><-4><bgcolor=green><tablebgcolor=#fff,#222> 2024년 8월 기준 검색어 점유율 상위 20개 프로그래밍 언어 ||
1 Python 11 Objective-C 2 Java 12 Go 3 JavaScript 13 Kotlin 4 C# 14 MATLAB 5 C/C++ 15 PowerShell 6 R 16 VBA 7 PHP 17 Dart 8 TypeScript 18 Ruby 9 Swift 19 Ada 10 Rust 20 Lua
}}} ||
프로그래밍 언어 목록 · 분류 · 문법 |
#lang racket (println 'Hello, world!')
라켓 Racket | |
개발자 | Matthias Felleison Mattew Flatt Robby Findler Shriram Krishnamurthi |
최초 공개 | 1995년 1월 28일 ([age(1995-01-28)]년 전) |
최신 버전 | 8.14 (2024년 8월 19일) |
[clearfix]
1. 개요
라켓(Racket)은 리스프/스킴 계열 언어 중 하나인 범용 프로그래밍 언어이다. 라켓은 프로그래밍 언어 생성, 구현, 및 디자인에 최적화 된 언어이다. 라켓은 스크립팅, GUI 애플리케이션을 포함한 범용 애플리케이션 프로그래밍, 교육용 및 연구용 언어로 많이 쓰인다. 이 언어를 만든 사람 중 하나인 Robby Findler는 이걸 써서 강의에 쓰는 슬라이드를 만든다.패키지를 설치하려면 다음과 같이 명령어
raco
를 이용한다.[1]raco pkg install <pkg-name>
2. 역사
1990년대 중반에 미국 라이스 대학교의 교수 Matthias Felleison과 박사학위 학생들이었던 Matthew Flatt, Robby Findler, 및 Shriram Krishnamurthi가 교육용 언어로 쓰기 위해 Scheme을 기반으로 한 새 언어를 개발하기로 한다. 그리고 이 언어를 위한 전용 IDE인 DrRacket을 개발하게 된다. 처음 개발을 시작하고 만든 언어의 이름은 PLT Racket이었으나 2010년 6월에 현재 언어인 Racket으로 변경되었다.3. 특징
- 라켓이 다른 LISP 계열 언어와 비교해서 다른 점은 특유의 유연한 매크로와 확장성이라고 할 수 있다. 이렇게 만들어진 모듈들은 라켓 기본 언어의 문법을 오버라이드 하게 된다. 일단 모듈은 그 자체가 한 언어로 볼 수 있으므로 그걸 #lang ____ 이런 형식으로 가져와서 쓰게 될 경우 언어 자체를 바꿔버리는 게 가능하다. 극단적인 예시로, 이를 이용하여 라켓에서 파이썬 돌리게 해주는 모듈도 있다![2]
- 라켓은 확장자로
.rkt
를 사용한다.
4. 예제
문법 자체는 커먼 리스프와 스킴 등을 크게 벗어나지 않는다. 모든 언어는 일단 헬로월드부터 출력한다.(print "Hello World\\n")
커먼 리스프에서의 함수를 정의하는 키워드인 defun
대신 define
을 쓴다. 피보나치 숫자를 리턴하는 재귀함수를 구현하면 아래와 같다.(define fib (n)
(cond
[(< n 2) 1]
[else (+ (fib (- n 1)) (fib (- n 2)))]))
5. DrRacket
- 라켓 언어 전용 IDE로 처음엔 C++로 구현되었으나 버전 5.0부터는 라켓으로 다시 쓰여졌다.
- 윈도, macOS, Linux 등 거의 모든 플랫폼을 지원한다.
- 익숙해지면 꽤 쓸만하다. 특히 이 IDE의 가장 편한 점 중 하나는 괄호를 자동으로 닫아준다는 것이다. 스킴 계열 언어에서는 대괄호, 중괄호, 소괄호 모두가 쓰이는데 그게 여러 개 쌓일 경우 불가능하다. 이렇게 써놓으니까 무슨 소린지 잘 모르겠지만 일단 써보면 안다.(...) 대괄호, 중괄호, 소괄호를 섞어 사용했을 경우, 나중에 소괄호를 연타해도 알아서 중, 대괄호로 바꿔준다. 쓰다 보면 은근 편하다.
6. 여담
- 프로그래밍 언어론 교재 Essentials of Programming Languages 서문에 R5RS 호환되는 Scheme이면 실습이 가능하다고 안내되어 있으나 라켓의
eopl
패키지를 이용하면 실습을 진행하기 수월하다.[3]
7. 관련 문서
8. 외부 링크
[1] https://docs.racket-lang.org/pkg/getting-started.html[2] https://github.com/pedropramos/PyonR[3] https://docs.racket-lang.org/eopl/index.html