원래 미국 전투기 핵심코드는 에이다 라는 언어를 주로 사용했는데, 이유는 C 등의 언어는 변수형 언어라고 해서 논리적 오류 즉 소위 버그를 만들어내기 쉬운 특성의 언어라서 그랬습니다. 또 변수형 언어 중에서도 C, C++ 종류는 메모리 반환 누락을 하기가 쉬워서 안정성이 낮은 프로그램이 될 확률이 높고요.
(물론 엄청난 고수는 이런 단점을 다 극복 가능)
반면 함수형 언어는 결과울의 안정성이 훨씬 넘사벽으로 좋다는 이론적 이유가 있었죠.
그런데 최근 10~20년간에 걸쳐 상황이 변했습니다.
1. C++ 언어도 판을림 되면서 어느정도 단점 극복이 나아짐
2. 에이다 언어 사옹자가 극도로 희귀하여 인력 구하기가 어려움
3. 함수형 언어는 이론상으로는 좋을것 같은데 실제로는 생산성이 별로 안 좋음 (함수형 언어패러다임에 맞는 사고방식이 체화된 숙련된 고수 제외)
4. 에이다 언어를 지원하는 개발환경이 너무 열악함. 사용자가 적으니. . . 그런데 개발규모는 엄청나게 커졌기 때문에 개발환경도 엄청 중요해졌죠.
그래서 요즘은 C++로 가는게 정석인 듯 합니다. 특히 주로 쓰는 RTOS들이 이런 쪽으로 지원이 잘 되니 더하죠.
하지만 머지않아 Rust 같은 더 안정적이고 최신기술을 적용한 차세대 언어로 넘어가는 부분도 생길 것으로 생각합니다.
답변 감사합니다. 제가 알고 있던게 얼추 비슷하군요.
이걸 물어본 이유가 에이다같은 언어와는 다르게 C++베이스면 AI쪽 적용도 훨씬 수월하게 들어가지 않을까 해서 궁금증을 풀려고 물어봤습니다.
앞으로의 개발 환경이 훨씬 좋기 때문에 성능을 따라잡기가 기존 시대와는 다르지 않을까 생각합니다
아주 오래전 비화통신을 위한 초보적 기술 중 하나가
멀티 밴드를 사용하여 동시 암호화 데이터를 보내는 겁니다.
시간을 벌기 위한 거죠. 물론 그 데이터중 하나만 진짜고 나머지는 가공된 임의의 데이터입니다.
그런데 시그널 프로세싱의 대가이신 나사의 모 분께서 하신 말씀을 차용하자면
'자연적 데이터와 규칙성을 가진 인위적 데이터는 시간의 문제일 뿐 반드시 구분된다'였습니다.