Future of HTML?

I feel like HTML now is very in efficient. The amount you have to type, making class, margins, etc are very annoying and repetitive just to do something very annoying. I cant test and of my ideas out quickly and see which one is best. Then once you get the design down, you have to worry about the 4-5 different screen sizes.

Why cant it just be like google slide where i can tap to insert a box and resize it how i want, add text in it, etc. There is options for shadows, locking text within that box, etc. You could easily tap to insert a image and maneuver it around. It takes forever with HTML and a decent amount of skill to create good looking websites.

You still would have access to the code (html, css) but if you want to do something simple it would save you some time. If your experimenting a image size you could edit with it height just by moving your mouse.

There are editors called WYSIWYG (what you see is what you get) editors which give you allow you to create and edit HTML graphically.

Does it give you the hard code? Resize?

edit: I think you have to pay for it.

I don’t understand your question.

I wanted to make stuff i there and use that code on codepen. Whatever i do create, will it resize for different screen sizes?

You can use libraries like Bootstrap to make resizing automatic.

Yeah, but that uses columns. In which a person has to set up and make sure they resize correctly.

I think you aren’t understanding how efficient html+css is. As for WYSIWYG editors, yes, they do produce code (according the manner of programming implemented by the author). I doubt any of them produce code that is as elegant as that hand-tooled by someone who knows what they are doing, if you mean computing efficiency. However, I believe that you really mean programming efficiency in units of (man-hours/result). When you say “like Google,” do you mean Google Docs? That effectively is a WYSIWYG editor that doesn’t produce human-readable code. Most WYSIWYG editors for the desktop have effectively died out as projects (no updates in years) since most of them are now operated as services on the web (which presents copyright problems if you are the developer). You can always write the code yourself, and charge a few bucks for it. All progress is the result of dissatisfied people. Good luck!

4 Likes

If you want to test design ideas and layouts, you don’t want a wysiwg code editor. Instead use a prototyping tool like sketch or Adobe XD. Use the right tool for the job.

2 Likes

Just to add to the answers from @vipatron and @owel, HTML/CSS/JS in combination is a general solution to build any kind of website/app. You can have a WYSIWYG editor that works quite well as long as it is for a specific design/layout/functionality combination, but as soon as you step outside of that, the GUI stops being efficient (hence why there are lots of SharePoint jobs, WordPress jobs, etc).

If you want a GUI that is a general solution - and thousands and thousands of people have attempted this, billions of man-hours have been wasted, those that were successful have withered and died (Dreamweaver, FrontPage, etc) - it already exists, it’s a person who knows HTML/CSS/JS, it can’t be beaten for efficiency [as things stand]. Thinking you want a general GUI solution is almost certainly a map/territory error.

1 Like

Hi Dan,

thanks for the expansion. I googled “Google WYSIWYG” and found Google Web Designer. This Review on Sitepoint from 2013 echoes so much of what you said. Even in that review from 4.5 years ago, it was assessed as an animated ad generator, optimized particularly for Chrome (never forget that Google is an advertising company). Even today, their Showcase is a showcase of ads (their own language). Programming efficiency improves by templating one’s own work. A good hacker never reinvents the wheel. Some patterns are ingrained into one’s very fingertips, but some can be saved into files. As for editing/personalization efficiency, getting really good at learning your IDE can be huge. I hate to use a mouse/trackpad in general, but multiple-selecting HTML tags to add the same class to all of them at once is a huge boon for reducing redundancy. Hope that helps, John (OP)!

Oh man I still have flashbacks about Dreamweaver…

I remember back in college and my first taste of website development, there was huge push to use DW. I thought it was so damn cool how simple things were using the WYSIWYG designer view. Little did I know the absolute garbage code it produced in the developer view. Once I learned how to code html/css I never went back. Trying to sort through the code DW spat out when you did all the dragging and dropping was a real eye opener.

1 Like

Do you ever think there will be a massive break through in html/ css? Better editors, something better then HTML coding language itself, etc. We aren’t using punch cards, we are writing in JavaScript.

I know the best way to be good at HTML/ css is to practice and learn. I just can never get ideas, something someone already hasn’t created. I have great ideas but cant create the quick or well enough. Ill just try to think ahead more often.

Well as for coming up with things folk haven’t done before, that’s kinda tough. I think the place to focus on is doing what’s been done but doing it better if possible. And things are changing. Just look at the introduction of CSS Grids (which I’m super excited to try working with) it opens up a whole new world of how we create layouts and how they function given the device they’re viewed on. And the fact that a lot of browsers are on board to make it a standard is saying something.

Who knows where we’ll be and what we’ll be using years from now. At least at this moment html/css is it. And they’re good solid languages. They’re tricky as hell sometimes mind you :laughing:, but they’re a major part of our toolkit for now.

If you’re looking to help speed up your prototyping I second the use of frameworks (Bootstrap, Foundation), you can even make your own by building some simple bare bones html/css boilerplates. That’s what I do. I’ve got snippets set up in Sublime Text 2 (my editor of choice) and all I have to do is hit a few keys and boom, fills in the code for me. Now, granted I have of course take it from the defaults I’ve set up based on the layout I’m looking to build, but it does save me a bit of time.

If it helps too, always remember the box model. The DOM, html, it’s all boxes. Well, save for a tags and spans. Break down your designs into boxes and the boxes in those boxes. You know you might benefit too from finding a free online wireframe generator. It has the glitz and usability of a WYSIWYG but just for throwing together page mockups. Mockflow is an example, and there’s a free version too.

At least then you can have a visual that you can change easily.

I don’t think you’re giving HTML and CSS as much credit as they deserve. Also, if you’re interested in less redundant and repetitive code, React is a good way to go.

HTML is just a way of tagging pieces of text with meaning. AFAIK almost every other layout system uses XML or HTML for the same job. You need something like HTML, otherwise there is no possible way to convert a blob of text into a visual layout - there has to be some way to take what the author/designer wants and wrap into something that the program can convert into a web page.

CSS is a bit different; in terms of layout, which is the thing that you want automated, there are other strategies a bit more advanced than what CSS does. Constraint layouts is the main one - for every element, you define horizontal and vertical constraints (this should be {max} this high, this should be {min} this wide, etc) which allow the element to respond based on its relationship to other elements. There are lots of implementations of the most common algorithm (the cassowary constraint solver): http://overconstrained.io/. It actually makes things more complex, but it does make it much easier to build GUIs to build out layouts - for example,here’s a tutorial on how it can be used in Android development, https://developer.android.com/training/constraint-layout/index.html.

This is the original research paper that describes how it works, if you can wrap your head around that kind of thing: https://constraints.cs.washington.edu/solvers/cassowary-tochi.pdf

But with that, you’re still limited in that if you want a GUI, it’s only going to let you pick from a set of components. That may/may not be an issue - it’s easier on, say, Android. You ideally want your app to look like and work like every other Android app, and Android has a design language that describes what all the components should look like, so you can pick the bits you want and slot them together like Lego.

AI can be used to automatically build layouts - there have been a few demonstrations of this in the past couple of years. This is the paper most of the work is based on: https://arxiv.org/pdf/1705.07962.pdf. Here is someone experimenting with it: https://medium.freecodecamp.org/how-you-can-train-an-ai-to-convert-your-design-mockups-into-html-and-css-cc7afd82fed4. AirBnB tried it as well: https://blog.floydhub.com/turning-design-mockups-into-code-with-deep-learning/. The way they work is they take an image of a design mockup, tag each area of the image, and then convert the tags to HTML/CSS. It’s the same method as automatically tagging images - you give the AI lots of examples, and it learns what each area should be called, and builds it out from there. It’s kinda impressive, but it’s very, very limited.

The problem is that this only works with a very constrained set of stuff to build from/to. The explorations of this are mainly using Bootstrap, so they convert the mockup image to HTML with Bootstrap classes; to go beyond that you need the set of data the AI learns from to include all possible HTML layouts and all possible CSS, and that would seem to need a couple of magnitudes more computing power - it’s possible, but hard and very possibly not worth the effort at the minute. If you can have a starting point where everything is designed already, it might work - so if you use a prototyping tool, like Sketch or Adobe Illustrator, it’s much easier convert to HTML, and these currently work quite well. You are still left with the issue of how to deal with responsiveness, but as long as you can give the AI an indication of what the app should look like at various screen sizes, it’s doable I guess.

You’ve got to bear in mind that HTML/CSS was written for displaying [academic] text documents, so there are some fundamental limitations/problems with it with respect to writing GUI applications - flexbox/grid modules help a bit, but it’s all still built on shaky foundations.

Edit: having everything in one place (HTML + all the behaviour) makes things loads easier in many ways - React is a really good example because you define all the behaviour then also write a description of what the HTML should look like in the same file. PHP is also really good in this regard.

1 Like

I feel that CSS and HTML are actually insanely efficient, If what you’re intending is simply a static page, you can create virtually anything with HTML/CSS. Some of the ideas of HTML tags can seem redundant sure, especially when some of it is purely based on semantics (like the difference between a div, or an article, etc) however these semantics exist to communicate code with other programmers, it also serves to better SEO.

As for the power of CSS- when I explain to non-coders that every single element of a page (underlines, hover effects, boldness, the height and width of navs, icons, the way a cursor changes, how pictures can be round media queries etc.) It literally blows their minds. Like, I love seeing their facial reactions when the kind of elegance and customization that goes into just building a static page begins to set in, and their jaw drops.

All that being said, I think it’s kind of sad that CSS and HTML are left out in the rain like they are lol

2 Likes

Thank you everyone for your replies. I’m not a very artistic person, so coming up with a simple design is hard, especially when you have to code it too. I also want to widen my range of knowledge to css and html tricks to better build more efficient web pages.

Ill be checking out CSS grid, and trying to think through my designs so they look good on every screen size (generally).

I would like to add that Emmet makes for less typing when you are writing HTML. It is a plugin available for Sublime Text, Atom, and Visual Studio Code.

1 Like

The key thing is to separate the design stage from the coding stage. Coding a site in HTML / CSS is pretty efficient once you know what you’re doing. But trying to design a site by playing around with HTML / CSS is painful. Design is a graphical skill (obviously) and needs graphical tools (pencil and paper still work fine). Once the design is done, doing the markup is just grunt work.

4 Likes