…rces but in my opinion Pharo is very difficult to learn.I already know intermediate Python and Java but the last time I tried experimenting with Pharo it felt like a very confusing syntax and IDE.
That’s because you were still thinking like a Python or Java developer. You were too used to these languages. Pharo (Smalltalk) requires you to think differently. It’s a completely different — and much more effective — way to develop software.
Pharo’s syntax is based on one key idea: everything is done by message passing. There is nothing else to the language. Even control structures like if statements and loops are done through messages.
Pharo’s model of object-oriented programming is based on Alan Kay’s idea of virtual networks of virtual computers interacting with each other through messages. It has nothing to do with Abstract Data Types, which are the foundation for C++, Java, and C#. Even Python strays from Alan Kay’s conception.
(Incidentally, Smalltalk directly inspired Erlang’s design, which is heavily based on this idea.)
Pharo’s IDE and runtime are predicated on live coding. Instead of managing code as files and folders of source code, the IDE organizes code as objects, protocols, and methods. It’s a completely different approach.
Pharo’s IDE is extremely simple and elegant compared to Visual Studio, Eclipse, and IntelliJ. Like the language itself, the IDE was originally designed for children to use!
The problem is that you have to unlearn many of the things you learned from other languages. I did that ten years ago and I’ve never looked back. I never had so much fun when I was programming in FORTRAN, C, C++, C#, Objective-C, Java, and Python.