khinsen
A more pragmatic answer: - If a Smalltalk IDE is what you are looking for, give it a try. Right now. You won't regret it. - If static analysis of large code bases is what you are looking for, explore the current level of support for your language (best done by asking a question on Discord), and if it's good enough, give it a try. Otherwise, check again later. - If you are interested in new approaches to software and knowledge management, give it a try, right now, but be prepared to invest some time before you "get it".
However, today's Pharo has made significant progress with interfacing to "foreign" stuff. The file system has become a first-class citizen of the environment. There is an FFI to work with C libraries. And of course support for network protocols. Source code management is based on Git. It's the GUI that remains in a world (window) of its own, but otherwise Pharo's system integration level is just a notch below languages such as Python or Ruby.
1) Much of it is outdated. 2) Much of it supposes significant prior knowledge of Pharo.
Once you start to become familiar with Pharo, neither is much of a problem. You see that the screenshot of Pharo 5 resembles what you see on Pharo 7 in spite of superficial differences. And you picked up enough of the jargon to be able to judge if some documentation is close to your level or not.
For someone who downloads Pharo 7, starts it up, and wonders "what now", most of the existing documentation is confusing. The MOOC was a much better starting point back in October, but with the new system browser in Pharo 7, it's seriously outdated as well.
The difference is in the focus rather than in the principles. Leibniz is a Turing-complete language, so you can use it for programming. But that's not what Leibniz is designed for. Term reduction is more a way of exploring the definitions in a context than a way to run code.
The point of Leibniz is to communicate information to other scientists, but in a notation that can be analyzed and verified by computer programs. An immediate advantage is coherence checking by the Leibniz system - you cannot use undefined quantities in an equation, for example.
You can use the database of equations (and rules) to "reduce" a term, which is also what computer algebra systems do. The difference is that in Leibniz, the database of equations of rules is always known and can be inspected, whereas in a computer algebra system it is carefully hidden from the user. Since it's this database where scientific knowledge is stored, this difference is quite important.
There has never been a central hub for scientific papers, but that has never been a problem. Why should it be a problem for software? We have technologies for making software citable with a DOI, so we could aim for the same network-of-references approach to discoverability that has worked reasonably well for journal articles.
As for impact metrics, they have done more harm than good for papers, so I don't see why should run to make the same mistake for software. Moreover, we could do much better. Given that we are slowly moving towards provenance tracking and workflow management for replicability, we could use that same provenance information for measuring software use in a way that is verifiable and hard to game. I have outlined such an approach in a recent paper (http://dx.doi.org/10.12688/f1000research.5773.3, see the Conclusions), which should be combined with transitive credit (http://openresearchsoftware.metajnl.com/articles/10.5334/jor...). Such a metric would measure how much a piece of software has contributed to published computational results.
My article argues that infrastructure tools (compilers, runtimes, ...) should ensure bitwise reproducibility, making it possible for a programmer to define a computational result exactly through a program's source code.
This does not mean that we can't have different algorithms. It doesn't even mean that no compiler could ever re-arrange operations for optimization. The latter could well be enabled through a compiler option.
All I am asking for is that infrastructure tools leave all these choices to the programmer.