가장 흥미로운 언어는 어떤 것이었나요?
요즘 들어 임베디드 언어(Embedded Language)를 공부하면서 느끼는 것입니다만 언어마다 참 여러가지 장점이 있다는 생각을 합니다. 그 장점들을 다 모은다면 좋겠지만 그것은 어디까지나 희망사항일 뿐이고, 각자의 언어마다 빛나는 점들을 느끼는 것으로도 충분한 것 같습니다.
지금은 LUA라는 언어를 가지고 여러가지 스크립트를 만들어가며 공부하고 있습니다. 그러고보니 주류언어들의 틈새에서 재미있는 장점을 가지고 분발하는 언어들이 있습니다. 그런 언어를 하나하나 알아가는 것도 컴퓨터를 공부하는 하나의 흥비로움이 아닐까 생각이 듭니다.
언어의 특장점이야 여러 종류가 있겠습니다만 어느 것이 좋다라는 것을 떠나서 이런 점이 재미있었던 언어가 있다라는 내용을 가지고 얘기해봤으면 좋겠네요. 다른 언어 꼬집지말고 순수하게 이런 것이 좋았다는 것만요. 서로 꼬집으면 상처밖에 안남으니까요. ^^;
제가 가장 재미있게 보았던 언어는 Forth였습니다. 임베디드 시스템에 사용되기때문에 대부분 Kilo바이트의 크기를 가지는 언어였고, 예약어가 링크 리스트로 관리되는 TIL이라는 시스템으로 운영되더군요.
Postfix방식으로 해석됩니다. 목적어가 앞에, 용언이 뒤에오는 방식이죠.
3 4 +
이런 식이죠. "3과 4를 더해라" 한참 한글 언어를 공부할 때 "아. 이 방식을 이용하면 재미있겠구나."라는 생각을 했던 언어였습니다. 그리고 스택기반의 언어라서 매우 간단한 연산만으로 언어를 유지할 수 있었죠.
위에서 처럼 3을 스택에, 다음 4를 스택에, 두 개를 POP한 후 더해 그 결과를 다시 스택에.. 이런 식이라 파싱도 간단한 언어였습니다. 지금도 다시 한번 만들어보고 싶은 언어죠. ^.^
Forth 언어의 구조는 http://www.zetetics.com/bj/papers/moving1.htm 에서 볼 수 있구요..
다른 언어들의 재미있는 점도 꼭 알려주세요.
저는 별로 공부해 본게 없네요..C, C++, 자바, python,
저는 별로 공부해 본게 없네요..
C, C++, 자바, python, php(이거는 스크립트지 언어가 아니다..라고들 말씀하지시만..)
그리고 수업은 들었으나 하나도 모르는 VB -_-;
주로 사용하는 언어는 C++이기는 한데...
STL같은거는 공부해볼 생각만 했지 전혀 모르니깐 뭐..
C++을 안다라고 하기도 부끄럽네요.
그래도 저는 C++이 가장 익숙해서 그런지 C++프로그래밍 할때가 가장 재미있네요.
자바는 시작한지 얼마 되지 않아서 잘은 모르겠고...
단지.. (STL을 뺀)C++과 비교했을때...
참 편하긴하더라구요.
있음직한거는 찾아보면 다 클래스로 제공되니깐...
몰라요, 저는 애플릿 쪼끔 만들어보고 그렇게 느꼈으니까...
(비교가 좀 잘못된거같긴 하네요...)
근데 참 자바의 입출력은 어찌되는건지..-_-;
학교에서 자바 배우고 있기는 한데...
학교에서 정한 교제에서 제공하는 I/O클래스를 사용하고 있기는한데...
그래도 좀..-_-;
그리고.. 시간이 나면 python은 참 익히고 싶어요.
예전에 python 1.몇 버전 나왔을 즘에...
호기심에 한 일주일정도 python 관련 웹사이트 보면서 나름대로 가지고 놀아봤는데...
문법이 참..^^;
그때 몇일 python 가지고 놀고나서 C++ 코딩할때마다 세미콜론 빼먹는 버릇이 생겨버려가지고...-_-;
C++로 과제해야 되는데 python때메 C++ 이 싫어지기도 하고..-_-;
그래서 그만 뒀지요...;;; 뭐 바쁘기도 했고...
python에서 제공하는 자료형도 독특했고..(오래되서 기억도 안나네요..)
잠시였지만 뭔가 강력하다는 느낌을 받았기 때문에...
반드시 공부하고 싶네요.
이런.. 결론이..ㅡㅡ;
결론은 아직까지 저는.. C++ !!
열심히 써본걸로만 적어보면...Fortran 77/90, Ratf
열심히 써본걸로만 적어보면...
Fortran 77/90, Ratfor, C/C++, bash, awk, PostScript, Python/Ruby, Turbo Pascal, POVRAY, Mathematica, matlab, HTML
누가 시작했는지 모르지만 자연어로는... 한글(Native speaker)/영어(의사소통에는 불편없는 정도.)
몇개 더 있는듯 한데 기억이 안나는군요. 쓸줄 아는건 (메뉴얼 보고 떠듬떠듬 쓰는 정도:p)...
Ada, APL, Forth, Perl, Objective C, Common Lisp, Scheme, 일어, 독일어
공부하고 있는 거....
불어
펄 6.0이 나오면 천지가 진동 하리라~ 음하하~펄 6.0부터는
펄 6.0이 나오면 천지가 진동 하리라~ 음하하~
펄 6.0부터는 모든 것이 객체화 한다고 하더군요.... 기존 5.0의 문법을 최대한 허용하는 한에서 모든것을 엎어버린다고 하던데...
class구문이 생기고, C에서의 switch-case에 해당하는 given-when구문이 생겼답니다. 클래스의 property도 정할 수 있구요...
class MyPerlClass is static
{
attr $xxx=1;
my $stupid_string;
method stupid_strings {do something..};
}
class Derived is MyPerlClass //상속
{ 어쩌고 저쩌구...}
my $MPC = new $MyPerlClass;
$MPC.stupid_string="I am STUPID!!!";
$MPC.stupid_strings;
print $MPC.stupid_string.length;
....
하하하~~~
clips입니다. 참 재미있는 언어입니다. 인공지능언어인데... 나사랑
clips입니다. 참 재미있는 언어입니다. 인공지능언어인데... 나사랑 IBM이 만들었다는고 하던데...흠..
개념이 short term memory와 long term memory에 fact라는 것이 들어가고 engine이라는 것에서 rule에 해당되는 fact가 나타나면 agenda에 들어가서...흠....
길어지는군요...암튼 대단한 언어임에는 틀림없습니다.
clisp 가 아니라 clips 를 말하는 것 같습니다.lisp 언어
clisp 가 아니라 clips 를 말하는 것 같습니다.
lisp 언어 형식으로 되어 있으며 c 와 연동이 가능하게 설계되어 있습니다.
그리고 clips 는 lisp 보다는 lisp 기반으로 작성된 osp/5(이름이 자세히 기억나지 않는군요.) 에 더욱 가깝습니다.
죄송합니다. 제가 눈이 삐었나 봅니다. ㅎㅎㅎclips 로 되어 있더
죄송합니다. 제가 눈이 삐었나 봅니다. ㅎㅎㅎ
clips 로 되어 있더군요.
그리고 osp/5 가 이니라 ops/5 로 알고 있습니다.
이 주제가 올라온 뒤 Haskell과 Prolog 얘기가 많이 나오길래
이 주제가 올라온 뒤 Haskell과 Prolog 얘기가 많이 나오길래 호기심이 생겨서 둘 다 한 번 맛보기를 했습니다.
그런데 일단 Haskell은 순수 함수형 언어라 배정문이 없고 반복문이 없더군요. -_-;;
당황했습니다. 배정문과 반복문없이 어떻게 코딩을 하라는 것인 지... -_-a
재귀함수를 무지하게 써야 되더군요.
씨언어 쓸 때도 재귀함수는 코드가 짧아지기는 하지만 readable하지도 않고 속도도 느려서 잘 쓰지 않는 데 다른 언어 배우면서 재귀함수를 써야 되니 많이 불편하더라구요.
논리형 언어 Prolog도 당황스럽기는 마찬가지더군요.
여기저기 아무리 뒤저봐도 평소에 보던 예제같은 예제는 없고 A는 B를 좋아한다. B는 C를 좋아한다. 계~~속 이런 것만 나오고 -_-;;
공통수학의 정석 2장 명제와 조건이 생각이 나더군요.
결국은 별로 재미있어 보이지는 않았지만 객체지향 스크립트 언어 Python을 봤습니다.
역시 배정문도 있고 반복문도 있고 쉽더군요. -_-;;
오늘 하루 봤는 데 대충은 알겠더군요.
Haskell과 Prolog는 프로그램을 어떻게 짜라는 건지 도대체 모르겠던데...
제가 Python이 Haskell과 Prolog보다 좋다는 말을 하려는 건 아닙니다.
그런데 저같이 명령형 언어에 물들어 버린 사람이 접근하기에는 함수형 언어와 논리형 언어가 접근하기가 너무 어렵더군요.
나중에 관심이 생기면 다시 봐야 겠습니다. :)
ps. 사실 Python에 비해 Haskell과 Prolog는 자료도 부족하더군요. ;;
--
나는 멈출줄 모른다.( 유수영, 2002 )
http://myhome.hanafos.com/~yootiong/
msn : yootiong at hotmail dot com
Prolog는 전산학이나 컴파일러의 관점에서 보다는 완전히 논리학의 관점
Prolog는 전산학이나 컴파일러의 관점에서 보다는 완전히 논리학의 관점에서 이해하면 만사 ok입니다.
전에 저기 앞에서도 약간 설명을했지만 Prolog는 Horn절을 사용합니다.
Horn 절이란 왼쪽은 오직 or로만 절들이 연결되고, 오른쪽은 오직 and로만 연결되는 절의 특수한 경우이지요. 모든 절을 이렇게 Horn 절로 나타내는 이유는 아무래도 효율성때문입니다.
그리고 왼쪽은 결론문이고, 오른쪽은 전제가 되지요.
"A절이 참이면 B절도 참이다"라는걸 B :- A 이렇게 나타내지요. (:-기호가 맞나 모르겠군요. 기억이 가물가물..)
수학에서는 A --> B인데, Prolog에서는 거꾸로이니 유의해야합니다.
Prolog에서는 오직 규칙과 사실 두가지 종류만 존재합니다.
이제 간단한 예로가서,
// 다음은 규칙, Horn 절로 표현됨
할머니(A,C) :- 어머니(A,B) and 아버지(B,C).
외할머니(C,E) :- 어머니(C,D) and 어머니(D,E).
할아버지(A,C) :- 아버지(A,B) and 아버지(B,C).
아버지(E,F).
어머니(G,H).
//다음은 사실
아버지(김좌진,김두한).
아버지(김두한,김을동).
//이제 목표를 지정합니다.
할아버지(A,김을동)
이렇게 목표를 지정하면 위에서 규칙들과 사실들을 이용해 A에 "김좌진"이라는 값이 들어가게 됩니다.
참고로 할아버지(김좌진,A) 라고 목표를 정하면, A에 김을동이 들어가죠.
규칙에 들어가는 매개변수는 변수이이며 대문자로 표시하며, 사실에 들어가는건 리터럴이라고 해야하나...뭐 그런거...
이건 극도로 간단한 예이고, List를 표현할 수도 있고, 기타등등의 기교도 꽤 있습니다.
Prolog로 일반적인 응용 Application 만드는건 사실 매니아가 아니면 하긴 어렵죠. 이 특이한 언어로 응용 Application 을 만들어 내는 사람도 있긴있던데... 제가 봐도 굉장히 신기하더군요. 저도 좀 다룰줄 알거든요.
그러나 Prolog는 이런 용도로 만들어진건 아니고, 인공지능용으로 만들어졌기에 특별한 논리적 문제 해결을 표현하는데 더 적합합니다.
예를들면, 하노이 타워같은건 몇줄이면 끝납니다.
기타 8 Qween이나 강건너기 등등.. Prolog가 이런 문제들에 대해 완벽한 표현력으로 보여주지요.
중요한건 Prolog라기보다는 논리적으로 문제를 표현해내는데 있습니다.
풀어야할 문제를 Horn절과 몇몇 사실들로 표현할 수만 있다면, 그대로 Prolog로 옮기면 됩니다.
그런데 유의해야할 점은 Prolog가 문제를 해결하는 과정인데, 소위 Backtracking이라는 매커니즘을 사용하는데, 알고리즘 책에도 있다시피 이렇게 하면 완전성을 얻을 수는 있지만 굉장히 비효율적이며 소모적인 작업이지요.
뭐 긴말할 것도 없이 이게 궁극의 단점입니다.
그러나 효율성은 하드웨어(CPU)가 받쳐주면 되니 아마 가까운 미래에 Prolog가 다시 빛을 보게 될 수 있을지도 모릅니다.
역시 그랬군요.Prolog로 어플리케이션을 만들기는 어려운 언어였
역시 그랬군요.
Prolog로 어플리케이션을 만들기는 어려운 언어였군요.
전 이걸 가지고 어떻게 만들어야 되나....고민하다가 좀 아닌 듯해서 ㅡ.ㅡ;;
--
나는 멈출줄 모른다.( 유수영, 2002 )
http://myhome.hanafos.com/~yootiong/
msn : yootiong at hotmail dot com
맞습니다. Prolog로 Application을 만든다거나 hel
맞습니다.
Prolog로 Application을 만든다거나 hello world를 찍는 것은 별 의미가 없습니다. 만들어 낼 수는 없다는건 아니죠. 비유가 적절할지는 모르지만, 하나 들자면, 포크레인으로 땅파기는 쉽지만 포크레인으로 밥퍼기는 까다롭죠.
세월이 흘러 지나도 Imperative Language는 반드시 존재하며 존재 가치가 늘 있습니다. Prolog같은 논리형 언어도 마찬가지지요.
C++이 template과 oop를 모두 지원하기에 multi-paradigm 언어라고는 하지만 큰 틀에서 보면 여전히 Imperative Language(명령형 언어)이지요.
Prolog에 Imperative 특성을 가미한 언어가 있습니다. 바로 Leda이지요. 이건 바로 아래 저분이 이미 말씀을 해두었군요. 이게 진정한 multi-paradigm 언어이지요.
Leda는 Imperative 특성을 파스칼 언어에서 가져다 왔습니다. Ada가 그렇듯 Leda가 파스칼에서 특성을 가져온 이유는 파스칼이 기본적으로 강형화 언어이기 때문이지요.
정통 C 프로그래머라면 잘 알다시피 C의 경우는 함수 파라미터의 Type뿐만아니라 갯수(!!)가 안맞아도 함수가 Call된다라는걸 알겁니다. 함수를 그냥 "코드에 대한 포인터"라고 하면 섭섭하겠지만 진짜 이렇게 작동하죠.. 알고보면 졸라 허접한 언어가 바로 C이죠. 그런데 이게 장점이 될 수는 있습니다. 결국 C는 쓰기 나름입니다. 다만 저렇게 Call이 되었을때 프로그램이 제대로 잘 작동하게 만드는건 전적으로 프로그래머 책임이지요.
C++에다 Prolog를 가미하면 어떨까하는 생각도 듭니다. 이미 스트로스트럽이 구상했는지도...
prolog는 어플리케이션 만드는데 적합한 언어는아닌것같습니다. 허미..
prolog는 어플리케이션 만드는데 적합한 언어는아닌것같습니다. 허미...
예를들어서 관계를 나타내는것들을 표현하는 부분이나 DB에서 Schema나 table
간 사용자Role의 무결성같은것을 검증할때 잘 사용하면 엄청난 효율을 보게될듯싶은데..구현해본적은 없구요.
우리 직장에서 젤 힘든게 근무 스케줄짜는건데요.. 물론 델파이로 삽질 해뒀는데 logic언어로 구사해보면 재밌을거 같습니다.
예를 들어서...쩝
로직언어는 '참'인 명제를 열거해놓는 방법을 사용합니다(Leda에서 그렇게 사용했었거든요)
1. 총인원이 10명인이다
2. 근무자가2틀 연달아서 근무설수없다
3. 과장은 5일에 한번씩 근무를 선다.
4. 주말당직은 한명당 2번-3번 선다.
.
.
.
이런식으로 열거해놓으면 이에 해당하는 모든 가능한 경우의 수를 다 찾아내는거죠
이런거....logic쓰면 금방 나와요.
근데 델파이나 뭐 다른걸로 할려면 로는 무리죠.
스케줄 작성, 수정, 삭제 등등... 소스가 덕지 덕지 해지는거같습니다.
DB데이터 무결성 체크하는것두 이와유사하겠죠?
1. foreign키 이면서 Primary 키인것
2. foreign키인데 참조하는 pk가 없는것
3. 해당 table의 owner가 scott인것
찾아줘[엔터] 이런식으로
..이상...^^;
열심히 삽질하고 있는 개발자인데요, 주로 예전엔 C 로 했는데 요즘은 C
열심히 삽질하고 있는 개발자인데요, 주로 예전엔 C 로 했는데 요즘은 C++ 로 개발중이죠.
대형프로젝트에 C++전례가 아직 드물어서 발주사업단이 많이 우려했는데 지금은 잘(?) 개발 하고 있죠. UNIX 에서 C++ 많이 안하는게 현실은 현실이니깐...
C++ 은 하면할수록 매력적이군요, OO 에 Generic .. 아직까진 C++ 환상에 빠져있네요.
프로젝트에선 그렇고, 개인적으로 흥미로운 언어는 Matlab 이었는데, 언어로 쳐주시지 않으면 말구 ^^
vector 연산의 엄청난 위력.. 참 놀라웠습니다.
전 Leda언어에 한표던집니다.미국 오레곤대학의 Tim budd 교수
전 Leda언어에 한표던집니다.
미국 오레곤대학의 Tim budd 교수님이 만들고잇는 언어로 알고잇고 학부때 배웠던적이있는데
C, cobol, fortran 언어계열을 명령형(imperative<--??)언어라구 하져
drscheme, lisp, nML,sML등을 함수형(functional)언어라구하구요
java, cpp 등을 oop
prolog를 논리형언어라구 하는데
functionl언어로 잘풀리는 문제가 c로 풀기는 무쟈게 힘든경우가있죠
언어마다 특색이있고 표현하는 방법이 다르답니다
그래서 위 4가지 사상을 모두 표현해내는
언어를 만들고 계시더군요. 기본 문법은 파스탈을 따랏구요
예전기억으로 참 흥미로웠었습니다....
c나 자바로 구현하기 어려워서 고민중이었는데
로직언어처럼 구상해보라는 조언에 수도코드작성후에 Leda로문법 참조해서 하니까 신기하게 답이 툭 튀어나오더라구요....한번 찾아보세요
사이트는 기억이 안남 책도 나와있어요
multiparadigm programming in Leda
이름 참 이쁘져?
C++도 멀티패러다임 프로그래밍 언어의 대표적인 예죠.- Stru
C++도 멀티패러다임 프로그래밍 언어의 대표적인 예죠.
- Structured Programming
- Object-Oriented Programming
- Generic Programming
OOP는 하나의 패러다임이라고 합니다만Generic(포괄적)과 Str
OOP는 하나의 패러다임이라고 합니다만
Generic(포괄적)과 Structured는 패러다임이라기보다
언어의 기능에 가깝게 보이는데요.
C++을의 부족한 부분에 재사용성의 필요성을 느껴 STL이라는 스텐다드 템플릿 라이브러리가 고안되었던건데 근본적으로 C++의 사상과 다른게 없죠
C++언어는 symentics reference와 value reference를 동시에 지원하는것때문에 멀티 패어다임이라고 보시는거 같은데 ...제 의견은 ....좀 ^^;
generic programming도 하나의 패러다임이 될 수 있다고 봅
generic programming도 하나의 패러다임이 될 수 있다고 봅니다.
STL에 vector, deque, list 등이 있는데 이들을 container라는 하나의 base class에서 상속받게 하고 begin, end 등을 virtual로 만들었다면 OOP가 되었겠지만 그렇게 하지 않았습니다. 그럼에도 불구하고 find, copy 등의 표준 알고리즘에서는 이들을 모두 수용할 수 있습니다. 이는 GP가 OOP를 대신할 수 있는 패러다임의 역할을 하는 좋은 예입니다.
Generic Programming은 뭔가요? :-)
Generic Programming은 뭔가요? :-)
geekforum에도 이와 관련 토론이 몇 개 있습니다.http:
geekforum에도 이와 관련 토론이 몇 개 있습니다.
http://geekforum.kldp.org/stories.php?story=02/03/22/1123265
C++ 언어 특유의 템플릿(template)과 이를 이용한
STL(Standard Template library)의 사용을 말하는 겁니다.
http://geekforum.kldp.org/stories.php?story=02/03/21/9849522
http://geekforum.kldp.org/stories.php?story=02/03/21/9849522
http://geekforum.kldp.org/stories.php?story=02/04/30/8056340
국내에서 대표적인 STL 사이트로는
http://oopsla.snu.ac.kr/~sjjung/stl/
이 있습니다.
STL을 배우고 나면, Generic Programming이 없는
JAVA, C# 같은 언어는 정말 허접해보이죠. *^^*
Generic C#을 빼놓고 말씀하신거겠죠? :-)
Generic C#을 빼놓고 말씀하신거겠죠? :-)
그리고 HP에서 STL을 공식 발표한 것이 1994년이니까,벌써 9년
그리고 HP에서 STL을 공식 발표한 것이 1994년이니까,
벌써 9년의 역사를 갖습니다.
ANSI C++ 표준으로 지정된 지도 5년이나 되었고요.
현재의 표준을 기준으로 한 겁니다.ANSI C++ 발표 이후 몇년
현재의 표준을 기준으로 한 겁니다.
ANSI C++ 발표 이후 몇년동안 검증되고 널리 사용되는 STL에 비해서는
표준이 아닌 Generic C#은 아직 미흡하지요.
전 C가 가장 흥미롭습니다.java와 같이 정형화 된게 아니라 순간순
전 C가 가장 흥미롭습니다.
java와 같이 정형화 된게 아니라 순간순간 기지를 많이 필요로 합니다.
생각을 담을수가 있는거죠. 같은 기능이라도 생각하고 짠거와 생각 안하고 짠거는 라인의 길이부터 상당한 차이가 있습니다.
다음으로 흥미로운건 어셈블리입니다. 뭘 만들거나 할때 어셈블리로 짜본적은 없습니다. 아니 짜볼 생각을 않았지요.
그렇지만 재미있습니다. 바이너리 코드를 disassebley해서 코드를 보는것 만으로도 재미있습니다. 몇가지만 hex편집기로 몇가지만 바꾸어주면 아주 재미있는 기능을 만들어 낼수 있기도 합니다.
강력하고 단순한게 좋습니다. 저는 절차적 언어에 너무 익숙해서 OOP로 옮겨가는데 많은 어려움을 격었습니다.
OOP를 접하고 너무도 편안함에 놀라움을 금치 못했지만 나중엔 다시 단순하고 강력함이 좋아지더군요.
앞으로도 C를 할생각입니다. 하다가 질리면 다른걸로 바꾸도록 하지요. 정말 재미있습니다.
흥미로운 언어라...제가 컴퓨터를 처음 접한 것은 초등학교 5학년때
흥미로운 언어라...
제가 컴퓨터를 처음 접한 것은 초등학교 5학년때 MSX 8비트짜리였는데.. 아실런지..ㅎㅎ
그때 배운 언어가 베이직 이었는데.. 나름대로 재미있었습니다. 그 뒤 대학에 가서는 C 언어를 공부했는데... 그렇게 지저분한 언어가 없다고 생각했었죠. 하지만 C 언어 관련서적을 50권 정도 보고 나선 생각이 많이 변했습니다. 더구나 C 언어로 객체지향 구현을 하면서 C 에 푹 빠지게 되었던 적도 있었는데.. 그 당시 자바가 나왔던 시절인데.. 막상 자바에는 관심이 가질 안더군요. 윈95가 활기를 치던 시절에 열심히 솔라리스 리눅스를 다루는 중, 주위 사람들 왈 " 그 딴거 해서 뭐해"
하지만 계속 했죠. C++ 도 공부하려 했는데.. 유닉스에서는 C++을 거의 안씁니다. 호환성 때문에. C++은 잠깐 훌터만 봤는데.. 참 재미없는 언어였죠.
제가 그 당시 만들려던 프로그램을 C 언어로 구현한다는 것이 불가능하다는 것을 깨닫고.. 그 때부터 자바에 관심을 기울였었습니다.
군대에 가서는 고전적인 언어인 LISP를 공부했는데 참 재미있더라구요. list 형식이라서 배우기도 쉽습니다. 하지만 LISP 란 언어는 시스템 접근이라던가 하는 저수준의 문제를 해결이 불가능하고 그것을 하려면 C 언어 등과 연동을 해야 한다는 단점 때문에 크게 실망을 하고 그때부터 자바 책을 사들여 와서 (군대시절 ㅎㅎㅎ) 자바를 공부했는데.. 정말 재미있더라구요.
자바 나올때 개발자가 자바는 드라마틱하고 그 향이 자바(인도네시아산 커피)향과 같다고 한말이 생각이 나더라구요.
컴퓨터란 직종에 회의를 느껴서 대학때 결국 진로를 바꾸었지만 수년이 지난 프로그램머와 무관해진 저로서 아직도 자바를 가끔씩 들여다보고 있습니다. 왜냐.. 재미있거든요.ㅎㅎㅎㅎ
컴퓨터 프로그래밍하는 사람은 다들 컴터를 좋아하고 프로그래밍하는 것을 좋아하겠지만, 역시 좋은 일도 돈을 받고하면 실증이 나는군요. 동기가 감소가 되네요. 자기가 제일 좋아하는 것은 취미로 하고 그 다음 좋아하는 것을 직업으로 택하는 것이 좋을 것이라 생각이 드네요. 그 덕에 엄청난 돈을 마다하고, 페인(ㅎㅎㅎ)생활을 하고 있지만, 시간날때마다 가끔씩 접하는 자바의 향기는 아직도 그립습니다.
근데 C언어로는 불가능하지만 자바로는 가능한 프로그램이 뭐죠?아무
근데 C언어로는 불가능하지만 자바로는 가능한 프로그램이 뭐죠?
아무리 생각해도 모르겠네요..반대경우는 있을 수 있는거 같지만..ㅡ.ㅡ;
그런건 세상에 없읍니다.자바는 C에 비하면 지극히 협소한 영역에서
그런건 세상에 없읍니다.
자바는 C에 비하면 지극히 협소한 영역에서만 쓰이죠.
자바가 편한 분야..가 있다?
사실 이것두 C++라이브러리와 기존 인터페이스를 잘 사용한다면,
어셈VS PHP의 비교는 전혀 말도 안되는 비교라는걸 알수 있을 겁니다.
일종의 불성실의 오류라고 할수 있죠.
예를들어 이론적으로 어셈블리로 짜지 못하는 프로그램은 없습니다. 하지만
예를들어 이론적으로 어셈블리로 짜지 못하는 프로그램은 없습니다. 하지만 실무에서, 예를들어 쇼핑몰사이트를 만드는데 아파치+PHP를 쓸까요, 아니면 HTTP서버부터 데이터베이스 핸들링까지 몽땅 어셈블리로 만들까요?
언어마다 적합한 분야가 다릅니다. 그리고 한 언어에 대해 평하려면 최소한 그 언어가 가지는 사상을 이해하고 자유롭게 표현할 수 있는 정도가 되야지 가능하지 않을까 싶군요.
무슨 말쓸을 하시는지 잘 알겠읍니다만...C는 그렇게 저수준의 언어가
무슨 말쓸을 하시는지 잘 알겠읍니다만...
C는 그렇게 저수준의 언어가 아닙니다.
C로 불가능하다는 표현보다는 구현에 많은 노력이 필요하지만 자바로는
훨씬 수월하다는 표현이 적절하겠죠...
글쎄요... C가 저수준의 언어라는 것은 상대적인 개념입니다. 그리고 만
글쎄요... C가 저수준의 언어라는 것은 상대적인 개념입니다. 그리고 만일 실무에서 어셈블리로 쇼핑몰 구현하는 정도 수준은 '불가능'이라고 표현해도 무리가없을 것 같군요. 사실 같은 논리로 자바로 모든 것이 가능하다고 주장을 하려면 충분히 할 수 있지만, 그런 주장은 언어에 대한 '종교전쟁'을 부추기는 의미없는 논쟁이 될 것 같아 바람직하지 않아보입니다.
정말 궁금하네요...자바대신 C로 구현하면 어셈블리로 쇼핑몰(솔직히
정말 궁금하네요...
자바대신 C로 구현하면 어셈블리로 쇼핑몰(솔직히 웹쪽은 잘모릅니다. 그러나 의미를 유추해서)을
구현하는 정도에 해당하는 프로젝트가 어떤것이 있는지 간단한 예라도?
자바 플랫폼을 크게 J2SE, J2ME, J2EE로 나누어 볼 때, AW
자바 플랫폼을 크게 J2SE, J2ME, J2EE로 나누어 볼 때, AWT/스윙으로 대표되는 J2SE는
아시는 바대로 아직까지는 실패작입니다. 반면 J2ME는 상당한 성공을 거두고 있고 J2EE의 경우 최근 몇년 사이 거의 업계 표준에 가깝게 시장을 장악했습니다(이 부분은 >
국내 실정과 완전히 일치하지는 않지만 국내의 경우도 대형 사이트의 경우 대다수가 >
자바 기반입니다).
J2EE의 경우 스펙은 하나이지만 실제 개발은 이러한 스펙을 IBM, Oracle, BEA 등의벤더가 구현한 어플리케이션 서버 제품 기반에서 이루어 집니다. 기본적으로 이들 어플리케이션 서버는 분산처리, 트랜잭션, 보안, 메시징 등등을 통일된 인터페이스를 통
해 서버스로 제공합니다.
C/C++의 경우 이러한 플랫폼을 가지고 있지 못하기 때문에 하위레벨의 서비스 API까지
모두 개발해야 하며, 설사 그게 가능하다고 해도 그런 코드를 개발자 이외의 다른 사
람이 이해하기도 어렵고 확장하기도 어렵습니다.
더구나 J2EE의 플랫폼 독립적 성격도 무시하기 어려운 점이, 개발자가 Win2k-ASP-DCOM-MSSQL 과 같은 특정 벤더의 솔루션으로 통합된 환경에서만 작업하는 경우가 별로없기
때문에 실제 하드웨어나 벤더에 상관없이 동일한 인터페이스로 개발이 가능하다는 것
은 상당한 장점입니다.
굳이 비유해서 예를들자면, JDBC나 ADO 등을 쓰지 않고 데이터베이스를 다룬다고 상상
을 해보시기 바랍니다. 오라클, MSSQL, DB2, Mysql, Postgres 등등 DBMS 각각의 특성>은 물론 실제 서버와 통신하려면 어떻게 해야하는지 모두 공부해야 하겠지요.
문제는... --; 그 자바라는 것을 언어로 보았을 때이지요... --;
문제는... --; 그 자바라는 것을 언어로 보았을 때이지요... --; 저두 J2EE프로그래밍을 하고는 있지만.. --; 자바는 언어로 느껴진다기 보다는 하나의 제품으로 밖에 느껴지지 않을 때가 많습니다. 솔직히 크게 정이 안가는 플랫폼이긴 하지요... 또.. 자바가 플랫폼에 독립적이다라는 말은... --; 어떤 의미에선 완전히 빗나간 말입니다.. 자바가 하나의 플랫폼인데요 모.. --; 예로 도스에서 자바가 돌아가나요? --; 자바는 '자바 플랫폼'에 매우 강하게 종속된 언어 입니다.. 또한 벤더에 상관 없이 개발이 가능하다고 하셨는데... --;
가장 크게 잘못된 말씀 같네요... 한번 프로젝트 뛰어 보시면... 아실 겁니다... --;
한 가지만 추가하자면 J2EE 어플리케이션 서버의 종류는 수십가지가 넘습
한 가지만 추가하자면 J2EE 어플리케이션 서버의 종류는 수십가지가 넘습니다. 펫스토어 같은 >샘플만 Sun의 J2EE RI에서 JBoss, 웹로직, Orion, Oracle IAS, JRun 등으로 포팅해 보셔도 벤더
독립적이란 뜻은 이해하실 것 같군요. 어쨌거나 ASP나 PHP의 경우보다야 특정 벤더에 묶여 있지 않은 건 사실이니까요.
솔직히 도스 이야기는 논쟁을 위한 논쟁으로 밖에 이해가 안가는 군요. J
솔직히 도스 이야기는 논쟁을 위한 논쟁으로 밖에 이해가 안가는 군요. J2EE에 정이가고 안가고하는 문제는 개인 취향이니까 논외로 치더라도 하나의 코드 베이스로 Win2
k와 리눅스, 혹은 웹로직과 JBoss를 동시에 지원하는 건 상당한 메리트입니다. (후자의 경우 어느정도 수정이 필요하긴 합니다)
프로젝트를 뛰어보면안다... 글쎄요... 저는 J2EE로 밥먹고 사는 사람이고 관련 프로젝트도 수십건 해봤지만 잘모르겠군요. 최소한 ASP+MTS를 리눅스로 포팅하는 것보단 e
ar을 옮기는게 더 쉽다고 생각합니다.
'유닉스에서는 C++을 거의 안씁니다.'ㅡ,.ㅡ
'유닉스에서는 C++을 거의 안씁니다.'
ㅡ,.ㅡ
제가 첨 컴을 접한것은 고3때임당.87년도이죠...예전에는 프
제가 첨 컴을 접한것은 고3때임당.
87년도이죠...
예전에는 프로그램을 조금 했지만 지금은 안합니다. 그냥 웹서핑이나 하고 있죠...
물론 컴쪽 직장이 아니니까여..
88년에 8비트 컴퓨터에 gwbasic이 기본으로 깔려있을 땝니다.
그때 160kb인가짜리 단면 플로피디스켓이 돌아가고
있었죠...
89년엔 xt가 우리나라에 첨 들어왔을겁니다.
엄청 빨랐죠... 그때 흑백화면에 turboc 2.0
정말 엄청난 언어였죠...
그때 인터프리터와 컴파일러가 먼지를 잘 몰라..
gw베이직은 실행이 빠른데...
turboc는 왜 느린가 하는 생각을 하기도 했었죠
89년인가 마소에 허큘레스 카드에 그래픽모드를 이용해 한글을 컴에서 구현하는 코드가
아마 마소 x월호에 연재 됐었죠..
엄청난 코드였음당...
프로그래밍 정말 재미있는 작업입니다. 지금은 아마 그렇게 정열적으로 어떤일에 몰두하지 못합니다. 그땐 하루 3시간만자고 20일을 프로그램에 매달려도 피곤한지 모르겠더라고여...
쩝.. 창조자께서도 인간을 창조하실때 하나도
피곤하진 않았을 것 같더라고요... ㅋㅋ
그렇게 저를 매료시킨언어는요...
c언어였음당.
살아있는 생물체같은 언어...
GW-BASIC은 16비트 컴거 아닌가요?GW-BASIC은 MS-
GW-BASIC은 16비트 컴거 아닌가요?
GW-BASIC은 MS-DOS 5.X 버젼 미만에서 썼고, Q-BASIC이 5.X이상에서 쓰였고,
DR-DOS에서는 Turbo Basic이 번들비슷하게 있었던 걸로 압니다.
8비트용으로는 MSX-BASIC, Apple BASIC 등 있던걸로 기억합니다만...
GW-BASIC이건 뭐건 간에 나는 80886 IBM XT PC를 87년
GW-BASIC이건 뭐건 간에 나는 80886 IBM XT PC를 87년부터 다뤘다.
아니다.다뤘다...가 아니라 사용했다. 그 시절의 오락은 BUSHIDO나
THEXDER,PACKMAN,CARrace 등등의 단순하고 신비로운 게임들이었다.
나의 중학시절 공대에 다니던 형님의 영향으로 그렇게 처음(더 정확히는
IQ~2000(*제조사-대우)이었지만 학원 PC였음) 접한 PC의 세계였던 것이다.
당시 본인의 영어도 짧았고 대화가 나오는 게임도 그리 많지 않았던 시대라
필자가 가장 선호했던 게임은 자동차 운전게임 즉 /*카레이스*/였다.
허나 자동차 오락을 하다보면 쉽게 질린다. 더 스피디한 게임에 눈길이 가기
마련이다.
어린마음에 이내 싫증을 느낀 나는 형님의 디스켓통을 뒤져 보기로 했다.
역시...
뭔가가 있었다.
TURBO-??? 어쩌구 하는 오락이었다.
A드라이브에 디스켓을 넣고...
A:>DIR/W
어쩌구 저쩌구...
저쩌구 어쩌구...
......
실행파일이 마땅한게 없었다.
다들아시겠지만 파일명.BAT <-- 요게 없는거라...
있어도 이상한게 뜨고...
분명 오락인것 같기는 한데...
그래서 에라 모르겠다 지워버렸다.
그날 저녁 형님에게 무지 맞은 걸로 기억된다.
암튼 나에게 있어 가장 흥미로웠던 언어는
TURBO-C 였다.(여기서 안 웃으면 타이밍 무지 놓친거다.)
//이상은 실화입니다.
gw-basic은 cpm에서 있던건데요. z-80에서 잘 돌아가던거죠.
gw-basic은 cpm에서 있던건데요. z-80에서 잘 돌아가던거죠. 뭐 8080, 8085도
그후로 ibm-pc용 ms-dos나 pc-dos에서 사용하던거...
당시에 gw-basic을 사용하려면 꽤 많은 투자를 했어야 할텐데...
cpm card(apple), 플로피, 좀 많은 램(16K) 뭐 이정도 장만했어야죠.
프로그래밍은 상황에 따라서, 그에 맞는 랭귀지를 쓰면 되는것 아닌가요..
프로그래밍은 상황에 따라서, 그에 맞는 랭귀지를 쓰면 되는것 아닌가요..
모든 랭귀지들이 장단점을 가지고 있습니다.
다들 아시겠지만요..
저의 경우 암호화 모듈은 C
일반 어플은 VB에 API로
COM은 VB로
게임은 C++로
제휴모듈은 JAVA를 씁니다..
제경험에서는 목적에 딱 맞는 언어가 그것을
개발하는데 가장좋은 언어라고 봅니다.
흥미있는 언어 : C , JAVA, SQL, Lisp, verilog
흥미있는 언어 : C , JAVA, SQL, Lisp, verilog
나름대로의 장점이 크다. 독특하다.
싫어하는 언어: perl, assembly, c++
짜증난다. 엉망이다.
왜 완전객체지향인 JAVA는 흥미있어하시면서.. 왜 C++은 싫어하십니까
왜 완전객체지향인 JAVA는 흥미있어하시면서.. 왜 C++은 싫어하십니까?
그리고 C++은 싫어하시면서 어떻게 C를 좋아하시는지..
그리고 어셈이 엉망입니까?
C++을 싫어하면서 C를 좋아하는 사람은 의외로 많습니다.자바와 C,
C++을 싫어하면서 C를 좋아하는 사람은 의외로 많습니다.
자바와 C, C++은 별개로 보아야 하지 않을까요? :-)
--
Lit.
동명이인이신 분이 계셔서 닉으로 합니다.
L.I.T
안녕하세요. 어셈러브 운영자 김기오입니다.제가 뭘 말씀하시려는지
안녕하세요. 어셈러브 운영자 김기오입니다.
제가 뭘 말씀하시려는지 아셨죠?
자바에 자자도 모르고 윈도우 프로그래밍도 어셈블리로 하고
객체지향에 객체가 물건이라고 생각하는 새파란 프로그래머입니다.
제가 아는 언어라고는 C, 어셈블리 단 두개지만요 어셈블리가
아릅답고 강한것 같습니다.
경력도 없는 초보 프로그래머가 한 말에 일일이 분개하신다면....
전... 울지요.. ㅡ,.ㅠ
아주 크다란 나무 그늘 아래 있으면 태양이 있다라는걸 모르죠.뭐
아주 크다란 나무 그늘 아래 있으면 태양이 있다라는걸 모르죠.
뭐 세상에서 제일 큰 나무 아래에서 충분히 만족하고 사는 것도 그다지 나쁜건 아니지만, 제일 크다고 생각된 나무 꼭대기에 올라가서 태양이 있다라는걸 알게 되었을때, 글쎄 그 순간 심정을 "감회가 새롭다"라는 말로는 부족하겠죠.
머 또. 새삼 자베르(레미제라블에 나오는 경찰)가 왜 자살했는지를 생각하게 되는군요. 위 내용과 일맥상통하는데, 이쯤 말하면 혹시나 생각이 공유되는 분들은 제가 어떤 깨달음을 얻었는지 알법하겠음.
죄송합니다. 말씀하시려는지가 아니고 말하려는지 입니다.한글도 아직
죄송합니다. 말씀하시려는지가 아니고 말하려는지 입니다.
한글도 아직 모르는가 봅니다....:|
"말씀하시려는지 -> 말씀드리려는지" 가 좋겠군요.그리고 말씀이라는
"말씀하시려는지 -> 말씀드리려는지" 가 좋겠군요.
그리고 말씀이라는 말은 존대말도 됩니다.
아래글... 아래 베이직 글에 답 단다는 것이 그만... 죄송합니다 --
아래글... 아래 베이직 글에 답 단다는 것이 그만... 죄송합니다 --;
전 SPC1500 이 첫 PC 였는데요...그때 베이직으로 코딩한 음
전 SPC1500 이 첫 PC 였는데요...
그때 베이직으로 코딩한 음악을
아직도 가지고 있습니다 ^^;;
저와 같네요..^^ 베이직으로 짜셨었나요? cdefgab^^
저와 같네요..^^ 베이직으로 짜셨었나요? cdefgab^^
내가 공부한 건 BASIC, ASSEMBLY, C, C++, PASC
내가 공부한 건
BASIC, ASSEMBLY, C, C++, PASCAL
지금 쓰는 건
C, C++
흥미로운 언어라~~~
SETL 이란 언어.... 집합에 관한 언어인데..
SQL 도 대단하군.
SETL + SQL 을 만들고 싶다.... ㅎㅎ
커억.. ㅠ.ㅜ 여러분들은 많은 언어들을 접해 보셨군요.. ㅠ.ㅜ 갠적으
커억.. ㅠ.ㅜ 여러분들은 많은 언어들을 접해 보셨군요.. ㅠ.ㅜ 갠적으론 C, C++, Java밖에 접해 보지 못했습니다... --; 요즘 젤로 좋아하는 언어는 C++이네용~ 자바 프로젝트를 하고 있지만.. --; 웅... 자바는 너무 일관성이 없어 보여서 좀 싫구요... C++은 깊게 알아 갈 수록 멋진 언어라는 것을 새삼 느끼게 되는 언어 같네요... 시간 나면 꼭 한번 배워 보고 싶은 언어는 SmallTalk이네요.. 그전에 C++이나 좀 더 확실히 .. ㅠ.ㅜ
전 베이직 입니다.솔직히 베이직이 많이 나올꺼라고 상상했었는데..
전 베이직 입니다.
솔직히 베이직이 많이 나올꺼라고 상상했었는데.. 음 의외로 한표도 없나 보네요..
제가 가장 재미있고 열정적으로 했던 때.. 그때 베이직과 함께 했었죠..
테이프도 없고 디스켓도 없어서 공책에다가 수백줄씩 적어가면서 작성하고.. 다시 치고.. 시간이 어떻게 가는줄도 모르고 열심히 가지고 놀았었는데요..
FC-100/Apple/MSX/SPC1000 과 함께하셨던 분들이라면 음 베이직이 제일 즐겁지 않았었던지요.. 흐.
그때 생각해 보면 정말 신기하고 재미있었던거 같아요.. 음..
흐. 그냥 지나가다 한마디 적어 봅니다.
어이가 없군...어떤 언어가 좋느냐에 대해 논의하는 것 자체가 쓸데
어이가 없군...
어떤 언어가 좋느냐에 대해 논의하는 것 자체가 쓸데 없는 짓
당신이 말하는 이 쓸데 없는 짓 게시판 글중에 가장 쓸데 없는 짓
당신이 말하는 이 쓸데 없는 짓 게시판 글중에 가장 쓸데 없는 짓
진짜...삔트 못맞추네...
진짜...
삔트 못맞추네...
바부팅이. 어떤 언어가 가장 흥미로웠는가 하는 얘기를 하는데 내용은
바부팅이. 어떤 언어가 가장 흥미로웠는가 하는
얘기를 하는데 내용은 읽지도 않고 자기 맘대로
생각하고 허무개그식 리플은 달지마세요.
전 Prolog에 한표 !참고할 만한 site !http://
전 Prolog에 한표 !
참고할 만한 site !
http://www2.latech.edu/~acm/HelloWorld.shtml
저두요...이걸로 하노이의 탑을 했던것이 생각나는 군요...지금보
저두요...
이걸로 하노이의 탑을 했던것이 생각나는 군요...
지금보다는 그때가 훨씬 재미있었습니다.
요즘에도 좋은 프롤로그 언어가 있나요?
손뗀지 오래 되어서... 다시 해보기도 싶고...
알려주시면 감사하겠습니다.
오픈 소스(LGPL) Prolog 인터프리터/컴파일러로,SWI-PRO
오픈 소스(LGPL) Prolog 인터프리터/컴파일러로,
SWI-PROLOG 가 있습니다.
http://www.swi-prolog.org/
제 추측엔 (적어도 대학교에선) 제일 많이 쓰일겁니다.
랭귀지의 꽃은 Java라고 생각합니다.이것저것 수 많은 언어를 거
랭귀지의 꽃은 Java라고 생각합니다.
이것저것 수 많은 언어를 거쳐왔지만, Java만큼 oo정신을 제대로 계승한 언어는 없다고 생각합니다. (참고로, 본인은 C++을 무척 싫어합니다)
Java로 제대로 설계되어 만들어진 어플리케이션은 하나의 생물체와도 같습니다.
아자! Java 만세!
oop가 모든 프로그램 개발에 가장 좋은 방식이라고 단정할 순 없습니다.
oop가 모든 프로그램 개발에 가장 좋은 방식이라고 단정할 순 없습니다. 경우에 따라 일부러 oop를 따르려고 하는 것이 코드를 거추장스럽게 하기도 하죠.
본문 쓴 사람입니다.맞습니다. 그렇기 때문에, 항상 2~3가지의
본문 쓴 사람입니다.
맞습니다. 그렇기 때문에, 항상 2~3가지의 랭귀지를 능숙하게 다루려 애를쓰고 있고, 틈틈히 취미삼아 새로운 랭귀지를 건드려 보고 있습니다.
툴박스에 있는 다양한 툴들이 각자의 사용용도가 있듯이(때론 중복되는 경우도 있죠. 그때는 취향의 문제) 랭귀지 역시 마찬가지라고 생각합니다.
제가 가장 짜증스럽게 생각하는 사람들(여기서도 몇몇 보이네요), 도구를 도구로써 보지 않고, 전지전능한 신처럼 추앙하는 무리들 입니다. :-)
SmallTalk나 Objective-C가 Java에 비해 OO 정신이
SmallTalk나 Objective-C가 Java에 비해 OO 정신이 더 잘 계승되어 있다고 생각합니다.
C++는 순수한 OO의 정신을 계승한 것이 아니라 자기 나름의 독자적인('독창적인'과 다른 단어임) 의미를 구축한 것으로 보는 편이 나을 것 같습니다. 적어도 C++ 자체의 개념으로서는 완전하지는 않지만 Java보다 일관성이 있습니다.
프로그래머가 첨 배우기에는 좋은 언어가 아닌듯......
프로그래머가 첨 배우기에는 좋은 언어가 아닌듯......
pure OOD 도 아니면서 100% true & pure OO 라고 말
pure OOD 도 아니면서 100% true & pure OO 라고 말하는 자바...
synchronize가 뭔지도 모르면서 주먹구구로 이름붙이는
엉터리 자바...
누가 Java를 100% true & pure OO라고 말했는지 궁금하군
누가 Java를 100% true & pure OO라고 말했는지 궁금하군요...
단지 현존하고 범용적으로 쓰는 언어중에서 어느정도 oo를 잘 구현한 언어라고
하지 않던가요 ?
님의 말씀처럼 실제로 100% true & pure OO를 지원하는 언어가 현존하는지 조차도 궁금하군요. 단지 이론적 OO에 근접해 가는 언어가 있는거 아닌가요 ?
그리고 님이 생각하시는 synchronized의 의미는 무엇입니까 ?
synchronize와 mutual exclusion을 섞어서 이름을 썼
synchronize와 mutual exclusion을 섞어서 이름을 썼단 말씀.
예전 자바 책들은 보면 1장의 장점소개에 보면:
자바는 100% OO 랭귀지라는 말이 있습죠.
아자~ 만세~저역시 자바를 겁나게 좋아합니다.그런데 저에겐 가
아자~ 만세~
저역시 자바를 겁나게 좋아합니다.
그런데 저에겐 가장 흥미롭다는 거랑
좋아하는거랑은 조금은 다른거 같아요.
-영희-
자바는..입출력 구조가 어떻게 된건지 참 흥미롭더군요.--
자바는..
입출력 구조가 어떻게 된건지 참 흥미롭더군요.
--> 프로그램은 다 짜놓고 입력 못받아서 완성 못시키고 있는 자바 초보가.
제가 잠시나마 사용해본 언어CC++JavaBasicLI
제가 잠시나마 사용해본 언어
C
C++
Java
Basic
LISP
그중에서 Java가 가장 좋은 흥미롭고 좋아요.
일단 편하구
내 생각을 자유로히 표현할 수 있어 좋아요.
전 오히려 C/C++로 생각을 자유롭게 표현해 왔습니다.아직도 J
전 오히려 C/C++로 생각을 자유롭게 표현해 왔습니다.
아직도 Java로는 할 수 없는 일이 상당히 많습니다. 가상머신에 종속적인 것이
니 그럴수 밖에 없겠죠..헐....
핀트가 좀 다른 것 같군요. C/C++의 '자유롭다'는 예를들면, 언어의
핀트가 좀 다른 것 같군요. C/C++의 '자유롭다'는 예를들면, 언어의 경계를 넘어서 시스템 영역을 다룰 수 있다는 뜻이고 자바의 '자유롭다'는 자바의 경계 안에서 문제영역을 자바의 객체와 구조로 자유롭게 표현할 수 있다는 뜻 아닌가요? :)
음.. C++ 의 계열이라고 할수있는uC++ (http://plg
음.. C++ 의 계열이라고 할수있는
uC++ (http://plg.uwaterloo.ca/~usystem/uC++.html) 이 저는 흥미로웠습니다..
concurrent 프로그래밍을 "제대로" 배울수 있었고...
co-routine, full coroutine서부터 mutex 클래스까지 지원을 했는데..
static data type checking도 가능했었던것 같았습니다...
concurrent 프로그래밍에 관심이 많으신 분들은 한번 해보셔도 좋겠군요.....
Monitoring Classification에 대한 정리를 명쾌하게 했
Monitoring Classification에 대한 정리를 명쾌하게 했던
Buhr교수가 만든거 아닌가요??
참 흥미로웠죠.......
해봤던것은 modula-3가 참 흥미로왔던것 같습니다...파스칼틱
해봤던것은 modula-3가 참 흥미로왔던것 같습니다...
파스칼틱하면서 oop를 구현하고...
이 언어를 배우면서 C++ 배울때
많은 도움이 된것 같습니다...
언어 자체는 좋았던것 같은데..
어쨌든 요즘은 거의 안쓰죠?
파스칼과 파스칼의 직계 자손인 Ada, modula, Oberon, Ob
파스칼과 파스칼의 직계 자손인 Ada, modula, Oberon, Object Pascal 중에서 전 Object Pascal이 제일 나아보이더군요.
Object Pascal은 델파이가 사용하는 바로 그 언어입니다. C++ 언어를 능가하죠.
오브젝트 파스칼은 순수 OOP 관점에서는 C++보다 좋다고도 할 수 있지
오브젝트 파스칼은 순수 OOP 관점에서는 C++보다 좋다고도 할 수 있지만,
(JAVA나 C#과 같이) Generic Programming을 지원하지 못하기 때문에
C++을 능가한다고는 볼 수 없다고 생각합니다.
전체적으로 JAVA보다는 우수한 언어라고 생각합니다.
여담1)
파스칼 소스를 C 소스로 바꾸는 p2c라는 프로그램이 있고,
Borland C++Builder가 Delphi와 동일한 오브젝트 파스칼 라이브러리인
VCL/CLX를 공유하는 것을 보아도 알수 있듯이,
(오브젝트) 파스칼을 공부해두면 C/C++을 공부하기가 편하죠.
여담2)
C# 언어는 델파이 개발자인 헤즐스버그가 만들어서 그런지,
구조가 C++이나 JAVA보다는 오브젝트 파스칼에 더 가깝지요.
OOP에 대해서 한마디 추가하겠습니다.Object Pascal는
OOP에 대해서 한마디 추가하겠습니다.
Object Pascal는 template을 지원하지 않아서 Generic programming도 할 수 없고, 게다가 OOP도 C++보다 더 강력하다고는 말할 수 없습니다. 다중 상속을 못하고, friend도 없고, 연산자 오버로딩도 없습니다. 물론 이외에 것은 대개 지원합니다. 오버라이딩이나 virtual, public, private, protectd etc...
그러나 C++보다 나은점이 있는데, 바로 constructor를 여러개 만들 수 있다는 것과 property를 지원한다는 것이지요.
이 property 때문에 Object Pascal이 사는겁니다.
이게 뭔가 하면,
다음처럼 써두면,
property AllowAllUp: Boolean read FAllowAllUp write SetAllowAllUp;
AllowAllUp은 Boolean으로 선언되고, 이것이 R값으로 사용될때는 FAllowAllUp 변수를 이용하고, 이것이 L값으로 사용될때는 R값이 SetAllowAllUp이라는 함수의 파라미터로 들어어가서 호출됩니다.
SomeBool := AllowAllUp;
AllowAllUp := SomeBool; // 단순히 값이 할당되는게 아니라 함수 Call이 발생함
요렇게 써먹을 수 있다라는거죠.
이것은 Component 위주의 프로그래밍할때 거의 완벽한 표현력을 가집니다.
델파이가 그렇죠. VCL(Visual Component Library)라는 이름이 달리 VCL이 아니죠.
C#이라면 property를 지원할 것 같은데, 어찌된 영문인지 지원하지 않는군요. 아무래도 묵시적으로 함수를 Call 한다라는게 정상적인 할당 연산자(:=)의 기능을 오바하는 것 같아서 그런가 봅니다.
적어도 다중 상속, 연산자 오버로딩은 필요없다고 생각이 듭니다.특히
적어도 다중 상속, 연산자 오버로딩은 필요없다고 생각이 듭니다.
특히 연산자 오버로딩은 왠지 지긋지긋한 느낌이 드는 군요. :-)
--
Lit.
동명이인이신 분이 계셔서 닉으로 합니다.
L.I.T
같은 파일에서 선언된 두 클래스 끼리는 private 선언된 것들을 접근
같은 파일에서 선언된 두 클래스 끼리는 private 선언된 것들을 접근할 수 있습니다. 마치 C++에서 friend 처럼...
이 방식이 더 유리할때도 있더군여
그건 C++도 마찬가지 아니던가요....
그건 C++도 마찬가지 아니던가요....
C++ Builder에서도 위 내용 지원 때문에 언어 확장이 있었습니다.
C++ Builder에서도 위 내용 지원 때문에 언어 확장이 있었습니다.
--
임택균.
임택균.
음... 근데 friend와 연산자오버로딩은 OOP와 상관이 없지 않나요
음... 근데 friend와 연산자오버로딩은 OOP와 상관이 없지 않나요...?
전 지금까지 friend를 OOP에선 백해무익으로 생각했었는데...
다중상속도 인터페이스같은걸로 거의 대체 할 수 있지 않겠나 싶네요...
제 생각에도 인터페이스 정도가 낫지,혼란스러운 다중상속은 별로 쓸모없
제 생각에도 인터페이스 정도가 낫지,
혼란스러운 다중상속은 별로 쓸모없는 것 같네요.
friend도 캡슐화를 깨는 요소일뿐.
지원합니다.
지원합니다.
어떻게?
어떻게?
저도 파이썬에 한표...아주 중독성 강한 넘이죠.단점은 이넘을
저도 파이썬에 한표...
아주 중독성 강한 넘이죠.
단점은 이넘을 쓰게되면 게을러져서 딴건 잘안쓰게 되는거..
파이선은 스크립트 언어의 탈을 쓴 lisp 이므로 무효..^^흥미
파이선은 스크립트 언어의 탈을 쓴 lisp 이므로 무효..^^
흥미도로 따지자면 scheme 이 재미있죠.
놀라운 call-continuation을 비롯해서...
토바르즈씨가 다른언어로 바꾼다기 전까진 c와 어셈이 최고라 생각됩니다 -
토바르즈씨가 다른언어로 바꾼다기 전까진 c와 어셈이 최고라 생각됩니다 -_-
lisp 에 한표!emacs를 쓰다보니 눈이가는군요.배울
lisp 에 한표!
emacs를 쓰다보니 눈이가는군요.
배울 생각은 전혀 없고요.
그냥 묻어서 쓰는 만큼 쭉 쓰려고 합니다.
함 해볼라 하다가, 에디터에 목메고 언어에 족쇄 차는 기분이래서 관뒀습니다.
요즘 리스피 쪽 뉴스그룹을 보니깐 자바하고 C++을 본보기로 머리 올릴라 신나게 두들기고 있던데...
자바는 안써서 모르겠고, c++은 자면서 작업하는 편이라..
참, 예전 콩코드기가 미주대륙에서 보이콧 당한 일이 떠오르는 군요.
성능, 기능, 능능.. 능..
능력은 저능이외의 다른 것도 요구하는 것 같군요.
페이지