2010-02-05 3 views

답변

11

불행히도 일반적으로 큰 프로젝트에는 많은 노력이 필요합니다. 하나의 언어에서 효율적인 것은 다른 언어에있을 수없고 더 중요한 것은 이 존재 함은 하나의 언어로되어 있지 않을 수도 있습니다. 예를 들어 NHibernate는 포트를 넘기 위해 년의을 가져 갔고, Linq와 같은 기능을 계속 추가하고있다.

일반적으로 클래스를 하나씩 배치하고 가능한 경우 위치를 최적화하여 필요한 경우 구조를 변경하는 것이 중요합니다. 제네릭, 별칭 및 권투와 같은 모든 것들이 항구에서 변경됩니다. 그런 다음, 모든 것을 끝내고 난 후에는 여전히 많은 최적화 작업이 남아 있습니다 (물론 이것이 선택 사항입니다 ...), 아마도 이벤트 일 수도 있고, 통계 및 확장 방법 일 수도 있으며, 새로운 언어/플랫폼이 제공 할 수있는 것일 수 있습니다 늙은 사람은 그러지 않았다고.

이런 식으로 생각하면 .Net으로 이식하는 이유는 무엇입니까? 나는 당신이 두 가지 상황 중 하나에 있다고 말하고 싶습니다. 하나는 일 (덕, 죄송합니다!) 때문에 .Net을 사용합니다. .Net을 좋아하기 때문에 이점이 있습니다. 두 번째 범주에서는 을 Java보다 Java로 선택했기 때문에 이식시 처음부터 .Net을 선택하게 만든 기능을 활용하고 싶을 것입니다.

+0

답장을 보내 주셔서 감사합니다. 다행히도 Java에서 .NET으로 (또는 그 반대로) 이식하지는 않지만 어떻게 수행되었는지 항상 궁금해했습니다. 당신의 대답에서 명백한 것은 시간이 오래 투자 된 긴 과정이고 한 언어에서 다른 언어로 이식하는 사람들은 그들이 얻는 것보다 훨씬 더 많은 인정을받을 자격이 있다는 것입니다. – Kane

+0

@ Kane - 그 라인을 따라 하나의 다른 요소가 있습니다. 누구든지 그것을하는 사람은 누구나 ** 그것에 관심이 있습니다. (그리고 특정 정도까지는 대상 프레임 워크에 대해 잘 알고 있지만 더 빨리/더 빨리 만들 수 있습니다) . 빠르고 최적화 된 포트가 없습니다. 언어/프레임 워크를 최대한 활용하는 아름다운 포트가 있습니다. 시간이 많이 걸리지 만 커뮤니티에 매우 유용합니다. –

4

Nick이 말한 것처럼 간단하지 않습니다. 포트 포팅을하는 것 이상으로 많은 것들이 포함됩니다. 특히 포팅 할 응용 프로그램의 아키텍처가 그다지 크지 않은 경우 특히 그렇습니다. 포팅 할 언어의 기능을 사용하고 싶을 때가 있으며, 때로는 변경 될 수있는 디자인 결정이 필요할 수 있습니다. 나는 닉이 말한 것을 반복하지 않을 것이지만 다음을 덧붙이고 싶습니다.

Joda Socket이 Java에서 .Net으로 포트를 이동하려는 Noda Time의 개발을 따르는 것이 좋습니다. 존은 실제로 다음 블로그에 경험을 문서화되어

http://noda-time.blogspot.com/

나는 블로그,이 프로젝트의 구글 그룹 페이지와 구글 코드 프로젝트에 다음과 같은 추천 할 것입니다. Google 그룹 및 코드 페이지 링크는 블로그의 게시물 중 하나에서 찾을 수 있습니다.

+0

+1 John Skeet. 당신은 그의 말을 복음 진리로 받아 들일 수 있습니다. :) –

+0

가능한 가장 좋은 예 중 하나 인 Jon은 프레임 워크에 대해 가장 잘 알고 있으며 대상의 기능을 활용하여 적절한 포트가 어떻게 보이는지 확인할 수 있습니다. +1 Waleed –

관련 문제