# Discussion: Sage, Macaulay 2, and other Mathematical Software for Algebraic Geometry

## What are the absolutely critical features that you '''must''' have in the mathematical software you use for '''your''' research? (E.g., fast linear algebra, Groebner basis, sheaves?)

- modular forms
- fast R[x_1,...,x_n], also with fractional exponents
- GB's, flexible gradings, term orders
- rings (not necessarily commutative)
- modules (not just ideals, not just free)
- sheaves
- homological algebra (free resolutions)
- linear algebra with basis an arbitrary index set I
- fast sparse and dense linear algebra over finite fields

## What are the '''killer features''' that your dream mathematical software would have? (e.g., good mailing list, free, super fast algorithm for XXX, latex output?)

- (huge) polyhedral geometry (not just polymake, see more below)
- representation theory for finite groups (char 0 and modular, not just GAP, compare to what MAGMA can do -- and how fast it can do it)
- rings of representations (Grothendieck rings, etc.)
- local rings and global rings: localization, really working (not just M2)
- GB over all rings (e.g. field extensions), even noncommutative when possible
- full functoriality (e.g. preservation of GL_n-actions, functors, operations on functors, Yoneda product, tensor products)
- full homological algebra (spectral sequences, derived categories, etc.)
- parallelize everything
- deformation theory
- a "good clean" programming language (not just M2, e.g. Maple -- having to put things into rings before being able to use them is annoying; work easily with general expressions)
- super fast GB's and syzygies (speed and low memory usage)
- super fast and low memoryprimary decomposition (e.g. numerical) and integral closure
- sheaves, Chern classes, intersection theory on singular spaces
- algebraic topology on complex and real points on a variety
- etale cohomology
- usable resolution of singularities

#### Polytopes

- packages: lrs, cddlib, porta, 4ti2, polymake, coin/or
- optimal performance: important algorithms are reverse search (as in lrs, uses less memory), double description (track the duals, as in cdd and 4ti2)
- optimization: linear and integer programming (coin/or), semidefinite programming (any good software for this?)
- combinatorial aspects
- polymake puts a lot of these things together, but it does not build!

#### Linear algebra

- for a lot of the above issues, we need very very fast linear algebra over a huge range of fields/rings

## What are some things that disturb you about the direction in which Sage is going? (E.g., too big/ambitious? not open enough or too open? too many bugs? changing too quickly? referee process for code inclusion too onerous?)

developer \neq user => lameness (e.g. gfan, polyhedral code)

- language, "relations", US-ification, Sage taking over the universe of free math software is dangerous, respect for other math software
- bugginess in core algebraic geometry code: not up to snuff, cannot trust the answers now, need to first fix the basics before implementing new stuff
- third party code currently not refereed: how do we know it's reliable?
- credit: young people, publication record
- longterm survivability
- keeping large scale vision, consistency among various development efforts/packages: categories, generic algorithms and info, learn from Axiom and MuPAD-combinat
- more documentation: to improve consistency, explain options to user (there can be 25 different algorithms for doing one thing)
- track usage

## What are some things that disturb you about the direction in which Macaulay2 is going? (similar e.g. as above)

- all of the above
- very few developers (solution: M2 days, packages, journal)
- documentation and tutorial issues (improving)
- community building lacking
- uncertainty of long-term funding (only NSF, fickle)
- todo list needs to be upgraded (just text files in svn repository now)
- webpage needs to be upgraded
- narrow scope restricts number of developers (only commutative algebraists and algebraic geometers can contribute, and the intersection between this set and the set of software engineers/programmers is too small)
- narrow scope restricts users (e.g. lack of group theory functionality makes some algebraic geometers have to use a different system for their research)