DEV Community

Ben Halpern
Ben Halpern Subscriber

Posted on

What’s overrated?

Top comments (127)

Collapse
 
yaser profile image
Yaser Al-Najjar

React

Micro-services

Apple products

Collapse
 
cheetah100 profile image
Peter Harrison

Microservices, with my last breath I spit at thee.

The basic architectural principle behind them is similar to Unix apps, where you have small applications each with a narrow scope. You use plumbing to pull them together into complete systems. The idea is to break things into independent subsystems that are weakly coupled. In theory.

In theory if you observe the idea of having a narrow and specific scope while decoupling from the domain they have application. Certainly the play a big part in distributed systems.

Where they come undone is when they are tied tightly to the domain, sharing the data model. If this happens they either end up sharing the persistence mechanism, aka the database, and thus having a central point of failure, or having integration and query nightmares when you try to pull data together from multiple Microservices into a single coherent view.

As with many other areas they are adopted and implemented as some kind of silver bullet, but without a skeptical analytical approach to their implementation can turn into the classic Big Ball of Mud, where Microservice is piled on top of Microservice with little or no concern about clear architectural separation of concerns.

In my experience they become tightly coupled to narrow use cases and lead to an unmanageable explosion of code and nightmare of latency. Perhaps some companies have the engineering discipline to implement them right, but too often this isn't the case.

Collapse
 
siy profile image
Sergiy Yevtushenko

I may add that use of microservices makes deployment and maintenance much more complicated than it needs to be. And makes local deployment for testing/debugging at least very inconvenient (usually just impractical, often even impossible).
Possibly I know better solution than microservices, I've described it in my blog here, at dev.to recently.

Thread Thread
 
cheetah100 profile image
Peter Harrison

I read your article. Looks good, if only because I have adopted something very similar. With Gravity there is dynamic runtime configuration which can create new data structures and related API. Business rules, views, filters and integrations are all defined at runtime through the API. It is a clustered system so that all the services run on each node, so regardless of the API called it is capable of servicing it without doing another hop. It uses JMS queues to manage workload across the cluster. Because each node of the cluster is identical you will never get resource bound on a specific service because any node can do anything. There are three clusters involved, the API, JMS and Persistence.

Collapse
 
gayanhewa profile image
Gayan Hewa

So true though. Most attempts for Microservices with no real value addition ends up with distributed monolith when the attempt goes ill planned. Especially small teams, attempting the route for the hype.

Collapse
 
droidmakk profile image
Afroze Kabeer Khan. M

The real value of micro services is at scale.

Thread Thread
 
stefandorresteijn profile image
Stefan Dorresteijn

And the real danger of micro services is deploying them before it's necessary

Thread Thread
 
gayanhewa profile image
Gayan Hewa

Yes true.

Collapse
 
kp profile image
KP

Curious why React? Are you saying Vue or Angular are better? FWIW I don't use React myself.

Collapse
 
nektro profile image
Meghan (she/her)

What's underrated is using none of them.

Thread Thread
 
andy_preston profile image
Andy Preston

This.

It's easy for a beginner to assume that every company out there is using a front-end framework.

I'm still seeing lots of both greenfield and brownfield projects using vanilla JavaScript with a .NET, Java or PHP backend.

Collapse
 
laurentlousky profile image
Laurent Lousky • Edited

Building everything as a SPA

Collapse
 
cjbrooks12 profile image
Casey Brooks

100% this!

Collapse
 
jsn1nj4 profile image
Elliot Derhay • Edited

Yeah, I found myself on that bandwagon for a short time when Meteor came out. Very fun to work with, and the SPA idea is very attractive. But it adds a lot of complexity and some other issues that normally don't happen on server-rendered websites, and there are little pieces of different projects that can be made interactive without going full-blown SPA.

Collapse
 
gnsp profile image
Ganesh Prasad

That gotta be the iPhone.

Collapse
 
moopet profile image
Ben Sinclair

MacOS, WSL, npm, react, BEM, OOCSS, Wordpress, Vanity points, Sublime Text, OhMyZsh, NerdTree, Flat Whites, Imposter Syndrome, seafood, any product variant that starts with the word "Gaming", "modern" PHP frameworks, one-liners, aliases, influencers, "devrel", 10x developers, BMWs, italicised code comments, dark mode, the United States, conference swag, people who humblebrag, millisecond optimisations.

draws breath

Collapse
 
jsn1nj4 profile image
Elliot Derhay • Edited

WSL: yeah, I'd rather just use either Windows or Linux (and I do: Windows on company-owned laptop, Linux on my personal laptop).


OOCSS? I don't even wanna know...


Is WordPress overrated among devs, or do you mean vs. other blogging platforms or website builders? It's fairly easy to set up quickly, which seems to be why it has so much all-around support. But its DB storage is definitely bloated, and most themes I've used are loaded with gimmicks rather than being focused on performance.

So no, I don't care for it. Was just wondering what you meant.


Dark mode is a personal preference for me, but yeah, each person and work environment is different. "To each his own."

Collapse
 
moopet profile image
Ben Sinclair

Wordpress is ubiquitous but it's not very well made. It takes a lot of ideas from old-style PHP and just runs with them. People like Gutenberg but it just encourages storing chunks of non-semantic, non-transformable HTML in the database. People bolt things on and call it a CMS, but it's really not designed to be one.

Collapse
 
georgecoldham profile image
George

I was with you till you said seafood... 🤨

Collapse
 
moopet profile image
Ben Sinclair

:P

Collapse
 
ianandhum profile image
Anandhu Manoj

Very true. "draws breath" ha.. ha.. :)

Collapse
 
jckuhl profile image
Jonathan Kuhl

Vim.

How do you know if a developer uses Vim? Don't worry, he'll tell you.

Collapse
 
gnsp profile image
Ganesh Prasad

IMHO, vim is worth the hype. And long time vimmers are fairly rare

Collapse
 
scottishross profile image
Ross Henderson

Found the dev that uses Vim.

Collapse
 
zealsham profile image
zealsham

It’s not

Thread Thread
 
cbrintnall profile image
Christian Brintnall

Thats just like, your opinion.

Collapse
 
jdickey profile image
Jeff Dickey

Over 35 years here. I use IDEs for the heavy lifting (RubyMine nowadays), but simple/quick edits are more easily done with vi(m). Muscle memory is a thing not to be discounted.

Collapse
 
kauresss profile image
Kauress

react. I just need a button, not a button factory.

Collapse
 
georgecoldham profile image
George

Yeah... but what if?

Collapse
 
kauresss profile image
Kauress

apply for VC funding...

Collapse
 
bertilmuth profile image
Bertil Muth

Utilization, i.e. how busy people are. And working early/late as a status symbol.

Collapse
 
khophi profile image
KhoPhi

Elon joined the chat
*reads your message
Elon left the chat

Collapse
 
alohci profile image
Nicholas Stimpson

Scrum

Collapse
 
ghost profile image
Ghost

Are you saying that is overrated? just because it appropiated common sense, made it rigid, replaced common words with "cool" terms and made a ecosystem of courses, certifications, levels, etc. Now, you could have the experience and good common sense, but are you a crapbelt 90dan?, do you know all the fabricated "technical" jargon? have you paid the courses and certificates?.

Don't do useless things, don't waste time. SCRUM invented that!

Collapse
 
mjsarfatti profile image
Manuele J Sarfatti

❤️

Collapse
 
realabbas profile image
Ali Abbas

Javascript 🙄

Collapse
 
ryansmith profile image
Ryan Smith • Edited

I would say React in general. It has become synonymous with front-end. It has a steep learning curve and its own terminology/patterns that are foreign to those that do not use it but that are proficient in web development. Other frameworks/libraries seem to do all of the same things, have similar performance, and are more beginner-friendly. I'm not sure why I would reach for React other than for an existing project or its popularity.

I would also say some new features added to React are also overrated. They solve problems that only exist because React created those problems. I'm not against the library being improved and simplifying the use of it, but the hype over some things seems unwarranted. There seemed to be a lot of friction caused by classes (and their verbosity) vs. functional components, prop-drilling, render props, and higher-order components. The recent updates add to the developer experience but add another React-specific concept to learn. The most recent example I can think of is "hooks" or as I like to call them "function calls." I'm definitely oversimplifying what they do and it has made React code much simpler, but c'mon, you are just calling a function to do something. What was all the hype about?

Collapse
 
seanmclem profile image
Seanmclem

It took me 3 weeks to become as proficient in React as a year in Angular. Steep learning curve is not really accurate. Unless you basically never tried it for more than a few minutes. The only reason it seems overrated is because it's so widely used, because it's so good. Does it seem simple? Yeah, that's a good thing. When something so simple can do so much..

Collapse
 
ryansmith profile image
Ryan Smith • Edited

I was thinking more along the lines of Vue, Svelte, and libraries of that nature being more beginner-friendly alternatives that are similar to React.

I think the learning curve for React not only comes from the concepts I mentioned above but the ecosystem as well. The library is barebones, API is minimal, and there are no accepted conventions. That could be positive or negative for some people. For me, it is negative. Getting started and learning to write components is not too bad, I would agree with you there. But the trouble comes when someone may just want to build an app to solve a problem. They have to worry about structuring an app, adding routing, styling components, forms, etc. while keeping everything manageable. It adds more learning, more configuration, and more troubleshooting on top of learning the library.

Thread Thread
 
seanmclem profile image
Seanmclem • Edited

It's just Javascript. Svelte is a bunch of its own specific conventions. React is not hard to learn. Unless you only barely tried once. It's just so easy

Collapse
 
zealsham profile image
zealsham

Exactly , Angula is way way harder than react

Collapse
 
skydevht profile image
Holy-Elie Scaïde

It never was strange to me and I've embarked on the SPA bandwaggon with Meteor. But I do agree that it created new whole concepts different from the traditional web's. The simplicity of it (just a view library) is why I go with it instead of Angular. I've got a set of libraries I usually use with React like axios, rematch, styled-components. I think about React as a whole new platform to build interface upon, not something to manipulate the dom like jQuery does

Collapse
 
jonrandy profile image
Jon Randy 🎖️

Try Riot JS - it's awesome

Collapse
 
ryansmith profile image
Ryan Smith • Edited

Riot looks awesome, I like their philosophy of keeping things simple and close to web standards.

I have been working with Stencil recently which has a similar mission. Stencil uses TypeScript, JSX, and a minimal API and compiles to web components. I'm liking it so far but I'll keep Riot in mind.

Some comments may only be visible to logged-in visitors. Sign in to view all comments.