GN⁺: Mathics 7.0 – Mathematica의 오픈소스 대안
(github.com/Mathics3)Mathics3/mathics-core 업데이트 요약
-
새로운 기능 및 개선 사항
- 내장 함수의 게으른 로딩을 지원하기 위한 작업이 진행됨.
- Python 코드와 스타일을 현대화하고, 타입 주석을 추가하며, 철자 오류를 제거함.
- SymPy 및 Python의 최신 버전 사용.
- 새로운 내장 함수 추가:
$MaxLengthIntStringConversion
,Elements
,ComplexExpand
,ConjugateTranspose
,LeviCivitaTensor
,RealAbs
,RealSign
,RealValuedNumberQ
.
-
문서화
- PDF 파일의 형식 문제 해결.
- 챕터 및 섹션 목차의 번호 간격 증가.
- 내장 정의 주변의 여백 공간 증가.
- 철자 오류 수정.
-
doctests
실행 및 LaTeX 문서 생성 코드를 개정하여 점진적 내장 업데이트 가능.
-
호환성
-
Plot
은 평가 중 메시지를 표시하지 않음. -
Range[]
는 이제 음수도 처리 가능. -
DirectedInfinity
및Indeterminate
에 대한 지원 개선. - Mathics-Django 인터페이스에서 오류 메시지 툴팁 표시.
-
$CharacterEncoding
을 세션 내에서 변경 가능.
-
-
내부 구조
-
eval_abs
및eval_sign
을Abs
및Sign
에서 추출하여mathics.eval.arithmetic
에 추가. - 문자열의 최대 자릿수는 7000으로 설정되며 환경 변수
MATHICS_MAX_STR_DIGITS
로 조정 가능. - 실수 비교는 이제
RealSign
의 내부 구현을 기반으로 함. - Python 3.11에서
$MaxLengthIntStringConversion
은 큰 정수와 문자열 간의 변환 최대 크기를 제어함.
-
-
버그 수정
-
Definitions
는pickle
과 호환됨. -
Quantity
표현식에 대한 지원 개선. -
Graphics
및Graphics3D
의 배경 옵션 작동. - 문자열을 포함한 표현식에 대한 수치 비교 문제 해결.
-
Switch[]
의 무한대 처리 문제 해결. -
Outer[]
의SparseArray
처리 문제 해결. -
ArrayQ[]
는SparseArray
를 감지함. -
BoxExpressionError
예외 처리 문제 해결. -
True
,False
,List[]
의 도함수 평가 문제 해결. -
Combinatorica
패키지 수정. -
Exit[]
작동 문제 해결. -
BaseForm
이$OutputForms
에 나열됨.
-
-
API 변경 사항
- 새로운 함수
import_and_load_builtins()
호출 필요. - 내장 모듈의 게으른 로딩 지원을 위해 필요함.
- 새로운 함수
-
패키지 업데이트
- Python 3.11 지원.
- Sympy 1.12 지원.
Hacker News 의견
-
이 프로젝트를 몇 년간 지켜보았으며, 오픈 소스 컴퓨터 대수 시스템에 관심 있는 사람들에게 다양한 성숙한 솔루션이 존재함
- GNU Octave, Maxima 같은 고전적인 것부터 SAGEmath, Symbolics.jl, sympy 같은 현대적인 것까지 다양함
- GiNaC 같은 상징적 라이브러리부터 SAGEmath 같은 "배터리 포함" IDE까지 폭넓은 범위를 가짐
- SAGEmath는 웹 노트북 인터페이스를 개척하여 오늘날 Jupyter를 가져옴
-
개인적으로 Mathematica의 LISPy 스타일을 좋아하지만, MMA의 강력함은 방대한 라이브러리에 있음
- 상징적 통합, 2D/3D 그래픽, 유한 요소 방법 등 기본 주제에 대한 업계 선도 솔루션뿐만 아니라 생물정보학 같은 특수 목적 도메인도 포함됨
- Mathics는 핵심을 잘 복제했지만 모든 라이브러리가 부족함
- Matlab과 numpy 복제본의 논리와 유사함
-
Wolfram Cloud는 개인 사용에 무료로 제공되며, Wolfram Engine은 명령줄을 통해 Mathematica를 무료로 사용할 수 있는 방법임
-
Mathics에 대한 간단한 소개는 여기에서 확인 가능함
-
Mathematica는 Raspberry Pi에서 무료로 사용할 수 있으며, 대부분의 대학은 사이트 라이선스를 보유하고 있음
- "Home & Hobby" 라이선스는 연간 $195 또는 영구 라이선스 $390로 비교적 저렴함
- 취미 라이선스 가격을 지불하는 것이 가치 있다고 생각하며, 수학 소프트웨어를 지원하는 것이 좋은 일이라고 생각함
-
(F)OSS 수학 소프트웨어는 여전히 중요한 역할을 함
- Mathematica는 포괄적이지만 고급 수학에서 몇 가지 중요한 단점이 있음
- GAP, M2, PARI/GP 같은 (F)OSS 소프트웨어는 Wolfram Language의 부족한 부분을 보완하는 데 중요한 역할을 함
-
Mathematica의 기능을 복제하려는 프로젝트에 큰 관심은 없지만, 이러한 프로젝트가 Wolfram Research에 기본 기능을 지속적으로 개선하도록 압박을 가함
-
소프트웨어 엔지니어들은 소프트웨어 비용을 지불하지 않으려는 경향이 있음
-
Mathematica의 불편한 점 중 하나는 모든 함수가 동일한 네임스페이스에 밀집되어 있으며, 다른 매개변수화 옵션으로 오버로딩이 없다는 것임