Hacker Newsnew | past | comments | ask | show | jobs | submit | Francute's commentslogin

But you can achieve the same thing (1:1 style:class mappings without hidden structures) using other libraries, like the ones mentioned here; styled components and vanilla-extract. You can even achieve that natively with web components.

So, I truly agree with this blog post, and I even wanted to rant the same things showing that you should not compare tailwind against classic CSS stylesheets from 2010, but against how different solutions looks like using different tools the community seems to have thrown away or forgot.

And I know is not relevant to your comment, but I will add that "but you will have to maintain more files instead of just a single HTML file" is not a valid argument for me. If that were something good, then just put everything into a single giant server.<your_language> file + separated lib dependencies.

We want maintainable easy to follow and understand files. Having a clean html with no cluttering + intuitive CSS styles being applied where we expect them and looking exactly as we expect them while reading the html, is the big win for me, and Tailwind definitely does a step back on this, especially when other tools can achieve that. (Lastly, we have set multiple projects with different tools, and the amount of "wtf"s we've seen with tailwind is way higher than just styled components to give one example)

I agree that the only good thing Tailwind achieves, is setting a default convention on having a single config file where you can set everything that you will need on every design across all your html files


I think I don't fit in either of your groups.

I’m not against Tailwind, but I didn't used it yet because I struggle to see why it's a better approach compared to other options like Web Components or React Styled Components.

The biggest issue I have with Tailwind is how it clutters the HTML with a ton of utility classes making the HTML harder to read and maintain. Of course I see Tailwind being better than using large global CSS files with the classic CSS approach of naming html tags. But we do have ways where the CSS is scoped to a component without polluting the global namespace. Like Web Components and Styled Components. Both keep styles tied directly to the component (or more general, a specific group of html tags), making it easy to see which styles apply where.

And yes, with them there’s no need for global class names, without having to worry about unwanted side effects or clashes. If I remove a component, I also remove its associated styles without worrying about unused CSS being left behind since both are tied together. Plus, there’s no risk of one component's styles unintentionally affecting another (thanks to shadow DOMs).

I really value keeping HTML very short and readable by not mixing presentational styles directly in the markup. Tailwind’s approach, where the styling is all in the class attributes, makes the HTML feel cluttered, especially when you have long class lists on a single line, and GOD forbid you have actual class names to use there. It’s harder to understand what styles are applied at a glance since you cant even have it well indented, and it clearly reminds many reasons why we moved away from the inline style attribute in HTML in the first place. (Yes, we didn't left it for its limitations like pseudo classes and @media queries, they didn't even exist, we didn't add those new features because no one wanted to get back to those inline styling)

So, while I don’t hate Tailwind, I just don’t see the clear advantages over Web Components or Styled Components in terms of readability, maintainability, and separation of concerns, while I do have important unanswered important concerns about using it...

Yes, I've read the docs but never tried it out, I don't hate it, but I can't understand why I would choose it over other options. The fact of having a million classes in the middle of plain HTML makes them both unreadable for me.

And No, I don't like huge CSS files either, or the classic approach of using them. But it is hard for me to see why tailwind is a better approach than working with Web Components, or React with Styled components.

These two approaches allows me to not have to read presentational things in the middle of my html, and allow my html to be more clear and readable. I don't have to use CSS class names, it's easy to identify which CSS applies where, so, if you remove the component, you remove the CSS too, you don't end serving unused CSS rules. Each can have CSS not leaking to the global scope, and there is no risk on changing styles of another element...

So, there is no hate for me, but it is very hard for me to see the benefits of tailwind over these two approaches, and I really dislike the idea of having to read html elements with huge styling rules cluttering my html files, and worse, having all of them in a single line makin it hard to understand all the applied styling.

We left using style tag from HTML mostly for that reason, and not because of its current limitations (like not being able to use pseudo classes, media, etc)


> I’m not against Tailwind, but I didn't used it yet because I struggle to see why it's a better approach compared to other options like Web Components or React Styled Components.

> The biggest issue I have with Tailwind is how it clutters the HTML

You're 100% clearly in the first group. Maybe I shouldn't have said "hate" in that group, just people that don't like it or see its benefits.

> Like Web Components

That's a nice solution, but in practice as of today and relatively speaking: nobody is using them.

> and Styled Components

Except the performance is a lot worse. And you still have to come up with names for every single div that needs a minimal one line style.

And both of these solutions end up with huge CSS files. Huge CSS files are worse than having larger HTML markup, because CSS is a blocking resource and HTML is not.

> I really value keeping HTML very short and readable by not mixing presentational styles directly in the markup

People used to say this about React, they preferred their HTML separate from their JavaScript, all nice and clean. I'm now 150% sure you're in the first group.

> Yes, I've read the docs but never tried it out, I don't hate it, but I can't understand why I would choose it over other options. The fact of having a million classes in the middle of plain HTML makes them both unreadable for me.

Alright, now you've recognized it.

> These two approaches allows me to not have to read presentational things in the middle of my html, and allow my html to be more clear and readable.

That's a non issue. There are extensions that will just hide classnames. You're just blending your mind looking for reasosn to justify your "I don't like it".

I promise the day you use it in a real life project where you're working with > 3 other people you will understand it's benefits, and how having "large class lists" is a non-issue and a totally acceptable trade off over the practical benefits it provides. Both on performance of the resulting CSS and maintainability over a large period of time. And think in the insane amount of discussions you'll avoid regarding if we're calling this div "styledDivWrapper" or "WraperContent" or "CardWrapper" or ".card__item--dark". Not an issue if you work alone, but when working with others this becomes a real annoyance that tailwind completely removes.

Tailwind is not for your, don't use it.

Tailwind is not for purists and architecture philosophers.

Tailwind is for pragmatic people, working on real life projects within teams where they have to ship and spend less time philosophizing on the purity and beauty of things.


Issues like this are happening almost every 2 weeks. What has been happening to GitHub lately?


They are likely adding new features, like copilot and not investing enough to site reliability.

No changes - relatively easy to keep stable, as long as bugfixing is done.

Changes - new features = new bugs, new workloads.


Copilot has been out for over 2.5 years. They’re supposedly adding new features to “Copilot Next” but at this point copilot itself is pretty stable


If they add ipv6 support I’ll forgive them, but I lost hope a long time ago. It’s almost comical now.


Someone probably forgot to .gitignore node_modules


People who didn't jive with Microsoft management found new jobs...?


Sorry to be 'that guy', but it's "jibe."


Seems very pedantic considering that people have been saying jive since the 40s according to Merriam-Webster[1].

[1] https://www.merriam-webster.com/words-at-play/jive-jibe-gibe


Yes, but people haven't been using it incorrectly for long enough for it to be considered acceptable, by the very citation you've given:

> This does raise the question of why we don't enter this sense of jive, even though we have evidence of its use since the 1940s. [...] So far, neither jive nor gibe as substitutions for jibe has this kind of record [literally hundreds of years], but it seems possible that this use of jive will increase in the future, and if it does dictionaries will likely add it to the definition.


Apparently, many English speakers consider it to be acceptable, and have done so for more than half a century.


Lots of English speakers consider "could of" to be acceptable, and have similarly done so for a few decades now. That doesn't make them right ;-)


As a non-native english speaker, I didn't even know about jibe, while knowing about jive.


Hey, home', I can dig it. He ain't gonna lay no mo' big rap-up on you, man.

  [Subtitle: Yes, he is wrong for doing that]


Lay 'em down, and smack-em yack-em. COLD got to be!


Hey, you know what they say.


Not sorry enough, apparently.


An upvote to you, fellow pedant. We stand together.


Testing gpt4-ops?


Microsoft incompetence + DDoS ?


Microsoft.


HARD force yourself to close your laptop. Seriously. Then go for a walk just around your block, or go to the gym. Some activity that forces yourself to move


I will wide this question a little bit based on my own experience...

1. Some people report that they can have multiple conversations at the same time in their minds. I find that really hard to do. For example, if I simulate a conversation between two people in my mind, I can't easily make one interrupt the other (and make both to talk at the same time). Is this an easy task for you? (However, I can think on a song and put that as a background music while I'm talking without losing any thread)

2. About the comment in this blog of "I saw in TV and would wish that to be a thing", that kept me thinking; I'm not good at drawing, can you "draw" in your mind? (In my case, if I start with a face, I make the hair, then their eyes, then the nose, but I started to forgot how the hair was drawn. Can't keep my draw in my mind...)

3. Meanwhile, I do have experience coding, and I can make some pretty persistent "sequence & activity diagrams" in my mind. I've found myself using that kind of "diagrams" in my mind to drive the thinking of other people when I try to explain myself about an idea. Now I'm thinking that is not the best way to do it... But, Can you do this also pretty easily? It is possible to sense if the other person is able to do something in his mind that you can not reproduce?

4. So, my experience is coding, what about your own experiences? What can you do in your mind related to that activity? For example, do musicians here, able to make music in their minds while keeping/updating its sheet music? What about other roles?


The funny thing for me is that I met for first time this scalators on last month


Basically, before finishing school, I've decided that would be better to make that choice if I had real experience first. So, I've started working on both. 8 months later I figured that I loved working as a programmer with engineers and that was my decision. As a plus, one year later I enrolled myself in university and was easier for me than most of my mates.


Now start thinking on people living on rural areas outside first world countries... Lot of wasted talents...


I always wonder how much there actually is out there. It’s hard to say there’s such a thing as “raw potential” considering how much being successful depends on having parents who groom you for society.

I grew up around a lot of kids I personally believe were very smart or driven. But when your parents don’t instill a sense of working in a certain way or creating a career path with certain abstract goals - you just aren’t going to get optimal use for your potential.


> How can a self-learner without access to a university or professor check their work?

Their "work" means: Find a solution, AND then check it. So, not checking it by yourself is being lazy too.

Also, if you are learning; software like wolframalpha can help you too to check your solution. [Thanks, throwawaymath for recall this basic answer].

> I wouldn't want a beginner programmer writing "production ready" code without code review, so why should we expect a beginner math student to write error free proofs?

"Code Reviews" are for checking "how did the programmer solved that problem". On the other side; you know if some code is giving good or bad outputs by checking it with "Tests" (In the worst scenario; manually). So, you have to learn to "test" your solution. The creativity is in how you managed to get the solution and teachers should give insights about your way to solve it and present you easier or better ways to achieve the same. (Just change "teachers" for "senior devs" and now, that is code review).

> These text seem to be designed solely for a classroom where students will get assistance and feedback from TAs and professors.

Probably that's true. You have to consider those types of books as "slides"; just like a guide for the teacher and memory refresh for students.


This is old (2013). However, i think it's really ironic to talk trash about OOP while thinking in Java and pointing Alan Kay in the same post. Alan Kay being the father of OOP always made clear Java wasn't the OOPL he had in mind.


It's a bit confused alright. His first two quotes are from people who designed OO languages. (Joe Armstrong later realised that Erlang may be the only fully object oriented language, one he learned that java is not oop https://news.ycombinator.com/item?id=5205976 )


Nice link!. I should add that exist a correlation between objects and lambda calculus for functional programming. So, they are different perspectives of the same idea. And you have to take care of both perspectives.


wasn't it gosling who, when asked what he would do differently on rewriting java, famously remarked that he would leave classes out ?


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: