Return to Video

Zed A. Shaw - The Web Will Die When OOP Dies

  • 0:04 - 0:06
    All right.
  • 0:07 - 0:08
    All right!
  • 0:08 - 0:11
    So, how is everybody doing?
  • 0:11 - 0:14
    I am Zed Shaun, as you know.
  • 0:14 - 0:17
    And those are 2 primary websites
    I am campaigning.
  • 0:17 - 0:20
    So you you will see that
    the entire time I am talking.
  • 0:20 - 0:22
    But that is not why I am actually here to talk about.
  • 0:22 - 0:25
    I am going to talk about, basically, bullshit.
  • 0:25 - 0:28
    I am gonna tell you, how I think the web sucks,
  • 0:29 - 0:32
    despite the amazing amount of stuff
    you guys put together.
  • 0:32 - 0:37
    I was ford like some of the crap you
    guys are making are just amazing!
  • 0:37 - 0:40
    Reverse engeneer in flash!
  • 0:40 - 0:43
    Wow! That's like resurecting a mastodonte.
    That's just amazing!
  • 0:43 - 0:46
    It was amazing!
    Very cool technology.
  • 0:46 - 0:47
    But you're basing it on some really awful stuff.
  • 0:47 - 0:53
    Not basing it, but... but you have it built on
    this pile of crap, in my opinion.
  • 0:54 - 0:55
    So let's begin.
  • 0:55 - 0:58
    I think the W3C as Voludeville Act.
  • 0:58 - 1:00
    So you might not know at Vouldeville is,
  • 1:00 - 1:05
    but is the old 1930's tcha, tcha, tcha, that kind of like... corny, like comedy
  • 1:05 - 1:09
    Basically, they are like that guy with a horn hat, throwing banana peels on the ground
  • 1:09 - 1:14
    And everybody else on the internet was walking by and swiping on them and laughing "ha, ha, ha"
  • 1:14 - 1:17
    Basically, most of their technology is kind of crap
  • 1:17 - 1:23
    So like SVG - barlely works is weird XML, its definition of how Candes should actually work
  • 1:23 - 1:27
    XML - they don't really use XML
    in the sementic web anymore.
  • 1:27 - 1:31
    They just keep it around just to not have to admit that XML was a super bad idea
  • 1:31 - 1:34
    RDF - anyone actually uses RDF?
  • 1:34 - 1:36
    Yes, cause its sucks.
  • 1:36 - 1:40
    XHTML [laughs].
    Right, that was brilliant right?!
  • 1:40 - 1:43
    The Semantic Web - that's my favorite.
  • 1:43 - 1:46
    It seems that every other boom bust cycle
    in technology scene,
  • 1:46 - 1:50
    someone is trying to do some semantic web thing
    and it falls flat and then go off...
  • 1:50 - 1:53
    in a picture sharing frame, or something like that.
  • 1:54 - 1:58
    So, the rest of the stuff, despite all the failures,
    sort of barely works.
  • 1:58 - 2:01
    So, you can get stuff done.
    You guys do amazing stuff.
  • 2:01 - 2:05
    But, it's kind of janky underneath it, right?!
  • 2:05 - 2:06
    Like, I hate HTML.
  • 2:06 - 2:12
    CSS is seriously the weirdest piece of technology ever invented. It's so bizarre.
  • 2:13 - 2:15
    Video that's never gonna happen.
  • 2:15 - 2:19
    There is so much bullshit, business crap and licensing... It just ain't...
  • 2:19 - 2:23
    Sound - I mean, I do music,
    I wanna make sound stuff,
  • 2:23 - 2:27
    I try to make it like sound synced with some transitions... Just forget it.
  • 2:27 - 2:29
    Someone came out of the library and they will try.
  • 2:29 - 2:34
    Uploads - how many people know
    that there is a new upload app?
  • 2:34 - 2:38
    What? 10%? There is a new app.
    You don't even use Flash anymore to do upload.
  • 2:38 - 2:42
    Nobody knows that there is a new upload app that solves all the stuff you hate about uploads.
  • 2:42 - 2:45
    Because they never told you about it!
    Stupid!!
  • 2:45 - 2:51
    And Java Script. I am sorry,
    but Java Script fucking sucks.
  • 2:51 - 2:52
    I fucking hate Java Script.
  • 2:52 - 3:00
    Any languange that can't do real math and store an image in a binary BLOB, is a broke ass language.
  • 3:01 - 3:07
    So, anyone seen Popcorn.js? Is 2000 lines of code that lets you do like sound transition.
  • 3:07 - 3:10
    Something that should just be simple, basic, right?!
  • 3:11 - 3:15
    How about Candes? You can't make circles. Everyone goes: "oh yeah, you can"
  • 3:15 - 3:21
    Yeah, you're right... with art defining the radius and doing your own pi calculation.
  • 3:21 - 3:26
    When I see this, I think that some dude who wrote this was trying to teach his kid about pi.
  • 3:26 - 3:29
    He was like: "oh, I know, I am just gonna make the Candes do nothing but arc and no circles.
  • 3:31 - 3:37
    I want Sugar. This is the thing that bugs me the most about the whole W3C and all that stuff.
  • 3:37 - 3:40
    Is, you guys make the sugar I like to us.
  • 3:40 - 3:42
    You make the awesome things I want to use
  • 3:42 - 3:47
    Why isn't the stuff that you make
    the actual crap I use in the browser?
  • 3:47 - 3:53
    Instead of making this janky broke ass as standard, make stuff that I can actually use.
  • 3:53 - 4:00
    So, what it turns out is it seems that
    W3C exists or it benefits instead
  • 4:00 - 4:05
    There are a lot of good money in writing code
    that makes this shit suck less.
  • 4:06 - 4:09
    But we shouldn't have to do this.
  • 4:09 - 4:10
    So let's pick on HTML.
  • 4:10 - 4:16
    You get 5 versions of HTML,
    yeah 5 version before HTML file,
  • 4:16 - 4:19
    and there is even a few otheres,
    before I get actual sementic tags.
  • 4:19 - 4:23
    And, no, div is not a fucking semantic tag.
  • 4:23 - 4:26
    I don't care what anyone says.
    Div is not semantic! It's DIV!
  • 4:26 - 4:32
    It doesn't say like "header", those are semantic.
    Now you can actually give name tags.
  • 4:32 - 4:37
    Why do I have to have a < p > tag on everything? Just assume it's a fucking paraghaph!
  • 4:37 - 4:41
    That's what LaTeX does. LaTex does this!
    Markdown does this.
  • 4:41 - 4:44
    Everything that you do
    for document preparation does this.
  • 4:44 - 4:46
    But I have to tag everything on HTML.
  • 4:46 - 4:54
    Oh, except I don't have to always end all the tags, cause you have XHTML, but... whatever
  • 4:54 - 4:56
    Horrendous visual crafting tools.
  • 4:56 - 5:02
    The visual crafting tool work to actually craft the video, like DreamWeaver and thigs like that.
  • 5:02 - 5:06
    But, the problem I always had with those tools is they didn't make anything programers could consume.
  • 5:06 - 5:11
    Why can't these tools crap out like tamplates
    that are actually usefull for programers.
  • 5:11 - 5:14
    Why can't you give them little packages
    that produce it.
  • 5:14 - 5:19
    And they are barely Rich Media. Like now you can make awesome Rich Media apps,
  • 5:19 - 5:21
    but the actual base stuff just barely is Rich Media.
  • 5:21 - 5:26
    Like, being able to have solid transition.
    This is why people use Flash.
  • 5:26 - 5:28
    But wait! 3D works?
  • 5:28 - 5:32
    Like, the most advance graphic system you can do works, but none of the other crap works.
  • 5:32 - 5:38
    I have to do bizarre mingling... I mean...
    fire bug, screwing around with CSS
  • 5:38 - 5:40
    just to get a fricking Div to center.
  • 5:40 - 5:44
    But, I can have a dude run around...
  • 5:44 - 5:46
    Right?! It's fucking bizarre.
  • 5:46 - 5:52
    All right. I've always had this weird dream
    that is only useable if you generate stuff Server Side
  • 5:52 - 5:53
    which sort of fits the point,
  • 5:53 - 5:58
    cause everyone's laptop is actually
    more powerfull than most of the servers I run.
  • 5:58 - 6:01
    So why can I leverage your laptop's power
    to do the majority of the handwrite?
  • 6:01 - 6:05
    Instead, everyone has this janky framework
    just to produce this HTML.
  • 6:05 - 6:09
    And the you say: "oh, but there is a mustache
    on all this tamplates"
  • 6:09 - 6:11
    Do you ever debugged those things?
  • 6:11 - 6:13
    Like they generate Java Script
    and than it blows up
  • 6:13 - 6:17
    and now you are trying to figure out
    how it generates the template Java Script
  • 6:17 - 6:19
    that figures out where that thing is...
  • 6:19 - 6:21
    And Java script is awesome with errors, isn't it?
  • 6:21 - 6:24
    Yeah, that stuff is really fun!
  • 6:24 - 6:26
    So, fuck you HTML!
  • 6:26 - 6:28
    Can I get a good visual tool?
  • 6:28 - 6:30
    Can I get a Real-in Browser Template?
  • 6:30 - 6:35
    One that I can have the actual tamplates in another file and then apply them in the other things?
  • 6:35 - 6:38
    Can I get some decent free universal video?
  • 6:38 - 6:40
    Can I get some Synchronized Sound?
  • 6:40 - 6:42
    Can I get a motherfucking < markdown> tag?
  • 6:42 - 6:44
    Wouldn't that be awesome?
  • 6:44 - 6:45
    Like, you wouldn't have to actually
    render the markdown?
  • 6:45 - 6:48
    You could actually even make it work
    between the markdown tags?
  • 6:48 - 6:52
    Disable all the HTML features
    so it was totally safe?
  • 6:52 - 6:56
    And since markdown doesn't have HTML on it,
    you could just render and you would be done.
  • 6:56 - 6:59
    And it doesn't have to do markdown,
    it can give you wiki or whatever you want.
  • 6:59 - 7:03
    But, that's standard, is going around forever.
    Why can I have?
  • 7:03 - 7:05
    Can I get tags as components?
  • 7:05 - 7:10
    Why can I say "define a tag", when it gets
    put into the DOM, by a Java Script?
  • 7:10 - 7:19
    I've already got semantic tags, why can I have
    bonus tags? Just use these files...
  • 7:20 - 7:24
    Can I get disconnected uploads?
    This is one that bugs the hell out of me!
  • 7:24 - 7:28
    Bittorrent, one of the main reasons people
    shavel a lot of crap through Bittorrent
  • 7:28 - 7:30
    it's because it lets you do disconnected uploads
  • 7:30 - 7:33
    It's doing the peer-to-peer thing, but, really,
    what you can do is nice disconnected uploads.
  • 7:33 - 7:35
    It's a big feature for it.
  • 7:35 - 7:37
    So, you upload this video.
  • 7:37 - 7:42
    I upload a lot of video. I've got this 500mb video,
  • 7:42 - 7:47
    I get a megabyte 499 and that's when the gods
    of the Internet decide to kill my fucking upload
  • 7:47 - 7:50
    and I had to start the whole one-hour upload again.
  • 7:50 - 7:54
    I don't even bother to upload videos
    when I am in Norway, or traveling. It's so bad.
  • 7:54 - 8:01
    And the thing is: Yes, you can do
    most of this stuff if you pile tons of JS.
  • 8:01 - 8:08
    But, I shouldn't have to do tons of JS just to get a useable development and user interface.
  • 8:09 - 8:11
    So, let's pick on CSS.
  • 8:11 - 8:17
    I want a fucking Grid! My God.
    Do I fucking hate not having a Grid.
  • 8:17 - 8:20
    People love grids.
    Grids are in almost everything.
  • 8:20 - 8:24
    Basic design is on Grids. You read these books about design and they talk about grids.
  • 8:24 - 8:25
    That's how they do layout.
  • 8:25 - 8:28
    I am doing clear... and float!
  • 8:31 - 8:31
    Fuck you!
  • 8:31 - 8:34
    I wanna be able to define and
    I don't want to do it with a tree.
  • 8:34 - 8:38
    I want to be able to say: "this is the grid and this is the shit that goes in the grid. Figure it out!"
  • 8:38 - 8:41
    I don't want to have put that goes here
    and that goes here...
  • 8:41 - 8:44
    I just want: grid, crap that goes in it.
    You do it!
  • 8:44 - 8:47
    But, instead I have to give instructions and...
  • 8:47 - 8:50
    Why can't I center shit?
  • 8:51 - 8:55
    Fuck you. If I fucking say center,
    fucking center it!
  • 8:55 - 8:58
    Don't make me do: margin, auto, left, zero...
  • 8:58 - 9:02
    Fuck you!! Center!
    It's a word.
  • 9:02 - 9:08
    It has a usefull application in design and in most of your publication, they like to center things.
  • 9:08 - 9:15
    But for whatever reason, the douchebags making CSS decided that I was gonna do margin, auto, left, clear...
  • 9:15 - 9:18
    No, I can't even get it right.
    I have to look it up every single time.
  • 9:18 - 9:20
    Oh, and then it doesn't work all the time:
  • 9:20 - 9:25
    if you define some parts as table elements style,
    then it won't center those.
  • 9:25 - 9:28
    You have to use a center tag
    or some other definition. It's bizarre.
  • 9:28 - 9:31
    So, fuck you CSS.
  • 9:31 - 9:32
    Can I get a fucking grid?
  • 9:32 - 9:34
    Can I get a variable?
  • 9:34 - 9:40
    I love hunting trough my CSS looking for that one x-code, that I'm gonna change.
  • 9:40 - 9:44
    But it's the same x-code as others,
    but I have to do janky searches.
  • 9:44 - 9:45
    Can I get a loop?
  • 9:45 - 9:48
    Wouldn't be awesome if you could have
    a turn complete language,
  • 9:48 - 9:53
    if you wanted to and you can dip into it?
    Or something like that.
  • 9:54 - 9:55
    How about components?
  • 9:55 - 10:00
    Can I make it so I can say: "import this,
    and this desing that guys has..."
  • 10:00 - 10:03
    and then I'm gonna based all my stuff on it
    and they don't clash.
  • 10:03 - 10:04
    I've actually got names spaces.
  • 10:04 - 10:07
    Do you ever tried to combined
    2 design elements?
  • 10:07 - 10:10
    No, you use one or the other
    and then you hack them together...
  • 10:10 - 10:14
    and you have this mountain of CSS and
    it's totally uneficient. I want components.
  • 10:15 - 10:17
    Without SASS and Compass.
  • 10:17 - 10:22
    Again, you can make all this stuff work, but you have to use technologies outside of the W3C.
  • 10:22 - 10:25
    Why aren't they going to where
    other people are doing the work and saying:
  • 10:25 - 10:27
    "why we don't make it like SASS and Compass?
  • 10:28 - 10:30
    That's the way it should be.
  • 10:30 - 10:37
    CSS is what happens when a cat hoarder with Schizophrenia tries to do a programmig language.
  • 10:37 - 10:41
    It's fucking bizarre. It's like you walk into their house you are like why are all these cats here?
  • 10:41 - 10:45
    This is strange. Is bacause pizza has
    lots of squeeze on it.
  • 10:45 - 10:49
    That's what is like working with CSS.
  • 10:50 - 10:51
    Let's pick on JavaScript.
  • 10:53 - 11:01
    Fuck you. There is no way a 4 element array
    is equal to a stream with 3 commas on it.
  • 11:01 - 11:07
    Any language that makes you think this,
    that has this kind of quality is fucking broke ass.
  • 11:07 - 11:11
    It should go: Error. That is what they should be doing when you do this.
  • 11:11 - 11:15
    That's fucking bizarre.
    This kind of crap is all over JS.
  • 11:17 - 11:17
    Floats?
  • 11:18 - 11:19
    And no binary types.
  • 11:19 - 11:23
    Do you know how hard it is to do crypto
    when you don't really have math capabilities?
  • 11:23 - 11:29
    It's fucking bizarre. I get it.
    They want UTF-8 to be everywhere.
  • 11:29 - 11:35
    But, UTF-8 is basically a binary image transform,
    like a image storage format. That's what it is.
  • 11:35 - 11:40
    Like unicode is just a way of describing it.
    This is like Postscript or PDF or all those things.
  • 11:40 - 11:45
    But making that so I can't actually store that data and transmit it in binary. I can't store images and things.
  • 11:45 - 11:48
    You can do it on NodeJS,
    because they added it.
  • 11:48 - 11:52
    But in JS? No! There is no binary BLOB type.
    "Oh, whatever, screw you".
  • 11:52 - 11:58
    And that affected web sockets. So, web sockets was this web protocol for doing sockets in the browser,
  • 11:58 - 12:03
    that at 1st had this janky, weird, everything was UTF-8, it was bizarre.
  • 12:08 - 12:12
    The other thing is:
    why only JS?
  • 12:12 - 12:16
    All those other things, people have being using broken languages forever.
  • 12:16 - 12:21
    Every language is screwed up in some unique, idiosyncratic, stupid-ass way.
  • 12:21 - 12:25
    But, on the browser,
    I don't know why I'm using only JS.
  • 12:25 - 12:28
    Usually, you are given this bullshit thing
    about the OpenWeb,
  • 12:28 - 12:33
    but everyone just minifies their crap,
    which is basically a JS bytecode.
  • 12:33 - 12:38
    Everyone uses like CoffeeScript
    or some other generator. It's gone.
  • 12:38 - 12:41
    The idea that I can open a page
    and figure out how to do it is broken.
  • 12:41 - 12:47
    And if you want to have that capability you can have decompilation. Make that part of the standard.
  • 12:47 - 12:54
    It's a fucking virtual machine. Why can I hand bytecode to it? That's what I want to know.
  • 12:54 - 12:58
    Why can I take bytecode
    and use some kind of compiler
  • 12:58 - 13:00
    to make like Lua or Ruby
    or something like that
  • 13:00 - 13:03
    and I just hand you bytecode.
    That's a way better specification.
  • 13:03 - 13:08
    Instead of I'm compiling to JS.
    JS is the assembly language of the web.
  • 13:08 - 13:12
    If that's your assembly language of the web,
    that's the shit on top,
  • 13:12 - 13:15
    you got a broke-ass computer
    you are basing your stuff on.
  • 13:16 - 13:18
    What the fuck!
  • 13:19 - 13:23
    Basically, Coffeescript should be making bytecode.
  • 13:24 - 13:30
    So fuck you JS! Why not a bytecode specification? That's what I want.
  • 13:30 - 13:35
    Now, the guys who make virtual machines
    have all these stupid reasons.
  • 13:35 - 13:38
    But every other virtual machine does this just fine.
  • 13:38 - 13:40
    There are some other reasons.
  • 13:40 - 13:43
    I always imagine there is
    some deep dark room in Google,
  • 13:43 - 13:47
    where all the web guys come and drink and
    have their cigars and think:
  • 13:47 - 13:54
    what we are going to do to screw programmers today? I know! JS! That's how they do it.
  • 13:54 - 13:57
    I wanna run Lua, Python, Ruby.
  • 13:57 - 14:02
    I don't want you to have to worry about
    what the hell I am using to run your stuff.
  • 14:02 - 14:06
    Instead people use Flash and Java
    and SilverLight and all sort of crap.
  • 14:06 - 14:10
    And they are already compiling to JS.
    So there is no OpenWeb bullshit anymore.
  • 14:10 - 14:12
    Just admit and give me bytes!
  • 14:12 - 14:16
    That's my real major complaint
    about the JS part of the web:
  • 14:16 - 14:22
    that I shouldn't have to use JS if I don't want to.
    That would be an OpenWeb.
  • 14:23 - 14:28
    So, I do a lot of web servers and I think HTTP is kind of the only part that is not super janky.
  • 14:28 - 14:34
    Mostly because its really broke-ass stuff can't be avoided and it hasn't changed a lot, right?!
  • 14:34 - 14:36
    But it's still pretty horrible.
  • 14:36 - 14:42
    I mean, how many people have actually done web servers/written web servers, anything like that?
  • 14:42 - 14:46
    Trust me. It's awful.
  • 14:46 - 14:48
    Its primary limitation is that it's not asynchronous.
  • 14:48 - 14:52
    So, SPDY is better.
  • 14:52 - 14:55
    Have you seen the SPDY crap
    that Google is coming out with?
  • 14:55 - 14:59
    Is like a new way to do HTTP.
    It's more of a binary protocol.
  • 14:59 - 15:03
    Basically, it's a way for Google to save
    about 2% operating cost
  • 15:03 - 15:06
    It's better than HTTP anyway.
  • 15:06 - 15:07
    But the Spec is awful.
  • 15:07 - 15:10
    The last time I check this was the Spec,
    I am not kidding you.
  • 15:10 - 15:16
    It's basically a bunch Google Style, Uber bulshit C++ code and one part of Chrome.
  • 15:16 - 15:20
    Looks like it was clearly written by some kid
    who step out of college,
  • 15:20 - 15:22
    knew about of algorithm,
    but not how to write code.
  • 15:22 - 15:26
    So you try to figure out what happens when I get this bi-code and after a while you are just like: forget it.
  • 15:26 - 15:31
    The best Spec I saw was what some dude implemented... that was actually really well done.
  • 15:32 - 15:41
    So, why does all this stuff happen? Why is there this base set of technology that is just awful.
  • 15:41 - 15:47
    How many people basically... Most people I talk to basically agree that it just sucks.
  • 15:47 - 15:49
    But you still do amazing stuff on it.
  • 15:49 - 15:53
    I mean with enough passion and enough work people really work their ass off to make awesome stuff.
  • 15:53 - 15:57
    Like 3D graphics and reverse engineering Flash
  • 15:57 - 15:59
    and making virtual machines
    that are just fast as balls,
  • 15:59 - 16:03
    in a language that is just really awful to compile.
  • 16:03 - 16:04
    They do it.
  • 16:04 - 16:08
    And the reason why is we switch from a way of doing it where we wrote code then wrote the standard,
  • 16:08 - 16:13
    to a way of company X pushes a vague standard
    in a way to try to dominate it.
  • 16:13 - 16:14
    That's been happening since...
  • 16:14 - 16:22
    I wanna say since the HML Microsoft fiasco kind of days, when the W3C got really popular.
  • 16:22 - 16:25
    And I feel that there is just too much money involved and backroom deals,
  • 16:25 - 16:28
    so it's not gonna change from within.
  • 16:28 - 16:31
    You're not gonna see a lot of people
    just suddenly going:
  • 16:31 - 16:34
    "you know what, we're gonna make a new browser that ain't got that stuff"
  • 16:34 - 16:39
    That's too many network effect, there is too much involved. Too many people...
  • 16:39 - 16:44
    And you wonder why isn't someone like Mozilla who is non-for profit out there making... saying:
  • 16:44 - 16:49
    "we have a lab that just makes an alternative to web, that attempts to fix all this shit, just to see if it works"
  • 16:49 - 16:55
    Ah, because they get most of their money from the companies that fund them and from all the donations.
  • 16:56 - 17:00
    So, it's gonna take a revolution for this to change.
  • 17:00 - 17:02
    Now, here is the crazy bullshit part.
  • 17:02 - 17:04
    The previous part is my opinion.
  • 17:04 - 17:08
    So, it's interesting talking to all of you,
    because if I say "all that stuff sucks"
  • 17:08 - 17:12
    you sort of know I'm right, but then you always come with the: "yeah, but then you can work around it".
  • 17:12 - 17:16
    And my point is that stuff is broke ass, I shouldn't have to work around it. It should just go away.
  • 17:18 - 17:24
    So push that on a stack here.
  • 17:26 - 17:31
    So, I've been teaching a lot of programming
    and the thing I find,
  • 17:31 - 17:34
    and we are talking in metrics:
    I'm basically through my books and on-line,
  • 17:34 - 17:40
    I'm probably teaching maybe
    500.000 people/ month, if you count traffic.
  • 17:40 - 17:44
    I'm saying in practical terms, maybe,
    through direct interaction and stuff like that,
  • 17:44 - 17:49
    we are talking maybe about 10.000-20.000 people online through talking. That's my guess.
  • 17:49 - 17:53
    And the only part that I can't explain is
    Object Oriented Programming.
  • 17:53 - 17:56
    So I started thinking about this.
    It's just fucking bizarre.
  • 17:57 - 17:58
    Nobody gets it right.
  • 17:58 - 18:01
    Because there is not really a right.
  • 18:01 - 18:03
    It's difficult to teach
  • 18:03 - 18:07
    and it has no Computational Representation
    in a computer.
  • 18:07 - 18:12
    Everything else about programming has some part of the computer that is supportive.
  • 18:12 - 18:14
    Except for Object Orientd Programming.
  • 18:14 - 18:17
    Like the math part, the loops... you find those in CPUs all the time.
  • 18:17 - 18:23
    But the Objects? There is no Object Part. It doesn't really fit in Computation. There isn't a theory for it.
  • 18:23 - 18:25
    And it doesn't really have an analog in the real world.
  • 18:25 - 18:31
    You always see people who are really good at Object Oriented struggling with bears and cats in...
  • 18:31 - 18:35
    There are all those blueprints that make houses and then... None of that really fits.
  • 18:36 - 18:41
    It's sort of this weird and illogical Philosophy that everyone just adapts.
  • 18:42 - 18:46
    So, let me show you how I teach the other part of Programming: structure and fuctional.
  • 18:46 - 18:51
    So what I do is start with command stuff. I go like: "hey, there are commands"
  • 18:51 - 18:57
    So most people can get to that. They get the concept of talking to the computer. That's how I teach that.
  • 18:57 - 19:01
    Then I go: "hey, you can make your own commands, so check this out"
  • 19:01 - 19:04
    And I show and make a command that takes arguments.
  • 19:04 - 19:08
    Then I go: "hey, inside those scripts, you can make commands that take arguments"
  • 19:08 - 19:11
    You see the trend here? I am climbing a mountain of stupidity.
  • 19:11 - 19:13
    I'm taking this person and showing them slowly:
  • 19:13 - 19:17
    "hey, these things are all similar, but slightly different, as you go up"
  • 19:17 - 19:20
    And then I say you can make a module with a lot of commands with in.
  • 19:20 - 19:27
    And then I can teach if, else and some looping and some structure stuff.
  • 19:27 - 19:32
    And what happens is they sort of find recursion on their own.
  • 19:32 - 19:36
    I don't necessarily have to tell them exactly how recursion is. I have to make a game.
  • 19:36 - 19:38
    And the rooms of the games are sort of recursive.
  • 19:38 - 19:42
    And they start asking interesting questions, like: what happens if a run a game forever?
  • 19:42 - 19:44
    "Oh, you would run out of stack"
  • 19:45 - 19:49
    People find tale calls. They find the white company.
  • 19:52 - 19:54
    And this all comes from nothing.
  • 19:54 - 19:58
    I don't have to have them understand the basic, weird philosophys or anything like that.
  • 20:03 - 20:08
    But, this almost indescribable from nothing.
  • 20:08 - 20:13
    I think because it actually kind of is nothing. It's sort of weirdly and abstract philosophical idea.
  • 20:14 - 20:19
    It's sort of an antiquated explanation of "Information History".
  • 20:19 - 20:23
    It's a way, it's describing how DNA history travel trough species
  • 20:23 - 20:27
    or a way of describing a blueprint becomes a building.
  • 20:27 - 20:29
    It's kind of an information exchange.
  • 20:29 - 20:32
    And I find the computational side of it.
  • 20:32 - 20:35
    Like you saw the presentation of Virtual Machines. That's pretty standard.
  • 20:35 - 20:40
    Like you start dealing with Objected Languages. Just finding the function in an object is a pain in the ass.
  • 20:40 - 20:45
    And from the language goes crazy lengths to make it stactic so that is less flexible.
  • 20:45 - 20:49
    Or if it's flexible you have to do crazy shit to find functions and stuff.
  • 20:49 - 20:52
    It's just doesn't fit in a computer anymore. You have to make weird shit to make it work.
  • 20:53 - 20:56
    And nobody gets it right when they implemented it.
  • 20:56 - 20:58
    Any new Phyton?
  • 20:58 - 21:02
    Ok, Phyton had this think when they broke the way they implement objects.
  • 21:02 - 21:07
    Ruby did to.
  • 21:07 - 21:10
    So what they came up with is there are old style classes and new style classes.
  • 21:10 - 21:14
    And what you do for a new style classe you say: class Foo (object).
  • 21:14 - 21:18
    You know what happens to a student's brain when I say "classes are objects"
  • 21:18 - 21:21
    I can see they trying to teach: "oh, there is objects and you have these things".
  • 21:21 - 21:30
    Ok, so why do I say classes and objects, since classes are objects? I go like: ERROR, ERROR.
  • 21:31 - 21:34
    That's what I am talking about.
  • 21:34 - 21:38
    Object Oriented Programming is a weird Philosophy that doesn't really fit in the way this work now
  • 21:38 - 21:40
    and doesn't fit in computer.
  • 21:40 - 21:44
    So, all the evidence is pointing to me that Object Oriented Programming is bullshit.
  • 21:44 - 21:48
    And is hard to accept that, cause I've done it for decades.
  • 21:49 - 21:53
    Ok, POP the Stack. Take that HTML idea and bring it back.
  • 21:53 - 21:55
    So, this is the crazy part.
  • 21:55 - 21:59
    Tim Berners Lee sort of created the 1st version prototype of the web
  • 21:59 - 22:02
    on the NextStep Computer, right?!
  • 22:02 - 22:06
    That's means it was an Objective-C. And this is the history that I remember.
  • 22:07 - 22:11
    And if you look at HTML and HTTP and all the things that we see that is kind of broken...
  • 22:11 - 22:14
    they look like Object Oriented Programming problems too, right?!
  • 22:14 - 22:17
    Like, you know in an Object Oriented Programming how it sort of doesn't match the databases,
  • 22:17 - 22:20
    cause you can do some kind of references...
  • 22:22 - 22:25
    And trees are much easier in Object Oriented Programming Languages
  • 22:25 - 22:27
    then tables and relations are
  • 22:27 - 22:32
    Other things, like how HTTP is request response strictly, not really aceing...
  • 22:32 - 22:35
    With Object Oriented Language is like that. The request-response is really strict.
  • 22:35 - 22:37
    There are a lot of similarities.
  • 22:37 - 22:41
    And what I think happened is Object Oriented Programming it had been building up and developing
  • 22:41 - 22:45
    and it finally got accepted and became a viable idea on the NextStep Computer.
  • 22:45 - 22:47
    It became easy to do right?!
  • 22:47 - 22:56
    And that is what make it possible to Tim Berners Lee to go and kind of visualize and construct the web
  • 22:56 - 22:58
    and make a new kind of technology that weren't the way it is.
  • 22:58 - 23:00
    He've may not know that, but that's what was happening.
  • 23:00 - 23:05
    We all know that he learn a language and sort of influenced this type of thing.
  • 23:06 - 23:11
    And you see this Object Oriented Programming Attitude in the way the web sort of works.
  • 23:11 - 23:13
    And also the kind of crazyness too.
  • 23:15 - 23:18
    So, here is my crazy prediction:
  • 23:18 - 23:24
    I think OOP is going to be replace by a useable progamming language paradigm.
  • 23:24 - 23:26
    I'll explain what that is in a little bit.
  • 23:26 - 23:29
    But, just imagine, everything is replace. DUH.
  • 23:29 - 23:32
    But, I'm predicting with a certain type of thing.
  • 23:32 - 23:34
    And one step further is viable.
  • 23:34 - 23:39
    Becames the way people start thinking about code and they are all excited about it.
  • 23:39 - 23:41
    The thing that replaces the web will come out.
  • 23:41 - 23:44
    That's when the revolution will happen.
  • 23:45 - 23:48
    So, what I mean by a useable programming paradigm is this:
  • 23:48 - 23:54
    A way of writing software that is emperically based on usability,
  • 23:54 - 23:57
    not on the design taste of someone else.
  • 23:57 - 24:02
    So they come with an idea and they test wether it is easy to do and to understand.
  • 24:02 - 24:04
    For everyone. Not just begginers, everyone doing programs.
  • 24:04 - 24:09
    And that does not mean duming it down and making stupid graphics as the way we do code.
  • 24:09 - 24:13
    We are talking of real code that real people will use. But useable.
  • 24:14 - 24:16
    And then, easily taught to begginers.
  • 24:16 - 24:21
    The test should be, if I can sit down, and explain this to beginners, with a good lesson plan,
  • 24:21 - 24:23
    that they will get it most of the time.
  • 24:23 - 24:29
    That doens't mean a criple broken thing. But just a thing that is easy to explain.
  • 24:29 - 24:34
    Because, that make it easy for a regular person, a professional programmer to learn.
  • 24:35 - 24:37
    But still powerfull and deep.
  • 24:38 - 24:42
    And fits with computation.
  • 24:42 - 24:43
    That's the counter to it.
  • 24:43 - 24:46
    I can make something really useable for specific domains,
  • 24:46 - 24:51
    but then, I have to make it so that a computer can put together really easily.
  • 24:53 - 25:06
    And has real world analogs. Not some crazy bad shit thing, some dude had at the univeristy...
  • 25:06 - 25:08
    No, actual analogs in the world.
  • 25:08 - 25:15
    I can go to someone and say this is kind of like the signal a guitar has to a bunch of panels.
  • 25:17 - 25:24
    Now, my sort of vague idea of what that might look like is just kind of a structure programming set up
  • 25:24 - 25:28
    cause that's really easy to teach and good for beginners starting with computation.
  • 25:28 - 25:32
    Functional programming that's isn't by dushbags, who think that should be everything.
  • 25:32 - 25:36
    But functional programming that is just there. You don't even know. Is like a zen garden.
  • 25:36 - 25:38
    This things work better. It's so cool!
  • 25:38 - 25:41
    You don't even need to know that is "functional programming".
  • 25:41 - 25:44
    Some kind of courotines and signal flow.
  • 25:44 - 25:48
    And then the idea of signal flow instead of OOP.
  • 25:48 - 25:50
    I have no idea how that looks like.
  • 25:50 - 25:53
    It's very hard when you trying to work in an enviroment and in a world
  • 25:53 - 25:56
    and then imagine another world.
  • 25:56 - 25:57
    But that's kind of what we do.
  • 25:57 - 26:00
    But I'm not gonna get specific into this and also because I don't really have a lot of time.
  • 26:02 - 26:06
    But the premisse of my tought and basically what I'm going on about
  • 26:06 - 26:09
    is that we are stuck with this crap for now.
  • 26:09 - 26:12
    And despite all this stuff, we make amazing things.
  • 26:13 - 26:17
    It's way harder than it should be though.
  • 26:17 - 26:19
    Because in the back of our heads, at least in the back of my head,
  • 26:20 - 26:27
    there is this little voice constantly whispering: "bullshit, bullshit"
  • 26:28 - 26:29
    Lot people have that voice.
  • 26:29 - 26:33
    Every time you're coding and you get this bizarre ass fuck JS there, cause the scope is global...
  • 26:37 - 26:39
    All of you are liars...
  • 26:41 - 26:44
    That is fucking annoying.
  • 26:44 - 26:49
    So the way to invent the future, you have to nurture this "bullshit voice".
  • 26:49 - 26:51
    Anyone knows the joke?
  • 26:51 - 26:54
    What politicians and football coaches have in common?
  • 26:55 - 27:00
    They have to be smart enough to play a game, but stupid enough to care.
  • 27:01 - 27:06
    So, it's the same kind of thing: you have to be smart enough to be able to build this crap
  • 27:06 - 27:11
    and sort of stupid enough, like you have to make yourself dumb, to kind of let go - well, ignore it
  • 27:11 - 27:13
    But you should always be remembering, in the back of your head:
  • 27:13 - 27:15
    this could be better, this could be better, this could be better,
  • 27:15 - 27:17
    how can I do this better, how can I do this better...
  • 27:17 - 27:21
    And not do this better by layering more stuff on to it.
  • 27:21 - 27:24
    But do this better like: why am I having to write all this code to make this work?
  • 27:24 - 27:27
    What if I just went down to the source and just fix it?
  • 27:28 - 27:34
    And then basically you want to imagine the world with different bullshit.
  • 27:36 - 27:46
    Thank you!
  • 27:46 - 27:48
    So, how much time do I have?
  • 27:49 - 27:51
    Yeah, yeah, I think I was pretty good on that.
  • 27:52 - 27:57
    So, I promissed I was gonna go with T-shirts, and I finally gotten sleep
  • 27:57 - 28:01
    despite the bluring sun in my eyes and I forget to bring them.
  • 28:01 - 28:08
    So, at lunch time, when we go to lunch break, I'll be passing out the t-shirts.
  • 28:09 - 28:16
    It's about 4 or 5. So that means you can't take off if you wanna get t-shirts.
  • 28:16 - 28:19
    So, this is a lie. I apolozige
  • 28:20 - 28:22
    Tons of questions. Ask me anything.
  • 28:22 - 28:27
    First of all, really quick question for all of you: how many people like the presentation?
  • 28:28 - 28:30
    Ok, good.
  • 28:30 - 28:33
    And then, how many people think: well, I am just full of shit?
  • 28:34 - 28:40
    I agree. This is the thing, when you are coming up with ideas.
  • 28:41 - 28:49
    How many people think the idea that OOP will die and that we will create... that part is bullshit?
  • 28:49 - 28:56
    How many people think HTML being crap, how many people think that is bullshit?
  • 28:56 - 28:59
    So, that's what I'm talking about: everyone knows!!
  • 29:00 - 29:05
    But you guys are walking around and doing your things, like: "oh, this is real great!"
  • 29:08 - 29:14
    Ok. So, let's do questions! Anything, you can ask me anything.
  • 29:15 - 29:20
    Nothing...
  • 29:22 - 29:30
    Q: Well, you are saying that you would like to restart the web, essentially.
  • 29:30 - 29:34
    But, how likely do you think it's that will happen?
  • 29:34 - 29:37
    Oh, I already said: it is very unlikely.
  • 29:37 - 29:43
    This is the thing - you always see this in technology movements, society, governments, everything.
  • 29:43 - 29:48
    The players never give up. They keep doing what they were doing.
  • 29:48 - 29:51
    And what happens is it's only when someone new come along,
  • 29:51 - 29:54
    basically barbarian coming destroy the city
  • 29:54 - 29:55
    and they build a better city!
  • 29:55 - 29:59
    So, what happens is, part of what I try to do is
  • 29:59 - 30:02
    I try to convice people that they don't have to put up with that crap
  • 30:02 - 30:04
    and they can start making something else.
  • 30:04 - 30:09
    Cause as a technologist, is your job to sort of like invision the future that could be better.
  • 30:09 - 30:17
    And yes, is gonna be a revolutaion. It's basically what the web did to desktop in a lot of ways.
  • 30:17 - 30:21
    Q: One more thing, because the problem, of course with the web in that sense,
  • 30:21 - 30:26
    is that is not some central authority that's the master of everything.
  • 30:26 - 30:31
    The content actually in a sense belongs to the users.
  • 30:31 - 30:37
    So, there is a lot of legacy content that have to be migrated to this new web,
  • 30:37 - 30:44
    so we are actually standing in our own way, we are preventing ourselves from reinventing the web.
  • 30:44 - 30:47
    That's really true, but I think the HTML and the web and all that stuff in content
  • 30:47 - 30:52
    is probably one of the most convertable content formats we've ever had.
  • 30:52 - 30:56
    I think that's the one thing. Like, right now I could convert. Have you ever seen Paddock?
  • 30:56 - 30:58
    That's an example.
  • 30:58 - 31:01
    I had someone helping me with the book and they wrote some weird ass thing.
  • 31:01 - 31:04
    I just used Paddock to convert it to what I needed it.
  • 31:04 - 31:10
    But, you are right. This is why there is just so much network effect, there is just so much...
  • 31:10 - 31:12
    But, it builds on it, it builds on it...
  • 31:12 - 31:15
    And people like keep making stuff, making stuff, making stuff, making stuff...
  • 31:15 - 31:17
    and eventually, one of you goes: "what the fuck?!"
  • 31:17 - 31:20
    And you make something better and just start wipping all that out.
  • 31:20 - 31:27
    And if you ever notice that the people who love the new thing, always think is the future,
  • 31:27 - 31:30
    and the people who like the old thing, always think that's defeat.
  • 31:30 - 31:34
    So, the ones to look out for are not when that happens.
  • 31:34 - 31:37
    The ones to look up for are where
  • 31:37 - 31:41
    the new technology comes out and you just don't remember the old technology.
  • 31:41 - 31:45
    Like how many people dialed in the bulletin board system with Dialog?
  • 31:45 - 31:52
    Do you really remember it? Like I remember I was dialing the bulletin board and the web came out.
  • 31:52 - 31:55
    Now I'm like: oh yeah, bulletin boards.
  • 31:55 - 31:58
    That's the technology!
  • 31:58 - 32:01
    Like cars! Have you ever talked to people who are old
  • 32:01 - 32:03
    and they remember not having cars and then the cars came out?
  • 32:03 - 32:06
    And they have to dredge up their memory what it was like before cars.
  • 32:07 - 32:09
    That's the technology to look for it.
  • 32:09 - 32:12
    The one that comes out and for whatever reason everyone is just like: "this is awesome"
  • 32:12 - 32:14
    and they just forget about the other one.
  • 32:14 - 32:18
    Not the ones that there is boards. Those are just minor changes.
  • 32:18 - 32:20
    Did I answer your question?
  • 32:20 - 32:22
    Q: Yes, thanks.
  • 32:22 - 32:24
    Any other questions?
  • 32:24 - 32:33
    How about questions about the way I am doing my books? Nothing? Ok. Cool.
  • 32:37 - 32:41
    OK. Well. Thank you.
Title:
Zed A. Shaw - The Web Will Die When OOP Dies
Description:

This video was filmed during The Web Rebels conference which took place on the 24-25th of May 2012 in Oslo, Norway. It is a non-profit conference for everyone who loves programming applications and services using web technology.

Track us:
webrebels.org | twitter.com/#!/web_rebels | lanyrd.com/2012/webrebels

more » « less
Video Language:
English
Team:
Captions Requested

English subtitles

Revisions Compare revisions