[clojure] Clojure는 무엇에 유용합니까? [닫은]

사람들이 Clojure를 사용하는 실제 응용 프로그램은 무엇입니까?

나는 접착제에 Groovy를 사용하고, 대형 시스템에는 Java를, 구문 분석과 접착제에 Python / Perl 스크립트를 사용합니다. Java에서 Clojure를 호출하는 것을 볼 수 있었지만 그 자체로 어디에서 사용할 것인지는 알 수 없습니다. 임시 작업에 거의 모든 스크립팅 언어를 사용하는 것이 더 쉬울 것입니다.

나는 Groovy 전문가 나 팬 보이는 아니지만 더 나은 지원 프레임 워크, 도구 및 많은 언어 구조 (클로저, 함수형 프로그래밍)를 가지고 있다는 사실을 알게되었습니다. Scala도 마찬가지입니다.

그것의 미래는 다른 시스템에 내장 된 언어로 될 수 있을까요?



답변

Clojure를 다음 용도로 사용했습니다.

  1. 웹 페이지 스크래핑
  2. 쉘 스크립트
  3. 웹 사이트 구축
  4. OpenGL로 놀기
  5. 비동기 웹 서버 작성
  6. HTML 템플릿
  7. 병렬 작업 실행 (여러 URL 가져 오기 및 병렬 처리)
  8. 실시간 오디오로 놀기
  9. 시뮬레이션

실용적이고 재미있는 것입니다.

그러나 Clojure는 이론적 깊이도 풍부합니다. 주류가됨에 따라 점점 더 관련성이 높아질 아이디어는 함수형 프로그래밍의 잠재력을 실제로 이해하게됩니다.

개인적인 의견이지만 Clojure는 내가 지금까지 학업 적으로나 전문적으로 사용했던 모든 언어 (C, C ++, Objective-C, Java)의 소프트웨어를 올바르게 구성하기위한 더 나은 언어 구성을 제공합니다 (작업 프로그래머에게 과도한 고통을주지 않음). 자바 스크립트, Python, Ruby.

Clojure가 완벽하다는 말은 아닙니다. 그러나 그것은 대부분의 것보다 더 나은 기반 위에 세워진 것 같습니다.


답변

Rich Hickey의 이론적 근거로 시작 있습니다.

실제 앱의 경우 Google 그룹 의 프로덕션 사용 롤 호출은 어떻습니까?


답변

Clojure는 대량의 데이터 를 처리하기 위해 광범위하게 사용되고 있습니다. 데이터 마이닝 / 상업용 AI (예 : Runa) 및 대규모 예측 (WeatherBill이라고도 함)에 매우 적합합니다. Clojure의 동시성 스토리는 병렬 처리가 유일한 해답 인 이러한 데이터가 많은 도메인에서 실제로 도움이됩니다.


답변

음, 대답하기 어려운 질문입니다. 뭐하고 싶어? Clojure가 실제로 적합하지 않은 것은 많지 않습니다. 내 말은, JVM 시작 시간 때문에 ( cake 또는 유사한 것을 사용하지 않는 한) 일회성 명령 줄 스크립트에는 좋지 않지만 모든 JVM 언어에 대해 말할 수 있습니다.

Clojure는 특히 동시성 작업에 적합합니다. 동시성을위한 멋진 언어로 처음부터 만들어졌으며 STM 시스템은 환상적입니다. 하드 코어 동시성 관련 작업을 수행해야하는 경우 Clojure가 특히 해당 작업에 적합 할 수 있습니다.

그러나 Clojure가 범용 언어라는 것을 기억해야합니다. 특정 틈새 시장에만 적합하지 않으며 다른 JVM 언어가 적합 할 수있는 많은 또는 모든 것에 유용합니다.

Clojure는 그 자체로 환상적인 언어로 설계되었으며 반드시 접착제 언어는 아닙니다. Java 코드를 직접 건드리지 않고도 Clojure에서 처음부터 시스템을 구축 할 수 있습니다. 좋은 글루 언어를 만들지 못한다는 것이 아니라 많은 사람들이 그렇게 사용했다는 것을 알고 있습니다.

염두에두고있는 것이 있다면 가장 좋은 방법은 옵션 인 언어에 관계없이 솔루션이 어떻게 보일지 고려하는 것입니다. Groovy에서보기 / 느낌이 더 좋으면 Groovy를 사용하십시오. 둘 다 근본적으로 다른 언어이며 둘 다 목적이 있습니다.


답변

Groovy 또는 java를 사용하는 모든 곳에서 Clojure를 사용할 수 있습니다. 왜 그렇게 하시겠습니까? 어떤 사람들은 lisp를 좋아합니다. 그들은 Groovy보다 clojure를 선택할 것입니다. 어떤 사람들은 lisp를 싫어합니다. 그들은 Groovy를 선택할 것입니다.


답변