안드로이드의 Dalvik VM으로 컴파일되는 기능적 언어? [닫은]

프로그래밍에 대한 기능적 접근 방식에 맞는 소프트웨어 문제가 있지만 대상 시장은 Android OS에 있습니다. Java의 VM으로 컴파일되는 기능적 언어가 있기 때문에 묻지 만 Dalvik 바이트 코드! = Java 바이트 코드입니다.

또는 dx유틸리티가 .classScala와 같은 기능적 언어에서 생성 된 파일을 지능적으로 변환 할 수 있는지 알고 있습니까?

편집 : 커뮤니티에 좀 더 도움을주고 더 나은 선택을하기 위해 질문을 조금 더 세분화 할 수 있습니까?

  • Dalvik과 함께 대체 언어를 사용해 보셨습니까? 어느 것?
  • 내가 겪을 수있는 몇 가지 “문제”(문제)는 무엇입니까?
  • 성능이 허용됩니까? 즉, 응용 프로그램이 여전히 사용자에게 반응한다고 느낍니다.

나는 휴대 전화 개발을 한 적이 없지만 제한된 장치에서 자랐으며 플랫폼과 함께 비표준 언어를 사용하는 데 비용이 든다는 환상은 없습니다. 비용이 기본 언어로 접근해야하는지 (예 : OOP 언어의 기능적 원칙 적용) 비용이 필요한지 알아야합니다.



답변

Christian Neukirchen의 블로그 게시물 에는 Android 용 Scala 프로그램을 작성하는 방법을 보여주는 Scala사용한 Programming for Android 라는 블로그 게시물이 있습니다 . dex스칼라를 처리 할 수있는 것처럼 보이지만 스칼라 클래스 라이브러리를 크기에 맞게 축소 dex하려면 전체 스칼라 런타임을 가져 오기 때문에 ProGuard와 같은 도구를 사용해야 합니다.

ErjangClojure를 사용한 Android 프로그래밍에 대한 진행중인 작업도 있습니다 .


답변

Kawa 는 수년 동안 조용히 존재 해 왔으며 JVM과 Dalvik에서 기본적으로 실행되는 사랑 스럽지만 거의 알려지지 않은 Scheme 변형입니다 . 따라서 Mirah와 마찬가지로 출력에는 추가 VM이없고 명시 적으로 가져온 라이브러리 만 포함됩니다. Kawa에는 멋진 구문을 만들 수있는 많은 표준 매크로 (Android API에 대한 일부 포함)가 있으며 “약속”(게으른 평가 및 미래)과 같은 체계 위에 맛있는 것들을 추가합니다. 하나의). 이 언어는 매우 강력하고 잘 문서화되어 있으며 Java 초기부터 활발하게 유지되고 발전해 왔습니다.

Java Advent Calendar 는 Kawa의 장점을 유익한 예와 링크로 요약합니다.


답변

스칼라 옆에 내가 안드로이드에 미라의 모습을 가지고 당신을 제안 할 수 있습니다, 여기에 몇 가지 세부 사항은 다음과 같습니다 http://threebrothers.org/brendan/blog/strange-loop-2011-mirah-for-android-development/

그렇다면이 방법이 다른 언어보다 ‘더 나은’이유는 무엇입니까? Mirah는 루비와 유사한 정적 유형 언어입니다. 어떤 기능적 스타일이 java보다 논란의 여지없이 좋을 수 있습니다. 일반적으로 언어를 안드로이드로 ‘포팅’하는 것은 표준 라이브러리를 포팅해야하기 때문에 문제가됩니다. Mirah는 표준 lib를 사용하지 않으므로이를 방지합니다. 참조 자료에는 안드로이드에서 mirah를 실행하는 REAL WORLD 경험과 그것이 어떻게 밝혀 졌는지에 대한 멋진 개요가 있습니다. (시도 2)


답변

안드로이드 ( https://github.com/clojure-android/neko ) Neko의 Clojure에서 많은 움직임이있었습니다 .
Dalvik VM 및 Clojure Compiler와 관련된 성능 문제가 있습니다. 이러한 문제는 서서히 해결되고 있습니다.

현재 (2015 년 7 월) 상태에 대한 프레젠테이션 :
https://www.youtube.com/watch?v=mVXTcAEKgF8&index=9&list=PLZdCLR02grLoBx0Y5ZrpdmLxc160PIwzQ


답변

아직은 아니지만 Davlik VM에 대해 한두 가지를 알고있는 Miguel de Icaza는 “Droid의 F #은 할 일 목록에 있습니다 “라고 말합니다 . 공식 패키지가 다가오고 있습니다.


답변