일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 양평역
- 안드로이드
- QT
- android SAF
- QTcpServer
- Qt OpenGL
- 바이크
- 잡담
- 오토바이
- 디자이어HD
- 스타2
- 엑티브엑스
- 이륜차
- 자료구조
- 정성하
- 재귀함수
- Qt 소켓프로그래밍
- FFI
- HTML
- 자바
- Java
- vuejs
- 윈도우7
- 스타크래프트2
- 고속도로
- qt 설치
- Qt4
- c언어
- 알람프로그램
- 마영전
- Today
- Total
프로그래밍과 잡담
Rust 언어를 한번 보고 있다.. 본문
이 언어는 모질라에서 만든 언어이며, 모질라에서 이 언어로 웹브라우저 엔진을 만들고 있다고 한다.
Rust는 C++과 거의 동일한 속도로 동작하며, 동시성, 멀티코어, 메모리 안전성을 지원하는데, 특히 메모리 안정성을 강조한다. 메모리 안정성은 좀 특이한 방식으로 처리하고 있다. 소유권이라는게 있어가지고 있어서 마음대로 막 공유를 못하게 해서 안정성을 강화한다고 한다. 컴파일 타임에 메모리 문제를 걸러낸다고 한다.
근데 장점만 있느냐, 단점으로는 컴파일러가 되게 엄격하다.. 메모리를 안정성을 담보 하기 위해서, C나 C++은 넘어가는 부분도 Rust 컴파일러는 넘어가지 않는다.. 그리고 신생언어다보니 IDE가 없다. vim, emacs, 비주얼 스튜디오, IntelliJ 에 플러그인 방식으로 해서 있긴한데, 초창기다보니 IDE가 썩 별로다.. intellisense가 잘 동작을 안한다던지 하는 등의 문제가 있다. vim이나 emac는 쓰던 사람들이나 쓰는 에디터다 보니, 난 하나도 모르겠음..
프로그래밍을 안해본 사람이 이 언어를 할 경우, 상당히 어려울 거다.. 고로 초보자를 비추.
C/C++을 하던 사람들한테는 할 만하다. Java나 C#을 하던 사람들한테는 조금 어려울 지도..
요 몇일 동안 살펴봤는데 Rust라는 언어가 개념이 좀 이해하기가 어렵다..
난 자바나 C#을 해서 그런지 문법도 생소하다..
C 스타일이긴 한데.. 기존 자바처럼 클래스를 이용하는게 아니라.. trait 이나 struct 로 객체지향을 만들고 그러는데..
상당히 생소하다..
간단한 예로..
자바는 아래와 같다.
class Test{
public int Add(int x, int y){
return x+y;
}
}
그냥 Test 클래스에 더하는 메소드가 있는 클래스다.
근데 Rust를 자바 처럼 만들면, 아래 처럼 만든다..
pub struct Test {
}
impl Test{
pub fn new(val : i32) -> Test{
Test{ }
}
pub fn add(&self, x: i32, y: i32) -> i32{
x + y
}
}
Rust는 클래스가 없고 구조체에다가 메소드를 다는 방식으로 만드는거 같다.
다른 언어들과 다른 점으로 러스트는 모든 변수가 읽기 전용이다.
let tmp = 10;
tmp = 20; //이라고 쓰면 컴파일 오류가 발생한다.
변경 할 려면 아래 처럼 해야 한다.
let mut tmp = 10; // mut를 붙여야만 값을 변경 할 수 있다.
tmp = 20;
음... Rust는 C 언어를 대체하기에는 좀 어려워 보이고, 잘 하면 C++ 정도는 대체할 수 있을 거라 본다.
일단 메모리 안정성이 최대 장점이니까. C++은 메모리 관리가 쉽지가 않고 영 지랄같은 문법이며 각종 런타임에러가 발생하는걸 막을 수 있으니까, 잘만 한다면 C++를 대체하지 않을 까라고 생각한다.. 먼 미래겠지 아마도..
추가
아 근데.. 너무 제약이 심하다. 기존의 방식으로 하면 계속 컴파일 에러가 발생한다.
이 소유권이라는게 계속해서 제약을 가하네.. 쯥..
'프로그래밍' 카테고리의 다른 글
[데이터베이스] Group By 관련.. (0) | 2023.07.14 |
---|---|
다른 언어간 문자열 배열 은 쓰지말아야 겠다. (0) | 2020.06.26 |
Rust로 링크드리스트 만들어보기.. (0) | 2019.10.03 |