2009-03-14 5 views

답변

3

예, 특히 여러 플랫폼에 대한 코드를 배포하려는 경우

플랫폼 개발을 교차시키지 않는 경우에도 미래 보장의 한 형태입니다. 현재 여러 개의 (다양한) 플랫폼에서 실행되는 경우, 벤더 X의 Q 시리즈 상자 (패치 레벨 1452)의 7.8.3 클린 인스톨 작업에 특화된, 조정 된, tweeked 한 것보다 미래의 플랫폼에서 실행될 가능성이 높습니다.) 그리고 그 밖의 것은 없습니다.

2

다른 컴파일러와 다른 OS에서 버그를 찾아 내고 단순히 예방하는 것이 이점으로 보입니다. 다른 CPU는 엔디안 문제를 일찍 핀 수 있습니다. 당신이 그 수준에서 원주민이되고 싶다면 GUI 수준에서 고통이 있습니다.

+0

저는 리눅스, OpenBSD, Darwin에서 일상적으로 컴파일합니다. 또한 Intel, AMD64 및 Sparc64에서 정기적으로 컴파일합니다. 고객 기반이 모두 하나의 플랫폼에 있더라도 발견 된 버그 및 가정이 밝혀지면 여전히 가치가 있습니다. – dwc

1

짧은 대답 : 예.

디스크를 복제하는 것보다 간단하게 두 시스템을 똑같이 만들 수는 없으므로 의미가 있든 없든간에 "다른 플랫폼"에서 실행되게됩니다. 구체적으로 대치하고 해결하면 "시스템 A가 B와 같은 일을하지 않으면 어떻게 될까?" 문제의 핵심은 코드가 만드는 핵심 가정을 발견 할 가능성이 훨씬 더 높습니다.

그런데 시스템 A에서 작동하는 기본 코드를 얻은 다음 하루 (또는 1 주일 ...) 걸리고 시스템 B에서 실행되도록해야한다고 말했을 것입니다. 매우 교육적인.

내가 소스 레벨 C 디버거를 100 가지가 넘는 U * NX에 포팅했을 때 80 년대에 나의 교육이 돌아 왔습니다. Gack!

0

일부 플랫폼에는 정말 무서운 개발 도구가 있습니다. 한때 IB에서 근무 했었습니다. Sun의 끔찍한 툴셋을 사용하는 대신 peole은 VC++에서 코드를 개발 한 다음 Solaris로 이식했습니다.

1

두 개 이상의 플랫폼에서 응용 프로그램을 개발할 때 이점이 있습니까?

이것이 프로덕션 소프트웨어 인 경우 명백한 이유는 더 큰 고객 기반의 유혹입니다. 고객이 여러 플랫폼을 지원하는 소리가 들리면 귀사의 제품 매력이 확대됩니다. 대부분의 기업은 단일 OS 또는 단일 버전의 OS를 사용하지 않는다는 것을 기억하십시오. Windows, 다른 Mac 및 더 작은 버전의 Linux를 사용하여 섹션을 찾는 것이 일반적입니다.

단일 플랫폼 용으로 제품을 사용자 정의하는 것이 종종 다중 플랫폼에서 실행되는 것보다 훨씬 지루하다는 것을 알 수 있습니다. 감소의 법칙은 당신이 알기도 전에 킥을 시도합니다.

물론 클라이언트의 독점 하드웨어에 대한 기존 제품의 사용자 지정 작업을 수행하는 경우이 모든 내용은 거의 의미가 없습니다. 그러나 그때조차도 클라이언트가 자신의 레퍼토리에 가지고있는 하드웨어의 전체 범위를 주시하십시오. 그가 요청할 수있는시기는 결코 알 수 없습니다.

동일한 플랫폼에서도 다른 컴파일러를 사용하면 이익이 있습니까?

예. 다른 컴파일러는 다른 확장을 구현합니다. 특정 컴파일러의 특정 버전에 의존하지 않는지 확인하십시오.

또한 버그 또는 컴파일러 자체가있을 수 있습니다. 여러 컴파일러를 사용하면 이러한 문제를 해결할 수 있습니다.

두 개의 다른 컴파일러를 사용하여 (크로스 플랫폼) 제품의 비트를 보았습니다. 하나는 부동 소수점 조작에 매우 높은 수준의 정확도가 필요한 모듈에서 사용되었습니다. (잠시 동안 다른 사람이 그걸 들었다고 들었지만 ...)

1

저는 원래 Win32의 대형 C++ 프로그램을 Linux로 포팅했습니다. 그다지 어렵지 않았습니다. 대부분의 경우 컴파일러 비 호환성을 다루었습니다. 당시 MS C++ 컴파일러는 다양한 방식으로 호환되지 않았기 때문입니다. C++ 0x 기능이 점차 나타나기 전까지는 문제가 거의 사라질 것으로 예상됩니다. 또한 플랫폼 별 코드를 한 곳에서 중앙화하기 위해 간단한 플랫폼 추상화 라이브러리를 작성합니다. 새로운 플랫폼에서 모방하기 힘든 운영 체제의 서비스에 어느 정도 의존하고 있는지에 따라 다릅니다.

처음부터 이식성을 구축 할 필요는 없습니다. 이것이 바로 "포팅"이 가장 중요한 플랫폼에서 초기 릴리스 이후에 한 번에 수행 할 수있는 활동으로 종종 설명됩니다. 처음부터 계속해서 그렇게 할 필요는 없습니다. 진정 경제적 이유 때문에, 결코 돈을 지불하지 못할 일을 피할 수 있다면 분명히해야합니다. 나중에 필요할 때 포팅하는 비용은 그다지 좋지 않습니다.

1

대부분이 응용 프로그램이 (개별 소프트웨어)으로 작성된 기존 플랫폼이 있습니다. 그러나 당신은 독립적 인 언어를 제공하기로 결정한 경우 더 많은 개발자 주소 (두 플랫폼 모두)을 선택하십시오. 중소기업 에 대한

또한

제품 (표준 소프트웨어)은 서로 다른 플랫폼에서 그들이 실행하는 경우 더 판매 할 수 있습니다! 두 시장 모두에 액세스 할 수 있습니다. WIN & LINUX! (및 MacOSx 등 ...)

큰 회사는 대부분 특정 제품을 배포하기 위해 제품 공급 업체에서만 지원/인증 한 하드웨어를 구입합니다.

1

동시에 여러 플랫폼에서 개발할 경우 다른 도구를 사용할 수 있다는 장점이 있습니다. 예를 들어, 한 번 메모리를 덮어 썼습니다 (여전히 null 바이트에 +1이 필요 없다고 맹세합니다!). Windows에서 코드를 가져 와서 Rational Purify로 약 1 분만에 덮어 쓰기를 찾았습니다 ... Linux에서 추격하여 일주일이 걸렸습니다 (valgrind가 발견했을 수도 있지만 ... 그 때).

동일하거나 다른 플랫폼의 다른 컴파일러는 각 컴파일러가 다른 것을보고 할 때 필연적으로 필요하며 때로는 오류에 대한 한 컴파일러의 보고서가 횡설수설 될 수도 있지만 다른 컴파일러는 매우 명확하게 만듭니다.

개발 중에 여러 데이터베이스와 같은 것을 사용하면 특정 데이터베이스에 묶일 가능성이 훨씬 적습니다. 그렇게해야하는 이유가있을 경우 데이터베이스를 스왑 할 수 있습니다. Oracle을 사용하는 무언가를 SQL Server를 사용하는 기존 인프라에 통합하려는 경우, 예를 들어 Oracle 또는 SQL Server 조각을 다른 시스템으로 이동할 수 있다면 훨씬 좋을 것입니다 (3 가지 다른 점을 알고 있습니다. 금융 시스템 데이터베이스 ... ick).

일반적으로 항상 2 ~ 3 가지를 개발하면 실수를 찾는 확률이 높아지고 시스템의 유연성이 높아집니다.

반면에 모든 것은 시간과 노력이 필요하며 즉각적인 시간은 불필요한 비용으로 간주됩니다.