2010-01-22 6 views
14

Clojure를 최근에 배웠을 때, 나는 좋은 치아 기능 프로그래밍으로 내 이빨을 가라 앉히는 것에 관심이 있습니다. Clojure는 어떤 종류의 애플리케이션에 적합합니까? 웹 앱? 창 클라이언트 응용 프로그램? 명령 줄 유틸리티? Clojure는 어떤 종류의 응용 프로그램에 대한 끔찍한 해결책입니까?어떤 종류의 응용 프로그램이 클로저에 적절합니까?

답변

3

Clojure는 많은 구문 분석이 필요한 모든 것에 적합합니다. 나는 확실히 예를 들어 로그 파일을 분석하기 위해 그것을 사용할 것입니다. 또한 DSL을 작성하는 훌륭한 언어입니다. 아마도 90 % GUI를 사용하는 응용 프로그램에서는 사용하지 않을 것입니다. 물론 요즘 하나의 언어를 고르실 필요는 없습니다. 응용 프로그램의 일부로 Clojure를 사용할 수 있습니다.

+3

Clojure는 실제로 모든 Java 라이브러리 (OpenGL, Swing, Processing 등)를 피기 시작할 수 있기 때문에 실제로 GUI에 좋지 않습니다. Clojure에서 게임 GUI를 작성했고, 꽤 잘 돌아갔다. – mikera

5

정말 모든 유형의 응용 프로그램이 좋습니다. Clojure는 합리적인 범용 언어이기 때문에 특히 Java 클래스 라이브러리 지원으로 대부분의 기능을 제공합니다.

기능적 프로그래밍 언어는 고도로 평행 한 문제에 도움이되기 때문에 해당 영역에서 뭔가 찾을 수 있습니다. 예를 들어 Google과 같은 MapReduce 접근 방식을 사용하여 대량의 정보를 처리하면 ...

12

Clojure가 좋지 않을 수있는 유일한 방법은 일회용 명령 줄 스크립트입니다. -client 플래그를 사용하여 실행하는 경우에도 JVM 시작 시간이 너무 덥지 않습니다. Nailgun과 같은 프로젝트는 해결 방법을 제공하지만이 접근법에는 몇 가지 심각한 보안상의 영향이 있습니다.

그렇지 않으면 Clojure가 모든 작업에 이상적이라고 생각합니다.

+0

REPL을 계속 열어두면 (좋은 습관!) 일회용 명령 줄 스크립트에서도 꽤 유용합니다 ..... – mikera

2

나는 Clojure도 상당히 익숙하며 속도가 실제로 문제가되지 않는 수학 문제에서이 기술을 사용하는 것을 즐긴다. 그것은 너무 표현력이 있습니다. BigDecimals와 BigIntegers의 확장 된 정밀도를 투명하게 사용할 수 있다는 것도 매우 좋았습니다. Java가 필요로하는 어색한 생성자와 메서드를 다루지 않아도되었습니다.

속도에 대한 경고는 실제로 내 자신의 경험이 없기 때문에 발생합니다. 저는 그것이 진정으로 숙련 된 사람들에게는 문제라는 것을 모릅니다. 또한 Clojure에서 쉽게 볼 수있는 병렬 처리에 도움이되는 영역이기도합니다.

1

Clojure는 거대한 데이터 세트를 다루는 스타일 데이터 처리 문제를 줄이기 위해 적합합니다. 이것은 FlightCaster.com과 Runa에서 큰 효과를 발휘합니다. 나는 그것을 암호화에 사용하고 있으며 다른 두 네트워크 중심의 신생 업체에서 전문적으로 사용되는 것을 보았습니다.

3

Clojure가 거의 적합하지 않습니다. 일반적인 목적의 언어이며 거의 모든 작업에 매우 적합합니다. 특히 동시성과 관련된 것들.

관련 문제