Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Introduction #44

Merged
merged 26 commits into from May 12, 2016
Merged
Changes from 2 commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
9e85940
First draft of the introduction
asmeurer Apr 13, 2016
a5623a3
Some changes
asmeurer Apr 13, 2016
1301efe
Typo fix
asmeurer Apr 15, 2016
9a9e099
Mention which BSD license
asmeurer Apr 15, 2016
267c156
Add detailed examples of SymPy use in SfePy
rc Apr 27, 2016
bfe5a9f
Add references to SfePy section
rc Apr 28, 2016
62d5b2a
We -> It
asmeurer May 5, 2016
53f4e0b
Remove subjective bit on defining variables from introduction
asmeurer May 5, 2016
3778448
Make the language design section less subjective
asmeurer May 5, 2016
41a6772
Merge branch 'master' into introduction
asmeurer May 5, 2016
ef52fc9
Add some stuff on the bazaar community model
asmeurer May 5, 2016
6e84827
Check off intro in TODO
asmeurer May 5, 2016
aa0ed68
Merge branch 'master' into introduction
asmeurer May 11, 2016
9cb5a55
Some cleanups to the intro
asmeurer May 11, 2016
e1f6dc8
Add a conclusion to the introduction
asmeurer May 11, 2016
ebabe40
List the big projects that use SymPy in the introduction
asmeurer May 11, 2016
0d142e2
Merge remote-tracking branch 'rc/sfepy-details' into introduction
asmeurer May 11, 2016
62c9dd2
Add citations for SfePy and yt
asmeurer May 11, 2016
7efd05d
Move the "other projects that use SymPy" section to the supplement
asmeurer May 11, 2016
66dfaa6
Should be a subsection
asmeurer May 11, 2016
9bc3aff
Move or delete some domain specific stuff
asmeurer May 11, 2016
3afd859
Check off some TODO items
asmeurer May 11, 2016
0d095f4
Move the vector module section under mechanics
asmeurer May 11, 2016
edf7704
Fix a long line
asmeurer May 11, 2016
95b71b4
Check off todos
asmeurer May 11, 2016
a92bfaa
Make some TODOs comments
asmeurer May 11, 2016
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
38 changes: 38 additions & 0 deletions introduction.tex
@@ -1,2 +1,40 @@
SymPy is an full featured computer algebra system (CAS) written in the Python
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

an ===> a

programming language. It is open source, licensed under the extremely
permissive BSD license, which allows anyone to reuse SymPy or its source code,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

which of the various BSD licenses?

even for commercial purposes. SymPy was started by Ond\v{r}ej \v{C}ert\'{\i}k
in 2005, and it has since grown into a large open source project, with over
500 contributors.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This sentence sounds more like an advertisement. I would get rid of it or move it later in the paper. This isn't supposed to be a paper on the community, per se. And @certik is an author of the paper so it is weird to mention his name here.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe Ondrej's name shouldn't be mentioned, but I did want to highlight the community.

% citation?

SymPy is written entirely in the Python programming language,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

mention SymEngine?

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think that is necessary info in the intro right up front.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree. We don't mention SymEngine anywhere in the paper currently. It might be worth mentioning in the "conclusion and future work" section. SymEngine ought to have its own paper (if Ondrej wants to do that).

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, in fact we already started to work on a paper with @thilinarmtb and @isuruf. After the sympy paper is submitted, we will start a paper on symengine, and we will follow the exact same workflow (open on github, authorship criteria, etc.). Right now I want to concentrate on getting the sympy paper out.

% cite Python?
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yep, citation needed.

which is also the language used to interact with it, both programmatically and
interactively. Python is a popular dynamically typed programming language that
has a focus on ease of use and readability. Unlike many CASs, SymPy does not
invent its own programming language. We rather take the approach that Python
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We ===> It

is already a well-designed programming language, built by expert language
designers, something which the majority of SymPy developers are not. Python is
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe avoid subjective judgments.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, I'd kill the last couple of "clauses". Rather I'd emphasize that this is about code reuse and reduction of effort and eases the learning curve for new developers. The value one places on language design is subjective.

also a very popular language for scientific computing and data science, with a
wide range of useful libraries.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mention the potentiality of community growth by using Python, given that Python is on the top 10 programming languages in most rankings.

% Cite numpy, scipy, pandas
% We could also cite
% https://stackoverflow.com/research/developer-survey-2016#most-popular-technologies-per-occupation
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Citations definitely needed.


SymPy is designed with a strong focus that it be usable as a library. This
means that extensibility is important in its API design. This is also one of
the reasons SymPy makes no attempt to extend the Python language itself. The
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we have isympy and ipython...

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the dynamic portions don't need to be discussed here. Maybe mentioned as part of the tools sections.

goal is for users of SymPy to be able to import SymPy alongside other Python
libraries in their workflow, whether that is an interactive workflow or
programmatic use as part of a larger library. This does have some downsides;
for instance, unlike many popular CASs, all variables in SymPy must be defined
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

acronym plural, CAS's or CASs?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From what I can tell, the consensus is that an apostrophe is wrong, because it's not possessive. See https://english.stackexchange.com/questions/503/what-is-the-correct-way-to-pluralize-an-acronym.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, CASs is the correct plural here. 👍

before they are used (Python does not provide a mechanism to automatically
declare variables). This is a minor inconvenience for interactive use, but we
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Again, I think we should refrain from making subjective statements. This isn't a down side per se. It is a design decision. By analogy, declaring variables in most type safe languages is just part of the definition of these languages. Different people feel differently about it, but their feeling are largely irrelevant to a discussion of what the language definition is.

consider it to be good practice for any reproducible work, and it aligns with
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Misspellings of variable names in Mathematica are a common cause of headache, as Mathematica accepts them as valid, I wouldn't consider this an inconvenience.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I also don't think this belongs in the introduction. It seems like more of a technical detail.

the philosophy of Python, ``explicit is better than implicit.''
% cite https://www.python.org/dev/peps/pep-0020/

SymPy does not have a built in graphical user interface (GUI), however, when
used in the Jupyter Notebook
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Move the isympy discussion here.

% citation
SymPy expressions will pretty print using MathJax.
% citation