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