JAVA가 KLDP에서 인기가 없는 이유?

blueiur의 이미지

고전 떡밥중 하나인 JAVA vs C 에 대해서 글을 읽다보면 KLDP 내에서는 java에 대해서 부정적인 인식을 가지고 있는 것으로 보입니다.

가만히 생각을 하다가 느낀게 해커 문화와 자바가 잘 어울리지 않아서 그런게 아닌가 하는 생각이 드네요.
- 그렇다고 자바 해커가 없다거나 실력이 없다는 이야기가 아닙니다 공격하지 말아 주세요:)

보다 정확히는 오래된 unix문화 자체가 simple is best 인데 자바는 그 자체로 굉장히 크고(예전에는 라이브러리/프레임웍이 컸었는데 이제 언어 자체도 커졌죠) 복잡하기 때문이 상대적으로 그런 인식이 생긴건 아닌가 싶기도 합니다.

어느 분께서는 C는 공부할 필요가 없는 언어라고 하시더라고요, 보는 그대로가 코드고 프로그램 그 자체라고 하시면서요.

또 상대적으로 쉽게 배울수 있다는 점도 한 몫 할꺼라 생각합니다.(그래서 많은 사람이 사용 하기도 하고요)
리눅서들이 윈도우를 바라보는 인식과 비슷하다고 할가요?

한마디로 정리하면, 자바와 같이 기업 시장을 목표로 하는(의도하던 의도하지 않던) 현대적 언어들은 상업적으로 이용하기에는 좋지만, 뿌리 깊게 내려오고 있는 해커 문화와의 이질감에서 멀리하게 되지 않나 한다 하는 생각입니다.

fender의 이미지

논리 깡그리 무시하시는 건 예전에 포기했는데요... 최소한 글은 좀 읽고 답글 다세요. 무조건 마지막에 답글 다는 사람이 이기는 게임 아니거등요? ㅎㅎ;

DEBUG 함수 자체가 이메일 기능있습니까?
DEBUG 함수 자체가 원격 네트워크 로깅 기능있습니까?
DEBUG 함수 자체가 데이터베이스 로깅 기능있습니까?
DEBUG 함수 자체가 계층화된 카테고리로 로깅이 됩니까?
DEBUG 함수 자체가 표현식으로 출력 형태를 정할 수 있습니까?
DEBUG 함수 자체가 자동으로 파일 크기 차면 알아서 끊어 주나요?
DEBUG 함수 자체가 자동으로 날짜 별로 파일 끊어 주나요?

그런게 그렇게 흔하고 널려 있으면 API 문서 링크라도 좀 달라니까요? 아님 C로 간단히 추가할 수 있다면 아까처럼 C코드 몇줄 해서 한 번 짜보시던가요. ㅎㅎ;

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

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

select99의 이미지

DEBUG 함수 자체가 이메일 기능있습니까? => 가능합니다..
DEBUG 함수 자체가 원격 네트워크 로깅 기능있습니까? => 가능합니다.
DEBUG 함수 자체가 데이터베이스 로깅 기능있습니까? => 가능합니다..
DEBUG 함수 자체가 계층화된 카테고리로 로깅이 됩니까? => 가능합니다.
DEBUG 함수 자체가 표현식으로 출력 형태를 정할 수 있습니까? => 가능합니다.
DEBUG 함수 자체가 자동으로 파일 크기 차면 알아서 끊어 주나요? => 가능합니다.
DEBUG 함수 자체가 자동으로 날짜 별로 파일 끊어 주나요? => 가능합니다.

되게 특별한기능인주아시고.. 발끈해서 쓰셨는데.
다가능합니다.

fender의 이미지

그래서 URL은?

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

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

select99의 이미지

제가 개인적으로 가지고 있는것이니..
비용을 지불하셔야 보내드립니다..
기존lib에 기능에따라 몇줄 혹은 몇십줄만추가해도 위에언급한내용은 다됩니다..

다른님이 쓰셨듯이.. 간단한기능가지고 대단한줄 알고 쓰셨는데..
저런건누구라도 쉽게 만드는게 가능합니다.
더상세한 스펙주시면 별로 어렵지 않으니 원하는데로 만들어 드리지요..

----------------------------
님이 안될것이라 했으니..
님말데로라면 얼마를 걸든 못만들면 계약위반이되고
위약금을 두배를 돌려받을테니 안할이유가 없겠죠?

agstanti의 이미지

저는 디버그 함수는 잘모르겠고...

DEBUG 함수 자체가 이메일 기능있습니까?
:그냥 exec() 나 system() 함수를 호출하여 sendmail 프로그램을 구동해도 되잖아요.

DEBUG 함수 자체가 원격 네트워크 로깅 기능있습니까?
: tail log 하여 socket 만들고 원격에서 그 socket에 접속하여 받으면 됩니다.

DEBUG 함수 자체가 데이터베이스 로깅 기능있습니까?
: 얘는 모르겠고.

DEBUG 함수 자체가 계층화된 카테고리로 로깅이 됩니까?
: 로깅 계층화야...그냥 범주 만들고 범주에 level 숫자만 지정해 주면 되겠죠.

DEBUG 함수 자체가 표현식으로 출력 형태를 정할 수 있습니까?
: regex 가져다가 쓰면 됩니다.

DEBUG 함수 자체가 자동으로 파일 크기 차면 알아서 끊어 주나요?
: 이거는 워냑 단순한 거라... 딱히 할 말이 없네요.

DEBUG 함수 자체가 자동으로 날짜 별로 파일 끊어 주나요?
: 상동.

위의 작업들은 절차적인 작업들인데...
굳이 java로 구현해야 할 필요가 있을까...
참 궁금합니다.
C와 운영체제에 있는 기본적인 기능으로 쉽게 구현이 됩니다.

fender의 이미지

구현하라는 게 아니라 log4j 같은 로깅 프레임워크의 존재 이유는 저런 것들을 '구현없이' 설정만 바꿔서 쓸 수 있다는 겁니다.

그리고 예로 드신 설명들도 log4j가 하는 것을 제대로 반영한 것도 아니구요... 예를들어 원격 로깅 같은 경우만 해도 그냥 테일로 메시지 뿌리는 그런 게 아니라 원격지에서 카테고리 브라우징이 가능한 GUI 브라우저가 있습니다.

위에 나열한 일들이 모두 jar파일 다운받아 클래스 패스에 던져두고 설정 파일만 바꾸면 되는데, select99님이 C에서는 뭐가 되었던 저런 프레임워크가 없어도 더 쉽고 빠르게 된다고 하시니 예로 든 것입니다.

저런 기능을 구현하라면 C/C++이든 안될 건 없죠. 그러니 log4cxx 가 있는 것이구요. 그런데 로깅 프레임워크 개발자가 아니라 비즈니스 프로젝트를 하는데 저런 수준의 로깅에 대해 변화하는 요구사항을 다 반영하는 로깅 툴부터 짜고 들어간다면 그게 생산성이 더 나올리는 없는 것 아닌가요?

아무튼 저런 기능은 자바만 할 수 있다는 식으로 논지를 오해하신 것 같습니다.

논지는 비즈니스 어플 분야에서 조차 자바에 있는 라이브러리는 다 C에도 있거나 아니면 없어도 훨씬 높은 생산성으로 개발 가능하다고 하는 것에 대한 반박입니다.

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

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

myueho의 이미지

문제를 좀 정리해주시죠. 이 문제가 명확하다고 생각하시나요? 전 무슨 말인지 전혀 모르겠는데요.
incode 함수에 넣어 두값을 교환시킨다는데 두 값은 무엇이고 어떻게 교환시켜야 하나요?

그리고 전에도 지적했지만 코드영역의 데이터에 쓰기를 시도하는 코드의 문제나 멀티바이트 문자 처리는 어떻게 하실겁니까?

fender의 이미지

"무조건 변명하려하기보다 최소한 자신이한말은 인정하는자세를 가져보세요"

근데 궁금해서 그런데 제가 무슨 말을 했는데 뭘 인정하라는 거죠? -ㅅ-a;

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

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

codepage의 이미지

원문대로 이야기하면 high level language하고
low level language 차이점은 인간이 가진 논리적 개념을 프로그래밍 언어로
기술하기 용이한가 그렇지 않는가의 차이점이 아닌가요?
전산한 개론에 보면 나오는 이야기고요
뭐 assembly 언어의 condition and jump나 register에 값을 넣고 곱하기 나누기 하고
그런 경험까지 있는 것을 기대하지는 않지만 너무 개념에 대한 이해가 떨어지는 것 아닌가요?
저는 C나 JAVA나 모두 잘 쓰고 있지만 C가 논리적인 개념의 구현을 뭐 아주 난해하게 만드는 거지같은 언어라고 생각하지 않습니다.
C는 고급언어의 장점을 갖고 있으면서 어셈블리 언어와의 인터페이스도 가능하기 때문에 활용 범위가 높은 언어라고 생각하고 있죠.
그럼 O/S와 같은 지극히 논리정연한 시스템을 왜 C를 주로 사용해서 만든다고 생각하시나요?

또 위 글쓰신 분들 중에 C와 다른 언어의 String에 대해서 쓰신 분이 계신데
C의 char*는 일반적으로 JAVA의 byte[]에 해당하고 거기에는 charecter set의 개념이 존재하지 않습니다.
다국어를 지원할 경우에 컨버젼 루틴을 모두 기술해 주어야 하죠.
하지만 C#이나 JAVA 심지어는 Visual C++의 경우에도 String에 charecter set개념은 들어가 있습니다.

또한가지 C나 C++에서 char* 버퍼에 들어간 데이타를 다룰때는 buffer overflow라는 보안 이슈를 생각하지 않을 수 없죠?
예를 들어 strcpy 대신 strncpy를 쓰는 이유가 그런 것 아닌가요?

잘 알지 못하면서 자기가 모르는 것에 대해 무조건 거부감을 갖는 것은 엔지니어로서도 지양해야 할 태도로 보입니다.
솔직히 저는 ruby가 뭔지 모릅니다.
그냥 모르면 '잘 모르겠으니 뭐라고 말을 못하겠습니다.' 라고 하면 그만인 것입니다!

-----------------------
글이 좀 엉뚱한데 가서 붙었네요.
어떤 분이 저 아래 C는 저급언어라고 하신 글에 대해 쓴 것인데..이거 삭제할 수도 없고
양해를 구합니나.^^

hongminhee의 이미지

어셈블리나 목적 코드 대신 C 코드를 뱉는 컴파일러도 꽤 많아지는 추세인데, C는 상대적으로 저급 언어 맞다고 봅니다. 특히 Lisp, Haskell 같은 함수형 언어에 비교하면 더더욱 그렇고, 함수형 언어의 특징을 실무에 쓰기 쉽게 훌륭하게 적용시킨 C#에 비교해서도 그렇습니다. (C에 list comprehenstion이나 LINQ가 있습니까? lambda나 lexical scope는? continuation은 어떻구요.) 전 Java 무식해서 싫어하는데, Java에 비해서도 C는 저급 언어입니다.

근데 저급 언어가 나쁜 뜻입니까? 저급 언어로밖에 못하는 분야가 있는데요. 그런 것들은 당연히 C로 해야겠죠. 어쨌든 용도 따라 언어는 골라서 써야 합니다.

홍민희 (VLAAH, LangDev)

winner의 이미지

제가 잘못 알고 있는 것인가요?

hongminhee의 이미지

C는 static scope입니다. lexical scope가 static scope이니 C도 lexical scope를 지원한다고 봐야 할까요? 하지만 제가 얘기한 것은 labmda와 함께 사용했을 때의 lexical scope 얘기였어요. (애초에 C가 lambda 지원을 안하니 lexical scope도…)

홍민희 (VLAAH, LangDev)

imyejin의 이미지

너무 글이 많이 미처 못 보고 지나간 글타래였는데 바로잡을 필요가 있을 것 같습니다. lexical scope는 람다가 있는지 없는지랑은 상관이 없고 static scope와 동의어로 알고 있습니다.

http://en.wikipedia.org/wiki/Scope_(programming) 에도 보면 # 3.1 Static scoping (also known as lexical scoping) 이라고 나오는군요.

혹시 lexical scope를 static scope와 다르게 정의하는 문헌이 존재한다면 인용 바랍니다.

임예진 팬클럽 ♡예진아씨♡ http://cafe.daum.net/imyejin

[예진아씨 피카사 웹앨범] 임예진 팬클럽 ♡예진아씨♡ http://cafe.daum.net/imyejin

c0d3h4ck의 이미지

C나 어셈블리같이 빠른 언어를 안쓰고 왜 자바 같이 무거운 언어를 쓰냐는 분들도 많죠.
어셈으로 모든 프로그램 다 짤 수 있다는 분들도 있습니다.

c0d3h4ck의 이미지

첫 번째 댓글에 달려는 리플인데..
엉뚱하게 달렸군요.

sDH8988L의 이미지

어셈블리로 해당 플랫폼에서 돌아가는 프로그램 대부분을 짤 수 있다는 건 사실이지요...

개고생 하느냐 아니냐의 차이... ㅋㅋㅋ

johan의 이미지

와 대단들 하시네요. 저는 java나 c나 거의 동일하다고 생각합니다. 둘다 현대의 다양한 프로그래밍 언어들에 비교해서 상당히 저급언어죠.

저급언어 인가 고급언어인가 판단하려면, 동일한 프로그램을 전혀 "라이브러리 사용없이" 작성해 보면 압니다. 고급언어 일수록 생각한 "그대로 표현"할 수 있고 저급언어 일수록 생각을 "기계에 맞게 수정"해야 합니다.

얼마전 취미삼아 android 프로그래밍 하려는데, 생각을 자꾸 기계에 맞게 수정해야 해서 상당히 짜증이 나더군요. 최근에는 직장에서 jmeter 사용중에 미처 생각지 못한 문제를 만났는데, 그냥 테스트용으로 사용하는 것이라 그러려니 하고 문제를 해결하기 보다는 피해가면서 씁니다.

꼭 필요할 때 java나 c 사용하기는 하는데, 그 둘로만 밥벌이 하라면 아마 프로그래밍 그만 두었으리라 생각합니다 - 제 습성이 그러하다는 것일 뿐 사람마다 다를 겁니다.

ifree의 이미지

자바가 저급이라는 말은 처음 듣는군요.
말씀하신 기준은 functional language 와 imperative language 의 차이가 아닌가요?

coremaker의 이미지

토론을 위해서는 용어정리가 필요할 것 같은데요..
각각이 사용하시는 단어들이나 의미들이 상당히 혼동되어 사용되어..
논쟁이 되버리는 것 같습니다...

이론적인 단어와 실제 현실에서 체감적으로 느끼는 단어가 충돌되는..
경우인 것 같은데요...

같은 온톨로지 안에서 대화한다면 이런 일이 발생되진 않겠죠?

저급언어/고급언어 에 대한 정의와
각각에 언어에 대한 이해도가 충분한 경우에 생산적인 토론이 이루어질 듯 합니다.

다들 현업에서 각 언어에 대한 이해도가 충분하실 것 같지만,
논쟁안에서 사용되는 단어들이 서로 다른 목적으로 사용된다면,
결론이 나기는 쉽지 않을 것 같습니다.

그나저나 글타래와 크게 관련 없는 글을 써버리고 말았네요..

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

카二리의 이미지

자바에 대해서 위에서 수 많은 좋다 나쁘다 왜쓰냐 왜 안쓰냐 말이 오갔는데요.
마치 자바가 Enterprise 환경에서만 썩 괜찮은 언어인것만 같아서 제 경험을 이렇게 씁니다.

전 원래 자바 EE를 공부 했었고, 지금은 embedded환경에서 VM과 embedded java를 하고 있습니다.

사실 제 생각에 enterprise 환경보다 자바가 더 강력한 환경은 embedded에서 입니다.

서버쪽 환경이나 웹 클라이언트 등에선 자바도 강하고, 닷넷도 강하고, php, python, ruby 수만은 강자들이 많이 존재 하지만,

embedded쪽에서는 코어 위에 올라가는 어플리케이션은 거의 자바가 초강자로 군림하고 있다고 해도 무리가 아닙니다.

핸드폰에서 돌아가는 수 많은 어플리케이션들, 또한 BlurayDisk에는 기본 스펙에 자바가 자리잡고 있습니다. 게다가 TV 방송에서 들어오는 어플리케이션 또한 자바 어플리케이션 입니다.

심지어 여러분이 기업에서 쓰는 대형 프린터에도 자바가 들어 갑니다. 또한 카메라에도 자바가 들어가죠

다른걸 한번 보겠습니다. 요새 구글에서 밀고 있는 안드로이드는 자바가 기본 프로그래밍 언어 입니다.

구글 하면 기업 이미지가 전세계 프로그래머들의 선망받는 인제들이 모인 기업이죠. 이런 기업에서 자바를 기본 언어로 하는 플랫폼을 내놨다는건 뭔가 의미가 있는거죠.

심지어 안드로이드의 dalvik은 JIT조차 없어서 좀 빠른 인터프리터 수준인대도 불구하고 전세계의 개발자들이 열광하고 있죠.

이런 분야들에서는 자바 이외엔 다른 언어로는 대안조차 찾기 힘듭니다.

기껏해야 ipod/iphone의 objective-c? 정도가 그나마 좀 많이 쓰이고 있겠네요, C 또한 비슷한 분야에서 많이 쓰이고 있습니다.

하지만 objective-c/C 다 합쳐봐야 자바의 %를 따라갈 수가 없습니다.

근대 이 바닥에서 조차도 자바가 싫은 이유는 간단합니다.

라이센스 때문이죠. 썬이 아주 그냥 꽉잡고 있어요. 썬 망했다구요? 그래도 돈 내야 해요.
안드로이드 처럼 vm 따로 쓰면 안되냐구요? 자바 언어 자체는 free 하죠. 하지만 썬이 수십년동안 VM만 만들면서 수 많은 VM기술에 특허를 걸어놔서, 그걸 피해갈 수 있는 회사는 아무대도 없습니다.

그냥 썬이 테클 걸면 돈 내야 해요.

왜 아파치 하모니가 자바라는 타이틀을 걸 수가 없는 걸까요? 썬이 인증을 안해줘서 입니다.

이러면 뭐가 문제냐구요? 쓸 수가 없어요. 제품에 자바가 들어갔다고 선전을 못하거든요.

선언 못하면 어떠냐구요? 개발자들은 자바라면 치를 떨 사람도 있겠지만, 사용자들은 어디서 들어본 걸 듣도 보도 못하던 것 보단 선호 하거든요.

그만큼 자바의 영역이 엄청나단 소리죠.

새 생각 :)

새 생각 :)

Necromancer의 이미지

위 예라면 cross-platform이라는 자바의 최대 강점이 활용된 경우겠네요.
한 예로 핸드폰 어플이라면 돌아가야 하는 핸드폰 종류가 한둘이 아니고 이것들이 다 똑같은 환경이 아니라서 VM을 쓸 수 밖에 없는데, 이미 자바가 나와있으니까요.

platform에 신경 안쓴다면. 특정 cpu에 특정 운영체제 환경이라면, 여기에 코드 크기와 속도 둘 다 중요한 곳이라면 자바 안쓴다고 보시면 될 듯 합니다. mp3p 같은 경우가 그 예가 되겠죠.

Written By the Black Knight of Destruction

Written By the Black Knight of Destruction

Scarecrow의 이미지

이제 글상자가 작아져서 보기 불편합니다.
그러니 어디 irc같은데서 토론들 하시고

그럴일은 없을거라 생각됩니다만
그 결과를 kldp에도 알리고 싶다는 생각이 드시면
대화내용을 스크랩해서 올려주세요...

지리즈의 이미지

일단 어디까지나 사견임을 전제로 하고....

"당신의 리눅스 박스가 5초내에 부팅을 하는 것에 환희를 느낀다.
비록 마비노기,아이온이 실행은 염원하고 심지어면 오픈오피스조차 구동되지 않더라도 말이다."

이런 마인드를 가진 사람은 Java보다는 C를 좋아합니다.

KLDP에서 Java가 인기 없는지에 대한 답변이 되었나요?

There is no spoon. Neo from the Matrix 1999.

There is no spoon. Neo from the Matrix 1999.

ldgood의 이미지

서로가 중요하게 생각하는 키워드가 무엇인지 전혀 고려하지 않고
자신이 원하는 바를 펼칠때 토론은 산으로가고 보는 사람은 재미있고...
------------------------------
모든것은 모든것에 잇닿아 있다.


------------------------------
모든것은 모든것에 잇닿아 있다.

로미의 이미지

Hardware의 성능과 Java, C, CPP, C#과의 관련성은 어떤가요?
“무시해도 돼”라는 정도인지??

Signature:
끝까지 읽어 주셔서 감사합니다.(이봐 로미, 뭐가 감사한거야?!)

혹시 댓글로 싸움을 즐기려는 님!?
당신은 眞性 변퉤 입니다~ :P

이제는 무늬만 백수로 가장한 개발자가 아닌 진정한 개발자가 되어야겠다.
이제는 학생으로 가장한 백수가 아닌 진짜 백수가 되어야겠다.

언제나 newbie의 마음가짐.

Necromancer의 이미지

kldp에 c가 많은 이유는 유닉스 탄생과 c가 매우 밀접한거 때문이 아닐런지요.
리눅스도 유닉스와 마찬가지로 상당수 핵심 라이브러리들이 c로 되어 있고 커널 프로그래밍을 할때도 c를 많이 쓰고
유닉스류에 관심을 가지는 사람들이 모인 이상은 c에 관심을 가질 수 밖에 없구요.

그리고 상당수 유닉스 서적들이 c를 강조합니다. 자바는 없거나 있더라도 일개 어플리케이션(?) 수준으로 다루는 정도.

...어디어디에서 배포하는 무슨무슨 프로그램을 깔면 자바를 쓸 수 있습니다... 정도

Written By the Black Knight of Destruction

Written By the Black Knight of Destruction

magingax의 이미지

떡밥계의 사골..
우려도 우려도 계속 싸운다..

LISP 사용자모임
http://cafe.naver.com/lisper
방송기술 개발업체
http://playhouseinc.co.kr

sora24의 이미지

논쟁에 대해 실력이 없어서 아는게 별로 없지만 끝내주는 표현에 감동 받아 남깁니다.

페이지