thank you hello I'm really excited to be
here and Budapest and to talk about the
World Wide Web and all of those things I
have heard a ton of languages spoken
yesterday which is really exciting for
me and quick intro my name is Kat Cote
I'm actually no longer at BuzzFeed I
work at a startup called ribbon in New
York City where I'm a product engineer I
used to be a product manager and
although my I've worked in tech for a
couple years now my background is
actually in anthropology which is the
study of human societies biology
evolution culture and so like Steve Jobs
I like to think about systems of people
and now in my job I think about systems
of code and logic and I think that
understanding people is the key to
building good software products and now
that I'm an engineer I think it's also a
really important part of architect and
software the right way and that's kind
of the crux of what this talk is about
I'm gonna see if this clicker works so
the this talk is about the web norms of
the world it's it's based on the premise
that the web is different around the
world in different countries and so I
think everybody here it's probably
familiar with traveling to a new country
looking up an event they're trying to
buy a train ticket maybe and noticing
that websites look a little bit
different and I think especially here in
Europe this is a no surprise where I'm
from the US it is more shocking when you
when you leave and things are so
different and I wanted to jump just into
a couple examples to warm us up
this is Rakuten which is the top
Japanese ecommerce site and this this
talk was actually inspired by some
friends going to Japan and coming back
and talking about how different Japanese
web looked so what's different about it
it's obviously it's like a familiar
website right but it's obviously in
Japanese there's a lot of there's a
pointer there's a lot of navigation
option
really readily clickable there's a heavy
use of iconography paired with the
navigation items I noticed and I noticed
also that in the product images
themselves there's a lot of baked in
text so the marketing images all have
text in them and just to compare it to a
Western site Amazon and there are fewer
navigation elements in general so all of
the product categories are hidden behind
a really big hamburger menu and there's
no text in the product images themselves
the text is natively rendered in the
browser around them and it's generally
more spaced out and to move to a
European example this is the French
train travel portal it's really normal
here in Europe you probably know more
than me that is pretty normal to get on
a train to go for a vacation or to
travel to a new city and I've noticed
that on a lot of European transit sites
it's very they've adopted this really
friendly rounded color like candy
colored design aesthetic with a really
heavy focus on packages and hotels and
destinations and so if we look at Amtrak
which is the largest rail system in the
US it's way more serious it's there's
actually no destinations on this page at
all and I think it's probably more
commuter focused and so the differences
are subtle but they are they're there
right they're different and I've started
to wonder why they're different and as I
think through them I keep coming back to
my background and studying culture I
always thought that there were clear
right or wrong ways to develop websites
like if you're gonna make an e-commerce
site it should look this way and if
you're gonna build a social network it
needs to be super experiencial and look
that way but I think that within a more
cultural and anthropological lens that
might not be the best approach and I
think the question of why are websites
different around the world it's kind of
analogous to asking why are people
different around the world which is
really hard to answer and scientists
have been trying to do that for hundreds
of years so I'm gonna try in 30 minutes
to do it
but I think it comes down to sort of my
new core belief which is that technology
is a mode of cultural expression just
like language music dancing food and
that technology that we use on phones
laptops and iPads are just another
social tool that humans use to express
themselves and that even our technical
decisions you know the frameworks the
programming languages the services and
the design we use in in the websites and
the technology we build are driven by a
combination of cultural factors so
that's really what this talk is about
it's kind of a mix of culture technology
but just to preempt it a little bit why
is this important to talk about why
can't people and hungry figure it out
for themselves and build websites for
Hungarian audiences and people in the US
will do it for us audiences there's a
couple big reasons one is that we are
really all in it together computer and
Internet technology I think has
globalized truly and utterly faster than
any other human technology we all rely
on the same fundamental foundation for
building software like operating systems
we use the same mobile phones mobile
operating systems we're all here to talk
about JavaScript probably most of us are
familiar with using some really core
frameworks like react we rely on the
same developer tools an infrastructure
like AWS and we're seeing these huge
mega global corporations forming like
Amazon Google and Facebook and the more
and more of the world is coming online
so there's this concept known as the
digital divide so in 1990 most people on
the internet we're like in the u.s.
maybe in the UK and today there are
three and a half billion people on the
Internet
which is half of the world's population
which is kind of shocking for how both
large and small it is but it's
definitely shrinking some researchers
estimate that the entire world will be
online between 2030 and
forty and emerging economies like India
Bangladesh Ghana are adopting the
internet really exponential rates and so
this is bringing new users onto the
internet in those countries which is
creating demand for Internet services
and companies which will create demand
for developers in those countries and
they'll be using and coming to a lot of
the software and technology and tooling
that is already existing and as
developers we benefit from being
globally connected we can share code
with each other I can look up answers to
questions that were you know answered by
somebody across the world we can more
easily learn from each other we visit
each other's countries for conferences
like I'm doing right now and innovations
that we make in one place like a coal
trick I pick up here I can take home and
use in my home country and that's a
really cool thing that not every
industry benefits from and finally a lot
of us work for internet companies and
our users are online and as
internet-based companies we are uniquely
able to reach new audiences in global
markets again this is especially true in
Europe where it's pretty common to
attract new users from neighboring
countries and so translation
localization is becoming a really core
part of growth strategies for internet
internet companies and so learning to
localize apps well is pretty critical in
building successful software that's able
to grow so with all that in mind how can
we think about culture as technologists
as engineers as we approach building for
the web in building technology in
general we can start by understanding
some of the different cultural factors
that would contribute to differences in
building software and the first one is
language it's really the core activity
of what we do every day it's we
literally do it all day and it extends
to programming whether you as a
developer can read the technical
documentation for a project you want to
try and how you would design a web site
to be read in a language by your users
the second our cultural attitudes which
are the really invisible but really
strongly held true differences between
people which is how they have integrated
technology into their daily lives what
their lifestyles are like what their
behaviors and their beliefs are like
there's government policy so some
countries don't regulate the Internet
some of them pass restrictive or you
know the sensible regulations others
censor the Internet and then finally
people across the world access the
Internet in different ways they use
different types of devices they have
different levels of speed and stability
so I'd like to go through each of these
and talk about how developers in
different parts of the world are dealing
with these sort of different types of
contexts and the challenges that they're
facing and so let's start with language
there are a lot of languages in the
world and there are over seven thousand
known languages this is one of my
favorite maps from school and most of
these languages have their own writing
systems and one of those writing systems
is Hangul which is the primary Korean
writing system and when you take all of
the unique characters in Hangul and put
it into a Unicode block you get a block
that's about eleven thousand characters
large so this has challenges right it's
not the Latin alphabet there are no
longer 26 and some but you might have to
render on the screen and so that
proposes challenges for natively
rendering Chinese Japanese and Korean on
the web first of all it's expensive to
design these fonts because each of these
characters has certain spacing and there
are thousands of them again and the
files that contain these fonts can reach
15 megabytes and so this becomes really
prohibitive especially on a mobile
device or in a place with with slower
internet speeds so developers have to
get really clever and one common work
around this is a Korean ecommerce site
called G market in this case every
single piece of text on this
is an image which is kind of unholy to
us maybe but there's huge benefits it
loads faster than a 15 megabyte plant
file and you can the developer can
ensure the quality of the text rendering
and they know what's going to look the
same across browsers and in mobile
phones and there are some there are some
newer ways to render these fonts more
quickly through subsetting and so sub
setting is where you take a really large
font file with a lot of characters or
glyphs in it and slice it into pieces
and just load the pieces you need and
some browsers like Chrome now will do
this automatically and there are also
really cool projects I'm so google fonts
has this new Korean font library in it
that uses machine learning to subset
fonts based on how often they're the
characters are seen together and when
these fonts are served through the
google fonts API it benefits from
cross-site caching which means the user
would only need to load the font file
once in order to benefit from it across
many web sites during their session and
so techniques like this are making it
more possible and easier to render
languages like Korean Japanese and
Chinese natively on the web and other
languages are written in other
directions and in other ways and so
Hebrew and Arabic are written from right
to left and they require layouts that
are bi-directional so this is the
tel-aviv Museum of Art in English but in
Hebrew it's completely flipped really
down to the navigation itself and as a
native reader of Hebrew it wouldn't make
sense if you had just translated this
and it was from left to right it really
has to be a mirrored layout in order to
feel native and make sense to a native
reader there were some CSS frameworks to
make this easier this is right-to-left
CSS which will flip directional CSS
properties like border left or margin
right and when you translate text to
begin with it takes different amounts of
space different characters have
different heights and widths words may
be longer there might
more or less spaces and other rules like
that so the word views in Italian is
actually three times longer than it is
in English and this is a subtle
difference but this is like a YouTube
card or they had it pushes it to the
next line and so if you sort of compound
this across an entire layout you can see
how you would really need to allow for
the expansion and contraction of text as
you translate it between languages and
in my really informal test tie is about
1.7 times the space I'm just to adjust
in this sentence so really localization
is more than just translating strings
you can't just swap the strings if
you're going to create an Arabic version
of your website you need to build a
bi-directional layout and if you are
translating into new languages you
should account for the expansion and
contraction of text I definitely
experienced this in the past where you
swap the strings out and things start to
go really weird
I mean users want to you know use a nice
experience and they can tell if it was
quickly done so we're building websites
in many different languages right and
there's over 7,000 of them but I think
one of the really interesting things is
that we're all programming in English
and so these are the reserved words in
JavaScript and they're all in English
and this is true for every major
language that we use even languages like
Ruby which was invented actually in
Japan and it's kind of weird when we
look at the spoken languages in the
world it's a really big disconnect so
you know English is no more commonly
spoken than Hindi and certainly less
commonly spoken of in Chinese and what's
happened here is that English has become
a legal franca which means a common or
trade language between groups of people
for computing and it's actually become a
lot more than that English has become a
common language for diplomacy and for
business and trade and it's not a
totally equitable history either but
adopting these common languages does
have a lot of benefits it means that we
can all be sitting in this room coming
from different countries with our own
you know first natively
which is and understand each other and
I'm giving this talk in English which is
crazy because we're in the middle of
Europe and I don't have to translate you
know a piece of your code into my
language in order to run it first of all
orders understand what it's doing I mean
because we're programming sort of it all
in the same terminology and language it
makes it easier for us to grow software
together and build on top of each
other's work rather than developing
technology sort of in parallel separate
language groups but I also think it's
important to recognize that a code isn't
really English I don't know what RF
means and I I don't think you actually
need to be conversational English to
learn how to code
I would probably describe code as like a
new dialect some weird morphed subset of
English I'm in some programming tools
this is scratch which was developed by
MIT a school in the US it's used in
libraries and classrooms around the
world
I'm skips this English based paradigm
altogether and they have this this block
abstraction which makes it really easy
to translate between different languages
and research has shown that kids learn
how to code faster in their native
language which makes a lot of sense
and just because reserved words in the
programming languages we all use are in
English doesn't mean they have to be and
this is a this is your lang which is a
node like language in Yoruba which is a
language spoken in Nigeria and I think
projects like this while they haven't
you know hit a critical mass yet could
be really useful for getting programmers
who don't speak English in the door and
pass that first really big learning
curve and then also I think that
developers in general especially
developers who don't speak English
really want to read documentation and
debug issues in their native language it
is again really important for developers
who don't speak English translations and
channel and channels for talking in your
native language about programming and
code really benefit everybody it helps
make these non-english speaking
developers lives easier
and for an open-source project or a
developer tool it can draw more
developers into the project and I think
given the growth of you know the youth
the internet base and the years to come
it will become even more important and
people find translations so important
that they will do it themselves if you
know an open-source project doesn't have
any and so this is Doc's China which
aggregates Chinese language translations
of many of the open-source projects we
all use I think it's a pretty incredible
project and a really great example of
you know just getting it done but these
in unofficial translations do have some
issues so they're less discoverable
because they're not a part of the core
documentation and they have more
opportunity to grow stale or be
incorrect because they're not part
they're not maintained by the official
maintainer x' the react org recently led
a project to add a bunch of translations
to their core documentation so on their
site there are now a bunch of different
language versions I think is a really
great example and a fantastic step to
recognizing their super international
community they even built a bot to open
pull requests in each of the
translations
whenever the core English Doc's change I
know that this was inspired by the
vue.js team who are also doing a really
good job and I think it's a great
strategy for including developers around
the world
I don't know that take another sip of
water I invite you all to do this as
well so moving past language let's talk
about culture cultural differences play
a really big role in how technology is
used in people's everyday lives cultural
attitudes
refer to people's beliefs their
lifestyles their customs
you know how they greet each other in
the morning or how they were coffee and
what time they eat meals that and what
kind of devices they use to do all of
those things and talk to each other and
culture is really hard to quantify
there's a framework for doing it
it's called Hofstede's cultural
dimensions
and it's not perfect I really hate the
the gendered power versus nurture
spectrum but I think it is a good
framework for understanding how
different nations and cultural groups
might be different from each other like
some might be more focused on preserving
tradition or more oriented towards
future and change some cultures are
really focused on collective success so
the success of their family group or of
their country others are like no screw
them I will just get rich myself right
and it makes more objective I won't say
perfectly objective comparisons between
different cultural groups possible so in
this study they surveyed a bunch of
people around the world and we can see
that Egypt Egyptian Japanese and Russian
participants all have much higher
avoidance of uncertain situations so
these are situations where there might
be like lack of information
there's just generally an uncertain
outcome we can see that the u.s. in
comparison is extremely indulgent and
really values values individualism and
individual success over these countries
as well and I think that although these
these differences are subconscious and
they show up in the way you would build
a website or launch a product in these
countries so this is a website for
purchasing tickets for the Ghibli Museum
near Tokyo it is a notoriously booked
and really difficult to get into museum
but on these sites it's really common to
see really elaborate instructions
step-by-step with screenshots of the
kind of software you would need to use
and down to the buttons you'd press to
get a ticket so you know exactly how to
get the ticket and if you don't get one
you know why and to contrast this with
the brode Museum in Los Angeles first of
all there's you can either show up or
buy a ticket so there's a couple ways
and once you start to dig into the site
you see all this uncertain language like
oh there's a best chance to view the
exhibit and it's first-come first-serve
so you don't actually know if you get to
see the whole museum if you go which
results in funny reddit threads
like wouldn't it be easier to travel
through Narnia on a flying pig than to
get a ticket to go to this museum and I
think that we can think about cultural
differences not just in these really
broad terms in terms of like societies
and nations but also in terms of teams
teams that we work in or cities in our
own countries and so at my company
ribbon I help I build tools that help
people manage the purchasing of homes so
we built this really elaborate sales
tracking tool and we thought we designed
the table really nicely but the team
kept going back to Google sheets and we
couldn't keep up with all their requests
and changes and so we eventually gave up
because they just wouldn't use the tool
and they kept doing all this data entry
and we replaced it with this monstrosity
which is a third party and Beda Bowl
spreadsheet tool and they loved it it
turns out it's exactly what they needed
they needed something compact so we
didn't need to optimize for readability
or beauty they didn't want to scroll
they needed to see all the information
all together in one screen and they
wanted it to be really flexible because
their requirements and KPIs were
changing all the time and so by building
this presumably worst product actually
by not building a product at all and
deleting a bunch of code we better met
the needs of our team and so just to go
back to the cultural dimensions let's
compare the US and China China is also
pretty low on uncertainty avoidance but
much much higher on future orientation
and so this means that they're willing
to deal with ambiguity sort of as a
generalization and more adaptable to
changing technologies and so what we're
seeing is that China has adopted mobile
technology in all aspects of their lives
so QR codes are found literally
everywhere in transit advertisements you
use it to open websites to add contacts
to get information to buy tickets now to
make payments WeChat is an absolutely
ubiquitous app with over a billion users
in China and in that area that you know
has really spread throughout China
years and years before we saw the the QR
technology catch on in the West and so
we're really starting to see China that
outpace the US and the West in
technological innovation and this kind
of thing changes how you would launch
startups right so in a really mobile
oriented country you might skip a
desktop app altogether so this is a
light app that you would build to be
opened from a QR code in the we chat in
the WeChat mobile browser and there
again not meant to be viewed from
desktop it just doesn't work on a
desktop it's a completely different kind
of environment there and while we're on
the topic of China we can talk about the
fact that the internet is not actually
equally free and available in every
country in the same way so Internet
infrastructure is provided through
private companies and utilities subject
to national laws so in the past
China has cracked down on foreign
services they have blocked Google api's
which will force developers to find
mirrors and alternatives the latest
status is that Google APs are being
served through servers in Beijing here
in Europe there are new privacy
regulations called gdpr
so I'm sure everybody here is familiar
with the requirement to get users
permission to set and use cookies and
unfortunately in July the u.s. sanction
Iran and a developer in Iran named
Shaheen wrote a really good blog post
about what it's like to be a developer
living in a country with sanctions
imposed on it talked about how really
critical developer services were cut off
like gitlab docker Android developer
just the documentation site itself and
even github and so developers lose
access to their code their sites might
go down they have to use proxies and
VPNs which is questionably legal and
pretty dangerous to have them do and
it's you know it's a very challenging
situation and continue it's going to
continue to be a problem
and finally internet access in general
is very different across the world
people don't use the Internet in the
same
way so for example mobile traffic is
much greater in Africa and Asia than it
is in the Western Hemisphere so in 2018
I think 78% of visits to websites in
India were on mobile devices whereas in
the US the split is more 50/50 so in a
place like India where three-quarters of
Internet traffic is from mobile you
would certainly build a mobile first
website or a native app before you built
a desktop site and if you look at
high-speed sort of broadband access
which is fast stable internet it's not
equally distributed either there was a
really good talk about this yesterday I
think well I know and there's a you know
there's a really big gulf between the
developed world and the developing world
and people in rural areas and every
country also experienced this where with
a slow internet connection first of all
you have slower speeds but your
connection might also drop out too so it
will be intermittent and this can make
using apps and websites really
frustrating
and so as a developer you can improve
this experience by offering on offline
support so by using techniques like
local storage service workers by
building progressive web apps and this
is a progressive web app from Kenya it's
an another ecommerce site and you use it
by visiting the site in Safari and
actually adding it to your home screen
and so by doing that and it has the then
has the ability to cache content locally
and use service workers to stay usable
even if the internet connection drops
out and these progressive web apps also
take up less space on a phone which
would be really important in a place
where a lot of people use budget phones
and they're not using really expensive
iPhones and this this article in
business and usage and conversion after
building this progressive web app and so
it's not just that by architecting the
application differently it became better
and easier for users to use actually
resulted in a better business outcome
and more money
big maid so that's a really Roman tour
of just some parts of the world and just
some challenges that developers in other
countries
experience I think that it is really fun
and fascinating to talk about and I like
it sort of in an academic sense but I
also think there are ways we can all
apply this to our everyday and the first
is that we can always be thinking about
and including developers who might not
have the same access as us you know I
think probably everybody in this room
speaks English not every developer does
or will if you are part of an
open-source project or build developer
tools consider making translations of
priority and if you have friends who are
affected by sanctions and censorship we
should be giving them a platform if you
come across a website or an application
that isn't what you're used to so if you
travel to a new country and things feel
differently try to think about the
cultural context in which it was made
what led to it being built that way and
try not to apply your own value system
to another person or another project
that was built with a completely
different value system in mind and this
is called cultural relativity it's a
really core anthropological concept and
it helps us avoid using loaded terms to
describe user interfaces like cluttered
or ugly or text access old when it might
be more of a lack of context and I think
this can generally make us more
inclusive and empathetic with each other
as well and finally user empathy is not
just for product managers and designers
we as engineers can use it to make
better technical decisions for the tools
and the products we build and we can
also use it to localize to our own users
people in our own you know in our own
cities so if you know that your your
product has users in an international
market or that your company is growing
to attract people from another country
where they speak a different language
consider putting in more effort to on
providing a truly localized
strong translation or Architect your
application to be a progressive web app
if your users experience
slower or intermittent connections I
mean I think that the companies and the
engineers that do this will win the
hearts of their users they will build
better software and ultimately benefit
from the growth of the Internet in the
decades to come and that's all I have
today thank you
[Applause]