자바 와 씨 언어중 어디가 빠른가요?

sunyata01의 이미지

저는 c 언어로 프로그램을 시작한 초보 프로그래머 입니다.
최근 서버쪽으로 공부 중인데, 씨로 서버를 만들려고 하는데, 아는 지인이 보통 서버는 자바로 개발하고
자바로 짜는게 편하다고 자바를 추천합니다. 물론 지인은 자바가 최고의 언어라는 칭하지는 않지만, 제가 보기엔 자바가 짱인 것으로 생각하는 것 같습니다.
어떤 프로그램이든 간에 자바랑 씨가 둘다 정말 빈틈없이 잘짰다고 가정했을때,
아무리 자바 할아버지가 와도 c보다 빠를 수 없다고 생각하는데, 제 의견이 맞는지 궁금하네요
그분말로는 요즘 jvm 이 잘되어서 별차이 없답니다.
그리고 안드로이드 머시기는 커널쪽에 jvm이 포함된다고 c랑 별반 틀리지 않다고 하시네요. 정말 요즘 자바가 그렇게 좋아진건가요?
그리고 유명한 게임 업체나 왠만한 네이버나 대형 포탈 업체들 쪽에서는 자바로 서버 프로그램을 돌리는지 궁금합니다.
마지막으로 궁금한게 요즘 소스포지에 올라오는 오픈 소스 대부분이 자바인지도 궁금하군요.
여러분의 생각은 어떤지 궁금합니다. 정말 고수분들의 의견을 듣고 싶습니다.

이런글 남기면서 또질문을 하나 하겠습니다.
이건 앞으로 어떤 프로그래머가 될 건지 진로를 묻는 질문인데요.
어떤 프로그래머가 성공할 수있는지 둘중에 한번 선택하시고 왜 그러한지 이유 좀 말해주시면 고맙겠습니다.
1)프로그램 짜는데 있어서, 어떤 언어든 간에 로직을 알면 짜는데 상관 없으므로 어떤 언어든 할 수있어야하고 요즘 최신 기술에 정통할 수는 없지만, 되도록이면 받아들여 알고 있어야 앞으로 연봉이나 나의 경력에 덕이 이되며, 남들에게 인정받을 수 잇다.
2)앞에 1)의 내용이 맞긴 하지만, 아니다. 경력이 쌓여도 제대로 구사할 줄 아는 언어가 없기때문에 하나라도 제대로 짜서 상품가치가 있는 편이 자신의 앞날에도 덕이 되며, 연봉도 많이 받고 남들에게 인정 받을 수있다.

어떤걸 선택하시겠습니까?
어떻게 보면 바보같은 질문이지만 여기까지 읽어 주셔서 감사합니다.

카二리의 이미지

서버사이드를 자바로 만드는 이유는 ...

자바가 아니라 아무리 느린 언어라고 할지라도 네트웍 속도와 넘쳐나는 서버 자원이 모자랄 만한 일이 그렇게 많지 않기 때문입니다.

자바로 잘 짜는 사람이 C로 적당히라도 짜는 사람보다 수가 많기 때문에,

어지간한 퍼포먼스를 요구하는 일이 아니라면 자바로 잘 짜는걸 C로 따라오려면 엄청난 개발 비용이 들기 때문에, 또한 개발비용을 많이 들인다고 잘 만들어질 가능성도 높지 않기 때문에, 그냥 자바로 하는 겁니다.

두번째 질문은 1번도 맞고 2번도 맞습니다. 2번 없이 1번만 있다면 그건 잘 짜는게 아니라 그냥 많이 "아는 척"만 하는거죠.
아직 업계에서 일하고 계시는게 아니라면 시야는 넓게 보시고, 한번 시작한건 끝을 본다라는 맘으로 공부 하세요.
또한 뭘 하던 상관 없이 실력을 보는데 있어서 사람이 사람을 객관적으로 알아볼 지표는 공식적인 문서외엔 없다는 것도 알아 두세요.
성적, 수상실적 이런것들이 공식적인 문서 입니다. (물론 다른것들도 있죠)

새 생각 :)

새 생각 :)

카二리의 이미지

안드로이드는 그냥 레지스터기반 java VM을 리눅스 위에 얹어 놓은 겁니다.

그리고 프레임웍을 네이티브에 의존을 많이 하게 짜 놨을 뿐입니다. C랑은 많이 틀립니다.

그리고 요즘 자바가 그렇게 좋아진거냐고 물으신다면, 네 좋아 졌습니다 과거에 비하면. 정확히는 VM 기술이 많이 발전 했습니다.
자바가 좋아진게 아니라 VM을 쓰는 언어들이 좋아졌죠.

자바가 좋아진거라면 자바 개발자가 너무나도 많아져서,자바로 일 할 사람을 찾기가 쉽다는게 좋아졌다면 좋아진거고,
근대 그 와중에도 입만 살아있는 자바 개발자들이 많아서 막상 제대로 쓸 사람은 찾기 힘들고... 뭐 그런거죠

새 생각 :)

새 생각 :)

sDH8988L의 이미지

제 생각에는 서버 쪽에서는 자바는 충분히 빠르다. 라고 생각합니다.

C보다 더 빠르냐는 질문은 크게 의미가 없는 거 같구요.

가능한 온갖 최적화 다 하면, Java도 C 만큼 빠를 수 있는 것도 있습니다. (ByteCode 말고 그냥 Native Code로 만들어 버릴 수도 있으니까요.)

하지만, 그런 게 의미가 있느냐 하는 겁니다. 충분히 빠르다고 본다면...

더 중요한 것이 얼마나 편하게 버그 없이 빨리 프로젝트를 진행할 수 있느냐겠지요.

그런 면에 있어서 Java가 C보다 유리하다고 봅니다.

빈틈없이 잘 짜여졌다는 것도 규모가 어느 정도 커지면 의미 없는 것이 됩니다. 반드시 실수나 버그가 들어가게 마련입니다.

프로그래밍 언어가 왜 플랫폼을 지향하는 지를 생각해 보시면 됩니다. 실수나 버그를 플랫폼 래벨에서 쉽게 찾아내고 고칠 수 있느냐도 중요한 요소입니다.

마지막 질문에 대해서는 카이리님과 같은 의견입니다. 넓게 알고 있으면서도 집중적으로 알고 있어야 합니다.

좁은 분야의 스페셜리스트라면 그 분야 이외에 쓸 수가 없고, 다방면에 알고는 있지만 하나라도 잘 알지 못하면 실질적으로 쓸 수가 없습니다.

당연한 말 아니겠냐고 하시겠지만, 당연한 만큼 중요한 겁니다.

그리고 그 2가지 중에 반드시 하나만 택해야 하는 건 아닙니다. 둘 다 할 수 있죠...

bookgekgom의 이미지

자바와 씨를 비교하는게 이상한듯

자바와 씨는 지향하는바가 다른데요. 자바와 씨쁠쁠을 비교한다면 또 모를까...

서버를 자바로 많이 짜는이유는 제가 알기론 일단 자바의 멀티 쓰레딩 능력때문이 아닐런지...

자바 요즘 좋죠. 저도 개인적으로 많이 사용하는 언어입니다.

그리고 마지막 질문은 2 가 있은뒤에 1 이 잇는거아닌가요?

객체지향 언어 하나만 제대로 알면 다른 객체지향 언어를 배우는데 별로 문제가 없죠.
---------------------------------------------------------------------------------------------------------------
루비 온 레일즈로 만들고 있는 홈페이지 입니다.

http://jihwankim.co.nr

여러 프로그램 소스들이 있습니다. 와서 받으삼.

---------------------------------------------------------------------------------------------------------------
루비 온 레일즈로 만들고 있는 홈페이지 입니다.

http://jihwankim.co.nr

여러 프로그램 소스들이 있습니다.

필요하신분은 받아가세요.

바라미의 이미지

이건 정말 해묵은 논란인데....

http://kldp.org/node/96772

feanor의 이미지

Quote:
그리고 유명한 게임 업체나 왠만한 네이버나 대형 포탈 업체들 쪽에서는 자바로 서버 프로그램을 돌리는지 궁금합니다.

다음 개발자 네트워크에 보면 2002년부터 자바를 사용하고 있다고 합니다. 톰캣을 쓴다고 하는군요.
http://dna.daum.net/opensource/glamji.html

select99의 이미지

반대로 생각해서 .. 반론을 하자면..

그럼 안쓰는곳 왜안쓰는지 안궁금하신지..

자바쓰다가 다른걸로 바꾼업체는 왜바꾸었는지 안궁금하신지..

맨처음 자바를 적용하려던사람에게 누군가가..
다른회사들이나 대부분 서버들이 왜 자바가아닌 다른언어를 사용했는지 모르겠냐? 라는 말을해줬다면 어떠실지..

이유는 (윗글에)없고 다른사람이 그렇게 하니 믿어라..라는말밖에 안되죠..
언어를 마치 종교처럼 믿고 하는건 아니라고봅니다.

feanor의 이미지

질문하신 분이 어디서 쓰는지 궁금해 하셔서 다음에서 쓴다고 답변한 것 뿐입니다. 제가 다음에서 쓴다고 했지 "그러니까 당신도 써야 한다"고 했습니까? 도대체 어디서 "언어를 마치 종교처럼 믿고" 어쩌구가 나오나요?

프로그래밍 언어를 추천한다면 제가 총맞았다고 자바를 추천하나요. 파이썬이나 리습 공부하세요.

hongminhee의 이미지

저 분도 Java 썩 좋아하진 않는 분이십니다만;;

홍민희 (VLAAH, LangDev)

select99의 이미지

제가 생각하는바로는..

자바가 쉽다고 생각하는사람도 있고 어렵다고 생각하는사람도 있고 사람에따라다릅니다.
반드시 자바가 쉽다는고 하는건 잘못된겁니다.

제경우는 C가 쉽습니다. 동일한문법을 알고 동일한로직을짜라고 해도 C가 낫습니다.

속도는 C가 빠릅니다. 아니라고 하실분 계실지몰라도 제가 해본결과론 그랬습니다.

feanor의 이미지

Quote:
반드시 자바가 쉽다고 하는건 잘못된겁니다.

아니에요. 자바가 쉬워요.

select99의 이미지

매우 단정적으로 말씀하시네요..

그렇다면.. 자바가 어떠한경우에도 쉽다 라고 생각하시는거겠군요..
정말 쉬운가요? 그럼 구체적인 예를들어보죠. 매우유명한? 프로그램하나..

"hello world" 프로그램
그냥 검색해서 나오는 C, Java 각각하나씩 배꼈습니다.

main( void ) {
    printf("Hello, world!");
}
 
------------------------------------------------------
 
class myfirstjavaprog
{  
        public static void main(String args[])
        {
           System.out.println("Hello World!");
        }
}

대체 뭐가 자바가 쉬운건가요?

소스량이나 클레스까지 뭘로보나 자바가 더어렵군요..

------------
이건 너무 간단한프로그램이니 그렇다구요?

복잡하거나 덩치큰프로그램을 작성할때면쉽다구요? 메모리관리나 포인터때문에?
그럼 C에서 포인터 사용하지 않고 프로그램하면 마찬가지겠군요..
(제생각은 포인터사용하면 더쉽게 구현할수있다고 생각하니.. 포인터가 없는자바는 매우불편한 언어로보입니다...)
혹시 제공되는 라이브러리를 예로드신다면 C/C++도 적은게 아닙니다.

더구나 디바이스 드라이버등 하드웨어컨트롤할일이 생기면 자바는 더욱어렵죠.. 뭐가 쉽다는건지 대체 이해하기 어렵죠..
어떤프로젝트의 결과로 보더라도 막연히 쉽다는개념은 이해하기 힘듭니다.
자바프로젝트가 노동력과 자금이 적게 들어가는프로젝트가 아닐겁니다. 대부분 큽니다. 비슷한프로젝트를 하더라도 비용이 많이 들어간다고 알고 있습니다. 쉬운데 왜 많이 들어갈까요..

semmal의 이미지

언어가 쉬우냐 어려우냐를 일단 경험적인 문제에서 벗어나서 정량적인 방법을 택하면 자바가 더 쉬운 언어라는데 납득이 되실 걸로 생각합니다. 적용 분야나 문법의 취향등의 경험적인 문제로 생각하면 쉬운지 어려운지 판별하는건 거의 불가능합니다.

그러나, 문법의 갯수와 사용하는데 필요한 난이도, 문법의 다양한 변형 또는 추가 가능성, 프로그래밍을 하기 위해서 익혀야하는 방법, 하드웨어에 대한 지식의 필요성 등을 따져보면 자바가 더 쉬운 언어인 것은 분명해보입니다.

프로그래밍 언어를 다루는 사람이라면 자신의 경험적인 부분보다 논리적이고 분석적인 방법을 사용해서 대화를 하는 것이 좋지 않을까요? 쉽고 어려운 언어라는게 좋고 나쁜 언어라는 뜻도 아닌데 말이죠.
------------------------------
How many legs does a dog have?

------------------------------
How many legs does a dog have?

select99의 이미지

그러나, 문법의 갯수와 사용하는데 필요한 난이도, 문법의 다양한 변형 또는 추가 가능성, 
프로그래밍을 하기 위해서 익혀야하는 방법, 하드웨어에 대한 지식의 필요성 등을 따져보면 
자바가 더 쉬운 언어인 것은 분명해보입니다.

따져볼항목은 논리적으로 재대로 말씀하셨는데 결론은 갑짜기 근거없이 내버리시네요.

문법의갯수? 그러니까..
문법이 많으면 복잡하다..즉, 사용상 할아야할것이 많다면 문제다라는거죠..

그렇다면.. 몰라도 할수 있다면, 당연한말일것입니다..
몰라도 (쉽게)되는데 궂이 불필요하게 복잡하게되어있다면 이건분명 단점입니다.(아마 포인터를 두고 하는말씀이겠지요..)

예를들어봅시다. 구구단을 몰라도 더하기 많이 하면 되는데 궂이 구구단이 뭐필요한가..(왜필요한줄 다아실겁니다.)
많은경우 자바코드가 길어지는 이유중하나입니다.(포인터처리를못하기때문에..)
또한 그로인하여(포인터가 없기때문에 대체를위해 그나마 쉬우라고 제공되는라이브러리를사용하려면)
클래스내부의 각종 함수의 특징과 사용법등 많은것을 익혀야합니다.
(반대로 C는 쉬우라고 라이브러리등이 많이 나와있는데도 불구하고,간단한건 직접만드는게 더 쉽다고ㅡㅡ; 많이들 자기가 만들어쓰기도 합니다..)

즉, 문법자체가 없거나 몰라서 노가다?성작업을 하는것보단 좋은문법하나익히는게 훨씬유리합니다.
난이도나... 역시 비슷한상황입니다.. 덧셈보단 곱셈이 난이도가 높지요.. 하지만 사람들은 바보가 아닌이상 곱셈으로 계산합니다.

C의경우 기본적으로 제공되는 몇안되는 표준함수만 알고 있어도 웬만큼 원하는건 모두 할수 있습니다.
참 C 처럼 몇안되는 적은 문법이나 함수로 여러방면에 다양하게 욹어먹는언어가 또있을지..(거의 모든방면에 욹어먹을수 있습니다.)
하드웨어에대한 지식이 필요하다면 해당구현을 자바가 하려면 자바도 마찬가지일뿐아니라 자바는 안다해도 구현못하년경우가 있습니다.
자바가 제공되는 라이브러리로 구현한다면 C 역시 제공되는 라이브러리를 사용한다면 자바처럼 몰라도 됩니다.

semmal의 이미지

그래서 select99님 말은 곱하기가 더하기 보다 더 쉽다는 거죠? 그렇다면 저는 더 할 말이 없습니다.
------------------------------
How many legs does a dog have?

------------------------------
How many legs does a dog have?

select99의 이미지


100번더하느니.. 그냥 곱하기 100 하면 더쉬운거 아닌가요?
설마 저만 그럴려구..^^;

semmal의 이미지

앞에서 더하기가 쉬우냐 곱하기가 쉬우냐라는 비유를 들었잖아요. 더하기를 자바로, 곱하기를 씨로 든 거 아닌가요? 그 비유 자체도 마음에 안들지만 어쨌든 그렇다고 하더라도, 더하기와 곱하기를 비교하면 연산자의 쉬움을 비교해야지, 100번을 한다느니하는 건 좀 우습지 않나요?
그럼 곱하기가 더 쉽다는 증거로 소수 100개를 더한 합을 곱하기로 구해보세요.
당연히 이러면 난감하겠죠? 애초에 말이 되도록 비교를 해야지요.
------------------------------
How many legs does a dog have?

------------------------------
How many legs does a dog have?

소타의 이미지

항상 적절한 비유만을 들 순 없죠;;;
어떤 의미에서 자바와 C를 곱셈과 덧셈으로 비교했는지 짐작할 순 있습니다.

개인적으로는 뭔가를 개발할 때 자바가 C보다 더 많이 알아야 한다고 생각합니다.
전 두 언어 중 뭐가 많다 적다가 아니라 문화의 차이라고 생각하는데요.
자바는 환경 구성하는 것도 어렵고 소스코드가 바이너리 코드로 되고 그게 VM에서 돌고 그런 개념도 있고요. 특히나 프레임웍이라던지 방법론이 어떤 경우는 정치적이라고 할 정도로 강압적이기도 합니다.
문제는 이런 특성들이 나쁘다는게 아니라 매우 좋은 것인데도 적잖은 개발자들이 이게 어떻게 왜 좋은지 명확히 모르는 상태에서 따라하고 있다는 거고 자신의 실수를 제외한 프레임웍/컨테이너/VM 자체의 결함으로 인한 버그나 성능 저하에 대해 해결 방법을 찾기가 어렵다는 겁니다. (자기 실수는 자기 몫이니.. 이건 C에서는 메모리 릭이나 침범으로 비교해도 될 것 같습니다.)
C에도 어려운 개념이 없다는 것은 아닙니다. 포인터라던지 struct/union 등 장치 의존적이라서 특히나 어렵게 느껴지는 것들이 있지만 이는 환경이 바뀌는 것이 아니기 때문에 몇 번 개발 후 익숙해지면 전혀 문제가 되지 않게 됩니다. 적어도 프레임웍이 프로덕트 특성마다 달라지는 그런 일은 없죠.

예를 들면 PHP로 개발을 하다 보면 PHP 엔진 자체의 결함 때문에 생겨나는 버그를 아주 가끔 겪습니다. 논리적으로 아무리 봐도 문제가 없다고 생각되면 머리속에 "헐.. 이거 PHP 버그인득??" 이라는 생각이 들고 실제로 소스를 까보면 그런 경우가 대부분이었습니다.
하지만 C로 개발을 하면 뭔가 죽는 문제가 생기거나 값이 이상해지거나 하면 절대 기계를 탓하지 않습니다. 머리속에 "이건 분명히 내 잘못" 이라는 생각이 명확하게 들고 실제로 90% 이상 논리적인 결함이거나 메모리 침범이 있었습니다. 10% 정도는 제가 컴파일러의 특성을 잘 몰라서 이거나 장치나 OS에 의존적인 차이를 몰랐다거나 그런 케이스였습니다.

semmal의 이미지

둘 다 50보 100보로 어렵기는 마찬가지기는 하지만, 자바가 C보다 많이 알아야할 이유는 없다고 보여지네요.
int 크기와 pointer 크기가 얼마냐로 몇 년차 프로그래머 조차 헛갈려하는게 C입니다. 자바에서는 그럴 일이 없지요.
말씀하신대로, C로 개발하면서 메모리 구조나 컴파일러 특성을 파악하지 못하면 제대로 동작하지 않는 경우가 있습니다. 완전히 JVM을 몰라도 되는 것은 아니지만, 자바는 그런 일이 "덜"하다는 겁니다.
라이브러리와 언어를 구별하지 않으시는데, 이 둘은 구별해 주세요. 언어는 언어이고 라이브러리는 라이브러리입니다. 라이브러리가 많아서 언어가 어렵다는 말은 논점을 벗어나는 겁니다. 왠만한 패키지가 거의 포함되어있는 자바에 비해서, 이리저리 흩어져 있는 라이브러리를 찾기가 어려워서 C가 어렵다고 하는 것 역시 말이 안되는 거거든요.
프레임웍이나 방법론은 언어와 별 관계가 없는 이야기구요.
그리고 자바와 C를 이야기중인데 PHP는 왜 들어오는지 모르겠구요.
익숙하지 못해서 모르는 것을 어렵다고 하는 건 상관없는데, 그렇다고 쉽지 않다라고 결론을 내리는 건 곤란합니다. 익숙치 못한 환경에서는 환경 구성도 어렵겠지요. 윈도즈에서 웹브라우저를 열어서 java.sun.com가서 sdk 인스톨 파일 받아서 next만 누르다가 마지막에 finish 누르는게 어려운지는 잘 모르겠습니다. 그게 어렵다면 어려운 거겠죠. 애초에 경험적인 부분으로 다툼을 시작하면 결론이 나지 않습니다. "나는 ~라고 생각해요"로 대화가 이어갈거라면 이만 여기서 마치겠습니다.
------------------------------
How many legs does a dog have?

------------------------------
How many legs does a dog have?

소타의 이미지

네 그래서 "자바라는 언어 자체가 어렵다." 라고 말한 적이 없습니다.
제 글이 다툼을 위한 글이 아니라고 생각하고 읽어주시면 좋겠네요.
전투모드이신것 같은데 전투에는 참여할 생각 없으므로 그만 하겠습니다.

select99의 이미지

지금 제PC 에 깔려있는것만해도 프로프레임,bea 등등해서 깔려있듯이 자바프로젝트하나하려면 여러가지가 설치되어야합니다.

제가 평가하기에 매우 어렵습니다.
툴자체가 불완전한면도 있구요..개발에 있어서도 툴자체의 버그나 불완전함으로 불편한점이 한두가지가 아닙니다.

넥스트넥스트피니쉬 누르면 될거같지만 안됩니다.
각종 컨피그 설정해야할것도 매우많구요..
여기환경구성 문서가 무려 수백페이지에 해당합니다.그걸그대로 따라해도 안됩니다.
문서가 잘못된점도 있거니아 툴자체가 버젼업되어서요..
그거다해도 안됩니다. 툴에 버그가 있어서요.. 수동으로 파일을 카피해줘야되는게 있어서요..
이게 쉽다니.. 그럼 아무것도 안하고 그냥바로 개발해도 되는환경은... 뭐라고 표현해야되죠?

int크기와 포인터크기요? sizeof 하면되는데 그걸궂이 시스템에따라 알고 있어야 될일이 있나요?

위에 "덜"하다는 얘기도..
구구단잘못외워서 곱셈계산잘못할수 있는데 더하기만하면 그럴경우는 별로 없다 라는말이나 같은말이구요..

그리고 실제로 저도 그냥 포인터한번만 배워두면되는것에비해..
각종 새로나온 라이브러리 함수 찾아가고 사용법등 알아보는게 훨씬힘듭니다..

당장 웹만하던사람에게 상세 알고리즘수준의 스펙주면서 펌웨어 프로그램좀짜보라고하면
C는 그다지 문법적으로 새로배울것이 없습니다. 스펙만명확하면 그것데로 하면됩니다.
자바는 어떻게 해야되죠?아마 어렵다 못해 거의 불가능하지 않습니까?
설사 해당업무의 라이브러리를 제공해준다해도 매우익숙하지 않을겁니다.

semmal의 이미지

네네 그렇게 알고계세요. 자바는 설정하기도 복잡하고 쓰는 툴에 버그도 많아서 언어가 안좋습니다. 프로그램과 언어도 구별 안되는 분이신줄 미쳐 몰랐습니다. 죄송하네요.
------------------------------
How many legs does a dog have?

------------------------------
How many legs does a dog have?

select99의 이미지

설마 "구별"을 못했을리가요..

소타의 이미지

자바라는 언어 자체가 나쁘다고 말 한 적 없습니다.
그럼 이렇게 얘기할께요.
자바라는 언어 자체는 우수한데 자바로 프로젝트 한 번 할라면 라이브러리랑 개발도구 때문에 설정할 것도 좀 많고 도구들에 결함도 좀 있어서 짜증날 때가 있는데 C는 그런 부분은 없다. <- 이거 지금 이 글의 논점은 아니고 그냥 곁다리인데 이거땜에 이 글타래가 망한글이 되어갑니다.

C와 자바의 언어 자체의 우수성과 차이점에 대한 trade off 얘기 보다는 말꼬리에 맞춰서 얘기하시니 얘기하고자 하는 것이 무엇인지 이해가 점점 안갑니다.
뭘 말하고자 하는지 다른분들은 이해하고 계시다고 생각되는데 논점을 혼자 정의하고 원하는 답이 아니라고 니들이 멀 알곘냐 라는 식으로 비꼬시면 자바의 우수성을 알리기에 더 안 좋을 것 같습니다.

semmal의 이미지

한번도 자바를 우수하다고 생각한 적이 없어서, 전혀 자바를 우수하다고 말하고 싶지 않습니다.

그저 언어적으로 자바가 C보다 더 쉬운 언어라는 것 뿐입니다.

라이브러리/개발도구 설정은 언어가 쉽고 어렵고와 전혀 관계가 없다는 말이고, 그게 어려운 건 라이브러리와 개발도구 툴의 문제이지 언어의 문제가 아니라는 겁니다.

장기의 말을 옮기는 규칙과 체스의 말을 놓는 규칙을 따져보면 어느 쪽이 규칙이 쉬운지 비교할 수 있습니다. 하지만 장기판이 안좋아서 장기가 더 어렵다거나, 체스판에 때가 많이타서 체스가 어렵다는게 말이 됩니까?

대화를 할 때 최소한의 예의도 못갖춰드려서 죄송합니다만, "쉽다 어렵다"를 따지는 포인트부터 엇나가는데 어떻게 제대로된 결론이 나오겠습니까?

컴파일러 책이라도 하나 장만해서 보시면 "제가 말하는 관점"이 "제 관점"이 아니라는 건 "쉽게" 어쩌면 "어렵게" 알 수 있을 겁니다.
------------------------------
How many legs does a dog have?

------------------------------
How many legs does a dog have?

select99의 이미지

C프로그램보면 프로그램전체가 포인터로만 되어 있는게 아닙니다.
적절한곳에 포인터와 배열등을 썩어쓰지요..

곱하기할곳이 아닌곳에 억지로 곱하기할턱이 있나요..
하지만 간단한 자전거 회전축이받는 힘의크기를 계산한다치더라도..
수학이 들어가고 그거 계산하는데는 여러 덧셈곱셈뿐만아니라.. 더많은 여러가지 개념과 공식이 들어갈겁니다..
넌 덧셈은 사용하지말고 곱셈이나 미적만으로 계산해봐라..라는건 어이가 없죠..

마치 산삼의 약효가 대단하더라 는말에.. 그럼 밥도먹지말고 물도 마시지말고 산삼만먹고 살아봐라..라는 말이되죠..

semmal의 이미지

더이상 대꾸하는게 힘들군요. 서로 각자 편한데로 알고있기로 합시다.
------------------------------
How many legs does a dog have?

------------------------------
How many legs does a dog have?

lovian의 이미지

저는 개인적인 성향이 쉽다 어렵다를 좌지우지 하는거라 생각합니다.
그 성향이, 편하고 그렇지 않고 일 수도 있고요.

그래서 일지도 모르지만, 저는 자바의 코드량이 어려울 정도로 많은 것 같지는 않네요.
따지고 보면 함수를 선언해서 include하는 c의 관리법은 귀찮기도 하지요.
물론 자바가 좋고 쉽다는 말을 하려는건 아닙니다.

어차피 주관적인 경험을 바탕으로 이야기하는 것이니.
아마 대부분 주어를 빼놓고 말하셔서 문제가 되는가 아닌가 합니다.

나에게 있어 자바는 쉽다.
나에게 있어 C는 쉽다.

이런 느낌으로요 ^^;

-----------------
한글을 사랑합니다.

-----------------
한글을 사랑합니다.

나빌레라의 이미지

해묵다 못해 사골 국물까지 쪽쪽 빨아먹은 논쟁이군요..

결론은 빠르다고 다 좋은게 아닙니다.

씨가 적당한 곳엔 씨를 쓰는것이 좋고, 자바가 적당한 곳엔 자바를 쓰는것이 좋습니다.

무엇이 어디에 적당한가는 개발자가 결정하는 것입니다.

그 기준은 개발자마다 다 다르며 개개인의 능력과 선호도에 따라 또 다릅니다.

결국 답은 없습니다. 둘중 어떤게 빠르다고 그것만 할것이 아니라, 둘 다 잘해야 한다가 제가 내린 답입니다.

그리고

Quote:

1)프로그램 짜는데 있어서, 어떤 언어든 간에 로직을 알면 짜는데 상관 없으므로 어떤 언어든 할 수있어야하고 요즘 최신 기술에 정통할 수는 없지만, 되도록이면 받아들여 알고 있어야 앞으로 연봉이나 나의 경력에 덕이 이되며, 남들에게 인정받을 수 잇다.
2)앞에 1)의 내용이 맞긴 하지만, 아니다. 경력이 쌓여도 제대로 구사할 줄 아는 언어가 없기때문에 하나라도 제대로 짜서 상품가치가 있는 편이 자신의 앞날에도 덕이 되며, 연봉도 많이 받고 남들에게 인정 받을 수있다.

이런 질문을 하신것 보니, 아직 학생인것 같네요. (아니라면 죄송합니다.)

개발자로서 목표를 잡고 스스로 열심히 노력하다 보면 (1)번은 자연스럽게 됩니다. 연봉이나 경력을 위해서가 아니라 스스로 열심히 하다보면 어느 순간 주변 사람들이 자기 자신을 인정하게 되는걸 알게 될겁니다. 연봉이나 경력은 그것에 따라 부수적으로 따라오는 것이지 목표가 아닙니다.

제가 (2)번 질문을 제대로 해석 못한것일 수도 있는데, 알골 계열 언어라면 어느것 하나만 수준이상으로 하면 다른것들 모두 쉽게 할 수 있습니다. 그러므로 이것저것 안다고 다른것을 제대로 못하는 것도 아니고, 하나만 집중적으로 판다고 다른 언어를 할 줄 모르는 것도 아닙니다.

지금은 정말 궁금해서 이런 글을 올리셨겠지만,
지금의 열의를 가지고 한 3~4년 열심히 프로젝트 하고 프로그램 짜고 공부하십시오.
알바(어디 서빙알바 같은거 말고 프로그래밍 알바)도 열심히 하고
이것저것 많이 경험해 보십시오.

그리고 시간이 흘러서 sunyata01님의 질문을 다시 읽게 된다면, 본인이 얼마나 시각이 좁았는가를 알 수 있게 됩니다.

----------------------
얇은 사 하이얀 고깔은 고이 접어서 나빌레라

----------------------
얇은 사 하이얀 고깔은 고이 접어서 나빌레라

sunyata01의 이미지

학생이라고 생각들정도...시야가 좁다..ㅋ
뭐 기분좀 나쁘지만 나빌레라 님한테 화풀이는 안하겠습니다. 최근 나빌레라님 책도 사서 공부하고 아직도 나빌레라님을 고수로 인정하고 있으니..ㅋㅋ
저도 처음엔 나빌레라님 말을 인정 ..그리고 그런줄..알고 프로그램시작하는 순간부터 그렇게 믿고 왔는데, 그건 아닌 것 같아요..물론 이렇게 보는 것도 아직 제가 시야가 좀다고 생각하신다면 어쩔수 없지만...ㅠㅠ 살다 보면 "1 + 1 = 2" 가 아닐 경우도 있잖아요..

하여튼 결론은 c가 빠르다이고 빠르다고 모든 면에선 최고가 아니다. 맞죠?

select99의 이미지


님이 부끄러워할필요가 없습니다.

캐캐묵은논쟁정도에 치부할수 있으나, 궁금한게 있는데 쉬쉬할이유도 없는것이지요.
(무슨 감추어두어야할게 있다고 언제부터 이런풍조가 흐르는지..)

관심있는사람은 보고 논쟁할것이고 관심없으면 지나가면 될일이지요.

빠르다고 그외의 단점까지 커버할수 없는것은 당연한일입니다.
(즉,너무당연한말을 궂이 강조하는이유는뭔지..어떤학생이 수학1등 했다, 옆에있던 다른학부모가 수학 1등했다고 전과목을 다잘하는건아냐~! ㅡㅡ;;)

프로그래밍에서 어떤경우에든 빠르다는건 장점으로 작용합니다. 빠른자체가 장점이면 장점이지 단점이 될순없는것이지요..

다좋은건아니다? - 말이모호하지만 다라는말은 다른특징 속도왜의특징까지 장점이 될수 없다 라는말로 듣겠습니다.
그럼 안빠르면 되나요? 이건 특정 장점을 덮어버리자는 말밖에 안되는 이상한말입니다.

그러면.. 장점은 장점으로 인정하되.. 다른 단점이 있다면 그것을 구체적으로 말해야 정확한것이지요..

묻어놓고 남하니따라가고, 일단 믿고 하고, 다시꺼내 말하기 두렵고 프로그래밍이 무슨종교는 아니지요..

장점과 단점을 인정하되.. 그 근거는 의심이날때 언제라도 다시 판단해 봐야되는것이지요..

ifree의 이미지

C 는 기본으로 배우는 거니까 익혀 두는게 당연하고,
비교대상은 C++ 과 자바가 되겠죠.

그리고 안드로이드 머시기는 커널쪽에 jvm이 포함된다고 c랑 별반 틀리지 않다고 하는 말은 맞지 않는 말입니다.
커널에 포함된다면 이미 vm 이 아니죠.

그리고 나빌레라님 죄송한데. 고아라폰 하나 싸게 주실 수 없는지.
생긴 건 얌전한데, 아주 견고하다는 소문이.

neogeo의 이미지

연봉도 사실 기술처럼 적극적으로 경력 관리해야 하는게 아닌가 합니다. 이공계 출신자들이 이부분에 상당히 취약한 사람이 많죠.

똑같은 실력을 지녀도 연봉을 적게 받는 사람이 있고 많이 받는 사람이 있습니다. 요는 자신을 어떻게 꾸미고 보이느냐의 문제이지요.

다른 능력은 몰라도 프리젠테이션 능력과 자기를 홍보하는 능력은 누구에게나 필요합니다. ( 결국은 비슷한 능력이죠. 자기 자신을 잘 프리젠테이션 하면 되니까요. ) 사회생활 하실것을 대비하여 이러한 능력도 미리미리 키워주세요.

단순히 기술에만 집착해도 상당히 놓치는게 많습니다. 보통 자신이 좋아하는 일을 하다 보면 어느사이에 실력이 부쩍 늘어있고 연봉도 높아집니다. 그렇지만 적당한 관리도 반드시 필요하므로 그런 능력도 자꾸 해보면서 늘려보세요.

Neogeo - Future is Now.

Neogeo - Future is Now.

khris의 이미지

그때그때 달라요.

그죠? :D

───────────────────────
yaourt -S gothick elegant
khris'log :: http://khrislog.net

───────────────────────
yaourt -S gothick elegant
khris'log

sooily의 이미지

우리 모두 싸워보자는 글이 또 생겨났내요...
티맥스와...C언어...자바는 먼가 공통점이 있는듯하내요
심심할때마다 이슈를 재기해주는...센스!!

나는야...게으른 바보베짱이

semmal의 이미지

emacs vs vi
perl vs python
static typing vs dynamic typing
처럼 오래된 논쟁중 하나죠. 이런 오래된 논쟁의 장점은 그 덕에 서로가 서로를 닮아간다는 거겠죠. 교과서에서 배운 정반합의 과정이겠지요.
------------------------------
How many legs does a dog have?

------------------------------
How many legs does a dog have?

소타의 이미지

언어 논쟁이 나올때마다 드는 생각인데..
모든것은 "누가 어떤 언어로 어떻게 짜느냐"로 판가름난다고 생각합니다.
캐허접이 C로 짜는 것 보다 고수가 자바로 짜는 것이 당연히 빠릅니다.
캐허접이 자바로 짜는 것 보다 고수가 C로 짜는 것이 개발도 빠르고 유지보수도 잘 됩니다.

이 떡밥에 대한 일반적인 얘기는 접어두고 개인적인 경험만 얘기하자면.
전 C가 자바보다 쉽습니다. 일단 자바는 원하는 기능이 있는지, 어느 클래스에 붙어 있는지 javadoc을 딱 보고는 알기 힘들더라구요; 그냥 man .. 하는 것보다 문서 보기가 어려워서 C가 더 개발이 빠릅니다. 이거 말고는 자바에 특별한 불만이 없네요.
성능은 지금까지 항상 C가 좋았던게 해보다 해보다 안되면 C가 언제나 마지막 선택이었기 때문인 듯. 자바는 성능으로 배신한 적 있는데 C는 그런 적 없는 것 같습니다.
제한적인 하드웨어에서 개발할 때는 어쩔 수 없이 C를 선택한 경우도 많고요.

보통 성능 얘기 나오면 자바 관련해서는 런타임 옵티마이즈 얘기가 자주 나오는데 같은 로직, 같은 데이터가 반복이 계속 되어서 성능 향상이 될 케이스가 현실에서는 거의 존재하지 않는다는게 제 생각이고, 시스템적으로 이 역할은 캐싱이 해야 한다고 생각합니다. 런타임 옵티마이즈의 장점이 더 있는데 자꾸 이런 케이스의 장점으로 부각시키면 오히려 가치를 깍아먹는 느낌입니다.

다콘의 이미지

썩은 떡밥에도 항상 만선이군요. :)

M.W.Park의 이미지

깻묵같은 것은 일부러 좀 썩히죠.
냄새가 멀리 갑니다.. ㅋㅋㅋ
-----
오늘 의 취미는 끝없는, 끝없는 인내다. 1973 法頂

-----
오늘 의 취미는 끝없는, 끝없는 인내다. 1973 法頂

서지훈의 이미지

일반적으로는 C가 자바보다 빠르다는데는 별다른 이견은 없을듯 한데...
근데... 앞에도 지적 하셨듯이 자바로 잘 짜여진 프로그램이 있으면 하드웨어가 너무 잘 받쳐 줌으로 C로 했을 때와 큰차이는나지 않는거겠죠.
그러나 만약 자원(하드웨어)이 제한적이라면... 속도를 위새선 서버는 C로 당연하다라는게 저의 의견입니다.

그리고, 앞으로 작업을 함에 있어서 일단 자신만의 필살기(누구 보다 잘 할 수 있다라는 자신감 있는 언어)는 하나 정도는 필요합니다.
처음 일을 하실 땐 1]으로 시작 하시고, 어느 정도 경력 되시면 2]으로 굳히시면 될듯 합니다.
예전에도 많은 분들이 말씀을 하셧듯이 언어는 하나의 무언가를 만들기 위한 연장입니다.
장인들 보면 자신이 사용하는 연장을 자신의 목숨같이 생각 하듯(ㅡ,.ㅡ 너무 과한 표현인가)...
언어도 하나 정도는 잘하시는거 정말 중요합니다.

그리고... 요즘 돈이 되는건 java 어플개발자 인듯 하고...
꾸준히 사랑 받는건 C 개발자 인듯 합니다.
그리고, 요즘 unix-C 개발자 확줄었죠 ㅎㅎ;
요즘 대학들 다들 VC만 들구 파는지라 ㅡㅡ;;;

<어떠한 역경에도 굴하지 않는 '하양 지훈'>

#include <com.h> <C2H5OH.h> <woman.h>
do { if (com) hacking(); if (money) drinking(); if (women) loving(); } while (1);

#include <com.h> <C2H5OH.h> <woman.h>
do { if (com) hacking(); if (money) drinking(); if (women) loving(); } while (1);

sunyata01의 이미지

물론 이전 글이 내가 원하는 글이 아니다라는 뜻은 아니고, 제가 생각했을때 가장 듣고 싶었던 글입니다.
그리고 여기서 말하는 c라는 언어는 단지 vc 만 말하는 것만은 아닙니다.
지금까지 글 하나하나 읽으면서..답글 주신 분들 감사하게 생각하며, 저의 필살기 완성 후 다른 언어를 접하며, 큰꿈을 가져보겠습니다.

fender의 이미지

본인이 잘알고 자주 쓰는 언어에 대해 애착을 가지는 건 나쁜 것이 아닙니다. 또 아무래도 자신이 잘 모르거나 자신이 쓰는 기술과 반대 영역에서 쓰이는 기술에 대해서는 약간의 편견을 가지게 되는 것도 사람으로서 어쩔 수 없는 일인지도 모르겠습니다.

자바 만큼 안티팬(?)을 많이 가진 언어는 참 찾기 어려울 것 같습니다만, 특히 C/C++ 개발자가 많은 곳이나 동적 스크립트 언어를 주로 쓰는 개발자가 모이는 곳에서는 자바에 관한 이야기는 항상 안좋은 쪽의 플레임으로 끝나는 걸 너무 자주 본 것 같습니다.

제가 자바 개발자라서 그런지는 몰라도 KLDP도 분명 그런 커뮤니티 중 하나로 보입니다. 아직까지 기억으로는 여기서 어느 자바 개발자가 '자바가 최고다' 같은 주장을 밀어 붙인다거나, 자바와 비교해 C/C++ 등을 일방적으로 폄하하는 식의 이야기는 들어보지 못한 것 같습니다. 반면에 자바 관련 이야기만 나오면 어김없이 열과 성을 다해 얼마나 자바가 나쁜지, 혹은 C/C++이 좋은지에 대해 설교를 하는 분들은 가끔씩 보게 되는 듯 하네요... 원래 주제와도 관계없고 답글단 사람도 특정 언어가 우월하다라고 한 것도 아닌데 꼭 그런 글마다 엉뚱하게 자바에 대한 폄하로 플레임을 유발하는 경우를 종종 봅니다.

그런 분들이 C/C++에 대해서 얼마나 많은 경험이 있고 높은 수준에 도달했는지는 자바 개발자인 제가 알 방법은 없습니다. 하지만 최소한 자바에 대해서는 대부분 입문 수준 이상의 현업 경험이 있다고 생각되진 않더군요. 그럼에도 불구하고 잘 모르는 주제에 대해 열의를 가지고 비판하는 글을 쏟아내는 건 이미 '기술'의 영역이 아니라 어느 분의 말씀처럼 '종교적' 신념에 가까운 것인 듯 해서 가능하면 답글을 잘 달지 않습니다. 사실 자바가 좋다 나쁘다 한 두번 나온 주제도 아닌데 정말로 순수하게 기술적으로 궁금해서 물어보는 개발자라면 간단한 검색만으로도 충분한 지식을 얻어갈 수 있을 것입니다.

만일 본인 생각으로 자신은 C/C++과 자바를 알만큼 아는데 도대체 엔터프라이즈 환경에서 자바가 왜 많이 쓰이는지 도통 모르겠고 C/C++에도 있을 라이브러리는 다 있고 훨씬 이해하기도 쉬운데 왜 속도도 느린 자바를 쓰는지 모르겠다라고 생각하신다면.... 재미삼아 숙제하나 내드리겠습니다 :)

자바 동네에서 많이 쓰는 스프링(Spring)이라는 프레임워크가 있습니다. 홈페이지 가보면 매뉴얼과 API 문서가 있는데요... 자바 쪽에서 유명한 프레임워크인만큼 당연하게도 자바가 널리 쓰이는 엔터프라이즈, 혹은 서버쪽 어플에서 일상적으로 부딪히는 문제들을 주로 다루고 있습니다. 개인적으로 개념적으로나 설계상으로나 상당히 깔끔하게 되어있어 좋아하는 프레임워크이지만 실제로도 상당히 흔히 쓰이는 제품입니다.

만일 정말로 자바와 C/C++을 모두 알만큼 잘 알고 있고 따라서 일반적 기업용 서버 어플을 개발할 때 고려하는 문제들과 그 해법에 대한 트렌드도 알고 계시다면 매뉴얼 큰 제목들만 보셔도 대충 어디에 필요한 것인지 알 수 있을 것입니다. 예를들어 기업용이든 뭐든 자바가 유리한게 없다, 심지어 기업용 시스템에 자바가 많이 쓰이고 있다는 사실 자체도 꾸준히 부정하시는 어느 분이라면 스프링이 다루고 있는 이러한 분야들에 대해 실제로 C/C++은 그보다 훨씬 편하고 강력한 이런 저런 방법을 제공하고 있으며 그런 라이브러리가 자바보다 훨씬 많은 기업용 프로젝트에서 쓰이고 있다고 논증하시면 될 것입니다.

그게 아니라 이제까지 기업용 비즈니스 어플리케이션이나 서버사이드 자바에 대해 잘 몰랐다고 느끼는 분이시라면 스프링 매뉴얼을 훑어 보시는 것만으로 앞선 질문에 대한 답이 어느 정도는 충족될 것으로 기대합니다.

그렇지 않고 만약 스프링 정도의 프레임워크도 매뉴얼을 한 번 훑어보고 도대체 뭐에 쓰는 물건인지 감도 잡히지 않는다거나 그냥 막연히 '이런건 다 필요없다, 자바니까 괜히 복잡한 거다'라고 강변하실 거라면... 솔직히 이런 글 쓰는 것도 시간 낭비가 아닐까 싶습니다. 실제로 해당 분야를 오랜동안 경험한 사람이 해당 도메인에서 실제로 널리 쓰이는 예제를 가지고 이야기하는데 도메인이나 언어에 대해 헬로월드 수준의 이해를 하는 사람이 우격다짐으로 자신의 주장을 강변한다면 논리로 설득할 수도 없고 그럴 이유도 없겠죠...

----------------------------
[서명] 그놈 한국 사용자 모임 - 그놈에 대한 모든 것! - 게시판, IRC, 위키, 갤러리 등등...

----------------------------
[서명] 그놈 한국 사용자 모임 - 그놈에 대한 모든 것! - 게시판, IRC, 위키, 갤러리 등등...

ifree의 이미지

자바의 안티팬은 C/C++ 개발자일까요?
사실 C++에 능숙하다면 굳이 자바를 배울 필요도 없을 것이고 은근히 자기가 쓰는 언어에 대한 자부심에 다른 언어에 대한 대한 다소 의식적인 무시나 적대감으로 이어질 수도 있을 겁니다.

뭐 자기 잘하는 언어만 열심히 하면 되겠죠?

semmal의 이미지

글쎄요. 어느정도 알려진 언어는 많이 알면 많이 알수록 좋다고 생각합니다. 각 언어는 나름의 특징을 지니고 있고, 나름의 장점이 있습니다.

언어에 대한 무시나 적대감도 그걸 파악할 때까지 써보고나서 나타나야지 설득력을 가질 수 있는 법입니다. 제대로 보지도 않고 무시하는 건 스스로의 무지를 다른 사람에게 알리는 것밖에 안되겠지요.
------------------------------
How many legs does a dog have?

------------------------------
How many legs does a dog have?

sunyata01의 이미지

어떤 언어는 우월한지 알고 싶어서 단 글이 아닙니다.
더욱이 자바하시는 분들이 기분 나빠하시는 것 같은데..ㅠㅠ
사용 범위를 떠나 속도...속도에 대한 비교를 말하는 겁니다.
속도가 떨어진다고 나쁜 언어는 아니잖습니까?
그리고 다른씩으로 자바가 괜찮다고 하시면 자바 스스로 낮추는 꼴이 되는거 아닙니까?
서로 인정할 건 인정하시길 바랍니다. 엔터프라즈 환경이야 시대의 흐름에 따라 변하는 것이며,
미래에 포스트 자바 같은 언어가 나타 나서 그 뒤를 이어간다고 현재 자바가 떨어지는건 아니잖습니까?
씨 역시도 세상이 변하면 자바가 대체할지도 모르죠 물론 속도면에서 빨라져서 그런 환경에 도입된다면 모를까?

fender의 이미지

sunyata01님의 글에 기분나빠하는 자바 개발자가 있었나요? 최소한 저는 아니고 자바에 대한 글 올리셨던 다른 분들도 자바 개발자이신지는 모르겠지만 sunyata01님의 글에 불만을 표한 내용은 없는 것 같습니다.

속도에 대한 이야기는 제 기억에 이미 2-3개의 글타래가 있었던 것 같네요. 그 문제에 대한 제 생각을 요약해드리면 '동일 알고리즘이 이론적으로 자바가 빠를 수도 있지만 대부분 C가 빠를 것이다, 하지만 자바가 주로 사용되는 분야에서 그 차이는 대부분 무의미하다'입니다. 사실 자바와 C의 영역이 크게 겹치는 부분은 많지 않습니다. 속도를 비교해서 언어를 선택하기 보다는 우선 하시고 싶은 일을 고르고 그 환경에 최적인 언어를 집중적으로 공부하시는 게 유익하다고 생각합니다.

더 자세한 논증이나 기술적 세부내용을 아시고 싶으시면 이전 글타래나 인터넷 검색으로 충분히 정보를 얻을 수 있을 것 같습니다.

----------------------------
[서명] 그놈 한국 사용자 모임 - 그놈에 대한 모든 것! - 게시판, IRC, 위키, 갤러리 등등...

----------------------------
[서명] 그놈 한국 사용자 모임 - 그놈에 대한 모든 것! - 게시판, IRC, 위키, 갤러리 등등...

sunyata01의 이미지

그냥 인정하시는지 궁금할뿐입니다.

semmal의 이미지

그냥 궁금해서일뿐입니다.
------------------------------
How many legs does a dog have?

------------------------------
How many legs does a dog have?

fender의 이미지

마이크로벤치마크를 서로 최적화를 해서 돌리면 C쪽이 아무래도 더 빠르지 않겠습니까? 아닌 경우도 많이 들었으니 예외야 있겠지만 돈내기를 하라면 C에 걸 것 같은데요. 하지만 이제까지 보아온 벤치마크들 봐도 그렇게 극단적 차이가 나지 않는다에 한 표 던지겠습니다.

그런데 서버 프로그램 만들 개발언어 고를 때 보통 그런 걸로 결정하진 않습니다. 물론 '개발 편이성'이란 것도 마찬가지구요.

같은 서버라도 예를들어 그 것이 게임서버냐 비즈니스 트랜잭션 서버냐에 따라 일상적으로 사용되는 개발환경은 완전히 달라질 수 있습니다. 해당 분야의 '성능'이나 '생산성'이란 잣대도 의미하는 바가 다를 수 있구요. 도메인과 구체적인 상황없이 막연하게 성능이나 개발 편이성 같은 것을 이야기하면 사실 수박 겉핥기 수준의 이야기를 넘어서기 힘든 부분이 있습니다.

----------------------------
[서명] 그놈 한국 사용자 모임 - 그놈에 대한 모든 것! - 게시판, IRC, 위키, 갤러리 등등...

----------------------------
[서명] 그놈 한국 사용자 모임 - 그놈에 대한 모든 것! - 게시판, IRC, 위키, 갤러리 등등...

darkmyth의 이미지

여기서 어셈이 나오면 막장인가요 -_-?

ifree의 이미지

VM 에서 돌아가는 언어가 네이티브 언어와 속도를 견줄 수 있다는 사실이 놀라울 뿐입니다.

sunyata01의 이미지

인정 할 건 하고,.... 못하겠다면 못하겠다 말하시면 되는데,...답답합니다. 그냥 넘어가죠 ㅠㅠ
이만 여기서 마치겠습니다.

ifree의 이미지

인정하고 안하고가 아니고 전 자바를 몰라요.
무슨 말씀이신지? 생각 좀 하고 답글 다세요.

semmal의 이미지

정 궁금하면 고슬링한테 가서 물어보세요. 애꿏은 kldp 유저분들 괴롭히지 마시고.
------------------------------
How many legs does a dog have?

------------------------------
How many legs does a dog have?

sunyata01의 이미지

아무튼 답변 감사하구요. 답변달아주신 자바, 씨 개발자 여러분들 열심히 내공쌓아서 다시한번 이런 주제에 다른내용이 나오길 바라며,.. 답변 감사히 읽었습니다. 감사합니다.

bookgekgom의 이미지

다시한번 이런주제에다시한번 이런주제에다시한번 이런주제에다시한번 이런주제에다시한번 이런주제에다시한번 이런주제에다시한번 이런주제에다시한번 이런주제에다시한번 이런주제에다시한번 이런주제에다시한번 이런주제에다시한번 이런주제에다시한번 이런주제에다시한번 이런주제에다시한번 이런주제에다시한번 이런주제에다시한번 이런주제에다시한번 이런주제에다시한번 이런주제에다시한번 이런주제에다시한번 이런주제에다시한번 이런주제에다시한번 이런주제에다시한번 이런주제에다시한번 이런주제에다시한번 이런주제에다시한번 이런주제에다시한번 이런주제에다시한번 이런주제에다시한번 이런주제에다시한번 이런주제에다시한번 이런주제에다시한번 이런주제에다시한번 이런주제에다시한번 이런주제에다시한번 이런주제에다시한번 이런주제에다시한번 이런주제에....
---------------------------------------------------------------------------------------------------------------
루비 온 레일즈로 만들고 있는 홈페이지 입니다.

http://jihwankim.co.nr

여러 프로그램 소스들이 있습니다.

필요하신분은 받아가세요.

---------------------------------------------------------------------------------------------------------------
루비 온 레일즈로 만들고 있는 홈페이지 입니다.

http://jihwankim.co.nr

여러 프로그램 소스들이 있습니다.

필요하신분은 받아가세요.

dormael의 이미지

저는 자바 개발만 계속 해온 편입니다만
거의 최근 자바의 동향을 잘 모르고 살다가

최근에 좀 인력풀이 다양한 회사로 옮겨서 많은걸 배우게 되었습니다...
그러면서 느낀건데

자바 이제 너무 복잡해 졌습니다.
이넘, 어노테이션, 제네릭스 등등.. 머리가 아파 옵니다.

단순함이 무기였던 자바가 하나도 단순하게 안보였습니다.
대신 편함이라는 부분이 생기기도 했지만..

그리고 컨커런트에 목숨을 걸고 있는 듯 합니다.
멀티쓰레드 기반에서 동기화 퍼포먼스에 머리를 짜내고 있는것 같습니다.
이런거 고민할 바에 처음부터 정교하게 C언어로 짜는게 낫지 않을까 하는 생각마저 듭니다.
몰라서 하는 질문인데 C언어에서는 멀티쓰레드 프로그래밍에서 자바의 컨컨런트쪽 패키지에 대응하는 대량의 자료를 최소 동기화 비용으로 처리하는 충분한 라이브러리가 없는건가요?
어차피 자바쪽도 더그리 아저씨가 만든거에 기반해서 만든거라면 C언어에도 있을법도 한데요.

전에는 자바 개발이 쉽다고 생각했는데 이런 요소들을 생각하면 결국 쉽다고만은 볼 수 없을것 같습니다.

이렇든 저렇든 언어와 관계없이 기본공부 많이 해야겠다는 생각이 들었습니다.

공부할 시간이 필요해.......

-- Signature --
青い空大好き。
蒼井ソラもっと好き。
파란 하늘 너무 좋아.
아오이 소라 더좋아.

소타의 이미지

그..그냥 뮤텍스 하나, 링크드 리스트 하나 놓고 락걸고 포인터 하나 매달고 락걸고 포인터 하나 빼가고;;;
이걸 위한 라이브러리는 잘 모르겠네요;;

dormael의 이미지

역시 C언어는 느낌상 가장 기본적인 것을 제공하고 나머지는 표준화 하지 않는 성격이 있는것 같네요.

C++의 경우도 STL이라는게 있는걸로 알고 있습니다.
기본 구현체도 함께 SGI에서 발표했다고 하던데...
표준인지 아닌지는 잘 모르겠지만 C언어에도 이런것이 있는지 갑자기 궁금해 져서요.
STL이 멀티쓰레드에서의 동일한 동작이 보장되는지는 저도 모르겠습니다.

물론 이에 상응할 만한 오프소스 라이브러리 같은것은 C나 C++에도 있을거라고 생각합니다.

사실 자바는 표준 API가 너무 덩치가 커져 버려서 사람들에게 공부 비용이나 혼란을 더해주고 있을수도 있는것 같습니다.

뭐 알아두면 좋기야 하겠지만요...

http://en.wikipedia.org/wiki/Standard_template_library

여기의 container 구현체들이 멀티쓰레드에서의 동작이 보장되는지 이와 비슷한 구현체가 C에도 있는지가 알고싶어 져서요.
^_^

개인적으로는 자료구조라고 제대로 공부한 적도 없고 선형 컨테이너를 속도 최적화 생각 안하고 몇가지 직접 만들어 본 경험밖에 없어서요..

-- Signature --
青い空大好き。
蒼井ソラもっと好き。
파란 하늘 너무 좋아.
아오이 소라 더좋아.

소타의 이미지

STL이 thread safe하냐? 라는 질문에는 NO입니다 ㅋ
C에도 여러가지 라이브러리들이 있긴 있는데요. 프레임웍 같은 놈들도 있고요.
근데 이런놈들 쓰려면 역시나 공부비용 높고 혼란스러운 건 마찬가지인 듯 합니다.
가벼운 놈 들고오면 할 게 많고 무거운 놈 들고오면 모든걸 다 그걸로 해야만 할 것 같고.. 이거 뭐야 무서워~

select99의 이미지

멀티쓰레드프로그램에서 자료의 동기화..
C에 그런게 그렇게 무겁게 패키지가지 만들어둘이유가 없을거같군요..
있어도 되지만 그냥전역변수 적절히 이용하면 별다른게 필요하지 않아도 될듯합니다.

neogeo의 이미지

iocp , async io , epoll , kqueue 등등등이 있습니다.

Neogeo - Future is Now.

Neogeo - Future is Now.

select99의 이미지

자바가 안티?가 많죠... 자바만 해온사람은 그이유를 정말 모르는거 같군요..
실제로 자바가 좋다면 환영할일이지 안티할일은 전혀아니라고 생각합니다.
하지만 실제로 그럴만한 이유에대해선 고민안하는거 같습니다.
무엇이 잘못된것이나.. 잘못알려져있거나 그게 잘못된방향으로 나아간다면 그건 그렇지 않다고 얘기할수도 있어야겠죠..
그러기위해선 장단점을따져야하고 실제로 그게 사실인지를 비판할줄알아야합니다.
(S사나 J계열에서 에서내놓은것만 믿을수 없다는얘기죠)

그러나 자바의 장단점을 얘기하는데 마치 자기의 치부가드러나는일도아닌데....
상대를 비꼬거나 무시하는말투를 썩으며 자바를 잘모르면 말을하지마라..
나한테 묻지말고 다있으니 찾아알아봐라.. 너희들은 자바를 잘몰라서그렇다..
식으로 나오게되면 이내 토론이 난장판이되죠..

----------------------------------------------

자바계열에서는 특히나 새로운개념? 이나 용어를 많이 내놓는다...
하지만 이게 과연새로운것일까? 아니다. 한마디로 새로운것같지만 대부분 기존에 일상적으로 쓰던것을 이것저것 모아
무엇이다.. 라고 하고 그걸 사용안하면 큰일이라도 날것처럼 설명되어있으며..
뭐뭐아느냐? 모르면 말을하지마...이렇다 저렇다 새로운개념이 어떻고...말은많이 하는데 직접해보라면 자기도 아직 잘못한다...

반면 C 에서는 그런게 필요가 없다. 왜냐.. 이것저것 복잡하게 할필요가 없다는것이다.. 훨씬더간단한방법이 있는데도 그걸모른다.
그러한방법은 구체적으로 이것이다 라고 할수가 없다 그렇게 해서도 안된다. 왜냐..그런게 있다면 아예 함수 하나로 만들어두면되지.
뭣하러 필요할때 그때그때 상황에 맞게 조합해서 쓰라고 있겠는가.. C에서 몇안되는표준함수로 웬만큼다할수 있는것이 바로그런이유에서이다..
작은 블럭같은것을 몇개조합하면 원하는기능이 거대한성과 맞먹는 위력을가진다.

그블럭은 하나만 놓고보면 아무볼품이 없다 대체 이것으로 무엇을할수 있냐 싶으다.
하지만 이벽돌은 그냥벽돌이 아니다. 모양세가다른 벽돌 몇개를 조립하면.. 벽돌이마술을 부리듯 엄청난일을해낸다. 아직이해못한다.

유닉스 작은쉘명령어들을 몇몇조합해서 프로그램으로 짜기엔 많은시간과 노력이 들일을 매우 간단히 명령어한줄로 해결하는일들을 경험했을것이다.
이런류의 사용은아마 C와 유닉스의 비슷한철학에서 비롯된것이라본다.
C 에서 Trim 함수를 사용하지않고도 포인터한두개 나오더니 한줄에 Trim 해버리는... 류의 코딩을 종종본적있을것이다.
함수라고 만들어둘필요가 없을정도이다.
작은것을모아 중간것을만들며 중간것을모아 거대한것을 이룬다.
그만큼 매우유용하며 그자체로서 모든요소에 모든일을 간단히 해결가능한방법이 있다.
그방법은 구체적인 사례에따라 그방법이나 구현법이 다르기때문에..또한 개인적인 취향이나, 사상과도 관련이 있을것이다.

거대한 덩어리하나 만들어두고 이것이 모든것을 할수 있다는 개념이 아니라.
작은것들을 모아두고 이것을 조립하면 모든것을 할수 있다는 개념이다.
전자는 덩치만 컷지 버그도 많으며 효율은 비효율적이고 응용력도 떨어지고, 리스소도 많이 먹으며 할수 있는일의범위도 작다.
그런데 왜 전자를 추구한단말인가..(마치 M모사의 윈도우처럼) J모언어의 어떤덩어리를보라. 덩어리째굴러다닌다.
(하지만 덩치크면 돈은될것이다 덩치큰걸팔아야 돈이 되지 않겠는가?
또한 버그도 많아야 유지보수비용을 받겠지. 더구나 기능이딱 정한것만 가능해야 추가기능제공에도 돈을받겠지.
상업적측면에서봤을땐 왜..S모사나 개발업체들이 이러한 것을 사용하는지 한편이해는간다.)

테스트하기 쉬운 구조로 코드를 개발하는 것을 원하는가? 테스트때문에 한때고민은 했지만 지금은 그런것때문에 고민해본지 오래된거같다...
내심 이상한게 좀 나타났으면 하는바램도 있다..
더구나 테스트하기 쉬운 라이브러리제작하여 사용가능하다 하지만 누가또쓸지?
대부분 그냥한다. 안써도 쉽다는것이다. 그런데 머하러 그걸 만들고 배포하는가? 실제로는..무지 많다.

더구나 뭣하러 인스턴스의 생성과 클래그간의 의존관계에 대한 고민을 하는가..
필요가 없다는것이다. 한마디로 C에선 너무나 당연하거나.고려할필요도 없는일을 자바에서는 매우많은 비용을들여고민하고 있다는것이다.
그러고는 어렵사리 해결방법을제시하고 대단한무엇을 한것인양 말을한다.

C에 없는것이 있다면 그게 불필요하기때문에 없는것이라 생각하면 거의 정답이다.
다른말로 고민할필요도 없거나 이미 쉽게 구현할수 있고 구현된것도 흔하다.

어떤기술이 실제와 이론이 동떨어져있고... 이론만으로 내세우려하면 어찌 신뢰를 얻겠는가..
더구나 방향자체가 잘못되어있다면..

fender의 이미지

요약하자면 '자바에는 있고 C에서 없는 건 어쨌건 불필요하니까 없는거고 그게 뭐하는 건지는 알필요도 없다'군요? 그리고 결론은 아무튼 자바는 방향부터 잘못되었다는 거고...

앞서 언어에 대해서 '종교적 신념'을 가지면 안된다고 하신 분이 그런 맹목과 열정을 보이시니 재밌네요.... 자바 관련 글타래마다 같은 논리(교리?)로 뵙는 것 같군요. ㅎㅎ

----------------------------
[서명] 그놈 한국 사용자 모임 - 그놈에 대한 모든 것! - 게시판, IRC, 위키, 갤러리 등등...

----------------------------
[서명] 그놈 한국 사용자 모임 - 그놈에 대한 모든 것! - 게시판, IRC, 위키, 갤러리 등등...

select99의 이미지

그게 아니죠.. 님이 삐딱하게 보시는겁니다.

님이 구체적으로 C 에도 왜 있어야하는지..그런데도불구하고 없기때문에..그러한 단점을 자바는 포함하고 있다라고 해야 그에대한 구체적인 언급이 있을것입니다.

독수리에게는 낙하산이 필요없는데도불구하고 독수리는 낙하산도 없으면서 말하지마라격이면 독수리가 너무 어이가 없지않을까요?

님말을좀빌리지요..----

요악하자면 어쨋거나 자바가 이번에 뭘하나 만들어냈으니.. C 에도 그런게 필요한지는모르겠고 무조건 있어야되고..그런기능을 C 에서는 어떻게 하는건지..기존개념은 어디서왔는지.. 알필요도 없다는거군요? 그리고 결론은 아무튼 자바는 뭐든다좋은걸만들었다는거고...

그밑줄에 비아냥거린 말투는 따라하지 않겠습니다.

fender의 이미지

전 이미 예도 하나 들어 드렸습니다. 위에 스프링 이야기 했죠? 서버사이드 비즈니스 어플에 많이 쓴다는...

뭐 '많이 쓴다는 것도 거짓말이다'라고 까지 우기신다면 할말 없습니다만 예를들어 그런게 자바 쪽에서 많이 쓰이고 있으니 서버 사이드 개발에 유용하다는 주장을 반박하시려면 최소한 뭔지는 한 번 훑어라도 보셔야 하지 않겠습니까? 대충이라도 한 번 보고 이런거는 이러저러해서 C에서는 필요 없다거나 아님 C에서도 이런 저런 더 좋은게 이미 널리 쓰인다던가 해야죠. 스프링이 진짜 '독수리한테 낙하산'격인지 아닌지는 일단 쳐다라도 봐야지 알 수 있는게 아닙니까?

뭐하는 넘인지 보지도 않고 무조건 C는 유연하니까 그 까짓거 다 될거야. 자바는 후진 언어니까 분명 돈벌어 먹으려고 쓸데없는 거 만들어서 멋있는 척 하는 걸거야 그런 식으로 나가 버리면 뭐 떼쓰기 밖에 더 되겠습니까? ㅎㅎ;

----------------------------
[서명] 그놈 한국 사용자 모임 - 그놈에 대한 모든 것! - 게시판, IRC, 위키, 갤러리 등등...

----------------------------
[서명] 그놈 한국 사용자 모임 - 그놈에 대한 모든 것! - 게시판, IRC, 위키, 갤러리 등등...

select99의 이미지

님이 쓰시는 글을 반대로 읽어보시면 그게 다시 님글의 답이될겁니다.

저또한 예들든게 있으며, 님이 말씀하시 스프링에관한이야기는 어디가서 읽어보고오라밖에 없던데 님이 구체적인예를든건아니죠..
저또한그렇다면 그기능에 해당하는기능을 C에서는 어떻게 하는지 알아보시고 장단점을말씀하시라 말씀드렸습니다.
왜 님은 자신이하는걸 남에게 알아보라하면서 상대입장에선 어떻게 구현하는지는 알고싶어하지 않을까요?
C를 잘몰라 어떻게 하는지 모르시겠다면.. 구체적으로 이런기능은 C에서는 어떻게 하느냐고 물어보십시요.

독수리에게 가서 낙하산이 좋은것인데 너는없지? 가서 뭐하는건지 좀알아보고 와서 너도 낙하산하나 사라..모르면일단사서봐. 이런다고 독수리가 낙하산 덜렁살까요?
차라리 독수리에게가서 너는 하늘에서 떨어질때 어떻게 하겠느냐 질문하시라는겁니다.

님이자바에서 그유용한기능이 있다면 자바는이러해서 이런기능이 유용하니 해당하는구현을 C에서는 어떻게 하는지 구체적으로 질문하셔야죠.
저또한 님식으로 답변드릴수 있습니다. 구글에만찾아도 님이 궁금해하는기능이 이미다 나와있으니까.. 공부하고 오세요..이렇게요..
C로 자바만든기술에대해 공부해보시고... 왜, 가능한데 널리 배포하지 않는지에대해서도 고민해보세요.

fender의 이미지

무조건 똑같은 방식으로 대답한다고 논리가 서는 건 아니죠. 저와 select99님은 처음부터 논지가 전혀 다른대요?

제가 언제 C는 무조건 후지니까 C에는 있고 자바에 없는 기능은 아무튼 필요 없을 거라고 했습니까? 아니면 C는 분야에 관계없이 자바보다 불편하고 느릴 거라고 했습니까? 그런 식으로 무리한 주장을 밀어 붙인건 제가 아니라 select99님입니다.

제가 스프링 같은 기능이 C에 있는 지 없는 지 증명할 필요는 없습니다. 제가 언제 예컨대 C가 널리 쓰이는 시스템 프로그래밍이나 임베디드 같은데서 스프링 같은게 있어야 한다고 주장한적 있습니까? 반면에 자바에서 서버 개발할 때 스프링 같은 걸 널리 쓰고 있는데 그 딴거 다 필요없다라고 주장하려면 최소한 그게 뭐하는 건지는 알고 말해야하는거죠. 그러니까 제가 C에선 그런게 필요없이도 다 된다면 도대체 어떻게 된다는거냐 여쭤본 겁니다.

그런데 저보고 스프링 기능을 구체적으로 설명해 달라는 건 처음부터 그게 뭐하는 건지 알지도 못하는 상태에서 덮어놓고 자바는 후지고 C에선 다된다고 우긴 것 밖에 안되는 게 아닙니까?

select99님 식으로 말하자면 이렇게 되야 하는 겁니다. 예컨대 저는 한번도 시스템 개발해본적도 없고 그 분야에서 어떤 기술적 제약이 있는지 관심도 없지만 아무튼 간에 자바는 강력하니까 C로 되는 건 자바로도 다된다고 우기는 거지요. 그렇게 말하면 정말로 시스템 프로그램 경력 있는 개발자가 그럼 이런저런 시스템 콜은 자바에서 어찌 할거냐 하면 '구글링 하세요'하는거구요...

----------------------------
[서명] 그놈 한국 사용자 모임 - 그놈에 대한 모든 것! - 게시판, IRC, 위키, 갤러리 등등...

----------------------------
[서명] 그놈 한국 사용자 모임 - 그놈에 대한 모든 것! - 게시판, IRC, 위키, 갤러리 등등...

select99의 이미지

제가 언제 자바를 왜쓰는지 모르겠다고 하던가요..
C 에서 그런건 어떻게 할 거냐고 물어보는거라면 구체적인 기능을물보셔야지요..

떡하니 어디가서 무슨패키지 공부하고와서 해당하는기능 말해봐라..
제가 그걸언제 다언급한답니까? 제가 해당하는패키지 C로 만들어보여드려야할까요?
님은 떨렁한줄써놓고.. 상대에겐 주저리주저리 답변을바라시는거에요?
뭐 말이되는소릴하셔야지요.

제가말씀드렸지 않습니까..똑같이 제가 궂이 하나하나 답변안드려도 똑같이 해당하는기능 구글링해보면 다나온다구요..
그래도 모르겠거든 저한테 구체적으로 어떤기능 모르겠다하십시요 알려드리지요.

fender님말데로 하자면 이렇습니다. C로 한번도 안해보고 C는 이런것 못할것이다..
우기는거지요..구글링하세요..

fender의 이미지

본인이 이 글타래에서 무슨 주장들을 했는지 기억을 못하시는 건가요? 몇 가지만 요약해 드리죠...

(1) 프로젝트 규모가 크면 오히려 대부분 자바가 비용이 많이 든다. 라이브러리를 써도 별 도움이 안된다.
(2) 자바에서 라이브러리로 할 수 있는 건 C는 기본함수만 조합해도 훨씬 쉽게 할 수 있다.
(3) 내가 써본 자바 어플서버나 프레임워크는 쓸데없이 복잡하고 느리고 버그 투성이다.
(4) C에서는 전역변수만 잘 써도 되니까 concurrent API 같은 건 필요없다.
(5) 자바에서 내놓는 새로운 개념들은 상업적 목적을 위해 불필요하게 부풀려진 것이다. C에선 훨씬 간단하게 할 수 있다.

아닌가요? ㅎㅎ; 만약 아니라고 우기신다면 하나하나 인용을 해드릴 수도 있습니다...

저는 C에 대해서 저렇게 무지막지한 주장을 한적이 없습니다. 반면 이미 자바에서 규모가 있는 프로젝트(1)를 스프링 같은 프레임워크와 라이브러리 활용해서(2, 3) 수행했고, 그 중 일부 개념들은 관련 도메인에서 일종의 트렌드(5)가 되는 걸 본 입장에서는 그럼 '도대체 C에선 그런게 다 필요없이도 잘 된다면 어떻게 하는거냐?'고 반문할 수 있는 겁니다.

물어봤더니 '나는 그 기능이 뭔지 모르지만 구체적으로 언급하면 C로 만들어 주겠다', 아니면 '구글 찾아봐라' 그런 식으로 위와 같은 주장의 근거가 된다고 보십니까?

대담한 주장을 했으면 대담한 증명이 필요하죠... 그리고 증명에는 동어 반복이나 상대방 질문을 똑같이 되받는 식의 말장난 이상의 논리가 필요하구요. 저는 C에 대해 그런 모험을 하지 않았으니 님이 주장하는 증명의 의무는 없는 겁니다.

----------------------------
[서명] 그놈 한국 사용자 모임 - 그놈에 대한 모든 것! - 게시판, IRC, 위키, 갤러리 등등...

----------------------------
[서명] 그놈 한국 사용자 모임 - 그놈에 대한 모든 것! - 게시판, IRC, 위키, 갤러리 등등...

select99의 이미지

님이 그렇게 받아들이셨다면 그렇다고 해두죠..
많은부분 잘못받아들이시긴하셨습니다만 따지고 싶진 않습니다.

결론은요.님이 무슨증명하라는게 아니라 님이 자바는좋은기능있는데 C 에도 있냐고 묻고싶거등 구체적으로 하나하나 물어보세요.
어디가서 뭘보고 리포터 제출하라 하지마시구요..

fender의 이미지

아뇨. 전 '자바는 좋은 기능있는데 C 에도 있냐'고 묻고싶지 않습니다. select99님이 자바에서 쓰는 라이브러리나 프레임워크 따위는 C로 훨씬 쉽게 모두 대체 된다니까 도대체 근거가 뭔지 궁금했던거죠. 교수도 아닌데 레포트 쓰시라고 한적도 없습니다. 그저 주장에 근거를 대시라는 거죠.

이렇게까지 여러차례 질문 드렸는데 근거를 못대시겠다면 그냥 개인적 '신념(?)' 쯤으로 보면 되나요?

아무튼 궁금증은 풀렸군요.

----------------------------
[서명] 그놈 한국 사용자 모임 - 그놈에 대한 모든 것! - 게시판, IRC, 위키, 갤러리 등등...

----------------------------
[서명] 그놈 한국 사용자 모임 - 그놈에 대한 모든 것! - 게시판, IRC, 위키, 갤러리 등등...

neogeo의 이미지

애초에 C 랑 JAVA 는 추구하는 바가 다른데 왜 이런식의 비교를 하시는지 모르겠군요.

JAVA 가 추구하는 언어 패러다임 자체가 OOP 이며 ( 비판의 거리는 많겠지만.. ) , OOP 의 가장 큰 장점중에 하나는 ( 그렇다고 주장하는 ) 재활용성입니다. C 도 잘 짜면 재활용성이 얼마든지 가능하죠. C 로도 OOP 흉내낼수도 있구요.

그러나 JAVA 의 최대 장점은 재활용성을 무기 삼은데 그친게 아니라 수많은 라이브러리를 묶어서 사용하기 쉽게 잘 정리해 두었다는 겁니다. ERP 개발같은 SI 분야에서 자바만큼 라이브러리를 묶어둔 언어는 거의 없습니다. ( 물론 C 언어로도 무언가 있긴 하겠지요. ) 요는 자주 쓰이는 무언가는 추상화가 잘 되어있다는 뜻입니다.

C 에선 그런게 불필요하다 라고 주장하지만, 프로그래머 역량이나 개발기한, 비용 등을 고려할때 JAVA 가 훨씬 유리한 경우도 얼마든지 있습니다.

라이브러리 뭉뚱구려서 비싸게 돈 받는다라고 주장하고 계십니다만, C 언어로 그만한 품질의 물건을 만들려고 하는 엔지니어의 고용 비용 + 시간을 고려하면 라이브러리가 훨~씬 싸게 먹힙니다. 만약 JAVA 가 그토록 쓰잘데기 없는 물건이었다면 누군가 똑같은걸 C 로 다 만들어 두었겠지요. ( 필요없어서 안만든다뇨. 팔리는 시장이 있고 돈이 되는데 누군가 안할 이유가 없습니다. 언어의 표준이나 스펙과 관계없이 라이브러리나 패키지로 얼마든지 팔아먹었겠죠. )

현 시점에서 실제적으로 비슷한 품질의 프로그램을 만들어야 한다고 할때 ( 어느언어던 ) C 언어 프로그래머 보다 JAVA 프로그래머가 구하기 더 쉽습니다. 인력풀 시장 자체가 그렇습니다.

본인이 겪고 있는 환경만 고려해서 이런 판단을 하시는건 대단히 섣부른 행동이십니다. SI 쪽 일 1,2년만 해보셔도 아마 지금 하시는 말이 얼마나 허황된 말인가 느끼실 겁니다.

자바가 필요한 분야가 있고 C 가 필요한 분야가 분명히 있으며 둘은 추구하는 바가 전혀 다릅니다. 예를 들어 C++ 이라는 언어만해도 C 랑 전혀 다르게 발전해나가고 있지 않습니까? JAVA 와는 또 다른 분야에서 나름 위치를 차지하고 있구요. 차이를 인정해야지 다른 사람이 주장하는 장점을 단점을 가리기 위해 말한다고 하는것 자체도 상당히 독선적인 이야기 입니다. JAVA 에는 C 에 비해 이러한 장점이 있기 때문에 쓴다를 JAVA 는 단점이 없다 라고 주장하는거로 착각하시는 것 같습니다.

M 모사의 윈도우가 없었으면 PC 는 절대로 지금만큼 퍼지지 못 했고, 누구나 PC 로 문서 작성하는 시대가 훨씬 늦게 왔을지도 모릅니다. 기술적으로 우수한게 언제나 훌륭한게 아닙니다. 이론을 근거삼아 실제를 무시하는 내용은 오히려 select99님의 글입니다.

Neogeo - Future is Now.

Neogeo - Future is Now.

select99의 이미지

"JAVA 가 그토록 쓰잘데기 없는 물건이었다면 누군가 똑같은걸 C 로 다 만들어 두었겠지요"

잘못받아들이셨습니다.

낙하산이 독수리에겐 불필요하지 다람쥐에겐 필요한거죠.
다람쥐가 독수리에게 넌낙하산도 없냐고 우기니 독수리가 어이없다는겁니다.

"C 에선 그런게 불필요하다 라고 주장하지만, 프로그래머 역량이나 개발기한, 비용 등을 고려할때 JAVA 가 훨씬 유리한 경우도 "
물론 전혀 하나도 없기야하겠어요..?
하지만 C에서 필요한데 왜없을까요? 대부분기능들이 동일한것이 있거나.. 사용안해도 쉽게되거나..한겁니다..

더구나 자바의 장단점에대해 논하는것이지.. "자바인력시장이 어떻고 .. 섣부른행동..SI쪽. 1,2년만해보셔도..." ^^;;

별말이 다나오네요.. 제가마치 1,2년도 안해봤다는격이군요..^^;;
제가 처음부터 말씀드렸죠.. 자바의 장단점을따지는자리에.. 상대를무시하는말과.. 비꼬는말..이러해서
결국 난장판을만들어 자바의 장단점을 볼수없게만들죠..
슬슬 선을그을때가 된건가요...그저 말로만하지마시고 하실려면 제가 위에말한데로.. 구체적인 기능을 가지고 따지시기바랍니다.

fender의 이미지

인용:
"하지만 C에서 필요한데 왜없을까요? 대부분기능들이 동일한것이 있거나.. 사용안해도 쉽게되거나..한겁니다.."

그 분야에서 C가 별로 사용 안되니까 없는 거라고는 생각 안해보셨는지...

----------------------------
[서명] 그놈 한국 사용자 모임 - 그놈에 대한 모든 것! - 게시판, IRC, 위키, 갤러리 등등...

----------------------------
[서명] 그놈 한국 사용자 모임 - 그놈에 대한 모든 것! - 게시판, IRC, 위키, 갤러리 등등...

neogeo의 이미지

뭔가 대단한 착각을 하고 계십니다.

그리고 독수리에게 낙하산이 필요한 경우도 있습니다. 독수리가 날개를 펼 수 없거나 날개를 펴는 열량이 아까울 때 이지요.

참고로 날다람쥐는 낙하산이 필요없답니다 :)

자 그럼 자바의 최대 장점을 C 에서 해보시이죠.

"컴파일을 다시 하지 말고, 바이너리만 가지고 여러가지 타입의 CPU 가 있는 머신에서 돌려 보십"시오. - 구체적으로 제가 겪고 있는 상황입니다. 소스를 감추고 싶은데 고객이 여러가지 기계에서 돌리고 싶다고 말할때 어떻게 해결하실지 보여주시지요.( 참고로 저는 임베디드 분야에서 일합니다. scaleform 이란 유명한 flash player 라이브러리가 있습니다. ARM CPU 용으로 라이센스를 받아서 라이브러리를 받았는데 이녀석은 도저히 SH4 CPU 에서 돌릴수가 없더군요. 다시 라이센스를 사야했고 고객사는 분노가 폭발했습니다. 자바 였다면 이런일은 적어도 없었겠죠? ) - 참고로 scaleform 쪽에서 SH4 CPU 용 C 라이브러리도 컴파일러도 없던 상황이라면 라이브러리를 다시 보내주려면 고객사 쪽에서 SH4 용 컴파일러까지 사줬어야 했겠지요?

이것저것 따지지 마시고 C 언어로만 하시기 바랍니다. ( VM 개발 하면 된다 라는 투의 말투는 하지 마십시오. JAVA VM 도 사실은 C 로 만드는 케이스가 많으니까요. VM 개발은 결국 어셈블리던 뭐던 다른 언어를 만들게 되는 것이니까요. )

Neogeo - Future is Now.

Neogeo - Future is Now.

neogeo의 이미지

더불어 어떤 언어를 논하려면 그 언어의 사용자를 논하는게 당연한거 아닙니까? 프로그래머 구하기 쉬운것도 그 언어의 장점입니다. 그만큼 배우기가 쉽다는 의미이니까요.

자바 사용자들을 무시하는 언사는 본인이 훨씬 먼저 하셨습니다.

SI 경력이 1,2 년 이상 있다면 위와 같은 소리를 할리가 전혀 없다는 의미이지 본인을 경험도 없으니 그런소리 말아라 하는게 아닙니다.

Neogeo - Future is Now.

Neogeo - Future is Now.

feanor의 이미지

구체적인 기능으로 질문드렸습니다.

C로 웹 개발하기
http://kldp.org/node/106463

select99의 이미지

답변 얻으셨으리라 봅니다.

creativeidler의 이미지

플레임도 재미있어보이지만 일단 플레임을 제쳐두고 원 글을 올리신 분의 글에 답변을 달아봅니다.

1. 자바가 빠른가 C가 빠른가.
C가 빠릅니다. 현재까지 일정 수준 이상 되는 벤치마크 중에서 자바가 C보다 빠르다는 벤치마크는 없었습니다. 무슨 짓을 해도 자바로 C보다 빠르게 만들 수는 없습니다.

하지만, C++보다 빠르다는 벤치마크는 많았죠. 실제로 검색 엔진처럼 성능이 중요한 경우에도 자바 엔진이 C++ 엔진보다 빠른 경우가 왕왕 있습니다. 제가 아는 한 검색 개발자분은 자기 팀에서 만든 C++ 엔진이 다른 회사에서 자바로 만든 엔진보다 느리다는 걸 보고 와서는 충격 받았다는 고백을 하기도 하셨죠. 구글에서도 성능이 중요한 서버 엔진의 상당수를 자바로 만듭니다. C가 자바보다 빠른데 왜 구글처럼 실력자들이 가득한 회사에서 대용량 처리를 위해서 자바를 사용할까요?

사실, 자바가 빠른가, C가 빠른가는 좋은 질문이 아니라고 해야겠죠. 좀더 적절한 질문을 하려면 "자바는 충분히 빠른가?"라고 해야 할 것입니다. 그리고, 그 질문에 대한 대답은 상황에 따라 많이 다릅니다만, 대부분 yes라고 봐도 손해보지 않습니다.

2. 유명한 게입 업체, 네이버 같은 포털에서 자바를 쓰는가?
게임 업체는 자바 거의 안 씁니다. 서버도 자바로 안 만듭니다. 엔씨소프트 같은 경우는 1000명 공성전을 가능하게 하기 위해 서버에서 극한의 튜닝을 하고 있기 때문에 자바로 만들 생각은 아예 안하고 있습니다. 그리고 초기 게임 개발자들이 윈도우 서버로 개발을 했기 때문에 자바보다는 C++이 더 많습니다. 아, 물론 게임 클라이언트는 대부분 C++로 만들죠.

하지만, 네이버, 다음, 네이트 등은 죄다 자바 천국입니다. 네이버는 웹 개발의 경우 기존에 PHP나 ASP로 되어 있던 거 거의 다 걷어내고 자바로 이전을 완료해가는 중입니다. 다음은 처음부터 자바를 많이 쓴 걸로 알고 있구요. 대용량 파일 시스템도 거의 자바로 구축하고 있습니다. 웹 개발에 관해서만큼은 자바는 충분히 빠르며, C로 웹 개발을 하는 경우가 극히 드물다는 점을 고려하면, 실무에서 쓰이는 모든 웹 개발 언어 중에 자바가 가장 빠릅니다.

검색 엔진은 사정이 좀 다릅니다. 검색 엔진은 아직은 C/C++이 주력입니다. 다만, 일부 컴포넌트는 자바로 만드는 경우가 있습니다. 하지만 가장 널리 쓰이는 오픈 소스 검색 엔진은 자바로 만들어져 있습니다. 몇 년 전까지만 해도 검색 엔진을 자바로 만든다고 하면 바보 소리 듣기도 했다는데, 그 몇 년 전부터 자바로 검색 엔진 만들었던 팀들이 성과를 보여주면서 상황이 조금씩 달라져가고 있는 상황입니다.

휴대폰에는 자바가 아주 깊숙히 침투해 있습니다. 삼성은 자체적으로 개발한 jvm만도 수십 개에 달한다고 하더군요. LG폰도 자바 기반이 많습니다.

구글에서 자바가 많이 쓰인다는 것은 익히 알려진 사실이죠. 구글에서는 C, 자바, 파이썬을 공식 언어로 지정하고 있습니다. 심지어 자바스크립트 개발까지 자바로 하려는 시도를 하는 걸 보면 구글에는 자바 매니아들이 많이 있는 듯 합니다.

그 외에 국내 SI 대기업들은 죄~다 자바라고 보면 됩니다. 국내는 특히나 자바 편중이 좀 심한 편이죠.

3. 넓게 팔 것이냐, 깊게 팔 것이냐.
이건 상당히 주관적인 이야기가 되겠지요. 저는 둘 다를 지향합니다. 넓게 파야 깊게 팔 수 있다는 이야기도 있지 않습니까? 역사적으로 유명해진 많은 전문가 중에 한 우물만 판 전문가는 의외로 많지 않습니다. 최근에 무릅팍에서도 안철수씨가 비슷한 것을 보여주지 않았습니까? 넓게만 파면 소용 없지만 깊게 파고 싶으면 넓게 파야할 수 밖에 없습니다.

경험적으로 본다면, 제가 만난 사람 중에는 깊게 판 사람보다 넓게 판 사람 중에 실력자가 더 많았던 것 같습니다.

그리고, 연봉과 개발자의 실력과의 상관 관계는 그렇게 높지 않습니다. 그보다 자신을 팔 수 있는 능력이 있는가가 더 중요하죠. 비싼 값을 치러 줄 수 있는 곳을 찾아가는 안목도 중요하구요. 주위 사람 말에 휘둘리지 않고 비판적으로 생각하시기 바랍니다.