What are some important differences between the popular versions of OOP (e.g. Java, Python) vs. the purist's versions of OOP (e.g. Smalltalk)?

This page summarizes the projects mentioned and recommended in the original post on /r/ProgrammingLanguages

SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • squeak.org

    Squeak/Smalltalk Website

    AFAIK the major SmallTalk distributions are https://squeak.org/ and https://pharo.org/. I've heard that Pharo is more complex and "practical", while Squeak is more educational and beginner-friendly. But both stick to their roots with "everything is an object or method", extreme reflection, and integrated runtime/IDE.

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
  • pharo

    Pharo is a dynamic reflective pure object-oriented language supporting live programming inspired by Smalltalk.

    AFAIK the major SmallTalk distributions are https://squeak.org/ and https://pharo.org/. I've heard that Pharo is more complex and "practical", while Squeak is more educational and beginner-friendly. But both stick to their roots with "everything is an object or method", extreme reflection, and integrated runtime/IDE.

  • Smalltalk72

    Smalltalk-72 interpreter sources (Nova assembly) and ALLDEFS.

    I recommend reading through the source files (called ALLDEFS) for various Smalltalk versions, just to get an understanding of how the system is pulling itself up by its bootstraps. Smalltalk-72 is supposedly most in line with Alan Kay's ideals, and its bootstrap can be found here. I also recommend setting up a VM (such as Contralto) to try out some older, simpler versions. Lastly, the Little Smalltalk is a complete system in a few thousand lines of C, making it very understandable. There are various versions, and I don't have a link on hand, but I believe LST4 is the most understandable and easy to compile on Linux.

  • xvm

    Ecstasy and XVM

    Ecstasy uses message passing automatically behind the scenes for asynchronous calls, but the message passing isn't visible at the language level (i.e. there is no "message object" or something like that visible). Basically, all Ecstasy code is executing on a fiber inside a service, and services are all running concurrently, so from any service realm to any service realm, the communication is by message.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • _M2dir: Treating mails as files without going crazy

    2 projects | news.ycombinator.com | 23 May 2024
  • Why don't schools teach debugging, or, more fundamentally, fundamentals?

    1 project | news.ycombinator.com | 17 Jan 2024
  • Ask HN: Alternatives to organizing code in files and folders?

    3 projects | news.ycombinator.com | 12 Apr 2023
  • Remaining Relevant Over Four Decades

    1 project | /r/programming | 6 Apr 2023
  • The one about Lisp interactivity

    2 projects | news.ycombinator.com | 11 Nov 2022

Did you konow that Java is
the 8th most popular programming language
based on number of metions?