1. 9
  1. 2

    I wonder how much of Web Objects will end up in this attempt.

    1. 7

      Hopefully, the answer is largely none.

      WebObjects was absolutely amazing in its day for one primary reason: it made it possible to write web applications statefully. Instead of having to think of a web application as a series of distinct pages, each of which had to reimplement a bunch of the same underlying logic (remember, this is in an era where /foo/bar/baz generally referred to a Perl script named baz in the /foo/bar directory), you could instead store all the application state server-side and basically write a web application as if it were a desktop application.

      That was actually a brilliant idea in the 90s, when JavaScript wasn’t yet meaningfully a thing and server traffic was (comparatively) light. But not only does that not scale well to a world where a single web server can reasonably be expected to process many tens of thousands of requests per hour; vastly more powerful clients (via JavaScript) have largely obviated the need to do this odd kind of server-side state. It’s a really similar move to how mainframes with terminals (WebObjects with Netscape 2-era browsers) gave way to computers running networked applications (modern REST servers with Safari/Firefox/Chrome-era browsers).

      If you still want that kind of thing, you can get it via Seaside, Wicket, ASP.NET WebForms, or similar frameworks, but it’s usually just not the right way to go. Even Seaside and Wicket have largely focused on trying to adapt to a JavaScript-dominated world, to varying degrees of success, and ASP.NET WebForms is totally obsoleted in favor of more modern techniques.

      There is one thing in WebObjects that I would arguably like to see in Swift, and that’s EOF. But on OS X, I’ve largely got it via CoreData, and I’m not sure that a Swift-native solution would honestly look that close to EOF in any case.

      1. 1

        I may be jaded, because of the peculiarities of the particular (enormous, eldritch, non-Euclidean) WebObjects system I worked on, but I would run in horror from EOF in particular, as it never ceased to amaze with terrible, unpredicatable performance; lack of thread-safety; and disastrous, no-good, very-bad Active Record affordances.

      2. 2

        In a merciful universe, the answer is none.