다른 가상 머신 (예 : .Net, Python, Ruby, Lua) 용으로 빌드 된 Clojure 구현이 있습니까? 아니면 Java 및 JVM과 너무 밀접하게 연관되어 있습니까? 다른 플랫폼 용 Clojure를 만드는 것이 합리적입니까?다른 플랫폼 용 Clojure 구현?
답변
Rich Hickey 자신이 만든 프로젝트가 적어도 ClojureCLR 개 있습니다.
이 프로젝트는 공용 언어 런타임 (CLR), 마이크로 소프트의 닷넷 프레임 워크의 실행 엔진에 Clojure에서의 기본 구현입니다.
ClojureCLR은 C# (및 Clojure 자체)로 프로그래밍되었으며 Microsoft의 동적 언어 런타임 (DLR)을 사용합니다. 내가 아는 Clojure의 세 가지 구현는 현재
:
- ClojureCLR의 CLI에 대한 Clojure의 구현,
- ClojureScript의 구현 (의 (변형의 하위 집합)) Clojure for ECMAScript 및
- Java 플랫폼 용 Clojure 구현, 혼동스럽게 Clojure라고도 함. 이 두 글자를 CLR뿐만 아니라 문자 J을 포함하기 때문에 사실
, 이름 Clojure의는 특히 리치 키스 마크를 선택했습니다.
Objective-C/Cocoa 런타임, LLVM 및 Rubinius VM에 대한 구현 소문을 들었지만 실제로 존재하는지 여부는 알 수 없습니다.
파이썬과 루비 포트가 이해할 수 있을지 모르겠다. 가상 머신/구현이 여러 개인 언어이다. Clojure와 Python 또는 Ruby 사이에 네이티브 interop을 원한다면 Jython이나 JRuby를 사용할 수 있고 JVM을 유지할 수 있습니다. Clojure의 디자인 철학
" or is it too closely tied to Java and the JVM? Does it make sense to build a Clojure for other platforms?"
하나는 호스트 플랫폼을 수용 입니다. JVM의 Clojure는 JVM을 채택하고 클래스, 숫자 등에 직접 액세스 할 수 있습니다. interop은 접착제를 사용하는 두 가지 방법입니다.
ClojureScript는 똑같은 방법으로 JavaScript (ECMAScript)를 채택하여 .NET 대상에 대해 객체, 숫자 등을 직접 액세스 할 수 있습니다.
여러 플랫폼에서 똑같은 소스 코드를 실행하는 '크로스 플랫폼'언어를 만드는 것이 유혹스러운 일이지만 항상 성공하지는 않습니다. 지금까지 Clojure는이 유혹을 피하고 호스트와 가까이 있기 위해 노력했습니다.
- 1. 다른 플랫폼 용 앱을 작성하려고합니다.
- 2. Java에서 IM 플랫폼 구현
- 3. 다른 모바일 플랫폼 용 파일 형식은 무엇입니까
- 4. 다른 플랫폼 용 기본 라이브러리가있는 Java 프로젝트
- 5. CMake : 다른 플랫폼 용 생성기를 사용하십시오. 방법?
- 6. 다른 플랫폼 용 PhoneGap 빌드 사용
- 7. Clojure 객체에서 구현 된 프로토콜은 어떻게 찾습니까?
- 8. 번들러를 사용하여 다른 플랫폼 용 서로 다른 버전의 보석을로드하십시오.
- 9. Clojure 용 웹 프레임 워크
- 10. Clojure 작성자 : Clojure
- 11. 모바일 플랫폼 용 텍스트
- 12. 인트라넷 용 iGoogle 플랫폼
- 13. 자바 용 블로그 소프트웨어/플랫폼
- 14. clojure REPL - 다른 프로세스에서 연결
- 15. IE6 용 + 선택기 구현
- 16. 유닛 테스트 Clojure on the fly 다른 프레임에서의 Clojure
- 17. Windows 플랫폼 용 Qt 패키징
- 18. Eclipse : 테스트 용 플랫폼 조준
- 19. 모든 플랫폼 용 보안 패키지
- 20. Qt 용 교차 플랫폼 설치자
- 21. xml 파서 (ARM 플랫폼 용)
- 22. 어셈블리 64 비트 플랫폼 용
- 23. 오디오 처리 용 서버 플랫폼
- 24. 추천 플랫폼 용 추론 엔진
- 25. 크로스 플랫폼 용 Xna GameEngine
- 26. 다른 플랫폼 용으로 컴파일
- 27. 동일한 소스 코드가 다른 플랫폼 용 바이너리를 어떻게 생성합니까?
- 28. 다른 플랫폼 용 MSI를 묶는 가장 좋은 방법은 무엇입니까?
- 29. 다른 플랫폼 용 C 모듈이있는 Python 응용 프로그램을 배포하십시오.
- 30. 다른 플랫폼 용 tidesdk로 데스크톱 응용 프로그램 만들기