10
AleCx04
3y

I continue to internally read and study about Smalltalk in an effort to see where we might have FUCKED UP and went backwards in terms of software engineering since I do not believe that complex source code based languages are the solution.

So I have Pharo. Nothin to complex really, everything is an object, yet, you do have room for building DSL's inside of it over a simple object model with no issue, the system browser can be opened across multiple screens (morph windows inside of a smalltalk system) for which you can edit you code in composable blocks with no issues. Blocks being a particular part of the language (think Ruby in more modern features) give ample room for functional programming. Thus far we have FP and OO (the original mind you) styles out in the open for development.

Your main code can be executed and instantly ALTER the live environment of a program as it is running, if what you are trying to do is stupid it won't affect the live instance, live programming is ahead of its time, and impressive, considering how old Smalltalk is. GUI applications can be given headless (this is also old in terms of how this shit was first distributed) So I can go ahead and package the virtual machine with the entire application into a folder, and distribute it agains't an organization "but why!!!! that package is 80+ mbs!") yeah cuz it carries the entire virtual machine, but go ahead and give it to the Mac user, or the Linux user, it will run, natively once it is clicked.

Server side applications run in similar fashion to php, in terms of lifecycles of request and how session storage is handled, this to me is interesting, no additional runtimes, drop it on a server, configure it properly and off you go, but this is common on other languages so really not that much of a point.

BUT if over a network a user is using your application and you change it and send that change over the network then the the change is damn near instant and fault tolerant due to the nature of the language.

Honestly, I don't know what went wrong or why we are not bringing this shit to the masses, the language was built for fucking kids, it was the first "y'all too stupid to get it, so here is simple" engine and we still said "nah fuck it, unlimited file system based programs, horrible build engines and {}; all over the place"

I am now writing a large budget managing application in Pharo Smalltalk which I want to go ahead and put to test soon at my institution. I do not have any issues thus far, other than my documentation help is literally "read the source code of the package system" which is easy as shit since it is already included inside. My scripts are small, my class hierarchies cover on themselves AND testing is part of the system. I honestly see no faults other than "well....fuck you I like opening vim and editing 300000000 files"

And honestly that is fine, my questions are: why is a paradigm that fits procedural, functional and OBVIOUSLY OO while including an all encompassing IDE NOT more famous, SELECTION is fine and other languages are a better fit, but why is such environment not more famous?

Comments
  • 1
    because we live in a world where quality != success
  • 1
    I do not know anything about smalltalk and stuff, just curious how it compares to other languages with regards to performance and frameworks(basic libraries). 80 MB environment is quite small. But sounds interesting and think I'll give it a try
  • 2
    Smalltalk did a lot of shit right from what little I've looked at. My question goes to how you end up dealing with unit testing (since I'm a big TDD fan). I know sUnit (Smalltalk Unit Testing Framework) was the grand-daddy that JUnit & all the others descended from, but is it still used as part of the development culture? Well supported? Part of a build process? Asking for a friend:)
  • 1
    @foox Pharo, Cuis, Squeak. These are the current most famous implementatioms of the language. I am particularly fond of Pharo and have found packages for things ranging from visualization, website devel, db interaction etc. Performance is a point that I wouldn't know what to tell ya, I have not tested it myself but it doesn't feel less performant than most dynamic languages.

    Do try it! it is really fun! :D lemme know what you find
  • 1
    @xMadxHatterx oh most definitely still in. TDD is still really big and in Pharo or Squeak, for example, writting unit tests is a breeze and pretty fun.
  • 1
    @AleCx04 just had glance right after my post and must say it feels pretty uncomfortable to me. But I truly believe it's worth to dig into, for several reasons. Right now I'm more into the raw stuff of Cpp , so learning a interpreted language is like learning a parallel universe I guess.but again, I think it'll be worth to do so. If you got any good resources I'll be happy to get them known 🙂
  • 1
    @foox it takes a bit to get used to it if I am completely honest.

    Inside of the Pharo (if you went with that one) you will find a section for books, all of them completely free and available as downloadable pdfs.

    Also, from within the system the entire syntax (literally) can be learned from running ProfStef. That is just the language itself, the rest comes from learning the system.
    Most code is written inside of the system browser since you manipulate the entire live environment as code runs, ideas can be separatedly tested inside the playground etc etc.

    I do recommend the books, but if you stick with it it serves as a great way to do some explorative programming.
  • 1
    @AleCx04 somehow this intrigue me tremendously... where do you see Pharo’s use cases? Just trying to figure out in what context Pharo makes sense, and more crucially where it doesn’t...
  • 1
    @100110111 I honestly believe it might be good game for Data Science. The environment being able to change live and reflect other things is really something that I honestly think to be severely cool. Visualizations in it are also really cool.

    I have not tried it for web development that much, I have looked at Seaside and Teapot, Seaside is like nothing I have ever seen, this is not necessarily good.
Add Comment