문제

.NET이 Python 및 Ruby 응용 프로그램에 어떤 영향을 미치는지 궁금합니다.

Ironpython/Ironruby로 작성된 응용 프로그램은 .NET 환경에 따라 다르므로 기본적으로 플랫폼이 특정화 될 것입니까?

.NET 기능을 사용하지 않으면 .NET 기능이 아닌 대응 물보다 Ironpython/Ironruby의 이점은 무엇입니까?

도움이 되었습니까?

해결책

Ironruby에 대해 아무 말도 할 수는 없지만 대부분의 Python 구현 (Ironpython, Jython 및 Pypy)은 가능한 한 Cpython 구현에 충실하려고합니다. Ironpython 은이 점에서 빠르게 최고 중 하나가되고 있으며, Planet Python에는 많은 트래픽이 있습니다.

개발자가 Cpython에서 작성하는 것과 다른 코드를 작성하도록 장려하는 가장 중요한 것은 Numpy와 같은 C 확장 모듈이 없다는 것입니다 (이것은 Jython 및 Pypy에서도 문제입니다).

주목할 수있는 흥미로운 프로젝트는 Ironclad입니다.이를 통해 Ironpython 내에서 C 확장 모듈을 호출 할 수 있습니다. 이것은 결국 CPYTHON에서 코드를 개발할 수 있고 원하는 모듈을 사용하여 코드를 개발할 수 있으며 IronpyThon에서 수정되지 않은 실행됩니다.

http://www.resolversystems.com/documentation/index.php/ironclad

따라서 질문에 답하기 위해 :

Cpython에서도 작동하는 Ironpython 애플리케이션을 작성하는 것은 쉽지만, 다른 방법으로는 Ironpython에서도 작동하는 Cpython 프로그램을 목표로 할 것입니다. 그렇게하면 작동하지 않으면 알려진 작업으로 알려진 버그 일 가능성이 높습니다.

Ironpython et al 기존의 이들은 언어의 대체 구현을 제공한다는 것입니다. 이는 때때로 cpython에서 버그를 발견하는 데 유용합니다. 또한 Python 애플리케이션을 배포하기위한 대체 방법을 제공합니다. 어떤 이유로 든 CPYTHON 구현을 응용 프로그램으로 배포하는 것이 적절하지 않은 상황 (Silverlight 등)에서 자신을 발견하면 자신을 찾을 수 있습니다.

다른 팁

Ironpython/Ironruby로 작성된 응용 프로그램은 .NET 환경에 따라 다르므로 기본적으로 플랫폼이 특정화 될 것입니까?

Ironruby는 현재 대부분의 Core Ruby Standard Library와 함께 배송되며 Ruby Gems를 지원합니다.

이것은 C 확장에 의존하지 않는 거의 모든 기본 루비 앱을 지원할 것임을 의미합니다.
플립 사이드는 CLR에 의존하지 않는 Ironruby에 네이티브 루비 앱을 작성할 수 있으며 MRI에 휴대 할 수 있다는 것입니다.

사람들이 CLR을 사용하여 앱의 확장을 만들거나 사용하는지 여부는 사람들이 MRI의 C 확장을 생성하거나 사용하는지 여부와 동일한 질문입니다.

측면의 질문이 있습니다 "C에서 Cruby Extensions를 만드는 것보다 C#에서 Ironruby 확장을 만드는 것이 훨씬 쉽기 때문에 사람들은 기본 Ruby 코드를 고수 해야하는 확장을 생성 할 것인가?", 그러나 그것은 전적으로 주관적입니다.

그러나 전체적으로, 나는 확장을 더 쉽게 만드는 것이 큰 승리라고 생각합니다.


.NET 기능을 사용하지 않으면 .NET 기능이 아닌 대응 물보다 Ironpython/Ironruby의 이점은 무엇입니까?

  1. 성능 : Ironruby는 이미 MRI 1.8보다 대부분 빠르며 MRI 1.9에서 멀지 않으며 미래에만 개선 될 것입니다. 파이썬은 이와 관련하여 비슷하다고 생각합니다.

  2. 배포 : 사람들이 언급했듯이 IIS 내부의 기본 Ruby Cross-Platform Rails 앱을 실행하는 것은 일부 Windows 기반 개발자에게 기존 서버/관리 인프라와 더 잘 통합 될 수 있으므로 매력적인 제안입니다.

  3. 안정성 : MRI 1.9는 1.8보다 훨씬 낫지 만 CLR이 C Ruby보다 더 나은 쓰레기 수집기와 기본 런타임을 가지고 있다는 사실에 동의하지 않을 것이라고 생각합니다.

Ironpython/IronRuby는 .NET 가상 머신에서 작동하도록 제작되었으므로 본질적으로 플랫폼별로 말하면됩니다.

분명히 그들은 프로그램에서 .NET 프레임 워크를 사용하지 않는 한 Python 및 Ruby와 호환됩니다.

라이브러리 또는 프레임 워크를 작성하는 경우 사람들은 .NET 코드와 함께 .NET에서 사용할 수 있습니다. 그것은 그들과 당신을 위해 꽤 멋지다!

애플리케이션을 개발할 때 포기한 .NET 시설을 사용하는 경우 "교차 계획"을 잃어 버릴 수 있습니다. 이는 항상 문제가되지 않습니다.

이러한 용도를 내부 API로 랩핑하면 나중에 .NET 구현을 Pure-Python, Wrapped C (Cpython) 또는 Java (Jython의 경우)로 교체 할 수 있습니다.

Mono Page에 따르면 Ironpython은 Mono의 .NET 런타임 구현과 호환되므로 실행 파일은 Windows 및 Linux에서 모두 작동해야합니다.

두 번째 질문으로 첫 번째 질문에 대답합니다. .NET에서 언어 구현에 의해 제공된 원래의 lib 만 사용하지 않으면 *.py 또는 *.rb 파일을 다른 구현으로 해석 할 수 있습니다. 일하다.

이점은 .NET 상점이 일반적으로 클라이언트 시스템에 올바른 프레임 워크를 설치하는 것을 관리한다면 ... Python 또는 Ruby 코드를 원한다면 이제 다른 "프레임 워크"를 지원해야합니다. 설치를 배포해야합니다. 버전 문제 등을 처리하십시오. 따라서 다른 언어 내부의 .NET Framework Power를 사용하여 두 가지 장점이 있습니다. 배포/유지 보수를 가능한 한 간단하게 유지하십시오.

IIS에서 Rails/Django를 실행하는 것이 멋질 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top