에이다가 정말 사라 졌어요?


17
  • 사람들이 여전히 Ada를 사용합니까? (대부분 국방부에서 사용 되었습니다)
  • 모든 응용 프로그램이 Ada "레거시"로 작성 되었습니까?
  • 에이다 지식은 여전히 ​​판매하고 있습니까

5
이 질문을하기 전에 먼저 읽어보십시오 : tiobe.com/index.php/content/paperinfo/tpci/index.html F #이나 Assembly보다 더 대중적이며 실제로 깔끔한 구문 (IMO)이 있습니다.
Job


1
@greenlit, Java에서 Ada 개발자까지는 현재 약 20 : 1입니다. 자세한 내용을 보려면 채용 공고를 스캔하십시오. 당신의 각도는 무엇입니까? 고임금 에이다 직업을 찾고 있습니까?
Job

3
일반적인 응용 프로그램에서 사용하려면 인기가 왜 중요합니까? 다른 개발자를 추가 할 계획입니까?
JeffO

1
@greengit 참조 stackoverflow.com/questions/1078043/why-didnt-ada-make-it- 실제로 그것을 만들었습니다. java는 대부분의 시간을 따라 잡았습니다!
NWS

답변:


27

사람들이 여전히 Ada를 사용합니까? (대부분 국방부에서 사용되었습니다)

Ada는 2005 년마지막으로 업데이트 된 것으로 보이며 Ada 2012를 향한 작업이 진행 되고 있으므로 언어 ​​자체가 여전히 활기차고 발차합니다.

Ada는 더 이상 국방부에 사용하도록 의무화되어 있지 않습니다. 필자가 보았고 수행 한 대부분의 작업은 Java, C 및 C ++에서 이루어졌지만 .NET 프레임 워크도 사용하고 있으며, 방법에 따라 Scala와 같은 다른 JVM 언어를 실행하는 프로젝트에 대해서도 들어 보았습니다. 시스템이 사용됩니다. Ada에는 많은 코드가있을 수 있으므로 많은 코드 재사용 및 유지 관리가 발생하더라도 놀라지 않을 것입니다. 국방 프로젝트의 특성상 사용에 대한 구체적인 수치를 찾기는 어렵습니다.

에이다 프로젝트와 사용자의 목록은 , 그러나 마지막 업데이트 2008 년 6 월처럼 거기에 최근의 목록이있을 수 있습니다 보이지만, 나는 신속하게 찾을 수 없습니다.

모든 응용 프로그램이 Ada "레거시"로 작성 되었습니까?

새로운 Ada 개발이 있는지 묻는다면, 새로운 시스템이 Ada에서 처음부터 작성 되어도 놀라지 않을 것입니다. 나는 너무 많을 지 모르지만 아마도 거기에 일부가있을 것입니다. 그러나 대부분의 Ada가 새로운 개발이 아닌 기존 시스템에 대한 유지 관리 또는 업그레이드가 있다고 생각합니다.

에이다 지식은 여전히 ​​판매하고 있습니까

해당 기술을 찾고있는 사람을 찾을 수 있다면 모든 지식이 판매됩니다. 개발에 Ada를 사용하지 않더라도 특정 언어 또는 프레임 워크를 알면 내 의견이 바뀌고 다른 언어 또는 프레임 워크를 사용하는 방법이 변경되었습니다. Ada를 아는 것은 다른 언어로 소프트웨어를 디자인하고 구성하는 다른 방법에 대한 통찰력을 줄 것이라고 생각합니다.


5
나는 Ada에서 새로운 시스템을 작성하고 있습니다 :)
NWS

1
C # 및 .NET은 방위 계약자가 작성한 비즈니스 응용 프로그램에도 사용됩니다.
George Stocker

@NWS : 어떤면에서는 C에서 가능한 것보다 훨씬 더 강력한 정적 유효성 검사를 제공 할 수있는 것처럼 보입니다.하지만 하위 범위 기반 타이핑이 실제로 기계 크기 의존성을 줄이기 위해 작동하는 정도는 궁금합니다. 예를 들어 유형 0..200으로 선언 된 두 개의 변수가 있고 제품이 250보다 큰지 여부를 테스트하려는 경우 단순히 제품을 250과 비교하여 작동하는지 확인하거나 작동이 보장되거나 컴파일이 실패하는 경우 제품이 32,767을 초과하면 컴파일에 실패하지만 런타임에 실패 할 수 있습니까?
supercat

@supercat 예 Ada에서는 정적 유효성 검사가 매우 좋습니다. 특정 쿼리와 관련하여 테스트 할 범위를 생성하기 위해 하위 유형과 모듈 유형을 올바르게 사용하면 문제를 해결할 수 있습니다. 16/32 비트 시스템에서 작동하는 매우 많은 수의 조작에 사용할 수있는 라이브러리도 있습니다. Ada의 강력한 유형 시스템을 읽었습니까? 제대로 사용하는 법을 배우면 매우 강력합니다.
NWS

@NWS : Wiki 페이지에서 링크 된 Ada 언어 정의를 살펴본 결과 숫자 유형 정의에 대한 정보를 찾을 때 연산자와 상호 작용하는 방법에 대한 토론을 찾을 수 없었습니다. Ada가 정확히 일치하지 않는 유형으로 작동 할 때 타입 캐스트를 요구했다면 도움이되지는 않지만 실제로 필요한 것이 표시되지 않았습니다. 만약 내가 언어를 디자인한다면, 위에서 언급 한 경우에 나는 비교가 최대 40,000을 수용 할 수있는 유형으로 평가 된 것처럼 행동 할 것임을 보장 할 것이다.
supercat


6

Ada는 여전히 방위, 미션 크리티컬, 안전 크리티컬, 실시간 임베디드 시스템에 많이 사용됩니다.

따라서 열차, 철도, 비행기, 항공 교통 관제, 위성, 의료 시스템, 원자력 발전소 등

ADA의 최근 사용 참조 :


5

국방부에 "사용 되었습니까?" 마지막으로 확인했지만 여전히 그렇습니다. Ada는 새로운 소프트웨어를 처음부터 새로 작성할 수있는 언어만큼이나 실용적입니다. 단점은 기존 소프트웨어를 재사용하고 적용 할 수 있고 프로그래머가 도움을 줄 수 있다는 점입니다. 그러나 C 프로그램 또는 유사한 이진 인터페이스를 가진 프로그램과 연결될 수 있습니다.

Ada는 아마도 내가 아는 언어의 강력한 타이핑과 일반적인 프로그래밍을 가장 관용적으로 사용했을 것입니다. 그 경험은 Ada에서 프로그래밍하지 않더라도 매우 팔릴 수 있습니다.


1
1990 년대 후반 (1997-1998 년, 내가 정확하게 기억한다면)까지 DoD 프로젝트를 의무화했다. Ada 코드는 여전히 존재하지만 C, C ++, Java를 사용하여 점점 더 많은 프로젝트가 구축되고 있으며 Python과 같은 언어도 시작되고 있습니다. 나는 그것이 사용되지 않는다고 말하지는 않습니다-여전히 훌륭하고 프로젝트를 위해 재사용, 수정 또는 확장 할 수있는 수많은 Ada 코드가 있습니다. 그러나 Ada를 사용하는 새로운 개발은 그리 많지 않습니다.
Thomas Owens

자동 템플릿 함수 인스턴스화를 사용하는 C ++ 템플릿이 Ada 제네릭보다 훨씬 강력하고 '아이디 오마 틱'인 것으로 나타났습니다.
케빈 클라인

1
@Kevin, idiomatic은 언어가 얼마나 "강력한 지"가 아니라 언어를 정의 하는 일반적인 사용 패턴을 말합니다 . C ++ 프로그래머가 표준 라이브러리 컨테이너 용 템플릿을 사용하여 몇 년을 간다는 것은 드문 일이 아니지만 결코 자체적으로 정의하지는 않습니다. Ada 프로그래머와 제네릭에게는 들리지 않았습니다.
Karl Bielefeldt

위임장은 사용이 아니라 폐지되었다는 점에 유의하십시오.
NWS

1

나는 그 기술이 대중적이지 않고 비 기술 산업이나 정부에서 하드웨어에 특화되지 않은 언어는 결코 한 세대 안에 죽지 않을 것이라고 말하고 싶습니다.

회사와 이중 정부는 오래된 것이기 때문에 업그레이드하기에는 너무 많은 규정과 기타 우려 사항이 있습니다. 그 시대의 많은 시스템은 어쨌든 내부적으로 지원되므로 지원 중단 주장은 그러한 시스템과 함께하지 않습니다.

Thomas의 대답은이 예에서 좋았습니다. Ada는 90 년대 중반의 군사 기술이 대체되기 전까지 기술을 기반으로 한 모든 것이 대체 될 때까지있을 것입니다. 그러나 일반적으로 이런 종류의 질문은 항상 중요한 임계 질량은 절대로 완전히 죽지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.