DEV Community

Cover image for What is the ONE language/framework you refuse to use? But...WHY???
Tina Huynh
Tina Huynh

Posted on

What is the ONE language/framework you refuse to use? But...WHY???

Why do developers HATE certain programming languages?

You hear such things as "--- is slower and has bad performance" "I hate how --- manages data structure" or "--- can't do x, y, and z but --- can"

What are your reasons you refuse to use a particular language or framework? Are they actually practical?

Happy coding!

Top comments (109)

Collapse
 
tracygjg profile image
Tracy Gilmore

What framework I will not use: JQuery

Why: It has served its time. I was excellent for addressing browser/JS variations a few years ago but those day have largely passed - thank goodness.

What would I use as an alternative: Vanilla JS web APIs or any of the other managed FE frameworks.

Collapse
 
joelbonetr profile image
JoelBonetR 🥇

JQuery is a library not a framework 😅

Collapse
 
dominikbraun profile image
DB

What a spurious distinction.

Thread Thread
 
joelbonetr profile image
JoelBonetR 🥇

You could -at least- perform a google search before posting weird comments like that:

jQuery
jQuery is a fast, small, and feature-rich JavaScript library. It makes things like HTML document traversal and manipulation, event handling, animation, ...

Thread Thread
 
fjones profile image
FJones

It's still a spurious distinction. Where's the line between a library and a framework?

The best delineation I've heard yet is that a framework is involved in process control, and a library isn't. But then we look at how jQuery was actually supposed to be used, and suddenly it fits that framework definition awfully well.

Thread Thread
 
joelbonetr profile image
JoelBonetR 🥇 • Edited

We have tones of information online, just split what is an opinion and what is not.

As you suggested, a key difference between a library and a framework is "Inversion of Control".
When you call a method from a library, you are in control. But with a framework, the control is inverted: the framework calls you. Both of them define an API for programmers to use.

That's why jQuery, React are libraries while Angular or Vue are frameworks (as examples).

When you are developing an Angular App you create code that Angular will call to proceed.

In React you directly use React methods/functions in order for it to work, otherwise it's plain JS or invalid JS.

Same happen with jQuery, you need to actively call jQuery methods to perform actions.

On the other hand, other key differences are:

A framework tries to provide a complete solution on its environment (check Angular Reference), you'll see animations, a bunch of http-related methods, formatters, internacionalization, factories, forms, SSR...). While a library covers one or a little amount of features (check React Reference) you'll see a little bunch of functions, some of them are just HoFs to bring some extra thingy but related to the same.

You can also check this explanation from freeCodeCamp:
The Difference Between a Framework and a Library.

Have a great day

Collapse
 
tracygjg profile image
Tracy Gilmore

Joel, I agree JQuery falls more in to the category of library than framework but I did not think the question was really that specific.

Collapse
 
chlorophyllkid profile image
Christopher Voigt

TypeScript … and I don’t really know why. My main concern is, that will make frontend work more complicated (defining types and weird looking syntax)

Collapse
 
tmchuynh profile image
Tina Huynh

Interesting...I'm definitely seeing both sides. People are saying TypeScript is helping a lot! And then there are those saying that with the developments of j
Javascript, you don't really need to use TypeScript.

Collapse
 
menottiricardo profile image
menottiRicardo

I tried TypeScript in a small app two years ago and haven't used javascript since then...

Thread Thread
 
tmchuynh profile image
Tina Huynh

I thought TypeScript isn't optimal for all projects. Correct me if I'm wrong. I haven't looked into it as much as I would like

Thread Thread
 
aeryle profile image
Aeryle

For very very small projects, I doubt Typescript is worth the additional time. Of course Typescript brings alot of advantages to projects, but sometimes using it for something very small just isn't worth it. But most of the time I'd say that it really is a good thing to have.

Thread Thread
 
joelbonetr profile image
JoelBonetR 🥇 • Edited

@tmchuynh @chlorophyllkid
It depends on the "logic load" you are going to add.
On average you'll prefer to have business logic in the backend. Thus it will depend on the needs of this logic and the architecture.

Let's add some examples as explanation:

If it's a microservice running in Node JS that exposes a CRUD through an endpoint, it will probably be a tinny one with few lines of code for each HTTP verb handler thus, even is OK to have some TS features it's not a real need.

On the other side, if it's a big service that deals with multiple instances or that deals with a third party (even being a single one) you may prefer to have TS to end up with a more robust code. It's all about robustness.

Last but not least, you must not couple business logic into the frontend: i.e. You can have a frontend in Angular but maybe in 2 or 3 years angular is dead and you need to migrate to a different tech, if you couple business logic on it, it will be a hell of a process, plus most of the time you need direct access to the DB to ensure data reliablility, referential integrity and so on.

So doing the right thing, the only logic you'll handle in your frontend is interaction logic (i.e. The submit button is disabled till you don't fill this form required inputs...)

If you apply SOLID and KISS, TS is not a need -usually- (some projects can grow in overcomplicated ways I still can't understand 😂)

So, even doing a microservice or a frontend (let's say a React one), adding TS or an extra check for documenting and basic typechecking as contingency wall it's preferred (Robustness).

Take a look at this post to understand better what I'm trying to say.

Hope it helps somehow.

Collapse
 
dumboprogrammer profile image
Tawhid • Edited

Let me add something:
Typically low level or staticly typed language users like typescript because they like to work strongly typed pattern.(personally I like it too because I mostly work with C++ and C#)
on the other hand Typical web developers who mostly used javascript doesn't like typescript because compared to javascript, typescript looks scary and weird .They don't want to do the same thing with extra steps, you get the idea.

Collapse
 
coryjamescrook profile image
Cory Crook

I develop with typescript on a daily basis. I work in a pretty large codebase, and the static typing has been invaluable in maintaining and growing the codebase in a safe way and has caught many instances where we likely would have run into runtime errors. One less thing to worry about.

That being said, for a small project though, I wouldn't choose to use it most likely. The overhead of properly managing the typing correctly, correct configuration, etc... It can be a lot of work for a much smaller benefit.

This is just my take on it, however. I know people that hate it, and others that swear by it. It really just depends on the context imo

Collapse
 
fjones profile image
FJones

Unsurprisingly, the replies you're getting are full of people defending TypeScript. That may be one of the main reasons why I avoid TypeScript like the plague: It's hailed as the Second Coming, and almost always with a mix of "but it's really just JavaScript!" and "JavaScript without TypeScript is so bad!" (pick your line, people...).

TypeScript has unintelligible syntax at the best of times (go on, tell me how the standard implementation of something as simple as a higher-order arrow function doesn't look absolutely bonkers). It still has a lot of the idiosyncracies of JavaScript (by necessity). It gives a hugely false sense of security (no, just because you declare your response model doesn't mean that UUID the API is giving you is actually a number). And people get incredibly preachy about the benefits of types, to the point that no one seems to stop and look at what the actual effects are: I can't name the last time I actually thought "oh, TS would've prevented this" (and I'm pretty sure most of the cases I remember at all were things that any half-decent linter would have picked up, too, it just would have also thrown a compile error in TS).

Collapse
 
_moehab profile image
Mahmoud Ehab • Edited

Writing big projects in JS (or any typeless/dynamic language) will lead us to a miserable fragile (soft)ware. "The parentheses because it is no longer soft :("

Collapse
 
brense profile image
Rense Bakker

It's the same syntax as Javascript though? Except for the types syntax ofcourse since Javascript is missing any kind of type safety.

Collapse
 
davefellow profile image
David Fuentes

Typescript is way more than just types tho... It's interfaces, encapsulation, enums, tuples, etc, etc. It literally changes everything regarding app architecture and code "shape"... Oc one can just use one of the features and forget about the others but just using static typing can be worked around using strict JavaScript and linter anyway...

Thread Thread
 
brense profile image
Rense Bakker

It's still the same syntax, the same way to define variables, functions, for loops... You have access to the same built-in functions and objects like Math.random(). So saying the syntax looks weird seems a little weird to me. Interfaces and enums you dont have to use, they're just there to aid in making good typings. Tuples you definitely have in javascript: const myTuple = ['one', 1] is valid javascript code.

Collapse
 
mdovn profile image
mdovn

For me. I don't think that i would like to code in plain js anymore. Even for simple pet project.
Ts offer so much benefits with just a small cost. It prevent me from stupid mistakes. Which sometimes take several hours to debug. With TS, I can even finish a task without having to manual test it. Of course I still write test, but only the valuable part. Not wasting time verifying input type, null value... Etc

Collapse
 
brense profile image
Rense Bakker

I'm never touching Java again. Usually when I learn a new language there's a "wow thats cool" period, followed by a frustration period until you become somewhat proficient at the language. With Java the frustration period never ends and just gets progressively worse :P Worse than German grammar :P

Collapse
 
odysseaspapadimas profile image
Odysseas Papadimas

Used to absolutely hate it when I used it in Uni, then we had a compulsory Android Java App project we had to do and after a few months using it, it went from 1/10 to 3/10 for me
It's got some pretty cool stuff and insanely fast. I truly hope I never have to code another RecycleViewAdapter ever in my life again tho

Collapse
 
mephi profile image
mephi

I'm ok with German grammar (it might be a bit complicated, but it's very expressive) and I like Java. Maybe there is some correlation.
I like Java, because once you learned it, you can write it at 3 am and it still makes sense the next day.

Collapse
 
pandademic profile image
Pandademic

agreed!

Collapse
 
grahamthedev profile image
GrahamTheDev • Edited

Well I’m going to start a war here but….tailwind!

It goes against the whole point of CSS…utilising the Cascade (the “C” part).

It adds loads of replication in your HTML, it requires you to rely on it actually working (lately there have been problems with the JIT compiler causing required styles to be missed) and by the time you learn all the classes you are 70% of the way to learning CSS anyway!

Don’t get me wrong for prototyping it is useful, but in production, if I have a choice, I wouldn’t touch it!

Collapse
 
tmchuynh profile image
Tina Huynh

What do prefer using? Bootstrap? Materialize?

Collapse
 
tzwel profile image
tzwel

He prefers vanilla css from my understanding

Thread Thread
 
grahamthedev profile image
GrahamTheDev

Yeah exactly, sorry it is bank holiday here in the UK so not been on properly to answer.

I use vanilla CSS and a “micro libraries” approach. So if there is a complex component that I don’t want to have to build I will use an off the shelf solution and then adjust the styles to suit the site.

At this stage though I have my own library of patterns that work and are set up to use CSS vars for styling so it becomes more of a copy paste and change 3/4 vars job for 95% of things. 👍

Collapse
 
eerk profile image
eerk

I completely agree! It's so strange to put all the style, design and layout choices back in the HTML document! It's also super unreadable and hard to refactor.

I think tailwind became so popular because it gives developers who do not design/write CSS a quick solution to put some layout into the document without touching a CSS file.

Collapse
 
dannyengelman profile image
Danny Engelman • Edited

Cobol !!!

Already old-fashioned style programming when I had to learn it in college, in 1987

But... Cobol developers make 120K+ nowadays, still a lot of (banking) applications around.

I guess React will have a similar future, many, many applications built with React,
but will be (or, already is?) surpassed by modern language updates.

So if money is your main objective, and you don't care about using modern tools, learn React.

I will be making a fortune in 5 years time.

Collapse
 
hpez profile image
Hassan Pezeshk

React. Too much complication for a frontend framework and the code just looks unclean, especially the JSX part. Vue.js all day.

Collapse
 
tzwel profile image
tzwel

try svelte, you will forget about vue

Collapse
 
hpez profile image
Hassan Pezeshk

Will do. I've been meaning to check it out for a while just haven't got around to it yet.

Thread Thread
 
tzwel profile image
tzwel

awesome, I promise you will love it

Collapse
 
peteole profile image
Ole Petersen

I refuse to use anything that has to do with PHP...

Collapse
 
sunflowertoadtheorbiter profile image
SunflowerToadTheOrbiter

php

Collapse
 
mistval profile image
Randall

Maybe Entity Framework. It's been a while so I don't remember a lot of the details, I just remember it being really opaque, mysterious, slow, and just annoying. I don't like ORMs much in general, but Entity Framework has to be my least favorite.

That being said, just pay me enough and I will use it ;)

Collapse
 
jwp profile image
John Peters

They have refined it now and put a ton of effort into it. It's now as fast as direct SQL queries because it supports direct queries now.

Collapse
 
tmchuynh profile image
Tina Huynh

What do you use as an alternative to Entity framework?

Collapse
 
mistval profile image
Randall

I don't use .NET much these days, but in JavaScript land I typically like to use Knex, and raw SQL when needed.

Collapse
 
jonrandy profile image
Jon Randy 🎖️ • Edited

TypeScript

Developing in JS after coming from strictly typed languages was liberating. The last thing I want to do is start using strict typing in it.

Collapse
 
thorstenhirsch profile image
Thorsten Hirsch

Lol, for me it was just the opposite way: coming from a dynamically typed language (Ruby) to TS it was so awesome to catch most of my errors already in VS Code. (But I also remember 10 years ago coming from Java to Ruby felt liberating.)

Collapse
 
tzwel profile image
tzwel

do you really get type-related errors?

Collapse
 
cyangirl profile image
Subhasree

For me, it is C.
Reason: I started with Java, then moved to Python/Javascript and then found C.
Now you know why.😅