DEV Community

Cover image for I don't know how to create a website
edA‑qa mort‑ora‑y
edA‑qa mort‑ora‑y

Posted on • Originally published at mortoray.com

I don't know how to create a website

The web has been part of my career since the beginning. I've created several sites, including apps and games, hell, I've even created web development tools, yet I have to admit I no longer know how to create a website. If I sat down right now to create a new site, I'd be even more boggled by the tools and tech than before. I feel like there's some lesson in programming hiding here.

Complexity

Creating a website has become an involved and complex task. I can't just throw a few pages together an upload them. Okay, fine, I could do this rather easily, but I've already got a blog, I'd want dynamic elements, perhaps some kind of application functionality. This opens up a myriad of options, from frameworks to templates, to hosts.

I've done this before, so I could choose what I know. Alas, here is where things become tricky. The web is a trendy place, and what was cool yesterday isn't cool tomorrow. The tech I know may no longer be suited to do the things I want, or it may require a circus of hoop jumping to get it to work.

Perhaps the framework, or the language itself, has fallen out of favour. If it's just a small site managed by me, it's not a big deal, but if you're a company, well, dinosaur tech won't exactly attract an eager set of programmers.

Worse than merely not being popular, many frameworks languish or crumble. The authors may have just moved on, and if there's no money in it, I can't blame them. Instead, the code may have become overly complicated; coding is all about maintenance now, chasing an endless set of defects.

Security

Keeping a site secure seems like an impossible task. My twitter feed is filled with the horrors of websites gone wrong: hacks and data breaches abound!

Security, of course, isn't a simple tick on a website todo list. It's an ongoing battle of priorities and risk assessment. The level of defence grows with the site, but starting from zero isn't an option. There are many baseline things I have to do; I could probably come up with a list, but I'd have no idea whether it's complete enough.

It's always been disappointing to find out that a lot of this baseline stuff isn't handled by the framework I've chosen. Have I been so unlucky that everything I've tried before doesn't handle some essential aspects of security? Somehow I doubt it, and I think a lot of the web's security problem lies in the insecure frameworks.

Learning

I say I don't know how to create a website, but I'm sure I could do it again. I have no idea whether I'd pick the best approach, though I'm confident there is no best approach, just a bunch of perhaps acceptable ones.

By this point in my career, you may think I've developed a good method for learning and using new technology. I guess. I mean if throwing a bunch of boards and nails into a pile and hammering is considered a sound house building method, then sure. My approach is usually just random trial and error. Most documentation isn't of a quality that I can take a directed approach, as much as I'd like to. Jumping in, coding, and fixing is the only approach that seems to consistently "work".

My attempts most likely won't match the conventional approach. I admit that I'll fight with tools if they don't do things the way I want. Sometimes I wish tools wouldn't introduce "new ways" for no reason. Not compromising on my ideals would be nice, but come on, we're dealing with web tech -- I've built totems trying to appease some cantankerous web deity.

Veering ever so slightly from the common, but entirely non-documented, approach makes it hard to get help. Places like StackOverflow are increasingly useless: instead of answers you get "Why are you doing this at all?", "Yuck, you're doing it all wrong, but I won't tell you why", to "can you produce a complete working minimal example, deploy it somewhere, set up an issue system, accept code reviews, feed my dog, and then maybe I'll help".

Daunting

Website creation is a relatively large market, with plenty of jobs. I don't envy new people entering this area. Sure, I'm serious when I say I don't know what I'd do to create a new website, but I do know abstractly what I need to do. Sitting down with no knowledge of the task, or what kinds of tools are available, must not be fun. I don't know why this attracts people to programming -- imagine trying to be a chef where the only source of ingredients is scouring the city for restaurant scraps.

Sadly, I think far too many websites reflect this state. It's rare that I visit a site which doesn't have significant flaws. There's always something that doesn't work right, quite often it's a critical part of the site's functionality.

Frankly, we aren't doing a good job with web development.

Top comments (10)

Collapse
 
gypsydave5 profile image
David Wickes

Web devs have buried themselves in layers of poor abstractions in order to make things as difficult for themselves as possible.

I'd recommend writing HTML - yes, actual HTML. And JavaScript - just JS, no jQuery or whatever. And CSS. And serving it up without a 'framework' or whatever in your language of choice for your server.

If you actually need a server. We start with all the bells and whistles, we don't need them 80% of the time.

Collapse
 
vitalcog profile image
Chad Windham • Edited

I got into the web dev game very recently. So a lack of JQuery and using the trendiest front end framework/library is my norm. But it did not take me long to realize trying to keep up to date with "the hot new thing" is really retarded. I realized in less than a year the most important things are reliability and how well supported something is. To that extent, getting good enough with Angular 2+ and React (maybe Vue.js too if you are super ambitious) is absolutely more than enough. But more importantly than that. Practice and perfect the holy trifecta of basics. HTML, CSS and javascript. If you get blazingly good at that stuff, then all the tools and frameworks based on those things become easier and clearer. And in all seriousness, it is insanely fun (and not THAT hard) to build some pretty robust web app stuff with just the those three things. Now days web development is over saturated with really good options. It is becoming even more important to understand the absolute basics.

Collapse
 
nestedsoftware profile image
Nested Software • Edited

On the browser side, I do think it has become easier to write something that feels like a real interactive application as opposed to just a form that you can submit like in the early 2000s. The good news is that we really can develop fairly ambitious applications that run in the browser, and there are more frameworks available nowadays to make this doable without re-inventing the wheel.

However, you're right, it still feels clunky. I think part of the problem is that the tools/technologies remain rather immature, but I think a significant part of the problem is also just that the web was designed as a way to share documents. Even today I think that this philosophy remains embedded in the standards, and there is just a significant mismatch between between the models of "sharing documents" and "making interactive applications." In that regard, I don't know if I entirely like it, but I do wonder if the future is something like Blazor.

Collapse
 
fabiorosado profile image
Fabio Rosado

I think the issue with all the different frameworks and the next big thing is that a lot of companies asks for knowledge of the most new and shiny thing, which in turn makes devs wanting to learn that new shiny things and so they create projects using it in order to learn. I guess that’s the reason why you feel like that.

Collapse
 
techyogi profile image
Sarah Fernandez

Great read, really hit home with me. I've been a web developer for a few years and creating websites and web applications has regularly taken up 60 hours a week for me. I recently bought a really nice new laptop with the intention that I would start creating my own websites on the side to learn the ins and outs of the setting up stage and to practice new languages - only to find I had/have no idea where to start. Thankfully, as you said, I do have some understanding and I also don't envy those that are just starting out. I mean, I create websites on the daily.. but my environment is fully setup at work and I didn't start that repo from scratch. When I went back to school for programming years ago, I had gotten my environment all set up and created a new website within a couple hours based on instructions for an assignment. And now? I'm lost. So many languages and frameworks and tools and errors of things not syncing up with each other and.. maybe too many resources? If that's possible. Thanks for your post!

Collapse
 
nektro profile image
Meghan (she/her)

dinosaur tech won't exactly attract an eager set of programmers

and these programmers will soon realize that companies don't want trends, they want reliability and support

This opens up a myriad of options, from frameworks to templates, to hosts

in my personal experience, I really don't like frameworks.

My twitter feed is filled with the horrors of websites gone wrong: hacks and data breaches abound!

"The Internet gave us access to everything, but at the same time, it gave everything access to us."

The internet has a much larger attack surface than traditional apps since accessing them is so much easier, but it is possible 👍


If you ever want help making your next site, feel free to ping me :)

Collapse
 
databasesponge profile image
MetaDave 🇪🇺

Yes, I don't really want to attract the kind of programmers who always want to work on the latest thing. Unless you're going to rewrite every 3.5 years, they're going to leave and you'll be starting from scratch with new programmers.

Better, I think, to look for programmers who want to actually want to solve meaningful problems, not spend their time rushing to the latest JS library.

On the other hand, I like Rails. It does just about everything, and there's little need for debate on how to solve that one problem that everyone has solved before.

Collapse
 
alanhylands profile image
Alan Hylands

I think a lot of us who have put in a few (too many) years on the web and in tech in general feel exactly the same. It's easy to get dumbstruck by the never ending avalanche of cool new frameworks but your last sentence generally sums it up: we aren't doing a good job with web development.

And even worse: we haven't done a good job in cultivating the internet itself. Not from a tech perspective but in losing sight of what made those of us who were in early so hopeful about it's possibilities in the first place.

Jumping in, coding, and fixing is the only approach that seems to consistently "work".

I'm right here with you on this one!

Collapse
 
xtofl profile image
xtofl

You put the finger on a real problem. Seems like enough souls acknowledge this to form a "webdev league for trusted tech" :).

On my previous job, we swapped web tech out for plain old xaml, a.o. because of the never-good-enough offering of frameworks!

Collapse
 
lauriy profile image
Lauri Elias

Django