I'm currently using Maple for the first time in a course at Drexel on Cryptography and Number Theory. I figured that I would document my experience in a blog post because I really wish I remembered my first impressions of languages. I remember only vague opinions of learning new languages for classes. I really would like to compare my first impression vs using it for 9 weeks.
I took a bit of a spring break and it took me a few weeks to get back to writing this post, but I'm finally here.
We were given our first lab which was some basic math functions and a snippet of code that was to make a list of the prime numbers that are either 128 or 256 bits in length. This forced us to use some math libraries, loops and conditionals. A fairly basic intro lab. It took me about 20 minutes of learning Maple to get it right.
I don't know how I feel about the typesetting in Maple. It's a rich text editor like interface which is offputting to write code next to. I do not like how the code environment isn't monospaced. The italics are poorly done and the spaces are too small for me to tell if I used them or not. Hopefully there is a way to change this setting somewhere. There also was no tabbing which further annoyed me.
The typesetting makes it feel LaTeXy only because I can put formatted text and math next to each other. I do like the ability to have a nicely formatted document with interactive code and math next to it. I always fear making a minor mathematical error when I'm typing up LaTeX documents.
As for programming, I tend to stick to vi
and the command line for compiling,
so using an IDE is strange to me. The ability to click on an error message and
have the documentation for said error come up is nice. One thing that will take
time is learning all the shortcuts for typing mathematical functions. I find
myself using the Palettes
a lot and clicking on the function I need. This
wastes a lot of time where I have to take my hands away from the keyboard and
interrupt my train of thought to find the function I need. The Palette does
save time in scrummaging through documentation for functions. This eased the
learning curve a lot.
I've been writing a lot of C code recently for Advent of Code (I'll write a post
about this later) so the built in functions are wonderfully simple and greatly
appreciated. The list functions were so simple, but my opinion may be skewed
given I've been using C arrays. I used the isprime
and nextprime
in the
NumberTheory Package
and writing code was so simple and required very little thought. Once again, my
opinions may be skewed because I've been handwriting C code recently.
The documentation for Maple isn't too bad. Most of what I needed was short and sweet and easy to understand.
I'll give Maple a solid 3/5 stars right now. I enjoyed using it today, but I don't yet see a use for it in my daily life. I feel like I can accomplish the math with Python and the typesetting with LaTeX.
I have completed a full 10 weeks of using Maple for my Number Theory and Cryptography. I wanted to first write down my final opinions on Maple without seeing my first impressions, then I'll compare and contrast.
I'll start with the things I ended up liking about Maple. First, the eyedropper tool was very good! However, the color palette never saved the purple I used to answer my labs, so I had to use the eyedropper a lot. It was very accurate and had a little zoom feature which I appreciated. I also liked the ability to turn the document into a PDF with sections, typesetting and code all in one place. Finally, the NumberTheory package was really useful.
Now that I've explained the three whole things I liked about Maple, I don't feel bad about explaining everything I didn't like. Overall, the Maple IDE was really horrible to use. It was hard to control the switches between math and text modes, you could not scroll in code edit regions, the placement of code, text, and math areas was fickle. I spent more time formatting my assignment and fighting Maple over what setup I wanted where. Especially with the use of sections, it was very hard to switch between modes in sections without leaving the section. The TA said the professor had set up the document to do that, but I was unable to find anyway of undoing it. A further annoyance on this was that the color purple I used to answer questions was rarely saved on my color palette, so lots of scrolling to use the eye dropper was annoying. While I understand the importance of differentiating the different typesettings, Maple was really inconsistent in how it would interact with the same format in different documents. I found Maple to be super annoying regarding the overall document setup. While it's ability to produce a pretty PDF was nice, not worth the hassle. I could accomplish the same PDF with much less hassle in LaTeX.
The largest issue I had with Maple's code edit region was not only the lack of scrolling with the document, but also the inability to tell me what line my errors were on. For some errors, a link to documentation for the error came up and I was able to use the documentation and error message to find my error, but for many, I was greeted with a friendly "This documentation page does not exist" message. I hope we were just using an older deprecated version of Maple, but I still think those pages should still exist.
Final overall opinion on Maple is that while it was useful for the programming and learning mathematical theory, it was too stressful to actually want to use ever again. I could accomplish everything I did in Maple with another language to program in and LaTeX to typeset. Final score of 1/5 stars. I appeciated it for the time I used it but I would not willingly use it again.
My opinions on Maple didn't change much in nine weeks it appears. I didn't love or hate Maple very strongly when I started using it. By the end I definitely didn't like it. There isn't much to compare of contrast here. I went in with an open mind and no strong opinions. I do find it funny that I liked the clickable error messages until they completely stopped working by the end. This was a fun blogpost to do and hopefully I'll do more like these.