왜 새로운 프로그래밍 언어가 주류에 채택되고 다른 언어는 상대적으로 틈새 시장에 남아 있는지에 집중하고 싶습니다. 특정 유스 케이스, 이전 버전과의 호환성 또는 일부 새로운 기능, 단순하거나 복잡한 구현 어려움과 같은 것들에 대해 알고 싶습니다. 구체적인 예들이 이해 될 것이지만, 여기서 “주류”또는 “틈새”의 정확한 정의를 따라 잡지 말자.
답변
누군가가 정말로 알고 있다면, 그들은 매우 부자 일 것입니다.
즉, 내 추측은 다음과 같습니다.
유효성
BASIC은 처음 나왔을 때 (모든?) PC와 함께 제공되는 끔찍한 작은 언어입니다. Apple II (많은 고등학교의 기본 컴퓨터)와 ATARI 400/800 (최초의 저렴한 가정용 컴퓨터)은 모두 BASIC과 함께 제공됩니다.
UNIX 머신 (AT & T 시스템 V 또는 Berkeley ‘s)이있는 경우 C를 사용합니다. 머신을 프로그래밍하려면 사용했던 것입니다.
편집 : ‘net의 출현과 편재로 인해이 요구 사항은 다음과 같이 변합니다.
- 최근 사본을 몇 개의 Linux 배포본으로 패키지하고 최신 상태로 유지합니까? 타사 라이브러리도 비슷한 방식으로 설치할 수 있습니까?
- Windows (XP | Vista | 7,8 …)에 쉽게 설치됩니까?
- Mac / iOS 플랫폼이 적용됩니까?
- 레거시 Unix에 방해없이 설치할 수 있습니까?
- 그리고 일단 설치되면, 타사 라이브러리에 액세스하는 것이 얼마나 쉽고 쉽게 업그레이드 할 수 있습니까?
전환의 용이성
Java가 좋은 예입니다. C 프로그래밍을 알고 있다면 Java는 크게 발전하지 않았지만 C에는 없었던 많은 기능을 제공했으며 C ++은 제대로 제공하지 못했습니다.
명백한 이유로 C ++은 C에서 쉽게 발전 할 수 있었으며 “개선 된”C로 경영진에게 판매하기도 쉬웠습니다. C ++은 기존의 기존 C 코드베이스와 호환되는 이점이있었습니다.
Perl은 C, awk, sed 및 기타 Unix 유틸리티를 하나의 번들로 통합 한 것입니다. 출현하기 전에 대부분의 시스템 관리는 셸 스크립트를 통해 이루어졌으며 모든 것이 만족스럽지 못한 방식으로 결합되었습니다. C와 같은 언어의 데이터 구조와 제어를 통해 모든 것을 하나의 프로세스로 가져 오는 것은 신의 선물이었습니다.
필요를 채운다
C는 기계 별, 조립 세계 유지에 어려움을 겪지 않고 조립에 가까운 효율을 생산할 수있게 해주었습니다.
FORTRAN은 기계의 세부 사항을 잃지 않고 수학 아이디어를 코드로 쉽게 변환 할 수있게 해주었습니다.
LISP 및 기호 조작에 대해서도 마찬가지입니다.
파이썬은 “더 나은”Perl의 필요성에서 자랐습니다. (나는 여기에 편견되어 있으므로 더 이상 말하지 않을 것입니다.)
PHP는 기본적으로 웹의 기본 요소였습니다. 기본적으로 많은 웹 서버에 설치되어 있으며 유용한 정보를 신속하게 해킹하기 쉽습니다.
옹호, 사용자 기반, 기고 코드
Haskell은 개발자와 사용자 기반의 지치지 않는 옹호가 아니라면 프로덕션 언어가 아닌 언어만큼 인기가 없을 것입니다.
많은 언어가 언어를 만든 사람 뒤에는 컬트 컬처가 있으며 우리는 모두 자신이 누구인지 알고 있습니다.
FORTRAN은 수많은 확립되고 검증 된 수학 코드 세트를 가지고 있습니다. Java 및 웹 / 시스템 통합 / MVC 시스템에서 동일합니다. Perl과 CPAN의 경우 동일; T E X 및 문서 관리에서도 동일합니다 . 기타
이 요인
어떤 이유로 일부 언어 는 이전 과 비교할 수있을만큼 충분한 양의 새로운 언어를 가지고있는 것처럼 보이며, 쉽게 또는 필요한 것처럼 보일 수 있습니다. 즉, 자체 사례입니다. 어떻게 이런 일이 일어나는지 누가 알겠습니까?
어쨌든, 그것은 왜 일부 사람들이 그것을 만드는 가장 좋은 추측입니다. 왜 어떤 사람들은 위와 같은 기준을 충족시키지 못하면 실패했을 것입니다.
답변
언어는 필요한 지역의 기존 언어보다 유리하기 때문에 인기가 있습니다.
자바
- 자동 메모리 관리 (C ++ 및 C와 비교)
- 스레딩에 내장 된 언어 / API
- 가상 머신에서 실행됩니다 (즉, 개발자는 Linux / Unix에서 수정하지 않고도 응용 프로그램을 테스트하고 배포하기 위해 개발 머신에서 Windows를 사용할 수 있음).
- 네트워크 프로그래밍은 이전에 가장 많이 사용되었던 언어 (C ++ 및 C)보다 훨씬 쉽고 인터넷이 대중화되기 시작했을 때 Java가 릴리스되었습니다.
PHP
- 간편한 웹 개발
- MySQL 데이터베이스 연결을위한 내장 지원
- 컴파일이 필요 없으며 HTML 파일에 스크립트를 쉽게 포함시킬 수있었습니다.
자바 스크립트
- 유일한 웹 브라우저의 언어.
- 웹 브라우저는 점점 더 씬 클라이언트 (웹 응용 프로그램)로 사용됩니다.
- 모바일 코드-배포가 쉽고 설치가 필요 없음
목표 -C
- Mac OS X 환경 및 iPhone 용 언어 그리고 iPhone은 큰 성공을 거두었습니다.
루비
- 웹 프레임 워크 인 Ruby on Rails와 함께 MVC를 사용하면 대규모 웹 개발이 훨씬 쉬워졌습니다.
씨#
- 지난 10 년 동안 Windows 환경을위한 언어 . 거의 모든 Microsoft API는 Winforms 및 WPF 및 WCF와 같은 C #에서 사용하기 쉽습니다.
액션 스크립트
- 인터넷의 미디어 컨텐츠와 JavaScript가 처리 할 수없는 것들에 큰 성공을 거둔 Addobe Flash / Flex 의 유일한 언어입니다.
에를 랑
- 동시성 및 내결함성-Erlang은 동시성 및 프레임 워크 내결함성 시스템을위한 고유 한 모델을 가지고있었습니다. 텔레콤 산업에 유용하게 사용되기 시작했으며 나중에 오픈 소스를 제공하고 내결함성이 필요한 대규모 인터넷 회사의 관심을 끌었습니다.
답변
나는 냉소적 일 것이다 : 돈 과 그것, 마케팅.
C #이 Microsoft, Oracle의 Java 및 Apple의 Objective C에서 지원한다는 것은 우연의 일치가 아닙니다. 지금까지 Google의 Go 만 해제되지 않았습니다.
물론 돈이 유일한 이유는 아니지만 주머니가 깊으면 언어를 시장에 내놓는 데 도움이됩니다.
답변
한편으로는 마케팅,보다 정확하게는 프리젠 테이션, 블로그 등이 있습니다. 주류 프로그래머가 자신이 알고있는 것 (Java vs. C ++-가비지 수집기 vs. 메모리 관리)과 관련되고 이점을 볼 수있는 기능을 갖는 것이 중요합니다. 마지막으로, 진입 장벽이 낮아야합니다. 예, 훌륭한 문서, 완벽한 설치, 훌륭한 커뮤니티 및 지원, 활발한 개발.
답변
거의 모든 언어에는 사소한 실제 문제 해결 프로그램이있었습니다.
유닉스는 C로 작성되었으므로 C가 매우 어리고 발전 할 때 유닉스의 도구들도 마찬가지였습니다.
Anaconda (RedHat의 설치 프로그램)는 Python이 어렸을 때 Python으로 작성되었으며 오늘날 인기가 없습니다.
이것들은 내가 기억할 수있는 것입니다. 이 목록은 형성 년 동안 살아남은 각 언어에 영향을 줄 수 있습니다.
그런 다음 대학에서 대규모로 채택하면 언어의 수명을 연장 할 수 있습니다. Java는 대학에서 교육 언어로 매우 인기가 있습니다. 어느 정도까지, Lisp와 Lisp의 방언도이 상태를 즐깁니다.