THE PROBLEM WITH
JAVASCRIPT
Armagan Amcalar
PHPKonf
Istanbul, May 4, 2019
ARMAĞAN AMCALAR
Senior Manager @ Wayfair
Building and leading teams for almost 10 years
Passionate about open source
Lonca, a software craftsmanship school for women
International speaker
dashersw dashersw
IF YOU THINK SOMETHING IS WRONG
WITH JAVASCRIPT, OR ITS USERS, YOU
ARE NOT ALONE.
…and you are not wrong
dashersw
WHAT YOU’LL GET FROM THIS TALK
JUST A LITTLE HISTORY
…FOR CONTEXT
<html>
<head> <title> Add New Customer </title> </head>
<body background="blue_marble.gif">
<img src="billlog2.gif">
<server>
if ( project.lock() ) {
project.lastID = 1 + project.lastID;
client.customerID = project.lastID;
project.unlock();
}
</server>
<h1>Add a New Customer</h1>
<p>Note: <b>All</b> fields are required for the new customer</p>
<p>ID:</p>
<server>
write("<STRONG><FONT COLOR="#00FF00">" +project.lastID + "</FONT></STRONG>");
</server>
</body>
</html>
DHTML
FIRST GENERATION OF JAVASCRIPT
DEVELOPERS
dashersw
BROWSER WARS
OH THOSE INNOCENT DAYS…
dashersw
2005-2006 — JQUERY AND
OTHERS
SECOND GENERATION OF JAVASCRIPT
DEVELOPERS
dashersw
2008 — GOOGLE CAME
ONBOARD.
AND CHANGED EVERYTHING.
dashersw
dashersw
REMEMBER, WITH GOOGLE,
YOU ARE THE PRODUCT.
dashersw
GOOGLE HELPED
STANDARDIZE THE WEB.
CHROME IS TO IE & FIREFOX
WHAT APPLE IS TO NOKIA &
MOTOROLA.
dashersw
CAN YOU IMAGINE A WORLD
WITHOUT STACKOVERFLOW
AND GITHUB?
THEY CAME OUT IN 2008.
WHAT IS OPEN SOURCE?
dashersw
2010 — BACKBONE &
ANGULAR, MVC FRAMEWORKS
THIRD GENERATION OF JAVASCRIPT
DEVELOPERS
dashersw
NO ONE UNDERSTOOD
WHAT MVC IS.
IT WAS A BROKEN COPY OF BACKEND MVC
FRAMEWORKS, WHICH ARE ALREADY BROKEN.
dashersw
WELCOME CORPORATIONS
GOOGLE, MICROSOFT AND FACEBOOK
DISCOVER OPEN-SOURCE
dashersw
WHAT IS TRULY OPEN
SOURCE?
dashersw
VIRTUAL DOM
HINT: IT’S A BAD IDEA.
dashersw
COMPONENT DESIGN
HINT: IT’S NOT ENOUGH.
dashersw
ENTER SVELTE
THE MAGICAL DISAPPEARING FRAMEWORK
dashersw
WHEN WILL THIS HYPE
END?
BABEL WEBPACK COFFEESCRIPT GULP
GRUNT SASS TYPESCRIPT EMBER FLOW
REDUX ROLLUP SERVER-SIDE RENDERING
dashersw
WHAT IS THE PROBLEM?
dashersw
WHAT IS THE PROBLEM?
dashersw
THIS IS GENERATIONAL
HELLO GEN Y PEOPLE!
dashersw
PROBLEMS WITH ATTENTION,
DEDICATION, EFFORT AND
OWNERSHIP
dashersw
TECHNOLOGICAL CHOICES
ARE DRIVEN BY LUST.
dashersw
THE CURSE OF JAVASCRIPT
dashersw
BARRIER TO ENTRY IS LOW
YOU CAN DO ANYTHING IN JAVASCRIPT
IT RUNS EVERYWHERE
dashersw
BY NOW, JAVASCRIPT IS A META-
LANGUAGE
dashersw
SWEET.JS
HONORABLE MENTION
dashersw
BUT INSTEAD OF GOING
FORWARD, WE ARE GOING IN
LOOPS!
dashersw
SERVER-SIDE RENDERING
dashersw
WE DID THAT, IT DIDN’T WORK,
WE INVENTED SINGLE-PAGE
APPLICATIONS BECAUSE IT
DIDN’T WORK.
dashersw
WHAT IS THE UNDERLYING
PROBLEM?
dashersw
GENERATIONS CHANGE.
WE DON’T STUDY THE PAST.
YET WE KNOW BETTER.
dashersw
WHAT IS THE SOLUTION?
dashersw
FOLLOW SCIENTIFIC
METHODOLOGY.
dashersw
DON’T BELIEVE, EXPERIMENT. WORK
WITH FALSIFIABLE TRUTHS.
dashersw
RISE ON THE SHOULDERS OF
GIANTS.
dashersw
HOW TO CHOOSE A
TECHNOLOGY
dashersw
SIGNAL-TO-NOISE RATIO
AMOUNT OF BOILERPLATE
INTUITIVENESS
CAN YOU UNDERSTAND ITS CODE?
CAN YOU DEBUG IT?
CAN YOU FORK AND CUSTOMIZE IT?
dashersw
React Vue Svelte
NUMBER OF QUESTIONS & ANSWERS ON
STACKOVERFLOW IS NOT A GOOD METRIC.
NUMBER OF ISSUES ON GITHUB IS NOT A
GOOD METRIC.
dashersw
YOU DON’T WANT A TECHNOLOGY
THAT REQUIRES CONSTANT
GOOGLING FOR THE MOST TRIVIAL
THINGS.
dashersw
WHY ARE YOU PROGRAMMING?
dashersw
TO CREATE VALUE.
AND THE ONLY METRIC YOU SHOULD
CARE ABOUT IS PRODUCTIVITY.
dashersw
BEING UNCOOL IS COOL.
dashersw
CLOSING THOUGHTS
dashersw
THANK YOU!
LET’S KEEP IN TOUCH!
ARMAĞAN AMCALAR
armagan@amcalar.com
dashersw
dashersw

The problem with JavaScript