3. 23 years ago
• 1995, Netscape Navigator
• Brendan Eich wrote a prototype in 10 days
• Mocha
• LiveScript
• JavaScript
• Internet explorer 3 (or was it 2?) in 1996,VBScript and Jscript and JavaScript
• ECMAScript standardization
7. Ten years ago. GeekMeet #4
• 8 Feb 2009
• JavaScript still sucked
• Changes right around the corner
• http://geekmeet.ro/timisoara/2009/02/03/program/
13. Stability / Process Isolation
• Each tab has its own process
• Crashes only crash tab (SadTab)
• 3 years after Intel Core2 Architecture came out
• 1 year after Nehalem
14. V8
• JavaScript important enough to get custom-built engine
• V8 team in Denmark
• Lars Bak and Kasper Lund
• Both previous worked on Java HotSpot at Sun Microsystems
• Platform independent
• Modularized
• Hidden ClassTransitions ... well types
• Dynamic Code Generation
15. Security/Sandboxing
• Tab = Process = Jail
• Further restrictions on what processes have access to
• Google Safe Browsing list
21. CEF
• June 1 2009
• You may not know what it is
• You probably have it on your system, at least once
• Steam
• Adobe Acrobat, Adobe Suite
• Battle.net
28. We love our Electron apps:
• Skype
• Slack
• Discord
• Teams
• WhatsApp
29. Skype
• Old Skype: 30 MB RAM
• New Skype: 300 MB RAM
• I’ve seen 3 GB ...
• But Skype developers are happier?
• Skype is more consistent across platforms/devices
http://blogoscoped.com/google-chrome/
Chrome actually for speed, retrofitted for minimal browser chrome/UI
https://en.wikipedia.org/wiki/Private_browsing
First one was Safari (yay Apple and privacy...)
In December 2009, Google released beta versions of Chrome for OS X and Linux. Google Chrome 5.0, announced on May 25, 2010, was the first stable release to support all three platforms.
https://gs.statcounter.com/browser-market-share#monthly-200901-201908
Wow....see next graph... Blink once they had enough market share to want to control everything?
Notable breakages https://en.wikipedia.org/wiki/Npm_(software)#Notable_breakages
In March 2016, npm attracted press attention after a package called left-pad, which was a dependency of many popular JavaScript packages, was unpublished as the result of a naming dispute. Although the package was republished 3 hours later, it caused widespread disruption, leading npm to change its policies regarding unpublishing to prevent a similar event in the future.
In February 2018, an issue was discovered in version 5.7.0 in which running sudo npm on Linux systems would change the ownership of system files, permanently breaking the operating system.
In July 2018, the npm credentials of a maintainer of the popular eslint-scope package were compromised resulting in a malicious release of eslint-scope, version 3.7.2. The malicious code copies the npm credentials of the machine running eslint-scope and uploads them to the attacker.
In November 2018, it was discovered that a malicious package had been added as a dependency to version 3.3.6 of the popular package event-stream. The malicious package, called flatmap-stream, contained an encrypted payload that steals bitcoins from certain applications. npm administrators responded by removing the offending package.