
The Real Dark Web - skilled
https://www.sonniesedge.net/posts/real-dark-web/
======
ivanhoe
Interesting observation, but author's analysis is a way off IMHO. I use sass
not because I'm "unprivileged" or there're some special legacy requirements -
I use it because it does the job wonderfully and I don't really need to mix
css with js for the type of projects that I do. Speaking of observations, most
of devs that I worked with who pushed for CSS-in-JS were really either newbies
who like to play with new stuff or the folks who were not that good with css
and sass, and then they tend to reinvent the wheel by using very little, very
basic css and lots of js to achieve the same effects that can be handled in
pure css much more elegantly. Obviously this is purely anecdotal, I totally
understand that for complex animations or in big systems where modularity is
crucial css-in-js makes a lot of sense. As with any tool, you need to choose
the right one for your particular project.

~~~
wayneftw
CSS Modules give all of the benefits of CSS-in-JS plus the junior devs won’t
be tempted to put 300 lines of styles in the same file as the view component.

And you can still use SASS. With those benefits, I don’t see any reason to use
CSS-in-JS over CSS Modules in any project.

~~~
ivanhoe
Css modules automate the process and it's totally OK approach, but with a bit
of discipline imposed on the team members you can achieve the same effect
manually and avoid the weird looking foo_532xy157678 classes. You just need a
proper selector naming convention in place, and then make everyone stick to
it. It's not a rocket science really, you just add a unique class (usually
module's name works just fine here) to every module's root element, and then
in sass you wrap everything related to that module with that class and that's
it, it's namespaced... add some BEM to the mix and you've got yourself fairly
easy to understand and maintain sass/css with zero overhead... obviously takes
some practice to unlearn yourself from using overly general selectors, but
it's like learning to write testable code, you quickly learn to pay attention
to bad practices...

------
wrs
I am reminded of a conversation I once had at Microsoft about some upcoming
rocket science technology that wouldn't ship version 1 for a year or two —
WPF? DAO? some such thing — and one of the managers referred dismissively to
"legacy code". To which one of the others present responded, "to be clear, by
'legacy code' you're referring to _all existing code_?"

I'd also like to point out that in my experience actual "engineers" tend to
pick the most boring possible technology to do something. Because it probably
works. (The really interesting jobs are where even the most boring possible
technology to accomplish it doesn't exist yet.)

~~~
tempguy9999
> ...actual "engineers" tend to pick the most boring possible technology to do
> something. Because it probably works.

That's because decent engineers understand that their job is not tech but
business - tech is only a means to an end, and that end is to help business
thrive.

I've been in the opposite situation of a bad dev pushing every big-data tech
he took a fancy to, and the management not being clue-ful enough to understand
where it was leading them. Big data frameworks are expensive in every way, and
become heavy negative cost if the data is not big.

------
emsy
The headline (if it gets changed: "The real dark web") is terrible and
clickbaity.

~~~
octosphere
I clicked because I thought it would talk about the actual Dark Web[0] but
instead I saw a discussion about how many people use a CSS abstraction layer
called Sass

[0]
[https://en.wikipedia.org/wiki/Dark_web](https://en.wikipedia.org/wiki/Dark_web)

------
plutonorm
Until I learned I'm behind the curve.

Look, I think CSS-in-JS is a great idea. It's cool, in fact I remember
suggesting something similar to my lead dev as a newbie 12 years ago. He
basically told me I was an idiot.

My point is you guys are getting fired up over things that are just variations
on a theme. First it was mix presentation and logic. Then it was separate it
all, html, css, js. Then it was put some restricted js functionality in html.
Then it was f __* it lets just do it js.

Just... yawn. Think bigger.

~~~
tomxor
> Just... yawn. Think bigger.

More specifically: Think subjectively, think what's relevant to your current
context...

Most important, is to lose the "everything is a nail attitude" and instead
find the solution that fits best for your current problem. It's very difficult
to make unbiased well balanced decisions to use a solution when starting from
the solutions perspective. It's better to start with the problem first and
stop focusing too much on tools, methods, patterns etc. i.e be invested in
your problem not some solution, you don't owe them anything.

None of these ideas e.g CSS-in-JS are absolutely good or bad, they can be good
in one context and bad in another, however very often the distribution is such
that they are bad to _generally_ apply - programming patterns being the worst
and most often abused case of things that should not be generally applied and
which are.

It's ok to talk about new ideas, it's not ok to forcefully apply the latest
idea to everything you touch like it's your new religion.

------
gregimba
One thing I've noticed is as I grow older I start to choose older and more
mature stable technologies. Is that a normal progression of for developers?

~~~
richardw
Depends on the task. I've used more new stuff in the last few years than the
previous decade and I'm 46. But I fully appreciate the tradeoffs.

No shiny objects is the rule. But break it if it's an obvious (necessary?)
improvement and you know how to inject new technologies safely.

When you only have one principle to worry about, life is simple. More than
one, you're always trading something off.

------
gitgud
Side note: I like the way that this site uses _twitter mentions /favorites_ to
display the comments below the article, looks seamless and a low barrier to
get feedback.

~~~
klez
Those are not simple Twitter mentions/favorites. Those are Webmentions[0].

The author is probably using a bridge that converts tweets to Webmentions, but
if you submit a Webmention from your own blog it will appear there as well,
without needing Twitter in the middle. That's the beauty of it :)

[0] [https://indieweb.org/Webmention](https://indieweb.org/Webmention)

~~~
southerntofu
It probably makes use of the [https://brid.gy](https://brid.gy) gateway to
display content from silos such as Twitter.

This is an intended usecase of the indieweb, see
[https://indieweb.org/backfeed](https://indieweb.org/backfeed)

Implementing webmentions on your website is not hard. But if you don't want to
selfhost your own webmention endpoint (or can't), take a look at webmention.io
(that plays well with bridgy) to host your webmentions and expose a JSON API.
This API allows you for example, when a building a page, to query the API for
webmentions related to this piece of content so you can display those
interactions nicely as on the original article linked.

------
tomxor
> Most web developers are working on very "boring" teams. They're producing
> workhorse products that serve the organisation needs. They aren't trying to
> innovate.

This analysis is bogus, it assumes innovation is defined by bleeding edge
technology and tooling... specific technology or tooling does not define or
even positively correlate with innovation of the project itself.

In fact I would go as far as saying it potentially has a negative correlation
- bleeding edge tooling or technology can be especially distracting unless the
difference is fundamentally relevant - when I pick the simplest most boring
tool it's often because they are well understood, mature and minimize the time
I spent focusing on them, unlike bleeding edge things that pull me away from
the core problem or thing I am trying to "innovate". These are not mutually
exclusive either, you might have some people working on putting together build
pipelines who are very "noisy" about up and coming technologies that can
simplify or improve their systems somehow... and completely separately some
other people who write the code that goes through that pipeline and may or may
not care about it's exact makeup, they also may or may not be "noisy" about
the patterns or strategies they came up with to innovate in their problem
areas.

While it is true there is a visible and invisible part of the world of
development (not everyone blogs), the analogy completely breaks down when you
try to infer things from that observed absence of information because people
are not amorphous matter. People are the complete entropic opposite, they are
highly animate high entropy matter exhibitting some of the most complex
behavior known - Attempting to infer a single quality of one of their most
complex and intentional behaviors from a lack of information is not going to
work... even for dark matter we only dare to infer extremely generic things
such as quantity.

------
nlawalker
See also
[https://www.hanselman.com/blog/DarkMatterDevelopersTheUnseen...](https://www.hanselman.com/blog/DarkMatterDevelopersTheUnseen99.aspx).

EDIT: original comment sounded like I was implying plagiarism, which was not
my intent.

------
AdeptusAquinas
The credibility of the so-called 1% ended with the Leftpad crisis.

------
thinkloop
> Dark matter permeates the universe. In fact it does more than permeate. It
> is the universe. 85% percent of everything that exists is actually dark
> matter. We can't detect it, we can't see it. But it's there.

Dark matter is so cringy and one of the most embarrassing moves from physics.
Instead of admitting there is a massive flaw in the models, they decided to
name it.

~~~
namanyayg
What "massive flaw"? The model works for most uses. Why can't there be matter
that only interacts with gravity?

Do we have any explanation that makes sense without supposing the existing of
dark matter?

~~~
thinkloop
> Do we have any explanation that makes sense without supposing the existing
> of dark matter?

Why not just go with "God" /s? Being unable to explain things doesn't mean we
should pretend to invent some. It literally is, in this case, the name for
that which we cannot explain, without being forthright about it.

> The model works for most uses.

Newtonian physics also worked for 100% of cases for centuries.

The "massive flaw" is that a massive "85%" of the universe is composed of this
thing that our models can't explain and our solution was to name it.

~~~
namanyayg
Okay, so you think dark matter is unfeasible but a supreme creator makes more
sense to you. I was under the impression that I'll find some new knowledge of
rationality or physics, but thanks for sharing your views nonetheless.

~~~
thinkloop
My point was they're equally weak explanations, not that God was the worth
considering as an explanation. Added "/s" to clarify.

~~~
nxpnsv
It is not an explanation it’s a name for a phenomenon that no physicists will
tell you is fully understood.

------
z3t4
The business ppl eg. non-engineers are the ones who decide the tech stack.
This makes software choise hype driven and basically becomes a sales/marketing
process.

------
yenwel
I'm not sure if some of that innovation whithout prior knowledge of older tech
is really rediscovery or just plain theft of prior art.

------
mavster
i voted for and still use sass but inside vue/nuxt - i have no desired to
write css inside js, why? because I don't have time to relearn the wheel and I
choose vue over everything else because I get to write code faster, not just
css but html and javascript at the same time. I use the tools that work well
for me so I can move prototypes to production faster.

~~~
hdfbdtbcdg
The next step is to work with the tools that let your whole team work fast, on
board new members fast, etc...

------
3xblah
tl;dr rm hype

