컴퓨터 언어

  • #102433
    똘똘이 173.***.250.32 2636

    포트란 세대인 엔지니어입니다. 갑자기 최근에 프로그래밍을 해야 할 일이 생겼습니다.

    우선 공학계산하기 편하면서 그래픽 라이브러리가 좋은 언어로 무엇을 추천하십니까?

    그리고 그냥 궁금해서 그러는데 C, C++, C#의 차이는 무엇입니까?

    옛날 이야기 해봐야 그렇지만 예전에는 포트란 아니면 코볼이었는데 왜 자바니 델파이니 하는 언어들이 계속 생겨났습니까?

    • 배우는이 72.***.164.85

      저는 포트란도 배우고 군대갔다오니 C로 넘어가 있어서 소위말하는 전환기 세대입니다. 공학용과 그래픽을 만족하시려면 최근의 C#으로 하시는게 장래를 위해서도
      좋을것으로 사료 됩니다.
      최초에 C가 있었구요 MS에서 C++를 만들었습니다. 여러가지 library를 추가해서
      쉽게 윈도우즈용 프로그램이 가능하게끔 했었죠. C#은 최근에 나온것으로 나름 완벽한 OOP (Object Oriented Program)이 가능합니다.

      C#은 Java의 영향을 받은 언어입니다. Java가 말그대로 platform independent하게 동작하고 OOP를 훨씬 쉽게 C++보다 구현할 수 있게 되자 MS에서는 .NET platform이라는 것과 함께 C#을 만들게 되었고 현재 MS쪽 언어의 핵심입니다.

      델파이는 볼랜드사에서 pascal 언어를 계승(?)하는 차원에서 만들었던 것으로
      기억하는데 현재 사양언어로 알고 있습니다.

      혹시 더 아시는 분들이 계시면 추가로 답변해주세요.

      40이 갓 넘었지만 아직도 가끔 프로그래밍하는 사람이 아는데로 설명드렸습니다.
      최근에는 ABAP이라고 SAP에서 쓰는거 배우고 있습니다.ㅎㅎ
      코볼 닮은게 신기하고 재미있네요. ㅎㅎㅎ

    • gb 69.***.196.26

      저라면 Java 를 배울것 같습니다. 저도 공학/과학용으로 Fortran 쓰다가 C 쓰다가 C++ 쓰고 있습니다만 Java 는 platform-independent 개념으로 호환성이 아주 우수합니다. (개인적으로 M$ 가 미는것은 별로 안좋아합니다.)

    • 오마이 24.***.147.135

      전 java는 미국학교에서 보통, 교육용으로 많이 써요. oop 개념을 아는데 도움이 많이 되는 프로그램인데요. 라이브러리 서포트가 MS의 c#보다는 늘 뒤쳐져서, 프로그램하다보면, 중간에 필요한 라이브러리를 못 찾거나, 길게 써내려가야하는 번거로움이 있습니다. 개인적으로 c#의 .Net platform을 MS에서 꾸준히 업그래이드하고, 서포트 하기때문에, 프로그램하는데 상당히 편해요. java하면, c# 한달이면 떡친다라고나 할까…ㅎㅎ

    • 똘똘이 63.***.175.40

      답변 감사합니다.
      제가 듣고 싶었던 답변은, vb로 해라 였습니다만, ^_^
      C# 시작하기 좋은 교재 추천 바랍니다.
      오래전 독학한다고 하다가 포인터에서 막혀서 그대로 포기했던 기억이 납니다.

    • 배우는이 71.***.87.28

      ㅎㅎ. VB.NET 도 있습니다만 예전의 VB가 아닙니다. 거의 C#의 형태를 가지고 있지요. 그래서 C#이라고 말씀드린겁니다. 저도 VB로 여러개 프로젝트를 해봤었습니다.
      교재는 여러가지가 있지만 뭐가 낫다 이런건 없습니다. 서점에 가셔서 눈에 잘 들어오는 것으로 시작하세요.

      gb님,
      MS가 미는거 별로 안좋지만.. 먹고 살기에는 괜찮습니다. 대중적이니까 ^^

    • 소리네 72.***.80.104

      “최초에 C가 있었구요 MS에서 C++를 만들었습니다.”
      –>
      C와 C++ 둘다 Bell Labs에서 만들어졌습니다.

    • Matlab 72.***.187.90

      공학 계산하기 편하면서 그래픽 라이브러리가 쉬운 Matlab 은 어떤지요?

    • Block 12.***.134.3

      원하시는게 general programming이 아니고 algorithm 개발용이라면 Matlab만한게 없습니다. 공짜가 아니라 좀 비싼게 흠입니다만…

      공학용이라는 정확한 의미가 좀 난해합니다만…
      General한 programming과 PC와 linux에서 같이 사용하기를 원한다면 Python이라는 script 언어를 강력히(?) 권합니다. GUI를 원하시면 Tcl/Tk, Perl/Tk혹은 Python/Tk도 괜찮은 조합입니다.

    • ISP 12.***.168.229

      제가 요즘 맷랩 쓰는데, 용도가 어떻게 되는지 모르겠지만,
      맷랩은 어레이가 조금만 커도 답이 안나옵니다.

      물론 제가 주로 쓰는 어레이가 크긴 합니다만. –;

      그냥 C++로 해버릴껄 하는 후회가 듭니다.

    • Block 12.***.134.3

      ISP님 speed 혹은 capacity의 문제는 matlab의 한계이기도 하지만 극복할수있는 방법은 여러가지 방법으로 려있습니다.
      일반 공학 계산이라면 matlab에서 C++로 만들어진 lib를 사용하시면됩니다. 반도체를 만들기 위한 알고리즘의 simulation이라면 반도체 전용 Mixed simulator를 link해서 사용할수도 있습니다. (Cadence AMS)

      h ttp://www.icaen.uiowa.edu/~dip/lecture/C++_with_Matlab.pdf

    • Block 12.***.134.3

      프로그래밍 랭귀지를 정한다는건 우리가 사용할 도구를 선택하는것과 같습니다.
      예를들어 선풍기를 산다는 이유는 바람으로 시원해지기 위함입니다. 따라서 선풍긴 안전하고 큰날개를 가지고 있고 속도 조절이 가능하며 바람은 앞으로 나오게 돼있습니다. 하지만 환풍기를 원하는데 선풍기를 쓰신다면 원하는 효율의 한 20%를 선풍기가 충족해 주겠죠, 만약 제초기를 원하시는데 그 용도로 선풍기를 사용하신다면 한 1~2% 효율을 낼수는 있을겁니다. 거의 덤앤더버 수준이죠.

      이렇듯 프로그램 랭귀지는 그 목적하는 용도가 뭐냐에 따라 적합한 언어를 사용하시면 개발속도나 output performance가 좋아지는것이지요. 사용할 랭귀지를 결정하는 요인은 이런 목적 이외에도 작업환경, 팀(회사) 환경, 버짓, 향후 확장성등을 고려해서 프로그램 개발 환경을 결정해야합니다. 이런 이유로 참 많은 종류의 프로그램 랭귀지가 있는것입니다.

      이런 선택의 기준은 업무상 효율을 생각했을 때이고 재미로 해보시는 경우는 어떤 랭귀지를 사용해보건 killing time하기에는 제격일 겁니다.

    • ISP 38.***.181.5

      블락님,

      맷랩 측에 문의 해본 결과 64 bit 사용 하라 하더군요.
      제가 하는 계산중에 어레이의 covariance를 구해야 하는데,

      result array의 memory size 가 32 bit 에서 허용하는 싸이즈와 비슷비슷하거나 조금 넘어 가더군요.

      그런데, covariance를 계산 하려면, result memory size 도 중요하지만, 중간에 프로세싱하는데 있어서 메모리도 필요 하기 때문에 out of memory error 가 나옵니다.

      그래서 요즘 이거 다시 바꿔야 하는 생각에 머리가 조금 아파집니다…