새로운 프로그래밍 언어의 채택 여부는 무엇입니까? [닫은]


12

왜 새로운 프로그래밍 언어가 주류에 채택되고 다른 언어는 상대적으로 틈새 시장에 남아 있는지에 집중하고 싶습니다. 특정 유스 케이스, 이전 버전과의 호환성 또는 일부 새로운 기능, 단순하거나 복잡한 구현 어려움과 같은 것들에 대해 알고 싶습니다. 구체적인 예들이 이해 될 것이지만, 여기서 "주류"또는 "틈새"의 정확한 정의를 따라 잡지 말자.



2
기회와 기업 후원은 큰 요소입니다. steve-yegge.blogspot.com/2007/02/next-big-language.html
직업

3
이 포럼에 적합한 질문이 아닙니다
Ryan

글쎄, 이것은 포럼이 아닙니다. 그리고 두 사람은 이것이 주관적인 질문에 대한 지침을 잘 충족한다고 생각합니다.
DeadMG

1
프로그래밍 언어의 채택은이를 사용하는 힙 스터 수와 반비례합니다.

답변:


18

누군가가 정말로 알고 있다면, 그들은 매우 부자 일 것입니다.

즉, 내 추측은 다음과 같습니다.

유효성

BASIC은 처음 나왔을 때 (모든?) PC와 함께 제공되는 끔찍한 작은 언어입니다. Apple II (많은 고등학교의 기본 컴퓨터)와 ATARI 400/800 (최초의 저렴한 가정용 컴퓨터)은 모두 BASIC과 함께 제공됩니다.

UNIX 머신 (AT & T 시스템 V 또는 Berkeley 's)이있는 경우 C를 사용합니다. 머신을 프로그래밍하려면 사용했던 것입니다.

편집 : 'net의 출현과 편재로 인해이 요구 사항은 다음과 같이 변합니다.

  1. 최근 사본을 몇 개의 Linux 배포본으로 패키지하고 최신 상태로 유지합니까? 타사 라이브러리도 비슷한 방식으로 설치할 수 있습니까?
  2. Windows (XP | Vista | 7,8 ...)에 쉽게 설치됩니까?
  3. Mac / iOS 플랫폼이 적용됩니까?
  4. 레거시 Unix에 방해없이 설치할 수 있습니까?
  5. 그리고 일단 설치되면, 타사 라이브러리에 액세스하는 것이 얼마나 쉽고 쉽게 업그레이드 할 수 있습니까?

전환의 용이성

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 및 문서 관리에서도 동일합니다 . 기타

요인

어떤 이유로 일부 언어 는 이전 과 비교할 수있을만큼 충분한 양의 새로운 언어를 가지고있는 것처럼 보이며, 쉽게 또는 필요한 것처럼 보일 수 있습니다. 즉, 자체 사례입니다. 어떻게 이런 일이 일어나는지 누가 알겠습니까?


어쨌든, 그것은 왜 일부 사람들이 그것을 만드는 가장 좋은 추측입니다. 왜 어떤 사람들은 위와 같은 기준을 충족시키지 못하면 실패했을 것입니다.


1
대부분의 기준에서 결정 요인은 기업의 후원 입니다. 자바는 예를 들어 전환의 용이성으로 점수를 매겼지만, 세계 지배 계획의 일환으로 해마다 수백만 달러를 기꺼이 날려 버릴 사람이 없다면 어떤 차이가 있었는지 분명하지 않습니다. 그래서, 당신 말이 맞아요, 부자들은 이것에 대한 답을 알고 있습니다 :-)
jaybee

4
@jaybee-언어 작성자의 기업 후원이 반드시 도움이되었는지 확실하지 않습니다. Fortran과 C는 IBM / ATT에서 온 것이 특히 도움이되지 않았습니다. Oracle 링크는 Java에 적극적으로 피해를주는 것으로 보입니다. 기본, Perl, Python, Ruby 등은 모두 뒤에 회사가 없었습니다. 사용자 / 고객의 내부 법인 지원은 중요하지만, 언제 어디서나 사용 가능합니다.
Martin Beckett

1
@ 마틴 베켓 : 당신은 요점이있을 수 있습니다. 비록 비록 모든 종류의 행성들이 언어가 비판적 질량에 도달하기 위해 정렬 될 필요가 있을지 모르지만, 그 행성들을 온라인으로 분류하는 "현대적인"방법은 현금을 태우는 것 같습니다. 예를 들어 Mark는 Haskell을 예로 사용합니다. 대단한 보컬 사용자 기반이있을 수 있지만 GHC가 이에 대한 많은 논란을 이깁니다. GHC와 같은 컴파일러는 비용이 든다.
jaybee

@ jaybee-많은 행운이 있습니다. 그러나 멋진 새 웹 언어의 경우 제작자 / 조기 채택 자의 마케팅 기술이 중요 할 수 있습니다.
Martin Beckett

11

언어는 필요한 지역의 기존 언어보다 유리하기 때문에 인기가 있습니다.

자바

  • 자동 메모리 관리 (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은 동시성 및 프레임 워크 내결함성 시스템을위한 고유 한 모델을 가지고있었습니다. 텔레콤 산업에 유용하게 사용되기 시작했으며 나중에 오픈 소스를 제공하고 내결함성이 필요한 대규모 인터넷 회사의 관심을 끌었습니다.

1
Erlang의 동시성 모델은 독특하지 않으며 추악한 명령 언어에서 사용되는 것과는 다릅니다. :). 스칼라는 같은 유형입니다. 마찬가지로 Clojure와 Haskell은 STM을 전문으로합니다.
대안

4
@mathepic : 맞습니다. 그러나 모든 언어는 Erlang보다 새로운 언어입니다. 처음에 Erlang에게는 독특했습니다. 제가 열거 한 거의 모든 언어 기능과 마찬가지로. 좋은 아이디어는 훔칠 가치가 있습니다.
Jonas

1
C #은 .net 언어입니다. 창은 실제로 C ++로 작성되었다고 생각했습니다. 내가 틀렸어. C #은 사람들이 이미 알고있는 언어 (C)를 강력하고 사용하기 쉬우 며 개발자의 요구와 실제 사용을 고려한 편집기 도구를 사용하여 강력한 응용 프로그램을보다 쉽게 ​​개발할 수 있도록하는 새로운 프레임 워크를 활용하여 인기를 얻었습니다.
SoylentGray

1
@Chad C #은 C와 아무 관련이 없습니다
대안

1
@mathepic-C, C ++ 및 C # 프로그래밍 작업을했습니다. 나는 C #이 nomeclature까지 c 루트를 유지한다고 말할 수 있습니다. 언어를 활용하지 않는다는 의미는 아닙니다.
SoylentGray

5

나는 냉소적 일 것이다 : 과 그것, 마케팅.

C #이 Microsoft, Oracle의 Java 및 Apple의 Objective C에서 지원한다는 것은 우연의 일치가 아닙니다. 지금까지 Google의 Go 만 해제되지 않았습니다.

물론 돈이 유일한 이유는 아니지만 주머니가 깊으면 언어를 시장에 내놓는 데 도움이됩니다.


동의어와 확장 : 유행어, 경영진의 호소, 큰 이름, 흥미 진진한 기능. 동의하지 않으면 COBOL이라는 한 가지 이름 만 알려 드리겠습니다.
SF.

1
C #과 Obj-C는 "필수"만큼 많이 지원되지 않습니다. MSFT에서 제공하는 API 만 사용하여 C ++로 Windows 앱을 프로그래밍하는 것은 어렵고 AFAIK 만 obj-C는 최소한 사과 모바일 플랫폼에서 허용됩니다. 반면, 오라클의 안드로이드 제조사 고소는 자바에 해를 끼칠 수있다
Martin Beckett

1
@Martin-당신은 대체로 정확한 WRT Obj-C입니다. 기술적으로 Appcelerator Ttanium과 같은 것을 사용하여 다른 언어를 사용하여 앱을 작성할 수 있지만 배포를 위해 여전히 Obj-C로 변환됩니다 (그리고 그것들을 얻기 위해 싸웠습니다). 애플은 다른 어떤 것도 금지 할 것이다.
Shauna

3

한편으로는 마케팅,보다 정확하게는 프리젠 테이션, 블로그 등이 있습니다. 주류 프로그래머가 자신이 알고있는 것 (Java vs. C ++-가비지 수집기 vs. 메모리 관리)과 관련되고 이점을 볼 수있는 기능을 갖는 것이 중요합니다. 마지막으로, 진입 장벽이 낮아야합니다. 예, 훌륭한 문서, 완벽한 설치, 훌륭한 커뮤니티 및 지원, 활발한 개발.


1

거의 모든 언어에는 사소한 실제 문제 해결 프로그램이있었습니다.

유닉스는 C로 작성되었으므로 C가 매우 어리고 발전 할 때 유닉스의 도구들도 마찬가지였습니다.

Anaconda (RedHat의 설치 프로그램)는 Python이 어렸을 때 Python으로 작성되었으며 오늘날 인기가 없습니다.

이것들은 내가 기억할 수있는 것입니다. 이 목록은 형성 년 동안 살아남은 각 언어에 영향을 줄 수 있습니다.

그런 다음 대학에서 대규모로 채택하면 언어의 수명을 연장 할 수 있습니다. Java는 대학에서 교육 언어로 매우 인기가 있습니다. 어느 정도까지, Lisp와 Lisp의 방언도이 상태를 즐깁니다.

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