Skip to content

On the “advances” in web development since 1995

The first “web application” I worked on was written in a late version of WebObjects, version 4.5. An HTTP request was handled by an “adaptor” layer that chose a controller based on the parameters of the request, you could call this routing if you like. The controller accesses the data model, any relevant application logic, and binds the results to the user interface. That user interface could be an HTML and JavaScript document for presentation in a browser, or it could be a structured document destined for consumption by a remote computer program. The structured document format would probably have looked something like this:

{
  "first_name": "Graham";
  "last_name": "Lee";
}

The data can be bound on properties in objects called “components” that represent different elements in an HTML document, like images, anchors, paragraphs and so on.

Different frameworks for interfacing with various data storage technologies, such as relational databases, were available.

And basically nothing – apart from the cost – has changed since then. A MEAN application works in the same way, but with the “advance” that it makes it easier to support single-page applications so you can send a few megabytes of transpiled bundle over an unreliable mobile data network to run on a slow, battery-operated smartphone processor instead of in the server. And the data storage interfaces have been expanded to include things that don’t work as well as the relational databases. Other “advances” include a complicated collection of transpilers and packagers that mean every project has its own value of “JavaScript”.

It’s not like anything has particularly got much easier, either. For example, a particular issue I’ve had to deal with in a React application – binding a presentation component to properties of an element in a collection – is exactly as difficult now as it was when WebObjects introduced WORepetition in 1995. Before we get to the point where it becomes easier, we’ll give up on React, and Node, and move on to whatever comes after. Then give up on that.

In software engineering, if something isn’t broke, fix it ’til it is.

{ 1 } Comments

  1. Scott | August 25, 2017 at 10:10 pm | Permalink

    My first “web app” was a front end for a nucleic acid sequence analysis package related to the human genome project at the same place where Apache was being developed. It was 1993, and I did it as a distraction to finishing my PhD thesis. Even though I had a NeXT Cube and a Sun Workstation as well, the front end was straight up HTML and the middle tier was in Perl and FORTRAN. The back end was a huge nasty flat file ported over from a VAX Station, which eventually made its way over to a Connection Machine and Ingress.

    Back in the dot-com days, I used to say if the answer to your question is Web* Vendor Lock-in, then you need to reframe your question. I’m still a bit of a minimalist, and never quite understood the necessity of frameworks like WebSphere or WebObjects. My experience is that while they did about 80% of what you wanted, customizing code was so painful that it slowed feature adoption and didn’t make working in groups easier or code easier to maintain.

Post a Comment

Your email is never published nor shared. Required fields are marked * Comments are moderated; please make sure that your post is civil and valuable before submitting it to improve the chance it will be accepted.