최근 수정 시각 : 2023-03-08 19:20:11

V(프로그래밍 언어)

프로그래밍 사이트 선정 프로그래밍 언어 순위 목록
{{{#!wiki style="margin: 0 -10px -5px; word-break: keep-all"
{{{#!wiki style="display: inline-block; margin: 0 0 -5px; min-width: 25%"
{{{#!folding ⠀[ IEEE Spectrum 2023 ]⠀
{{{#!wiki style="margin:-6px -1px -10px"
<rowcolor=#fff> 스펙트럼 부문 상위 10개 프로그래밍 언어 직업 부문 상위 10개 프로그래밍 언어
1 Python 1 SQL
2 Java 2 Python
3 C++ 3 Java
4 C 4 JavaScript
5 JavaScript 5 C++
6 C# 6 C#
7 SQL 7 C
8 Go 8 HTML
9 TypeScript 9 Shell
10 HTML 10 SAS
}}}}}}}}}
⠀[ Stack Overflow 2023 ]⠀
||<tablewidth=100%><width=2000><-4><bgcolor=#FFA500><tablebgcolor=#fff,#222> 2023년 Stackoverflow 설문조사 기준 인기 상위 25개 프로그래밍 언어 ||
1 JavaScript 14 Rust
2 HTML, CSS 15 Kotlin
3 Python 16 Ruby
4 SQL 17 Lua
5 TypeScript 18 Dart
6 Bash 19 어셈블리어
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=2000><-4><bgcolor=deepskyblue><tablebgcolor=#fff,#222> 2024년 2월 기준 검색어 점유율 상위 20개 프로그래밍 언어 ||
1 Python 11 Fortran
2 C 12 Delphi / Object Pascal
3 C++ 13 MATLAB
4 Java 14 Assembly language
5 C# 15 Scratch
6 JavaScript 16 Swift
7 SQL 17 Kotlin
8 Go 18 Rust
9 Visual Basic 19 COBOL
10 PHP 20 Ruby
{{{#!wiki style="margin:0 -10px -5px; min-height: 26px"
{{{#!folding [ 21위 ~ 50위 펼치기 · 접기 ]
{{{#!wiki style="margin: -6px -1px -10px"
21 R 36 Transact-SQL
22 SAS 37 VBScript
23 Classic Visual Basic 38 Haskell
24 Prolog 39 TypeScript
25 Ada 40 Logo
26 Perl 41 Bash
27 (Visual) FoxPro 42 Scheme
28 Dart 43 Solidity
29 D 44 ABAP
30 F# 45 ML
31 Scala 46 X++
32 Objective-C 47 PL/SQL
33 Lua 48 GAMS
34 Julia 49 PowerShell
35 LISP 50 RPG
}}}}}}}}} ||
⠀[ PYPL 2024 ]⠀
||<tablewidth=100%><width=2000><-4><bgcolor=green><tablebgcolor=#fff,#222> 2024년 2월 기준 검색어 점유율 상위 20개 프로그래밍 언어 ||
1 Python 11 Rust
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 TypeScript 18 PowerShell
9 Swift 19 VBA
10 Objective-C 20 Lua
}}} ||
프로그래밍 언어 목록 · 분류 · 문법


1. 개요2. 특징3. 문법
3.1. 주석3.2. 자료형3.3. 조건문3.4. 반복문
4. 논란

1. 개요

알렉스 메드베드니코프가 제작중인 프로그래밍 언어. 2019년 2월에 선보였으며 2019년 6월 22일 첫 알파 버전의 소스 코드가 공개되었다. 2020년 12월 22일에 안정화 버전인 0.2 버전이 공개되었다.

Go의 단순함에 Rust의 안전함을 접목하는 것을 목표로 하고 있다.

2021년 1월 기준으로 2만 1천개의 GitHub 스타 수를 기록하고 있다.

2. 특징

홈페이지에서 주장하고 있는 언어의 특징은 아래와 같다. 이 중 많은 부분이 아직까지 실제로 구현되지는 않았으므로 참고할 것.
목표가 대단해서 가능할지 의문이 들지만 대신 언어스펙이 Go 이상으로 매우 간단하여 가능하다고 주장하고있다.
  • 안전함
    • Null 없음
    • 전역 변수 없음
    • 정의되지 않은(undefined) 값 없음
    • 정의되지 않은 동작 없음
    • 변수 가려짐(variable shadowing) 없음
    • 배열 경계 검사
    • Option/Result 타입
    • 제너릭
    • 기본이 불변(immutable) 변수
    • 기본이 순수 함수
    • 기본이 불변 구조체
    • 가비지 컬렉터와 레퍼런스 카운팅 없는 자동 메모리 관리
  • 성능
    • C만큼 빠름
    • 추가 비용 없는 C 연동
    • 최소한의 메모리 할당
    • 리플렉션 없는 직렬화(serialization)
    • 추가 의존성 없는 바이너리 빌드: 간단한 웹서버가 65kb의 용량만 차지함
  • 빠른 컴파일: 초당 10만 줄에서 120만 줄의 코드를 컴파일 가능
  • 가벼운 컴파일러: 컴파일러를 컴파일하는데 1MB 미만의 디스크 용량만을 요구하며, 0.15초에서 0.6초 사이에 컴파일 가능
  • (WIP) C 코드를 V 코드로 변환 가능: 소스 코드를 V로 변환하면 전체 소스 코드를 0.7초 안에 컴파일 가능
  • 핫 코드 리로딩: 소스 코드를 고치면 변경 내용이 바로 반영됨
  • (WIP) 복잡한 3D 모델과 텍스쳐를 렌더링할 수 있는 3D 라이브러리
  • 네이티브 크로스컴파일 UI 라이브러리 내장
  • 크로스 컴파일 기능
  • 간단한 의존성 관리 기능: v 컴파일러 내에 배포/의존성 관리 기능이 내장
  • V 코드를 C 코드로 변환 가능: C 컴파일러가 있는 모든 운영체제/하드웨어에서 구동 가능
  • REPL[1]
  • 스크립트 기능
  • 내장 웹 프레임워크
  • 내장 ORM

3. 문법

함수나 변수는 기본적으로 private이고 public은 앞에 pub를 붙인다.
변수는 기본적으로 immutable이고 mutable은 앞에 mut를 붙인다.

3.1. 주석

c like언어로 동일하게 //와 /* */를 사용한다.

3.2. 자료형

booleanbool
문자열string
정수i8 i16 int[2] i64 i128(soon)
부호 없는 정수byte u16 u32 u64 u128(soon)
유니코드rune
실수f32 f64
포인터byteptr voidptr

3.3. 조건문

if 조건 {
} else {
}

match 변수 {
    값1 {}
    값2 {}
    ....
    else {}
}

match는 리턴값을 가질 수 있다.

3.4. 반복문

for하나만 있지만 다양한 형태를 지원한다.
for 값 in 배열 배열 순회
for 인덱스, 값 in 배열 배열 순회
for 키, 값 in 맵 맵 순회
for 조건 조건 반복
for 무한 반복
for 시작;조건;증감 c 스타일

4. 논란

베이퍼웨어라는 논란이 있다. #
안정화 버전인 0.2는 2020년 1월 말에 나올 계획이었지만 2020년 12월 22일에 공개되었다.
혁신적인 메모리 관리를 한다고 한다. 컴파일 단계에서 90~100% 메모리를 해제하고 나머지는 레퍼런스 카운팅으로 해제한다고한다. 프로그래머가 따로 손볼 곳이 없다고.....

[1] Python처럼 한줄씩 입력받아 결과물을 즉시 보여주는 기능.[2] int는 항상 32비트다.