seaside VS iceberg

Compare seaside vs iceberg and see what are their differences.

seaside

The framework for developing sophisticated web applications in Smalltalk. (by seasidest)

iceberg

Iceberg is the main toolset for handling VCS in Pharo. (by pharo-vcs)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
seaside iceberg
2 5
496 133
0.6% 0.0%
8.9 9.1
13 days ago 10 days ago
Smalltalk Smalltalk
MIT License MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

seaside

Posts with mentions or reviews of seaside. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2022-04-05.
  • Pharo 10
    7 projects | news.ycombinator.com | 5 Apr 2022
    ```

    As you can see, I've hacked the _: to be a separator of some sorts, but what it actually is, is an argument of a message. You can do all kinds of fun stuff with this. See [8].

    8. When you overwrite #doesNotUnderstand then you can inspect the message and its arguments. So whether you send Object1 a:arg1 veryImportant:arg2 message:arg3, then you can inspect those arguments. In the case above, this means you can also inspect _:arg1 _:arg2 or _:arg1 _:arg2 _:arg3 ... _;argN. In other words, you can deal with variable arguments and it doesn't matter what they're called. Because of this, it's easy to create a simple DSL, if you need another separator, then simply add one. You have a lot of characters at your disposal that are quite unique [4]. I figured that out by using by using point (2) and just looking around in the environment.

    __Web Development__

    9. Seaside is capable of live and dynamic updating. MOOCs won't tell you this because it requires using Seaside quite differently. In short, the pattern that I see used at my work is by having server-side rendered HTML that has designated blocks as callbacks. So when you send your server-side rendered HTML, those callback blocks will transform itself into a jQuery GET/POST request. Pharo writes the jQuery for you. We also use React, but I haven't gotten around to it how it's used, I'm fairly sure we don't use anything like Redux.

    10. In terms of testing, it's relatively easy to write tests. As with Go, it's all included and you're ready to test! Also note: if you want to use Selenium tests, you can use Parasol [5], it's quite easy to use.

    11. The following concepts are not explained well, so I'll do it: Seaside heavily uses what we'd call middleware in NodeJS (filters in Seaside). In NodeJS/Express we also have a request object that exists during the lifetime of a request. In Seaside this is called a dynamic variable (WADynamicVariable is the class).

    __Stuff I wrote out in the open__

    12. I've been working on refactoring i18n in Seaside [6]. I currently find the approach Pharo uses the nicest approach, which is something along the lines of:

    'You have some string that needs translation in your web app' SeasideTranslated

    When you want to export a catalog file of all the strings you want to translate, then you send exportCatalog new exportCatalog and it will look through the whole image and find every tagged string and export it into a catalog (.pot) file that you can edit with POEdit (a free Mac app [7]).

    13. I wrote a simple animation that shows the definition of sin and cos [8]. Most of the code is shown in that video, IMO it gives a good enough sense how to use it.

    __Bottom Line Thoughts__

    14. I think Pharo is a production-ready language for SaaS apps where you can easily scale by adding instances. I am not sure if it'd be production-ready for consumer facing web apps with many concurrent users.

    15. It's an amazing language to create desktop applications for.

    16. The debugger capabilities are awesome and there's active research on it. Time travel debugging is currently in its PoC phase (source: Pharo Days).

    17. It's also a good language for live music making (source: Pharo Days where someone demo-ed some live coded acid music).

    [0] https://discord.gg/QewZMZa

    [1] We're hiring developers able to work in Europe and based in a European time zone. The way we use Pharo is IMO the real deal, it goes far beyond what any MOOC can teach you.

    https://yesplan.be/en/vacancy/full-stack-software-engineer

    [2] https://github.com/pavel-krivanek/PharoChipDesigner

    [3] https://www.youtube.com/watch?v=BUEnRrUZ-Ug

    [4] ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyzªµºÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõöøùúûüýþÿ

    [5] https://github.com/SeasideSt/Parasol

    [6] https://github.com/SeasideSt/Seaside/tree/gettext-fix

    [7] https://poedit.net/features

    [8] https://drive.google.com/file/d/1Z3UwTAj4A2CRo_TXk6JNG-mN9yM...

  • The evolution of Smalltalk: from Smalltalk-72 through Squeak
    2 projects | news.ycombinator.com | 17 Jun 2021
    I have actually used Squeak in production for a simple web app when I was freelancing. I used https://github.com/seasidest/seaside as framework which is still going strong.

    Sure that was like 10 year ago but the App is long gone but I can totally see the use for Pharo/Squeak in a green field project even today. The parts are all there. It is super easy to get started, you download an image and have an whole development system set up. No setting up the tooling, no hunting for extensions for you IDE, nope the language already comes with an IDE that is superior to anything your are likely to have ever seen.

iceberg

Posts with mentions or reviews of iceberg. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-10-11.
  • LSP could have been better
    12 projects | news.ycombinator.com | 11 Oct 2023
    The problem with the filesystem is that it privileges organization scheme which isn’t the best one for every editing task. This makes, for example, implementation inheritance hard because your class has a bunch of invisible code in it. But, it you could expand all the superclass methods into a single view and then have edits automatically integrated into the appropriate places, this wouldn’t be as much of a problem.

    Java’s filesystem hierarchy is a great example of a “fileout” format for the sort of environment I’m talking about. Another example here is smalltalk repositories generated by Iceberg: https://github.com/pharo-vcs/iceberg

  • Pharo 11, the pure object-oriented language and environment is released!
    7 projects | /r/programming | 11 May 2023
    and looking at sample git commit (I assume this was done in Iceberg): https://github.com/pharo-vcs/iceberg/pull/1687/files
  • Stop Writing Dead Programs
    1 project | news.ycombinator.com | 20 Oct 2022
    By committing the code to a git repo and having a code review like every other language out there.

    I'm guessing you have never tried these things but image based Smalltalk implementations have supported VCS for decades now, literally. In Pharo this is with git using Iceberg:

    https://github.com/pharo-vcs/iceberg

    They even wrote a tutorial to make it easier: https://github.com/pharo-vcs/iceberg/wiki/Tutorial

    It's not magic, it's not even a problem, because the problem you're imagining doesn't actually exist. So long as the user of the system has at least half a brain (and maybe less) they will be capable of distributing their code with git these days.

  • Design Principles Behind Smalltalk (2001)
    2 projects | news.ycombinator.com | 20 May 2022
    Iceberg for Pharo: https://github.com/pharo-vcs/iceberg

    Monticello: http://www.wiresong.ca/monticello/

    I haven't used the latter, but the former is easy to use and based on libgit. Create a new repository, select the packages that go into it, make the initial commit. After that it'll tell you when the changes don't match the repo. You can select down to the method level since it's aware of the language's syntax and semantics. The generated repository looks like the Iceberg repo itself, a collection of directories for the packages and then .st files for the classes and their contents.

  • Pharo 10
    7 projects | news.ycombinator.com | 5 Apr 2022
    > a copy of your code the environment does some extra epicycles to copy it outside

    Iceberg https://github.com/pharo-vcs/iceberg is the Git/etc. integration built into Pharo and works extremely well. You don't need to "file out" code if that's what you meant.

What are some alternatives?

When comparing seaside and iceberg you can also consider the following projects:

gtoolkit - Glamorous Toolkit is the Moldable Development environment. It empowers you to make systems explainable through experiences tailored for each problem.

zinc - Zinc HTTP Components is an open-source Smalltalk framework to deal with the HTTP networking protocol.

REPLEndpoint - A RESTful endpoint that behaves like a REPL

Cuis-Smalltalk-Dev - Active development of Cuis Smalltalk

PharoChipDesigner - A little chip design game inspired by KOHCTPYKTOP: Engineer of the People by Zachtronics

Parasol - Testing web apps in Smalltalk using Selenium WebDriver.

pharo - The Sources for Pharo

PharoByExample9 - The version of Pharo by Example for Pharo 90

Spec - Spec is a framework in Pharo for describing user interfaces.