HTML and CSS are often seen as a burden.
This is a feeling I’ve noticed from engineers and designers I’ve worked with in the past, and it’s a sentiment that’s a lot more transparent with the broader web community at large. You can hear it in Medium posts and on indie blogs, whether in conversations about CSS, web performance, or design tools.
The sentiment is that front-end development is a problem to be solved: “if we just have the right tools and frameworks, then we might never have to write another line of HTML or CSS ever again!” And oh boy what a dream that would be, right?
Well, no, actually. I certainly don’t think that front-end development is a problem at all.
What’s behind this feeling? Well, designers want tools that let them draw pictures and export a batch of CSS and HTML files like Dreamweaver promised back in the day. On the other end, engineers don’t want to sweat accessibility, web performance or focus states among many, many other things. There’s simply too many edge cases, too many devices, and too many browsers to worry about. The work is just too much.
Consequently, I empathize with these feelings as a designer/developer myself, but I can’t help but get a little upset when I read about someone’s relationship with Bootstrap or design systems, frameworks or CSS-in-JS solutions — and even design tools like Sketch or Figma. It appears that we treat front-end development as a burden, or something we want to void altogether by abstracting it with layers of tools.
We should see front-end development as a unique skillset that is critical to the success of any project.
I believe that’s why frameworks and tools like Bootstrap are so popular; not necessarily because they’re a collection of helpful components, but a global solution that corrects an inherent issue. And when I begin to see “Bootstrap” in multiple resumés for front-end applications, I immediately assume that we’re going to be at odds with our approaches to design and development.
Bootstrap isn’t a skill though — front-end development is.
And this isn’t me just being a curmudgeon… I hope. I genuinely want tools that help us make better decisions, that help us build accessible, faster, and more beautiful websites in a way that pushes the web forward. That said, I believe the communities built up around these tools encourage designing and developing in a way that’s ignorant of front-end skills and standards.
What’s the point in learning about vanilla HTML, CSS and JavaScript if they wind up becoming transpiled by other tools and languages?
Don’t get me wrong — I don’t think there’s anything wrong with Bootstrap, or CSS-in-JS, or CSS Modules, or fancy design tools. But building our careers around the limitations of these tools is a minor tragedy. Front-end development is complex because design is complex. Transpiling our spoken language into HTML and CSS requires vim and nuance, and always will. That’s not going to be resolved by a tool but by diligent work over a long period of time.
I reckon HTML and CSS deserve better than to be processed, compiled, and spat out into the browser, whether that’s through some build process, app export, or gigantic framework library of stuff that we half understand. HTML and CSS are two languages that deserve our care and attention to detail. Writing them is a skill.
I know I’m standing on a metaphorical soapbox here, and perhaps I’m being a tad melodramatic, but front-end development is not a problem to be solved. It’s a cornerstone of the web, and it’s not going away any time soon.
Is it?
hear! hear!
You just expressed my feelings better than I could ever do!
Maybe is because I started front-end back when IE6 was an issue, when websites were switching from tables to semantic HTML, but front-end dev right now is AMAZING!!!
We have flexbox, SVG support, RGBA, HSL support… ON ALL BROWSERS! am I the only one that’s super happy about this?
You are not the only one that’s happy about it! I certainly am too! There are advancements in browser technology because people are realizing how important the web is. Front-end development is probably a legitimate career field thanks to what the world has discovered with the web. Which generally goes as follows; user research, realize design work, make designs happen, and publish! Of course there are a lot more details that go into that.
I agree one hundred percent. Browsing today’s Stack Overflows or sub-reddits is depressing. I saw a topic the other day titled, “How would you make a website without a framework?” When I started, that was a baseline expectation of ability. Now it’s a fringe topic of curiosity. People act like they need to wrestle with CSS when it’s one of the most straight forward, declarative languages we have. We used to shun users of Dreamweaver because they could drag and drop, resulting in bad code and lack of understanding. Now we’ve come full circle, once again a generation relying on tools they don’t fully understand, needlessly complicating simple matters.
Great article! I’ve seen the same attitude toward HTML and CSS and I could never accept “cause CSS sucks” as a valid reason to use a tool or a framework.
I’ve lost track of the number of times I’ve had to tell junior developers off for refusing to create the front end the client wants because it’s not something bootstrap let’s them do and for coming up with half assed solutions to avoid actually understanding how html/css/js work in conjunction with each other. I wish there was a way to get developers to take front end work seriously.
I really appreciate this post. I fear a day when we have the “perfect” HTML and CSS transpilers to do everything the “right” way, and the web becomes a homogenous pile of bland sameness paste.
I think the reason we see HTML and CSS as problems, though, is that those standards weren’t originally designed for what we use them for: creating rich user interfaces. Every non-semantic HTML tag to accommodate the CSS widgets we’re expected to make, the accessibility attributes needed to fix the problems those non-semantic tags create, every new CSS module intended to make our solutions less “hackey” while still having to support browsers that don’t support those new CSS standards—it’s all just so tedious and exhausting.
HTML and CSS were intended for document markup and styling, but we barely make documents anymore.
I’d agree with the document orientation of HTML/CSS being a core part of the problem. To me it feels like we keep on adding on to CSS modules when it might be better to start over with something that starts with the assumption of a rich user interface.
I always knew vim was better then emacs.
Thank you, Robin! I’m right there with you. To me it is more than mildly irritating when so-called “Web designers” or “Web developers” want to bypass dealing when HTML and CSS. And don’t get me started on using package managers without first understanding and being able to read and troubleshoot, if necessary, file and folder structure of a Web site or Web application! It’s like a surgeon going into an operating room hoping that he/she will know how to complete the surgery with their eyes closed and a cursory understanding of the anatomy, no less.
The problem is that industry does not give professionals the opportunity to love them. It’s impossible to find job posts where you see that people expect you to care about HTML and CSS. If you’re front-end engineer, people are more concerned about performance, algorithms, anything else but them. If you want to care, fine, but it’s an extra obligation, therefore the feeling it’s a burden.
If you’re an old school front-end dev who used to do websites, poor you, because everybody expects you to stop doing that if you want to earn money.
The problem is not the technologies, it’s the expectations and boundaries of front-end development.
Totally agree. It’s implied, that you know HTML and CSS. It’s treated as a “minor skill” that every developer knows to some point. So the best “solution” so far is telling designers that they should learn how to code. Which translates to: “I don’t want to deal with CSS, let the designer do the dirty work for me.”
In the end, I don’t care who does this kind of work (and I don’t think it’s dirty work at all), but it has to be done and done right. You can not always rely on frameworks.
Well put Sarah!!
You’ve perfectly articulated how I feel about this
I agree with you!
I totally agree here. All the more that with the new tools that have landed in CSS (namely flexbox and grid), frameworks like Bootstrap are getting way less useful.
I personally haven’t used Bootstrap since version 3. There is a need for CSS frameworks that provide already styled component for quick prototyping though.
Maybe the term frontend developer needs some rethinking. When I started working (as a designer) frontend was mostly HTML and CSS and some Javascript. A good frontend developer needed to be able to translate a Photoshop layout to a pixel perfect website. Frontend today is much much more. If you want to learn frontend development, people seem to start lerning git, npm, angular, react, vue and all of this is called frontend development.
I myself am a designer and I think I’m pretty good at HTML and CSS, but thats not enogh (anymore) to be a frontend developer. On the other hand, most of the people I meet that describe themselfs as frontend developers are (as you show in this article) not that familiar with CSS. They don’t get exited, when I talk about finally understanding the difference between
auto-fitandauto fillor something like that.So maybe we need some term in between. Some kind of profession, that thinks about things like accessible HTML structures, nicely build CSS, smooth transitions and animations. Someone who is responsible for a website to look and feel good on any device. And maybe that is not the frontend developer who is mainly exited about what it means to use hooks or if you should use npm or yarn.
I have noticed decline in Web platform expertise in general. People learning Typescript because they don’t know Javascript. This is one of the worst possible investment of your time. But encouraged but some of top companies. And it is a real life example I recently witnessed with one of our product teams. But I prefer to judge by result. Like show we me your great component/library/application and then we can talk.
Well, to be fair, Js is a hard beast to tame.
I’m getting kinda-of proficient in it and i still think it doesn’t make much sense…
Gut gesagt!
Spot on!
Couldn’t agree with this more. HTML and CSS are complicated (at first) with all these edge cases and other things OP mentioned, because these are important considerations to get right. Not only should we not be abstracting away the skillset, we shouldn’t be abstracting away the fundamental understanding necessary to leverage HTML and CSS the best way possible.
Agreed. I’ve been a full-stack developer since before the term “full-stack” saw print (I started this phase of my career in 1996). So many of these frameworks, boilerplate collections, and what-have-you allow new “developers” to get going quickly, but in the end they know as much about HTML, CSS, and sometimes JavaScript, as “Guitar Hero” players know about actually playing guitar.
I want you to know that my coworkers and I, who specialize in front end development, were very happy to see someone argue this side. I can’t tell you how many times I’ve had backend programmers treat CSS/HTML like an afterthought, drudge work, something monkeys could be trained to do… and meanwhile, they can’t even get it to function on more than one browser.
Word.
“It’s not going away any time soon”
Well actually, with canvas we need neither of both html and css. It’s currently not popular for referencing and accessibility issues, but one these are solved it opens up an entirely new world.
Isn’t what people said about Flash? Canvas will never be accessible because it’s not meant to be.
Thank you! Finally someone speaking some truth. It sucks to master html and css only to realize that everyone avoids writing it like a plague through special frameworks and tools. It seems like everyone wants to build full front-ends using only javascript nowadays lol.
Couldn’t agree more.
It is getting harder and harder to be a front-end developer, and we still have developers who are looking down on front-end development like it is some sort of unwanted child in the dev scene.
Confession: I’ve never looked at a block of CSS and thought, “Now isn’t that code poetic.” More frequently my thoughts have been inappropriate for polite conversation…in fact I can feel some of that animus arising as I type.
Maybe this is because coding is not my job. It is something I love doing and it is one of the things I do at my job, but it is not my job, nor even its primary focus. Maybe I’d feel different I could spend my days interacting with CSS…but, on the other hand, I don’t feel this way about HTML or Python or Ruby or C# or…name your language (though perhaps a bit this way about JavaScript).
Not to stoke the rising animus, but here’s the other side of the coin :)
A block of CSS? No probably not poetic. To me, CSS becomes beautiful in the way you look at it in it’s entirety. It’s more about think of how your design system fits together in an efficient way. You’re use of selectors to make things clear and simple.
It’s also thinking about the tiny design details that often make the interface that much more pleasant. Which may not make for the most exciting code, but it makes the experience in the app that much better.
Not only do some developers, not necessarily front-end ones, see the HTML/CSS phase as a burden, but a trivial step that ANY engineer can handle it without the need to an “expert” as it doesn’t even require any kind of talent or experience to begin with, in their own understanding.
That hurts to the bones! I find that frustrating in a way that numbs my ability to respond to such mindset, and whilst your words and reasons are so powerful and make great sense, I am not sure it’ll get through to these kinds of mindsets.
Sadly I have to say, to some out there, HTML/CSS skills are not even considered a part of the front-end, but rather a silly step that may be the “designer” can get over with or a framework, and apparently it is staying this way for quite some time.
What you wrote there is just “simply amazing”
The industry is the problem isn’t it?. Create more websites. Give me more web apps. Many programmers dont want anything to do with css nor html it’s not as rewarding to have a page behave exactly how intended as it is to have it accomplishing its purpose. I think, that just like design css and html will become more of a niche. You end the article on a question. I am affraid the answer is yes. The web might become just like plain newspapers. Most websites shouls rely on functionality and content rather then looks. Hence whwn the industry is looking for front end devs html and css comes second, don’t hate the playets hate the game.
Full agreement here to. I had been meaning to switch to VanillaJS for ages, especially now that there’s service/web workers and web components.
It’s been 2 months and I’m loving the dev flow with no build process, i might even try devving in chrome dev tools next…
First things first… I learned and lived with plain ol’ vanilla codes… and just when I’m starting to get comfortable with vanilla way of coding, and by that I mean after I’ve created a few decent (IMO) HTML & WordPress themes, Bootstrap hype came…
So I tried my hand on this thing called Bootstrap… and oh god how confused I was with it… remembering all those classes and rules are are so hard and (feels) restrictive for someone like me who usually uses foobar/abracadabra/iluvgirlwithglasses classes whenever naming elements are getting annoying. Thus I left it alone… deeming it unfit for someone like me who feels more comfortable with plain ol’ vanilla flavor.
I remember this time period is also the beginning of so many self-entitled “Website Designer”s popping up everywhere. Presenting what’s basically the first bootstrap theme you could find via google, with a teensy bit of line editing here and there… then claimed the design as their own.
Fast forward to late 2018… I’m still doing things in vanilla… sure it’s a bit slower compared to fresh meats who uses frameworks… but still end up faster whenever troubleshooting becomes necessary or when edge-cases came up… probably because I have better grasp of the codes that I wrote compared to those who uses frameworks/tools without decent understanding about their tools of trade.
TL;DR
There’s nothing wrong with using frameworks and/or other tools… just make sure you have what it takes when problem arises, or when you need to step beyond what the framework covered for you.
Reason: some people still don’t accept the web as it it is. A fluid, interconnected, interactive experience.
Designers still want to paint a canvas and/or bickle about their preferred design app, which always results in a mock.
(Backend) Developers can’t be bothered with display details and/or browser differences.
Clients and PMs want cheap or at least within budget (“just use X”), which clashes with the designer who wants to take pride in their work.
All of them don’t know what progressive enhancement means.
And frontend designers are the last ones on the line, frantically testing every possible angle, browser, viewport and state. Trying to tie everything together and keep everyone happy.
In my opinion UX researchers and usability experts nail it best when it comes to designing the web.
Whether you use a framework or not is not the issue, nor the solution to the problem. A good system (existing framework, parts of it or self-created) catches the basic stuff so you can work on the rest, but it’s still up to you how to apply it.
Start with your content, then your markup, “pretty design” comes last imho.
sidenote: I’m not surprised I’ve seen so many burnouts in frontend people.
I am totally with you on this one. Great article. Focus on fundamentals before jumping into add on tools.
Robin, thank you for this post. I myself started my front-end journey 2 years ago because I really got into accessibility and visual layer of website. I think all this thinking that CSS and HTML are unnecessary is because a lot of programming moved to the browser side so back-end developers were forced to move to the front-end departement and they are struggling with learning HTML&CSS, due to difference between back/front mindset. Also frameworks like angular don’t help with learning proper html and css, and when I see css/sass file with only just id’s or html with
I personally cringe.
you are fighting my war . THANKS
I am a hobbyist and have created all my own libraries to handle DOM manipulation and Front End Development.
I personally don’t like CSS or HTML and do almost everything in JavaScript using templates and the DOM APIs. I also didn’t like the CSS layouts, block, in-line, etc.. So, almost everything is placed using absolute positioning. It can be a little of a pain in the butt, but I know how to do math.
You can include CSS in a tag in the templates to keep the CSS and affected HTML in the same file. Similar to how Vue can use the one page component design option.
I get the filling that old timers, I’m 52, don’t like new programmers who don’t like doing things the way they were done 20 years ago.
So, lighten up and build your own Dreamweaver. I have and I figured it out all by myself with the help of the internet of course.
Believe me, I can build anything I want, my way, using my process and I don’t give a sh-t how other people do it.
The best thing about being a hobbyist is I get to do what I want when I want how I want.
I could assume you’re living in my open space with me all day to write this way ! I work as a integrator html/css for a big intranet with twenty developers. In their eyes, THEY make the job whereas I fixed the bad display ! Displaying content in a proper manner is nothing but a painful issue. Thankfully Bootstrap was added in the project six months ago and they guess they should bypass me in an early future !
Browsers are just displaying html and css, not Java ou SQL! How could they think they don’t need to tackle with them!
Thanks to level up my nine-to-five work.
Totally agree. When I’m started out as a Web Developer all I had available was Notepad and a bit of imagination. Don’t get me wrong, I’m a big fan of Webpack and the plethora of transpilers we have at our disposal these days but that shouldn’t come at a cost of forgetting how to work without them.
In my experience all these different tools come and go, but the underlying HTML, CSS and Javascript remain (mostly) the same. Bring back the days when anything was possible instead of ‘but Bootstrap doesn’t support that!’
Eigentlich ganz im Gegenteil, ich bin frustriert über die Redundanz, etwas zweimal zu codieren... einmal in einem Designprogramm und einmal in einem Texteditor... ich sage zweimal, weil die meisten Webdesign-Programme auf Webtechnologien basieren... erinnern Sie sich an Reflow? Wie wäre es mit dem neuesten Adobe XD? Ich meine, es ist nicht so, als würden wir von Papier auf Desktop umsteigen... KI kann Rembrandts Kunstwerke kopieren, aber keine Schichtkonventionen mit Einschränkungen und Definitionen verwenden, um etwas HTML und CSS auszuspucken? Lol, hier ist was los, das ist viel verlorenes Geld und deshalb werden wir das so schnell nicht sehen.
Die Leute wollen, dass das passiert, und es ist un-menschlich, sich nicht anzupassen und zu entwickeln. CSS Grid ist ein gutes Beispiel dafür, dass neues Denken einen großen Unterschied machen und befreiend für diejenigen sein kann, die täglich mit diesen Sprachen arbeiten, und nicht nur dabei bleiben, zu sagen: „Ach komm schon, benutze einfach weiterhin Floats und Positions und Margin Auto“, weil es bequem, vertraut und gut dokumentiert ist. Browser-Inspektion fällt mir auch ein, alles, was es wirklich braucht, sind einige Zeichenwerkzeuge und eine leichte Neugestaltung der Inspektions-Eigenschaftsfelder, und wir sind gut aufgestellt.
„Bootstrap ist jedoch keine Fähigkeit – Front-End-Entwicklung ist es“ – wahr. Ende der Geschichte
Toller Artikel. Einige Frameworks fügen zusätzliche Komplexität und Unordnung hinzu. Ich habe etwa 15 Jahre Webentwicklung hinter mir, ich habe Leute gesehen, die JS-Frameworks kennen, aber keine einzige angemessene Zeile in Vanilla JS schreiben können.
So viel Wahrheit in diesem Artikel und danke, dass Sie ihn ausführen! Ich bin derzeit begeistert von Tools wie Webflow, die den Wert und die Effizienz von semantischem HTML/CSS nutzen, aber noch einen Schritt weiter gehen, indem sie es jedem mit einem anständigen Verständnis dieser Sprachen ermöglichen, visuell und intuitiv kreative Layouts, Interaktionen und Animationen von Grund auf zu erstellen! Es scheint, dass sich Dev-Teams manchmal so sehr auf die Nutzung verschiedener Tools und Komponenten fixieren, dass sie die grundlegendsten Konzepte der Benutzererfahrung und der Seitenleistung aus den Augen verlieren.
Ich habe in den 90er Jahren angefangen, Webseiten zu erstellen.
Es gab damals kein UI/UX, nur eine Gruppe von uns, die Jakob Nielsens Blog lasen. Es gab keinen Front-End- und Back-End-Entwickler, nur Webentwickler.
Als sich die Dinge zu spezialisieren begannen, habe ich mich zum Front-End hingezogen gefühlt, weil dort die ganze Action ist.
Designer designen, aber eine Webseite ist nichts Statisches, eine effektive Seite testet, iteriert und optimiert dieses Design, um den Bedürfnissen ihrer Nutzer gerecht zu werden. Ein großartiger Back-End-Entwickler wird nur in großem Maßstab benötigt, und es ist ein großartiger Front-End-Entwickler (und UX, und Texter, und Designer), der eine Webseite, die niemand kennt oder sich darum kümmert, zu Skalierbarkeit bringen kann.
....nur meine zugegebenermaßen voreingenommene 2 Cent... :)
Ich stimme all diesen „alten Web“-Idealen zu, und ich denke, CSS ist in Ordnung, sogar gut. Ich habe vielleicht einen Groll, aber manchmal fühlt es sich an, als ob Leute (nicht dieser Artikel speziell) neue Werkzeuge und Techniken, die von der Ingenieurseite kommen, auf absolute Weise ablehnen, was nicht hilfreich ist. Meistens denke ich an CSS-in-JS und Frameworks + JSX (HTML-in-JS?). SASS ist großartig, aber styled-components sind für CSS-Hasser, denen Barrierefreiheit und das Web egal sind.
Ich persönlich finde, dass das Schreiben von HTML und CSS mit einigermaßen komplexen Tools (TypeScript + React-Native-Web + Webpack) besser ist als je zuvor. Besonders für Barrierefreiheit habe ich das Gefühl, dass es mir die Flexibilität gibt, die ich brauche, um keine Kompromisse beim Ergebnis einzugehen, weil es nie eine lästige Pflicht ist, Markup, Stil oder JS-Events aus beliebigen Daten/Zuständen zu erstellen, je nachdem, was die beste Erfahrung bietet. CSS-Golf zu spielen (nur CSS-Slideshow, nur CSS-Weltraum-Invasoren, nur CSS-Tabellenkalkulation) macht Spaß, aber es war nie ideal für Barrierefreiheit.
Es wird immer Leute geben, die sich nicht mit den Details beschäftigen wollen. Sie sind vielleicht von Dreamweaver zu WordPress-Themes zu Bootstrap zu React-Material-UI oder was auch immer gewechselt. Aber ob ich Stile in CSS oder TSX-Dateien schreibe, wird meiner Meinung nach nicht der entscheidende Faktor sein.
Vielleicht hält dieser Code dem Test der Zeit nicht so gut stand wie tatsächliche .html- und .css-Dateien. Das ist etwas, das mich beunruhigt.
Ich stimme in diesem Fall nicht zu: Viele Kleinunternehmer-Webdesign-Kunden zahlen nur einen begrenzten Betrag für Webdesign, und „schicke“ Tools (wie Sie sie nennen) sparen Produktionszeit. Diese Effizienz ist entscheidend, da sie die einzige Möglichkeit ist, bei solchen Aufträgen einen Gewinn zu erzielen. Vielleicht können Sie es sich leisten, ein HTML/CSS-Purist zu sein, wenn Sie ein Gehalt beziehen und Ihr Arbeitgeber die Front-End-Entwicklung als fortlaufende Aufgabe betrachtet. Aber wenn Sie freiberuflich tätig sind und eine schöne, vollständige Website in einer Woche zu einem begrenzten Budget liefern müssen, machen diese Front-End-Tools einen großen Unterschied.
Ich muss dem zustimmen. Das Endergebnis, das durch hackelige Frameworks erzielt wird, ist für Kunden und Designer oft enttäuschend. Dieser Konflikt zwischen Erwartungen, Budgets und unsichtbaren Qualitäten (Wartbarkeit, Barrierefreiheit) hat mich tatsächlich dazu gebracht, vorerst mit der Front-End-Arbeit aufzuhören.
Mir macht es auch nichts aus, wenn das Web sich wie Zeitungs-Layouts homogenisiert. Es ist eine Frage des Budgets, aber auch im Druck führt ein 10-faches Produktionsbudget im Vergleich zu Zeitungen zu einzigartigem Boutique-Design auf hochwertigen Materialien. Ebenso werden großartige reine CSS+JS+HTML-Websites in den besser gestellten Ecken gedeihen und gedeihen.
Nun, dem muss ich widersprechen. Selbst wenn man ein begrenztes Budget hat, wird man recht schnell, wenn man weiß, was man tut. Am Ende bin ich schneller darin, reines CSS zu schreiben, als Bootstrap-Elemente zu optimieren und zu überschreiben, damit sie zum gegebenen Design passen.
Aber in einem Punkt bin ich bei Ihnen. Viele Diskussionen über Webdesign/Webentwicklung zielen heute scheinbar nur auf riesige und komplexe Webseiten ab. Ich würde gerne mehr über Webseiten lesen, die vielleicht 1-10 Seiten insgesamt haben.
Ein CSS-Spezialist kann natives CSS (eigentlich modular, PostCSS oder SCSS) viel schneller schreiben als die meisten Leute ein Framework oder sogar eine Vorlage anpassen können.
Das eigentliche Problem ist, dass sich die Branche nicht wirklich um CSS-Spezialisten kümmert. Sie wollen entweder einen „Designer, der coden kann“ oder einen „Entwickler mit einem Auge für Design“. Das ist der eigentliche Trick: Beide können das Problem *lösen*, aber keiner von beiden tut es gerne, und beide haben das Gefühl, dass es die Verantwortung des anderen sein sollte.
Als deklarative, domänenspezifische Programmiersprache erfordert CSS eine völlig andere Denkweise als die eines Entwicklers imperativer Programmiersprachen und eine völlig andere als die „Zeichenfähigkeiten“ eines Designers.
Ich stimme hier allem, was Sie sagen, wirklich zu. Als primär Front-End-Entwickler habe ich meine Fähigkeiten immer als weniger bedeutend als die der Back-End-Leute angesehen, oder vielleicht muss ich mehr Full-Stack sein und mehr Tools lernen (was wir natürlich immer tun), aber ich war schuldig, meine eigenen Fähigkeiten abzuwerten, weil die allgemeine Theorie, die heute existiert, besagt, dass es einen Weg geben muss, etwas dafür zu tun.
Ich wurde zu einem Job hinzugezogen, bei dem sie das Design einfach nicht auf dem Web „lebendig“ bekommen und an Geräte anpassen konnten, und mir fiel auf, dass es kein Framework dafür gab, es musste von jemandem mit Kreativität und Verständnis erstellt und durchdacht werden, und in diesem Fall konnte ich etwas wirklich Cooles zum Leben erwecken. Trotzdem danke für Ihre Ausführungen, ich lese diese Artikel wirklich gerne!
AD
Danke für das Teilen Ihrer Gedanken. Dieser Satz fiel mir auf: „Ich glaube, HTML und CSS verdienen Besseres, als im Browser verarbeitet, kompiliert und ausgespuckt zu werden, sei es durch einen Build-Prozess, eine App-Export oder eine gigantische Framework-Bibliothek mit Zeug, das wir halb verstehen.“ Ich stimme zu, dass es problematisch ist, die verwendeten Werkzeuge nur halb zu verstehen. Aber ich denke auch, dass es das Schöne daran ist, ein Software-Ingenieur zu sein, wenn man die unteren Ebenen nicht verstehen muss. Ich liebe es zu wissen, dass jemand die verwirrenden unteren Details gelöst und eine Abstraktionsschicht darüber geschaffen hat. Es stimmt, dass Frameworks oft schlecht abstrahieren, aber eines Tages werden sie es richtig machen. Persönlich schätze ich es, dass wir uns nicht alle mit Binärcode beschäftigen müssen und unser [Sprache einfügen] „verarbeitet, kompiliert und ausgespuckt“ wird.
Es ist großartig zu sehen, dass so viele Leute dieser Ansicht zustimmen! In meinem Job sind wir in der Regel darauf beschränkt, nur HTML, CSS und JS zu verwenden, das wir selbst schreiben; keine Bibliotheken, keine Frameworks, keine Tools überhaupt. Während ich das Gefühl habe, dass dies zu einem besseren grundlegenden Verständnis der Sprachen geführt hat, befürchte ich manchmal, dass ich außerhalb meiner derzeitigen Rolle als „hinter dem Zeitplan“ oder nicht über die erforderlichen Fähigkeiten verfügend gelte, um als „Front-End-Entwickler“ zu gelten, obwohl meine CSS- und JS-Schreibfähigkeiten ziemlich gut sind, da ich die gesamte Funktionalität in Vanilla JS schreiben muss. Ich mag es zu hören, dass nicht jeder Angular, React, Redux, Bootstrap usw. für die Entwicklung heutzutage für erforderlich hält.
Eine Erfahrung, die ich gemacht habe
Ein 30-jähriger Leiter der Ingenieurabteilung gibt zu, CSS nicht zu kennen, und erklärt, es sei zu spät in seiner Karriere, es zu lernen.
Dieselbe Person wurde wütend und beleidigt, als ich einige responsive CSS-Elemente recherchierte, um ein FE-Problem zu lösen, und sie mit den Entwicklern teilte.
Es fühlte sich wie eine „Territorium verteidigen“-Problematik an, anstatt dass jeder versucht, das Produkt voranzubringen. HTML/CSS wurde als Problem angesehen, etwas, um das sich nur Designer kümmerten, und gleichzeitig wurde es als ausschließlich im Zuständigkeitsbereich von Entwicklern kategorisiert.
Erstaunlicher Artikel. Wie in jeder Disziplin ist es in Ordnung, Werkzeuge zu verwenden, aber man muss immer noch überprüfen können, ob das Werkzeug das beabsichtigte Ergebnis liefert. Zum Beispiel wird ein Bauingenieur Werkzeuge verwenden, um zu berechnen, wie viel Beton für Fundamente benötigt wird, sollte aber erkennen, wenn das Werkzeug ein falsches Ergebnis liefert. Ich sehe HTML, CSS und JS wie Weisheit und Frameworks wie Wissen. Manchmal wird die Weisheit sagen, dass das richtige Werkzeug nur Ihr eigenes Handwerk ist und Sie keine Frameworks benötigen, manchmal ist es in Ordnung, sie zu verwenden, aber Sie müssen erkennen können, ob das Endergebnis völlig falsch ist oder gegen die Kernprinzipien des Webs verstößt.
@Geoff – Wenn nur echte Stylesheets wie die Code-Schnipsel in Ihrem Artikel aussehen würden! Dem kann ich zustimmen, aber realistischerweise sehen wir dreizehn verschiedene Stile, die auf Zeilen angewendet werden, für die Verwendung auf der gesamten Website – einige für das Header-Menü, einige für den Footer, einige für die Listen von Seiten und andere für die Listen von Beiträgen… und oh, vergessen wir nicht die Weihnachtlisten, die anders thematisiert werden müssen als die Osterlisten!
Sicher, ein Teil davon ist das Ergebnis von Leuten, die schlechten Code schreiben, aber meiner Meinung nach sehe ich mehr lächerlichen CSS-Code als Code in anderen Sprachen (egal ob HTML, JS, PHP, C#, etc.)…
Warum ist das so? Ich würde die Kaskaden dafür verantwortlich machen, weil sie mich immer nerven, aber ich denke tatsächlich, dass das Problem eher darin liegt, dass CSS im Kopf des Designers/Entwicklers leicht von einem bestimmten Element getrennt wird, sodass man mehrere Regeln findet, die ähnliche Stile in einem einzigen Stylesheet anwenden (und vergessen Sie nicht, dass wir wahrscheinlich 5 verschiedene Stylesheets auf der Seite laden aufgrund von Einbettungen, Plugins usw.).
Okay, vielleicht bin ich nur ein Griesgram... und wie bereits erwähnt, ist dies etwas, das ich als Teil meiner Arbeit tue, nicht der Schwerpunkt meiner Arbeit... daher spreche ich definitiv aus der Perspektive von jemandem, der in CSS eintauchen muss, das ich vor Monaten geschrieben habe, oder in CSS, das andere geschrieben haben, und Dinge herausfinden muss...
@Steven – Vielleicht würde ich anders denken, wenn ich mit Ihren Stylesheets arbeiten würde... aber das durchschnittliche Stylesheet ist ziemlich schrecklich, IMHO, siehe oben für weitere Details. :)
Mist, ich habe den Zorn entfacht! :)
Ernsthaft, ich weiß, dass die Beispiele in meinem Beitrag klein und begrenzt sind, aber ich würde trotzdem argumentieren, dass Robins Punkt Bestand hat. Dreizehn verschiedene Stile, die auf Elemente angewendet werden, und Dateien, die schwer zu navigieren sind, klingen symptomatisch für die Notwendigkeit, diese Front-End-Fähigkeiten zu schärfen und zu verfeinern... nicht sie zu vermeiden. Code-Poesie liegt im Handwerk.
Ich glaube, das eigentliche Problem ist, dass die HTML + CSS-Entwicklung so anders ist als die JS-Codierung *und* als das Designen, dass sowohl Designer als auch JS-Entwickler das Gefühl haben, sie sollten nicht die Verantwortlichen dafür sein.
Und vielleicht sollten es weder die einen noch die anderen sein. Ich bin ganz für eine dritte Rolle, nennen wir sie UI-Ingenieur oder wie auch immer Sie es bevorzugen: einen HTML+CSS-Spezialisten.
Amen dazu!
Als Full-Stack-Designer könnte ich nicht leben, ohne alles HTML, CSS und JS (jQuery ftw) zu lieben.
Und ich könnte mir nicht vorstellen, dass sich jemand als Front-End-Designer ausgibt, ohne ein tiefes Verständnis dieser Sprachen und den Willen zu experimentieren und Neues zu lernen.
Ich gebe zu, ich verlasse mich oft auf eine Handvoll Frameworks (Bootstrap und UIkit obendrauf), aber nicht als Entschuldigung für Faulheit. Es ist einfach hilfreich, ein konsistentes responsives Grid-System, Helferklassen und ziemlich optimierte JS-Lösungen für häufige Probleme (Kollapse, Dropdowns und dergleichen) zu haben. Aber das ist nur eine Ausgangsbasis. Ich sehe viel zu oft Leute, die ihre Werkzeuge auf die von besagten Frameworks angebotenen beschränken, anstatt sie als Grundlage zum Aufbau zu betrachten :)
Ein verwandter, aber beunruhigender Trend sind die Webanwendungs-Frameworks, bei denen Sie Code schreiben, um Benutzeroberflächen zu erstellen... Flutter? React?
Wir hatten jahrzehntelang „UI mit Code erstellen“... Xlib, user32.dll, Carbon... Es war schrecklich.
HTML und CSS sind in Bezug auf Ausdruckskraft, Leistung und fast jede andere erdenkliche Weise Welten besser.
Ich hoffe, wir durchlaufen diesen Teil des Cool-Technology-Zyklus schnell. Vielleicht können wir ihn fördern, indem wir Entwickler dazu zwingen, alten Xlib- oder User32-Code eine Weile zu dokumentieren, bis sie verstehen, warum HTML und CSS besser sind. :P
Ich kann dem weniger zustimmen!
Das beeinflusst Anfänger mit reinem Geist oft am meisten, die Grundlagen der Webkunst zu lernen, wo sie anfangen sollen, oder müssen sie sich wirklich darum kümmern, tiefer in das Erlernen der grundlegenden Werkzeuge wie HTML & CSS einzudringen, da man ein Framework mit wenig Kenntnis davon aufnehmen und sich mit dem Gefühl seines Designs am Ende wohlfühlen kann.
Es ist ermutigend zu sehen, dass andere auch so fühlen. Ich liebe CSS und HTML. Da habe ich es gesagt. Und im Grunde will ich kein Werkzeug oder Framework, das es für mich schreibt. Javascript ist auch spaßig und mächtig, aber ich sehe nicht, warum es zur zentralen/einzigen Qualifikation für „Front-End-Webentwickler“ werden sollte.