70년까지 프로그래밍 언어들은 위의 사진에서 나온것은 약과일 정도로 수십, 수백개의 프로그래밍 언어가 난잡한, 속칭 개판인 상태였습니다.
당연히 코드의 재사용성(기존의 소프트웨어 코드를 이용해 새로운 소프트웨어를 만드는것)도 개판이였죠
이 상황을 지켜보면서 버티지 못한 미 국방성(Department of Defense)주도 하에 새로운 언어를 만들기로 하였죠.
그리고 이를 CII Honeywell Bull의 기술자 Jean Ichbiah가 이끄는 팀에게 이 일을 맡겼습니다
(Ada의 아버지 Jean Ichbiah. 딱봐도 야근 많이 한사람 같이 생겼다)
(에이다 러브레이스 백작부인)
Ada는 세계 최초의 프로그래머중 한명이라고 얘기되는 에이다 러브레이스 백작부인의 이름을 딴 언어로 80년대 최초의 버전(Ada 83으로 통칭)이 나온 이후 끊임없이 버전업을 거쳐 지금 현재에는 Ada2012까지 발전하였습니다.
에이다의 가장 큰 특징은 3가지로 첫번째는 c언어나 java같은 프로그래밍 언어와는 달리 스칼라 유형의 변수(문자형이든 정수형이든 실수형이든 단일 값을 갖는 변수.char,int,double,float 등등...)에 대해 허용되는 값의 범위를 간단하고 명시적으로 지정해 줄수 있다는 것입니다. 범위를 벗어난 값을 지정하려고 하면 바로 런타임 오류를 내뱉죠.
이는 프로그래머의 의도를 명확히 알수 있게 하고 사용자의 입력 오류를 쉽게 탐지할수 있도록 해줍니다.
두번째로는 시스템 프로그래밍입니다. 시스템 프로그래밍은 말 그대로 컴퓨터에서 가장 기본이 되는 시스템을 구성하는 프로그래밍으로써 여러분이 흔히 볼수 있는 OS가 대표적인 시스템 프로그래밍의 예입니다.
OS를 예시로 든것과 같이 시스템 프로그래밍은 하드웨어와 매우 밀접하게 연관되있으며 Ada도 마찬가지로 아주 세세한 수준의 하드웨어 접근이 가능합니다.
예를들어 컴퓨터의 특정 주소에 특정 데이터를 집어넣는다던가, 타임 크리티컬(시간제한이 엄격한) 부분에 대해서 어셈블리어(기계어와 함깨 단 2개 있는 저급언어. 속도가 빠르지만 프로그래밍이 어렵다.)를 사용하는것이 가능하던가 입니다.
세번째로는 높은 무결성입니다.
이건 당연한것으로 보안이 중요한 군사용 프로그래밍 언어가 취약점이 많아서 뻥뻥 뚫린다면 프로그래밍 언어 뿐만이 아니라 군사용으로써의 가치가 없는것이기 때문에 Ada는 그 시초부터 높은 무결성을 위해서 많은 노력을 기울였습니다.
그 예로 Ada는 강력한 타입(Strong type)언어로 타입변수가 선언되는 동시에 변수를 지정해줘야 합니다. 이는 부적절한 조작을 통해 한가지 목적으로 의도된 데이터에 접근할수 없다는 것이죠.
또한 Ada는 배열범위 검사를 하기때문에 C언어계열에서 잘 발생하는 버퍼 오버플로우 오류를 방지합니다.
저 위에서 설명했던 첫번째 특징도 높은 무결성을 위한것이였습니다.
(강타입 언어의 특징. C나 JAVA언어는 저 두가지 코드 모두 아무런 오류가 없이 동작하지만 강타입 언어는 위에 코드만 사용가능하다)
(버퍼 오버플로우의 대표적인 예. 지정된 배열의 범위를 벗어나 다른 데이터 주소에 들어가면 안되는 값이 들어간다.)
이런 특징들에 힘입어 Ada언어는 미 국방성의 프로그램 대부분을 대체하는데 성공하고
F-16을 비롯한 항공기의 프로그램도 Ada로 짜였습니다.
하지만 안타깝게도...Ada는 현재 점차 도태되고 있는 형편입니다.
까놓고 말해서 컴퓨터 공학과 친구들조차 프로그래밍의 역사를 배울때 잠깐 배우고 말지 Ada프로그래밍을 누가 전문적으로 가르치는걸 봤습니까?
개인적으로 공부하려고 해도 원서가 아니면 구할수조차 힘든 언어입니다.
TIOBE에 따르면 현재 Ada언어의 인기는 39위, 검색어 점유율은 무려 0.283%입니다.
그렇다고 해서 Ada가 뒤떨어진다거나 후지다는 얘기는 아닙니다. Ada언어는 그 역할을 충분히 다했습니다. C계열, JAVA언어같은 범용성이 뛰어난 언어들 때문에 그저 밀려난것 뿐이죠.
군붕이들의 심금을 울리는 '아다'
역할...
아다를 뗐네요.
또 아다라고 하는사람 나왔네 ㅡㅡ
아다 - dc App
Ада Лавлейс. 아다 라브레이스.
'에이'다
아다 떼고 싶으다
서구 제국주의자.
당신 빨갱이요?
리얼 다크써클 보소
근데 생각해보믄 결국 도태된다는 거시 요즘 나온 것들보다 뒤떨어지고 후지다는 뜻 아니에요?
굳이 그렇게 얘기할수도 있지만 프로그래밍 언어에서는 무엇보다 선점효과가 큰지라...
게다가 다른 프로그래밍 언어도 그렇지만 에이다도 계속 새로운 버전이 나왔던 언어입니다. 근데 이미 넓은 유저층을 가지고 있는 C계열이나 JAVA에 비하면 크게 메리트가 없는게 사실이죠. 까놓고 말해서 Ada로 짜는 프로젝트는 몇개수준인데 JAVA나 C프로젝트는 어딜가나 있잖아요?
역할 - dc App
ㅈㅅ
에이다 - dc App
맨날 아다로 읽었...
머릿속에 마구니가 차니 그런것
자바도 힘들다고 파이썬에게 밀려나는게 요즘 추세인데 ada는 뭐...
에이다 코인 생각나네
이름 유래가 같음
머여 아다 아녔음? 그리 알고있었는데
에이다임