요새 대부분의 프로그램이 윈도우 맥 리눅스 이렇게 세종류만 배포해도 아무 문제 없는거만 봐도
딱 컴파일 3번만 하면 거의 모든 컴퓨터에서 돌아가는건데
심지어 요즘은 cmake 같은걸로 빌드하면 한번에 세개 다 컴파일 되고
컴파일 3번하기 귀찮은걸 코드 이식성이 낮다고 하긴 어렵지 않나?
write once run anywhere 하는 자바도 플랫폼별 최적화는 해줘야하고
솔직히 이제는 컴파일 언어의 단점에서 이식성 낮다는 내용 빼는게 맞지 않을까 싶다
딱 컴파일 3번만 하면 거의 모든 컴퓨터에서 돌아가는건데
심지어 요즘은 cmake 같은걸로 빌드하면 한번에 세개 다 컴파일 되고
컴파일 3번하기 귀찮은걸 코드 이식성이 낮다고 하긴 어렵지 않나?
write once run anywhere 하는 자바도 플랫폼별 최적화는 해줘야하고
솔직히 이제는 컴파일 언어의 단점에서 이식성 낮다는 내용 빼는게 맞지 않을까 싶다
이식성이 낮다는 것이 가리키는게 환경별로 컴파일을 다시 해야한다는건데 - dc App
근데 그 환경이 딱 세개밖에 없잖아 그거 세개만 맞추면 어디가서 이식 안될까 걱정할 일 없는데
그 3개는 os를 3개로 나눈것 뿐이고, 실제론 os별로 호환되게 하러면 os용 api호출이라거나 다 신경써야하고, os마다 버전다르고, 리눅스는 glibc 버전 다르고... 이런게 엄청 많아 - dc App
하긴 그렇네
근데 그 작업 안 해도 되는 언어가 없지 않음..? 자바든 파이썬이든 버전은 신경써야하고 os api 호출 부분은 다 따로 써야하는데 자바가 c++에 비해 이식성이 뛰어나다는게 나는 별로 체감이 잘 안됨
상대적인거지. 이식성 있다 없다가 아니라 높다 낮다의 차이야 - dc App
닌 러스트도 이식성이 낮냐?
옛날에 이식성이 높다고 하는건 코드를 안고치고 컴파일을 심리스하게 해서 배포 가능하다는거였는데
러스트는 모르겠고, 컴파일은 첫 댓글에 말했는걸 - dc App
리눅스 버전만 올라가도 cmake 작살나는 거 보면 아직 멀었음
모바일은 OS도 아니지?
맞네 os가 3개만 있다고 보긴 어렵네
안드로이드 리눅스 ios darwin - dc App
자바는 그냥 딸깍하면 전세계 모든 jvm에서 실행되는걸
낄때껴라 좆자바충련쫌
컴공 2학년 1학기만 되어도 unistd.h가 윈도우에서 사용이 불가능하다는 사실은 모두가 알고있어
gcc 쓰세요 gcc
gcc란다 mingw
시그윈말하는거면 시그윈은 좀 ㅋㅋ;;
좀 다른 얘기긴 한데 os api로 코딩하는데 이식성 따지는거도 뭔가 이싱함 예를 들면 win32인데 WinMain은 표준에도 없는 함수 아니냐고 따지는게 무슨 의미가 있는건지
나도 이 생각함
이제 OS의 API를 직접 사용하는 경우는 드물고 언어 자체에서 충분한 API를 제공해주거나 라이브러리로 끌어다 쓰는 때가 많아서 그렇긴 함 여전히 pthread 같은 것이 있다고 말하려고 했는데 이것도 표준이 나온지 한참 됐네
아직 멀었음 당장 네트워크만 봐도 OS API 써서 각각 구현해야 하고 표준에 있는 기능이 부족해서 OS API를 융합하는 경우도 있고
빅 엔디언, 리틀 엔디언 등의 로우레벨 호환성 문제도 있고 어셈을 쓰는 일부 코드들도 있고
asio
특정 OS에서 동작하는 런타임, 특정 OS를 타겟하는 컴파일러. 둘 다 이식성은 별로 다를거 없지 않나 싶음.. QT같은 라이브러리가 크로스플랫폼을 지원하는 것도 플랫폼에 맞게 api를 따로 작성한 거 아님?
C++에서 크로스플랫폼 라이브러리들이 생각보다 똥냄새가 심하게 나서 그런거 같기도 하고
C++에서 쓸만한
컴파일이 오조오억년 걸리는데 글에서 쓴것처럼 세번만 해서 다 해결되는것도 아님
사람들이 자바 많이 쓰니까 관련 생태계가 잘 발달되어있고, 그래서 자바 쓰는게 큰것같음 C++하려면 비즈니스 로직 말고도 손봐야할 부분이 많을수밖에 없는데, 그렇게 해서라도 C++ 쓸 이유 있는 대기업 아니면 힘들다봄