hi my name is Patrick Shu and that will
be the tech Li today I thought what I
will talk about today is a trend that
I've been seeing which is that nearly
every developer I see seems to be on the
Mac and there's a good reason for this
and so the question I hope to answer for
you in this video is if you're getting
into programming and you're looking at
getting a new computer or laptop which
laptops are you get Mac or PC and the
short answer is I think you should
probably go for a Mac and let me tell
you why so I'm not personally a Mac
fanboy like I have been developing on PC
for a very long time ever since up until
like four or five years ago I've been on
PC only and the short answer to that the
short reason why Mac is better is
because it is UNIX based and it has one
application terminal you can use the
terminal to write programs run them have
them call other programs as they're
running process files like you can just
do a lot of stuff on the terminal and it
is where the programmer generally lives
like I always have a terminal window
open when I'm at my desk I can use the
terminal to connect into other computers
and start running programs and doing
things on other computers so the
terminal is a very important part of a
programmers life and the Mac has native
support for this terminal based on UNIX
windows also has a terminal it's called
the command prompt and the problem with
this Windows command prompt is it's
based on ms-dos which is a language that
very few people are actually using or
running on except for Microsoft these
days many web servers backends database
servers they're all based on UNIX and so
for a programmer in order to gain that
expertise in being able to work on web
servers and database servers and all
these back-end systems it helps them if
they also work on the similar UNIX
environment on their home computers so
they only need to learn one environment
the windows ms-dos command prompt I'm
not even sure if many people bothered to
try to understand how to use it like
most Windows users probably aren't going
into ms-dos to do anything even if it is
capable of doing some things the
language is just so obtuse and
difficult to use now on windows it is
possible to actually get a unix-like
terminal through emulation so for myself
I would always set up this program
cygwin and it makes a lot of things
workable the problem with cygwin is you
always have to update it it's not really
native a lot of the things don't really
work well with it like if you're trying
to install a program or something
sometimes you run into hiccups and
something's just plain don't work now to
microsoft's credit they recently
released something called windows
subsystem for linux and I would highly
recommend checking this out if you're on
Windows it's in the Windows 10 I believe
and it's essentially a UNIX based
terminal for Windows so from what I've
read the windows subsystem for Linux is
pretty decent like it can get you set up
and they can run a lot of stuff so if
you're a student then yeah this will do
it probably but for a lot of
professional developers you'll see that
a lot of the Silicon Valley engineers
through our carrying MacBooks because
this windows subsystem for Linux was
released only recently it is still an
emulation that's going to be a little
bit slower than normal but I think it's
a pretty good step now I also wanted to
talk about my story several years ago I
was only into Windows and one time I
bought this two thousand dollar Windows
laptop very sleek brand-new
state-of-the-art and it depreciated so
quickly and I would go traveling around
what they're going to stay in hotels and
I found that they had difficulty
connecting to so many Wi-Fi networks
like half of the Wi-Fi networks just
couldn't connect to this computer for
some reason whereas I saw other people
using their Mac books they could connect
fine if I disabled Bluetooth Wi-Fi would
work sometimes it was really weird and
then there would be dead pixels the
screen will have lines starting to show
up on it and glitching out after a few
years of usage I wanted to sell this
computer but when I tried to go see what
the price would be for something like
this there were no prior listings for
this type of computer because it was
such an obscure computer it was like the
Sony Vaio TZ w w140 T like no one had
any clue what this was even though at
the time it was a state of the art
computer
several years later I bought another
very sleek sony vaio computer it was
supposed to be very good and then after
two years of usage again I started
seeing dead pixels the fans started
getting really loud and overheating I
would see lines start showing up on the
monitor the aspect ratio was kind of
strange I think it was sixteen by nine
or something and it just wasn't very
standard since I was into photography I
noticed that all my pictures were
appearing more blue than normal and
that's because the screen was not well
calibrated and during this time iPhone
came out and I couldn't get into iPhone
development I had just bought this brand
new computer and so I missed out on like
the first two to three years of iPhone
development when everyone else was
making tons of money on the App Store I
was stuck on the Windows machine and I
couldn't build for iOS two years later
with this computer started breaking down
I took it to the Sony store to get it
repaired and they said they don't repair
these computers anymore in fact only got
out of the laptop business I pretty much
had to trash the computer
it was completely ridiculous you don't
hear about these stories with Mac books
everyone knows what the Mac books are
they're very reliable the screen color
is well tuned as a photographer I
realized I don't need to really
calibrate that color scientifically I
need to calibrate that for my audience
who's viewing on the MacBook so if I
could process the photo on the MacBook
then I know they're going to look great
for a lot of my viewers to who are on
Apple machines and all of Apple's
computers are calibrated to that same
color profile and since this is
basically system locking for like four
years or so
it's not really clear how the tech
landscape will change over that long
period of time and being able to have
that flexibility to know well if you
need to develop for Windows you can and
if Apple suddenly releases some platform
or software three years down the road
hey you're still going to have a Mac so
that you can develop for it if you want
to these days there's also a lot of
applications and software that maybe one
system only like like systems like
nodejs and Ruby on Rails were originally
developed for Mac only
it was very difficult to get these
programs to run on Windows like imagine
if the developer of nodejs
or Ruby on Rails did not have a MacBook
they basically would not have been able
to create these software systems and if
you were on Windows it would have been
very difficult for you to get
enthusiastic about these systems maybe
you could have run them but it would
have been pretty difficult and it would
have been uphill all the way for
designers that there's this app called
sketch and I highly recommend if you're
into design that you look into it
because it's used all over industry
sketch is Mac only if you're a student
designer you would not be really well
prepared for your future career if you
did not have a Mac so that you can get
sketch and develop expertise in that a
lot of web front-end web developers are
running mac books so that they can
easily run no js' Ruby on Rails other
than those package managers brew package
managers like a lot of these frameworks
are built with Mac users in mind and for
back-end developers like if you're into
database systems or getting into site
reliability engineering system and
ministration you're going to want to
have a very strong Unix Linux background
and for them to they're going to be far
more comfortable in the Mac environment
where there's where it's UNIX based
rather than the Windows environment
where they have to boot up either the
command prompt which no one knows how to
use or they need to go into the windows
subsystem for Linux and yeah maybe they
can get that going but it's still going
to just be like an emulation kind of
buggy and there's going to be problems
getting things running so what we have
our mobile iOS engineers are on Mac
because they need to be designers are
going to be on Mac back in the engineers
are going to be on Mac and front-end
engineers are gonna be on Mac like if
you're an Android or Java engineer it's
kind of your pick but these days I would
say a lot of mobile developers are also
going into back-end code that they're
trying to be more cross-platform they
may even be learning some iOS code
because you need I oh s back-end and
Android to be able to ship a complete
product these days so even Android Java
developers I think still get some
benefit of being in a UNIX Mac
environment and just having that
flexibility to switch over to learn some
iOS
if they wanted to I would say that the
one place you really need windows is if
you're doing dotnet or game programming
a lot of those are done in Visual Studio
and and even though Mac has Visual
Studio as well the native environment
for these developers is going to be on
Windows everything is just going to work
better and but even for that I would say
like if you want to you can get a
MacBook and dual boot into Windows and
then you can do your dotnet or game
programming when you want to but I think
that just the overall flexibility of
environments is really nice to have you
may be thinking well I want to Windows
PC so that I can play all my games
that's actually probably a negative for
Windows computers like maybe it's better
that there are less games on Macs so
that you actually sit down and focus on
work more now beyond all that there are
other reasons that a MacBook is
preferable in my opinion like the the
build quality is very nice the trackpad
works well the keyboards kind of garbage
actually in the recent iteration
everyone knows about the MacBook
iterations so that the resale value is
going to be higher these Macs are
generally used by industry engineers in
Silicon Valley at least like I see them
all over the place so that it prepares
you better to just generally speak the
same language as everybody else the
screen that's nice it's very high
resolution so you know when you're
really slogging through some bug in the
middle of the night and there's problems
everywhere in your code it's just a
little bit more inspiring for yourself
when you know that you're working on a
good machine that you can feel good
about instead of working on the garbage
machine that's not really working well
and it was kind of cheap and it's slow
and the fans starts humming up and
there's that pixels on the screen the
screen is casting a strange blue glow
you guys start going into cygwin or
windows subsystem for Linux to like try
to get things going and then you know
just local itches and bugs here and
there and the keys not really working
well the trackpad is not that great all
of that is just demotivating and you may
just say you know what just I'm just
gonna go sleep forget it whereas at
least for me when I have nicer equipment
I just feel more inspired to put out my
best work because I've invested in
myself and I take comfort in knowing
that this is the two of that industry
professionals
are also using and if they can do it
then I can do it too now if you're on
Windows that's not to say it's terrible
I think Windows can do pretty much
everything that Mac can do with a little
bit more work and even though this video
makes it seem like Windows is garbage
it's really not and I've used Windows a
long time I've even thought like yeah
maybe if I get another computer I might
go back and take a look at Windows again
just because they have that window
subsystem for Linux system now that
makes things bearable maybe probably not
actually I don't think I could go back
to Windows but you know it's it's
cheaper now all that said I will not go
Russia and buy a Mac right now like as
of June 2018 at least Apple has not
updated their line of Mac's in like a
year so if you buy a computer now you're
basically using technology that is a
year old and you're not going to be
getting the best bang for your buck in
terms of CPU or memory computers are a
long term investment they will last you
at least two years and maybe even four
and you don't want to yourself
over those four years and I think that
you don't know what the future will
bring if you think you may become an iOS
developer or Mac developer or get into
front-end development or again to design
in the end though I would say that
really both Windows and Mac are very
capable things you know if you really
want that terminal you can still set it
up like you get SSH and putty or cygwin
and windows subsystem for Linux and you
can SSH into a remote UNIX machine and
if that's what I have been doing for a
while it takes a little bit more time to
setup you may need to get a web hosting
server that's running UNIX so that you
actually have an environment where you
can run these tools once you get that
environment set up where you can
associate you into a UNIX machine and
that might be like a remote web server
then you'll pretty much be set up to do
a lot of your back-end database work
front-end work using like JavaScript
nodejs package managers Ruby on Rails
PHP Python and all that good stuff so
yeah it's really all workable but I hope
that this video kind of helps answer the
question of like why when you go to
conferences you see all the developers
seem to be carrying MacBooks well it's
just it's just a nicer experience over
anyway don't let me tell you what to do
or what to buy I'm not your dad so let
me know what you think in the comments
give it a like and subscribe and I will
see you next time so the first thing I
did was I went to these web sites like
Python and downloads for Windows or PHP
you can download like a zip file it
really makes me wonder what this even is
like Python is supposed to be a
command-line tool it's not like a
package that you download and then you
install like a Windows program Python
exe really funny thing see what it is
see that Python core interpreter I don't
even know what that is
okay so it's finished installing and I
don't even really know what it's done at
this point normally what I'm expecting
is a command line tool Python that can
just start running I don't see Python
here and what it's really done is it's
installed it into this strange little
directory that's actually hidden and I
can't even
so that directory is app data it's not
actually visible you go to local and
then programs and python and there it is
and now yeah finally okay we have Python
so I can print something but it's not
really clear to me how to even actually
keep this on the script and it's not
enough like what I really need this a
terminal like with the shell yeah you
can like run the PHP program and sure
it's gonna work but the show is just so
difficult to work with the environment
just isn't really well set up at this
point like I don't feel like it's easy
for me to make a PHP script and then
have it you know feed into a Python
script and then run node or something
like that like it's what we have here
are a bunch of interactive shells but
they're not really useful at this point
like it's just a little playground but
it's not enough to write anything real
without a real terminal that can glue
every piece together