Front end software development is:
- real-time (instant load, 60fps)
- distributed, incremental (synchronize remote data as needed)
- asynchronous
- reactive (react to user actions in realtime)
Front end is the hardest kind of dev I do. The folks who do it every day are heroes.
JavaScript code is much more expensive, byte for byte, than an image, because of the time spent parsing and compiling it.
It's possible to parse and compile wasm as fast as it comes over the network, which makes it much more like an image than JavaScript code.
Game changer!
Before creating ESLint I knew next to nothing about parsers. Today, I know slightly more than that. Don’t let what you don’t know stop you from trying.
The most important thing in software is having fun.
It sounds indulgent, but it supports a sustainable career *and* creates an environment that's accessible to beginners over time.
Fun. Savor it. Prioritize it. Your software will be better for it.
The thing I find frustrating about the idea that frontend dev is "for juniors" is that nobody would say it about other specializations.
Someone might say that it's *better* if a compiler author worked in a more full stack role.
They *wouldn't* say "compiler writing is for jrs"
It feels like StackOverflow has developed a fatal flaw with regard to web content. Almost every popular question has a top-voted and approved answer that is out of date. In most cases, the answer is totally wrong and no decent developer would recommend it anymore.
We're all learning, all the time. How can you be proud to say that someone doesn't belong simply because they don't yet have a particular piece of knowledge?
My pride comes from opening up our craft to anyone who wants to hone it.
Exclude people at your peril.
@chriseppstein
If people who don't know you can use a <link> tag can call themselves front-end developers nowadays I'm proud of saying they don't belong in our craft.
People don't really understand the effort that goes into maintaining an open-source project.
But *nobody* understands the effort that goes into *leading* a successful open source project.
It's mostly not about committing code. It's mostly about chaos management.
After playing a little bit with QBasic when I was a kid, I was given a K&R C book.
My takeaway: programming is not for me. I didn't look at programming seriously again until I was 23.
This article is terrible advice.
New Years Resolution: when I talk about technologies, I will avoid demeaning the users of those technologies.
I will also avoid calling technologies "dead", "dying" or other words meant purely to demoralize users of the technology.
How to center content in a div. One way.
div {
display: flex;
/* vertical */
align-items: center;
/* horizontal */
justify-content: center;
}
That's it. The other 10 ways don't matter in 2021. We solved the problem. We're done.
PSA: There are a bunch of developers like me and you having a hard day today as Disney+ is launching.
I don't know any of them, but I imagine that seeing internet colleagues gleefully passing around articles dunking on them isn't making their day better.
@skirani
@AadityaTalwai
Teams with these "10x engineers" are toxic as fuck. I've been on them.
True quality engineers make everyone on their team better. The tell in this description is the idea that good engineers hate mentoring. Nope.
It's pretty hard to tell whether many Google technologies would make it out of the starting gate without the heavy thumb that Google monopoly power places on the scale.
Ironically, Googlers all believe that their technologies are winning because they're better.
Am I reading this correctly? The Chrome team believes that regular GET requests are now CSRF vectors due to the disclosed attacks?
If so, that has wide ranging implications on using links on the web.
Yesterday I said w3schools was underrated for beginners. Today I want to say that css-tricks is underrated for beginners outside of the area of CSS, probably because of its name.
CSS Tricks is badass.
This back and forth about microservices vs monoliths is hopelessly stuck in a backend-focused world.
What else should we expect? Front-end engineers are given the incredibly hard tasks of caring for the end user. In too many places, backend engineers still control everything.
The Rails 3 crew was pretty cool.
@josevalim
created Elixir
@tenderlove
is tenderlove, but also created a compacting GC for Ruby
@carllerche
co-created Rust's Cargo and created Tokio
@spastorino
contributes to the Rust compiler
I'm probably forgetting some others
I'll never forget the day I became a member of the Rails core team.
I just published the first part of a 2-part series about how my journey to become a member of the Rails core team taught me that "together" is the most important open source value to me.
Great breakdown why Zed could be the editor that has people switching from VSCode by
@t3dotgg
. Performance, fixing frustrating mistakes in electron, open source, etc.
I'm ready to call it: ES2015 modules are way more useful as an authoring format than as a browser runtime feature.
Expect tools that "statically link" modules into one script/module to be best practice for a long time.
But it's great that we standardized the authoring format!
It's funny. Ember's been around since 2012 or so.
Every year, people say Ember is dead, dying, or shouldn't exist.
Every year, new people adopt Ember. Every year, existing apps update to the latest and greatest.
Every year, the Ember community is in this together.
I've watched probably hundreds of hours of React video content and it really bothers me how often people matter-of-factly just say "you have to say className because class is a reserved keyword in JavaScript".
It drives me crazy that React's original class-based implementation resulted in the JavaScript community renaming "arguments" to "props".
JavaScript properties exist. They're properties of an object. When you call a function you pass arguments. That's why people write `...args`
There will always be talented engineers below the "credential bar" who should be snapped up in an instant but are struggling to find well-paying work because of the credentials cabal.
My advice: find them, pay them well, and do everything you can to make them happy.
@TheLarkInn
Basically "maybe you're overthinking front-end" is just another way of saying that front-end isn't "serious programming".
In no other part of software development do people start sneering that a few dozen k of library code and a compiler is overengineering.
What was your first personal programming project that you did, when you were as close as possible to being a total beginner.
I'm looking for examples of real personal problems people solve with programming as soon as they have any tools at all.
Rust is five years old today, and its ability to enable people to follow their wildest dreams still blows me away.
A small personal example is nushell. If you'd told me, five years ago, that I'd be working on a shell in 2020, I'd have said "don't be silly"
My view of this (as CTO of a product company) is that as long as our costs are lower than our revenues, and our costs scale linearly with new revenues, it's better to allocate engineering resources to new features than reducing AWS costs, however big the absolute number is.
Further, "your dev environment costs us $400 a month, we need you to spend time getting that under $100" is a generally dumb request to an engineer whose loaded cost is $250K.
I joined
@heroku
about a month ago.
I'm going to be helping support the work Sara Cope talked about in her EmberConf talk () to help standardize and modernize Heroku's front-end stack (across quite a few different front-end apps).
One thing I've noticed when reading stuff from passionate Rubyists is how much many other communities seem infused with Very Serious Programmer groupthink in contrast.
Everyone thinks Ruby's "programmer happiness" mantra is old news but you never hear it elsewhere.
For what it's worth, "I think windows is objectively terrible" isn't a good explanation for not wanting to support 1/2 of all existing devs and a bigger proportion of not-yet-developers.
It's also not true, but that's a topic for another discussion.
If we did coding interviews like SCOTUS:
Q: Can you code fizzbuzz?
A: "well, I would need to get my PC, think deeply about it, & ultimately make a decision based on the info in front of me"
Q: <explains fizzbuzz>
A: "once again, I'm not going to engage in hypotheticals"
This PR adds the first bit of Rust (compiled to wasm) to Glimmer. All tests pass in Chrome and Firefox, investigating Edge and Safari.
It uses -- which can be used in any Broccoli/EmberCLI project!
#itshappening
Thought: It's time for
@mozilla
to get down from their philosophical ivory tower. The web is dominated by Chromium, if they really *cared* about the web they would be contributing instead of building a parallel universe that's used by less than 5%?
The "every new thing is just rebranded old thing" take drastically undervalues usability.
The individuals who do the work of polishing good ideas into usable products are invisible, even to other tech people who should know better.
This is your regular reminder that
@StrictScrutiny_
is an amazing podcast. If you want an honest-to-god look at what the Court actually *will* do next, listen to them. This entire season so far has been incredibly enlightening and clarifying.
Another day, another group of people telling me that nobody uses Windows so it's safe to design programming languages and tools that treat Windows as an obscure edge case.
I don't know how to explain it exactly, but
@lawfareblog
's The Report is extremely soothing to me.
It's a long form audio rendition of the Mueller Report, but not just reading it. There's some verbatim, but also commentary, news clips, etc.
Sometimes I really want this feature in JS:
```
if (let token = ()) {
// token is in scope here
}
```
It makes an especially big difference with `else if`
Anyone else?
"Will I be able to run Dark myself?"
"No, it would be too hard, and we didn't design it so it could be run by someone else"
"What happens if Dark goes out of business?"
"You'll run it yourself"
Points for honesty I guess?
@joshuascottca32
@IlhanMN
I'm a Jewish American who finds anti-Semitic tropes in the discussion of Israel to be very frustrating.
You know what I find more frustrating? When people who are supposedly pro-israel sling the same kind of dual-loyalty tropes at Muslims.
@sugarpirate_
@dhh
@_jasonmit
@netflix
Someone told me recently that they were surprised at how many hiring companies still use Rails.
The HN/SV mindset that "Rails is dying" has deeply confused a lot of working devs about what skills are valuable in the job market.
Due to the way I was raised, whenever I hear the words "final solution to the X problem" in conversation, all I can think about is the Holocaust.
I've tried not to make a big deal of it, but I'd be happy if people tried to avoid that phrasing :)
But as adults, we owe it to our children to reject, in the strongest terms, the idea that childhood and high school abuse has no real long-term consequences and is a harmless part of adolescence.
1:
2017 is such an exciting time for the web, and I'm loving how much it's fitting in with the Glimmer work.
- WASM is finally here, and Glimmer is teed up to use it directly pretty soon.
- Firefox shipped Rust, which is also going to make front-end WASM awesome
When it comes to programming, if you're not struggling, you're not learning.
Personally, I've struggled to understand something nearly every day of my programming career. When things get easy, I take it as a sign that it's time to take levelling up seriously.
If a framework doesn't support web components well, it means they don't support HTML well.
A web component is an HTML tag and a bunch of attributes, which is why they're so great. If that doesn't "just work" it means there are a ton of invisible special cases in HTML handling.
I've been thinking a bit about the era of the Rails/Merb merge and one thing that always stuck with me is how persuadable
@dhh
was when presented with actual solutions that people created to solve actual problems they encountered in real apps.
Challenge accepted.
Look at this stuff, isn't it neat
Wouldn't you think my collection's complete
Wouldn't you think I'm the dev, the dev who has everything
Look at these types
Functions untold
How many wonders can one React hold
HTML (especially when enhanced with ARIA) is humanity's best effort to create a single set of portable semantics for the interaction patterns in computing.
Explicit is not better than implicit.
A good abstraction elevates the stuff that matters to your program and hides the stuff that doesn't matter to your program.
A bad abstraction hides stuff that matters to your program, nags you about stuff that doesn't matter, or both.
Real talk: 95% of the stuff that successful self-taught programmers teach themselves are not taught in CS programs *or* bootcamps.
In my experience, the bootcamp path is very good at convincing people that programming is really hard and not good at giving people core skills.
Anyway, the reason you have to say className and htmlFor is that React decided to use XML attributes to refer to DOM properties instead of DOM attributes, not because "class is a reserved word".
I'm going to be making YouTube content soon for developers looking to take their skills to the next level.
If you want me to answer a specific question (relevant to that topic), reply to this tweet or tweet at me anytime with
#AskWycats