15: The Bridges of Siracusa County
00:00:00
◼
►
[Music]
[TS]
00:00:02
◼
►
the name of this show is hypercritical
[TS]
00:00:04
◼
►
it's a weekly talkshow ruminating on
[TS]
00:00:07
◼
►
exactly what is wrong in the world of
[TS]
00:00:08
◼
►
Apple and related technologies and
[TS]
00:00:10
◼
►
businesses john siracusa and i i'm dan
[TS]
00:00:13
◼
►
benjamin we'll talk about how things go
[TS]
00:00:17
◼
►
well and sometimes don't go so well for
[TS]
00:00:19
◼
►
companies like Apple right as we talked
[TS]
00:00:21
◼
►
about here it's not just us
[TS]
00:00:23
◼
►
yeah and the fact is John nothing is so
[TS]
00:00:26
◼
►
perfect that you can't complain about it
[TS]
00:00:28
◼
►
that's what we say that's true and we
[TS]
00:00:30
◼
►
would like to thank the Intuit small
[TS]
00:00:32
◼
►
business blog and their mobile app as
[TS]
00:00:35
◼
►
well as campaign monitors world view for
[TS]
00:00:38
◼
►
making the show possible will tell you
[TS]
00:00:39
◼
►
more about those as the show progresses
[TS]
00:00:41
◼
►
so what are we complaining about today
[TS]
00:00:42
◼
►
first day of you right you get a lot of
[TS]
00:00:45
◼
►
you you know the whole show is a few not
[TS]
00:00:48
◼
►
too much today I turned a lot because I
[TS]
00:00:50
◼
►
know we have a lot of stuff to get do I
[TS]
00:00:51
◼
►
mean you're trying to keep the show
[TS]
00:00:52
◼
►
short now right got had to had some
[TS]
00:00:55
◼
►
requests that the show be Whedon that
[TS]
00:00:58
◼
►
not not cutting it short that's not the
[TS]
00:01:00
◼
►
right thing but just make keeping track
[TS]
00:01:02
◼
►
of time a person who asked that didn't
[TS]
00:01:04
◼
►
even mention my show so he probably
[TS]
00:01:06
◼
►
doesn't even listen I don't think he's
[TS]
00:01:08
◼
►
aware of your show he probably looked at
[TS]
00:01:09
◼
►
the runtime of it and said I can't
[TS]
00:01:11
◼
►
listen it might have been short not that
[TS]
00:01:13
◼
►
long not doing to our things I can use
[TS]
00:01:15
◼
►
bond tacked on to the end or anything
[TS]
00:01:16
◼
►
yeah I think you got of all the shows I
[TS]
00:01:19
◼
►
think you are probably the most time
[TS]
00:01:20
◼
►
sensitive there you go so I feel no
[TS]
00:01:24
◼
►
compunction to try to cut it short all
[TS]
00:01:26
◼
►
right don't cut it normal any shorter
[TS]
00:01:28
◼
►
that I normally do don't do anything
[TS]
00:01:29
◼
►
else don't don't change a thing okay so
[TS]
00:01:32
◼
►
follow up time so we missed last week
[TS]
00:01:35
◼
►
because I was on vacation you were on
[TS]
00:01:37
◼
►
vacation we tried to schedule it before
[TS]
00:01:39
◼
►
you had you had told me six or seven
[TS]
00:01:42
◼
►
weeks earlier that you were going to be
[TS]
00:01:44
◼
►
on vacation I put it on the calendar and
[TS]
00:01:46
◼
►
then I didn't I didn't remember or
[TS]
00:01:48
◼
►
something so it's it was not your fault
[TS]
00:01:49
◼
►
that we didn't have a show it's probably
[TS]
00:01:50
◼
►
mine but but the fact was you were not
[TS]
00:01:53
◼
►
available at the regular time and I
[TS]
00:01:56
◼
►
didn't realize that we had changed it so
[TS]
00:01:59
◼
►
anyway so I'm going back to shows for
[TS]
00:02:01
◼
►
some follow up stuff are two weeks but
[TS]
00:02:03
◼
►
it's just one show so last time what
[TS]
00:02:07
◼
►
we're talking about we're talking about
[TS]
00:02:07
◼
►
objective-c and stuff like that and
[TS]
00:02:09
◼
►
high-level language is low-level
[TS]
00:02:12
◼
►
languages yeah
[TS]
00:02:13
◼
►
I thought it was a shame that some of
[TS]
00:02:14
◼
►
that stuff there was at least two or
[TS]
00:02:16
◼
►
three good points that bled over into
[TS]
00:02:18
◼
►
the after dark so I put in the show
[TS]
00:02:20
◼
►
notes like this week the link to the
[TS]
00:02:22
◼
►
after dark most of which is just typical
[TS]
00:02:23
◼
►
after dark stuff but there are one or
[TS]
00:02:26
◼
►
two good points in there about the
[TS]
00:02:28
◼
►
objective-c stuff that I wish I had
[TS]
00:02:30
◼
►
gotten into the regular show huh
[TS]
00:02:32
◼
►
mostly having to do with how the people
[TS]
00:02:35
◼
►
at Apple how the employees at Apple are
[TS]
00:02:37
◼
►
probably not properly motivated to
[TS]
00:02:40
◼
►
resolve the situation talked about in
[TS]
00:02:42
◼
►
the previous show so I want to go into a
[TS]
00:02:44
◼
►
now for time purposes but if you want a
[TS]
00:02:45
◼
►
little bit more on that topic I suggest
[TS]
00:02:47
◼
►
checking out the after dark which is
[TS]
00:02:49
◼
►
that that's super hidden link but if you
[TS]
00:02:50
◼
►
go to the show notes for the show you
[TS]
00:02:51
◼
►
will find the link to it and I would
[TS]
00:02:53
◼
►
also suggest subscribing to that because
[TS]
00:02:55
◼
►
it's usually pretty funny it's not just
[TS]
00:02:57
◼
►
all hypercritical after dark it's all
[TS]
00:02:58
◼
►
sorts of shows a lot of cursing
[TS]
00:03:01
◼
►
everybody who asks for cursing and
[TS]
00:03:03
◼
►
doesn't understand why we edit out the
[TS]
00:03:05
◼
►
profanity no holds barred there it's
[TS]
00:03:09
◼
►
marked as explicit it's not part of the
[TS]
00:03:11
◼
►
master feed it's like a little Easter
[TS]
00:03:13
◼
►
egg you gotta go find it it'll find it
[TS]
00:03:16
◼
►
so it's interesting that when I did the
[TS]
00:03:19
◼
►
original series on the the Copeland 2010
[TS]
00:03:23
◼
►
stuff a whole bunch of articles like
[TS]
00:03:26
◼
►
many years ago and I got a lot of
[TS]
00:03:28
◼
►
responses eventually asking about Mac
[TS]
00:03:31
◼
►
Ruby mm-hmm and which I I should also
[TS]
00:03:34
◼
►
mention I erroneously referred to as
[TS]
00:03:37
◼
►
JRuby I said I knew what you meant you
[TS]
00:03:39
◼
►
knew what I meant and you were too
[TS]
00:03:40
◼
►
polite to correct me I clearly know the
[TS]
00:03:42
◼
►
difference I've used both I meant Mac
[TS]
00:03:44
◼
►
Ruby thanks for the thousands of emails
[TS]
00:03:46
◼
►
and Twitter comments about that I do
[TS]
00:03:49
◼
►
know the difference and thank you for
[TS]
00:03:51
◼
►
reminding me yeah so the Mac group
[TS]
00:03:55
◼
►
people emailed a lot this was many years
[TS]
00:03:57
◼
►
ago back when Mac Ruby was younger and
[TS]
00:03:59
◼
►
their email enthusiasm kind of tapered
[TS]
00:04:02
◼
►
off over time but then when I brought it
[TS]
00:04:05
◼
►
up on the show they came back and they
[TS]
00:04:07
◼
►
said hey what about Mac Ruby partly my
[TS]
00:04:09
◼
►
fault for forgetting to talk about Mac
[TS]
00:04:12
◼
►
Ruby because it is definitely we're
[TS]
00:04:13
◼
►
talking about a well a show I talked
[TS]
00:04:14
◼
►
about how bridges stink on you have a
[TS]
00:04:18
◼
►
bridge to an API that's written for one
[TS]
00:04:21
◼
►
language where you get to write to it in
[TS]
00:04:22
◼
►
another language and bridge connects the
[TS]
00:04:24
◼
►
two things together
[TS]
00:04:26
◼
►
and I said I described lots of things
[TS]
00:04:28
◼
►
that are bad about bridges and how you
[TS]
00:04:30
◼
►
don't get to use the the cool features
[TS]
00:04:32
◼
►
of the high-level language that you want
[TS]
00:04:34
◼
►
to use because you're too busy doing
[TS]
00:04:35
◼
►
things in terms of the lower-level
[TS]
00:04:36
◼
►
language right so the nigra people then
[TS]
00:04:39
◼
►
as now bring up the points that a lot of
[TS]
00:04:42
◼
►
things I was asking for Mac would be
[TS]
00:04:43
◼
►
deliver so there's links in the show
[TS]
00:04:45
◼
►
notes to Mac repeat you should check it
[TS]
00:04:46
◼
►
out but just some examples like you
[TS]
00:04:49
◼
►
don't have to deal with you know making
[TS]
00:04:51
◼
►
NS strings or whatever when you do in
[TS]
00:04:53
◼
►
cocoa programming and Mac Ruby because
[TS]
00:04:55
◼
►
the the bridge makes ruby strings into
[TS]
00:04:58
◼
►
bridged over to NS mutable strings and
[TS]
00:05:00
◼
►
the Ruby hashes are really NS mutable
[TS]
00:05:03
◼
►
dictionaries under the covers and the
[TS]
00:05:04
◼
►
Ruby objects are really Objective C
[TS]
00:05:06
◼
►
objects so you're not just using like
[TS]
00:05:09
◼
►
the skin of the language to call api's
[TS]
00:05:11
◼
►
in some other language they've taken a
[TS]
00:05:13
◼
►
lot of the native data structures and
[TS]
00:05:17
◼
►
features and interesting tidbits in Ruby
[TS]
00:05:20
◼
►
and found in Objective C equivalent and
[TS]
00:05:22
◼
►
mapped it to that hmm now and also this
[TS]
00:05:29
◼
►
is the other thing people like to bring
[TS]
00:05:30
◼
►
up is hey this is an Apple project like
[TS]
00:05:32
◼
►
Apple developers are working on it it's
[TS]
00:05:36
◼
►
the people you know it's not just some
[TS]
00:05:38
◼
►
random third party thing it's actually
[TS]
00:05:39
◼
►
under the auspices of Apple in some
[TS]
00:05:41
◼
►
fashion a lot of Apple's open-source
[TS]
00:05:43
◼
►
stuff it's hard to tell what is you know
[TS]
00:05:47
◼
►
just a project with some people at Apple
[TS]
00:05:48
◼
►
wanted to do and it bosses let them do
[TS]
00:05:49
◼
►
versus what is a strategic initiative
[TS]
00:05:52
◼
►
that's poor important for the entire
[TS]
00:05:53
◼
►
company and often a project will start
[TS]
00:05:55
◼
►
in one way and transition to the other
[TS]
00:05:58
◼
►
thing like LLVM probably started life as
[TS]
00:06:01
◼
►
let's just you know hire this guy and
[TS]
00:06:03
◼
►
check out this type of thing and then
[TS]
00:06:04
◼
►
there was a you know an effort to
[TS]
00:06:06
◼
►
convince the powers-that-be and
[TS]
00:06:08
◼
►
eventually the entire company that hey
[TS]
00:06:10
◼
►
we're going to transition our entire
[TS]
00:06:11
◼
►
compiler strategy to this new thing and
[TS]
00:06:13
◼
►
here's how we're going to do it and lo
[TS]
00:06:14
◼
►
and behold here we are today and we're
[TS]
00:06:15
◼
►
almost completely transitioned so Mac
[TS]
00:06:17
◼
►
Ruby could be like that someday but the
[TS]
00:06:19
◼
►
what I said about Mac Ruby many years
[TS]
00:06:22
◼
►
ago still holds today and that I still
[TS]
00:06:25
◼
►
don't think a bridge is the is the right
[TS]
00:06:28
◼
►
cocoa is still designed for objective-c
[TS]
00:06:30
◼
►
and even if you're mapping you know your
[TS]
00:06:32
◼
►
types from the higher-level language to
[TS]
00:06:34
◼
►
low-level one you're still dealing with
[TS]
00:06:36
◼
►
you know an disputable strings under the
[TS]
00:06:38
◼
►
covers and
[TS]
00:06:39
◼
►
yeah no it's the API is made it's not a
[TS]
00:06:43
◼
►
ruby API if you look at the API you
[TS]
00:06:44
◼
►
would say well that reminds me of you
[TS]
00:06:45
◼
►
know Rails or some other API that's
[TS]
00:06:48
◼
►
idiomatic at like like the bills for the
[TS]
00:06:51
◼
►
Ruby language you look at it and say
[TS]
00:06:53
◼
►
well that that sure looks a lot like
[TS]
00:06:54
◼
►
objective-c to me in this all sorts of
[TS]
00:06:57
◼
►
api's but there's no reasonable way to
[TS]
00:06:58
◼
►
bridge you just have to call these
[TS]
00:07:00
◼
►
methods and with these name parameters
[TS]
00:07:03
◼
►
that look like a projective seeing like
[TS]
00:07:04
◼
►
man why do we need all this parameters
[TS]
00:07:05
◼
►
why am i passing in a value that's going
[TS]
00:07:07
◼
►
to be a read/write attribute that's
[TS]
00:07:09
◼
►
going to have the error written into it
[TS]
00:07:10
◼
►
and all sorts of stuff like that it's
[TS]
00:07:12
◼
►
sort of not the Ruby way but you still
[TS]
00:07:14
◼
►
have to write to those languages there's
[TS]
00:07:17
◼
►
the two layers of debugging problem or
[TS]
00:07:18
◼
►
anytime you have sort of a bridge
[TS]
00:07:19
◼
►
language you would like to debug it the
[TS]
00:07:21
◼
►
Ruby level but the API and you're
[TS]
00:07:24
◼
►
executing code is executing at the
[TS]
00:07:26
◼
►
objective-c level and so if you're using
[TS]
00:07:27
◼
►
gdb or LDB or something you're not
[TS]
00:07:30
◼
►
debugging Ruby you're debugging lower
[TS]
00:07:32
◼
►
level than that so then they have to
[TS]
00:07:33
◼
►
write a higher level of debugger but
[TS]
00:07:36
◼
►
sometimes you might want to look at the
[TS]
00:07:37
◼
►
lower level stuff so you have two layers
[TS]
00:07:38
◼
►
of debuggers to deal with and if your
[TS]
00:07:41
◼
►
bugs in the bridge that's like the worst
[TS]
00:07:42
◼
►
possible situation when there are bugs
[TS]
00:07:43
◼
►
in the bridge itself and you're trying
[TS]
00:07:45
◼
►
to debug with the problem is and there's
[TS]
00:07:48
◼
►
the fact that to write a reasonable
[TS]
00:07:50
◼
►
cocoa program you're not just writing to
[TS]
00:07:52
◼
►
cocoa you're also doing your core
[TS]
00:07:53
◼
►
graphics and core foundation and other
[TS]
00:07:55
◼
►
API is to really are lower level and you
[TS]
00:07:58
◼
►
can bridge them too but it's even bigger
[TS]
00:07:59
◼
►
mismatch between what Ruby expects and
[TS]
00:08:01
◼
►
what these you know native C API is like
[TS]
00:08:05
◼
►
sounding Objective C it's just plain C
[TS]
00:08:08
◼
►
and if you try to keep that paper over
[TS]
00:08:11
◼
►
that then the developers feel like
[TS]
00:08:14
◼
►
they're being kept away from the power
[TS]
00:08:16
◼
►
tools like oh I really want to use core
[TS]
00:08:17
◼
►
graphics to do some drawings here but
[TS]
00:08:19
◼
►
the Ruby language makes it discourages
[TS]
00:08:22
◼
►
me from reaching down to do that or
[TS]
00:08:24
◼
►
makes it more difficult and more
[TS]
00:08:25
◼
►
cumbersome or doesn't feel like I'm I'm
[TS]
00:08:26
◼
►
you know doing things the right way and
[TS]
00:08:29
◼
►
there's also the the non-native problem
[TS]
00:08:32
◼
►
you're like well I'm going to write a
[TS]
00:08:33
◼
►
cocoa application well are you going to
[TS]
00:08:35
◼
►
use like the native language for writing
[TS]
00:08:37
◼
►
cocoa applications Objective C or you
[TS]
00:08:39
◼
►
can use a bridge language because you
[TS]
00:08:40
◼
►
need a crutch sure because you're a
[TS]
00:08:41
◼
►
whimper because but you know it's at
[TS]
00:08:43
◼
►
this macho this macho thing where there
[TS]
00:08:46
◼
►
would be is divided between the
[TS]
00:08:47
◼
►
old-school people like I'm writing a
[TS]
00:08:49
◼
►
real native cocoa application and you're
[TS]
00:08:51
◼
►
not because you're using this other
[TS]
00:08:53
◼
►
and with all that said it's like would
[TS]
00:08:56
◼
►
experienced objective-c developers see
[TS]
00:08:59
◼
►
enough reason to switch like this
[TS]
00:09:00
◼
►
obviously if you're the best objective-c
[TS]
00:09:02
◼
►
programs today are comfortable with
[TS]
00:09:04
◼
►
Objective C so there has to be something
[TS]
00:09:07
◼
►
pretty significant to make them switch
[TS]
00:09:08
◼
►
you have that a carrot as well as a
[TS]
00:09:09
◼
►
stick now Apple could just force
[TS]
00:09:11
◼
►
everyone to switch and so you know Mac
[TS]
00:09:12
◼
►
Ruby is going to be the thing it's our
[TS]
00:09:14
◼
►
new high-level language is slowly going
[TS]
00:09:15
◼
►
to transition away from you know C based
[TS]
00:09:17
◼
►
languages and and this is the path and
[TS]
00:09:19
◼
►
you're gonna have to go to it that's the
[TS]
00:09:21
◼
►
stick version but the carrot has to be
[TS]
00:09:23
◼
►
hey awesome Objective C developers who
[TS]
00:09:25
◼
►
have made our platform what it is here's
[TS]
00:09:28
◼
►
the good things that await you if you
[TS]
00:09:29
◼
►
stop writing your your code in this
[TS]
00:09:32
◼
►
start writing it in that I think that's
[TS]
00:09:33
◼
►
a tough sell
[TS]
00:09:34
◼
►
because I mean it's hard enough for
[TS]
00:09:35
◼
►
Apple to even get the real old-school
[TS]
00:09:38
◼
►
Objective C guys to use the dot syntax
[TS]
00:09:39
◼
►
for properties let alone to switch to
[TS]
00:09:42
◼
►
like a high-level language into mints
[TS]
00:09:44
◼
►
then there's you know there's a good
[TS]
00:09:45
◼
►
reason to do that so I have to come down
[TS]
00:09:49
◼
►
a similar position as I did many years
[TS]
00:09:51
◼
►
ago on Mac Ruby is that I don't think
[TS]
00:09:53
◼
►
bridges are the answer and I don't think
[TS]
00:09:54
◼
►
my Mac Ruby is the answer certainly it's
[TS]
00:09:56
◼
►
the best bridge I've seen and it has the
[TS]
00:09:58
◼
►
most promise and if Apple wanted to make
[TS]
00:09:59
◼
►
it work they could but I don't think
[TS]
00:10:01
◼
►
it's the best solution I think it's kind
[TS]
00:10:03
◼
►
of like a half measure and maybe that's
[TS]
00:10:05
◼
►
something in favor of it in that if
[TS]
00:10:07
◼
►
you're going to transition to something
[TS]
00:10:08
◼
►
don't make this big giant leap I think I
[TS]
00:10:12
◼
►
come down the other side I say that the
[TS]
00:10:13
◼
►
big giant leap is the only way you're
[TS]
00:10:15
◼
►
going to the only way you're gonna have
[TS]
00:10:17
◼
►
a carrot big enough to get people to
[TS]
00:10:18
◼
►
come over you know it's it to say this
[TS]
00:10:21
◼
►
is totally different than what you
[TS]
00:10:22
◼
►
expected it's awesome in ways that you
[TS]
00:10:24
◼
►
haven't even imagined and it's so unlike
[TS]
00:10:26
◼
►
what you've done before that it you
[TS]
00:10:28
◼
►
won't end up making unfavorable
[TS]
00:10:30
◼
►
comparisons to the objective-c that
[TS]
00:10:31
◼
►
you're used to and then it'll be a
[TS]
00:10:33
◼
►
gradual transition to whatever this
[TS]
00:10:34
◼
►
thing is but as I said in the previous
[TS]
00:10:35
◼
►
show I have no idea what that thing is
[TS]
00:10:37
◼
►
so it's easy for me to say I'll just
[TS]
00:10:39
◼
►
make it awesome and really radically
[TS]
00:10:41
◼
►
different than what's out there now and
[TS]
00:10:42
◼
►
everyone want to switch to it
[TS]
00:10:44
◼
►
so that's Mac Ruby I I think it's it's a
[TS]
00:10:48
◼
►
plausible contender Apple can make it
[TS]
00:10:51
◼
►
work but that I so far don't see
[TS]
00:10:53
◼
►
anything that makes me think Apple has
[TS]
00:10:55
◼
►
blessed that as the next generation I
[TS]
00:10:57
◼
►
think it's definitely in the interesting
[TS]
00:10:59
◼
►
experiment phase and I haven't seen any
[TS]
00:11:02
◼
►
moves from Apple that make me think
[TS]
00:11:03
◼
►
otherwise what did you think about if if
[TS]
00:11:05
◼
►
you remember
[TS]
00:11:06
◼
►
when I guess I don't say when Mac os10
[TS]
00:11:09
◼
►
was gaining prominence as a really cool
[TS]
00:11:12
◼
►
place to build apps but it was at that
[TS]
00:11:14
◼
►
turning point when things were were
[TS]
00:11:17
◼
►
really Apple was really really pushing
[TS]
00:11:19
◼
►
to try and get as many people on board
[TS]
00:11:21
◼
►
with developing Mac OS 10 applications
[TS]
00:11:24
◼
►
in any capacity and if you remember and
[TS]
00:11:26
◼
►
we talked about this a little bit you've
[TS]
00:11:27
◼
►
touched on it again there was the the
[TS]
00:11:30
◼
►
Java you could use jaw you could write
[TS]
00:11:31
◼
►
absent Java right there inside of the
[TS]
00:11:34
◼
►
you know the SDK you could just write in
[TS]
00:11:37
◼
►
Java and they never really they made a
[TS]
00:11:41
◼
►
big deal out of the fact that they had
[TS]
00:11:43
◼
►
that and that you could do that but they
[TS]
00:11:45
◼
►
never really really got in there and
[TS]
00:11:48
◼
►
supported it they never really had fully
[TS]
00:11:50
◼
►
fluid you know fleshed out documentation
[TS]
00:11:52
◼
►
for it and then it they just kind of
[TS]
00:11:54
◼
►
swept it under the rug and forgot about
[TS]
00:11:56
◼
►
and the people who were you know like
[TS]
00:11:59
◼
►
the big nerd ranch guys you know and
[TS]
00:12:02
◼
►
those books always said look if you're
[TS]
00:12:03
◼
►
going to build apps in Mac OS 10 just
[TS]
00:12:05
◼
►
bite the bullet learn objective-c don't
[TS]
00:12:07
◼
►
do it in Java it's not as good and some
[TS]
00:12:11
◼
►
of the first versions of the encoder
[TS]
00:12:12
◼
►
which is one of the few cocoa apps or I
[TS]
00:12:15
◼
►
should say Mac OS 10 apps that I built
[TS]
00:12:16
◼
►
we actually had some parts of it that
[TS]
00:12:18
◼
►
were in Java and it was true it just
[TS]
00:12:21
◼
►
made more sense to just do in an
[TS]
00:12:22
◼
►
objective-c
[TS]
00:12:23
◼
►
don't you need apples involvement to
[TS]
00:12:26
◼
►
rienne commitment to really make that
[TS]
00:12:29
◼
►
successful to know that you're investing
[TS]
00:12:32
◼
►
in something that's that's long-term as
[TS]
00:12:33
◼
►
a developer at that time I wasn't coming
[TS]
00:12:37
◼
►
from a position of strength with respect
[TS]
00:12:39
◼
►
to languages they were like you know
[TS]
00:12:42
◼
►
they had the capability to have a Java
[TS]
00:12:45
◼
►
bridge Java was really popular back then
[TS]
00:12:47
◼
►
and they were trying to figure out how
[TS]
00:12:48
◼
►
do we get developers and if the Java was
[TS]
00:12:50
◼
►
going to be the way that they did it
[TS]
00:12:51
◼
►
someone an apple thought that that would
[TS]
00:12:54
◼
►
be a good idea and that the powers to be
[TS]
00:12:56
◼
►
said okay fine you know let's give that
[TS]
00:12:58
◼
►
a try we're going to do the carbon thing
[TS]
00:12:59
◼
►
we're going to do cocoa right and you
[TS]
00:13:01
◼
►
want you think you can do a job a bridge
[TS]
00:13:03
◼
►
we'll try that too just because they
[TS]
00:13:05
◼
►
were hedging their bets they want to say
[TS]
00:13:07
◼
►
you know we got to do everything we can
[TS]
00:13:08
◼
►
to get people to develop this I don't
[TS]
00:13:09
◼
►
think they knew what the result would be
[TS]
00:13:11
◼
►
because they were coming from a ton of
[TS]
00:13:13
◼
►
developers who wrote Mac toolbox
[TS]
00:13:15
◼
►
applications right on power plant or
[TS]
00:13:17
◼
►
whatever so they had to have Carbon for
[TS]
00:13:18
◼
►
them like they
[TS]
00:13:19
◼
►
learn that lesson so the Apple guys were
[TS]
00:13:22
◼
►
saying it you know koko necks may be
[TS]
00:13:24
◼
►
great but there's not that many necks
[TS]
00:13:25
◼
►
developers in the world and we're not
[TS]
00:13:27
◼
►
sure that we can convince our huge
[TS]
00:13:29
◼
►
stable of experienced Mac developers to
[TS]
00:13:32
◼
►
switch to this thing that you love so
[TS]
00:13:33
◼
►
so that was one bet and then someone
[TS]
00:13:35
◼
►
else is saying well job is really
[TS]
00:13:36
◼
►
popular and there's tons of java
[TS]
00:13:38
◼
►
programmers in the world so let's try
[TS]
00:13:40
◼
►
that let's see if we can get you know a
[TS]
00:13:42
◼
►
you know hey you can write Mac OS 10
[TS]
00:13:44
◼
►
applications in Java and they'll be
[TS]
00:13:46
◼
►
awesome so give that a try and you
[TS]
00:13:48
◼
►
objective-c guys you're next people
[TS]
00:13:49
◼
►
we're going to make them use your API
[TS]
00:13:51
◼
►
but we're just going to use a different
[TS]
00:13:52
◼
►
language that I want to learn Objective
[TS]
00:13:53
◼
►
C so they had all these irons in the
[TS]
00:13:55
◼
►
fire the fact that the Objective C
[TS]
00:13:58
◼
►
proponents were inside the company and
[TS]
00:14:00
◼
►
there were a lot of them and they slowly
[TS]
00:14:03
◼
►
came to dominance probably helped but it
[TS]
00:14:04
◼
►
also helps that you know people did the
[TS]
00:14:06
◼
►
math may said well I might as well just
[TS]
00:14:09
◼
►
learn this objective-c thing it's not
[TS]
00:14:10
◼
►
two differents got some weird square
[TS]
00:14:11
◼
►
brackets but it's mostly just C and most
[TS]
00:14:14
◼
►
of them were more inclined to go from C
[TS]
00:14:16
◼
►
C++ to Objective C than to go from C C++
[TS]
00:14:18
◼
►
to Java and the final thing is the Java
[TS]
00:14:22
◼
►
thing was a bridge and bridges stink it
[TS]
00:14:24
◼
►
gets back to my whole you know bridge
[TS]
00:14:25
◼
►
thing they don't want to do it's not
[TS]
00:14:27
◼
►
like the real API it's not the real
[TS]
00:14:30
◼
►
language do is it was a bridge and you
[TS]
00:14:31
◼
►
know like you said when you look at the
[TS]
00:14:33
◼
►
docs Doc's talked about Objective C
[TS]
00:14:35
◼
►
because they were pre-existing things
[TS]
00:14:36
◼
►
they didn't talk about Joplin it was
[TS]
00:14:37
◼
►
just a big mess so the Java bridge fell
[TS]
00:14:40
◼
►
by the wayside had to be supported for
[TS]
00:14:42
◼
►
many many years just out of respect for
[TS]
00:14:44
◼
►
the people who did sort of put some time
[TS]
00:14:46
◼
►
into it but eventually they dropped it
[TS]
00:14:47
◼
►
and you know carbon has gone by the
[TS]
00:14:49
◼
►
wayside too like we went through the
[TS]
00:14:51
◼
►
transition the bottom line is that they
[TS]
00:14:52
◼
►
moved everybody into a cocoa and
[TS]
00:14:54
◼
►
objective-c they found their winner in
[TS]
00:14:56
◼
►
that in that competition but it is
[TS]
00:14:59
◼
►
interesting that they had like they had
[TS]
00:15:00
◼
►
basically a memory manage language it
[TS]
00:15:02
◼
►
just didn't work out for reasons not
[TS]
00:15:04
◼
►
really related language mostly related
[TS]
00:15:05
◼
►
to the fact that it's a bridge and
[TS]
00:15:06
◼
►
because they were using that language to
[TS]
00:15:08
◼
►
write to an API that was made for
[TS]
00:15:09
◼
►
Objective C I'm with you all right I've
[TS]
00:15:16
◼
►
got one more so would you would you then
[TS]
00:15:18
◼
►
go so far as to say John that the the
[TS]
00:15:22
◼
►
concept of of a bridge is a bad concept
[TS]
00:15:26
◼
►
and Java is proof of that or you
[TS]
00:15:28
◼
►
wouldn't you go that far
[TS]
00:15:29
◼
►
I think the concept I think bridges are
[TS]
00:15:31
◼
►
bad in general
[TS]
00:15:32
◼
►
doesn't mean you can't make it work if
[TS]
00:15:33
◼
►
they like I said if they really wanted
[TS]
00:15:35
◼
►
to and they use Mac Ruby as like their
[TS]
00:15:38
◼
►
transition strategy and they slowly by
[TS]
00:15:39
◼
►
steps chant you know develop the API
[TS]
00:15:43
◼
►
until eventually you know many many
[TS]
00:15:44
◼
►
years down live people people are
[TS]
00:15:45
◼
►
literally writing Java applications and
[TS]
00:15:47
◼
►
it's no longer bridge like they
[TS]
00:15:48
◼
►
transitioned away from all the memory
[TS]
00:15:50
◼
►
dangerous uses and stuff through a
[TS]
00:15:52
◼
►
series of deprecations it could be done
[TS]
00:15:54
◼
►
but that doesn't mean bridges aren't bad
[TS]
00:15:56
◼
►
that just means that they may have
[TS]
00:15:58
◼
►
advantages in terms of getting you from
[TS]
00:15:59
◼
►
point A to point B through a series of
[TS]
00:16:02
◼
►
steps but the I do not think they're
[TS]
00:16:04
◼
►
they're good there are things hard about
[TS]
00:16:07
◼
►
clean breaks as well you could kind of
[TS]
00:16:11
◼
►
say that Objective C is not is not a
[TS]
00:16:13
◼
►
bridge from C C++ but it was a nice
[TS]
00:16:15
◼
►
transition because they share the same
[TS]
00:16:17
◼
►
base language I don't know there's ever
[TS]
00:16:20
◼
►
been a successful bridge stringent but I
[TS]
00:16:22
◼
►
feel like it could be done but now I'm
[TS]
00:16:23
◼
►
not I'm not a fan of bridges as we'll
[TS]
00:16:26
◼
►
get to more when we get to the main
[TS]
00:16:27
◼
►
topic imma do a quick aside here if you
[TS]
00:16:30
◼
►
think we have time yeah I'm Ireland
[TS]
00:16:32
◼
►
stuff from back to work last week sure
[TS]
00:16:34
◼
►
this is a strange aside in the middle of
[TS]
00:16:37
◼
►
show by programming languages but I want
[TS]
00:16:38
◼
►
to be timely because if I keep it around
[TS]
00:16:40
◼
►
for weeks it will make any sense so last
[TS]
00:16:45
◼
►
Rutland man who does the show back to
[TS]
00:16:47
◼
►
work with you had a blog post about his
[TS]
00:16:50
◼
►
ongoing struggles for over the book
[TS]
00:16:52
◼
►
project he's working on and for people
[TS]
00:16:54
◼
►
who don't know Merlin man is a
[TS]
00:16:55
◼
►
Productivity expert if you want to put
[TS]
00:16:57
◼
►
that in quotes I'm sure he would hate
[TS]
00:16:58
◼
►
that description but I don't know how
[TS]
00:17:00
◼
►
else to encapsulate what he does but he
[TS]
00:17:01
◼
►
he writes and gives talks about
[TS]
00:17:04
◼
►
productivity and related topics and last
[TS]
00:17:08
◼
►
week he did this blog post that
[TS]
00:17:10
◼
►
explained the problems he was having
[TS]
00:17:12
◼
►
getting his current work project done to
[TS]
00:17:14
◼
►
do a book and you needed to show about
[TS]
00:17:16
◼
►
it and then after dark as well which are
[TS]
00:17:18
◼
►
in the show notes and he had the the
[TS]
00:17:21
◼
►
preview page open for his show where you
[TS]
00:17:23
◼
►
get the people listeners get to put
[TS]
00:17:25
◼
►
comments before the show airs and then
[TS]
00:17:26
◼
►
you talked about the comments on the air
[TS]
00:17:28
◼
►
and a couple of comments I didn't write
[TS]
00:17:30
◼
►
any comments but I went through the
[TS]
00:17:31
◼
►
comments before the show and I did click
[TS]
00:17:33
◼
►
that little like button yeah on some of
[TS]
00:17:35
◼
►
the ones that I thought were good
[TS]
00:17:36
◼
►
mystery most of the ones most of the
[TS]
00:17:38
◼
►
ones I liked or ones that were
[TS]
00:17:41
◼
►
challenging questions where they would
[TS]
00:17:42
◼
►
say the gist that most of them was hey
[TS]
00:17:45
◼
►
Merlin man your
[TS]
00:17:46
◼
►
you're this productivity expert but here
[TS]
00:17:48
◼
►
you are not able to get this book done
[TS]
00:17:50
◼
►
that's you know you're super late on and
[TS]
00:17:52
◼
►
you kind of seem like you're bailing out
[TS]
00:17:53
◼
►
on it how are we supposed to trust
[TS]
00:17:56
◼
►
anything you say about productivity when
[TS]
00:17:57
◼
►
in your real life you can't obviously
[TS]
00:17:59
◼
►
can't be productive and there were
[TS]
00:18:01
◼
►
several people asking that that's like
[TS]
00:18:03
◼
►
the obvious question about this whole
[TS]
00:18:05
◼
►
thing and you talked about it a lot on
[TS]
00:18:07
◼
►
the show and the reason I click those
[TS]
00:18:10
◼
►
like buttons was not that I agreed with
[TS]
00:18:13
◼
►
the people who were saying it but it but
[TS]
00:18:14
◼
►
that I wanted him to confront those
[TS]
00:18:16
◼
►
points head-on you know because that's
[TS]
00:18:17
◼
►
that's the the question that jumps right
[TS]
00:18:19
◼
►
out at you immediately about this whole
[TS]
00:18:21
◼
►
thing and and he did that for the most
[TS]
00:18:24
◼
►
part he gave you no answer the questions
[TS]
00:18:27
◼
►
head-on and gave answers that he thought
[TS]
00:18:30
◼
►
people wanted to hear you know he wasn't
[TS]
00:18:32
◼
►
shying away from it if anything he was
[TS]
00:18:33
◼
►
trying to stay on topic
[TS]
00:18:35
◼
►
I wouldn't he wouldn't let you move on
[TS]
00:18:38
◼
►
to the next questions he want to feel
[TS]
00:18:39
◼
►
like he addressed it entirely so that
[TS]
00:18:41
◼
►
was good but the other reason I picked
[TS]
00:18:43
◼
►
those those questions is that I felt
[TS]
00:18:46
◼
►
like I knew what the answer was going to
[TS]
00:18:47
◼
►
be like I wanted to hear him say you
[TS]
00:18:48
◼
►
know I felt like if someone had told me
[TS]
00:18:50
◼
►
defend Merlyn man I would have a
[TS]
00:18:52
◼
►
vigorous defense for his his actions and
[TS]
00:18:55
◼
►
and what he'd done with the book and
[TS]
00:18:56
◼
►
everything I don't want to hear him say
[TS]
00:18:58
◼
►
that too right he got out most of the
[TS]
00:19:00
◼
►
points but one of them that he missed
[TS]
00:19:01
◼
►
that I wanted to throw out there
[TS]
00:19:03
◼
►
here's that but I would have sent if I
[TS]
00:19:05
◼
►
was in his shoes and someone said the
[TS]
00:19:06
◼
►
same thing to me here's what I would
[TS]
00:19:07
◼
►
have said about that ah you know so I
[TS]
00:19:10
◼
►
would have said that yeah the
[TS]
00:19:11
◼
►
expectation is that if you some guy
[TS]
00:19:13
◼
►
writing a book about productivity is
[TS]
00:19:15
◼
►
going to be written by a Productivity
[TS]
00:19:16
◼
►
expert that's going to be like somebody
[TS]
00:19:18
◼
►
who's really good at being productive
[TS]
00:19:19
◼
►
right and that's what all those
[TS]
00:19:22
◼
►
questions were based on because people
[TS]
00:19:23
◼
►
feel cheated and duped or whatever when
[TS]
00:19:25
◼
►
they see the problems that he's having
[TS]
00:19:26
◼
►
in real life but what I would say to
[TS]
00:19:29
◼
►
that is that in reality a person writing
[TS]
00:19:31
◼
►
a book about productivity is most likely
[TS]
00:19:33
◼
►
someone who struggle with productivity
[TS]
00:19:35
◼
►
himself and not just someone who
[TS]
00:19:37
◼
►
struggle because lots of people struggle
[TS]
00:19:38
◼
►
with productivity if you're writing a
[TS]
00:19:39
◼
►
book about productivity you're probably
[TS]
00:19:40
◼
►
someone who struggle with productivity
[TS]
00:19:41
◼
►
and also someone's who's smart enough
[TS]
00:19:44
◼
►
and self-aware enough to explore while
[TS]
00:19:46
◼
►
you're struggling with it and come up
[TS]
00:19:48
◼
►
with answers right that's the
[TS]
00:19:49
◼
►
combination you need you need someone
[TS]
00:19:50
◼
►
who having a problem with it and someone
[TS]
00:19:52
◼
►
who's really smart
[TS]
00:19:53
◼
►
who's going to think about why am I
[TS]
00:19:54
◼
►
having a problem is what's the deal here
[TS]
00:19:56
◼
►
if you've never had a problem with
[TS]
00:19:57
◼
►
productivity and you're super productive
[TS]
00:19:59
◼
►
and everything you will
[TS]
00:20:00
◼
►
probably not have much deep insight into
[TS]
00:20:01
◼
►
what helps make people productive
[TS]
00:20:03
◼
►
because it would just be like I don't
[TS]
00:20:05
◼
►
know I just sit down I do work like
[TS]
00:20:06
◼
►
you're not gonna write a book about
[TS]
00:20:07
◼
►
Prague - because you have no idea how it
[TS]
00:20:09
◼
►
works you've never even given it any
[TS]
00:20:10
◼
►
thought right it's like you had an
[TS]
00:20:12
◼
►
interview with a Horace they do on the
[TS]
00:20:14
◼
►
pipeline recently yeah and when he said
[TS]
00:20:16
◼
►
was like basically mistakes or how we
[TS]
00:20:18
◼
►
learn which is topic bit up we've talked
[TS]
00:20:20
◼
►
about on the show before and so what
[TS]
00:20:22
◼
►
Merlin's
[TS]
00:20:23
◼
►
experience do basic science Merlin is
[TS]
00:20:25
◼
►
still making mistakes which means that
[TS]
00:20:27
◼
►
Merlin is still learning like if you
[TS]
00:20:29
◼
►
think you know everything about
[TS]
00:20:30
◼
►
productivity and you're just gonna make
[TS]
00:20:31
◼
►
pronouncements from the mountaintop you
[TS]
00:20:33
◼
►
basically stopped learning like you
[TS]
00:20:35
◼
►
don't want to read that guy's book it's
[TS]
00:20:36
◼
►
gonna be like I know everything there is
[TS]
00:20:38
◼
►
to know about productivity I'm going to
[TS]
00:20:39
◼
►
lay it out for you and here it is right
[TS]
00:20:40
◼
►
because you think you've got it figured
[TS]
00:20:42
◼
►
all all figured out right it's kind of
[TS]
00:20:45
◼
►
similar to the stereotype you hear that
[TS]
00:20:46
◼
►
like you know psychology majors in
[TS]
00:20:48
◼
►
school are the people most likely to
[TS]
00:20:49
◼
►
have psychological problems that that's
[TS]
00:20:51
◼
►
just the way the world works if you're
[TS]
00:20:52
◼
►
interested in the topic or have any
[TS]
00:20:55
◼
►
insight into topics probably something
[TS]
00:20:57
◼
►
you've dealt with yourself and you know
[TS]
00:20:58
◼
►
struggle with and it's not just a
[TS]
00:20:59
◼
►
struggling I guess that you have to be
[TS]
00:21:00
◼
►
someone who has these problems and also
[TS]
00:21:03
◼
►
someone who's super smart and self-aware
[TS]
00:21:04
◼
►
that's how all you know great books and
[TS]
00:21:06
◼
►
investigations into anything that has
[TS]
00:21:08
◼
►
anything to do with like you know
[TS]
00:21:11
◼
►
personality wise or psychological things
[TS]
00:21:13
◼
►
or any sort of you know human type of
[TS]
00:21:17
◼
►
endeavor not just like writing about
[TS]
00:21:19
◼
►
math or something right right the people
[TS]
00:21:20
◼
►
who have who have struggled with it and
[TS]
00:21:22
◼
►
thought about it and come up with
[TS]
00:21:23
◼
►
answers and who continue to do so who
[TS]
00:21:25
◼
►
have the most insights and I wish she'd
[TS]
00:21:27
◼
►
made that point in the showing since he
[TS]
00:21:28
◼
►
didn't I'm making that point in the show
[TS]
00:21:30
◼
►
so for all the people who are thinking
[TS]
00:21:31
◼
►
they don't want to read a Productivity
[TS]
00:21:33
◼
►
book by someone who can't finish a book
[TS]
00:21:34
◼
►
that's exactly the one you do want to
[TS]
00:21:36
◼
►
read because when it's done you will see
[TS]
00:21:39
◼
►
that it has the you know the scars of
[TS]
00:21:41
◼
►
experience have been built into that
[TS]
00:21:44
◼
►
book that's a great point I mean I in a
[TS]
00:21:47
◼
►
way you almost feel like a book like
[TS]
00:21:50
◼
►
this I don't know maybe maybe this
[TS]
00:21:52
◼
►
sounds weird but you almost want it to
[TS]
00:21:54
◼
►
be hard you know what I'm saying
[TS]
00:21:58
◼
►
yeah I mean this is like I said if it's
[TS]
00:22:01
◼
►
easy if it's some dude who's like hasn't
[TS]
00:22:02
◼
►
thought about productivity in ten years
[TS]
00:22:04
◼
►
because he's been given the same talk at
[TS]
00:22:06
◼
►
companies for ten years and he thought
[TS]
00:22:07
◼
►
he figured it out ten years ago and he
[TS]
00:22:09
◼
►
wrote in a little formula and he got a
[TS]
00:22:10
◼
►
best-selling book and hasn't given a day
[TS]
00:22:12
◼
►
of thought since then
[TS]
00:22:13
◼
►
that's not useful you know you have to
[TS]
00:22:15
◼
►
still be doing it you have to still be
[TS]
00:22:16
◼
►
thinking about it to you know to have
[TS]
00:22:19
◼
►
the insights to share with people
[TS]
00:22:20
◼
►
because these these things change you
[TS]
00:22:22
◼
►
know the environment changes technology
[TS]
00:22:24
◼
►
changes all of our lives change you know
[TS]
00:22:26
◼
►
you come to different points in your
[TS]
00:22:27
◼
►
life you can you know relate to things
[TS]
00:22:29
◼
►
differently when you're you know older
[TS]
00:22:30
◼
►
and a father than when you're younger
[TS]
00:22:31
◼
►
and stuff you have to always keep
[TS]
00:22:32
◼
►
learning it always keep making mistakes
[TS]
00:22:38
◼
►
let's make mistakes they'll be the name
[TS]
00:22:40
◼
►
for a show yeah
[TS]
00:22:41
◼
►
if only somebody would do that yeah all
[TS]
00:22:46
◼
►
right are you ready for main topic yeah
[TS]
00:22:48
◼
►
- thirty minutes yeah this is about what
[TS]
00:22:51
◼
►
we do well let's do our first well thank
[TS]
00:22:52
◼
►
our first sponsor it's the into its
[TS]
00:22:54
◼
►
small business blog if you're in a small
[TS]
00:22:55
◼
►
or medium size business not a large one
[TS]
00:22:57
◼
►
it's probably not for you because they
[TS]
00:22:59
◼
►
talk about things like starting a
[TS]
00:23:02
◼
►
business running a business social media
[TS]
00:23:04
◼
►
integrating it with marketing and that
[TS]
00:23:06
◼
►
kind of thing so it really does appealed
[TS]
00:23:09
◼
►
I think the people who run the small in
[TS]
00:23:11
◼
►
the medium-sized businesses well you can
[TS]
00:23:13
◼
►
go there you can go to blog intuit calm
[TS]
00:23:16
◼
►
you can read articles about this they do
[TS]
00:23:17
◼
►
interviews with you know up-and-coming
[TS]
00:23:19
◼
►
business leaders they even interviewed
[TS]
00:23:21
◼
►
me John did you read that one I don't
[TS]
00:23:24
◼
►
think I did they interviewed me there
[TS]
00:23:26
◼
►
and they do that they entered they do
[TS]
00:23:27
◼
►
interviews and now they've gone mobile
[TS]
00:23:29
◼
►
so there is an Intuit small business
[TS]
00:23:31
◼
►
blog iOS app which is very handy of
[TS]
00:23:35
◼
►
course it works for your iPhone your
[TS]
00:23:36
◼
►
iPod Touch if you're like John siracusa
[TS]
00:23:39
◼
►
it works for an iPad and you can read
[TS]
00:23:41
◼
►
the blog articles you can do full-text
[TS]
00:23:43
◼
►
searches you could do tons of stuff and
[TS]
00:23:45
◼
►
it's a brand new app they really want
[TS]
00:23:46
◼
►
you to go out there and kick the tires
[TS]
00:23:47
◼
►
on this so you can download that just by
[TS]
00:23:50
◼
►
searching for Intuit blog in the iTunes
[TS]
00:23:52
◼
►
App Store or by going to blogged on
[TS]
00:23:53
◼
►
Intuit calm it's well worth your time to
[TS]
00:23:56
◼
►
check this out a lot of really valuable
[TS]
00:23:58
◼
►
articles and they have told me that they
[TS]
00:24:01
◼
►
are coming in with an Android version of
[TS]
00:24:02
◼
►
the app as well so go check that out
[TS]
00:24:04
◼
►
thanks to them very much for making this
[TS]
00:24:07
◼
►
show possible now on to the topic the
[TS]
00:24:11
◼
►
real main topic the Royal Wedding is
[TS]
00:24:15
◼
►
that's not there is that thrill I think
[TS]
00:24:17
◼
►
that'd be great thanks to Robert Hoglund
[TS]
00:24:20
◼
►
in the chat room for that idea no that
[TS]
00:24:22
◼
►
is not the main topic I was I was going
[TS]
00:24:24
◼
►
to say I'm probably pretty well prepared
[TS]
00:24:25
◼
►
for that I was what I did watch some of
[TS]
00:24:27
◼
►
sorry to disappoint you guys that have
[TS]
00:24:29
◼
►
such a dim awareness that this thing is
[TS]
00:24:31
◼
►
even taking place yeah but I would have
[TS]
00:24:33
◼
►
nothing to say about it believe it or
[TS]
00:24:34
◼
►
not today believe it or not it's sort of
[TS]
00:24:38
◼
►
a continuation of the the Copeland 2010
[TS]
00:24:41
◼
►
show because at the end of that show we
[TS]
00:24:43
◼
►
started to talk a little bit about
[TS]
00:24:44
◼
►
programming languages and I thought that
[TS]
00:24:46
◼
►
was a topic that was worth the whole
[TS]
00:24:50
◼
►
show on its own
[TS]
00:24:51
◼
►
some people complain last time that
[TS]
00:24:52
◼
►
talking about programming stuff was too
[TS]
00:24:54
◼
►
esoteric and like not in character for
[TS]
00:24:56
◼
►
the show yeah but just just so happens
[TS]
00:25:00
◼
►
that we picked less techy topics to
[TS]
00:25:01
◼
►
begin with it's definitely in character
[TS]
00:25:03
◼
►
for me it is you're you are a programmer
[TS]
00:25:05
◼
►
that's what he does what I do for a
[TS]
00:25:07
◼
►
living so I don't I don't feel like it's
[TS]
00:25:08
◼
►
out of character so that this is gonna
[TS]
00:25:09
◼
►
be part of the things that we talk about
[TS]
00:25:11
◼
►
on the show is programming language type
[TS]
00:25:13
◼
►
stuffing if you're not a developer and
[TS]
00:25:14
◼
►
don't care about programming languages
[TS]
00:25:16
◼
►
then maybe you can skip this week maybe
[TS]
00:25:18
◼
►
I still think it would be interesting
[TS]
00:25:19
◼
►
yeah but this is definitely what I'm
[TS]
00:25:22
◼
►
saying is this is definitely not out of
[TS]
00:25:23
◼
►
character for this for the show I don't
[TS]
00:25:25
◼
►
think alright I don't I don't think so
[TS]
00:25:28
◼
►
not at all as I said in the past show
[TS]
00:25:30
◼
►
this is a topic that I wanted to write
[TS]
00:25:32
◼
►
about for a long time but I could just
[TS]
00:25:33
◼
►
never get to it mostly because it is
[TS]
00:25:35
◼
►
kind of out of character for what I tend
[TS]
00:25:37
◼
►
to write on ARS technica and elsewhere
[TS]
00:25:39
◼
►
as I don't tend to write about
[TS]
00:25:40
◼
►
programming language that's more of a
[TS]
00:25:41
◼
►
thing you expect to see on either a
[TS]
00:25:43
◼
►
personal developer blog which I don't
[TS]
00:25:46
◼
►
really have one of or a developer
[TS]
00:25:49
◼
►
oriented site which are static and
[TS]
00:25:50
◼
►
Macworld and so on or not
[TS]
00:25:52
◼
►
so I don't get to write about it but I
[TS]
00:25:53
◼
►
would like to talk about it um so here
[TS]
00:25:57
◼
►
we go so in a past show talked a little
[TS]
00:26:00
◼
►
bit about how geeks tend to like a
[TS]
00:26:02
◼
►
meritocracy I think it was in the show
[TS]
00:26:03
◼
►
where I was talking about how they felt
[TS]
00:26:05
◼
►
it was unfair that Windows 1 the desktop
[TS]
00:26:07
◼
►
because it wasn't and undeserved victory
[TS]
00:26:09
◼
►
because Mac operating system was better
[TS]
00:26:11
◼
►
it was the show where we psychoanalyze
[TS]
00:26:13
◼
►
gruber I forgot what episode that was
[TS]
00:26:16
◼
►
but that tends to be the case the geeks
[TS]
00:26:19
◼
►
think that the technically superior
[TS]
00:26:21
◼
►
solution should win and and as we know
[TS]
00:26:24
◼
►
it often doesn't I know in programming
[TS]
00:26:26
◼
►
languages there are a weird case because
[TS]
00:26:29
◼
►
there's something that only geeks care
[TS]
00:26:32
◼
►
about but programming languages almost
[TS]
00:26:34
◼
►
never become popular based on their
[TS]
00:26:35
◼
►
merits because there are so many more
[TS]
00:26:37
◼
►
important things than that so it's kind
[TS]
00:26:40
◼
►
of a weird situation where
[TS]
00:26:41
◼
►
this thing that only geeks care about
[TS]
00:26:43
◼
►
it's never a meritocracy and that's why
[TS]
00:26:46
◼
►
it's a source of lots that's one of the
[TS]
00:26:48
◼
►
many reasons why it's a source of lots
[TS]
00:26:49
◼
►
of tension in the geek community these
[TS]
00:26:51
◼
►
arguments about which language is better
[TS]
00:26:54
◼
►
than another and so on and so forth so
[TS]
00:26:57
◼
►
here are some of the more important
[TS]
00:26:58
◼
►
things that can make a programming
[TS]
00:26:59
◼
►
language popular so when you have a you
[TS]
00:27:03
◼
►
know what platform is this language the
[TS]
00:27:06
◼
►
official language of that's a big thing
[TS]
00:27:09
◼
►
that can help programming language
[TS]
00:27:10
◼
►
obviously objective-c would probably be
[TS]
00:27:12
◼
►
nowhere if it wasn't the official
[TS]
00:27:14
◼
►
language of the Mac and iOS platforms
[TS]
00:27:16
◼
►
the only reason a lot of people have
[TS]
00:27:18
◼
►
especially but in iOS the only reason
[TS]
00:27:20
◼
►
anyone has learned objective-c is
[TS]
00:27:21
◼
►
because this wouldn't need to do if you
[TS]
00:27:23
◼
►
want to write an iPhone app can use this
[TS]
00:27:28
◼
►
language in more than one place is kind
[TS]
00:27:29
◼
►
of the opposite like if I learn this can
[TS]
00:27:31
◼
►
I only write for iOS or can I use it
[TS]
00:27:33
◼
►
someplace else and this is part of
[TS]
00:27:35
◼
►
what's made C and C++ ridiculously
[TS]
00:27:38
◼
►
popular in the old days but so you could
[TS]
00:27:39
◼
►
write C tons of places like it seemed
[TS]
00:27:42
◼
►
like it at one point every single
[TS]
00:27:43
◼
►
platform you see as it's you know native
[TS]
00:27:45
◼
►
systems programming language and C++
[TS]
00:27:47
◼
►
differently and then later Java was like
[TS]
00:27:48
◼
►
oh you learned Java but you can use it
[TS]
00:27:50
◼
►
everywhere you can use it on all the web
[TS]
00:27:51
◼
►
development and server side code and
[TS]
00:27:53
◼
►
maybe client-side code to knows but you
[TS]
00:27:57
◼
►
weren't just learning a language for one
[TS]
00:27:58
◼
►
particular thing another thing can help
[TS]
00:28:00
◼
►
languages like can I create a new kind
[TS]
00:28:03
◼
►
of application with this language so if
[TS]
00:28:06
◼
►
I learn this language that I never
[TS]
00:28:07
◼
►
learned before can I write an
[TS]
00:28:09
◼
►
application that I can't write in any of
[TS]
00:28:11
◼
►
the languages that I know now or can't
[TS]
00:28:14
◼
►
write easily a good example is that like
[TS]
00:28:16
◼
►
CGI at the dawn of the web you could
[TS]
00:28:19
◼
►
write a CGI program and see and people
[TS]
00:28:21
◼
►
did but it was so clearly not not the
[TS]
00:28:24
◼
►
thing to do so that was a lot of what
[TS]
00:28:25
◼
►
gave pearls popularity and they're gonna
[TS]
00:28:27
◼
►
say like you know CGI web it's great but
[TS]
00:28:29
◼
►
seriously don't write a C program to
[TS]
00:28:31
◼
►
parse HTTP headers and pillow stuff
[TS]
00:28:34
◼
►
here's this other language and it does
[TS]
00:28:35
◼
►
that stuff much easier and look how
[TS]
00:28:36
◼
►
short this is I can give you a nice
[TS]
00:28:37
◼
►
little CGI in like a little page of code
[TS]
00:28:40
◼
►
and hey you don't need to compile it uh
[TS]
00:28:42
◼
►
and that was a new kind of application
[TS]
00:28:44
◼
►
that you couldn't write with you know a
[TS]
00:28:46
◼
►
compiled thing or C or C both of us or
[TS]
00:28:48
◼
►
was it was so cumbersome that you didn't
[TS]
00:28:51
◼
►
want to basically another thing that can
[TS]
00:28:53
◼
►
help languages it is
[TS]
00:28:55
◼
►
can I try this hot new thing if I learn
[TS]
00:28:57
◼
►
this language rails is a great example
[TS]
00:28:59
◼
►
of that rails it was hot and they're
[TS]
00:29:01
◼
►
like well I really want to try this
[TS]
00:29:02
◼
►
Rails thing like I know how to write web
[TS]
00:29:04
◼
►
apps I'm writing about for years but
[TS]
00:29:05
◼
►
this looks like a cool new way to write
[TS]
00:29:06
◼
►
web apps and I guess to try this rails
[TS]
00:29:09
◼
►
things I haven't learned Ruby well okay
[TS]
00:29:10
◼
►
I'll do that it was like you know call
[TS]
00:29:13
◼
►
it a fad but it's not that's kind of
[TS]
00:29:15
◼
►
route but you get the idea and the final
[TS]
00:29:20
◼
►
thing I have my list here is is this one
[TS]
00:29:22
◼
►
of only a few possible choices for doing
[TS]
00:29:24
◼
►
this thing
[TS]
00:29:25
◼
►
javascript is a good example of this if
[TS]
00:29:27
◼
►
you want to write client-side web you
[TS]
00:29:30
◼
►
know code for web applications
[TS]
00:29:32
◼
►
your choices are basically JavaScript
[TS]
00:29:35
◼
►
maybe Java for applets and maybe flash I
[TS]
00:29:38
◼
►
guess but flash requires plugins and
[TS]
00:29:40
◼
►
Java is this big bloated thing that
[TS]
00:29:42
◼
►
nobody really like that's why no those
[TS]
00:29:43
◼
►
took off so your choices are really
[TS]
00:29:45
◼
►
limited if you want to write client-side
[TS]
00:29:47
◼
►
web code you're basically be writing in
[TS]
00:29:49
◼
►
JavaScript write or use or using a
[TS]
00:29:51
◼
►
framework like CoffeeScript that turns
[TS]
00:29:53
◼
►
it into JavaScript for you we'll talk
[TS]
00:29:55
◼
►
about that okay so so the result is
[TS]
00:29:58
◼
►
since most programming languages are not
[TS]
00:30:00
◼
►
picked based on their merit so picked on
[TS]
00:30:02
◼
►
these other tons much more important
[TS]
00:30:04
◼
►
things the result of this is in my
[TS]
00:30:06
◼
►
opinion most programming languages stink
[TS]
00:30:07
◼
►
or in the best case they eventually
[TS]
00:30:10
◼
►
stink that's the best case the worst
[TS]
00:30:12
◼
►
that the normal case is that they stink
[TS]
00:30:13
◼
►
from day one but you have to use them
[TS]
00:30:15
◼
►
for one of those other reasons that's
[TS]
00:30:17
◼
►
much more important and which is fine
[TS]
00:30:19
◼
►
it's not saying you're miserable doing
[TS]
00:30:20
◼
►
it over but the bottom line is that the
[TS]
00:30:21
◼
►
language itself stinks and in the best
[TS]
00:30:23
◼
►
case the day you start using a language
[TS]
00:30:25
◼
►
it's actually awesome you really like it
[TS]
00:30:26
◼
►
but then ten years down the line
[TS]
00:30:29
◼
►
language advancement has moved on you're
[TS]
00:30:31
◼
►
stuck using someone for one of those
[TS]
00:30:32
◼
►
other reasons so that eventually this
[TS]
00:30:34
◼
►
language comes to stink relative to
[TS]
00:30:35
◼
►
everything else it's kind of like
[TS]
00:30:38
◼
►
programming language the lifetime of a
[TS]
00:30:40
◼
►
programming language gets tied to the
[TS]
00:30:41
◼
►
API or platform lifetime right so you
[TS]
00:30:46
◼
►
know the API or the platform will live
[TS]
00:30:50
◼
►
for just decades sometimes but during
[TS]
00:30:52
◼
►
that time the state of the art in
[TS]
00:30:54
◼
►
languages it just has that you know
[TS]
00:30:55
◼
►
advanced way past that and even just
[TS]
00:30:57
◼
►
during the first few years it you know
[TS]
00:30:59
◼
►
it doesn't ache long for people to see
[TS]
00:31:00
◼
►
what it is about the language they're
[TS]
00:31:02
◼
►
currently using it stinks when they look
[TS]
00:31:04
◼
►
off to the side to see you know wow look
[TS]
00:31:06
◼
►
at that cool thing they're doing over
[TS]
00:31:07
◼
►
there well I can't use that because
[TS]
00:31:08
◼
►
got a ride iOS applications that use
[TS]
00:31:10
◼
►
objective-c or well I can't use that
[TS]
00:31:11
◼
►
because I'm writing web applications and
[TS]
00:31:13
◼
►
I gotta use JavaScript and numerous
[TS]
00:31:17
◼
►
cases sometimes a language can suck for
[TS]
00:31:18
◼
►
years and years even before it becomes
[TS]
00:31:20
◼
►
popular so the javascript is a great
[TS]
00:31:22
◼
►
example this JavaScript you know was
[TS]
00:31:24
◼
►
introduced in that scape whatever was
[TS]
00:31:25
◼
►
1.0 or ages ago javascript was
[TS]
00:31:27
◼
►
introduced and it just sat there sort of
[TS]
00:31:31
◼
►
unloved for years because I got a
[TS]
00:31:33
◼
►
JavaScript I guess you can do some stuff
[TS]
00:31:35
◼
►
to like you know validate forms or
[TS]
00:31:37
◼
►
something but whatever right and it
[TS]
00:31:39
◼
►
wasn't and it wasn't that great back
[TS]
00:31:42
◼
►
then and then years and years later you
[TS]
00:31:44
◼
►
know with better dom support and CSS and
[TS]
00:31:46
◼
►
faster CPUs and better browsers and
[TS]
00:31:48
◼
►
stuff suddenly javascript is hot it's
[TS]
00:31:50
◼
►
like well now hey you know we've got we
[TS]
00:31:52
◼
►
with all these advances in web engine
[TS]
00:31:53
◼
►
technology and better CPUs and you know
[TS]
00:31:56
◼
►
all these other things we can do with it
[TS]
00:31:57
◼
►
dynamic HTML whatever buzzword doing
[TS]
00:31:59
◼
►
bottom line is suddenly javascript
[TS]
00:32:01
◼
►
became interesting but it still sucks
[TS]
00:32:03
◼
►
this was still the same crappy language
[TS]
00:32:05
◼
►
it was 50 years ago not 50 seems like 50
[TS]
00:32:07
◼
►
years ago Internet time is still the
[TS]
00:32:09
◼
►
same credi language but now suddenly
[TS]
00:32:10
◼
►
it's popular so it didn't even get a
[TS]
00:32:12
◼
►
chance to be it was never good right and
[TS]
00:32:14
◼
►
and then it sat there for years doing
[TS]
00:32:16
◼
►
nothing until people even noticed it uh
[TS]
00:32:18
◼
►
but now you know people need to get work
[TS]
00:32:20
◼
►
done like they need to you need to use
[TS]
00:32:23
◼
►
JavaScript so they want to transform the
[TS]
00:32:25
◼
►
language into something that sucks less
[TS]
00:32:26
◼
►
and this happened even before
[TS]
00:32:28
◼
►
CoffeeScript or to talk about in a
[TS]
00:32:29
◼
►
second this happened you know as soon as
[TS]
00:32:31
◼
►
people started having to use JavaScript
[TS]
00:32:33
◼
►
it's all right well I got to write
[TS]
00:32:35
◼
►
JavaScript and dhtml is cool and I can
[TS]
00:32:37
◼
►
do all these cool transformations and
[TS]
00:32:38
◼
►
all most dynamic stuff or whatever but
[TS]
00:32:39
◼
►
you know what I would like I would like
[TS]
00:32:41
◼
►
keep it work like the language that I'm
[TS]
00:32:42
◼
►
used to so I would like if it had a
[TS]
00:32:44
◼
►
class-based inheritance instead of
[TS]
00:32:45
◼
►
prototype based inheritance and I'd
[TS]
00:32:47
◼
►
really like a nice way to define classes
[TS]
00:32:48
◼
►
and methods and I really like to be able
[TS]
00:32:50
◼
►
to subclass stuff and I really like to
[TS]
00:32:52
◼
►
be able to define properties and do
[TS]
00:32:54
◼
►
things without polluting the global
[TS]
00:32:55
◼
►
namespace with variables and all these
[TS]
00:32:57
◼
►
all the tricks that would learn like so
[TS]
00:32:59
◼
►
that they very quickly started building
[TS]
00:33:00
◼
►
this other language on top of JavaScript
[TS]
00:33:01
◼
►
and they went by all sorts of different
[TS]
00:33:04
◼
►
names and different API s and everyone
[TS]
00:33:05
◼
►
who made any sort of library like use
[TS]
00:33:07
◼
►
the library validating form so we're
[TS]
00:33:08
◼
►
also going to define our own class an
[TS]
00:33:09
◼
►
object system and here's how you define
[TS]
00:33:11
◼
►
a class in our system and use that you
[TS]
00:33:12
◼
►
define an object and here's how you doin
[TS]
00:33:13
◼
►
heritance right and then you know seven
[TS]
00:33:15
◼
►
different people did that so if you're
[TS]
00:33:16
◼
►
using prototype they had one system and
[TS]
00:33:17
◼
►
you know something else but but the way
[TS]
00:33:21
◼
►
they did do was add the API
[TS]
00:33:22
◼
►
people actually wanted to use because
[TS]
00:33:23
◼
►
the Dom API the native Dom API who the
[TS]
00:33:25
◼
►
w3c to find that or whoever define that
[TS]
00:33:27
◼
►
it stinks it was just a huge verbose
[TS]
00:33:29
◼
►
thing that nobody ever wanted to type
[TS]
00:33:31
◼
►
and it was just you know inscrutable and
[TS]
00:33:33
◼
►
had no convenience functions and it was
[TS]
00:33:35
◼
►
just just bad so that you know people
[TS]
00:33:38
◼
►
were wrapping the Dom ten different ways
[TS]
00:33:40
◼
►
to Sunday you know like listen we know
[TS]
00:33:42
◼
►
you're never going to use the Dom API
[TS]
00:33:43
◼
►
but here's this nice little wrapper
[TS]
00:33:44
◼
►
function to give that a try and jQuery
[TS]
00:33:47
◼
►
is the big one they're like they did
[TS]
00:33:49
◼
►
their own objects just something they
[TS]
00:33:50
◼
►
did all solve the old stuff but in
[TS]
00:33:51
◼
►
service of saying don't write to the Dom
[TS]
00:33:53
◼
►
write to jQuery and we're going to
[TS]
00:33:55
◼
►
define a really convenient API that you
[TS]
00:33:57
◼
►
can use that it looks like magic and so
[TS]
00:33:59
◼
►
now we're at the point today where
[TS]
00:34:00
◼
►
people know jQuery but they don't know
[TS]
00:34:02
◼
►
JavaScript right the someone did a
[TS]
00:34:04
◼
►
presentation about that I think was like
[TS]
00:34:05
◼
►
a jQuery problem or something I googled
[TS]
00:34:07
◼
►
for it for a while and I couldn't find
[TS]
00:34:08
◼
►
it but it's basically that you're
[TS]
00:34:09
◼
►
raising your breed of programmers who
[TS]
00:34:12
◼
►
thinks that jQuery is what their
[TS]
00:34:14
◼
►
programming and have no idea this is
[TS]
00:34:16
◼
►
this language into their called
[TS]
00:34:17
◼
►
JavaScript that has its own rules and
[TS]
00:34:18
◼
►
works in its own way now that's like the
[TS]
00:34:20
◼
►
JavaScript is like the assembly code a
[TS]
00:34:22
◼
►
CoffeeScript is another example take me
[TS]
00:34:25
◼
►
to even farther and what's that other
[TS]
00:34:26
◼
►
one that the cappuccino guys do
[TS]
00:34:27
◼
►
objective J I think it's called where
[TS]
00:34:30
◼
►
they're saying look the language is so
[TS]
00:34:32
◼
►
irredeemably bad you're just gonna type
[TS]
00:34:34
◼
►
text right we're gonna parse with our
[TS]
00:34:37
◼
►
own little parser written in javascript
[TS]
00:34:38
◼
►
turn into JavaScript for you and then
[TS]
00:34:40
◼
►
execute that so that basically defining
[TS]
00:34:42
◼
►
an entirely different language not just
[TS]
00:34:44
◼
►
a new API not just a wrapper for other
[TS]
00:34:46
◼
►
things but an entirely new language so
[TS]
00:34:48
◼
►
bad is the underlying language is like
[TS]
00:34:49
◼
►
don't even type in that language type
[TS]
00:34:52
◼
►
essentially a big honking string and we
[TS]
00:34:54
◼
►
will we will take your big honkin string
[TS]
00:34:56
◼
►
and turn it into something all right and
[TS]
00:35:00
◼
►
that gets at all that talks about
[TS]
00:35:02
◼
►
bridges and everything like we know when
[TS]
00:35:04
◼
►
you're stepping through the debugger and
[TS]
00:35:05
◼
►
you know Firebug or whatever WebKit
[TS]
00:35:07
◼
►
JavaScript debugger that's a JavaScript
[TS]
00:35:09
◼
►
debugger that's not a coffee script
[TS]
00:35:10
◼
►
debugger it's not a jQuery de barro god
[TS]
00:35:11
◼
►
forbid you ever step into a jQuery
[TS]
00:35:13
◼
►
function you'll know there be dragons
[TS]
00:35:15
◼
►
you do not want to be into that code
[TS]
00:35:16
◼
►
right if you have some sort of problem
[TS]
00:35:18
◼
►
in the middle of jQuery you know even
[TS]
00:35:20
◼
►
when it's not minima minified or
[TS]
00:35:21
◼
►
anything like that they just highlight
[TS]
00:35:23
◼
►
the problems of bridges and stop and
[TS]
00:35:25
◼
►
CoffeeScript and objective J similar
[TS]
00:35:27
◼
►
type things like you know you're not
[TS]
00:35:28
◼
►
going to get Apple or Google or whoever
[TS]
00:35:30
◼
►
to build a coffee script debugger into
[TS]
00:35:32
◼
►
into their browser unless you really
[TS]
00:35:35
◼
►
take over
[TS]
00:35:36
◼
►
the world with your new language that
[TS]
00:35:37
◼
►
you made up that eventually compiles
[TS]
00:35:38
◼
►
into JavaScript
[TS]
00:35:40
◼
►
Google is even worse but they do Java
[TS]
00:35:42
◼
►
that compiles into JavaScript I don't I
[TS]
00:35:44
◼
►
mean think about how they do bug that
[TS]
00:35:46
◼
►
but that's that's Google's problem so
[TS]
00:35:51
◼
►
the moral of story is that every
[TS]
00:35:54
◼
►
existing popular language has something
[TS]
00:35:56
◼
►
terrible about it or many make things
[TS]
00:35:58
◼
►
terrible about it
[TS]
00:35:59
◼
►
and it's usually really easy for
[TS]
00:36:02
◼
►
developers to see what's wrong with this
[TS]
00:36:03
◼
►
language not not the API is not what you
[TS]
00:36:05
◼
►
can do with it you know people like
[TS]
00:36:06
◼
►
these things but just like the language
[TS]
00:36:08
◼
►
isolate the language itself and say is
[TS]
00:36:10
◼
►
there anything bad about the language
[TS]
00:36:12
◼
►
taken in isolation and there always is
[TS]
00:36:15
◼
►
and it seems like as these languages
[TS]
00:36:18
◼
►
have stagnated and been tied to these
[TS]
00:36:19
◼
►
platforms and api's for years and years
[TS]
00:36:21
◼
►
we've you know made little advances
[TS]
00:36:24
◼
►
along the side lines and everything and
[TS]
00:36:25
◼
►
you know academic circles research
[TS]
00:36:28
◼
►
circles but even just trying things out
[TS]
00:36:29
◼
►
for real with you know little niche
[TS]
00:36:31
◼
►
languages and stuff like that we sort of
[TS]
00:36:33
◼
►
collectively decided on what is good and
[TS]
00:36:36
◼
►
then when we collectively decide on what
[TS]
00:36:38
◼
►
is good we can look at the language and
[TS]
00:36:39
◼
►
say well this thing doesn't have this
[TS]
00:36:40
◼
►
good thing which we've all pretty much
[TS]
00:36:41
◼
►
agreed takes a long time to agree on
[TS]
00:36:43
◼
►
this takes you know sometimes years and
[TS]
00:36:44
◼
►
years forever to agree that something is
[TS]
00:36:45
◼
►
good but eventually most people agree so
[TS]
00:36:47
◼
►
I have a little list of things that I
[TS]
00:36:49
◼
►
think that collectively programmers have
[TS]
00:36:51
◼
►
agreed are good things plus or minus
[TS]
00:36:54
◼
►
applicability obviously everything I
[TS]
00:36:56
◼
►
list someone is going to say well if
[TS]
00:36:57
◼
►
you're writing a device driver all that
[TS]
00:36:58
◼
►
stinks yeah obviously you pick the
[TS]
00:37:01
◼
►
language appropriate for a context so
[TS]
00:37:02
◼
►
I'm speaking mostly of the highest of
[TS]
00:37:05
◼
►
the high levels because languages only
[TS]
00:37:06
◼
►
get higher level over time not lower
[TS]
00:37:07
◼
►
level so the lower level languages
[TS]
00:37:08
◼
►
retain their roles in the levels of
[TS]
00:37:11
◼
►
distraction where they work best but the
[TS]
00:37:13
◼
►
top of the stack the highest level
[TS]
00:37:15
◼
►
languages that people most commonly
[TS]
00:37:16
◼
►
write and just keep getting higher level
[TS]
00:37:18
◼
►
and that's the place where the actions
[TS]
00:37:19
◼
►
that's the place where the most language
[TS]
00:37:21
◼
►
advancement happens so some things we've
[TS]
00:37:24
◼
►
decided to good the Commuter decided
[TS]
00:37:25
◼
►
memory management is good because even
[TS]
00:37:27
◼
►
though you know at the lower levels yes
[TS]
00:37:29
◼
►
you do need to management you know
[TS]
00:37:30
◼
►
someone's got a managed memory manually
[TS]
00:37:32
◼
►
underneath there someone's got to do it
[TS]
00:37:34
◼
►
even if you're just writing the VM for
[TS]
00:37:35
◼
►
your JavaScript engine so I want us to
[TS]
00:37:36
◼
►
deal with it but if you're writing an
[TS]
00:37:38
◼
►
application you don't want to deal with
[TS]
00:37:39
◼
►
that so if you have some language that
[TS]
00:37:41
◼
►
doesn't have memory management it starts
[TS]
00:37:44
◼
►
to look a little bit creaky especially
[TS]
00:37:46
◼
►
if you're writing like an application
[TS]
00:37:47
◼
►
where it's like dude clicks the button
[TS]
00:37:48
◼
►
and then this
[TS]
00:37:49
◼
►
happens you know I don't have to manage
[TS]
00:37:51
◼
►
memory to connect the dude clicks the
[TS]
00:37:53
◼
►
button and then something happens thing
[TS]
00:37:54
◼
►
I'm not I'm not writing vice drivers I'm
[TS]
00:37:56
◼
►
not writing a VM for a language right
[TS]
00:37:59
◼
►
one of the deal Denari management native
[TS]
00:38:01
◼
►
strings pretty much everyone has agreed
[TS]
00:38:02
◼
►
that native strings are a good thing you
[TS]
00:38:04
◼
►
know we don't want to add strings to see
[TS]
00:38:06
◼
►
this is just a byte array and blah blah
[TS]
00:38:07
◼
►
native unicode strings at this point if
[TS]
00:38:10
◼
►
you don't iran who doesn't have native
[TS]
00:38:11
◼
►
you don't screen strings some poor
[TS]
00:38:13
◼
►
suckers got to make a library that does
[TS]
00:38:14
◼
►
and then it's just a big hairy mess and
[TS]
00:38:16
◼
►
you have two different competing
[TS]
00:38:17
◼
►
libraries and you get you know what were
[TS]
00:38:20
◼
►
they called in MFC the HIPAA yeah yeah
[TS]
00:38:22
◼
►
why character strings and all sorts of
[TS]
00:38:24
◼
►
you know it's just a big mess native
[TS]
00:38:26
◼
►
native unicode strings have to be in the
[TS]
00:38:28
◼
►
language because they're so darn useful
[TS]
00:38:29
◼
►
i think we that most people have agreed
[TS]
00:38:32
◼
►
at this point for high level languages
[TS]
00:38:34
◼
►
native regular expressions are a good
[TS]
00:38:37
◼
►
thing if not native regulus versions and
[TS]
00:38:40
◼
►
at least a library that implements the
[TS]
00:38:41
◼
►
native ones are nicer because then you
[TS]
00:38:42
◼
►
don't have to take your regular
[TS]
00:38:43
◼
►
expressions and say oh I don't like
[TS]
00:38:44
◼
►
regular expressions I'm gonna you know
[TS]
00:38:46
◼
►
they're in strings now it's just a
[TS]
00:38:47
◼
►
string constant JavaScript does that to
[TS]
00:38:49
◼
►
an extent but it's nice to have native
[TS]
00:38:52
◼
►
regular expressions with the native
[TS]
00:38:53
◼
►
syntax because they're so darn useful
[TS]
00:38:55
◼
►
and so common I think you don't have to
[TS]
00:38:57
◼
►
be calling through the library functions
[TS]
00:38:58
◼
►
for them and you certainly don't want to
[TS]
00:38:59
◼
►
have to load a third-party library to do
[TS]
00:39:01
◼
►
with regular expressions native objects
[TS]
00:39:04
◼
►
and classes not to get into the oo
[TS]
00:39:07
◼
►
procedural debate functional programming
[TS]
00:39:10
◼
►
a lot stuff but if you're going to have
[TS]
00:39:12
◼
►
something that's sort of like objects
[TS]
00:39:13
◼
►
and classes and you're you know that's
[TS]
00:39:14
◼
►
going to be like the way you do
[TS]
00:39:16
◼
►
modularization in your code make it part
[TS]
00:39:18
◼
►
of the language don't make it so that
[TS]
00:39:19
◼
►
everyone has to sort of roll their own
[TS]
00:39:20
◼
►
thing in javascript or say hey we have
[TS]
00:39:22
◼
►
our own object system you know we've got
[TS]
00:39:24
◼
►
and we've got our own heritage systems
[TS]
00:39:25
◼
►
but it's one that people have decided
[TS]
00:39:27
◼
►
they don't want to use like prototype
[TS]
00:39:29
◼
►
inheritance people may love it and think
[TS]
00:39:30
◼
►
it's cool and everything but everyone
[TS]
00:39:32
◼
►
who wants to program in java scripts
[TS]
00:39:33
◼
►
like great so how do i make a class and
[TS]
00:39:35
◼
►
that's kind of a shame for the people
[TS]
00:39:36
◼
►
who love prototype based inheritance but
[TS]
00:39:38
◼
►
the bottom line is that that's what
[TS]
00:39:40
◼
►
people want and you know every single
[TS]
00:39:42
◼
►
library bends over backwards to make
[TS]
00:39:43
◼
►
something that at least looks a little
[TS]
00:39:45
◼
►
bit like objects and classes even when
[TS]
00:39:47
◼
►
under the covers it's not quite the same
[TS]
00:39:50
◼
►
one I'll add on here that these are
[TS]
00:39:53
◼
►
getting progressively more controversial
[TS]
00:39:55
◼
►
I think is it named parameters
[TS]
00:39:57
◼
►
positional parameters sucka they could
[TS]
00:39:59
◼
►
probably all agree on that no one wants
[TS]
00:40:00
◼
►
a function with 27 parameters that have
[TS]
00:40:02
◼
►
to be exactly the right
[TS]
00:40:03
◼
►
and you gotta pass nulls or zeros for
[TS]
00:40:05
◼
►
the ones you don't include and stuff
[TS]
00:40:05
◼
►
like that names parameters if you if
[TS]
00:40:08
◼
►
your language doesn't have name
[TS]
00:40:09
◼
►
parameters people will basically invent
[TS]
00:40:10
◼
►
them you know for JavaScript passing in
[TS]
00:40:13
◼
►
you know the little JavaScript object
[TS]
00:40:16
◼
►
notation for you know name value pairs
[TS]
00:40:18
◼
►
and stuff like that it's not name
[TS]
00:40:19
◼
►
parameters and I really need to language
[TS]
00:40:20
◼
►
but this is a data structure that looks
[TS]
00:40:22
◼
►
just like name parameters that's what
[TS]
00:40:23
◼
►
everybody uses but it means that order
[TS]
00:40:26
◼
►
is not important and you don't have to
[TS]
00:40:27
◼
►
remember what the seventh argument is
[TS]
00:40:29
◼
►
well the 12th argument is and stuff like
[TS]
00:40:31
◼
►
that people want names that's the
[TS]
00:40:33
◼
►
parameter the code reads better
[TS]
00:40:34
◼
►
Objective C has a half solution where
[TS]
00:40:36
◼
►
it's like are we had name parameters but
[TS]
00:40:37
◼
►
you still have to put them in order and
[TS]
00:40:38
◼
►
if you don't need to put one you got to
[TS]
00:40:40
◼
►
put a null for it and this it's a
[TS]
00:40:42
◼
►
sea-based language you forgive it a lot
[TS]
00:40:43
◼
►
but I think we can all agree things to
[TS]
00:40:45
◼
►
have that name parameters succinct
[TS]
00:40:48
◼
►
syntax for common operations that means
[TS]
00:40:50
◼
►
no boilerplate it means as no matter how
[TS]
00:40:53
◼
►
theoretically pure your language is now
[TS]
00:40:55
◼
►
wants to deal with templates or like if
[TS]
00:40:57
◼
►
you want to make a class put these 80
[TS]
00:40:58
◼
►
lines of codes in there and then put
[TS]
00:41:00
◼
►
your one line of code that's specific to
[TS]
00:41:02
◼
►
your thing and people don't want things
[TS]
00:41:04
◼
►
to be verbose and wordy and just huge
[TS]
00:41:06
◼
►
they want things to be tight and small
[TS]
00:41:08
◼
►
because if they're not they're not tight
[TS]
00:41:10
◼
►
and small like in JavaScript where you
[TS]
00:41:11
◼
►
got to do these little anonymous
[TS]
00:41:12
◼
►
function closures and everything to get
[TS]
00:41:14
◼
►
variables inside of scope they will
[TS]
00:41:15
◼
►
invent the syntax that is succinct to
[TS]
00:41:17
◼
►
replace your crappy one you know it got
[TS]
00:41:20
◼
►
thanks gamez ago drop it a CoffeeScript
[TS]
00:41:21
◼
►
people were sick of typing the word
[TS]
00:41:22
◼
►
function out what that's you know
[TS]
00:41:24
◼
►
Huffman coding in the parlance of a
[TS]
00:41:26
◼
►
Larry wallet people going to be typing
[TS]
00:41:27
◼
►
the word function eight bazillion times
[TS]
00:41:29
◼
►
don't spell it out function you know
[TS]
00:41:30
◼
►
CoffeeScript goes with a little arrow
[TS]
00:41:31
◼
►
because it's much faster to type it the
[TS]
00:41:34
◼
►
things that are commonly used to be fast
[TS]
00:41:36
◼
►
a type and small you know not giant
[TS]
00:41:39
◼
►
words um have any other good ones here
[TS]
00:41:43
◼
►
some sort of acknowledgment of
[TS]
00:41:45
◼
►
concurrency I think we've all agreed is
[TS]
00:41:47
◼
►
good because languages without any
[TS]
00:41:48
◼
►
acknowledgement that concurrency exists
[TS]
00:41:50
◼
►
you end up having problems with it like
[TS]
00:41:52
◼
►
doesn't mean you have to be you know
[TS]
00:41:53
◼
►
super concurrent like Erlang or whatever
[TS]
00:41:55
◼
►
and your entire language is based around
[TS]
00:41:56
◼
►
that but an acknowledgment that it
[TS]
00:41:58
◼
►
exists and some native mechanism for
[TS]
00:42:01
◼
►
dealing with it even is just like a
[TS]
00:42:03
◼
►
couple primitive native I would say that
[TS]
00:42:05
◼
►
if you have just have a couple
[TS]
00:42:06
◼
►
primitives from mutexes and stuff like
[TS]
00:42:08
◼
►
that then people have this kind of
[TS]
00:42:09
◼
►
invent some sort of concurrency thing on
[TS]
00:42:11
◼
►
top of it I mean even it's like implicit
[TS]
00:42:13
◼
►
concurrency just some acknowledgement
[TS]
00:42:14
◼
►
that it exists even if you don't even
[TS]
00:42:16
◼
►
implement it
[TS]
00:42:16
◼
►
have a language or you can say okay our
[TS]
00:42:18
◼
►
language construct that looks like this
[TS]
00:42:20
◼
►
may not have any actual concurrency but
[TS]
00:42:24
◼
►
the implementation is free to do it
[TS]
00:42:26
◼
►
concurrently because order is not
[TS]
00:42:27
◼
►
guaranteed you know something like that
[TS]
00:42:29
◼
►
I think we've all agreed is a good thing
[TS]
00:42:30
◼
►
because languages that don't have that
[TS]
00:42:32
◼
►
it's really hard to add concurrency
[TS]
00:42:33
◼
►
after the fact so pick a language you
[TS]
00:42:37
◼
►
can find some of these things that are
[TS]
00:42:38
◼
►
missing from it often frustratingly so
[TS]
00:42:41
◼
►
and the question is why if we all if
[TS]
00:42:43
◼
►
you'll agree that these things are great
[TS]
00:42:44
◼
►
and you know over the years we've
[TS]
00:42:46
◼
►
decided this is what languages should be
[TS]
00:42:48
◼
►
and we keep adding new things to this
[TS]
00:42:50
◼
►
list why can't we just make a new
[TS]
00:42:52
◼
►
language that does that well a language
[TS]
00:42:54
◼
►
in isolation is pretty darn useless if
[TS]
00:42:56
◼
►
you don't have anything to do with that
[TS]
00:42:57
◼
►
language if you don't have an API to
[TS]
00:42:58
◼
►
write foo you can't make programs for a
[TS]
00:43:01
◼
►
particular platform you're kind of stuck
[TS]
00:43:03
◼
►
which is a lot of the reason you see
[TS]
00:43:04
◼
►
like the CoffeeScript and objective
[TS]
00:43:06
◼
►
sayst J stuff they could invent those
[TS]
00:43:08
◼
►
languages and I thought hey it's great a
[TS]
00:43:09
◼
►
menu language called objective J and it
[TS]
00:43:13
◼
►
looks like this and it's really fun to
[TS]
00:43:14
◼
►
use they look great what can I do with
[TS]
00:43:16
◼
►
that we said well you can write web
[TS]
00:43:17
◼
►
applications feel like I can't require
[TS]
00:43:19
◼
►
occasions my web browser doesn't have
[TS]
00:43:20
◼
►
objective site so well we'll take your
[TS]
00:43:21
◼
►
objective saying J and compile it into
[TS]
00:43:23
◼
►
JavaScript and then suddenly you have a
[TS]
00:43:25
◼
►
use for this cool new language
[TS]
00:43:26
◼
►
CoffeeScript is similar to that or you
[TS]
00:43:28
◼
►
know rails will make a new API since no
[TS]
00:43:30
◼
►
one seems to be using Ruby now but we
[TS]
00:43:32
◼
►
think it's really cool here's this great
[TS]
00:43:34
◼
►
new framework and if you want to use a
[TS]
00:43:36
◼
►
framework use the language ah nice
[TS]
00:43:39
◼
►
questions why can't we just add these
[TS]
00:43:40
◼
►
cool features to existing languages well
[TS]
00:43:42
◼
►
it's not it's not easy to add features
[TS]
00:43:44
◼
►
to languages because you've got that you
[TS]
00:43:47
◼
►
know installed base and the people who
[TS]
00:43:50
◼
►
are currently using the language just
[TS]
00:43:51
◼
►
like what happened with trying to make a
[TS]
00:43:52
◼
►
Akuma script for which is going to be
[TS]
00:43:54
◼
►
the successor to JavaScript which is
[TS]
00:43:55
◼
►
going to add all sorts of cool wizzy
[TS]
00:43:57
◼
►
stuff that a lot of which is from that
[TS]
00:43:59
◼
►
previous list add that to JavaScript but
[TS]
00:44:02
◼
►
then is like you know it's an open
[TS]
00:44:04
◼
►
standard and there's standards bodies
[TS]
00:44:05
◼
►
and people with interests in keeping the
[TS]
00:44:07
◼
►
language the way it is and then you
[TS]
00:44:08
◼
►
can't get people to agree about what
[TS]
00:44:10
◼
►
should be added and what shouldn't and
[TS]
00:44:11
◼
►
then whole process kind of ground to a
[TS]
00:44:12
◼
►
halt and is really difficult to add
[TS]
00:44:15
◼
►
stuff to an existing language and even
[TS]
00:44:17
◼
►
if you get everyone to agree it takes
[TS]
00:44:19
◼
►
forever for them to be useful like if
[TS]
00:44:21
◼
►
you made here's the new version of
[TS]
00:44:22
◼
►
JavaScript and he's got these great new
[TS]
00:44:24
◼
►
features in fact it's got half of jQuery
[TS]
00:44:25
◼
►
built into it well you can't use that
[TS]
00:44:28
◼
►
until some you know
[TS]
00:44:30
◼
►
a huge percentage of the population has
[TS]
00:44:32
◼
►
upgraded all their browsers to the
[TS]
00:44:34
◼
►
browser that has the fancy new version
[TS]
00:44:36
◼
►
of JavaScript in it and it takes years
[TS]
00:44:39
◼
►
initialize to happen right look at how
[TS]
00:44:40
◼
►
long it's taken for dotnet to be viable
[TS]
00:44:44
◼
►
because you had all those pcs out there
[TS]
00:44:46
◼
►
they couldn't run dotnet or didn't have
[TS]
00:44:48
◼
►
dotnet installed and you didn't want
[TS]
00:44:50
◼
►
your application to be the one that says
[TS]
00:44:51
◼
►
oh here's my cool new application but
[TS]
00:44:53
◼
►
first you got to download this 20
[TS]
00:44:54
◼
►
megabyte net runtime and then you know
[TS]
00:44:55
◼
►
it's a it's a big hang-up where people
[TS]
00:44:58
◼
►
don't want to download your application
[TS]
00:44:59
◼
►
then you have all those machines in
[TS]
00:45:00
◼
►
China they're still running Windows XP
[TS]
00:45:01
◼
►
and it's just it's just a mess so it's
[TS]
00:45:04
◼
►
really really difficult to add features
[TS]
00:45:07
◼
►
to existing languages and even when you
[TS]
00:45:09
◼
►
can you have to wait so long to use them
[TS]
00:45:10
◼
►
the by the time you get to use them
[TS]
00:45:12
◼
►
maybe you think that all the features
[TS]
00:45:14
◼
►
you add you're too little and you think
[TS]
00:45:16
◼
►
the a language is crappy again so we're
[TS]
00:45:18
◼
►
basically forced to suffer through using
[TS]
00:45:20
◼
►
crappy ancient languages you know as the
[TS]
00:45:23
◼
►
rest of technology advances quickly you
[TS]
00:45:25
◼
►
know and even within the browser stuff
[TS]
00:45:27
◼
►
advances faster than languages like the
[TS]
00:45:28
◼
►
CSS DOM and J and Java Sea is that built
[TS]
00:45:32
◼
►
are rapidly advancing but the JavaScript
[TS]
00:45:34
◼
►
language not so much like look how fast
[TS]
00:45:36
◼
►
you know new versions of CSS are
[TS]
00:45:38
◼
►
supported a new Dom methods and this Dom
[TS]
00:45:39
◼
►
method is native now we're adding local
[TS]
00:45:40
◼
►
database support and all sorts of cool
[TS]
00:45:43
◼
►
stuff that you can write to the API is
[TS]
00:45:45
◼
►
advanced quickly but the JavaScript
[TS]
00:45:46
◼
►
language is just stuck I mean you know
[TS]
00:45:49
◼
►
it there have been tweaks here and there
[TS]
00:45:50
◼
►
and obviously the implementation it's
[TS]
00:45:52
◼
►
way way faster but the language itself
[TS]
00:45:53
◼
►
it's the same old crappy self that
[TS]
00:45:55
◼
►
always was more or less and so here I we
[TS]
00:45:58
◼
►
just wait with crossed fingers and we
[TS]
00:46:00
◼
►
just hope that whatever the next hit
[TS]
00:46:02
◼
►
platform or API is that it's going to
[TS]
00:46:04
◼
►
use a better language right and that the
[TS]
00:46:07
◼
►
that's not just wishful thinking it's
[TS]
00:46:08
◼
►
happened before so like when the CGI
[TS]
00:46:10
◼
►
stuff came along that sort of ushered in
[TS]
00:46:12
◼
►
a new wave of you know dynamic languages
[TS]
00:46:14
◼
►
with the PC had the Perl Python PHP you
[TS]
00:46:19
◼
►
know you couldn't you couldn't make
[TS]
00:46:20
◼
►
those viable to the C programmer say hey
[TS]
00:46:22
◼
►
stop doing your systems programming in C
[TS]
00:46:24
◼
►
and C++
[TS]
00:46:24
◼
►
try purl knit go no thanks but and see
[TS]
00:46:28
◼
►
when CGI comes along and the P languages
[TS]
00:46:30
◼
►
yeah oh as a new platform and with this
[TS]
00:46:33
◼
►
new platform we're going to get to use
[TS]
00:46:34
◼
►
better languages and since there's no
[TS]
00:46:35
◼
►
incumbent to unseat and so we don't have
[TS]
00:46:37
◼
►
to convince the C and C++ programmers to
[TS]
00:46:39
◼
►
come over we'll just get these new guys
[TS]
00:46:41
◼
►
hey new guys cool new language try this
[TS]
00:46:42
◼
►
out write web applications
[TS]
00:46:44
◼
►
and same thing with rails in Ruby Ruby
[TS]
00:46:46
◼
►
was not going to be to take over the
[TS]
00:46:48
◼
►
world you know it was not going to
[TS]
00:46:49
◼
►
replace you know C++ or you can see
[TS]
00:46:52
◼
►
sharp as the windows programming
[TS]
00:46:54
◼
►
language but if they make this new thing
[TS]
00:46:56
◼
►
with there's no incumbent then Ruby
[TS]
00:46:57
◼
►
suddenly can become popular and cocoa
[TS]
00:46:58
◼
►
with Objective C and so on and so forth
[TS]
00:47:00
◼
►
[Music]
[TS]
00:47:04
◼
►
and of course it helps when you have a
[TS]
00:47:05
◼
►
language is controlled by a single
[TS]
00:47:07
◼
►
vendor like c-sharp where C and C++ you
[TS]
00:47:12
◼
►
know with it's standard versions that
[TS]
00:47:14
◼
►
take a million years to come out doesn't
[TS]
00:47:15
◼
►
change that quickly but c-sharp has
[TS]
00:47:17
◼
►
changed really fast like it was
[TS]
00:47:18
◼
►
introduced out of nowhere as kind of a
[TS]
00:47:19
◼
►
Java cloning thing or whatever and then
[TS]
00:47:22
◼
►
they've advanced now their versioning
[TS]
00:47:23
◼
►
version their language like C sharp
[TS]
00:47:25
◼
►
point 1.0 2.0 3.0 4.0 since a single
[TS]
00:47:29
◼
►
vendor controls it they don't have to
[TS]
00:47:30
◼
►
get the okay from anyone else they just
[TS]
00:47:32
◼
►
stick you want to add a cool new feature
[TS]
00:47:33
◼
►
to language or controlling we're going
[TS]
00:47:34
◼
►
to add a new feature add a new feature
[TS]
00:47:35
◼
►
Apple does something similar with
[TS]
00:47:37
◼
►
Objective C maybe a little bit slower
[TS]
00:47:39
◼
►
but they took it easy in the beginning
[TS]
00:47:40
◼
►
because they're just getting your OB on
[TS]
00:47:42
◼
►
board Objective C but then it's like
[TS]
00:47:43
◼
►
guess what properties synthesized
[TS]
00:47:45
◼
►
methods and the dot syntax and now fast
[TS]
00:47:49
◼
►
enumeration and and blocks and you know
[TS]
00:47:51
◼
►
I mean they're add except to C that's
[TS]
00:47:52
◼
►
pretty crazy it's kind of more of a
[TS]
00:47:54
◼
►
library thing but if you if you have a
[TS]
00:47:57
◼
►
single vendor and control of a language
[TS]
00:47:59
◼
►
it can advanced more rapidly than the
[TS]
00:48:01
◼
►
standards-based languages but then you
[TS]
00:48:02
◼
►
know it's the other side of that coin is
[TS]
00:48:03
◼
►
that if it's not a standard base
[TS]
00:48:04
◼
►
language people are afraid to use it
[TS]
00:48:05
◼
►
because they're like I don't want to be
[TS]
00:48:06
◼
►
under Apple's thumb I'm not going to do
[TS]
00:48:08
◼
►
Objective C and I don't want to be under
[TS]
00:48:10
◼
►
Microsoft's thumb so I'm not going to do
[TS]
00:48:11
◼
►
she sharp and even if it's like an open
[TS]
00:48:13
◼
►
standards de facto controlled by one
[TS]
00:48:15
◼
►
person it's always a tension there
[TS]
00:48:17
◼
►
between the development of the language
[TS]
00:48:19
◼
►
and how fast is going to move on so now
[TS]
00:48:25
◼
►
finally finally I think we can talk
[TS]
00:48:28
◼
►
about Perl
[TS]
00:48:28
◼
►
oh is this is this is the interesting
[TS]
00:48:31
◼
►
part for me where you get to participate
[TS]
00:48:33
◼
►
and express your disdain
[TS]
00:48:35
◼
►
people love the rants when you go on the
[TS]
00:48:37
◼
►
rants like that they love it last time
[TS]
00:48:42
◼
►
so people tuned in for booed maybe we
[TS]
00:48:44
◼
►
should do our spot you want to do the
[TS]
00:48:45
◼
►
sponsor now or neck or after this yeah
[TS]
00:48:47
◼
►
you should go for it
[TS]
00:48:48
◼
►
world view we've talked about these guys
[TS]
00:48:50
◼
►
before this is the totally addictive
[TS]
00:48:52
◼
►
take on email reporting from campaign
[TS]
00:48:54
◼
►
monitor basically and we have a lot of
[TS]
00:48:55
◼
►
people I think in the audience ooh
[TS]
00:48:57
◼
►
- newsletters they have their own
[TS]
00:48:58
◼
►
business they have a small they do a
[TS]
00:49:01
◼
►
website maybe they're a software
[TS]
00:49:02
◼
►
developer they have clients so this is
[TS]
00:49:05
◼
►
from campaign monitor when you send a
[TS]
00:49:06
◼
►
newsletter they'll show you on a map in
[TS]
00:49:08
◼
►
real time
[TS]
00:49:09
◼
►
whenever somebody opens the newsletter
[TS]
00:49:11
◼
►
because that's the thing you send out a
[TS]
00:49:12
◼
►
newsletter you're like whoa who read it
[TS]
00:49:14
◼
►
Oh 34 people read it who where are they
[TS]
00:49:16
◼
►
what's going on
[TS]
00:49:18
◼
►
now they actually show you this in real
[TS]
00:49:21
◼
►
time on a map and it's very you're
[TS]
00:49:23
◼
►
talking about things like JavaScript a
[TS]
00:49:25
◼
►
lot of JavaScript here but it's all
[TS]
00:49:28
◼
►
seamless it's gorgeous
[TS]
00:49:29
◼
►
gonna check this out go to a campaign
[TS]
00:49:31
◼
►
monitor comm slash world view whenever
[TS]
00:49:34
◼
►
somebody opens your newsletter when they
[TS]
00:49:36
◼
►
click on a link when they forward it to
[TS]
00:49:37
◼
►
a buddy in in real time it shows up on
[TS]
00:49:40
◼
►
this map are you looking at it right now
[TS]
00:49:41
◼
►
it's very cool it also show you on
[TS]
00:49:44
◼
►
Facebook when it's mentioned when it's
[TS]
00:49:46
◼
►
mentioned on Twitter instantaneously and
[TS]
00:49:48
◼
►
it's free for every email campaign you
[TS]
00:49:51
◼
►
send and you can you can get started for
[TS]
00:49:53
◼
►
free too so go check them out check
[TS]
00:49:54
◼
►
these guys out campaign monitor comm
[TS]
00:49:56
◼
►
slash worldview
[TS]
00:49:58
◼
►
thanks very much those guys they're
[TS]
00:50:01
◼
►
really smart for advertising that
[TS]
00:50:02
◼
►
feature because I guarantee you that is
[TS]
00:50:04
◼
►
the the feature that the people who who
[TS]
00:50:06
◼
►
purchase the service are most excited
[TS]
00:50:07
◼
►
about news you can just see people
[TS]
00:50:09
◼
►
staring at that map you know because
[TS]
00:50:10
◼
►
watching listening and you're gonna send
[TS]
00:50:12
◼
►
out direct communication like this is
[TS]
00:50:14
◼
►
what you want like if you just click the
[TS]
00:50:16
◼
►
button and go home it's not exciting
[TS]
00:50:17
◼
►
you're gonna sit there and stare at that
[TS]
00:50:18
◼
►
map and like now now the world will see
[TS]
00:50:21
◼
►
what I have to say and exactly that is a
[TS]
00:50:24
◼
►
very smart feature very cool and that's
[TS]
00:50:26
◼
►
just a demo so go go try this out anyway
[TS]
00:50:28
◼
►
we got to talk about this Perl thing now
[TS]
00:50:30
◼
►
you it has been revealed here not only
[TS]
00:50:34
◼
►
to two things that are I think going to
[TS]
00:50:36
◼
►
be shocking to most of the listening
[TS]
00:50:38
◼
►
audience the first one is listen to
[TS]
00:50:40
◼
►
other shows we've talked about it before
[TS]
00:50:42
◼
►
two things are going to be shocking to
[TS]
00:50:44
◼
►
listening on it's the first one is that
[TS]
00:50:46
◼
►
you you your job you are a pearl
[TS]
00:50:50
◼
►
programmer so that's shocked number one
[TS]
00:50:52
◼
►
and shock number two is that at least
[TS]
00:50:55
◼
►
this is the part that we're going to
[TS]
00:50:56
◼
►
have to talk about my understanding is
[TS]
00:50:58
◼
►
you can actually read the pearl after
[TS]
00:51:01
◼
►
you've written it you can go back and
[TS]
00:51:02
◼
►
read what you've written and understand
[TS]
00:51:04
◼
►
it which is my understanding is that's
[TS]
00:51:06
◼
►
not possible with pearl at all even in
[TS]
00:51:08
◼
►
the best situation so I'd like for you
[TS]
00:51:09
◼
►
to address both of those points
[TS]
00:51:11
◼
►
please begin well at first I want to
[TS]
00:51:14
◼
►
talk about something that you said on a
[TS]
00:51:15
◼
►
past show about objective-c but I think
[TS]
00:51:17
◼
►
it was on the previous show where you
[TS]
00:51:19
◼
►
were talking about the square brackets
[TS]
00:51:20
◼
►
in a coalition - and you can't stand I
[TS]
00:51:23
◼
►
don't like this yeah so you've obviously
[TS]
00:51:25
◼
►
done a little bit of objective-c
[TS]
00:51:26
◼
►
development ah yeah and you like what
[TS]
00:51:30
◼
►
the language can do for you you like
[TS]
00:51:32
◼
►
yeah the resulting applications you know
[TS]
00:51:34
◼
►
you like the platform you like iOS you
[TS]
00:51:35
◼
►
like Mac OS 10 yeah
[TS]
00:51:37
◼
►
but the language itself you don't like
[TS]
00:51:40
◼
►
and you brought up the square brackets
[TS]
00:51:42
◼
►
cuz you think they're ugly I don't like
[TS]
00:51:45
◼
►
this I don't like the look of it I am a
[TS]
00:51:47
◼
►
very uh I care a lot at least on on the
[TS]
00:51:52
◼
►
computer I care a lot about how things
[TS]
00:51:55
◼
►
look visually but you know I'm a
[TS]
00:51:57
◼
►
stickler for fonts I've written a lot of
[TS]
00:51:59
◼
►
articles on high vulajin sand what fonts
[TS]
00:52:04
◼
►
I it's you know the editor that I use is
[TS]
00:52:07
◼
►
almost secondary to the font that I'm
[TS]
00:52:09
◼
►
using to do code in I mean I'm very the
[TS]
00:52:12
◼
►
way that things look the way the
[TS]
00:52:13
◼
►
language looks and this this again this
[TS]
00:52:15
◼
►
is why I'm such a big fan of programming
[TS]
00:52:18
◼
►
languages like Ruby because they look it
[TS]
00:52:21
◼
►
looks great I mean even even the people
[TS]
00:52:23
◼
►
who hate the Ruby most and I'm talking
[TS]
00:52:25
◼
►
about anybody who prefers Python they're
[TS]
00:52:28
◼
►
the biggest the biggest anti rubyists
[TS]
00:52:30
◼
►
out there in the world even they admit
[TS]
00:52:32
◼
►
the Ruby looks nice I mean they'll say
[TS]
00:52:33
◼
►
python is better I'm you know we don't
[TS]
00:52:35
◼
►
need to get into that on this show but
[TS]
00:52:38
◼
►
even they'll admit that it is a nice
[TS]
00:52:40
◼
►
looking a nice looking language for me
[TS]
00:52:43
◼
►
that typing in in something that that
[TS]
00:52:46
◼
►
you know creating code that looks nice
[TS]
00:52:48
◼
►
I'd I'd try you know I love that so that
[TS]
00:52:51
◼
►
matters to me there's a lot of people
[TS]
00:52:53
◼
►
who are you know laughing saying oh who
[TS]
00:52:55
◼
►
cares about that it's the power of the
[TS]
00:52:57
◼
►
language that you want and and if that's
[TS]
00:52:59
◼
►
the case then I think they get in line
[TS]
00:53:02
◼
►
with you and then start writing right
[TS]
00:53:04
◼
►
and Perl because you can do stuff in
[TS]
00:53:06
◼
►
Perl it's just kind of crazy so the
[TS]
00:53:09
◼
►
point I want to bring up about this is
[TS]
00:53:11
◼
►
two things first that aesthetics and
[TS]
00:53:13
◼
►
programming languages even though it's
[TS]
00:53:15
◼
►
subjective I think you could probably
[TS]
00:53:19
◼
►
identify some themes and I think one of
[TS]
00:53:22
◼
►
the themes especially for the people who
[TS]
00:53:24
◼
►
like Ruby
[TS]
00:53:25
◼
►
is that none word characters are ugly
[TS]
00:53:29
◼
►
and word characters are not right so
[TS]
00:53:32
◼
►
anytime you get a non word characters
[TS]
00:53:34
◼
►
anything that's not you know a through Z
[TS]
00:53:35
◼
►
numbers or underscores maybe hyphens
[TS]
00:53:37
◼
►
anytime you get anything that's not one
[TS]
00:53:39
◼
►
of those characters it's it's noisy and
[TS]
00:53:41
◼
►
it's ugly but you know basically any
[TS]
00:53:42
◼
►
character you wouldn't see in prose or
[TS]
00:53:44
◼
►
even stuff like commas sometimes with
[TS]
00:53:46
◼
►
periods they don't like right so the
[TS]
00:53:48
◼
►
square brackets they fall under your
[TS]
00:53:49
◼
►
your unkind gaze because square brackets
[TS]
00:53:53
◼
►
don't appear in regular prose almost
[TS]
00:53:55
◼
►
ever and there's certainly not word
[TS]
00:53:57
◼
►
characters and they're actually kind of
[TS]
00:53:58
◼
►
like sharp pointy edges right am i
[TS]
00:54:01
◼
►
understanding by the way as an aside is
[TS]
00:54:02
◼
►
that you can use dot notation instead of
[TS]
00:54:07
◼
►
brackets in objective-c
[TS]
00:54:10
◼
►
and I was talk to the guy who wrote note
[TS]
00:54:12
◼
►
C which is a great iOS app he told me
[TS]
00:54:15
◼
►
this on the daily Edition earlier in the
[TS]
00:54:17
◼
►
week I heard that but then you're
[TS]
00:54:20
◼
►
falling into something that's
[TS]
00:54:21
◼
►
non-standard you're like the one guy who
[TS]
00:54:22
◼
►
does it that way which is not a really
[TS]
00:54:25
◼
►
good topic I want to talk to you about
[TS]
00:54:27
◼
►
perhaps on this show or another show
[TS]
00:54:28
◼
►
about whether you adapt the language to
[TS]
00:54:31
◼
►
your own particular style or whether you
[TS]
00:54:33
◼
►
adapt your style to the language of
[TS]
00:54:35
◼
►
choice or a third option as you adopt
[TS]
00:54:38
◼
►
whatever the corporate style is for the
[TS]
00:54:42
◼
►
project and or tasks that your team team
[TS]
00:54:46
◼
►
rather that you're working on anyway
[TS]
00:54:47
◼
►
there could be another topic well Apple
[TS]
00:54:49
◼
►
has been pushing sort of pushing the dot
[TS]
00:54:52
◼
►
syntax even within Apple there are
[TS]
00:54:56
◼
►
people who still won't use it and I bet
[TS]
00:54:57
◼
►
if you were to look at Apple's code
[TS]
00:54:58
◼
►
they'd be big divisions like these are
[TS]
00:54:59
◼
►
the dot people and these are the non dot
[TS]
00:55:01
◼
►
people I think suspect the old-school
[TS]
00:55:03
◼
►
guys don't like that syntax but apples
[TS]
00:55:04
◼
►
been pushing it a lot like if you go to
[TS]
00:55:06
◼
►
WC a lot of the sessions the official
[TS]
00:55:08
◼
►
party line is we invented dot notation
[TS]
00:55:11
◼
►
so you could use it it's not like we're
[TS]
00:55:12
◼
►
going to invent it and nobody should use
[TS]
00:55:13
◼
►
it you should use it and they will make
[TS]
00:55:15
◼
►
a good show of saying we here at Apple I
[TS]
00:55:17
◼
►
trying to use it too with our new you
[TS]
00:55:19
◼
►
know stuff at the very least I want you
[TS]
00:55:21
◼
►
to use the app property at synthesize
[TS]
00:55:22
◼
►
and stuff like that like they're pushing
[TS]
00:55:24
◼
►
that as a modernization of the language
[TS]
00:55:26
◼
►
right um
[TS]
00:55:27
◼
►
and partly because I think it does look
[TS]
00:55:30
◼
►
nicer you know fewer non word characters
[TS]
00:55:33
◼
►
right so the point I want to bring up
[TS]
00:55:34
◼
►
about non word characters is the aside
[TS]
00:55:36
◼
►
that I meant to get to last time about
[TS]
00:55:37
◼
►
the Joint Strike Fighter
[TS]
00:55:39
◼
►
I put a link in the show notes too to
[TS]
00:55:40
◼
►
this the Joint Strike Fighter was a US
[TS]
00:55:43
◼
►
government project to make a new
[TS]
00:55:46
◼
►
airplane to replace several existing
[TS]
00:55:49
◼
►
models of airplanes through several
[TS]
00:55:51
◼
►
branches of the armed forces they wanted
[TS]
00:55:53
◼
►
to replace a bunch of planes in the Navy
[TS]
00:55:54
◼
►
the Air Force and the Marines with a
[TS]
00:55:57
◼
►
single new plan that could be adapted to
[TS]
00:55:58
◼
►
several different purposes that's
[TS]
00:56:00
◼
►
actually an aside that's not the point
[TS]
00:56:01
◼
►
of trying to get about making one plane
[TS]
00:56:02
◼
►
to replace many different other ones but
[TS]
00:56:04
◼
►
the main thing is they had a competition
[TS]
00:56:05
◼
►
between defense contractors said you
[TS]
00:56:07
◼
►
want to be the the company that makes a
[TS]
00:56:08
◼
►
Joint Strike Fighter well you know
[TS]
00:56:10
◼
►
here's some amount of money and bring us
[TS]
00:56:13
◼
►
two prototypes and you know it was the
[TS]
00:56:16
◼
►
competition between basically Boeing and
[TS]
00:56:18
◼
►
Lockheed were the two big ones that were
[TS]
00:56:19
◼
►
the only people who had the money and
[TS]
00:56:21
◼
►
skills basically to compete so it was
[TS]
00:56:24
◼
►
actually contract for the government
[TS]
00:56:25
◼
►
that did they had more than one bidder
[TS]
00:56:26
◼
►
but anyway uh they said you know bring
[TS]
00:56:28
◼
►
us what you think is the best suited
[TS]
00:56:30
◼
►
plane for this and then we as the
[TS]
00:56:31
◼
►
government will take a look well you
[TS]
00:56:32
◼
►
brought us and bring each one through a
[TS]
00:56:33
◼
►
series of tests and decide which one
[TS]
00:56:35
◼
►
we're going to spend you know bazillions
[TS]
00:56:36
◼
►
of dollars on over the next decade two
[TS]
00:56:38
◼
►
decades three decades to replace all our
[TS]
00:56:40
◼
►
points and there was a PBS show I think
[TS]
00:56:43
◼
►
it was a nova thing but anyways a link
[TS]
00:56:45
◼
►
to in the show notes I don't know if you
[TS]
00:56:46
◼
►
can actually watch the video it's a very
[TS]
00:56:47
◼
►
old show so I think maybe you can get
[TS]
00:56:49
◼
►
the video online but if not you could
[TS]
00:56:51
◼
►
maybe see if it comes on TV again but it
[TS]
00:56:54
◼
►
was a documentary showing the
[TS]
00:56:56
◼
►
competition between Boeing and Lockheed
[TS]
00:56:57
◼
►
which is excellent show if you have an
[TS]
00:56:58
◼
►
hour of time you can find this thing you
[TS]
00:57:00
◼
►
should watch it it's really awesome to
[TS]
00:57:01
◼
►
watch the show but the boss fascinating
[TS]
00:57:03
◼
►
aspect of it was that at a certain point
[TS]
00:57:05
◼
►
in the program they started to talk
[TS]
00:57:08
◼
►
about the difference between these two
[TS]
00:57:10
◼
►
planes and it was something that would
[TS]
00:57:12
◼
►
be on anyone's mind watching the show up
[TS]
00:57:14
◼
►
to that point but not discuss then they
[TS]
00:57:15
◼
►
came out and discussed it which was that
[TS]
00:57:17
◼
►
Boeing's entry was uglier than la Keats
[TS]
00:57:20
◼
►
the plane itself have you were to put
[TS]
00:57:22
◼
►
them side-by-side like right note from
[TS]
00:57:23
◼
►
the second you see it Lockheed looks
[TS]
00:57:25
◼
►
cool like a little spaceship like
[TS]
00:57:26
◼
►
something from Star Wars and Boeing's
[TS]
00:57:27
◼
►
it's kind of you know homely looking
[TS]
00:57:29
◼
►
it's got a big mouth for an air intake
[TS]
00:57:31
◼
►
and it's kind of stub nosed and just it
[TS]
00:57:34
◼
►
just looks uglier now this is a
[TS]
00:57:37
◼
►
competition billions and billions of
[TS]
00:57:40
◼
►
dollars are on the line
[TS]
00:57:41
◼
►
the security of your entire nation the
[TS]
00:57:43
◼
►
safety of your people there's going to
[TS]
00:57:45
◼
►
be people flying these planes people
[TS]
00:57:46
◼
►
repairing like the looks of these planes
[TS]
00:57:49
◼
►
you would think could anything possibly
[TS]
00:57:51
◼
►
be less important this is
[TS]
00:57:52
◼
►
life-or-death situation things that
[TS]
00:57:55
◼
►
matter are like performance cost safety
[TS]
00:57:57
◼
►
you know effectiveness that the the
[TS]
00:58:01
◼
►
performance of the actual plane itself
[TS]
00:58:03
◼
►
the durability does looks have anything
[TS]
00:58:07
◼
►
to do with it
[TS]
00:58:07
◼
►
anything at all and as the people
[TS]
00:58:09
◼
►
discuss very openly in the show they can
[TS]
00:58:11
◼
►
say you know well looks of the plane
[TS]
00:58:14
◼
►
really shouldn't matter but is it an old
[TS]
00:58:15
◼
►
saying in aviation that if it looks
[TS]
00:58:17
◼
►
right it'll fly right hmm now that's
[TS]
00:58:19
◼
►
saying the origin of that saying is like
[TS]
00:58:22
◼
►
that's just like a massive
[TS]
00:58:23
◼
►
rationalization for the idea that people
[TS]
00:58:25
◼
►
and men in particular are hardwired to
[TS]
00:58:27
◼
►
like things that are attractive doesn't
[TS]
00:58:29
◼
►
mean the plane has to look like you know
[TS]
00:58:30
◼
►
the body of a woman although it often
[TS]
00:58:32
◼
►
does but that people like beautiful
[TS]
00:58:35
◼
►
things and you can they're rational mind
[TS]
00:58:38
◼
►
can say to them all the other stuff
[TS]
00:58:39
◼
►
about how everything else is more
[TS]
00:58:41
◼
►
important and how this plane looks means
[TS]
00:58:42
◼
►
absolutely nothing the bottom line is
[TS]
00:58:44
◼
►
that the better-looking plane usually
[TS]
00:58:46
◼
►
wins when there's a competition for you
[TS]
00:58:48
◼
►
know which things going to get a
[TS]
00:58:49
◼
►
contract and I'm not saying that's why
[TS]
00:58:52
◼
►
the winner of the Lockheed won this this
[TS]
00:58:55
◼
►
contract I don't think I'm spoiling
[TS]
00:58:57
◼
►
anything to say that but Lockheed
[TS]
00:59:00
◼
►
eventually did win because they had the
[TS]
00:59:01
◼
►
better-looking plane right there are
[TS]
00:59:03
◼
►
many other reasons that that they won
[TS]
00:59:05
◼
►
the contract but the fact that looks was
[TS]
00:59:08
◼
►
acknowledged to be a factor that
[TS]
00:59:10
◼
►
basically saying we can't help but we're
[TS]
00:59:12
◼
►
silly meatbags who love beautiful things
[TS]
00:59:13
◼
►
and right or wrong looks are going to be
[TS]
00:59:16
◼
►
a factor and we can rationalize and say
[TS]
00:59:18
◼
►
even if we had never seen these points
[TS]
00:59:20
◼
►
and adjust seeing the numbers and we
[TS]
00:59:22
◼
►
just knew based on experience but the
[TS]
00:59:23
◼
►
Lockheed makes great planes or whatever
[TS]
00:59:25
◼
►
you know blah blah walkie was probably
[TS]
00:59:26
◼
►
gonna win no matter what but the fact
[TS]
00:59:28
◼
►
that looks are you know acknowledged to
[TS]
00:59:31
◼
►
be an important factor in that thing
[TS]
00:59:32
◼
►
there's no hope of aesthetics not being
[TS]
00:59:36
◼
►
a factor in something like programming
[TS]
00:59:37
◼
►
languages we're much less is at stake
[TS]
00:59:39
◼
►
right I think this reveals you know I
[TS]
00:59:42
◼
►
hope the people ever involved a
[TS]
00:59:44
◼
►
self-aware enough to realize that this
[TS]
00:59:46
◼
►
is this is a flaw in reasoning and they
[TS]
00:59:48
◼
►
shouldn't go back to if it looks right
[TS]
00:59:49
◼
►
it flies right it's the old saying that
[TS]
00:59:50
◼
►
my Pappy says your Pappy was was
[TS]
00:59:53
◼
►
excusing his stupid illogical behavior
[TS]
00:59:56
◼
►
with a catchy saying like that's an
[TS]
00:59:58
◼
►
acknowledgement of you being wrong
[TS]
00:59:58
◼
►
acknowledgement of you being wrong
[TS]
01:00:00
◼
►
you can't use that to support your
[TS]
01:00:01
◼
►
argument no if it looks right it does
[TS]
01:00:03
◼
►
not fly right things a lot of things
[TS]
01:00:04
◼
►
that look awful
[TS]
01:00:05
◼
►
fly great and a lot of things that look
[TS]
01:00:06
◼
►
great do not fly at all it's not this
[TS]
01:00:09
◼
►
thing makes no sense so to bring that
[TS]
01:00:11
◼
►
back to programming languages yeah
[TS]
01:00:14
◼
►
people pick a lot based on their
[TS]
01:00:15
◼
►
aesthetics but you know it shouldn't be
[TS]
01:00:20
◼
►
a factor even though it is luckily with
[TS]
01:00:23
◼
►
programming languages there are so many
[TS]
01:00:24
◼
►
other factors that even that dominate
[TS]
01:00:26
◼
►
looks that you know we can't even get
[TS]
01:00:27
◼
►
decent languages irregardless of
[TS]
01:00:28
◼
►
irregardless is not a word sorry
[TS]
01:00:30
◼
►
regardless of the looks of the language
[TS]
01:00:32
◼
►
you can't we can't get a good one that
[TS]
01:00:34
◼
►
has all the features you want because of
[TS]
01:00:35
◼
►
other things that are involved but you
[TS]
01:00:37
◼
►
know when we're left to you know have
[TS]
01:00:39
◼
►
petty squabbles about which one of the
[TS]
01:00:41
◼
►
crappy languages that were forced to use
[TS]
01:00:43
◼
►
is better than the other we fall back on
[TS]
01:00:45
◼
►
looks and the gang gets back to the
[TS]
01:00:48
◼
►
fewer non-work characters the better so
[TS]
01:00:50
◼
►
I don't like discussions about books of
[TS]
01:00:52
◼
►
languages because I think it's mostly
[TS]
01:00:54
◼
►
moot with programming language at least
[TS]
01:00:57
◼
►
you can say all right maybe it has
[TS]
01:00:59
◼
►
nothing to do with looks but a lot of
[TS]
01:01:00
◼
►
these know our characters I need to hold
[TS]
01:01:02
◼
►
down shift to use and they're not you
[TS]
01:01:04
◼
►
know there have take my fingers off the
[TS]
01:01:06
◼
►
HOME key so they're like actual rational
[TS]
01:01:09
◼
►
regions where you can talk about curly
[TS]
01:01:11
◼
►
braces are bad or square brackets are
[TS]
01:01:14
◼
►
bad or any other character that I have
[TS]
01:01:15
◼
►
to stop typing stop typing
[TS]
01:01:17
◼
►
touch typing for and do a chord
[TS]
01:01:19
◼
►
keystroke to get that's bad mmm so at
[TS]
01:01:22
◼
►
least you have that little thing in that
[TS]
01:01:23
◼
►
word but the aesthetics of languages
[TS]
01:01:25
◼
►
even though you can find that common
[TS]
01:01:26
◼
►
thread of non mark characters being ugly
[TS]
01:01:28
◼
►
it really depends on what you're used to
[TS]
01:01:30
◼
►
a lot to and where you're coming from
[TS]
01:01:33
◼
►
so with Perl I would imagine the number
[TS]
01:01:36
◼
►
of characters that are most offensive to
[TS]
01:01:37
◼
►
everyone are things like the dollar sign
[TS]
01:01:39
◼
►
which is and all the variables no one
[TS]
01:01:40
◼
►
likes that the @ sign % that's you know
[TS]
01:01:44
◼
►
the fact that every identifier has some
[TS]
01:01:46
◼
►
sort of prefix on it people don't like
[TS]
01:01:49
◼
►
that now if you're coming from shell
[TS]
01:01:50
◼
►
programming that's not a big deal
[TS]
01:01:51
◼
►
because in shell success is the same
[TS]
01:01:52
◼
►
thing it's like that's where the syntax
[TS]
01:01:53
◼
►
comes from reading you know basic stuff
[TS]
01:01:55
◼
►
like that on it too but if you're coming
[TS]
01:01:57
◼
►
from see where your identifiers are
[TS]
01:01:59
◼
►
basically unadorned you see that as no
[TS]
01:02:01
◼
►
eyes and you think it's ugly
[TS]
01:02:02
◼
►
no so getting into Perl specifically
[TS]
01:02:08
◼
►
it's got all the prefixes in the various
[TS]
01:02:10
◼
►
people alike but another reason Pro
[TS]
01:02:12
◼
►
comes in for the ugliness thing
[TS]
01:02:13
◼
►
is that it was the first language to
[TS]
01:02:15
◼
►
first language to really become popular
[TS]
01:02:17
◼
►
that had made of regular expressions in
[TS]
01:02:20
◼
►
the programmers use obviously regular
[TS]
01:02:21
◼
►
expressions were out there and you know
[TS]
01:02:22
◼
►
command-line utilities like grep and
[TS]
01:02:23
◼
►
stuff like that but this was the first
[TS]
01:02:25
◼
►
time that a real programmer quote
[TS]
01:02:27
◼
►
unquote was forced to see regular
[TS]
01:02:29
◼
►
expressions because he was doing this
[TS]
01:02:30
◼
►
program and see Recife sauce and some
[TS]
01:02:31
◼
►
dude came along and said I'm writing a
[TS]
01:02:33
◼
►
CGI application it's Perl and check this
[TS]
01:02:34
◼
►
out and then it's the first time they
[TS]
01:02:36
◼
►
see your deal with regular expressions
[TS]
01:02:37
◼
►
and what they think is a real program
[TS]
01:02:38
◼
►
and not just like some shell thing sis
[TS]
01:02:40
◼
►
admin's do which is beneath them like
[TS]
01:02:42
◼
►
what the hell is that now as we all know
[TS]
01:02:44
◼
►
today regular expressions look like that
[TS]
01:02:47
◼
►
for a reason it's a compact
[TS]
01:02:48
◼
►
representation of something that would
[TS]
01:02:49
◼
►
it would be much uglier and longer if
[TS]
01:02:51
◼
►
you had to write your own you know state
[TS]
01:02:53
◼
►
machine or you know okay what you write
[TS]
01:02:56
◼
►
your own regular expression engine you'd
[TS]
01:02:57
◼
►
basically end up either reinventing
[TS]
01:02:59
◼
►
regular expressions yourself badly or
[TS]
01:03:00
◼
►
writing a huge strings Betty spaghetti
[TS]
01:03:02
◼
►
go to do a regular expressions to do so
[TS]
01:03:04
◼
►
regular expressions look kind of like
[TS]
01:03:06
◼
►
line noise but they're they look like
[TS]
01:03:08
◼
►
that for a reason and they're useful and
[TS]
01:03:10
◼
►
every language nowadays has them and
[TS]
01:03:12
◼
►
recognizes that but Perl was the first
[TS]
01:03:13
◼
►
so the impression of Perl is look at all
[TS]
01:03:15
◼
►
those freaking dollar signs and oh my
[TS]
01:03:17
◼
►
god this program is just one big regular
[TS]
01:03:19
◼
►
expression and I've never seen very good
[TS]
01:03:20
◼
►
friends boring I do not understand why
[TS]
01:03:22
◼
►
regular expressions are so inscrutable
[TS]
01:03:24
◼
►
to me it's just this horrible looking
[TS]
01:03:26
◼
►
thing you know so your reputation you
[TS]
01:03:30
◼
►
know first impressions may mean a bit a
[TS]
01:03:31
◼
►
lot and the fact that Perl was the first
[TS]
01:03:33
◼
►
one to come in with very discretions
[TS]
01:03:35
◼
►
it's like boom you're labeled the bosal
[TS]
01:03:36
◼
►
bit is flipped you are the language that
[TS]
01:03:37
◼
►
nobody can read and yet had the shell
[TS]
01:03:40
◼
►
like syntax and everything now it's
[TS]
01:03:43
◼
►
interesting that this type of you know
[TS]
01:03:45
◼
►
prejudice against languages with weird
[TS]
01:03:47
◼
►
stuff is just to compare the end keyword
[TS]
01:03:52
◼
►
in Ruby where you know instead of having
[TS]
01:03:54
◼
►
curly braces curly braces your bag is or
[TS]
01:03:56
◼
►
non word characters and you have to hold
[TS]
01:03:57
◼
►
down shift to type them right but end is
[TS]
01:04:01
◼
►
a lot longer than curly braces isn't it
[TS]
01:04:02
◼
►
and the real programmers quote-unquote
[TS]
01:04:04
◼
►
from the olden days C C++ guys they had
[TS]
01:04:06
◼
►
curly braces still yeah
[TS]
01:04:08
◼
►
curly braces weren't a big deal to them
[TS]
01:04:09
◼
►
ah and again it seems like bad Huffman
[TS]
01:04:12
◼
►
coding to take probably the most
[TS]
01:04:14
◼
►
commonly typed keyword in your entire
[TS]
01:04:16
◼
►
language and in the case of Ruby and
[TS]
01:04:18
◼
►
make three characters long instead of
[TS]
01:04:20
◼
►
one even if you count the QWERTY coke is
[TS]
01:04:23
◼
►
to like hold down shift and hold down
[TS]
01:04:24
◼
►
the you know the the bracket key and is
[TS]
01:04:27
◼
►
still longer to type
[TS]
01:04:28
◼
►
so it seems like if you're going to be
[TS]
01:04:30
◼
►
like oh you know what's going to win is
[TS]
01:04:32
◼
►
aesthetics in terms of making me type
[TS]
01:04:34
◼
►
too much stuff going to win or or is
[TS]
01:04:37
◼
►
aesthetics in terms of non-word
[TS]
01:04:38
◼
►
character is going to win and pearl
[TS]
01:04:40
◼
►
basically didn't get dinged for having
[TS]
01:04:42
◼
►
curly braces and Ruby didn't really good
[TS]
01:04:45
◼
►
things for having the end keyword too
[TS]
01:04:47
◼
►
much but nowadays if you were to say
[TS]
01:04:49
◼
►
what looks cleaner they're going to say
[TS]
01:04:50
◼
►
Ruby looks cleaner even though it's got
[TS]
01:04:52
◼
►
these little end keywords littering up
[TS]
01:04:53
◼
►
the entire thing but it doesn't have the
[TS]
01:04:55
◼
►
curly braces you're like well I have
[TS]
01:04:57
◼
►
that end but I don't have to have the
[TS]
01:04:58
◼
►
opening curly you know so people
[TS]
01:05:02
◼
►
deciding what it is that makes something
[TS]
01:05:03
◼
►
ugly or not whether it's Dena word
[TS]
01:05:05
◼
►
characters or having to type some long
[TS]
01:05:07
◼
►
thing that tends to flip-flop based on
[TS]
01:05:09
◼
►
the context and the same people have a
[TS]
01:05:11
◼
►
different opinion when looking at
[TS]
01:05:13
◼
►
different languages at different times
[TS]
01:05:15
◼
►
so for for Perl you don't like it
[TS]
01:05:20
◼
►
because ugly and you make the jokes
[TS]
01:05:21
◼
►
about it being a read only and stuff
[TS]
01:05:22
◼
►
like that but there are other things
[TS]
01:05:24
◼
►
that give it a bad reputation but the
[TS]
01:05:27
◼
►
most people probably don't know about I
[TS]
01:05:29
◼
►
think my my description of why people
[TS]
01:05:32
◼
►
don't like Perl pretty much covers the
[TS]
01:05:34
◼
►
basis for anyone who it hasn't actually
[TS]
01:05:35
◼
►
done any programming in Perl where
[TS]
01:05:38
◼
►
they'll say I don't like it
[TS]
01:05:39
◼
►
it's ugly regular expressions are
[TS]
01:05:41
◼
►
unreadable the end more or less you have
[TS]
01:05:44
◼
►
any actual more actual objections coming
[TS]
01:05:46
◼
►
from someone who doesn't really write in
[TS]
01:05:47
◼
►
Perl against the Perl language yeah I
[TS]
01:05:52
◼
►
think I think it all really does come
[TS]
01:05:53
◼
►
down to just legibility how how it's
[TS]
01:05:57
◼
►
it's a joke people in the chatroom or
[TS]
01:05:59
◼
►
even talking about it that it's it's a
[TS]
01:06:01
◼
►
tough language and also I mean it are
[TS]
01:06:03
◼
►
there you know people will complain and
[TS]
01:06:04
◼
►
I'm not sure that this isn't the knock
[TS]
01:06:06
◼
►
against the language directly but there
[TS]
01:06:08
◼
►
are the where where are the really
[TS]
01:06:11
◼
►
awesome frameworks written in Perl that
[TS]
01:06:13
◼
►
people should be using where where does
[TS]
01:06:16
◼
►
Perl move into the the next generational
[TS]
01:06:18
◼
►
kind of thinking I mean sure it's great
[TS]
01:06:20
◼
►
if you want to you know write something
[TS]
01:06:22
◼
►
that will parse text and turn it into
[TS]
01:06:24
◼
►
HTML for you but what what are people
[TS]
01:06:27
◼
►
using Perl for in the real world why
[TS]
01:06:29
◼
►
doesn't it get the kind of attention
[TS]
01:06:31
◼
►
outside of those uber geeky sysadmin
[TS]
01:06:34
◼
►
type circles I feel like the Perl got
[TS]
01:06:39
◼
►
this reputation based on the things
[TS]
01:06:40
◼
►
we've already discussed
[TS]
01:06:41
◼
►
many years ago and that's when people
[TS]
01:06:45
◼
►
stopped looking at it right so the fact
[TS]
01:06:48
◼
►
that you don't know the answers to any
[TS]
01:06:49
◼
►
of those questions doesn't mean that
[TS]
01:06:50
◼
►
there aren't answers it just means that
[TS]
01:06:53
◼
►
the latyout you have removed pearl from
[TS]
01:06:56
◼
►
your mind in the past and haven't looked
[TS]
01:06:57
◼
►
at it since and neither of any other
[TS]
01:06:59
◼
►
people so it doesn't come up anymore and
[TS]
01:07:00
◼
►
you're just assumed there's nothing else
[TS]
01:07:01
◼
►
it seems like a dinosaur of a language
[TS]
01:07:04
◼
►
now I'm partially I did truth be told I
[TS]
01:07:07
◼
►
do know the value of pearl I can write
[TS]
01:07:09
◼
►
some pearl code although probably not
[TS]
01:07:12
◼
►
very much anymore I certainly do
[TS]
01:07:14
◼
►
appreciate it as a language I'm kind of
[TS]
01:07:16
◼
►
playing devil's advocate here and I'm
[TS]
01:07:18
◼
►
playing up the stereotypes the language
[TS]
01:07:20
◼
►
Imana because your representative oh
[TS]
01:07:23
◼
►
well yeah and I think so and that's
[TS]
01:07:24
◼
►
that's kind of what I want to hear your
[TS]
01:07:26
◼
►
take would you would you be saying this
[TS]
01:07:28
◼
►
do you think if you weren't right I mean
[TS]
01:07:30
◼
►
you you write Perl eight hours a day is
[TS]
01:07:32
◼
►
that I mean or yeah yeah that's that's
[TS]
01:07:35
◼
►
that's surprising so before I go and
[TS]
01:07:38
◼
►
tell you what's good about Perl I'm
[TS]
01:07:39
◼
►
gonna tell you the things that are bad
[TS]
01:07:41
◼
►
about it that I think are much more
[TS]
01:07:42
◼
►
significant than the things we just
[TS]
01:07:44
◼
►
discussed okay because I think Pro got
[TS]
01:07:46
◼
►
dismissed long before but it got
[TS]
01:07:49
◼
►
dismissed by the mass market long before
[TS]
01:07:52
◼
►
the mass market discovery was truly bad
[TS]
01:07:54
◼
►
about it all right so the things that
[TS]
01:07:57
◼
►
are actually you know because I think
[TS]
01:07:58
◼
►
that aesthetic stuff as evidenced by
[TS]
01:08:00
◼
►
objective-c like that that stuff you can
[TS]
01:08:02
◼
►
get over like regular expressions
[TS]
01:08:03
◼
►
everyone's gotten over already so
[TS]
01:08:05
◼
►
regular expressions even though you know
[TS]
01:08:07
◼
►
everyone will agree okay I get I
[TS]
01:08:09
◼
►
understand Regulus prices now I see why
[TS]
01:08:10
◼
►
they're useful and see why the line
[TS]
01:08:12
◼
►
noise and they're in every freaking
[TS]
01:08:13
◼
►
language so you can't pinpoint perl for
[TS]
01:08:14
◼
►
but still Perl gets the blame for being
[TS]
01:08:16
◼
►
I read all the other and the dollar
[TS]
01:08:18
◼
►
signs like the square brackets like if
[TS]
01:08:20
◼
►
there was some reason to keep using Perl
[TS]
01:08:22
◼
►
and it was really popular people get
[TS]
01:08:23
◼
►
over like you get over the square
[TS]
01:08:24
◼
►
brackets maybe not you but most people
[TS]
01:08:26
◼
►
basically you know grin and bear with
[TS]
01:08:28
◼
►
the square brackets because of the other
[TS]
01:08:29
◼
►
advantages and to just to respond to you
[TS]
01:08:32
◼
►
really quickly if if I was if I was
[TS]
01:08:35
◼
►
serious about writing an iOS app or Mac
[TS]
01:08:38
◼
►
OS 10 app in and today I would have no
[TS]
01:08:40
◼
►
problem dealing with it I probably would
[TS]
01:08:43
◼
►
eventually get to like it and there are
[TS]
01:08:44
◼
►
people who will say oh the objective-c
[TS]
01:08:46
◼
►
is beautiful maybe it would grow on me
[TS]
01:08:49
◼
►
but certainly if if the choice is taken
[TS]
01:08:52
◼
►
away if if somebody said oh you can use
[TS]
01:08:54
◼
►
Mac Ruby
[TS]
01:08:55
◼
►
and just write Ruby code and of course I
[TS]
01:08:57
◼
►
would pick that first because that's
[TS]
01:08:59
◼
►
where my comfort zone is and because I
[TS]
01:09:01
◼
►
like that I'm comfortable with that but
[TS]
01:09:03
◼
►
yeah I mean you deal with it but is that
[TS]
01:09:06
◼
►
what you're saying about pearly you're
[TS]
01:09:07
◼
►
not saying that so so what I'm sort of
[TS]
01:09:08
◼
►
saying is that those little things I
[TS]
01:09:10
◼
►
think would not have been enough to keep
[TS]
01:09:11
◼
►
people away what kept people away was
[TS]
01:09:13
◼
►
that it was the standard bearer for
[TS]
01:09:15
◼
►
things that freak people out about
[TS]
01:09:16
◼
►
syntax and aesthetics and people moved
[TS]
01:09:18
◼
►
on before they find the real problems
[TS]
01:09:20
◼
►
here are the things that are actually
[TS]
01:09:20
◼
►
problems with Perl the only people who
[TS]
01:09:22
◼
►
know that these are actual problems with
[TS]
01:09:23
◼
►
Perl the people who have seriously been
[TS]
01:09:25
◼
►
developing with Perl because a those
[TS]
01:09:26
◼
►
people have gotten over or never been
[TS]
01:09:28
◼
►
affected by whatever you know Perl is
[TS]
01:09:30
◼
►
ugly thing like if they knew a regular
[TS]
01:09:33
◼
►
expressions before or they or they just
[TS]
01:09:34
◼
►
got used to them came to like them they
[TS]
01:09:36
◼
►
dealt with the dollar signs or they
[TS]
01:09:37
◼
►
actually came to like them or whatever
[TS]
01:09:39
◼
►
those weren't the issues here the actual
[TS]
01:09:40
◼
►
issues of the Perl now the first big one
[TS]
01:09:42
◼
►
is that Perl is kind of like JavaScript
[TS]
01:09:44
◼
►
in that it doesn't do the things that
[TS]
01:09:48
◼
►
people wanted to do with respect to
[TS]
01:09:50
◼
►
object systems so it gives you this
[TS]
01:09:52
◼
►
little mini construction kit from which
[TS]
01:09:54
◼
►
you can build what more traditional
[TS]
01:09:57
◼
►
object system might look like and many
[TS]
01:10:00
◼
►
people did they took this was Pro 5
[TS]
01:10:01
◼
►
which introduced these object oriented
[TS]
01:10:03
◼
►
mechanisms they took this little tool
[TS]
01:10:04
◼
►
kit and I said okay well I want objects
[TS]
01:10:06
◼
►
that look like this and they would write
[TS]
01:10:07
◼
►
a little the equivalent of like all the
[TS]
01:10:09
◼
►
but you know prototype and jQuery on the
[TS]
01:10:11
◼
►
stuff that they build their own little
[TS]
01:10:12
◼
►
object maker thing inside their
[TS]
01:10:14
◼
►
framework well everybody in Perl built
[TS]
01:10:16
◼
►
their own little object maker thing and
[TS]
01:10:17
◼
►
all of them were slightly different and
[TS]
01:10:19
◼
►
all them are slightly incompatible and
[TS]
01:10:21
◼
►
you know over time people came up with
[TS]
01:10:23
◼
►
new ones we're gonna do two objects like
[TS]
01:10:24
◼
►
this so I'm going to do objects like
[TS]
01:10:25
◼
►
that I'm gonna do them like this and
[TS]
01:10:26
◼
►
here's how you build a class and my
[TS]
01:10:27
◼
►
thing I'm going to do this and I'm gonna
[TS]
01:10:28
◼
►
make a you know a source filter and I'm
[TS]
01:10:31
◼
►
gonna add new keywords and I'm going to
[TS]
01:10:32
◼
►
do this syntax and I'm gonna make my
[TS]
01:10:33
◼
►
objects inside out you even know what
[TS]
01:10:34
◼
►
that is no one outside Perl poly knows
[TS]
01:10:36
◼
►
what inside out objects are but uh all
[TS]
01:10:38
◼
►
sorts of you know I can make my objects
[TS]
01:10:40
◼
►
out of a race because it's faster and
[TS]
01:10:41
◼
►
I'm gonna make you know all crazy sorts
[TS]
01:10:44
◼
►
of things you know the problem was that
[TS]
01:10:46
◼
►
that leaves you with a huge library of
[TS]
01:10:48
◼
►
code everyone ever and everyone's using
[TS]
01:10:50
◼
►
their own little object construction kit
[TS]
01:10:52
◼
►
and they're either not compatible with
[TS]
01:10:54
◼
►
each other or it's like well why do I
[TS]
01:10:55
◼
►
have to have 17 different object
[TS]
01:10:57
◼
►
construction kits in here in my in my
[TS]
01:10:58
◼
►
one application when I really just want
[TS]
01:11:00
◼
►
one this is something that should have
[TS]
01:11:01
◼
►
been built into the language now it's
[TS]
01:11:03
◼
►
bad that it wasn't because you get the
[TS]
01:11:05
◼
►
situation where there's a million
[TS]
01:11:05
◼
►
different object systems right but on
[TS]
01:11:07
◼
►
the other hand well I
[TS]
01:11:08
◼
►
I'll set it up for the part where I do
[TS]
01:11:09
◼
►
good stuff it's just that were the bed
[TS]
01:11:11
◼
►
there's not one way to do objects and
[TS]
01:11:13
◼
►
people did million of them is big Harry
[TS]
01:11:15
◼
►
messing continues to be a big hairy mess
[TS]
01:11:16
◼
►
to this day um the other thing is that
[TS]
01:11:22
◼
►
Perl I guess we have to start getting
[TS]
01:11:25
◼
►
into the good at this point because I
[TS]
01:11:27
◼
►
think that's probably probably the
[TS]
01:11:28
◼
►
biggest bad thing about Perl and I guess
[TS]
01:11:30
◼
►
the implementation doom the Perl was
[TS]
01:11:31
◼
►
written is a big giant C program by one
[TS]
01:11:34
◼
►
dude and that one dude rewrote it uh but
[TS]
01:11:38
◼
►
really that's not you know Ruby has the
[TS]
01:11:40
◼
►
same problem to some degree of like
[TS]
01:11:41
◼
►
being a big Harry C program under the
[TS]
01:11:43
◼
►
covers that has problems that's why
[TS]
01:11:44
◼
►
projects like JRuby and maglev and all
[TS]
01:11:47
◼
►
these other you know rubinius is that
[TS]
01:11:50
◼
►
are you pronouncing all the other VMs
[TS]
01:11:51
◼
►
when when your language is defined
[TS]
01:11:53
◼
►
basically by you know how does the Ruby
[TS]
01:11:56
◼
►
executable behave this Ruby C program
[TS]
01:11:59
◼
►
written by a couple of guys that defines
[TS]
01:12:01
◼
►
my language like it's not there's a
[TS]
01:12:02
◼
►
language spec there's no language
[TS]
01:12:03
◼
►
standard it's like we wrote this program
[TS]
01:12:06
◼
►
you feed its source code that we say is
[TS]
01:12:08
◼
►
Ruby source code and it executes it for
[TS]
01:12:10
◼
►
you your language can end up being
[TS]
01:12:13
◼
►
hamstrung by the interpreter and that's
[TS]
01:12:15
◼
►
true of Perl the summary slide because
[TS]
01:12:16
◼
►
any C program that's long lived get
[TS]
01:12:18
◼
►
scruffty or whatever in a certain point
[TS]
01:12:19
◼
►
you have trouble extending an advancing
[TS]
01:12:21
◼
►
language because the internals are
[TS]
01:12:23
◼
►
gross-looking and perl has been working
[TS]
01:12:26
◼
►
towards improving that and so is ruby
[TS]
01:12:28
◼
►
and so of all the other ones back
[TS]
01:12:29
◼
►
sometimes they say you know we're not
[TS]
01:12:30
◼
►
even going to deal with the real Ruby VM
[TS]
01:12:32
◼
►
we're gonna we're going to use a JVM and
[TS]
01:12:33
◼
►
write our own thing on top of it and
[TS]
01:12:34
◼
►
just you know you got that whole thing
[TS]
01:12:36
◼
►
going on but that's the other thing
[TS]
01:12:37
◼
►
that's that hamstrings languages like
[TS]
01:12:39
◼
►
Perl Ruby hmm the good thing about all
[TS]
01:12:43
◼
►
this bad stuff is that the fact that
[TS]
01:12:46
◼
►
there was no objects just insulting and
[TS]
01:12:47
◼
►
everyone built their own little optics
[TS]
01:12:49
◼
►
system it basically became like a
[TS]
01:12:52
◼
►
breeding ground or I'll I don't know
[TS]
01:12:54
◼
►
you'd call like a Genesis project for
[TS]
01:12:57
◼
►
object systems alright so the first dude
[TS]
01:13:00
◼
►
to write an object system and pearls
[TS]
01:13:02
◼
►
like to make it like C++ and then Java
[TS]
01:13:04
◼
►
comes out and let's make some sort of
[TS]
01:13:05
◼
►
like Java type thing on top of it and
[TS]
01:13:07
◼
►
then all these weird experiments that no
[TS]
01:13:08
◼
►
one even heard of with the inside out
[TS]
01:13:09
◼
►
stuff and trying to protect the
[TS]
01:13:11
◼
►
variables with closures because we don't
[TS]
01:13:13
◼
►
have real variable privacy and designed
[TS]
01:13:15
◼
►
by contracts and all sorts of crazy
[TS]
01:13:17
◼
►
approaches like everything you can
[TS]
01:13:19
◼
►
possibly imagine was tried and what
[TS]
01:13:21
◼
►
would happen is that the better one
[TS]
01:13:22
◼
►
would squish the old one so like this
[TS]
01:13:24
◼
►
would be you know I made a quadric
[TS]
01:13:26
◼
►
system no guy no I made a cooler one
[TS]
01:13:27
◼
►
everyone forget about that ol one
[TS]
01:13:28
◼
►
because it sucks and then I'll make him
[TS]
01:13:30
◼
►
cooler one and they were forget about
[TS]
01:13:31
◼
►
that one they try something else and I
[TS]
01:13:32
◼
►
say okay I'm we're gonna make method
[TS]
01:13:34
◼
►
makers and class generators and a whole
[TS]
01:13:36
◼
►
class of things that just let you make
[TS]
01:13:38
◼
►
accessor methods in 50 different ways
[TS]
01:13:40
◼
►
and we're going to try to you know layer
[TS]
01:13:41
◼
►
on a type system and we're going to do
[TS]
01:13:43
◼
►
tons and tons of experimentation which
[TS]
01:13:45
◼
►
you couldn't do if this the language
[TS]
01:13:47
◼
►
came with like this is how you do
[TS]
01:13:49
◼
►
objects which for the most part Ruby
[TS]
01:13:50
◼
►
comes with like here's how you do
[TS]
01:13:51
◼
►
objects in Ruby here's how you do
[TS]
01:13:52
◼
►
attributes getters and setters excuse me
[TS]
01:13:55
◼
►
Python was a little bit different in
[TS]
01:13:56
◼
►
that Python had like new objects and old
[TS]
01:13:58
◼
►
job jokes where they had one way to do
[TS]
01:14:00
◼
►
objects and people said well this is
[TS]
01:14:01
◼
►
great but there's some common things
[TS]
01:14:02
◼
►
that doesn't do so they had a new style
[TS]
01:14:04
◼
►
object and then they had Python 3 right
[TS]
01:14:06
◼
►
Perl 5 just start up with that little
[TS]
01:14:08
◼
►
core of you know an object construction
[TS]
01:14:10
◼
►
since we've got a simple thing for
[TS]
01:14:11
◼
►
inheritance is a simple thinker method
[TS]
01:14:13
◼
►
dispatch and a simple thing for you know
[TS]
01:14:15
◼
►
the Ruby equivalent of the proto Kedar
[TS]
01:14:17
◼
►
method missing in Ruby and just go nuts
[TS]
01:14:19
◼
►
and people did go nuts ah what has led
[TS]
01:14:22
◼
►
to is that I think the Perl has had and
[TS]
01:14:26
◼
►
continues to have the largest group of
[TS]
01:14:28
◼
►
developers doing quote-unquote advanced
[TS]
01:14:30
◼
►
stuff in a semi popular language if you
[TS]
01:14:32
◼
►
want to do interesting advanced language
[TS]
01:14:34
◼
►
type stuff you can do it on top of pearl
[TS]
01:14:37
◼
►
because pearl doesn't decide how they're
[TS]
01:14:38
◼
►
going to do it for you so for example
[TS]
01:14:40
◼
►
pearl is the only language that I know
[TS]
01:14:41
◼
►
of where as a community if you're in the
[TS]
01:14:44
◼
►
pearl community it's basically been
[TS]
01:14:46
◼
►
agreed upon that roles are awesome and
[TS]
01:14:47
◼
►
better than regular all now do you even
[TS]
01:14:49
◼
►
know what roles are roles with in which
[TS]
01:14:52
◼
►
context explain it roles traits you read
[TS]
01:14:55
◼
►
the paper on traits that roles as pearls
[TS]
01:14:57
◼
►
name for them it's a different way of
[TS]
01:14:58
◼
►
doing instead of doing inheritance of
[TS]
01:15:01
◼
►
delegations different is a different way
[TS]
01:15:03
◼
►
of factoring out common code instead of
[TS]
01:15:06
◼
►
factoring out code in terms of
[TS]
01:15:07
◼
►
inheritance or mixing classes or you can
[TS]
01:15:09
◼
►
you patching or whatever I mean this is
[TS]
01:15:12
◼
►
something that most people haven't even
[TS]
01:15:13
◼
►
heard of unless you're like deep into
[TS]
01:15:15
◼
►
the Pearl community but at this point
[TS]
01:15:16
◼
►
with so much scratching going on in the
[TS]
01:15:18
◼
►
Pearl community that you if you were
[TS]
01:15:20
◼
►
asked to someone who's deep in the
[TS]
01:15:21
◼
►
thrall community our role is good or bad
[TS]
01:15:22
◼
►
they would say good and everyone else
[TS]
01:15:25
◼
►
that haven't even heard of it and this
[TS]
01:15:25
◼
►
is true of tons of stuff like when ruby
[TS]
01:15:27
◼
►
was coming out and all the pearl people
[TS]
01:15:29
◼
►
are bitter because rubies being popular
[TS]
01:15:30
◼
►
and everything i don't know if people
[TS]
01:15:31
◼
►
know this but have you noticed a
[TS]
01:15:33
◼
►
similarity ruby it's a gemstone pearl to
[TS]
01:15:35
◼
►
kind of a shiny thing really
[TS]
01:15:36
◼
►
was basically inspired by pearl with
[TS]
01:15:39
◼
►
like the edges shape that's the people
[TS]
01:15:42
◼
►
don't like to think about that in that
[TS]
01:15:44
◼
►
relationship but it's there you know you
[TS]
01:15:47
◼
►
wonder about those dollar signs in Ruby
[TS]
01:15:49
◼
►
oh they're there people a little at sign
[TS]
01:15:51
◼
►
in front of it I know you don't use them
[TS]
01:15:52
◼
►
because they're in global and stuff but
[TS]
01:15:53
◼
►
they're there anyway we won't talk about
[TS]
01:15:55
◼
►
the lineage but they were like look at
[TS]
01:15:58
◼
►
look at Ruby we can do this awesome
[TS]
01:15:59
◼
►
stuff look this is method missing thing
[TS]
01:16:01
◼
►
and we can pass a block to a function
[TS]
01:16:03
◼
►
and it gets like you can call it back
[TS]
01:16:05
◼
►
and it's this awesome and the pearl
[TS]
01:16:07
◼
►
people roll in their eyes and be like oh
[TS]
01:16:08
◼
►
great so you discovered that isn't that
[TS]
01:16:10
◼
►
awesome
[TS]
01:16:10
◼
►
and we Anna this is stuff that's been in
[TS]
01:16:12
◼
►
Pearl is old hat and pearl like the
[TS]
01:16:15
◼
►
autoload and you know dealing with
[TS]
01:16:17
◼
►
closures and stuff that it's like that
[TS]
01:16:19
◼
►
was like a decade ago guys you know and
[TS]
01:16:20
◼
►
then it's the same way the list people
[TS]
01:16:22
◼
►
are and the small talk people are
[TS]
01:16:23
◼
►
rolling their eyes at the Pearl people
[TS]