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


100

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

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

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

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


23
날 샌드위치 만드는 거 빼고
wheaties 2010

12
@wheaties : 시도해 보셨습니까 (sandwich me BLT)?
FrustratedWithFormsDesigner

3
"큰 시스템"에도 Clojure를 사용하지 않는 이유는 무엇입니까? ISTM은 Java보다 덜 장황하기 때문에 Clojure에서 시스템이 그렇게 클 필요가 없습니다. :-)
Ken

2
답을 보면-사람들이 멋진 물건을 사용하고 있다고 생각합니다. 얼마나 많은 기업이 장기 개발을 위해 그것을 선택할지 궁금합니다.
Fortyrunner 2010

1
오랜 시간이 지났지 만 기능적인 언어로 프로그래밍하려면 예리한 마음이 필요합니다. 예리한 마음은 비싸기 때문에 Clojure의 LTD 잠재력에 대해 비즈니스 관점에서 알지 못합니다. 오늘날 (5 년 후)보다 훨씬 더 널리 퍼질 때까지는 아닙니다.
Sean Allred 2015

답변:


93

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

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

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

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

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

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


당신이 David Nolen입니까? "Clojurescript : Lisp 's Revenge"에 대한 강연을 한 사람. 멋진 이야기였습니다!
Amogh Talpallikar 2014-06-04

1
//, "소프트웨어를 올바르게 구성하기 위해 더 나은 언어 구조를 제공한다"는 의미는 무엇입니까? EG dev.clojure.org/display/community/Library+Coding+Standards ?
Nathan Basanese

2
최신 하드웨어 시작 시간의 @maSnun은 약 1 초 이하입니다. 쉘 스크립트에는 괜찮습니다.
dnolen 2015-09-05

1
@dnolen 시간을내어 답장 해 주셔서 감사합니다. 저는 새로운 클로저 애호가이며 lein uberjar로 만든 jar 파일을 실행하려고하면 20 초 정도 걸립니다. 저는 OS X, 코어 i5 및 16GB RAM이 장착 된 Macbook을 사용하고 있습니다. 특별한 최적화를 사용하십니까?
masnun 2015 년

5
@maSnun uberjars는 셸 스크립트 용이 아니라 애플리케이션 배포 용입니다. 애플리케이션 최적화는 JVM 일반 질문이며 Clojure와 관련된 것은 아닙니다. Clojure를 사용하여 다른 스크립팅 언어처럼 쉽게 해시 뱅 쉘 스크립트를 작성할 수 있으며 이것이 제가 권장하는 것입니다.
dnolen


18

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


13

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

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

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

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

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


그때조차도 CLI Clojure 스크립트를 작성하는 것을 발견했습니다. 언어가 쓰기에 즐겁고 제 경우에는 시작 시간에 신경 쓰지 않았기 때문입니다.
nha

7

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


2
그것은 선택의 교재가 아닙니다. clojure는 다른 언어가 아닌 많은 기능을 가지고 있습니다.) 어쨌든 아무도 언급하지 않았습니다. 컨퍼런스에서 연설을 거의 기억하지 못하기 때문에 여기에 적절한 답을 쓸 수 없습니다
holms
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.