DEV Community

Tell me an unpopular software opinion

Ben Halpern on January 11, 2020

I tweeted this yesterday and the response was not good. // Detect dark theme var iframe = document.getElementById('tweet-121570632857390694...
Collapse
 
gypsydave5 profile image
David Wickes

CSS and HTML are sufficient to build 99% of all websites.

Collapse
 
bhupesh profile image
Bhupesh Varshney 👾

Add a little bit of Vanilla JS. that's it

Collapse
 
gypsydave5 profile image
David Wickes

Like the sprinkles on a cake... 👍

Collapse
 
jasonelkin profile image
Jason Elkin • Edited

Your web server is coded in HTML and CSS? How does that work? 😜

Collapse
 
thomasferro profile image
Thomas Ferro

David was talking about web*sites* ;)

Thread Thread
 
jasonelkin profile image
Jason Elkin

Indeed, a server is the difference between a text file (containing HTML or otherwise) and a web*site*.

Collapse
 
loujaybee profile image
Lou (🚀 Open Up The Cloud ☁️)

OH DEAR LORD, YES.

Collapse
 
sebastiangperez profile image
Sebastiangperez

True , maybe a javascript and json file reading for content and thats it you dont need a fancy stuff.

Collapse
 
s_aitchison profile image
Suzanne Aitchison

Super high coverage testing is sometimes a waste of time 😬

Collapse
 
gypsydave5 profile image
David Wickes

💯 coverage is usually an indicator of highly coupled testing, which leads to very fragile tests, which leads to the tests being turned off...

Which leads to anger, anger leads to hate, and hate leads to suffering.

Collapse
 
ben profile image
Ben Halpern

For every metric, there is an equal and opposite metric.

Test coverage is good to know and track, but it can hide problems if it isn't a factor considered alongside a lot of principles and qualitative decision making.

Collapse
 
s_aitchison profile image
Suzanne Aitchison

Yes exactly; test coverage isn't the goal in itself and I think sometimes focusing too much on a percentage coverage is a distraction from creating an actual robust pipeline.

See also: snapshot testing in the frontend. Very easy to achieve close to 100% coverage with tests that are easily ignored and overwritten when they fail 🙄

Collapse
 
vulpcod3z profile image
vulpz

Who writes the tests to test the tests?? 😵

Collapse
 
mike_hasarms profile image
Mike Healy

Coast guard.

Thread Thread
 
jgaskins profile image
Jamie Gaskins

I understood that reference

Collapse
 
dwilmer profile image
Daan Wilmer

Mutation testing

Collapse
 
adam_cyclones profile image
Adam Crockett 🌀

100% coverage of low quality tests is so much worse than 20% critical tests.

Collapse
 
patryktech profile image
Patryk

sometimes

Many, many times.

That said, if you are publishing libraries that are meant to be reused (e.g. on PyPI, or NPM), 100% is often a good idea.

Collapse
 
ankitbeniwal profile image
Ankit Beniwal

Full Stack Devs really exist.

Collapse
 
daniel13rady profile image
Daniel Brady

What is a full stack dev? A "jack of all trades"?

Collapse
 
peiche profile image
Paul

Yes, we exist. I design, write markup, styles, and handle back-end code and design database models.

Thread Thread
 
jasonelkin profile image
Jason Elkin

But can you solder? 😜

One of the fun games to play with people who call themselves full-stack devs is to see just how "full" their stack is. So often it's just a bit of JS and PHP.

Thread Thread
 
ankitbeniwal profile image
Ankit Beniwal

I can solder 😂😂

Exactly, I have also seen bad examples of full stack. But that doesn't change the fact.

Collapse
 
daniel13rady profile image
Daniel Brady

I ask because I think people use the terms "front-end developer," "back-end developer," "full-stack developer," "Java developer," etc. in different ways.

Sometimes an "XYZ developer" term seems to describe the skill set possessed by a developer, and other times it is used to describe the specialization area of a developer.

When talking about skill sets, the term "full-stack" makes some sense to me: it emphasizes that a developer has learned a little about a lot and is comfortable diving deeper anywhere, including new territory.

But when talking about focus areas or areas of specialization, I think the term "full-stack" can be confusing: it seems to say "I'm good at everything," but a) that's not true, and b) every tech stack is different.

Thread Thread
 
daniel13rady profile image
Daniel Brady

Also, the terms "front-end" and "back-end" refer to different things depending on if we're talking about web development or not.

Personally, the only modifier I tend to use with the terms "developer" and "engineer" is "software." Anything more feels like I'm putting myself in a box, and it might be hard to get out of later on.

"I'm a software engineer with ___ experience using ___ technologies, and I want to learn more about ___ by working on ___." More verbose, perhaps, but also a more accurate characterization of myself.

Thread Thread
 
jasonelkin profile image
Jason Elkin

I think you've hit the nail on the head. Web Devs too quickly silo themselves into front or back-end and limit themselves to understanding only part of the product they're working on.

So often I've seen features implemented in the wrong place in the stack. Not because the Dev was bad, because they didn't want to learn a language on the "other side" of the stack.

This should be more than doable for an average Dev (being multilingual is, after all, a thing) but for some reason the REST API seems to represent a cultural divide between the front-enders and back-enders and us full-stack Devs are viewed suspiciously by both.

SOLID, TDD, Agile, all apply to both "sides" of the stack. It's certainly possible to be a good Dev on both sides - so long as you don't measure being a good dev as simply someone who can remember all the native functions in that language.

Collapse
 
jsbeaulieu profile image
Jean-Sébastien Beaulieu • Edited

I think that while they do exist, they all tend to have a specialty and, more importantly, relatively important shortcomings. I've yet to meet an actual full-stack that doesn't suck at one part of the stack, be it CSS, server configuration, DevOps, whatever.

Myself included. I suck at doing responsive layouts.

Collapse
 
piq9117 profile image
Ken Aguilar

This is not so uncommon. There are a lot of people who can program the client all the way to Assembly. The question is, is this an efficient way to work in a project?

Collapse
 
jsbeaulieu profile image
Jean-Sébastien Beaulieu

Depends.

If your team and project scopes are small, hiring "full-stacks" make sense. There simply wouldn't be enough work for a full-time front-end developer in many places.

However, I've also seen places hiring a full-stack in hopes or getting rid of the need for an actual front-end developer for their product. Or hiring front-end devs who can use Firebase in hopes they won't need a back-end.

This rarely works, and when it does, it does quite poorly.

Collapse
 
aritdeveloper profile image
Arit Developer

Devs can build their portfolios on WordPress

Collapse
 
ben profile image
Ben Halpern

This is a great one.

Wordpress isn't exactly an "elegant solution" these days, but it is a hardened one with basically every use case imaginable covered. Any user-facing flaws can be overcome with tooling and config, same as any comparable software.

It's also very useful to learn Wordpress. The company behind Wordpress just raised another $300m. The software isn't going anywhere any time soon.

Collapse
 
learnwithparam profile image
Paramanantham Harrison

True Ben.
Headless Wordpress with Gatsby kind of well optimised frontend will be a killer combo for mid sized projects

Use cases,

  • content websites
  • e-commerce websites
Thread Thread
 
jkhaui profile image
Jordy Lee

Can second this. Been building a full-stack app for a few months now using WP as the backend + GraphQL API and React Frontend. Also use some serverless functions to supplement functionality that can't be done in WP.

It's been amazing because as a single dev, I can work on what would otherwise be a huge/impossible project by leveraging WPs' CMS, authentication features and plugins.

The only thing slowing me down is the WordPress GraphQL ecosystem is still almost non-existent

Thread Thread
 
chris_beef profile image
Chris B

I'm going to be looking into Gatsby and next.js this year. One question - how do you handle updates on Gatsby when a post or something else is updated in WordPress? Do you have a hook/action that is triggered and posts to gatsby to run a new build?

Collapse
 
0xdonut profile image
Mr F. • Edited

I used wordpress once in 2003 but I haven't built a single wordpress site ever since!

I recognise what people have done with it, and it's maturity as a platform, but I count myself lucky!

Collapse
 
georgeoffley profile image
George Offley

I've had one on WP for years now. I'm switching to hosting everything on a GitHub pages site. It's just far easier to maintain with little effort. Helps focus on writing rather than messing with a WP set up.

Collapse
 
jvarness profile image
Jake Varness

Too many plugins, not enough code I can modify without fear.

Collapse
 
piq9117 profile image
Ken Aguilar • Edited

Mine is even more primitive. I use a static site generator. Lol

Collapse
 
bernardbaker profile image
Bernard Baker

It's 5pm I want to go home.

Collapse
 
aumayeung profile image
John Au-Yeung

Yea. People are working themselves hard. I think some people are worried about their prospects or they really love their job.

Collapse
 
bernardbaker profile image
Bernard Baker

It would definitely be the prospects. I've worked with companies that do have a good balance though.

Thread Thread
 
aumayeung profile image
John Au-Yeung

Yea. There are nice ones. Just that there're more bad ones.

The nice ones probably have more competition and don't need to hire as often since the turnover would be low.

Thread Thread
 
bernardbaker profile image
Bernard Baker

That's true. I got an email from a company that I interviewed with a year ago. Before I set up an e-commerce website. And they have all three roles open again. Turn over maybe... What do you think?

Thread Thread
 
aumayeung profile image
John Au-Yeung

I don't think most companies need employees that badly. They just want more for extra growth.

They aren't closing without them.

Thread Thread
 
bernardbaker profile image
Bernard Baker

That's a good point. Could you explain in more detail?

Thread Thread
 
aumayeung profile image
John Au-Yeung

I mean they can still operate without hiring more people.

Just that they might not have as much output.

Thread Thread
 
bernardbaker profile image
Bernard Baker

Oh I see. That makes sense. Thanks for explaining that in more detail.

Collapse
 
georgeoffley profile image
George Offley

My boss makes a point of telling us he doesn't pay overtime. When I first started I was staying until 6-8 PM. Absolutely not worth it.

Collapse
 
aumayeung profile image
John Au-Yeung

Not paying overtime is pretty normal. But staying that late definitely not normal

Collapse
 
bernardbaker profile image
Bernard Baker

But did your contract have that clause which states working extra hours to get the work done?

Collapse
 
daniel13rady profile image
Daniel Brady

JavaScript is well-designed: most of us simply don't use it effectively and too frequently blame the tool for our problems.

Collapse
 
somedood profile image
Basti Ortiz

It honestly irks me a lot how people cite the infamous 0.1 + 0.2 floating point arithmetic error as a justification to ostracize JavaScript (even though most programming languages suffer from this issue as well by virtue of floating point limitations).

Like, seriously? Are tiny nuances really that evil so as to dismiss the programming language altogether? No, right? Python suffers from the same error, but is nonetheless one of the most loved languages out there.

You are definitely correct about people not using it effectively. When people write arguments against the languages, it's always because they don't use it right, as in non-"Pythonic" code for Python.

Collapse
 
patarapolw profile image
Pacharapol Withayasakpunt

No, I would cite -- github.com/aemkei/jsfuck

Most importantly, [1, 2] + [3, 4] that I learnt from Python. I know that there is .concat() and spread operator, but still...

Another thing is var hoisting, but it can be made understand, really.

Thread Thread
 
ashoutinthevoid profile image
Full Name • Edited

I hope I'm misunderstanding, but this style of example "learnt from Python" always puzzles me. Specifically, why do devs expect things to work the way they do in some other language, rather than learning the constructs in the language theyre presently working in?

Thread Thread
 
patarapolw profile image
Pacharapol Withayasakpunt • Edited

I do suppose that the language should be failsafe. Even TypeScript doesn't warn., nor throws an error. Even Python is safer. TypeScript is partly safer, and some part more dangerous than Python, due to JavaScript-based.

RTFM, partly, is OK. But reading the whole EMCA specification is crazy.

Also, I cannot expect tutorials to teach everything.

I also expect the language to be "guessable" rather than being told to do so. Otherwise, throw an error early.

Productivity doesn't wait for you to finish learning...

But knowing additional paradigms might be helpful. Knowledge should add-on rather than replace.

Still, end-in-end, I love JavaScript (not even saying TS), more than Python.

Collapse
 
_hs_ profile image
HS

Although it was designed in 10 days (in a way) it is quite simple and good enough I would agree. I just would never use it for backend as I prefer type safety and having some thread control. Dynamic typing and such things could be "shoot yourself in the foot" for some devs and then they blame the tool.

Collapse
 
lukewestby profile image
Luke Westby • Edited

IMO the premise that most users don't use it effectively disproves the assertion that it is well-designed. To me, a language that is well-designed is easy to use effectively by default, and so most people would. I like JavaScript because the platform runs in so many places and there are so many different things I can do with it. This is ultimately not a consequence of good language design, though.

Collapse
 
daniel13rady profile image
Daniel Brady

I like JavaScript because the platform runs in so many places and there are so many different things I can do with it. This is ultimately not a consequence of good language design, though.

I would amend that it to "popularity and versatility are not necessarily a consequence of good language design." 👍

To me, a language that is well-designed is easy to use effectively by default, and so most people would.

I suppose we should come up with a definition of "effective use" for this discussion before we dive too far and realize we're not talking about the same things. 🤓

When it comes to effective use, programming languages are quite similar to natural languages: it's all about communication. How well can you say the right thing?

One of the key differences between natural language and programming language, though, involves the audience: natural languages meant to be read by humans, but programming languages are are meant to be read by humans and computers.

So effective use of JavaScript is a question of how well you can balance what you say, such that it is right (for some, and possibly different, definitions of 'right') for both the readers of your code and the machine that eventually executes it.

To be able to find this balance, and communicate effectively with JavaScript, you need to understand the impact saying certain things in certain ways has on both humans and machines.

Language design definitely influences how challenging this process is, and there are some features of JavaScript (some present in the original design, some recent additions of ES6) that make this process harder than it needs to be, but not enough to make me feel it deserves the amount of flak it receives from our community.

Collapse
 
antonmelnyk profile image
Anton Melnyk

Agree, JS is a simple, productive and elegant language with a great ecosystem.

Collapse
 
jsbeaulieu profile image
Jean-Sébastien Beaulieu

I was following you until "great ecosystem". The whole node_modules thing is mostly a house of cards waiting for the right gust of wind to make everything fall apart, and most of the tooling is mostly over-engineered reinventions of existing tools.

But I really like using the language. It's fun to write in.

Collapse
 
aumayeung profile image
John Au-Yeung

I think this is true after ES6 when JavaScript has all the syntactic sugar that other languages like Ruby has.

Also whoever designed it actually thought about what they're changing before actually making the changes.

Collapse
 
juankruiz profile image
Juan Carlos Ruiz Pacheco • Edited

POC are likely the first production release

¯\(ツ)

Collapse
 
daniel13rady profile image
Daniel Brady

Sad but true. I haven't been in the game long, but I feel like the whole "move fast, break things" mantra is often interpreted as "ship your prototypes."

Collapse
 
oksoimdave profile image
dave medlock 🧔🏻

Most software products I’ve seen have at least one feature that just screams “we have a demo on Monday, can you code this over the weekend?” And then that’s what goes to prod because there’s another demo on Friday for some other feature.

Collapse
 
saschadev profile image
Der Sascha

Haha yes

"we have a poc, so the Software is already complete. There is only some logic missing!"

Collapse
 
hdv profile image
Hussein Duvigneau

Man I think I just found my support group 😢

Collapse
 
_hs_ profile image
HS

learned this the hard way

Collapse
 
kiszkielisa profile image
Artur ⚡ Kiszkielis

I would love to hear about your experience in this area.

Thread Thread
 
_hs_ profile image
HS • Edited

Well latest one was like build this and that and we need demo up in 3 months. Next thing you know always new feature requests and as a must. After that they started talking about release in another 6 months and I was like heeelllll no. They agreed to build prototype and then rewrite the whole thing but I'm sure they think well it's only bug fixing and optimizing. The code is impossible to maintain so hope they understood last time what rewrite means

Collapse
 
phm200 profile image
Peter Miller

Scalability can be a premature optimization

Collapse
 
equinusocio profile image
Mattia Astorino

It is, always.

Collapse
 
adam_cyclones profile image
Adam Crockett 🌀

Don't need it, yet doesn't come into it.

Collapse
 
bretthancox profile image
bretthancox • Edited

Agile is rarely implemented properly. It usually ends up as shorter timeframe waterfall with less documentation.

Collapse
 
_hs_ profile image
HS

And called incorrectly. We do Agile is like saying We do Green. Maybe Agile Methodologies?

Collapse
 
oksoimdave profile image
dave medlock 🧔🏻

I call it FrAgile because the Agile pieces tend to fall apart pretty easily and then it’s just a poorly planned Waterfall project...

Collapse
 
adam_cyclones profile image
Adam Crockett 🌀

That's just true, not unpopular, just not talked about.

Collapse
 
stephanie profile image
Stephanie Handsteiner

I guess, that's not that unpopular.

Some “do agile“ because they're trying to come across hip, but once you look inside it's (like you said) plain old waterfall in biweekly sprints.

Collapse
 
laurenclark profile image
Lauren Clark

I've started asking in depth about user stories, effort/story points, on time deploys vs overtime hours in interviews and literally every company, even large blue chips are stumbling on it. They don't know their process, they think user stories are a waste of time. But then you ship the feature and everyone is all "damn we can't do X" sigh

Collapse
 
tomhermans profile image
tom hermans

Oh yes, wonderfully articulated

Collapse
 
dougblackjr profile image
Doug Black

OMG, you are 100% correct.

Collapse
 
ryansmith profile image
Ryan Smith

Basic for loops in JavaScript are fine.

Collapse
 
sesamestrong profile image
Sesamestrong

Depends what you're using then for. For performing operations on every element of an array or object, Array.prototype.map is really nice. But I definitely agree that for loops as opposed to Array.prototype.map, reduce and for each are never really bad; they're just sometimes not the best.

Collapse
 
karfau profile image
Christian Bewernitz

As soon as you need to have async code in your forEach callback you need to switch your code to the for loop again. So if there is any chance this might happen, pick it right away...

Thread Thread
 
diek profile image
diek

Nope, you can Promise.all()

Thread Thread
 
karfau profile image
Christian Bewernitz

How, .forEach doesn't collect the returned value, you would need to switch to .map and there are quite some cases where you don't want to fire all of these things "at once".

Thread Thread
 
sesamestrong profile image
Sesamestrong • Edited

Then you can use await and Array.prototype.reduce. It sounds a bit awkward but is actually straightforward.

Thread Thread
 
karfau profile image
Christian Bewernitz

I'm not sure I get your point (or whether you got mine), so I'll put some code:

Independent of using map or reduce to iterate over an array, the "aaync callback" will return the promise immediately for every item.
(Even the function that contains the await Promise.all will immediately return with a promise, of course)

The implication is that you can not run those async actions in a sequence using the methods provided by Array.protype.

Meaning urls.map(fetch) is the same as urls.map(async (url) => await fetch(url)) and it's not different from using reduce to create that Array of Promises.

But

for (const url of urls) {
  await fetch(url)
}

Will only trigger the second fetch after the first one is done.

I have had plenty of experience where servers have blocked to many simultaneous requests, so it's worth considering the impact the code can have.

(If that's not clear I'm willing to take the time to write a post about it.)

Collapse
 
jsbeaulieu profile image
Jean-Sébastien Beaulieu

I really don't like seeing people using .map for things not returning a new array. The whole concept of "mapping" comes from functional languages, or even higher, from mathematics, and always have been about "mapping" one set (your input) to another (the returned array). Discarding the output and using map as a glorified for loop makes the intention unclear.

Collapse
 
samuelblickle profile image
Samuel Blickle
  1. PHP isn't dead and it won't die any time soon.

  2. JavaScript doesn't suck, but a lot of JavaScript developers do.

Collapse
 
jsbeaulieu profile image
Jean-Sébastien Beaulieu • Edited

PHP is definitely not leaving any time soon. It's still the easiest way to deploy a functioning website. Traditional hosts are not the sexiest thing in the world anymore, but they're still running strong. Guess why? Push one index.php file through their web FTP interface (urgh) and you're on the internet.

Collapse
 
jappyjan profile image
jappyjan

I so fucking agree, even though I stopped using php while ago.

Collapse
 
adam_cyclones profile image
Adam Crockett 🌀 • Edited

Burn! Okay how you measure your skill against others, thats nothing to do with languages what so ever. What do you measure 'a lot' as and 'bad' as?

Collapse
 
samuelblickle profile image
Samuel Blickle

how you measure your skill against others

I don't. To be honest, I would count myself in on devs who suck at JavaScript.

But I think JavaScript gets shamed a lot not because something's wrong with how the language works, but because many users expect it to work in a different way than it actually does.
Some devs come to JS and see the syntax, thinking "Yep, I know C (or C++ or Java or some other language) - I can work with that too.". And then they skip learning it as a new language and instead start using it straight away. But then something doesn't go exactly as they expected it to and they jump on the JS shaming train.

Thread Thread
 
adam_cyclones profile image
Adam Crockett 🌀

For me I started my career in the front end, it got to the point where I wanted more. More than node, more than typescript. Knowledge of programming in general is my goal, my first dip into another language was lua, not syntactically similar just a really interesting simple scripting language, that has deep ties within C, I then tried to tape node and lua together with WebAssembly and c++ because why not. It's true that I am accustomed to C style dialects, but it's also true that I have never had such expectations that everything is like JavaScript. I don't think I have met anyone who has had this expectation, but in my bubble all the developers in our team are full stack with a strong lean towards whatever.

I believe in learning programing concepts not languages, to do this I have delved in to a number of backend languages which I am starting to loose count, (being good at a language was not the point, learning was) Most recently returning to Rust, I find this language is outstanding.

I have not yet taken a stab at PHP but I have wrote a few posts about my shameful predudice against it and why I should give it a chance because honestly PHP has probably got a lot to offer in the server department. Anyway I find this opinion interesting but not really quantifiable.

Collapse
 
loujaybee profile image
Lou (🚀 Open Up The Cloud ☁️)

Code Review is a terrible reactive concept that is overly relied on by teams and used as a crutch for bad communication. Pair Programming is significantly more effective at spreading ideas, communication and critiquing code.

Collapse
 
daniel13rady profile image
Daniel Brady • Edited

I agree with your thought on pair programming, but I haven't experienced your view on code reviews. Are you saying that pairing can be a viable substitute for retroactive review?

Unfortunately pairing doesn't happen much in my current environment, and I don't do much to encourage it. In its absence, I think code reviews are better than nothing, but reviewing code effectively is just as challenging as delivering constructive feedback (because that's exactly what it is) and there aren't nearly as many devs who are good at this as there ought to be.

Collapse
 
loujaybee profile image
Lou (🚀 Open Up The Cloud ☁️) • Edited

Hey Daniel! :)

I find that often by the time code is up for review it's "too late" to make important changes. As you're wrestling with factors like the sunk cost fallacy and the de-motivating effects of suggesting that a colleague re-do their work seemingly to appease you.

Not only is it often "too late" to make changes but sometimes it's also hard to convey larger feedback via text. Complex changes are often only realistically conveyed in person going through piece by piece. Naturally over time though the amount of "explaining" is asymptotic as you get more and more inline with each others viewpoints.

My take is not that code review is bad (it's important to stress this point) it's just that I see code review is used as a crutch for not having adequate conversations prior and during the creation of code (since it's reactive in nature). And pair programming in my opinion is superior at type of communication.

However I know that my opinion is unpopular since I'd say the majority of developers I've worked with would admit that they dislike pair programming, which seems to tally your experience too so until the day comes that the industry invites more pairing I'll be over here shouting into the void! 😂

Thread Thread
 
daniel13rady profile image
Daniel Brady • Edited

Thanks for elaborating!

Honestly I quite enjoy pairing, but I've recently found myself in a remote work position that is also separated by about 8hrs from my teammates, which makes any sort of synchronous communication difficult. I've been experimenting with opening up a PR as soon as I make a first commit to a branch, and tagging my teammates with the hopes of exchanging feedback "early and often." I've met with mixed success, depending on how available my teammates are.

Thread Thread
 
nickdrouin profile image
Nick Drouin

For large stories, I try to push my team's / teammates to use a two-phased PR: one for the interfaces/design, a second for the code.
This promotes discussion on the approach early on.

Collapse
 
aaronktberry profile image
Aaron Berry

I agree. I always found it daunting looking at a PR with 40+ files changed without even knowing what the PR should be doing. In the end, it always seemed to just end up being more efficient sitting down with the owner of the PR and them walking through what changed and reviewing it with them.

Oh and also actually getting the person to RUN the code to see it actually is doing what they expect it to do rather than assuming its working correctly.

Collapse
 
patryktech profile image
Patryk

I always found it daunting looking at a PR with 40+ files changed without even knowing what the PR should be doing.

Do you even CI, bro? :D

I'd consider looking into Continuous Integration. Smaller commits are oftentimes safer commits.

Collapse
 
jessekphillips profile image
Jesse Phillips

Plug

Or a little more specific

Code review should include reviewing the history, it is such an important log, those in person conversations need written down for the poor maintenance folks when both of you aren't available.

Collapse
 
adam_cyclones profile image
Adam Crockett 🌀

God yes!

Collapse
 
mpuckett profile image
Michael Puckett

git rebase > git merge

Collapse
 
scott_yeatts profile image
Scott Yeatts • Edited

This is semi-accurate. I'm specialized in front-end, but have built a TON on the backend.

HOWEVER, I don't look at a backend specialist and say "Anything you can do, I can do", I simply approach every conversation with humility and acceptance that there may be a better approach, and I can't possibly know everything there is to know about all aspects of code.

I'm not bad at backend. But I can realistically assess that while I might be able to architect a cutting-edge front-end with all the bells and whistles, I can simply do an adequate job on the backend. That said, I have had the experience of writing a breadth-first sorting algorithm for a backend implementation covering millions of nodes that completed in 5 minutes vs the previous 6 hours (written by a backend specialist who I would say is VERY good)... so I definitely wouldn't say I'm BAD at the backend...

As a community we need to embrace the fact that there are universal coding patterns that can be applied on the frontend and backend. While I might specialize in tools for the frontend, that doesn't prevent me from using those patterns in work on a backend.

Thread Thread
 
jsbeaulieu profile image
Jean-Sébastien Beaulieu

This is what I'd call "experience" though. How long have you been working in the field?

I do agree with you, though. People will have to come to terms with the fact that any decent web developer can learn most parts of the stack just fine with some effort and a tiny bit of interest.

Thread Thread
 
scott_yeatts profile image
Scott Yeatts

Define "working" ROFL (Kidding)

Getting paid? A little over 10 years now.

But writing web code? Let's just say I remember writing code at a time when CSS didn't exist.

And absolutely it takes experience. I would look sideways at someone calling themselves a "Full Stack Engineer" on the first day of their first job without some significant background information haha.

Thread Thread
 
jsbeaulieu profile image
Jean-Sébastien Beaulieu

I'm 3 years in, have worked on production environments maintaining and developing PHP/Node.js back-ends as well as React/Vue front-ends, and CI/CD infrastructures...

I'm still having a lot of trouble calling myself "full-stack". I'm way too junior to pretend I know both well enough.

Thread Thread
 
scott_yeatts profile image
Scott Yeatts • Edited

First: Sounds pretty "Full Stack" to me. Second, make sure you have a specialty that you feel like is your "go-to" (Front-end, back-end... and even though "DevOps" is a mindset, it CAN be a specialty too).

If you've got that, but you wouldn't "little Bobby Tables" if you touched another piece of the stack, then you're full-stack.

You DO need a realistic assessment of your own skills. If you're mid-level in the front, but junior in the back, be honest about it and ask for mentorship and guidance from a senior backend engineer, but don't be afraid to pickup those stories either :D

xkcd.com/327/

Thread Thread
 
jsbeaulieu profile image
Jean-Sébastien Beaulieu

Pretty much the opposite situation for me! I'm primarily back-end, but learned JS, then React/Vue, then CSS out of sheer necessity, then realized I wasn't half as bad as I thought I was at it. I still suck at layout, especially when responsive, but I'm getting decent at scaling things in mostly sensical ways.

I'm probably getting to mid-level in back-end at this point, maybe? And I learned DevOps-y stuff by scaling up my team's growing architecture past their FTP and manual CRON jobs on a single VM.

Collapse
 
jessekphillips profile image
Jesse Phillips • Edited

I don't know, I feel like I'm just one big unpopular opinion. Where do I start.

  • Vim
  • Dvorak
  • Linux over Windows
  • git history rewrite ftw
  • don't use yaml
  • TDD or testable code can create harder to read code (which could be a detriment
  • there is no full regression
  • dynamic typed languages are harmful to quality

Oh, lighthearted, AI will not take over the world because humanity will have already subsided control before machines could create a plan.

Collapse
 
daniel13rady profile image
Daniel Brady • Edited

Vim

I use Spacemacs in evil mode 😀

Dvorak

I've used "Programmer Dvorak" for the last year and love it, but it has ruined my ability to type on other people's computers 😆😭

Linux over Windows

Most definitely. I use Mac at the moment, but I'd order them as Linux > Mac > Windoze

Collapse
 
patarapolw profile image
Pacharapol Withayasakpunt

The only problem I saw with YAML is that it is overdone.

  • Who the hell would use no and yes?
  • Strings should always be quoted.
  • safeDump / safeLoad should be default, and probably dump / load should be renamed to fullDump / fullLoad, or dangerous, or just use a custom Encoder / Decoder

I saw no problem with indentation-based languages, though. That is why Markdown is popular.

Collapse
 
jessekphillips profile image
Jesse Phillips
Collapse
 
_hs_ profile image
HS • Edited

Likes goes to TDD and dynamic typed things. Vim I disagree I think editors should be a matter of taste and never to be discussed xD.

Collapse
 
jessekphillips profile image
Jesse Phillips

You don't understand, vim stands for VI Improved. You're missing out on some very nice additions, like multiple undo, by sticking with vi.

Closing your eyes to the changes happening will just just hamper your growth. xD

Collapse
 
tcgumus profile image
Tuna Çağlar Gümüş

IDEA is way better than Eclipse and Netbeans.

Collapse
 
jappyjan profile image
jappyjan

All jetbrains ide's are just awesome.

Collapse
 
oksoimdave profile image
dave medlock 🧔🏻

Amen.

Collapse
 
gomugilad6 profile image
Gilad Bar

You need a BSc in computer science to be a good developer

Collapse
 
daniel13rady profile image
Daniel Brady

Counter unpopular opinion: being a good developer has less to do with your knowledge of computing science (e.g. algorithms, runtime complexity, hard maths), than your ability to communicate your solutions to complex problems in non-technical ways.

Collapse
 
lbeul profile image
Louis

You need a BSc in CS to be a good computer scientist. But not every computer scientist is a good developer. Most good computer scientists I know are more of a mathematician than a dev.

Or as Paul Graham writes in Hackers and Painters: "Computer science is a grab bag of tenuously related areas thrown together by an accident of history, like Yugoslavia."

Collapse
 
_hs_ profile image
HS

Hmm, never heard of that one but good to know how my region became like it is - thrown together by an accident of histroy xD.

Anyways exactly what might be the problem: software development != computer science. Some people mix these two so it might be the reason for confusion.

Collapse
 
adam_cyclones profile image
Adam Crockett 🌀

What if you just watch computer science lectures from universities. I can't afford to go back to uni I'd be 200yrs old before I paid that off.

Collapse
 
safijari profile image
Jariullah Safi

Unpopular by the way of being completely wrong.

I'm self taught and work with many "BSc in computer science" and several of them will look at my solutions to problems and go "woah you went all CS on us, this is gonna take my some time to review" and I'm like "dude it's just a graph".

Point being: you need CS knowledge to be good at CS, a degree is not a requirement and often not sufficient.

Collapse
 
_hs_ profile image
HS

A lot of them have BSc in something else, a lot of them have no BSc at all. So it's not unpopular it's in fact untrue. Although I have BSc in IT which is a bit different, most of my knowledge comes from work or learning by myself in spare time. Now I know more people without BSc in computer science that are way better than me.
It's not defending something it's just a good argument. Don't remember that many popular developers that had BSc while becoming famous. basically I want to argue that you can learn outside of university.

Collapse
 
jkhaui profile image
Jordy Lee • Edited

Yes I think that's definitely the growing sentiment these days, that CS degrees (and many other degrees to be fair) are becoming less necessary for one to be considered "good" in one's field.

The two main reasons I believe are responsible:
1) economic reasons: tertiary education costs have inflated to absolutely absurd levels (as a general observation, it also appears quality of teaching is declining). This leads to many people who want to learn CS-related topics, but aren't going to fork out $50k & 4 years to do so. Thus, the natural reaction is to self-teach.
2) It's taken far longer than expected, but the internet is finally providing the quality resources once monopolised by universities. Furthermore, web-based innovation is now occurring so rapidly that unis can't even keep up with the latest developments and industry practices.

These 2 trends combined together mean that a developers skill-level is becoming less coupled from their credentials and is instead more a result of one's drive, resourcefulness, and practical experience.

Collapse
 
dwilmer profile image
Daan Wilmer

I think that having a BSc (and MSc, now that I'm bragging) in computer science made me a better developer, but I don't see how the ability to prove the NP-completeness of a problem is a requirement for being a good developer.

Collapse
 
loujaybee profile image
Lou (🚀 Open Up The Cloud ☁️)

I'm not sure that's an unpopular opinion today.

Collapse
 
jappyjan profile image
jappyjan

I agree. It's not unpopular but just wrong...

Collapse
 
tobiassn profile image
Tobias SN

You don’t always need to write tests.

Collapse
 
patarapolw profile image
Pacharapol Withayasakpunt

I do think we should write pre-Pull Request / pre-Merge tests, though. I saw this a lot with GitHub Actions.

Pre-commit is optional, but should be done.

Collapse
 
fultonbrowne profile image
Fulton Browne

Native mobile development makes sense.

Collapse
 
sylvaingirod profile image
Sylvain GIROD

Are you telling that my job is an unpopular opinion ?
this makes me sad :(

Collapse
 
fultonbrowne profile image
Fulton Browne

Makes me sad to, there is so many tasks that are just better on native.

Collapse
 
singh1114 profile image
Ranvir Singh

Using

from whatever import that( Atleast Python)

is better than

import that from whatever.

Collapse
 
adam_cyclones profile image
Adam Crockett 🌀 • Edited

What about:

use whatever::{that, and_this};

Bonus pts for guessing the language.

Collapse
 
geoxion profile image
Dion Dokter • Edited

Rust!
And maybe typescript too...

Thread Thread
 
adam_cyclones profile image
Adam Crockett 🌀

Arguably the most interesting module system out of any language, Rust, I don't have any prizes, but this gives me an idea for a post "guess the language".

♥️ Typescript as well, ♥️♥️ for Wasm bindgen TS and Rust it's so beautiful!

Thread Thread
 
geoxion profile image
Dion Dokter

Yeah, I love Rust! The module system just works. I've never had issues like the include hell with C and C++

Collapse
 
singh1114 profile image
Ranvir Singh

Anything which can help the IDE/ text editor to autocomplete.

Thread Thread
 
adam_cyclones profile image
Adam Crockett 🌀

That would be a language server and the AST.

Collapse
 
koresar profile image
Vasyl Boroviak

That's a popular opinion. 😀

Collapse
 
steveblue profile image
Stephen Belovarich • Edited

We've hit peak React.

Collapse
 
scott_yeatts profile image
Scott Yeatts

I would go farther... React is in the same place jQuery was circa 2009-2013.

Once something is so ubiquitous that it starts becoming synonymous with front-end programming, people start to think it is the cause of their problems. So they look for and build alternatives... Which is how we got the last decade of "Whack-A-Mole: Framework edition"

Collapse
 
jkhaui profile image
Jordy Lee

I'm interested to hear more as I haven't been in the industry for that long: do you have objective reasons for thinking React will go the way of jQuery, or are you basing it more on previous cycles of hype->obscurity?

My general thoughts are that just because something happened a certain way in the past, it doesn't necessarily mean it'll play out exactly the same way again (although it may, of course).

The only clear challenger to SPAs/React I currently see is WebAssembly. That would be a paradigm shift in the way that React was to jQuery. However, I think even WASM won't eat at React's market because WASM will typically be used for games (it'd be over-engineering for most other purposes).

The final piece I see is economic. The longer React remains in demand, the more companies and startups build their entire apps and tooling around it. With all these vested interests, it'll be extremely hard for a challenger to match React's ecosystem in the coming years.
Just my thoughts though, happy to be proven wrong

Thread Thread
 
scott_yeatts profile image
Scott Yeatts

First: SPAs and React are not synonymous. I do need to make clear that the SPA design pattern will probably never go out of fashion, but Angular, Vue and React (with the appropriate routing libraries added in) all provide a SPA experience.

I'm definitely basing my opinion on previous cycles, but there ARE objective reasons and parallels.

JQuery is still a powerful library that is still in use today (As we see in these comments). I feel certain that will hold true for React 10 years from now.

JQuery saw its "necessity" eroded by the evolution and adoption of its central features into the W3C spec. The things that forced you to need jQuery became native JS.

React is beginning to see that as well. Web Components eliminate the need for React as a means to separate concerns in your code. Just as document.querySelector and the DOMContentLoaded event replaced core jQuery functionality, you're starting to see Svelte and Stencil fill the component gap by offering solutions using spec-compliant web components (Stencil is WC first vs Svelte as an optional compile-target). You COULD do without either, but they give compile-time convenience and abstraction of boiler-plate that is impossible to ignore.

That's my biggest "objective" idea about React and the other current frameworks. The idea for these frameworks was born over 10 years ago with Angular. It was a reaction to jQuery and how, no matter how easily you could traverse the DOM, there was no way to create a simple custom HTML-tag that could easily import a new component. It wasn't part of the spec, so people created it. Now, a decade later, it IS part of the spec, but people really like the habits they've developed over the last decade haha.

That said: The EXACT same things about "economic" dominance have been said about JQuery, PHP, Java, C, FORTRAN, and a million other languages/frameworks. I just don't think it holds-up in the face of history is all. Just like there is a ton of work in the industry today and for many years to come in Java and PHP, I think React will see the same slow decline over the next decade that jQuery, Java and PHP have. (Note: Java's decline from number one by an astronomical margin to sometimes number 2 is STILL a decline... don't @me LOL)

That's just my (unpopular) read on the situation. I won't feel a bit sheepish if I look back on this post a decade from now and React is widening its dominance over the market and no one learns vanilla JS anymore haha. I just don't think its "necessity" now is anywhere near the same as it was in 2015 or even 2019, and that will cause a decline in use in the next few years as people start getting tired of using the new "hooks" or other FOTM they decide to introduce as a reaction to new innovation in the marketplace.

Thread Thread
 
jkhaui profile image
Jordy Lee

Thanks a lot for the great reply - that was very insightful and I definitely learned something. Particularly the part about web standards: I'd heard it before (how frameworks are basically a faster way to iterate with proposed web standards), but hearing it again helps me see the bigger picture.

I still think if we were to see a decline in React usage it would be a long way off. But your comments highlight the importance of diversifying one's skillset and keeping up-to-date with other technologies, so thanks for that

Thread Thread
 
steveblue profile image
Stephen Belovarich • Edited

Another reason React will decline is the baseless assumption that "DOM is slow". There will always be something faster that comes along.

Collapse
 
christopy profile image
Christopher Ribeiro

Material Design sucks!

Collapse
 
laurenclark profile image
Lauren Clark

Material Design absolutely sucks so much.

Collapse
 
micahlt profile image
Micah Lindley

I actually love MD, but it's a pain to work with on the frontend and it's very overused.

Collapse
 
gypsydave5 profile image
David Wickes

Continuous integration means integrating continuously.

Dependency injection means injecting dependencies.

Collapse
 
loujaybee profile image
Lou (🚀 Open Up The Cloud ☁️)

I'm very sad that "Continuous Integration" doesn't mean what it's supposed to mean anymore. "Of course we do CI, we have Jenkins".

Collapse
 
danmt profile image
Daniel Marin

RxJs can be used in the backend. And it's DOPE.

Collapse
 
_hs_ profile image
HS

RxJava is quite popular why wouldn't RxJS be? Because node supports async/await? I gotta know why people dislike Rx

Collapse
 
danmt profile image
Daniel Marin

It actually is popular, its heavily used in NestJs development. I think people dont dislike it, many havent tried it

Thread Thread
 
_hs_ profile image
HS

Why have you listed it as unpopular then? Don't get it sorry

Thread Thread
 
danmt profile image
Daniel Marin

I believe it's a growing trend. Ive told other devs about this and seems to be unpopular for some.

Thread Thread
 
jkhaui profile image
Jordy Lee • Edited

I've only ever tried RxJS with a React app and I loved it. The issue was I felt it's something with a lot of potential, but hard to find a concrete use-case for. Like I'm walking around with a hammer and everything looks like a nail. Or maybe I just don't properly understand it.

Could you provide some innovative uses of RxJS? Backend or frontend. RxDB is something that looks cool, basically like Firebase

Thread Thread
 
danmt profile image
Daniel Marin

For the backend I use it for sockets and event driven patterns like messaging, cqrs.

For the frontend I use it almost everywhere lol but I love it for state management, if you do React you probably know Redux, there's a library named redux-observable that implements Redux powered by RxJS.

If you asked me I use RxJS for almost any asynchronous programming task, it's more declarative and has cancellation, something that promises don't.

Thread Thread
 
koresar profile image
Vasyl Boroviak

Huh. Interesting.

From now on I'm going to explain what Vuex is like this : Redux+RxJS

Collapse
 
jappyjan profile image
jappyjan

I kinda like the idea... Tell me more!

Collapse
 
danmt profile image
Daniel Marin

Get ready to get your mind blown. rxjs-dev.firebaseapp.com/api/webSo...

Collapse
 
_hs_ profile image
HS

Java is OK.
Object oriented is fine too.
Functional programming is not great at everything.
Kafka is not solution to everything.
Microservices are not faster but more scalabe (there's a huge difference).
Microservices don't decouple your code, you (developers) do.
Coupling is not the biggest issue...
TDD won't make your software better, better UX will.
...
There's a lot of them, and there's a lot of them in previous comments :D.

Collapse
 
daniel13rady profile image
Daniel Brady

Communication is just as important as code.

Collapse
 
patarapolw profile image
Pacharapol Withayasakpunt

Also, visionary and design.

Collapse
 
adam_cyclones profile image
Adam Crockett 🌀

It's more important.

Collapse
 
michaelcurrin profile image
Michael Currin

Turning Javascript into a backend language so you "only have to learn one language" was unnecessary.

Collapse
 
koresar profile image
Vasyl Boroviak

Yes. And in fact Ryan choose JS simply because it was the only language at the time with an event loop. Pure coincidence.

Collapse
 
michaelcurrin profile image
Michael Currin

An event loop was added to NodeJS to handle concurrency as it was the only viable option - not a strength.

Other languages have the freedom to use multi threading instead for concurrency.

I wrote a post about this.

dev.to/michaelcurrin/javascript-s-...

Thread Thread
 
koresar profile image
Vasyl Boroviak

nope. Event loop wasn't added to node. NodeJS was was born because all other runtimes had no event loops.

Collapse
 
penelope_zone profile image
Penelope Phippen

Ruby on Rails remains the fastest way to build a usable web application.

Collapse
 
joshpuetz profile image
Josh Puetz

Beat me to it!

Collapse
 
tasmto profile image
Tashinga

As long as it works... it's fine.

Collapse
 
daniel13rady profile image
Daniel Brady • Edited

What context do you have in mind?

I think "it's fine if it works" makes sense for rapid prototyping, proof-of-concepts, and other "throw-away" code, but when it comes to code that will be shipped and therefore maintained, I lean towards "good enough to work is not good enough to ship."

Collapse
 
tasmto profile image
Tashinga

True, though I meant more for personal growth etc... and not business needs because there always seems to be a pressure to do better or write less with "more advanced" languages. A carousel is a carousel regardless of what tech was used and how it was hacked together and I think that you should be proud regardless. I'm probably wrong though...

Good to see developers and the like still being practical as ever though 😂😂😂

Collapse
 
karfau profile image
Christian Bewernitz

Fully agree, since the statement without context could also be applied to social injustice that just works for most people.

Thread Thread
 
tasmto profile image
Tashinga

😂😂😂 Making vague statements keeps me out of trouble 😂😂😂

Collapse
 
adam_cyclones profile image
Adam Crockett 🌀

As long as a questionable bit of code has decent tests I'd let it in the codebase.

Collapse
 
marcosvafilho profile image
Marcos Filho

DHH is right regarding monolith apps.

Collapse
 
daniel13rady profile image
Daniel Brady

What is DHH?

Collapse
 
loujaybee profile image
Lou (🚀 Open Up The Cloud ☁️)

David Heinemeier Hansson, creator of Rails.

en.wikipedia.org/wiki/David_Heinem...

Thread Thread
 
ben profile image
Ben Halpern

I don't try to get into debates because you can go in circles, but we've largely subscribed to "majestic monolith" ideology.

m.signalvnoise.com/the-majestic-mo...

Collapse
 
s_aitchison profile image
Suzanne Aitchison

Ooh I like this! But don't think I could inflict that on anyone 🙈

Collapse
 
jappyjan profile image
jappyjan

That's not unpopular. That's just the truth ...

Collapse
 
patarapolw profile image
Pacharapol Withayasakpunt • Edited
  • It is best to decouple frontend and backend, even in Desktop app or Mobile app; and the most stable / mature solution for frontend is JavaScript.
  • There is frontend in Desktop and Mobile environment.
Collapse
 
nickytonline profile image
Nick Taylor • Edited

Not necessarily unpopular in the traditional sense, but things are not always black and white. There's the "it depends" opinion that can be lost in the cracks or I'm just hypothesizing here, but maybe some developers do not want to take the "it depends" stance.

For example, keep it DRY. A lot of discussion has been happening around this the past few days. These are just some Tweets I found

I'll leave you with Jay Phelps Tweet because it made me laugh. We got a whole lot in the toolbelt. 😉

And in the end, all the above leads us to healthy discussions hopefully, like finding the right abstraction which is a good thing.

Collapse
 
bcowley1220 profile image
Brendan Cowley

Here's 2...

  1. Most "full stack" devs I've met/worked with can't write pure vanilla frond end (HTML, CSS, JS) correctly.
  2. Build your website in pure languages until you run into something you can't do without a library or framework.
Collapse
 
dandv profile image
Dan Dascalescu • Edited

#2 is how I (re)learned the hard way why reinventing the wheel does suck, esp. when the wheel is authentication, caching, and keeping data in sync between the server and clients.

Collapse
 
bcowley1220 profile image
Brendan Cowley

Right! But there is a startk difference between bringing in a few libraries to help out and loading in a framework to only use a fraction of the functionality.

Collapse
 
hamishdickson profile image
Hamish Dickson

You almost certainly don't need a big data solution like Spark - in fact you can probably run that "big data" process in memory with a hash table ... And you can probably do it on your laptop while also running Slack

Collapse
 
patarapolw profile image
Pacharapol Withayasakpunt • Edited

To me, TypeScript is just like Babel JavaScript with typing. You can always cast to any, or // @ts-ignore. And, the configuration with tsconfig.json is relatively easy. Nowadays, I use ESLint as well, so it gets a little complex.

It is the best "dynamic" typing language IMO, but not strict enough to compare with static typing. Still, being partly dynamic can be massively helpful.

Collapse
 
loujaybee profile image
Lou (🚀 Open Up The Cloud ☁️)

Engineers should be expected to spend a greater percentage of their time doing analysis, design, UX and product work.

Collapse
 
patarapolw profile image
Pacharapol Withayasakpunt

Indentation-based language isn't bad. That is why Markdown is popular. I even suggest this.

Only needed to be fixed by linting rules.

Collapse
 
stephanie profile image
Stephanie Handsteiner • Edited

I agree with your opinion on Safari as it just integrates best with macOS (UI, performance), would be very cool by Apple if they'd pump up the DevTools though as regarding that nothing beats Firefox (for now).

My unpopular one: 99% of all websites can be done with HTML, CSS and a bit of Vanilla JS.

Collapse
 
pjcalvo profile image
Pablo Calvo

BDD (behavior driven dev..) is totally mis-used and writting tests in GHERKIN style makes no sense.

** Specially if no business people are looking at the code at all

Collapse
 
gypsydave5 profile image
David Wickes

Yes you can 😁 - think of it as a forum.

Collapse
 
mousetail profile image
Maurits van Riezen

'Cloud' hosting is inferior to a standard VPS for most users

Collapse
 
patarapolw profile image
Pacharapol Withayasakpunt

Why? Got a blog or video to explain?

Also, what is VPS and how much does it cost?

For beginners dev, hosting shouldn't cost a penny.

Collapse
 
mousetail profile image
Maurits van Riezen

VPS stands for virtual private server. It is basically just a computer with certain specs you have full controll over. This means you can host anything on it, a website, a game server, mine bitcoins, whatever. I have one for just €5 a month, though the specs are not that great.

When I say cloud, I am referring to the services offered by Google or Amazon. The main difference is the "pay-for-what-you-use" policy, instead of a fixed price per computer you pay for the amount of processing power you use. The dynamic scaling ususally needs to be done with some API which leads to vendor lock-in, plus if you use a bit more in a month it actually quickly gets more expensive than a VPS with similar specs.

I agree for beginners you shouldn't by either, better to use GitHub pages, Heroku, or PythonAnywhere. However, if you need non-trivial processing power or a custom domain or anything outside the limitations of those services, get a VPS.

Also, don't get shared hosting. It's barely cheaper but usually you are restricted to PHP and when you need anything that requires root you have to go via customer support. The only advantage is that you don't have to set up email yourself.

Collapse
 
abhinavmir profile image
abhinav the builder
  1. Using CMS and Wordpress-esque solutions are OKAY.
  2. No one really knows why they need NoSQL in my sample space. No one has justified it well.
  3. Coffee is an overrated developer drink. Tea is better. Beers are the best.
Collapse
 
ashoutinthevoid profile image
Full Name

I have no qualms with TypeScript, but I'll admit i tilted a bit when i interviewed a .net dev whose reasons for using Typescript amounted to "i dont want to learn anything beyond classical inheritance and imperative programming".

Typing options are a great addition to js, it just saddens me when they're used in place of learning the language and the paradigms it offers.

Collapse
 
weeb profile image
Patrik Kiss

Jquery is an awesome JS framework even in 2020

Collapse
 
pavelloz profile image
Paweł Kowalski

jquery is not a framework, its a library of helpers ;)

Collapse
 
adam_cyclones profile image
Adam Crockett 🌀

I can't name another framework that has had such a profound impact on my career, I will give you that.

Collapse
 
zakwillis profile image
zakwillis

Jquery is still bloody amazing. What it set out to do was ensure compatibility across browsers. Doesn't mean to say certain features are not outdated, but to sit there and criticise is juvenile.

Collapse
 
dwd profile image
Dave Cridland

Don't forget to do tests for the tests.

Collapse
 
mendoza profile image
David Mendoza (He/Him)

unit testing can sometimes be overlooked... :v <3

Collapse
 
jdmedlock profile image
Jim Medlock

There are apps that are totally bug-free. Reality says the bug just hasn't been found yet

 
raghavmisra profile image
Raghav Misra

I could, use <form> and make the magic happen on your backend/server.

Collapse
 
etampro profile image
Edward Tam

You don't need to pick between development time and quality

Collapse
 
markoshiva profile image
Marko Shiva

FLOSS is most important product delivery and development method.
Also Free Open Hardware is important for development of science and different communities.

Its not about few rich guys accepting an idea and investing into it, but its about a lot of poor and rich people working on for them important ideas in their own communities.

Sorry its a bit long comment but that are two most important issues I think are unpopular still if you look at whole industry at large.

Collapse
 
stereoplegic profile image
Mike Bybee • Edited

1a. You learn little to nothing about a developer candidate through live coding/whiteboarding challenges (except maybe that recent CS/boot camp grads and job hoppers do better at them than devs who actually solve real world problems on a daily basis); meanwhile, they learn a great deal about you and your company if they're paying attention (none of it good, e.g. "I'm smarter than you" attitude, micromanaging culture).

1b. You're more likely to detect BS from a dev candidate if you have them at ease in an interview, particularly the first technical round (conversational, trading "war stories," etc.).

1c. A take home code challenge, followed by code review interview, will actually teach you what you were trying to learn in the live coding challenge interview (by making them justify their decisions, even if - also unpopular - they swiped code from some repo, Stack Overflow etc.), without making you and your company look like micromanaging dicks in the process.

Collapse
 
anonymouse profile image
Anonymouse • Edited
  1. Single Page Applications are an artifact of over engineering, faux productivity and large tech companies biding for mind share in the developer ecosystem. SPAs are uncalled for 99.9% of the time.

  2. "Modern" web development is done by using complexity to deal with complexity. Have an issue with your build tool? Create or use a newer build tool. Can't handle REST for some reason? Try GraphQL or gRPC, or another large company backed protocol. What could possibly go wrong?

  3. "Modern" web development is misleading and toxic. It implies the older way of building web applications are relics of the past when a vast majority of the web and current day development is done using the older methods. However, the term "Modern" is a great way for companies to market and sell their SPA frameworks to young developers and rope them in while promoting their brand.

Collapse
 
tfbiii profile image
Fred Buecker

Rumor has it they are moving to a Chromium base code?

Collapse
 
vladonemo profile image
Vladimir Nemergut

Worrying about performance to early can be unnecessarily expensive.

Collapse
 
artskeem profile image
Ben Edwards

Frameworks are double edged and not good for developers also they are slow and the best way they could make up for the lack of crappy coding is to push some stupid idea of materialization that is some how trendy to show what the page may look like before it's loaded people are so lost

Collapse
 
deaddoctor profile image
deaddoctor

especially the mobile version.

Collapse
 
tylerlwsmith profile image
Tyler Smith

Squarespace would have been a great solution for 80% of the sites I’ve ever coded and it would served the end client better for substantially less money. The agencies I work with love a good up-sell though: WordPress, custom design and a custom coded theme it is.

Also, tech is fun but we’re kind of paid to ruin the world.

Collapse
 
krkd profile image
krkd

In a decade from now, our current, continued adding of more and more management tools, frameworks and abstraction layers on top of existing technologies will be considered one of our biggest mistakes & main causes for a huge brain drain in the entire technology sector.

Collapse
 
baukereg profile image
Bauke Regnerus

Macromedia Flash was awesome!

 
raghavmisra profile image
Raghav Misra

Of course, I'd never do it in practice (I'd judge anyone who would). I was only trying to prove the unpopular opinion. :D

Thread Thread
 
gypsydave5 profile image
David Wickes

I really recommend both of you disabling JS in your browser and opening Gmail up to see what can be done.

Thread Thread
 
raghavmisra profile image
Raghav Misra

Exactly!

Collapse
 
chickenblood profile image
Ian Wilkinson

Kotlin == Swift minus a couple of features.

Collapse
 
loujaybee profile image
Lou (🚀 Open Up The Cloud ☁️)

Software branching is harmful.

Collapse
 
adam_cyclones profile image
Adam Crockett 🌀

JavaScript's const was a mistake.

Collapse
 
lbeul profile image
Louis

Why do you think so?

Collapse
 
adam_cyclones profile image
Adam Crockett 🌀

Because everything should have been made immutable by default, let should have been const and var should have been let.

Collapse
 
cybersh4dow profile image
CYBER SH4DOW

Reactive programming and especially RxJS is overrated.

Collapse
 
ca55idy profile image
ca55idy • Edited

The Spring framework isn't a silver java bullet

Collapse
 
kbariotis profile image
Kostas Bariotis

Always release on Fridays. If you end up working on the weekend, spend 5 minutes reverting your release and lots of hours to increase your trust in the system.

Collapse
 
varoman profile image
varo manukyan

Simplicity over DRY. This may be popular though

Collapse
 
piq9117 profile image
Ken Aguilar

Your beloved language, tech stack, etc is useless if the user cannot use it or has a hard time using it.

Collapse
 
geirawsm profile image
geirawsm

When I code, I don't like using what I consider "bloated" IDE's like VSCode. I like Sublime Text3 with Anaconda plugin for linting and PEP-warnings.

Collapse
 
lbeul profile image
Louis

It's okay to not use the terminal or command line for every fucking task possible.

Collapse
 
diek profile image
diek

I like ts a lot, specially with a high configuration of tslint when the team are huge. It never where so easy to team code.

Collapse
 
bhupesh profile image
Bhupesh Varshney 👾

Not every back-end with JavaScript is good

Collapse
 
ypedroo profile image
Ynoa Pedro

Windows is now a great SO for software development

Collapse
 
laurenclark profile image
Lauren Clark

LESS should die

Collapse
 
chris_beef profile image
Chris B

Tailwind css is only slightly better than online styles 😜

Collapse
 
dansilcox profile image
Dan Silcox

PHP is ok sometimes when you have your eyes closed 🤣

Collapse
 
daniel13rady profile image
Daniel Brady

I've never used PHP: should I spend a weekend diving in?

Collapse
 
dansilcox profile image
Dan Silcox

It’s always good to learn something new :) and PHP isn’t going anywhere fast... zend framework is good, or symfony - laravel is basically ‘php on rails’ and very popular in the marketplace, bref is a framework/toolkit for serverless PHP with AWS lambda - phptherightway.com and the php FIG are good places to look for coding standards, how you should write things etc (as PHP will let you do things in a lot of ways that can lead to security, performance and code readability/maintainability issues if you’re not careful!)

Collapse
 
karfau profile image
Christian Bewernitz

If you can do that with closed eyes ;)

Collapse
 
safijari profile image
Jariullah Safi

Developers use classes as a crutch far too often

Collapse
 
fnh profile image
Fabian Holzer

The format of user stories is a terrible way to write a specification.

Collapse
 
elmuerte profile image
Michiel Hendriks

NodeJS is the new PHP.

Collapse
 
felipperegazio profile image
Felippe Regazio • Edited

Spending some time reading the comments here. Think i need some popcorn now

Collapse
 
napicella profile image
Nicola Apicella

A SQL database and few compute nodes is all you need to build 99% of the services out there.

Collapse
 
patnikrishna profile image
Krishna Patni

White boarding interviews are a waste of time

Collapse
 
dinaamingad profile image
Dina Amin Gad

Agile became a burden and an overload instead of a helping methodology

Collapse
 
christopy profile image
Christopher Ribeiro

Just use a pre processor

Collapse
 
pavlosisaris profile image
Paul Isaris

Having soft skills is more important than coding skills.

 
daniel13rady profile image
Daniel Brady

Totally agree 💯 I think one of the hardest parts is keeping a balance between them.

Thread Thread
 
tasmto profile image
Tashinga

True; true...

Collapse
 
joshuaburke profile image
Dangeranger

Duplicate code is not the worst sin in software.

sandimetz.com/blog/2016/1/20/the-w...
overreacted.io/goodbye-clean-code/

Collapse
 
jakeprins profile image
Jake Prins

Go is overhyped

Collapse
 
chandra profile image
Chandra Prakash Tiwari

Noone can be a master of all technologies.

Collapse
 
saschadev profile image
Der Sascha

"Testing ist not neccesary"

Collapse
 
steelwolf180 profile image
Max Ong Zong Bao

We are still waiting for things to build after so many years. Docker building..... 1 hour later.

Collapse
 
jvarness profile image
Jake Varness

I feel so meh about TypeScript lol.

Collapse
 
pavelloz profile image
Paweł Kowalski • Edited

DRY is overused.
KISS is underused.

Collapse
 
databasesponge profile image
MetaDave 🇪🇺

A relational database is the fastest and most robust part of most web applications.

Collapse
 
quii profile image
Chris James

People who type "CI/CD" usually don't understand what CI and CD mean.

Collapse
 
artskeem profile image
Ben Edwards

My bads how about web apps are
better more efficient than apple and Android apps and they can access everything a native app can - 0_o

Collapse
 
wintermew profile image
Clément Gamé

Traditional RDBMs might actually be the best way to store and manipulate your data..

Collapse
 
lbeul profile image
Louis

Blockchain is just regarded "promising" because there's hell a lot of money involved - it isn't that innovative at all.

Collapse
 
koresar profile image
Vasyl Boroviak

I do 🤣

Collapse
 
csorbamatyi profile image
Matyi Csorba

If you have a hammer (like React), not everything is a nail.

Collapse
 
lbeul profile image
Louis

If you get blamed for using npm packages without knowing how they work under the hood, then why the hell would you use them in the first place?

Collapse
 
namchee profile image
Cristopher

Unit testing private functions is a waste of time

Collapse
 
sakshatshinde profile image
Sakshat

There will never be a "best" language. Ever. No not even Python.

Collapse
 
adam_cyclones profile image
Adam Crockett 🌀

Lua is a valuable programming language that should not feature in top 10 worst programming languages of year X unjustly.

Collapse
 
christopy profile image
Christopher Ribeiro

Functional languages are sexy

Collapse
 
maxart2501 profile image
Massimo Artizzu

Vertical centering things in CSS is actually easy.

Collapse
 
tonymet profile image
Tony Metzidis

Compared to traditional software development platforms e.g. Cocoa, .Net -- the web (even with frameworks) is a very poor substitute.

Collapse
 
mcsh profile image
Sajjad Heydari

Building abstraction on top of abstraction is not always good.

OR

Zero cost abstraction is just a myth

Collapse
 
lukegarrigan profile image
Luke Garrigan

Comments are an excuse for writing unreadable code.

Collapse
 
ganonbit profile image
Andrew Reese

TDD in an Digital Agency setting is rarely realistic and usually too many billed hours wasted that the client doesn't give a shit about.

Collapse
 
loufranco profile image
Lou Franco

Agreed. There are times that tech debt is appropriate.

 
denisinvader profile image
Mikhail Panichev

It becomes less optional when it turns into a standard

I mean, almost every popular project (package) use it and even I really don't like it, I can't ignore ts anymore

Collapse
 
iamvp7 profile image
Viswaprasath

Learn to debug is waste of time.

Collapse
 
jvarness profile image
Jake Varness

IE is an underrated desktop browser.

🤣🤣🤣

Collapse
 
jeresuikkila profile image
Jere Suikkila

Slack is good for productivity

Collapse
 
jamescollier7 profile image
James Collier

I think jQuery is great and put it on every project I build.

Collapse
 
jakeprins profile image
Jake Prins

I miss jquery

Collapse
 
emceeaich profile image
Emma Humphries

P3 without a schedule is WONTFIX.

Collapse
 
dwd profile image
Dave Cridland

Encryption does not solve problems; it moves problems. Sometimes the problem is moved to a worse place.

Collapse
 
abdullahdibas profile image
Abdullah Di'bas

Trying to learn every new technology makes you overwhelmed, and distracted from learning what you actually need, or mastering any.

Collapse
 
andevr profile image
drew

php is dead?

Collapse
 
pedro2911 profile image
pedro2911

The MCV is a shit, only is good in java in other language code is any feature, the people only adapted the concept but it isn't the same

Collapse
 
alohci profile image
Nicholas Stimpson • Edited
  • CSS is easy.
  • Modularity is not an unalloyed good thing.
Collapse
 
bigab profile image
Adam L Barrett

Cycle.js is actually a brilliant JS framework. Almost perfect in fact.

Collapse
 
dwilmer profile image
Daan Wilmer

You don't need to learn any git commands by heart. Just use a decent GUI instead.

Collapse
 
alexkondov profile image
Alex Kondov

Monolithic architecture is actually really good for most cases.

Collapse
 
vidamrr profile image
Marcos Rivas

jQuery is still present in more websites than React, Angular, etc.

Collapse
 
grsahil20 profile image
Sahil

It's getting impossible for me to get over RubyOnRails. Love for life 😍

Collapse
 
sushanthmlore profile image
Sushanth M

In most places,a CRM and other COTS tool configurators will get paid more than developers who can write good code.

Collapse
 
stephengoldberg profile image
Stephen Goldberg

ORMs are awful.

Collapse
 
koresar profile image
Vasyl Boroviak

None implements REST API according to the specs. REST API is harmful to developers and should go away.

Collapse
 
bugsysailor profile image
Bugsy Sailor

It's O.K. to PHP.

Collapse
 
pitometsu profile image
Yuriy Pitomets

OOP is a good conception to build software.

Collapse
 
pitometsu profile image
Yuriy Pitomets

DevOps is role/profession, not a practice.