SlideShare uma empresa Scribd logo
1 de 76
Baixar para ler offline
Juho Vepsäläinen
Web application development
The past, the present, the future
v2.0 2023-09-12
What to expect
Early web
Browser wars
Languages of the web
Story of three runtimes
Rise of the SPAs
Full stack JavaScript
Beyond SPAs
Early web
Source: https://www.ll.mit.edu/about/history/sage-semi-automatic-ground-environment-air-defense-system
Prehistory
• 1963 - SAGE, the
fi
rst air defense system of the US was activated [Lincoln]
• 1965 - Two computers at MIT Lincoln Lab communicated with one another
using packet-switching technology [Zimmermann]
• 1969 - ARPANET, the predecessor of Internet was developed
• 1983 - Internet started as ARPANET and Defense Data Network (DDN) moved
to use the TCP/IP protocol
Prehistory cont.
• 1984 - The Finnish Ministry of Education established Finnish University
Network (FUNET) to develop a computer network for universities and
researchers [FinInternet]
• 1988 - Finland gains access to ARPANET through NSFNET. Jarkko Oikarinen
invented the Internet Relay Chat (IRC) [FinInternet]
• 1989 - Some FUNET members can access Internet via Datanet [FinInternet]
• Further reference: How the Internet Happened: From Netscape to the iPhone
Source: A Review on Client-Server based applications and research opportunity - Santosh Kumar
1992
World wide web
• Both hypertext and information
retrieval and access systems
existed before the web was
invented. www combined the
ideas (hyperlinks). [Berners-Lee]
• Websites can consist of data
indices and individual pages that
may either exist in a
fi
le system
or be completely virtual
• Later on search engines emerged
Source: http://info.cern.ch/hypertext/WWW/TheProject.html
1993
cgi-bin
• cgi-bin was an early attempt to
describe web servers coming
from National Center for
Supercomputing Applications
(NCSA) [cgi-bin]
1994
PHP [Lerdorf]
• Started as cgi-bin binaries
authored in C by Rasmus Lerdorf
to cover common tasks (logging,
tracking, server-side includes
etc.)
• PHP 2 morphed the solution to a
language (big university project)
• Starting from PHP 3 (Suraski,
Gutmans), the language took o
f
1998
Document Object Model
• "...a platform- and language-neutral
interface that allows programs and
scripts to dynamically access and
update the content, structure and style
of documents” [Wood]
• "Before DOM, every browser, editor,
and transformation engine handled
things their own way. With DOM, you
can write scripts that will work in of
di
ff
erent browsers and editors” [Phillips]
• Independent of a programming
language [MozillaDOM]
Source: https://pixabay.com/photos/lone-tree-tree-oak-clouds-1934897/
MPAs
Early applications (esp. e-commerce)
Source: https://www.simicart.com/blog/spa-vs-mpa/
Browser wars
Source: https://www.webdesignmuseum.org/gallery/google-1998
Nexus
1990 - Berners-Lee [Routley]
Lynx
1992 - University of Kansas [Lynx]
ViolaWWW
1992 - University of California [Viola]
Erwise
1992 - Helsinki University of Technology [Erwise]
NCSA Mosaic
1993 - NCSA [Mosaic]
1994
Netscape Navigator
• "After his graduation from UIUC in 1993, Marc Andreessen (former Mosaic)
teamed up with Jim Clark, the founder of Silicon Graphics, to produce a
commercial version of the browser” [Routley]
• "The company soon staged a wildly popular IPO, which saw the 16-month-
old startup reach a valuation of nearly $3 billion.” [Routley]
• Bought by America Online (AOL) for $4.2 billion in 1998
1994
Internet Explorer
• "A new competitor “born” on the Internet is Netscape. We have to match and beat
their o
ff
erings…” - Bill Gates [Routley]
• "...captured Microsoft’s attention. Immediately after Netscape IPO, the
fi
rst version of
Internet Explorer (building o
ff
a licensed version of Spyglass' Mosaic) was released.
The browser wars had begun.” [Routley]
• "Released in August 1995, the new browser was a dud. Although it was free to
consumers and was bundled with Windows, it was also technically buggy and had
only a 3% to 4% share of the market in January 1996.” [Sebenius]
• "While trying to establish Internet Explorer in the browser market, Microsoft was also
investing hundreds of millions of dollars in its own online service, Microsoft Network
(MSN)” and went against America Online (AOL) [Sebenius]
1996
Netscape vs. Internet Explorer
Source: https://commons.wikimedia.org/w/index.php?curid=1128061
1996
Why did Microsoft win?
• "First, on March 11, 1995, Netscape and AOL announced a deal in which
Netscape appeared to have triumphed over Microsoft. ... Yet on March 12, the
very next day, AOL and Microsoft announced a stunning deal that supplanted
the Netscape-AOL agreement.” [Sebenius]
• Bill Gates sacri
fi
ced short and medium term position to win the browser wars
with the deal [Sebenius]
1998
Mozilla
• "The Mozilla project ... was intended to harness the creative power of
thousands of programmers on the internet and fuel unprecedented levels of
innovation in the browser market” [MozillaHistory]
• "After several years of development, Mozilla 1.0, the
fi
rst major version, was
released in 2002” [MozillaHistory]
• "In 2003, the Mozilla project created the Mozilla Foundation” [MozillaHistory]
• "Firefox 1.0 was released in 2004 and became a big success — in less than a
year, it was downloaded over 100 million times.” [MozillaHistory]
2008
Google Chrome
• "After developing a range of rich and complex Web apps, the company saw
that it was time to build a browser from scratch that could better handle
today's web” [Gray]
• "...innovated in four key areas, namely speed, simplicity, security and
stability” [Gray]
• Google wanted to bridge the gap between desktop and web applications
(later on PWAs and so on)
• One of the side e
ff
ects of the work was the birth of the highly performant V8
JavaScript runtime
2009
Internet Explorer vs. Google Chrome
Source: https://www.statista.com/chart/1438/browser-market-share-since-2008/
Languages of the web
Source: https://pixabay.com/photos/technology-computer-code-javascript-1283624/
1994
Cascading Style Sheets (CSS)
• In 1994 as the web was starting to
gain popularity, there was no way to
style documents
• Initial thinking of Tim Berners-Lee
was that styling is a browser level
concern
• Demand from content authors led to
the birth of
fi
rst draft of CSS in 1994
• To ensure browser compliance, so
called ACID tests were developed
starting from 1998
1995
HyperText Markup Language (HTML)
• A simple markup language used
to create hypertext documents
that are platform independent
[Berners-Lee]
• In use since 1990 but formalized
as a standard in 1995
1995
JavaScript
• Developed by Brendan Eich in ten
days at Netscape [Eich]
• "I am not proud, but I am happy that
I chose Scheme-ish
fi
rst-class
functions and Self-ish (albeit
singular) prototypes as the main
ingredients. The Java in
fl
uences,
especially y2k Date bugs but also
the primitive vs. object distinction
(e.g., string vs. String), were
unfortunate.” [Eich]
• Read: JavaScript: The First 20 Years
2012
TypeScript
• Microsoft’s TypeScript was a
successful attempt to bring
typing on top of JavaScript
• It came with features such as a
class syntax and di
ff
erent ways
to compose types
• It performs only a compile-time
check and it does not perform
runtime checks by design
Source: https://www.typescriptlang.org/
2015
ES2015
• ES2015, or ES6, was the
fi
rst major
version of the ECMAScript since
2009
• It included several major features
such as class syntax, o
ffi
cial module
syntax, arrow expressions to
mention a few
• Since ES2015, the standard has
been updated on a yearly basis to
avoid the addition of so many
features at once while keeping the
release cycle predictable
Source: https://babeljs.io/docs/learn/
2019
Web Assembly
• “…a safe, portable, low-level code
format designed for e
ffi
cient
execution and compact
representation” [WebAssembly]
• In other words, it's a good target for
higher level code
• Depending on the use case, it can be
at least as fast or even considerably
faster than plain JavaScript while
providing strong typing and a light
binary format [wasm]
Source: https://developer.mozilla.org/en-US/docs/WebAssembly/Understanding_the_text_format
Task for later: Look up Flash, Java (applets),
and Silverlight and consider what the web
might look like if the open web hadn’t won
Story of three runtimes
Source: https://pixabay.com/photos/macro-cogwheel-gear-engine-vintage-1452987/
First JavaScript runtimes
• 1996 - SpiderMonkey by Brendan Eich was the
fi
rst JavaScript runtime and it
was developed. It's still in use by Mozilla Firefox
• 1997 - Rhino was one of the
fi
rst major JavaScript engines published open
source (Java, still active)
• 2008 - V8 by Google is an open source JavaScript engine famous for its high
performance
• 2009/2020 - Chakra by Microsoft was initially proprietary but became open
source in 2020
2009
Jack, Narwhal, and Node.js
• Jack was an early port of Rack (Ruby) for the JavaScript JSGI web server
interface. The idea was to reach a standard implementation similar to what's
available for Ruby, Python (WSGI), or Perl (PSGI) [JSGI]
• Narwhal, built on top of Jack, went one step further to "a platform for creating
server-side JavaScript web applications and frameworks such as Nitro”
• Node.js went its own path and won the race (maybe due to faster innovation
and arguably due to leveraging V8)
2009
Node.js
• Ryan Dahl developed Node.js on Google's performant V8 runtime to allow
development of JavaScript based servers and tools
• From early on, Node.js leveraged the CommonJS module de
fi
nition. Later on
this became a problem but it served well in the beginning.
• Starting from early versions, Node.js captured the imagination of the
community and it took o
ff
fast as a technology in its
fi
rst years
• These days Node.js is used in a large variety of contexts (web servers,
electronics, Finnair planes)
2018
Deno
• Deno is Ryan Dahl's (Node.js) new JavaScript runtime
• Deno supports both JavaScript and TypeScript
• It comes with stronger emphasis on security than Node.js
• It supports an url based way to consume modules (npm is also supported)
• It's best to consider Deno as an opinionated toolkit as it comes with many
necessary tools out of the box
• Deno Deploy o
ff
ers an edge platform built around Deno runtime
2022
Bun
• Bun is a high performance JavaScript/TypeScript runtime developed using the
Zig low-level language by Jarred Sumner
• Since its introduction, it has raised brows across the JavaScript community
• In 2022, Bun raised $7m of funding for its development company called Oven
• In September 2023, the project reached 1.0
Node.js vs. Deno vs. Bun
• Node.js is the incumbent solution but does it have a long term future?
• Deno is more like a toolkit and it's approaching similar problems from a
di
ff
erent angle with more opinions
• Deno’s development seems to have sped up Node.js as well (new features
appear faster)
• For now, Bun seems like the same thing but faster although as a new solution
it comes with relative instability (bugs in APIs, no full compatibility always,
new quirks). Deno feels stable in comparison
Rise of the SPAs
Source: https://pixabay.com/photos/macbook-laptop-ipad-apple-computer-624707/
1999
Asynchronous JavaScript (AJAX)
• Before AJAX, any interaction on a page required navigation
• After Microsoft implemented XMLHttpRequest in Internet Explorer, performing
computation in the background without reloading became possible
[Woychowsky]
• It was only a few years later that the idea made it to the mainstream as Single
Page Applications (SPAs) became trendy. Essentially AJAX enabled SPA style
development in additional to key technologies like the History API
SPAs
Esp. social media platforms
Source: https://www.simicart.com/blog/spa-vs-mpa/
2002
Single-page applications (SPAs)
• Instead of refreshing pages like in classic Multi-Page Applications (MPAs),
SPAs rely on JavaScript and update the view dynamically based on user
interaction [Flanagan]
• The shift in mindset was enabled by AJAX and new DOM APIs (mainly the
History API)
• The adoption of the idea led to an explosion of frontend frameworks
• SPAs have challenges in the domains of Search Engine Optimization (SEO),
accessibility, and performance due to framework requirement and reliance on
JavaScript
SPAs vs. SSR vs. SSG [Pöyry]
Feature SSR (MPA) SPA SSG
Pre-rendered HTML ✓ ✓
Updates without
refresh
✓ Possible
Supports forms ✓ ✓
Through an external
service
O
ffl
ine support in
modern browsers
✓ Possible
2006
jQuery
• Provides abstractions over
common operations
• Became extremely successful
due to simple yet powerful
chaining API. Today 78.5% of
websites use jQuery
(w3techs.com)
Progressive enhancement
2008 - Aaron Gustafson - https://alistapart.com/article/understandingprogressiveenhancement/
2010
Angular.js
• Miško Hevery developed Angular.js for his
startup but as the startup failed, the SPA
framework ended up being open sourced
• If HTML would have been designed for
applications, it could have looked like
Angular.js [Sutar]
• Angular.js relied on custom directives
(HTML attributes) and provided two-way
data binding as one of its main selling
points
• The big innovation was so called digest
cycle during which data bindings would
be evaluated [Pashec]
Source: https://angularjs.org/
2010
Backbone.js
• Backbone.js lets you capture data
models that exposed events through
a data bus from which the views can
render on event. At the same time
views can trigger changes in the
data model. (MV*) [Osmani]
• It provided enough abstraction for
implementation of SPAs
• It's best to think Backbone.js as a
light helper for the implementation of
applications
Source: https://adrianmejia.com/backbone-dot-js-for-absolute-beginners-getting-started/
2010
Knockout.js
• Knockout.js implemented MVVM
architecture for the web and
relied on observable
implementation of its own for
dependency tracking [Papa]
2013
React.js
• Facebook's (Meta) React.js received its inspiration
from PHP
• React came with JSX, a HTMLish syntax of its own,
that let developers write JavaScript within HTML
• Unlike solutions before, it implemented idea known
as the Virtual DOM (VDOM)
• In other words, React maintains structure of its own
within memory for change tracking and then it
manipulates the real DOM in the background
• In addition, React put strong emphasis on the
concept of components
• React provides a function based API for
components in which logic can be implemented
using hooks
Source: https://react.dev/learn
2014
Vue.js
• Vue.js is a AngularJS inspired
web framework. Compared to
React, it comes with more
opinions out of the box and it
leverages directives
• There's also a lifecycle model
that's comparable to earlier
versions of React (changed with
hooks)
Source: https://vuejs.org/guide/introduction.html
2014
Marko
• Marko by eBay re-imagines
HTML as a language suitable for
reactive UIs. It provides a
declarative, progressive way to
develop
• Marko uses a compiler-based
approach to generate code
that's optimized both for the
server and the browser
Source: https://markojs.com/
Progressive Web Applications
2015 - PWAs are an attempt by Google to bridge the web with native mobile characteristics (persistency,
installation) [Lee]
2016
Svelte
• Svelte by Rich Harris is a
compiler-based approach for
developing web sites and
applications
• Svelte comes with a light syntax
of its own and it's reactive by
design
Source: https://svelte.dev/examples/hello-world
2016
Angular
• Angular is Google's successor to
earlier Angular.js
• To quote documentation, it is "A
component-based framework for
building scalable web
applications”
• It's a complete rewrite and it relies
heavily on TypeScript and RxJS
• Scope-wise Angular is
comparable to Vue.js
Source: https://angular.io/guide/what-is-angular
2016
Storybook
• Storybook is a tool designed for
developing style guides and design
systems
• Storybook started as a solution built on top
of webpack for React.js speci
fi
cally but it
has since then branched out to support
other bundlers and frameworks
• It is particularly useful for component
driven development as it helps you to
visualize your components and their
possible states
• It's possible to implement visual regression
testing and test automation with Storybook
Source: https://storybook.js.org/
Full stack JavaScript
Source: https://pixabay.com/photos/books-stack-book-store-1163695/
2013
Electron
• Electron was an early attempt to allow
development of desktop applications
using JavaScript
• Electron achieved the target by
wrapping Chromium, the open source
version of Chrome, and by providing
desktop speci
fi
c APIs for
fi
le access and
similar desktop speci
fi
c tasks
• The approach became highly successful
and these days many desktop
applications use Electron underneath.
As an example, VS Code, a popular
code editor, is built on top of it.
Source: https://www.electronjs.org/docs/latest/
2016
Next.js
• Next.js is a full stack React.js framework by
Vercel
• In other words, it covers all aspects starting
from the frontend and spanning to the backend
APIs
• Next.js integrates well with Vercel's hosting
solution and it can be deployed on their edge
network for improved performance
• Technically Next.js has been built on top of
webpack, Babel, swc, and other popular tools
so you could consider it as a distribution as well
• The scope of Next.js grows each year and these
days it includes speci
fi
c solutions for analytics,
e-commerce, and other domains
Source: https://nextjs.org/docs/getting-started/installation
2020
Remix
• Remix is a full stack framework built for
React.js
• To quote the site, it's "Focused on web
standards and modern web app UX,
you’re simply going to build better
websites”
• The key point about Remix is that it puts
heavy emphasis on how to connect data
to views
• Remix ships with a custom Form
component that's progressively enhanced.
In other words it works without JavaScript
enabled.
Source: https://remix.run/
Beyond SPAs
Source: https://pixabay.com/photos/fantasy-light-mood-heaven-lovely-2861107/
JavaScript size trend
Source: https://httparchive.org/reports/state-of-javascript?start=2013_04_01&end=latest&view=list
2019
SolidJS
• SolidJS is a reactive JavaScript
framework
• It was inspired by React but it
doesn't use VDOM. If React was
invented today, it would look
something like SolidJS
Source: https://www.solidjs.com/
2021
Astro
• Astro is a full stack framework
built with the islands architecture
in mind
• Astro does not ship JavaScript
by default
• Astro uses a custom format that
allows you to mix content and
JavaScript
Source: https://docs.astro.build/en/concepts/islands/
Islands architecture
Source: https://www.patterns.dev/posts/islands-architecture
2021
Fresh
• Designed to run speci
fi
cally on
Deno edge infrastructure
• Zero client-side cost by default
• Implements islands architecture
• Leverages Preact
Source: https://fresh.deno.dev/docs/getting-started/create-a-route
2021
Qwik
• Qwik is a new JavaScript
framework developed by Hevery
et al.
• Qwik leverages resumability over
hydration and has been
optimized to load light
(automatic code splitting)
• Qwik leverages JSX and adds
reactivity on top
Source: https://qwik.builder.io/docs/getting-started/
Key trends to note
• There is a clear shift towards edge computing on the web
• The latest generation of frameworks can be considered to be disappearing
(so-called disappearing frameworks)
• The shift from a content platform to an application platform is still ongoing
(friction in APIs)
• Consideration: Which technologies/techniques to use and when/where? How
much of these choices can be encoded to frameworks?
Read my booklet
“Disappearing frameworks explained”
(arXiv) to learn more
Thank you
Time for your questions
References
References
• [Lincoln] - History of Lincoln Laboratories - https://www.ll.mit.edu/about/history
• [Zimmermann] - Internet history timeline: ARPANET to the world wide web -
https://www.livescience.com/20727-internet-history.html
• [FinInternet] - History of the Finnish internet - https://siy.
fi
/history-of-the-
fi
nnish-
internet/
• [Berners-Lee] - World-Wide Web: the information universe - Tim Berners-Lee et
al.
• [cgi-bin] - https://en.wikipedia.org/w/index.php?
title=Common_Gateway_Interface&oldid=1102228140
References cont.
• [Lerdorf] - Programming Php - Rasmus Lerdorf et al.
• [Wood] - Document object model (dom) level 1 speci
fi
cation - Lauren Wood et
al.
• [Phillips] - Designers: the browser war casualties - Barry Phillips
• [MozillaDOM] - https://developer.mozilla.org/en-US/docs/Web/API/
Document_Object_Model/Introduction
• [Routley] - https://www.visualcapitalist.com/internet-browser-market-share/
• [Lynx] - https://en.wikipedia.org/wiki/Lynx_(web_browser)
References cont.
• [Viola] - https://en.wikipedia.org/wiki/ViolaWWW
• [Erwise] - https://en.wikipedia.org/wiki/Erwise
• [Mosaic] - https://en.wikipedia.org/wiki/Mosaic_(web_browser)
• [Sebenius] - Negotiating lessons from the browser wars - James Sebenius
• [MozillaHistory] - https://www.mozilla.org/en-US/about/history/
• [Gray] - Google chrome: The making of a cross-platform browser - James Gray
• [Eich] - https://brendaneich.com/2008/04/popularity/
References cont.
• [WebAssembly] - https://www.w3.org/TR/wasm-core-1/
• [wasm] - https://adservio.fr/post/how-fast-and-e
ffi
cient-is-wasm
• [jsgi] - https://en.wikipedia.org/w/index.php?title=JSGI&oldid=1037280622
• [Woychowsky] - AJAX: Creating web pages with asynchronous JavaScript and
XML - Edmond Woychowsky et al.
• [Flanagan] - JavaScript: The De
fi
nitive Guide - David Flanagan et al.
• [Pöyry] - Next.js ja muut isomor
fi
set sovelluskehykset - Tuomas Pöyry
References cont.
• [Sutar] - Angular JS and Its Important Component - Bibhishan Sutar
• [Pashec] - https://stackover
fl
ow.com/q/9682092
• [Lee] - Pride and prejudice in progressive web apps: Abusing native app-like
features in web applications - Jiyeon Lee et al.
• [Osmani] - Developing Backbone. js Applications: Building Better JavaScript
Applications - Addy Osmani
• [Papa] - https://docs.microsoft.com/en-us/archive/msdn-magazine/2012/
february/client-insight-getting-started-with-knockout

Mais conteúdo relacionado

Mais procurados

Threat hunting 101 by Sandeep Singh
Threat hunting 101 by Sandeep SinghThreat hunting 101 by Sandeep Singh
Threat hunting 101 by Sandeep SinghOWASP Delhi
 
Suricata: A Decade Under the Influence (of packet sniffing)
Suricata: A Decade Under the Influence (of packet sniffing)Suricata: A Decade Under the Influence (of packet sniffing)
Suricata: A Decade Under the Influence (of packet sniffing)Jason Williams
 
Denial of Service Attacks (DoS/DDoS)
Denial of Service Attacks (DoS/DDoS)Denial of Service Attacks (DoS/DDoS)
Denial of Service Attacks (DoS/DDoS)Gaurav Sharma
 
Cryptocurrency Exchanges - An Introduction
Cryptocurrency Exchanges - An IntroductionCryptocurrency Exchanges - An Introduction
Cryptocurrency Exchanges - An IntroductionChristian Kameir
 
Blockchain Security and Privacy
Blockchain Security and PrivacyBlockchain Security and Privacy
Blockchain Security and PrivacyAnil John
 
Blockchain 101 | Blockchain Tutorial | Blockchain Smart Contracts | Blockchai...
Blockchain 101 | Blockchain Tutorial | Blockchain Smart Contracts | Blockchai...Blockchain 101 | Blockchain Tutorial | Blockchain Smart Contracts | Blockchai...
Blockchain 101 | Blockchain Tutorial | Blockchain Smart Contracts | Blockchai...Edureka!
 
Empowering red and blue teams with osint c0c0n 2017
Empowering red and blue teams with osint   c0c0n 2017Empowering red and blue teams with osint   c0c0n 2017
Empowering red and blue teams with osint c0c0n 2017reconvillage
 
Ethical hacking trojans, worms and spyware
Ethical hacking    trojans, worms and spywareEthical hacking    trojans, worms and spyware
Ethical hacking trojans, worms and spywaremissstevenson01
 
Ethical hacking ppt
Ethical hacking pptEthical hacking ppt
Ethical hacking pptNitesh Dubey
 
The Zen of High Performance Messaging with NATS
The Zen of High Performance Messaging with NATS The Zen of High Performance Messaging with NATS
The Zen of High Performance Messaging with NATS NATS
 
PHDays 2018 Threat Hunting Hands-On Lab
PHDays 2018 Threat Hunting Hands-On LabPHDays 2018 Threat Hunting Hands-On Lab
PHDays 2018 Threat Hunting Hands-On LabTeymur Kheirkhabarov
 
Module 5 Sniffers
Module 5  SniffersModule 5  Sniffers
Module 5 Sniffersleminhvuong
 
PowerPoint Presentation On Ethical Hacking in Brief (Simple)
PowerPoint Presentation On Ethical Hacking in Brief (Simple)PowerPoint Presentation On Ethical Hacking in Brief (Simple)
PowerPoint Presentation On Ethical Hacking in Brief (Simple)Shivam Sahu
 
Ethical hacking Chapter 7 - Enumeration - Eric Vanderburg
Ethical hacking   Chapter 7 - Enumeration - Eric VanderburgEthical hacking   Chapter 7 - Enumeration - Eric Vanderburg
Ethical hacking Chapter 7 - Enumeration - Eric VanderburgEric Vanderburg
 
Blockchain Explained | Blockchain Simplified | Blockchain Technology | Blockc...
Blockchain Explained | Blockchain Simplified | Blockchain Technology | Blockc...Blockchain Explained | Blockchain Simplified | Blockchain Technology | Blockc...
Blockchain Explained | Blockchain Simplified | Blockchain Technology | Blockc...Edureka!
 

Mais procurados (20)

Threat hunting 101 by Sandeep Singh
Threat hunting 101 by Sandeep SinghThreat hunting 101 by Sandeep Singh
Threat hunting 101 by Sandeep Singh
 
Suricata: A Decade Under the Influence (of packet sniffing)
Suricata: A Decade Under the Influence (of packet sniffing)Suricata: A Decade Under the Influence (of packet sniffing)
Suricata: A Decade Under the Influence (of packet sniffing)
 
Denial of Service Attacks (DoS/DDoS)
Denial of Service Attacks (DoS/DDoS)Denial of Service Attacks (DoS/DDoS)
Denial of Service Attacks (DoS/DDoS)
 
Cryptocurrency Exchanges - An Introduction
Cryptocurrency Exchanges - An IntroductionCryptocurrency Exchanges - An Introduction
Cryptocurrency Exchanges - An Introduction
 
Blockchain Security and Privacy
Blockchain Security and PrivacyBlockchain Security and Privacy
Blockchain Security and Privacy
 
OpenSourceIntelligence-OSINT.pptx
OpenSourceIntelligence-OSINT.pptxOpenSourceIntelligence-OSINT.pptx
OpenSourceIntelligence-OSINT.pptx
 
Blockchain 101 | Blockchain Tutorial | Blockchain Smart Contracts | Blockchai...
Blockchain 101 | Blockchain Tutorial | Blockchain Smart Contracts | Blockchai...Blockchain 101 | Blockchain Tutorial | Blockchain Smart Contracts | Blockchai...
Blockchain 101 | Blockchain Tutorial | Blockchain Smart Contracts | Blockchai...
 
DDOS Attack
DDOS Attack DDOS Attack
DDOS Attack
 
Empowering red and blue teams with osint c0c0n 2017
Empowering red and blue teams with osint   c0c0n 2017Empowering red and blue teams with osint   c0c0n 2017
Empowering red and blue teams with osint c0c0n 2017
 
Brute Forcing
Brute ForcingBrute Forcing
Brute Forcing
 
Ethical hacking trojans, worms and spyware
Ethical hacking    trojans, worms and spywareEthical hacking    trojans, worms and spyware
Ethical hacking trojans, worms and spyware
 
Ethical hacking ppt
Ethical hacking pptEthical hacking ppt
Ethical hacking ppt
 
The Zen of High Performance Messaging with NATS
The Zen of High Performance Messaging with NATS The Zen of High Performance Messaging with NATS
The Zen of High Performance Messaging with NATS
 
PHDays 2018 Threat Hunting Hands-On Lab
PHDays 2018 Threat Hunting Hands-On LabPHDays 2018 Threat Hunting Hands-On Lab
PHDays 2018 Threat Hunting Hands-On Lab
 
Module 5 Sniffers
Module 5  SniffersModule 5  Sniffers
Module 5 Sniffers
 
PowerPoint Presentation On Ethical Hacking in Brief (Simple)
PowerPoint Presentation On Ethical Hacking in Brief (Simple)PowerPoint Presentation On Ethical Hacking in Brief (Simple)
PowerPoint Presentation On Ethical Hacking in Brief (Simple)
 
Guide to MFA
Guide to MFAGuide to MFA
Guide to MFA
 
A Threat Hunter Himself
A Threat Hunter HimselfA Threat Hunter Himself
A Threat Hunter Himself
 
Ethical hacking Chapter 7 - Enumeration - Eric Vanderburg
Ethical hacking   Chapter 7 - Enumeration - Eric VanderburgEthical hacking   Chapter 7 - Enumeration - Eric Vanderburg
Ethical hacking Chapter 7 - Enumeration - Eric Vanderburg
 
Blockchain Explained | Blockchain Simplified | Blockchain Technology | Blockc...
Blockchain Explained | Blockchain Simplified | Blockchain Technology | Blockc...Blockchain Explained | Blockchain Simplified | Blockchain Technology | Blockc...
Blockchain Explained | Blockchain Simplified | Blockchain Technology | Blockc...
 

Semelhante a Web application development - The past, the present, the future

AJAX the Great: The Origin and Development of the Dynamic Web (2007)
AJAX the Great: The Origin and Development of the Dynamic Web (2007)AJAX the Great: The Origin and Development of the Dynamic Web (2007)
AJAX the Great: The Origin and Development of the Dynamic Web (2007)Fran Fabrizio
 
Cmsc 100 (web programming in a nutshell)
Cmsc 100 (web programming in a nutshell)Cmsc 100 (web programming in a nutshell)
Cmsc 100 (web programming in a nutshell)MaeEstherMaguadMaralit
 
Java _ Definition & Facts _ Britannica.pdf
Java _ Definition & Facts _ Britannica.pdfJava _ Definition & Facts _ Britannica.pdf
Java _ Definition & Facts _ Britannica.pdfRameswarGprec
 
ECMAScript - From an idea to a major standard
ECMAScript - From an idea to a major standardECMAScript - From an idea to a major standard
ECMAScript - From an idea to a major standardJuho Vepsäläinen
 
The story of the web
The story of the webThe story of the web
The story of the webChob Lab
 
Web browser by group no 03 capt palliyaguru
Web browser by group no 03   capt palliyaguruWeb browser by group no 03   capt palliyaguru
Web browser by group no 03 capt palliyagurupraeeth palliyaguru
 
Evolution of Cloud Computing
Evolution of Cloud ComputingEvolution of Cloud Computing
Evolution of Cloud ComputingNephoScale
 
Evolution of web browsers ppt
Evolution of web browsers pptEvolution of web browsers ppt
Evolution of web browsers pptJyothi Reddy
 
.NET, OSS & Mono
.NET, OSS & Mono.NET, OSS & Mono
.NET, OSS & MonoPaul Rayner
 
9781305078444 ppt ch01
9781305078444 ppt ch019781305078444 ppt ch01
9781305078444 ppt ch01Terry Yoast
 
Cloud Native Computing Foundation: How Virtualization and Containers are Chan...
Cloud Native Computing Foundation: How Virtualization and Containers are Chan...Cloud Native Computing Foundation: How Virtualization and Containers are Chan...
Cloud Native Computing Foundation: How Virtualization and Containers are Chan...Experfy
 
- Describe in one or two paragraphs what is Web (8-10 lines) Your desc.docx
- Describe in one or two paragraphs what is Web (8-10 lines) Your desc.docx- Describe in one or two paragraphs what is Web (8-10 lines) Your desc.docx
- Describe in one or two paragraphs what is Web (8-10 lines) Your desc.docxpjoseph6
 

Semelhante a Web application development - The past, the present, the future (20)

AJAX the Great: The Origin and Development of the Dynamic Web (2007)
AJAX the Great: The Origin and Development of the Dynamic Web (2007)AJAX the Great: The Origin and Development of the Dynamic Web (2007)
AJAX the Great: The Origin and Development of the Dynamic Web (2007)
 
Cmsc 100 (web programming in a nutshell)
Cmsc 100 (web programming in a nutshell)Cmsc 100 (web programming in a nutshell)
Cmsc 100 (web programming in a nutshell)
 
Java _ Definition & Facts _ Britannica.pdf
Java _ Definition & Facts _ Britannica.pdfJava _ Definition & Facts _ Britannica.pdf
Java _ Definition & Facts _ Britannica.pdf
 
HTML for beginners
HTML for beginnersHTML for beginners
HTML for beginners
 
web browser ppt
web browser pptweb browser ppt
web browser ppt
 
Web browser
Web browserWeb browser
Web browser
 
Teknologi Aplikasi Web I : Internet
Teknologi Aplikasi Web I : InternetTeknologi Aplikasi Web I : Internet
Teknologi Aplikasi Web I : Internet
 
ECMAScript - From an idea to a major standard
ECMAScript - From an idea to a major standardECMAScript - From an idea to a major standard
ECMAScript - From an idea to a major standard
 
The story of the web
The story of the webThe story of the web
The story of the web
 
Web browser by group no 03 capt palliyaguru
Web browser by group no 03   capt palliyaguruWeb browser by group no 03   capt palliyaguru
Web browser by group no 03 capt palliyaguru
 
Evolution of Cloud Computing
Evolution of Cloud ComputingEvolution of Cloud Computing
Evolution of Cloud Computing
 
Evolution of web browsers ppt
Evolution of web browsers pptEvolution of web browsers ppt
Evolution of web browsers ppt
 
.NET, OSS & Mono
.NET, OSS & Mono.NET, OSS & Mono
.NET, OSS & Mono
 
Browsers by NGE
Browsers by NGEBrowsers by NGE
Browsers by NGE
 
9781305078444 ppt ch01
9781305078444 ppt ch019781305078444 ppt ch01
9781305078444 ppt ch01
 
Evolution of the web
Evolution of the webEvolution of the web
Evolution of the web
 
Evolution Of The Web
Evolution Of The WebEvolution Of The Web
Evolution Of The Web
 
Evolution of the web
Evolution of the webEvolution of the web
Evolution of the web
 
Cloud Native Computing Foundation: How Virtualization and Containers are Chan...
Cloud Native Computing Foundation: How Virtualization and Containers are Chan...Cloud Native Computing Foundation: How Virtualization and Containers are Chan...
Cloud Native Computing Foundation: How Virtualization and Containers are Chan...
 
- Describe in one or two paragraphs what is Web (8-10 lines) Your desc.docx
- Describe in one or two paragraphs what is Web (8-10 lines) Your desc.docx- Describe in one or two paragraphs what is Web (8-10 lines) Your desc.docx
- Describe in one or two paragraphs what is Web (8-10 lines) Your desc.docx
 

Mais de Juho Vepsäläinen

fooConf - JavaScript frameworks of tomorrow
fooConf - JavaScript frameworks of tomorrowfooConf - JavaScript frameworks of tomorrow
fooConf - JavaScript frameworks of tomorrowJuho Vepsäläinen
 
JavaScript frameworks of tomorrow
JavaScript frameworks of tomorrowJavaScript frameworks of tomorrow
JavaScript frameworks of tomorrowJuho Vepsäläinen
 
Web application development - The past, the present, the future
Web application development - The past, the present, the futureWeb application development - The past, the present, the future
Web application development - The past, the present, the futureJuho Vepsäläinen
 
Survive JavaScript - Strategies and Tricks
Survive JavaScript - Strategies and TricksSurvive JavaScript - Strategies and Tricks
Survive JavaScript - Strategies and TricksJuho Vepsäläinen
 
bongaus.fi - Spotting Service Powered by Django
bongaus.fi - Spotting Service Powered by Djangobongaus.fi - Spotting Service Powered by Django
bongaus.fi - Spotting Service Powered by DjangoJuho Vepsäläinen
 
Static Websites - The Final Frontier
Static Websites - The Final FrontierStatic Websites - The Final Frontier
Static Websites - The Final FrontierJuho Vepsäläinen
 

Mais de Juho Vepsäläinen (12)

Quick introduction to Qwik
Quick introduction to QwikQuick introduction to Qwik
Quick introduction to Qwik
 
fooConf - JavaScript frameworks of tomorrow
fooConf - JavaScript frameworks of tomorrowfooConf - JavaScript frameworks of tomorrow
fooConf - JavaScript frameworks of tomorrow
 
JavaScript frameworks of tomorrow
JavaScript frameworks of tomorrowJavaScript frameworks of tomorrow
JavaScript frameworks of tomorrow
 
The future is mostly static
The future is mostly staticThe future is mostly static
The future is mostly static
 
Web application development - The past, the present, the future
Web application development - The past, the present, the futureWeb application development - The past, the present, the future
Web application development - The past, the present, the future
 
The future is mostly static
The future is mostly staticThe future is mostly static
The future is mostly static
 
Survive JavaScript - Strategies and Tricks
Survive JavaScript - Strategies and TricksSurvive JavaScript - Strategies and Tricks
Survive JavaScript - Strategies and Tricks
 
Speccer
SpeccerSpeccer
Speccer
 
bongaus.fi - Spotting Service Powered by Django
bongaus.fi - Spotting Service Powered by Djangobongaus.fi - Spotting Service Powered by Django
bongaus.fi - Spotting Service Powered by Django
 
Bootstrap vs. Skeleton
Bootstrap vs. SkeletonBootstrap vs. Skeleton
Bootstrap vs. Skeleton
 
Static Websites - The Final Frontier
Static Websites - The Final FrontierStatic Websites - The Final Frontier
Static Websites - The Final Frontier
 
Intro to HTML5 Canvas
Intro to HTML5 CanvasIntro to HTML5 Canvas
Intro to HTML5 Canvas
 

Último

(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackVICTOR MAESTRE RAMIREZ
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfkalichargn70th171
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantAxelRicardoTrocheRiq
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfkalichargn70th171
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number SystemsJheuzeDellosa
 

Último (20)

Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
Cloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStackCloud Management Software Platforms: OpenStack
Cloud Management Software Platforms: OpenStack
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdfThe Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
The Essentials of Digital Experience Monitoring_ A Comprehensive Guide.pdf
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Salesforce Certified Field Service Consultant
Salesforce Certified Field Service ConsultantSalesforce Certified Field Service Consultant
Salesforce Certified Field Service Consultant
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
What is Binary Language? Computer Number Systems
What is Binary Language?  Computer Number SystemsWhat is Binary Language?  Computer Number Systems
What is Binary Language? Computer Number Systems
 

Web application development - The past, the present, the future

  • 1. Juho Vepsäläinen Web application development The past, the present, the future v2.0 2023-09-12
  • 2. What to expect Early web Browser wars Languages of the web Story of three runtimes Rise of the SPAs Full stack JavaScript Beyond SPAs
  • 4. Prehistory • 1963 - SAGE, the fi rst air defense system of the US was activated [Lincoln] • 1965 - Two computers at MIT Lincoln Lab communicated with one another using packet-switching technology [Zimmermann] • 1969 - ARPANET, the predecessor of Internet was developed • 1983 - Internet started as ARPANET and Defense Data Network (DDN) moved to use the TCP/IP protocol
  • 5. Prehistory cont. • 1984 - The Finnish Ministry of Education established Finnish University Network (FUNET) to develop a computer network for universities and researchers [FinInternet] • 1988 - Finland gains access to ARPANET through NSFNET. Jarkko Oikarinen invented the Internet Relay Chat (IRC) [FinInternet] • 1989 - Some FUNET members can access Internet via Datanet [FinInternet] • Further reference: How the Internet Happened: From Netscape to the iPhone
  • 6. Source: A Review on Client-Server based applications and research opportunity - Santosh Kumar
  • 7. 1992 World wide web • Both hypertext and information retrieval and access systems existed before the web was invented. www combined the ideas (hyperlinks). [Berners-Lee] • Websites can consist of data indices and individual pages that may either exist in a fi le system or be completely virtual • Later on search engines emerged Source: http://info.cern.ch/hypertext/WWW/TheProject.html
  • 8. 1993 cgi-bin • cgi-bin was an early attempt to describe web servers coming from National Center for Supercomputing Applications (NCSA) [cgi-bin]
  • 9. 1994 PHP [Lerdorf] • Started as cgi-bin binaries authored in C by Rasmus Lerdorf to cover common tasks (logging, tracking, server-side includes etc.) • PHP 2 morphed the solution to a language (big university project) • Starting from PHP 3 (Suraski, Gutmans), the language took o f
  • 10. 1998 Document Object Model • "...a platform- and language-neutral interface that allows programs and scripts to dynamically access and update the content, structure and style of documents” [Wood] • "Before DOM, every browser, editor, and transformation engine handled things their own way. With DOM, you can write scripts that will work in of di ff erent browsers and editors” [Phillips] • Independent of a programming language [MozillaDOM] Source: https://pixabay.com/photos/lone-tree-tree-oak-clouds-1934897/
  • 11. MPAs Early applications (esp. e-commerce) Source: https://www.simicart.com/blog/spa-vs-mpa/
  • 14. Lynx 1992 - University of Kansas [Lynx]
  • 15. ViolaWWW 1992 - University of California [Viola]
  • 16. Erwise 1992 - Helsinki University of Technology [Erwise]
  • 17. NCSA Mosaic 1993 - NCSA [Mosaic]
  • 18. 1994 Netscape Navigator • "After his graduation from UIUC in 1993, Marc Andreessen (former Mosaic) teamed up with Jim Clark, the founder of Silicon Graphics, to produce a commercial version of the browser” [Routley] • "The company soon staged a wildly popular IPO, which saw the 16-month- old startup reach a valuation of nearly $3 billion.” [Routley] • Bought by America Online (AOL) for $4.2 billion in 1998
  • 19. 1994 Internet Explorer • "A new competitor “born” on the Internet is Netscape. We have to match and beat their o ff erings…” - Bill Gates [Routley] • "...captured Microsoft’s attention. Immediately after Netscape IPO, the fi rst version of Internet Explorer (building o ff a licensed version of Spyglass' Mosaic) was released. The browser wars had begun.” [Routley] • "Released in August 1995, the new browser was a dud. Although it was free to consumers and was bundled with Windows, it was also technically buggy and had only a 3% to 4% share of the market in January 1996.” [Sebenius] • "While trying to establish Internet Explorer in the browser market, Microsoft was also investing hundreds of millions of dollars in its own online service, Microsoft Network (MSN)” and went against America Online (AOL) [Sebenius]
  • 20. 1996 Netscape vs. Internet Explorer Source: https://commons.wikimedia.org/w/index.php?curid=1128061
  • 21. 1996 Why did Microsoft win? • "First, on March 11, 1995, Netscape and AOL announced a deal in which Netscape appeared to have triumphed over Microsoft. ... Yet on March 12, the very next day, AOL and Microsoft announced a stunning deal that supplanted the Netscape-AOL agreement.” [Sebenius] • Bill Gates sacri fi ced short and medium term position to win the browser wars with the deal [Sebenius]
  • 22. 1998 Mozilla • "The Mozilla project ... was intended to harness the creative power of thousands of programmers on the internet and fuel unprecedented levels of innovation in the browser market” [MozillaHistory] • "After several years of development, Mozilla 1.0, the fi rst major version, was released in 2002” [MozillaHistory] • "In 2003, the Mozilla project created the Mozilla Foundation” [MozillaHistory] • "Firefox 1.0 was released in 2004 and became a big success — in less than a year, it was downloaded over 100 million times.” [MozillaHistory]
  • 23. 2008 Google Chrome • "After developing a range of rich and complex Web apps, the company saw that it was time to build a browser from scratch that could better handle today's web” [Gray] • "...innovated in four key areas, namely speed, simplicity, security and stability” [Gray] • Google wanted to bridge the gap between desktop and web applications (later on PWAs and so on) • One of the side e ff ects of the work was the birth of the highly performant V8 JavaScript runtime
  • 24. 2009 Internet Explorer vs. Google Chrome Source: https://www.statista.com/chart/1438/browser-market-share-since-2008/
  • 25. Languages of the web Source: https://pixabay.com/photos/technology-computer-code-javascript-1283624/
  • 26. 1994 Cascading Style Sheets (CSS) • In 1994 as the web was starting to gain popularity, there was no way to style documents • Initial thinking of Tim Berners-Lee was that styling is a browser level concern • Demand from content authors led to the birth of fi rst draft of CSS in 1994 • To ensure browser compliance, so called ACID tests were developed starting from 1998
  • 27. 1995 HyperText Markup Language (HTML) • A simple markup language used to create hypertext documents that are platform independent [Berners-Lee] • In use since 1990 but formalized as a standard in 1995
  • 28. 1995 JavaScript • Developed by Brendan Eich in ten days at Netscape [Eich] • "I am not proud, but I am happy that I chose Scheme-ish fi rst-class functions and Self-ish (albeit singular) prototypes as the main ingredients. The Java in fl uences, especially y2k Date bugs but also the primitive vs. object distinction (e.g., string vs. String), were unfortunate.” [Eich] • Read: JavaScript: The First 20 Years
  • 29. 2012 TypeScript • Microsoft’s TypeScript was a successful attempt to bring typing on top of JavaScript • It came with features such as a class syntax and di ff erent ways to compose types • It performs only a compile-time check and it does not perform runtime checks by design Source: https://www.typescriptlang.org/
  • 30. 2015 ES2015 • ES2015, or ES6, was the fi rst major version of the ECMAScript since 2009 • It included several major features such as class syntax, o ffi cial module syntax, arrow expressions to mention a few • Since ES2015, the standard has been updated on a yearly basis to avoid the addition of so many features at once while keeping the release cycle predictable Source: https://babeljs.io/docs/learn/
  • 31. 2019 Web Assembly • “…a safe, portable, low-level code format designed for e ffi cient execution and compact representation” [WebAssembly] • In other words, it's a good target for higher level code • Depending on the use case, it can be at least as fast or even considerably faster than plain JavaScript while providing strong typing and a light binary format [wasm] Source: https://developer.mozilla.org/en-US/docs/WebAssembly/Understanding_the_text_format
  • 32. Task for later: Look up Flash, Java (applets), and Silverlight and consider what the web might look like if the open web hadn’t won
  • 33. Story of three runtimes Source: https://pixabay.com/photos/macro-cogwheel-gear-engine-vintage-1452987/
  • 34. First JavaScript runtimes • 1996 - SpiderMonkey by Brendan Eich was the fi rst JavaScript runtime and it was developed. It's still in use by Mozilla Firefox • 1997 - Rhino was one of the fi rst major JavaScript engines published open source (Java, still active) • 2008 - V8 by Google is an open source JavaScript engine famous for its high performance • 2009/2020 - Chakra by Microsoft was initially proprietary but became open source in 2020
  • 35. 2009 Jack, Narwhal, and Node.js • Jack was an early port of Rack (Ruby) for the JavaScript JSGI web server interface. The idea was to reach a standard implementation similar to what's available for Ruby, Python (WSGI), or Perl (PSGI) [JSGI] • Narwhal, built on top of Jack, went one step further to "a platform for creating server-side JavaScript web applications and frameworks such as Nitro” • Node.js went its own path and won the race (maybe due to faster innovation and arguably due to leveraging V8)
  • 36. 2009 Node.js • Ryan Dahl developed Node.js on Google's performant V8 runtime to allow development of JavaScript based servers and tools • From early on, Node.js leveraged the CommonJS module de fi nition. Later on this became a problem but it served well in the beginning. • Starting from early versions, Node.js captured the imagination of the community and it took o ff fast as a technology in its fi rst years • These days Node.js is used in a large variety of contexts (web servers, electronics, Finnair planes)
  • 37. 2018 Deno • Deno is Ryan Dahl's (Node.js) new JavaScript runtime • Deno supports both JavaScript and TypeScript • It comes with stronger emphasis on security than Node.js • It supports an url based way to consume modules (npm is also supported) • It's best to consider Deno as an opinionated toolkit as it comes with many necessary tools out of the box • Deno Deploy o ff ers an edge platform built around Deno runtime
  • 38. 2022 Bun • Bun is a high performance JavaScript/TypeScript runtime developed using the Zig low-level language by Jarred Sumner • Since its introduction, it has raised brows across the JavaScript community • In 2022, Bun raised $7m of funding for its development company called Oven • In September 2023, the project reached 1.0
  • 39. Node.js vs. Deno vs. Bun • Node.js is the incumbent solution but does it have a long term future? • Deno is more like a toolkit and it's approaching similar problems from a di ff erent angle with more opinions • Deno’s development seems to have sped up Node.js as well (new features appear faster) • For now, Bun seems like the same thing but faster although as a new solution it comes with relative instability (bugs in APIs, no full compatibility always, new quirks). Deno feels stable in comparison
  • 40. Rise of the SPAs Source: https://pixabay.com/photos/macbook-laptop-ipad-apple-computer-624707/
  • 41. 1999 Asynchronous JavaScript (AJAX) • Before AJAX, any interaction on a page required navigation • After Microsoft implemented XMLHttpRequest in Internet Explorer, performing computation in the background without reloading became possible [Woychowsky] • It was only a few years later that the idea made it to the mainstream as Single Page Applications (SPAs) became trendy. Essentially AJAX enabled SPA style development in additional to key technologies like the History API
  • 42. SPAs Esp. social media platforms Source: https://www.simicart.com/blog/spa-vs-mpa/
  • 43. 2002 Single-page applications (SPAs) • Instead of refreshing pages like in classic Multi-Page Applications (MPAs), SPAs rely on JavaScript and update the view dynamically based on user interaction [Flanagan] • The shift in mindset was enabled by AJAX and new DOM APIs (mainly the History API) • The adoption of the idea led to an explosion of frontend frameworks • SPAs have challenges in the domains of Search Engine Optimization (SEO), accessibility, and performance due to framework requirement and reliance on JavaScript
  • 44. SPAs vs. SSR vs. SSG [Pöyry] Feature SSR (MPA) SPA SSG Pre-rendered HTML ✓ ✓ Updates without refresh ✓ Possible Supports forms ✓ ✓ Through an external service O ffl ine support in modern browsers ✓ Possible
  • 45. 2006 jQuery • Provides abstractions over common operations • Became extremely successful due to simple yet powerful chaining API. Today 78.5% of websites use jQuery (w3techs.com)
  • 46. Progressive enhancement 2008 - Aaron Gustafson - https://alistapart.com/article/understandingprogressiveenhancement/
  • 47. 2010 Angular.js • Miško Hevery developed Angular.js for his startup but as the startup failed, the SPA framework ended up being open sourced • If HTML would have been designed for applications, it could have looked like Angular.js [Sutar] • Angular.js relied on custom directives (HTML attributes) and provided two-way data binding as one of its main selling points • The big innovation was so called digest cycle during which data bindings would be evaluated [Pashec] Source: https://angularjs.org/
  • 48. 2010 Backbone.js • Backbone.js lets you capture data models that exposed events through a data bus from which the views can render on event. At the same time views can trigger changes in the data model. (MV*) [Osmani] • It provided enough abstraction for implementation of SPAs • It's best to think Backbone.js as a light helper for the implementation of applications Source: https://adrianmejia.com/backbone-dot-js-for-absolute-beginners-getting-started/
  • 49. 2010 Knockout.js • Knockout.js implemented MVVM architecture for the web and relied on observable implementation of its own for dependency tracking [Papa]
  • 50. 2013 React.js • Facebook's (Meta) React.js received its inspiration from PHP • React came with JSX, a HTMLish syntax of its own, that let developers write JavaScript within HTML • Unlike solutions before, it implemented idea known as the Virtual DOM (VDOM) • In other words, React maintains structure of its own within memory for change tracking and then it manipulates the real DOM in the background • In addition, React put strong emphasis on the concept of components • React provides a function based API for components in which logic can be implemented using hooks Source: https://react.dev/learn
  • 51. 2014 Vue.js • Vue.js is a AngularJS inspired web framework. Compared to React, it comes with more opinions out of the box and it leverages directives • There's also a lifecycle model that's comparable to earlier versions of React (changed with hooks) Source: https://vuejs.org/guide/introduction.html
  • 52. 2014 Marko • Marko by eBay re-imagines HTML as a language suitable for reactive UIs. It provides a declarative, progressive way to develop • Marko uses a compiler-based approach to generate code that's optimized both for the server and the browser Source: https://markojs.com/
  • 53. Progressive Web Applications 2015 - PWAs are an attempt by Google to bridge the web with native mobile characteristics (persistency, installation) [Lee]
  • 54. 2016 Svelte • Svelte by Rich Harris is a compiler-based approach for developing web sites and applications • Svelte comes with a light syntax of its own and it's reactive by design Source: https://svelte.dev/examples/hello-world
  • 55. 2016 Angular • Angular is Google's successor to earlier Angular.js • To quote documentation, it is "A component-based framework for building scalable web applications” • It's a complete rewrite and it relies heavily on TypeScript and RxJS • Scope-wise Angular is comparable to Vue.js Source: https://angular.io/guide/what-is-angular
  • 56. 2016 Storybook • Storybook is a tool designed for developing style guides and design systems • Storybook started as a solution built on top of webpack for React.js speci fi cally but it has since then branched out to support other bundlers and frameworks • It is particularly useful for component driven development as it helps you to visualize your components and their possible states • It's possible to implement visual regression testing and test automation with Storybook Source: https://storybook.js.org/
  • 57. Full stack JavaScript Source: https://pixabay.com/photos/books-stack-book-store-1163695/
  • 58. 2013 Electron • Electron was an early attempt to allow development of desktop applications using JavaScript • Electron achieved the target by wrapping Chromium, the open source version of Chrome, and by providing desktop speci fi c APIs for fi le access and similar desktop speci fi c tasks • The approach became highly successful and these days many desktop applications use Electron underneath. As an example, VS Code, a popular code editor, is built on top of it. Source: https://www.electronjs.org/docs/latest/
  • 59. 2016 Next.js • Next.js is a full stack React.js framework by Vercel • In other words, it covers all aspects starting from the frontend and spanning to the backend APIs • Next.js integrates well with Vercel's hosting solution and it can be deployed on their edge network for improved performance • Technically Next.js has been built on top of webpack, Babel, swc, and other popular tools so you could consider it as a distribution as well • The scope of Next.js grows each year and these days it includes speci fi c solutions for analytics, e-commerce, and other domains Source: https://nextjs.org/docs/getting-started/installation
  • 60. 2020 Remix • Remix is a full stack framework built for React.js • To quote the site, it's "Focused on web standards and modern web app UX, you’re simply going to build better websites” • The key point about Remix is that it puts heavy emphasis on how to connect data to views • Remix ships with a custom Form component that's progressively enhanced. In other words it works without JavaScript enabled. Source: https://remix.run/
  • 62. JavaScript size trend Source: https://httparchive.org/reports/state-of-javascript?start=2013_04_01&end=latest&view=list
  • 63. 2019 SolidJS • SolidJS is a reactive JavaScript framework • It was inspired by React but it doesn't use VDOM. If React was invented today, it would look something like SolidJS Source: https://www.solidjs.com/
  • 64. 2021 Astro • Astro is a full stack framework built with the islands architecture in mind • Astro does not ship JavaScript by default • Astro uses a custom format that allows you to mix content and JavaScript Source: https://docs.astro.build/en/concepts/islands/
  • 66. 2021 Fresh • Designed to run speci fi cally on Deno edge infrastructure • Zero client-side cost by default • Implements islands architecture • Leverages Preact Source: https://fresh.deno.dev/docs/getting-started/create-a-route
  • 67. 2021 Qwik • Qwik is a new JavaScript framework developed by Hevery et al. • Qwik leverages resumability over hydration and has been optimized to load light (automatic code splitting) • Qwik leverages JSX and adds reactivity on top Source: https://qwik.builder.io/docs/getting-started/
  • 68. Key trends to note • There is a clear shift towards edge computing on the web • The latest generation of frameworks can be considered to be disappearing (so-called disappearing frameworks) • The shift from a content platform to an application platform is still ongoing (friction in APIs) • Consideration: Which technologies/techniques to use and when/where? How much of these choices can be encoded to frameworks?
  • 69. Read my booklet “Disappearing frameworks explained” (arXiv) to learn more
  • 70. Thank you Time for your questions
  • 72. References • [Lincoln] - History of Lincoln Laboratories - https://www.ll.mit.edu/about/history • [Zimmermann] - Internet history timeline: ARPANET to the world wide web - https://www.livescience.com/20727-internet-history.html • [FinInternet] - History of the Finnish internet - https://siy. fi /history-of-the- fi nnish- internet/ • [Berners-Lee] - World-Wide Web: the information universe - Tim Berners-Lee et al. • [cgi-bin] - https://en.wikipedia.org/w/index.php? title=Common_Gateway_Interface&oldid=1102228140
  • 73. References cont. • [Lerdorf] - Programming Php - Rasmus Lerdorf et al. • [Wood] - Document object model (dom) level 1 speci fi cation - Lauren Wood et al. • [Phillips] - Designers: the browser war casualties - Barry Phillips • [MozillaDOM] - https://developer.mozilla.org/en-US/docs/Web/API/ Document_Object_Model/Introduction • [Routley] - https://www.visualcapitalist.com/internet-browser-market-share/ • [Lynx] - https://en.wikipedia.org/wiki/Lynx_(web_browser)
  • 74. References cont. • [Viola] - https://en.wikipedia.org/wiki/ViolaWWW • [Erwise] - https://en.wikipedia.org/wiki/Erwise • [Mosaic] - https://en.wikipedia.org/wiki/Mosaic_(web_browser) • [Sebenius] - Negotiating lessons from the browser wars - James Sebenius • [MozillaHistory] - https://www.mozilla.org/en-US/about/history/ • [Gray] - Google chrome: The making of a cross-platform browser - James Gray • [Eich] - https://brendaneich.com/2008/04/popularity/
  • 75. References cont. • [WebAssembly] - https://www.w3.org/TR/wasm-core-1/ • [wasm] - https://adservio.fr/post/how-fast-and-e ffi cient-is-wasm • [jsgi] - https://en.wikipedia.org/w/index.php?title=JSGI&oldid=1037280622 • [Woychowsky] - AJAX: Creating web pages with asynchronous JavaScript and XML - Edmond Woychowsky et al. • [Flanagan] - JavaScript: The De fi nitive Guide - David Flanagan et al. • [Pöyry] - Next.js ja muut isomor fi set sovelluskehykset - Tuomas Pöyry
  • 76. References cont. • [Sutar] - Angular JS and Its Important Component - Bibhishan Sutar • [Pashec] - https://stackover fl ow.com/q/9682092 • [Lee] - Pride and prejudice in progressive web apps: Abusing native app-like features in web applications - Jiyeon Lee et al. • [Osmani] - Developing Backbone. js Applications: Building Better JavaScript Applications - Addy Osmani • [Papa] - https://docs.microsoft.com/en-us/archive/msdn-magazine/2012/ february/client-insight-getting-started-with-knockout