
Len/Mathematics: A computational algebra system in Smalltalk - mpweiher
https://github.com/len/Mathematics
======
Koshkin
An interesting "alternate universe", that Smalltalk/Squeak/Cuis is... Open,
highly discoverable. Which, in theory, makes it accessible for beginners and
those who are not programmers; for kids, who are usually very good at
discovering things. Thinking exclusively in terms of "objects" helps: objects
are things that (again, in theory) immediately avail themselves to our
perception via our senses as well as intuition. Yet, abstract thought is by no
means excluded or even hindered - an object's nature can be quite general and
abstract (not in a mathematical sense but from the object-oriented design
standpoint.)

Still, all this leaves me wondering, as someone who learned programming via
"traditional", i.e. compiled, languages - wondering whether being "born" into
this "alternate universe" could have some kind "crippling" effect on the
ability to live in a "normal" universe (say, as a professional programmer,
etc).

~~~
luck_fenovo
> Open, highly discoverable

I made a post under eggy's comment that kind of touched on this, but I don't
think Smalltalk (Pharo, at least) is particularly discoverable. It seems like
a highly bureaucratic language when it comes to making new classes or adding
methods to an existing class, and in many cases I poked around and never
really found what I was supposed to do. From what I've seen, Smalltalk is
highly _inspectable_ , but no more discoverable than any other language.

~~~
philippeback
Never used a less bureaucratic language. And am using it everyday for
business.

Shortest path between my ideas and a running implementation = Pharo.

Ok, took me a couple years to become decent enough for my needs but this is
one of the best decisions I ever made.

~~~
i_feel_great
>Shortest path between my ideas and a running implementation

This is the comparative advantage of Smalltalk

------
galaxyLogic
Also see [https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-
Dev](https://github.com/Cuis-Smalltalk/Cuis-Smalltalk-Dev) "... We feel we are
the real keepers of Smalltalk-80, and enablers of the Dynabook experience."

------
pkaye
I saw this mentioned in the Go newsletter the other day. A CAS written in
Golang. Thought it may interest others.
[https://github.com/corywalker/expreduce](https://github.com/corywalker/expreduce)

------
CJefferson
While I can't comment on this system (but I'm going to have a look at it), a
very mature and similar system is gap ( www.gap-system.org, github.com/gap-
system/gap ). It uses a custom python-ish language (it actually pre-dates
Python by quite a few years, and has some very interesting features in the
type system, hence why it uses a custom language)

------
eggy
I really like the Smalltalk environments, but I have never done anything but
play around in them. Don't misunderstand me, play is very important to
creativity, yet I have never done a project or lengthy program in Smalltalk. I
use Maxima on Android (running on ECL), and Mathematica. Jupyter notebooks are
also a great way to do explorations in say Julia or Python, but to this day,
Mathematica is my favorite mathematical playground. I know Stephen Wolfram
gets called out a lot on HN, but the product is great in my opinion aside from
the closed source mathematical routines. I'll try Len out, but it looks like
graphics from the 80s compared to the drag-and-drop, code, curated internet
resources of Mathematica. Watching Christopher Wolfram code in Mathematica for
some fills for the movie 'Arrival' was cool too [1]. In any case, I am glad to
see mathematics anywhere I can!

    
    
      [1] https://www.liveedu.tv/christopherwolfram/

~~~
luck_fenovo
> I really like the Smalltalk environments, but I have never done anything but
> play around in them

Every now and then (usually when I see a post on HN about Smalltalk or Pharo
in particular) I download a Pharo image and try to get started but never get
particularly far. Part of the issue is that the Smalltalk image is huge and
it's not obvious how to do anything nontrivial, and another part of the issue
is that when I go and seek some kind of introduction so I can learn my way
around I find nearly nothing.

The Pharo project has a book that's supposed to be a good introduction, but it
seems to skip a lot of info and has outdated screenshots and instructions so
sometimes I can't find out what I'm supposed to click on. So I give up until
the next time I try.

It's a shame because everything I read about Smalltalk is so appealing, but
the actual onboarding experience is too rough for me to actually go through.

~~~
Samis2001
I'm a fan of Smalltalk, particularly the small Cuis variety. Anyway, you may
be interested to know that Pharo either has or had a MOOC about learning and
building things with the language. Additionally, there is an updated book I
believe, at
[https://github.com/SquareBracketAssociates/UpdatedPharoByExa...](https://github.com/SquareBracketAssociates/UpdatedPharoByExample).
Some Cuis-oriented tutorials or documentation can be found at
[https://github.com/Cuis-Smalltalk-Learning/Learning-
Cuis](https://github.com/Cuis-Smalltalk-Learning/Learning-Cuis).

Happy Smalltalking! (Just don't do 'true become: false' :) )

------
svc
Very cool.

Make me think of PolyMath
([https://github.com/PolyMathOrg/PolyMath](https://github.com/PolyMathOrg/PolyMath))

Sven

------
PuercoPop
Has anyone tried installing it? Earlier today on a recent checkout of Cuis-
smalltalk-dev and encountered an error.

~~~
blihp
If you're having problems, the best bet is to post something to the mailing
list ([http://cuis-smalltalk.org/mailman/listinfo/cuis-dev_cuis-
sma...](http://cuis-smalltalk.org/mailman/listinfo/cuis-dev_cuis-
smalltalk.org)) with some details as to the trouble and someone should be able
help get it sorted out.

