GNU Octave가 JupyterLite와 만남: 언제 어디서나 컴퓨팅 가능함

1 week ago 7

Hacker News 의견
  • 혹시 Octave에 대해 처음 듣는 사람이 있다면, Octave는 상용 소프트웨어인 MATLAB의 오픈소스 거의-복제품임 위키백과에서 자세히 보기
    • "거의 복제"라는 표현은 좀 과장임, 오픈소스 소프트웨어를 좋아하지만, 좀 더 진보된 작업을 하려면 Octave가 아직 MATLAB을 완벽하게 따라잡지 못하는 느낌임, Octave와 MATLAB의 차이점 참고
    • Andrew Ng 교수의 초기 머신러닝 MOOC에서 Octave를 사용했기 때문에 실습 자료와 예제를 찾는다면 유용함, 유튜브 플레이리스트
    • 15년 전 학부 때 수치해석 과목에서 MATLAB 대신 Octave를 사용했는데 그 당시 우리가 했던 내용에서는 언어 호환성이 완전하게 잘 맞았음
    • MATLAB 사용자는 아니지만, 언어만 복제한다고 MATLAB이 다 되는 것이 아니라는 걸 느낌, MATLAB은 GUI 기반 소프트웨어 스위트이고, 코딩 없이도 사용할 수 있는 앱들이 많이 포함됨, 공식 벤더 지원까지 제공함, 오픈소스가 예전엔 이상하거나 신뢰 못할 것 같다는 인식이 있었지만 최근 이 분야도 빠르게 변하고 있음
    • Scilab도 MATLAB을 모방한 또 다른 소프트웨어지만, Octave보다는 호환성보다는 기능적인 측면에 더 초점을 맞춤
  • JupyterLite에 대해 처음 듣는 사람을 위해 설명하자면, 이건 기존 Jupyter Notebook/Lab과 같지만, 완전히 브라우저에서만 동작함, 서버나 백엔드 필요 없이 모든 것이 클라이언트 쪽에서 실행됨
    • Python이 Web Assembly 위에서 동작하면 속도가 많이 느릴 것 같음
  • 동일한 기술(즉 "xeus-stack" xeus-stack 링크)을 통해 jupyterlite에서 실행할 수 있는 언어/커널이 훨씬 다양함, 예를 들어 c++, python, R, lua, javascript 등 지원함, 체험해보려면 Try Jupyter Lab 또는 JupyterLite 문서 참고, 자신만의 배포를 하고 싶다면 xeus-lite-demo 템플릿 repo를 활용 가능함
  • Octave는 오랜 시간 수많은 학생들에게 사랑받으며 학부생들에게 필수 대안 역할을 해옴, GNU가 인류 발전에 기여한 좋은 예시임, 수치 해석용으로 매우 추천되고, GNU-Fortran이나 GNU-C로 확장도 쉬움, 여러 확장 기능이 같이 제공됨, 숫자 계산에 특화된 DSL임, 비슷하게 Scilab도 추천할 만한 패키지지만 확장성은 적음
  • 항상 느끼는 건, 저자가 언급하는 다양한 이슈 속에서 진정한 매력이 묻혀 있다는 점임, 다이어그램이 좀 더 앞단에 오고, 다음 릴리즈 기능과 그 제작 과정 이슈가 더 부각되면 더 좋겠다는 생각임
  • GNU Octave를 다른 언어로 트랜스파일하는 걸 늘 원했음, Octave는 이미 C 라이브러리로 임베딩이 가능했고, C/C++에서 Octave 임베딩 방법공식 독립 실행 프로그램 문서 참고 가능함. GPU 가속을 지원하는 OpenCL 패키지도 있는데, OpenCL 패키지 참고, 아쉽게도 GPU를 암묵적으로 활용하는 방식이 아니라 명시적인 GPU 타입과 함수 제공 방식임, oclArray 참조 의미는 기존 Octave 코드를 그대로 GPU에서 돌릴 수 있는 구조가 아니라는 점임. 브라우저에서도 OpenCL 기반 GPU 가속이 구현된다면 멋질 텐데 아직 WebCL은 구현 단계에 미치지 못했고 WebCL 관련 문서, Khronos WebCL 참고, 현재는 WebCL이 WebGPU로 대체되는 추세임, WebCL 크롬 활용법, gpuweb 표준화 안내, 크롬 웹 API 문서 참고함.
    • 느끼는 점을 굳이 말하자면, 업계가 업계가 명백한 오픈솔루션 대신 상용 방식을 고집하는 건 이윤 때문이라는 게 자명함, 블루 LED 등 수많은 혁신 역사만 봐도 알 수 있음. AI 덕분에 개발자 부담이 좀 줄어들면 오히려 이런 명확한 길을 다시 탐구할 수도 있지 않을까 기대함, 사실 기술 혁신마다 개발자에게 더 많은 부담과 더 높은 학습곡선을 요구하는데, 그럼에도 보상(초임)은 실질적으로 제자리임, AI로 페어 프로그래밍이 확산되면 결과적으로 코드 품질이 떨어질 수도 있고 복잡한 코드베이스가 양산될까 우려됨.
    • 그래서 대안이 되는 방법에 끌림, 예를 들어 Python에서 장황하게 쓰는 추상화를 Octave에서는 한 줄로 표현 가능함, 더 간결하게 하려면 LISP같은 함수형 어셈블리 언어로 가야 하는데, 그건 또 배열 언어의 문법적 편의를 포기하는 셈임.
    • 핵심은 J.A.R.V.I.S./스타트렉 스타일 AI로 바로 이어지는 길이 Octave/MATLAB 같은 DSL과 1980년대에 쓰던 Spreadsheets, HyperCard, Microsoft Access, FileMaker 등 비즈니스 논리 도구라는 생각임, GPU 가속되는 오픈 Octave 같은 도구가 등장하면 소프트웨어 작성 효율이 증가하고, AI 발전에도 직접적으로 기여하지 않을까 상상함

Read Entire Article