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