답변1
단어를 어떻게 이해하느냐에 따라 달라집니다"관리 코드". ~처럼Wikipedia에 설명되어 있습니다., 이는 일반적으로 Microsoft 개념이므로 다른 플랫폼은 실제로 셀 수 없습니다.
그렇지 않으면 일반적으로 중간 코드가 필요한 언어로 컴파일된다는 의미입니다.가상 기기또는통역사이러한 언어는 대부분 작동한다면 크로스 플랫폼입니다. 이것이 목표라면 다음과 같은 몇 가지 옵션이 있습니다.자바, 통과하다루비 온 레일즈~까지루아그리고 유사합니다.
답변2
그것은 당신이 원하는 것에 달려 있습니다. .Net을 사용하려면 Mono가 최선의 선택입니다. 이는 .Net의 복제본이며 해당 환경의 많은 기능 세트를 포함합니다. 사람들은 그 위에 생산 시스템을 구축합니다.
Linux에서의 Java 지원은 매우 성숙되었으며 Linux에서의 Java는 주요 플랫폼입니다. Java 지원은 Redhat, Apache Foundation, Eclipse 및 기타 다양한 오픈 소스 도구에서 매우 강력합니다. Linux는 Oracle, IBM과 같은 상용 Java 공급업체를 위한 1차 플랫폼이기도 합니다.
표준 라이브러리는 다르지만 Java와 JVM의 언어 및 유형 시스템은 C# 및 .Net과 매우 유사합니다. 한 시스템의 많은 타사 라이브러리가 Hibernate 및 NHibernate와 같은 다른 시스템에 복제됩니다.
Linux에서의 Java 지원은 Mono보다 훨씬 강력하므로 이러한 유형의 환경을 위해 Linux에서 개발하려면 Java를 사용하는 것이 더 좋습니다. Java와 .Net을 어느 정도 사용해 본 경험이 있기 때문에 한 플랫폼에서 다른 플랫폼으로 이동하는 것이 어렵지 않을 것이라고 생각합니다. 단, ASP.Net과 J2EE 간에는 애플리케이션 접근 방식 설계에 영향을 줄 수 있는 관용적 차이가 있습니다.
Parrot이라는 오픈 소스 VM이 있지만 Java나 .Net만큼 생태계가 많지는 않습니다.
Python과 같은 대부분의 오픈 소스 언어는 기본 인터프리터 또는 JIT 컴파일러 구현을 제공하지만 이는 언어별로 달라지는 경향이 있습니다. CLR이나 JVM과 같은 타사 VM을 위한 Python, Ruby 및 기타 다양한 언어용 버전도 있습니다. 예를 들어 CLR(IronPython) 및 JVM(Jython)에 타사 Python 구현을 사용할 수 있습니다.
일부 언어(예: Boo 또는 Groovy)는 설계 기능(예: 해당 VM에 대해 사용자 정의된 유형 시스템)을 사용하여 특정 VM을 지원하도록 특별히 설계되었습니다.
답변3
rozcietrzewiacz가 설명한 내용을 의미한다고 가정하면 왜 가상 머신에서 무언가를 실행하고 싶습니까? "C"(특히 automake를 사용하는 경우)는 다양한 POSIX 환경에서 거의 완전히 이식 가능하며, automake 없이도 다양한 Linux 배포판/아키텍처 간에 쉽게 이식 가능합니다. 그러나 오버플로 및 널 포인터 낮추기 문제가 발생할 수 있습니다(p 코드 시스템이 후자의 영향을 받지 않는다는 것은 아닙니다). Perl, PHP, Python 및 Ruby도 이식 가능합니다(POSIX가 아닌 시스템에도 가능). 예, 이는 해석되지만(또는 최소한 사전 컴파일되지는 않음) IME는 그렇지 않습니다.거의일부 사람들이 말하는 것처럼 중요합니다(귀하가 Google이나 Facebook이 아닌 경우).