3 years ago

Is it me, or is web development a pain in the butt?

Posted 3 years ago by RoboRobok

Hi guys, I believe this topic can be a little controversial for some.

I'm a web developer for more than 10 years now. I do both frontend and backend. My relationship with this profession is a love-hate relationship. Whenever I'm about to work on medium to large project, I'm leaning towards the latter one.

In my opinion, we still lack a good set of tools for web development. Everything can be done, just like any kind of desktop application could be done in Assembler years ago. The problem is, web development of complex application is no fun. At all.

When I work on relatively small projects, I love Laravel. But as the scale (and number of beings) goes up, Laravel just makes it a little bit less terrible. Here's the list of the troublemakers:

  1. MVC

The separation on Models-Views-Controllers is not at all modular in web development world. Controllers are the worst. As classes, they are too limited in flexibility and when we consider binding them to routes, it becomes a nightmare. MVC makes simple things hard.

  1. PHP

I love PHP, especially PHP 7. But this language is not dynamic enough for many needs.

  1. OOP

Likewise, too limited and painful to work with. Something as common and simple as dependency injection, must be done through trickery. Same for testing. Repository pattern to make our model testable in some reasonable level. WTF? So much work to do such a simple thing.

  1. HTTP

The ancient protocol of request-response and URLs. We need to name every single "page". Before HTTP/2 becomes a main standard, we even need to be sad about the number of assets on our product.

  1. CSS

Too limited. Preprocessors help, but it's still struggling with tons of names. I would rather want to describe entire layout by CSS and not using separate elements for each "wrapper" etc. :before and :after help a little.

  1. Ajax

Ajax is a fancy name for the most basic operation that, if we want to make it good, we need to treat as something "extra" (to make our JS unobtrusive).

  1. Slow connections

We need to count every kb and every single request, because Internet connections are still unreliable.

  1. SQL

Not at all suitable for programmed products, in my humble opinion. Not too many good alternatives though, because discs are still too slow and SQL makes it "fast" (relatively) to search for data. But we should avoid selecting all columns etc. Yeah, that's so "great" for our flexibility. Especially if we use columns in our model's methods. If we didn't select them before, then oops!

This is what I have for now, but there are more painful aspects of web development. I didn't include "difficult" aspects, like the need of protection or very strict validation, because those will always be needed in shared data world. What I mentioned, are technology limitations that we are having have today. I think web development should not be done in general purpose languages.

I am very curious of your opinions! :)

Please sign in or create an account to participate in this conversation.