 Happy 4th of July. Well, it's 4th of July today, but you guys are going to watch this video probably four or five weeks from now so Yeah, anyway yesterday. I posted a video talking about how I think HTML5 is a great thing for the future of computing and How it alleviates the need for a binary plugins like flash Silverlight and Java And I think most of you agreed with me, but I did get at least two comments two different people commenting on how We still need flash and these other plugins and I just want to talk about that for a little bit Because it was just really weird that there were people Defending flash like it's a great thing First off. I want to point out some of the things these people said Which were I'm not sure if maybe I'm misunderstanding them or they were misunderstanding me Because both these people mentioned flash, but then they talked about the need. There will always be a need for plugins and In the video when I'm talking about plugins and I think I've made this clear in the video I'm talking about binary plugins as I said flash Silverlight and Java now that I think Java is bad. I think Java is great I just don't think it belongs in a browser and There will be people who disagree with me and we can have those disagreements. That's fine But but Silverlight and flash. I mean, I think they're just horrible In any aspect so But when they say we will always need plugins, I agree. I love Chrome extensions and Firefox plugins And I don't know much about making Firefox plugins as far as Chrome extensions They're pretty much just JavaScript and that's one of the great things about using HTML and HTML 5 is that it's easily manipulated Which one of the things those people said was that that they want to see markup link which is go away, which I can completely disagree with because really anything that's Text is easily manipulated so the end user can turn it into whatever they want and that is a great thing for freedom But going back to the binary thing like I said flash Silverlight and Java are the three that come to mind I'm sure there's probably others. I know back in the day We used to have plugins for videos, but flash kind of took over that and now we have HTML 5 well, the other thing is one of the people said was HTML 5 is Gonna take another five years before it gets is able to do features like facial recognition and voice recognition and And and that we need I guess flash for that. Let me let me go on to that and saying that first off one of the things that person said before they said that was HTML 5 can't do everything and I would 100% agree with that and I'll tell you why Because HTML 5 is not a programming language. It's a tagging language. It's a markup language for the GUI interface It's just a GUI interface. It's like Saying that GTK or QT can't do something. That's right because they're just Interfaces you need a programming language behind them. So yeah HTML 5 can't do everything. It's not supposed to But it's just a front end for for whatever language you're going to pipe through it and as far as needing Flash to do or some sort of plug-in to do facial recognition or voice recognition And that it's gonna take HTML 5 10 years to get there Well, once again HTML 5 is not I don't see doing that since it's not a programming language But we already have those things without plugins if you've ever used Google plus or or Facebook they do facial recognition and there's no flash involved in that as far as I can tell One thing HTML 5 does do for us is it does allow us to access cameras and audio devices Through HTML now with that it's accessing it as if it was a file So the one thing and I've been trying since I've read these people's comments to think of that I Can't I can a scenario where there's something that can't be done in a web browser now Utilizing HTML 5 and JavaScript whatever back-end language you use And the only thing I can think of off the top of my head will not stop my head I've been thinking about it for about 12 hours now since last night is Video and audio streaming because as I said although HTML 5 now allows you to access your webcam and microphones It retrieves it as sort of a file and then we'll upload to the server. I don't think it can do any type of streaming Which is something I you know Video chats have become more popular And that would be nice to see something in the browser that doesn't require An external plug-in Now I know Firefox. I saw a video that a day Firefox is working on having its own built-in Video chat system, which is actually built into the browser Which is my whole point is that I think as much that can be done should be done by the browser That your browser is your gateway to the internet. It's there to protect you every time you throw another binary plug-in there plug-in in there. It's going to Increase your chances of security issues. I'm not saying that there are going to be security issues I'm just saying it's increasing your chance because it's like having multiple Windows there's more windows to break into I'm talking about windows on like a house or a building not the operating system So so I think I've touched on most of what those people have said. So yeah, I guess if you want to do video streaming through a Web browser, you're going to need a plug-in. I know flash can access your webcam Java can I don't know much about silver light only played with a few things in it At or you would need another binary plug-in like Google talks hangout Plug-in, and I would love to see all these things be replaced with in browser Options HTML5 JavaScript that sort of stuff and Besides that little scenario of streaming video and audio That's the only thing I can think of that you that you still need plugins binary plugins for but of course extensions and firefox plugins which are still being run by The browser I think are great It's when you have those external tools that are kind of bypassing the browser is where I have an issue and the fact and Also, that's that's from a person-to-person Thing those plugins are for a website shouldn't require those plugins So that's my view on that now There was one thing the person said they were talking about backwards compatibility and how you can't use HTML5 because it's not backwards Compatible and I just I'm going to stop right there and say that's a good thing to bring up Because I used to have a list of five things that I thought were the top five things that were Important when you're designing software as a developer and really I kept cutting away at that list and basically it all boils down to compatibility And when you write a program you should make it as compatible as possible both with other software it's going to interact with operating systems or external tools or Also hardware you should make it run as efficient as possible and as many different Hardware platforms and that's if you've watched my tutorials series on cross-platform packaging You'll see it writing software for To work on all major operating systems is not hard It's packaging it for distribution is the difficult part, but HTML5 for the most part is backwards compatible in that a lot of its features Give a little more Pizzazz to what you do, but if you're using an older browser it just defaults to the old input types Obviously things like the HTML canvas isn't going to be backwards compatible And you would need an update browser, but you can't really control What software other people are using so someone's choosing to use an old browser What you need to do is recommend that they upgrade both for usability and security and HTML5 does have that built-in into that If you have maybe a video player or a canvas in your HTML5 It will detect if your browser is compatible or not and or recommend will you as a designer or developer Can have it recommend them upgrade But the same be true if you're using flash it's like you need to keep up to date with flash if you want to work with the newer features and and you always have to have flash installed or silver light installed or Java installed and enabled or ActiveX is another one horrible thing but Let's look at an example of a basic HTML5 application And I'm going to use the one in the series that I've just finished working on on Making a jQuery mobile interface for submitting information Form for my use at work out if I remember I'll put an annotation on the screen to that playlist on making that application But let's go ahead and have a look at it Well now it's time to put what I said to the test I went out to my garage where I have a stack of really old computers and pulled Out the slowest one possible this one has 128 megabytes of RAM And we're going to load it up and see if that application works on this old piece of hardware Okay, let's give it a shot. We're going to type in the inventory number Gonna choose who we are from the drop-down Gonna choose where we are from the station Gonna choose what engine we're on from the drop-down here We can type in our comments and is the bottle full or not. We'll click yes, and there we go Okay, so we can see it working on an old piece of hardware But I know what some of you saying that's still a modern browser Which is kind of my point even on old hardware a modern browser Supporting HTML5 will work so there's no excuse not to use it But let's go a step further and look at another scenario Let's say your hardware is so old that you don't even have a gooey interface. Will this work in that situation? Well, yeah Okay, so we've looked at HTML5 on a Older machine still wearing a modern browser. It was mittery. It was the browser I was running because Firefox and Chrome probably be a little bulky for that machine with 128 megabytes of RAM but Here we're going to look at a text-based browser using links and It is definitely not HTML5 compatible also doesn't support JavaScript. So let's see how that application works So I'm here. I'm logged into my website Bottle.php I'll hit enter there here. It is the format is a lot because I made it I made that This application Designed it for mobile devices But I also want to make sure it was still compatible with desktop devices So the the stuff doesn't have new lines So everything's kind of on one line here, but if I was to resize the screen down everything would adjust But still functionality wise I can type in an inventory number I can type I can hit this choose who I am from the drop-down list Choose who I am from the station or where I am in the station list and what truck I'm working on I can also type in some comments here and then we have our yes or no Which also submits and this is where we do have one issue so far the interface works Which is the HTML5 because everything defaults back even though that this was a a number type input Older browsers will just see it as a regular text input. These are drop-downs. They still work. This is a text box So HTML5 when it comes to basic forms and basic functionality that would would have been available in HTML5 or before HTML5 Does work backwards compatible from in this particular application comes when I choose to submit it with the yes or no button I can click those and nothing happens and the reason for that is not HTML5 but because this browser doesn't support javascript and I am using javascript to submit the information but luckily since We're using HTML here It's very easy to modify stuff and with a few lines of code What I could do is I can either turn these this into a basic submit form which would fix the problem Or if I like still using JQuery to use Ajax to post the information in the background what I could do is Have the basic HTML HTML5 or not Display a submit button, which is actually a form submit But if javascript is available have the javascript replace it with these buttons. So This particular instance I did not design it to be this far back compatible because I do did have modern browsers in mind Mainly mobile devices, but you can see that as far as the HTML the interface is still Very much compatible. So HTML5 once again besides things like canvas and the video player Which as a developer as a designer and developer of this site or program You need to keep those things in mind And it's very easy to put an if-then statement or something like that which kind of HTML5 kind of takes care of for you Where if you decide to use HTML to play a video You could have the option to either display a message saying you need to update your browser Or if you really don't want to put that on the end user you would Have it I guess default to a flash player at that point, but once again, that's not a a Fault of HTML5 that's a user not upgrading their software and the same would be true If they didn't upgrade their flash and you're using a feature that's newer and flash or whatever plug-in that they're using So let's switch back to camera here. That's better So basically my point at this point my point now It's something that I actually thought about doing a whole nother video talking about which is Properly designing your software and really What you need to worry about more than the look and feel is functionality now looking feels obviously important, but functionality should come first and You and my opinion and I think a lot of developers would agree with me Back end comes first you create the functionality application and then you create the GUI interface and HTML5 once again It's just the GUI interface. So really when it comes to a website Depending on what you're doing you're gonna do stuff on the client side or server side and a lot of functionality Is going to be on the server side Once again depending on what you're doing what your you know end user is But you have a lot more control and you know more what's going on Obviously as for security stuff should always be done on the server side Client side should be more of the user interface even the Java aspect of it should be user interface Sorry, JavaScript aspect of it should be user interface So use HTML5 and CSS to make the page look nice And you can use the JavaScript to make your drop-downs or search bars, but even if They didn't have JavaScript those form elements should still be able to fill it out and submit to a server side Once again as a developer it's up to you to make things compatible but HTML5 as a standard is For the most part features that were there before still function now it gives a little more pizzazz as I would say Giving you inputs like date fields number input fields and stuff like that but Another thing I want to mention is What was it that I wanted to mention? HTML5 is still in development if that's even the right word since it's not really I Guess the browsers are developing to meet the standard does HTML5 is just a standard saying how things should be done not everyone follows it both on designer side and and browser side But it's right now 2013 and I believe HTML5 their goal is to have the standard done and in place by 2015 So it's not even done yet So yeah, maybe if you're making a website for the masses There would be certain things obviously that you want to avoid, but luckily there's places where you can go W3 schools is a great place where they'll talk about the features and they'll give you little icons on what? Browsers support and don't support this feature and of course as always when you're creating software, which is basically what you're doing here is You should test it and as Mary scenarios as possible. I write a program I'm gonna test it on different types of hardware. I'm gonna type it on different operating systems And see if it runs differently on them And if so if there's anything I can do about it, you should test your website or web application The same way different operating systems different browsers. You may not have that option always You may not have a bunch of different types of hardware. You may not have an iPhone to test this on and Or you may not have a Mac OS or Windows OS Luckily things like Chrome Firefox and Linux anyone can boot up a live CD and test it so there's no excuse not to test that there and unfortunately different browsers do sometimes render things differently and even I've had people tell me and display that and I would expect Expect different browsers to render things slightly different But supposedly Firefox on Windows compared to Firefox on Linux sometimes renders things slightly different Most of the time those things are slight are just cosmetic and not function-wise And some people are pickier about cosmetics than than I am for me. Yeah, I really want my applications to look nice But functionality is number one You know and when I say functionality, I mean that it functions on as many devices and as many operating systems possible once again coming back to compatibility, so That's it as always please visit films by Chris calm That's Chris the K there should be a link in the description. I thank you for watching And I hope you have a great day, and I hope that you are safe today on the 4th of July Even though you're watching this weeks later So hopefully everyone still has all 10 fingers and 11 toes. Have a great day