DEV Community

briwa
briwa

Posted on • Edited on

What is that one tool/stack/framework that you have no interest with despite the popularity?

In the tech world, there's always a plethora of popular tools that have been around for some time, but some people including me just don't have the time/capacity/resource/insert-reason-here to try it out.

For me, it's Docker. Most repos now have a way to setup with Docker and infra services such as AWS or Digital Ocean also provide integrations with Docker. The hype is still going strong as of now and people are starting to use Docker in development as well. However, the effort of running it in development just doesn't justify the gain. Maybe it's great on production, but I have been putting up static sites as of late. I've got no time to invest on this I guess, maybe someday when I need them.

How about you all? I'm curious if people here at dev.to is more like the type of people who would always be trying out (or master) the popular ones, or maybe more like me, stick to the usual until it's necessary to try out popular ones.

Top comments (93)

Collapse
 
cjbrooks12 profile image
Casey Brooks

React. I generally just don't like JavaScript, but if I'm going to use it I'd prefer either Vue or just vanilla. I can't get past the overwhelming hurdles of everything needed (webpack, redux, es6, etc.) to become even slightly productive with it. And the community trying to turn literally everything into React just seems like an abuse of React from outside looking in.

Collapse
 
briwa profile image
briwa • Edited

If you just want to try it out, create-react-app can save you from all the setup trouble. It's really great for a quick prototype or a small app, but obviously a much in-depth customizable setup may be good instead for production (or you can just eject them). Or maybe if there's someone here actually running a large-scale production app with create-react-app before, I would love to learn from your experience.

Collapse
 
dmerand profile image
Donald Merand

Came here to say React, realized that everybody else already came here to say React.

For example, 1,500+ dependencies for "Hello World" is not right.

Collapse
 
hxgf profile image
j youngblood

same lol. the thing i like the most about web dev is simplicity...and while react has its merits, it is the opposite of that.

Collapse
 
geolamp profile image
George Lampadaridis

Lol I also came in just to say React. I expected a different outcome of the comments/poll.

Well I wrote and then deleted at least 100 words why I dont prefer it over Angular that I m using but I dont think there is any point in making another React vs Angular vs Vue post.

I ll just say that I prefer Angular because after the first 2-3 months of getting aquainted with most of the framework's features I found out that big projects are way more consistent and mentainable this way. I understand it has a steep learning curve but I like the everything in one package that it provides.

Collapse
 
briwa profile image
briwa

I think what was missing from that fact is that the 1500+ dependencies are there to allow people to build on top of just 'Hello World'... like something way more scalable and complex than that. But I see your point. I think this is because the language and the environment itself don't allow us to do complex scalable app without loads of dependencies (Web Components, maybe, someday...)

Collapse
 
bgrgndzz profile image
Buğra Gündüz

You can use React just by importing it into your HTML file in a script tag, you don't have to install 1500+ dependencies. Most of the dependencies in create-react-app are there to make the development process easier and are not bundled into the production app anyways.

Collapse
 
steveblue profile image
Stephen Belovarich

I really think we’ve passed peak React sometimes.

Collapse
 
steveblue profile image
Stephen Belovarich • Edited

React

  1. Duplicates DOM.
  2. Doesn’t play nice with browser spec.
  3. Every app is architected differently.
  4. No one seems to know how to implement Redux performantly.
  5. How many routers do you need? Choice is seemingly good, but too many plugins are overwhelming.
  6. Can’t bundle and optimize it with Closure Compiler, the best bundler out there for optimizing JavaScript currently.
  7. Recently, the creator of React bragged on Twitter that Apple copied React for SwiftUI See this Tweet. So far from the truth.
Collapse
 
stereobooster profile image
stereobooster • Edited

2) can you substantiate claim?
7) Ad hominem

Collapse
 
steveblue profile image
Stephen Belovarich • Edited

2)

There’s probably more. In short problems arise because React implements different event and attribute bindings leading to unpredictability with browser API.

7) At times it seems like prominent members of the React community act like the web begins and ends with React. I don’t agree. I also don’t see this kind of attitude in other JavaScript framework communities. It matters how the people in a community act. Coding is as much about the people as it is the code.

If you use React and love it then keep using React. This isn’t about you. This is about why I avoid a popular framework. I’ve used React. When it first appeared on the scene I was really interested in why they would implement a front end framework this way. I even built a similar framework from scratch that implemented a virtual DOM. Then I realized well the DOM is already a tree. Why do I need to duplicate it? I rationalized that the whole premise for duplicating DOM was flawed. If DOM was not performant then shouldn’t it be the browsers that implement better performance? We don’t need JS frameworks to take up that mantle. A few years later that panned out and browsers have optimized several things. On top of that there are now several ways to declare a component and custom elements are the path forward in my opinion. That isn't to say a library like React still won't be useful. Custom elements still may require some pattern for managing state in your project. But that paradigm is much more for Redux to handle than React IMHO, or some other state pattern.

Thread Thread
 
briwa profile image
briwa • Edited

If DOM was not performant then shouldn’t it be the browsers that implement better performance

I think it comes down from the fact that there isn't yet an easy way to create reusable components natively in the browsers, which is why React and the likes were there in the first place. If we're going to wait until browsers catch up, I remember seeing Web Components specs a few years ago and it doesn't seem to be completing any time soon. I think people love implementing their own solutions when there isn't any available, at least I do.

But I hear you. I wish more efforts were there to improve the browsers or the specs instead, maybe by the community, but I think it's a different problem.

I'm curious tho, if you're not using React, what's your frontend framework of choice? Nevermind, saw your comment below mentioning Angular.

Thread Thread
 
steveblue profile image
Stephen Belovarich • Edited

Have you looked at Stencil? It’s a library that compiles down to Custom Elements v1 and promises interop between all the major frameworks. With a 133 byte “Hello World” it relies heavily on browser spec. The browsers already caught up years ago. You can build reusable components solely with browser spec today.

Thread Thread
 
briwa profile image
briwa • Edited

Whoa, TIL! Thanks for the info. All I remember that it was stuck until the spec level, never got around being the official fully usable feature on the browsers. I guess I should look into it.

Collapse
 
yucer profile image
yucer • Edited

In the tech world, there's always a plethora of popular tools that have been around for some time, but some people including me just don't have the time/capacity/resource/insert-reason-here to try it out.

For me, it's Docker.

I strongly advice you to use it, or some similar tool that solve the same dependency hell problem.

It is not a matter of opinion, the problem is there and we can not ignore it.

The hype is still going strong as of now ...

It is not a hype. It is a tool that broke a paradigm, in the right moment that it was needed.

... people are starting to use Docker in development as well.

Which is good, because:

  • You can exactly reproduce the context of a prod error in your local machine without just a few commands. Those old programmers know that the most frequent phrase in the past was "But it works for me locally..." when they were argued to fix a prod issue.

  • It allows you to quickly setup the development frameworks and tools as needed for a project. Think what you would do if you have to work as freelancer for many projects as one, and they use distinct versions of the same frameworks and tools. Install and uninstall every time you need to work some hours in a project?

  • It allows you to have your machine clean, which speeds up the machine. Some systems like windows starts to be slow when there are many programs installed because of the amount of files in the system or app folders / partitions.

  • It allows you to restore your dev environment quickly after loosing the system. It might be that your hard disk died, or the system is slow or you want to change it. After reinstall you install docker, your code editor, check out some repos from git and everything is running. No need to spend hours configuring your frameworks or tools.

But if you don't want to worry is ok, at the end somebody else in your company is in charge of the IT, and it should provide a solution to you. By the way, many dev environments are moving to the cloud also, like: VSO, coder, etc..

Read this.

I think that is a matter of time that "all" the customers start to ask for equivalent technologies that fit the same paradigm shift.

At the end, if we don't learn how to build your dev environments aligned to the deployments ... we will need to pay for it... It is a decision to take for everyone.

Collapse
 
briwa profile image
briwa • Edited

Whoa, TIL! Thanks for the info about Docker. Will definitely try it out someday...

It is not a hype.

Poor choice of word, I guess. What I meant was the popularity. Hype kind of takes the meaning not in a good way.

At the end, if we don't learn how to build your dev environments aligned to the deployments

Sure, knowing only how to build the development is bad on its own. But never actually tried building one for production has the same degree of sin, IMO. My idea is that one should know the benefit of using Docker in production first, then running it in development. As mentioned in OP, I haven't had any necessity to do it yet. Once I actually tried running one on prod, I would definitely see the benefit of running it in development.

Collapse
 
yucer profile image
yucer

As mentioned in OP, I haven't had any necessity to do it yet

I guess those are the best paradigm shifts for tools. That tool that we think we don't need, and at the end we can not live without them.

I had such a similar feeling during the rise of version control software, unit tests, etc.. I did programs at least six years without all of that and 24 years later I don't imagine living without them.

Thread Thread
 
briwa profile image
briwa • Edited

tool that we think we don't need, and at the end we can not live without them.

In hindsight, there are tools that we think we needed, but as it turns out it has become irrelevant or replaced by better ones. On the top off my head: Coffeescript (ES6 and Typescript made it irrelevant), jQuery (browser maturity/frontend framework made it irrelevant), Browserify (Webpack/other better bundler tools made it irrelevant). Obviously, I'm not saying Docker is going to be one of them LOL, I'm just saying that the statement could go both ways.

But I truly agree with you with version control, unit tests. There are certain things that we could invest early and it turned out to be really essential. I think it takes experience to know if which tool is which, and with Docker I'm going to agree with you because my devops skills as a frontend dev is totally 👎🏼 😂 Thanks for the detailed info tho!

Collapse
 
yaser profile image
Yaser Al-Najjar

Truth been told 👌
Docker is one of the tech killers of this century.

Not just that... Often, they continue to make more amazing stuff!

Collapse
 
yucer profile image
yucer • Edited

That would be a good survey.

Which has been the gratest softare paradigm shift in the industry?

I did really like a book that a friend did borrow me:

Software Paradigms from Stephen H. Kaisler

It makes a good presentation of all those paradigms and the context where they are useful. Not a compendium, just an introduction.

I am confident that many people might have creativity peaks that can bring the current paradigms down just by being informed on the current problems and where everything fits into.

And that's what be the main concern of this post. I guess nobody needs to be an expert in docker, git or anything other tool it with success to build new creative and useful stuffs.

The Full-Stack way of thinking should not be ... "I need to be an expert on everything", just I need to know what is everything for and which problem it solves for my team or the industry. Of course more deep knowledge on every stuff gives you more control and increase the possibilities of success. But the knowledge adquision process should be Breadth-first and just Depth-first when required by a project milestone or a debugging process.

That's why I have always preferred books who present introductions to those that present exhaustive compilations of something.

I am waiting for some math guru to write a similar book for the math branches and their current applications to the industry. Many paradigms have been broken with this kind of reasoning:

That was applied with success in this field, but that other field has some similarities with it. What if we apply that also here ?

So the question should not about the tools or frameworks, the should be a about the paradigm shift that originated them and the problem they solve.

A good exercise for that is reviewing the tech comparison charts of wikipedia, the software reviews, etc.

Thread Thread
 
yaser profile image
Yaser Al-Najjar • Edited

Absolutely true!

Paradigms, architectural styles/patterns, and design patterns are really essential to properly solve a problem.

I really feel thankful being a software architect, so that I can realize when someone jumping for microservices solution (with docker, kubernetes, and whatever super duper tech) just cuz it's fancy 🤦

Or automating tests with Selenium just cuz big company X are using it 🤮

As you said, understanding the tech might be important to finish a specific project, but realizing the problems which the tech solves is x10 billion more important.

I guess it's time to write an article on "Why Software Architecture REALLY Matters for All Developers".

Thread Thread
 
briwa profile image
briwa

Looking forward to the article! I love it when an article breaks down the tiny problems from the top level to see the big picture (in this case, software architecture). I would love to learn.

Collapse
 
tobiassn profile image
Tobias SN

Vim. I don’t care how much more productive I’ll be, because I’m already comfortable using a GUI-based editor like VS Code.

Collapse
 
yucer profile image
yucer

I think that many people uses vim and emacs because of their capability of load in the terminals. I actually still use emacs but only for writing the commit descriptions.

It is interesting, now that we talk about that... might it be possible to make an user interface for vscode in plain text mode?

Would that make vim and emacs useless? ;-)

Collapse
 
tobiassn profile image
Tobias SN

It would not make them useless, as there will still be people who prefer Vim and Emacs

And even then, by the time you have your terminal version of VS Code, you might as well allow use the real version with all the keyboard shortcuts.

Thread Thread
 
yucer profile image
yucer

No. I am not able to do it. I have nor the time nor the skills, but I would use it.

Collapse
 
briwa profile image
briwa

I once saw someone who is so into Vim hotkeys struggled just to edit the comments on Github... Lol

Collapse
 
kohloth profile image
kohloth

I've always had an aversion to Angular. There's three reasons for this.

  1. Following the naming scheme debacle, I've always been really confused about which version is which.
  2. I've found the syntax (and the API) to be clunky and over-engineered.
  3. I am not a fan of bidirectional binding.

I also share your feelings about docker too. I get that it helps teams to ensure consistent dev environments, but I've found that the trouble it causes (irrespective of if the devs that are forced to use it know it or not) do not justify this benefit.

Collapse
 
steveblue profile image
Stephen Belovarich • Edited
  1. Huh? There’s a styleguide. Naming things is easy! Just run ng generate and it’s named for you!

  2. That’s just your opinion, man.

  3. Angular prefers unidirectional data flow.

Angular community is so welcoming. I suggest you give it another look.

Collapse
 
kohloth profile image
kohloth • Edited
  1. No, I was referring to releases. I.e. Angular V1, Angular V2.
  2. Yes, it is, but my opinion is an important factor in the decisions that I make for myself :)
  3. I did not know this...in this case, I stand educated :)
Collapse
 
briwa profile image
briwa • Edited

True that, about Angular. I think it has gone a few major version changes that I started to lose track what was new. And yes, bidirectional data flow can be hard to debug or to keep track. I admire frameworks like CycleJS that has a clear unidirectional data flow that makes it so tidy and easy to follow, used to use that a while ago.

Collapse
 
conw_y profile image
Jonathan

Kubernetes. Too much undifferentiated heavy lifting.

Collapse
 
theodesp profile image
Theofanis Despoudis

You may regret that in a few years

Collapse
 
klauenboesch profile image
Christian

Disagree. It will solve a problem, but not for everyone. If you are „small“ and not like Google, Uber or Whatever, Kubernetes brings more work to you as you might ever gain advantage.

It is a great tool, but it is not a one-size-fits-all.

Thread Thread
 
theodesp profile image
Theofanis Despoudis

If you are working with containers on production sooner or later you will find yourself wanting features that Kubernetes offers out of the box.And what’s even better than being available for everyone and not just Uber or Google, so why not

Thread Thread
 
conw_y profile image
Jonathan • Edited

It’s not obvious to me and my clients how we can benefit from these features.

Our cloud providers already deal with orchestration, scaling and management. Docker and docker compose already deal with the basic containerisation needs of our internal build servers.

Instead of learning the guts of kubernetes, it’s cheaper and faster to outsource that to cloud providers.

UI frameworks/libraries are a different question, because the user interfaces we build are, by nature, highly specific and customised to our users. So it’s not so easy to outsource that work, and it’s worthwhile for developers to pick up that work.

But you may be in a different business setting and tech setup, which requires you to use Kubernetes and do all that management and scaling yourself.

Thread Thread
 
theodesp profile image
Theofanis Despoudis • Edited

Actually Cloud providers promote the use of managed Kubernetes for example,

Amazon's EKS, or Microsoft AKS or Digital Ocean. Nowadays you can have a turnkey Kubernetes cluster in a few minutes that it's also tailored for Enterprises.

There is clearly a great need for managing containers in the cloud as there are important considerations such as scalability and security that need to be handled efficiently. I think it's currently the best tool for that job and unfortunate not to invest on it.

Thread Thread
 
kspeakman profile image
Kasey Speakman

EKS costs about $144 / mo currently, just for the part AWS manages. To startups that are trying to become the next big thing, that's a single droplet falling in the ocean of burning cash. But not every place operates that way. And bringing in Kubernetes requires a learning effort for all the extra bells and whistles (and all the new ways they can fail). For smaller shops like ours, it can make more sense to start on the zero-cost ECS or even Elastic BeanStalk until and unless we need more than it provides.

Thread Thread
 
conw_y profile image
Jonathan • Edited

Unless you're trying to be some kind of AWS/Azure/Google cloud competitor, why would you devote precious time and energy to things like container orchestration, which they can already do for you? Why wouldn't you simply outsource anything at that layer (and maybe one or two layers above it)? For all you care, as long as your code runs cheaply, reliably and at scale, why does it matter which pieces of infrastructure run which parts of your code?

You should be focussing on the core of whatever it is that you actually do as a company. I would have thought comparative advantage is such an obvious and basic principle of business that anyone doing a startup would recognise it almost instinctually.

Am I missing context here? (Apologies if so.)

Thread Thread
 
kspeakman profile image
Kasey Speakman

Yeah, you are spot on with using the services so that you can focus on the business aspects. That just makes sense.

Correct me if I'm wrong, but I think there is an underlying assumption that microservices are in use. Kubernetes solves a lot of orchestration problems for you in that case. But when you're not a large org with multiple dev teams per product, you don't have to do microservices. Obligatory reference to Conway's Law. And when you're not doing that, you don't have a lot of the problems Kubernetes tackles.

Collapse
 
scott_yeatts profile image
Scott Yeatts • Edited

To answer the original question: I'm going to find it hard to go back to any of the frameworks (See the wall 'o text below).

Java and PHP are both on my list. I've used them both, but doing a deep-dive into them at this point seems like a waste. If I'd focused on mastery 10 years ago, I would feel differently, but it seems like Python and Node are the things we'll be talking about being old 10 years from now and Java and PHP will be in the Perl/COBOL camp of "important historical languages that served as a jumping-off point for more modern languages, but not a good choice for new projects".

Now, the actual reason for my post is that I saw a LOT of React/Angular/Vue point/counterpoint, and someone mentioned Stencil deep in a reply-thread.

Just my two cents on Stencil:

I've been building greenfield in vanilla Stencil (framework-less) since December (design starting in September, with a Java service build in-between haha). I came from Angularjs/Angular-land, and when I did the framework analysis for my current project, it came down to "We need an asynchronous web application, and a SPA is a better choice than static pages hyperlinked together. Should I get some production experience on the resume with React, or try this Stencil thing out?"

I have Stencil v0.0.12 components working on the same page with v1.0.0 (just released). Since they all compile down and don't share framework code (It's a compiler, not a framework) they all just work.

No chasing an upgrade cycle, and the compiled components are spec-compliant, so if it ain't broke I don't have to fix them every time a new version comes out. I went a bit ham and componentized EVERYTHING so my build process is a bit off, but that's my fault, not the compiler (And it's REALLY easy to fix). I can store a .tgz in our local npm and if I need one of the components I just npm install it. Overall it's been an amazing relief to get away from frameworks and just write code... It uses tsx (jsx with typescript. I still just call it jsx myself haha) and has aspects of a React/Angular/Vanilla mashup...

Most importantly: I COULD write the components without Stencil at all. It simply gives me a few convenience features, Developer QOL and polyfill support. But I could write a pure vanilla component and include it on a page and Stencil wouldn't blink an eye. I could include Angular IN a component, or include a component in an Angular app.... same goes for React and Vue. Hell, I could have three components, each running a different framework and they could live in harmony on the same page (Seriously, don't do this guys LOL). Oh yeah, I can also include a component on a static page. It doesn't force me to build a SPA, I just needed the style (And the views/"pages" are components themselves).

Successful micro-frontends are possible and being built today. That's really the reason we've been using the crutches of all these frameworks. The fact that it WASN'T possible because of browser limitations was the whole motivation to use things like React, Angular and Vue in the first place. The spec has now caught-up and incorporated the things we needed to have to do without them, a lot like JQuery had a ton of its functionality absorbed into the spec.

Just being the old guy mentioning that we all need to remember WHY we started using certain tools. Feels like JavaScript-land has started dividing into camps over the last few years, and we need to think about the original motivation to camp here in the first place haha.

Collapse
 
briwa profile image
briwa

Hey, thanks for the insights! With frontend framework giants like React, Vue and Angular, it's great to see a whole different point of view. And yes I truly have missed it in how browsers have caught up and maybe soon those frameworks could be irrelevant as how browsers did it to jQuery. One day I'll try to get out of my comfort zone and try out Stencils or micro-frontends mentioned in this comment, it's buried way deep down here. Wish I could save comments tho, not just posts... cc @devteam ? 😂

Collapse
 
lautarolobo profile image
Lautaro Lobo

As a Front-End Developer, this will sound weird but... Bootstrap.

I just can't see those awful clases, that are 100% non-descriptive.

Collapse
 
briwa profile image
briwa

Speaking of that, have you heard about Tailwinds CSS ? It has more non-descriptive classes, in fact it is the purpose of the framework, to let you only use the utility classes. That way it is less bloated than Bootstrap. If I ever had to choose between that and Bootstrap, well, I choose Bulma 😂

Collapse
 
lautarolobo profile image
Lautaro Lobo

Herd of it. Didn't try it. I'll look up Bulma, thanks.

Collapse
 
nyenye profile image
Nyenye

For me it's Angular. Haven't tried it since version 1.x, and won't even bother again.

I personally like React, but love React Native. It's so easy to make prototypings with RN, and it's multiplatform by default.

Also wanted to break a lance in favor of Docker here. If you are in need to develop anything that involves database and a backend, docker is just the best. Need postgres? 2 files with less than 10 lines you've got it. Same for mongo/mysql/redis... Need node backend? You can download an alpine image and install node to it with a single line of code.

Of course there are some gotchas that you have to come up with. But nothing like handson experience.

Collapse
 
ambroseus profile image
Eugene Samonenko

fully agree) for me Angular break my lovely rule KISS

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