Because the AI one are soul-less, and the badly drawn ones are not, simple as that.
HN user
mablopoule
Just a front-end developper. Based in Paris
I agree with your take, most of it boils down to ego, I believe.
Lot of it was bad, sure, but there was so much games and animation done by literal kids back then, because of how easy it was to create something with the tooling. Nothing even come close today, unfortunately.
This will greatly increase developer velocity (by making them run far away).
Same, I'm currently working more in React project, and I miss Angular so much that I actually use it in my personal project, it can be a genuine pleasure to use if you avoid over-engineering the rest.
React shines when it comes to the composability of components, eg. for data-table with customizable rows. It's still possible in Angular, but it's heavier.
For the rest (syntax, the ecosystem, routing, data-handling, DI), Angular is so much more straightforward. Services with dependency-injection is 99% of the time way simpler to reason about than React hooks, especially when you start to need cascading changes between hooks after user interaction.
Agree. RxJS is a beast to approach at first but it's a genuinely cool library, as long as you don't spread observable around when you don't actually need them. I used the same approach for a few years (pushing my http calls behind domain-specific api services that only return promise), and it's way simpler to handle.
I still use RxJS, but mostly in the top-level component and/or service who orchestrate between data, url state and api responses. Those top-level page usually keep the default change detection instead of the 'on-push' strategy).
As someone who feels stressed about not feeling able to finish the side projects I have (that is, working on my music player, learn Arabic, and learning to draw), this is a very refreshing take. Thank you for this.
I think the implication is that even though the technological landscape is evolving, it's not as if people born in the 60's couldn't foray into computer science because they arrived too late to study the ENIAC first.
I'm not sure why you're downvoted, but this is the right take IMO. I hate cheating and lying in general, but in any job posting you have to separate what are the actual requirement in term of knowledge versus what can be realistically learned on the job / doing a prototype in a weekend.
Of course don't fraud by like pretending you're a statistician when you have absolutely no mathematical background, but also don't take at face value the "Must have {x} years of experience in {y} tech" requirement when you know you have the necessary work experience to have a good grasp on it in a few weekend prototypes, and you also know that the job doesn't actually require deep expertise of that particular tech.
I did the same for my first React.js job, and I didn't feel bad because 1) I was honest about it and did not sold myself as a React expert, and 2) I had 10 years of front-end development, and I understood web dev enough to not be baffled by hooks and the difference between shallow copy vs. deep copy of a data structure, so passing technical test was good enough for it.
A few years ago there was a thread about "How complex systems fail" here on HN[1], and one aspect of it (rule 9) is about how individuals have to balance between security and productivity, and being judged differently depending on the context (especially being judged after-the-fact for the security aspect, while being judged before the accident for the productivity aspect).
The linked page in the thread is short and quite enlightening, but here is the relevant passage:
> Rule 9: Human operators have dual roles: as producers & as defenders against failure.
> The system practitioners operate the system in order to produce its desired product and also work to forestall accidents. This dynamic quality of system operation, the balancing of demands for production against the possibility of incipient failure is unavoidable. Outsiders rarely acknowledge the duality of this role. In non-accident filled times, the production role is emphasized. After accidents, the defense against failure role is emphasized. At either time, the outsider’s view misapprehends the operator’s constant, simultaneous engagement with both roles.
[1] https://news.ycombinator.com/item?id=32895812I would agree, but the question feels less spiteful than playful in nature.
Why die on a hill that it "is" something it says it isn't?
There's plenty of guru who say that they are the reincarnation of Jesus and/or Buddha, doesn't mean that we have to take their word for it.
In the same vein, North Korea is officially the "Democratic People's Republic of Korea", even though it's obviously not a democracy.
100% this. To this day the official website still describe itself as a library, and I'm convinced it's completely for marketing reasons, since 'framework' feels heavy and bloated, like Angular or Java Spring, while 'library' feels fast and lightweight, putting you in control.
Framework can be more or less modular, Angular or Ember choose to be 'battery included', while React choose to be more modular, which is simply choosing the other end of the spectrum on the convenience-versus-flexibility tradeoff.
React ostensibly only care about rendering, but in a way that force you to structure your whole data flow and routing according to its rules (lifecycle events or the 'rules of hooks', avoiding mutating data structures); No matter what they say on the official website, that's 100% framework territory.
Lodash or Moment.js, those are actual bona fide libraries, and nobody ever asked whether to use Vue, Angular or Moment.js, or what version of moment-js-router they should use.
In his "Power of Simplicity"[1] talk, Alan Kay had a great illustration of this specific phenomenon using astronomy:
Before Johannes Kepler had the insight of describing the orbits of the planets with ellipsis, peoples were using the (conceptually simpler) circles which didn't completely match the observed movement of celestial body such as Mars, thus resulted in complicated circle-within-circles orbits to try to model reality. By introducing a more complex basic shape (ellipsis instead of circle) which happened to match the underlying reality more, the overall description of orbits got greatly simplified.
It's a phenomenon I've seen a few time in my career so far: that while often there's complex code because there are actually complex hedge case to handle (essential complexity), sometime it's really because the data structure used to model the thing you're handling is slightly missing the mark, making things fit almost-but-not-quite, and many operation done around to handle data can be greatly simplified (if not avoided altogether) by changing the underlying data-structure.
(Also, Alan Kay apparently did another talk called "Is it really complex, or did we just make it complicated"[2] that seems pertinent to the thread, though I haven't watch it yet)
[1] https://www.youtube.com/watch?v=NdSD07U5uBs [2] https://www.youtube.com/watch?v=ubaX1Smg6pY
Maybe we're just calling all forms of automation and computer vision "AI" these days because it's sexy.
Funny thing is, at first it was the other way around! 'Computer Vision' has always been a sub-field of AI, but the term was more widely used by academics during a previous AI winter as a way to avoid the tainted 'AI' label.
Passion, drive, and existential fulfillment can take many form, and "professional joy" can absolutely be one of them.
It's not about drinking the corporate kool-aid, but about taking pride in what you've put in the world (even potentially as a hobby), having a sense of craftsmanship, or even maintaining a certain work ethic.
Even the "making money" part can be tied to a very deep sense of providing for your loved ones, and a sense of personal responsibility.
I'm a bit surprised at reading that. I've tried both, Next left a bad taste in my mouth, but Nest was kinda neat. Didn't used it for anything too complicated though, so I'm curious about what sort of grievances people have against Nest.
Except that now Youtube also "helpfully" auto-dub legitimate videos in other languages (along with translating the titles) by default, so even the 'AI voice' isn't a good signal for gauging if it's quality content or not.
As a french-speaking person, I now find myself seeing french youtubers seemingly posting videos with english titles and robotic voice, before realizing that it's Youtube being stupid again.
What's more infuriating is that it's legitimately at heart a cool feature, just executed in the most brain-dead way possible, by making it opt-out and without the ability to specify known languages.
If you like cringe humor, you might 'enjoy' the web tv show "2Kawaii4Comfort" on YouTube, about late teens/young adults going to an anime convention.
It's very well written, and it's the first time I've physically reacted that much to the awkwardness of fictional characters.
Another TV show that played with this concept well is "30 Rocks", with the main protagonist dreading to go to her high school reunion because she was a nerdy girl mocked by the high-school bully, As the episode go on, she realize that she was the bully, everyone was terrified of her and her extremely cruel remarks, including her friend who was afraid of her, turning the whole 'underdog nerd' trope on it's head.
On a more serious note, this is also why I'm wary of the "punching up" or "punching down" rethoric, because it's often easy to downplay any form of violence as justified retribution.
Simple: Two wrongs don't make a right.
Next time I'll be ranting against overengineering, I'll be stealing that :D
For me, LLMs are a bit like if you were shown a talking dog with the education and knowledge of a first grad student: a talking dog is amazing in itself, and a truly impressive technical feat, that said you wouldn't make the dog file your taxes or represent you in court.
To quote Joel Spolsky, "When you’re working on a really, really good team with great programmers, everybody else’s code, frankly, is bug-infested garbage, and nobody else knows how to ship on time.", and that's the state we end up if we believe in the hype and use LLMs willy-nilly.
That's why people are annoyed, not because LLMs cannot code like a senior engineer, but because lots of content marketing a company valuation is dependent on making people believe it's the case.
I don't think it's a Javascript problem in the sense that it's due to intrinsics properties of Front-end developpement, or of NPM, but I do agree that's in a cultural problem in the Javascript ecosystem, especially around React.
My theory is that there was a perfect storm around 2015 where everyone and their dog was encouraged to learn to code, especially by going through a coding bootcamp where they were mainly taught Javascript and React. At the same time there was a general enthusiasm for Open-Source, and of using Github as a sort of alternative, better Linkedin in order to get your first job as a software engineer.
As a result lots of silly packages were created (and used !) by well-meaning junior developers, who were told that coding is very simple but also fraught with peril, so if they are serious then they better should use packages such as 'is-odd' which is clearly more professional than doing it yourself, cause it follows the DRY principle and also get updated test by lots of people, etc...
I haven't seen it mentioned here, but one other classic trick for hamburger menu is to use a checkbox, and let CSS handle the rest.
Something like:
<header class="main-header">
<input class="hamburger" id="hamburger-action" type="checkbox" />
<label for="hamburger-action">Some icon here</label>
<nav class="main-navigation">My menu here</nav>
</header>
and then use the `:checked` CSS selector to display or not the hamburger menu, you can see it working in my (very barebone :D) website [1]. Note that this implementation is not keyboard-navigable because the input is not visible, I should fix it someday.While I also agree about the general stupidness of what3words and the clearly predatory move of trying to move GPS location behind a proprietary database, the article is not about what3words at all.
The link is about a grid system with different mathematical properties which is used at Uber.
No, it has a 3d engine, one that you can happily ignore 99.9999% of the time. CSS has a few gotcha, a few things to got to understand about it (selectors, selector priority and the way content flow depending on absolute / relative positionning), but it is not an impossible language to pick up, far from it.
As the grandparent comment said, don't let the perfect be the enemy of the good.
It was the basis of the plot of the first Jurassic Park movie. All shenanigans started because Dennis Nedry, the parc IT manager, disabled some security system at a bad time so he could sell some company secrets to concurrents.
There are interesting character analysis to do between the book and the movie version, where the book version or Dennis Nedry is way more sympathetic (even if flawed), he's a extremely talented IT guy who was undersold the amount of work to do in the park, kinda stuck doing unpaid overwork in a remote island and generally been fleeced by a way more villainous book John Hammond.
That "Features included" selection is golden, the "Every file is called index to turn your code editor into a fun maze for the entire family to enjoy." item actually made me laugh out loud.
This is the big one for me. In any big enough or unfamiliar frontend project, my go-to way to explore the codebase is to launch the front-end, and use the inspector to check the elements, and then search-back in the codebase the relevant classes to see what page/component display that, and how does it fetches the data.
If there is only an alphabet soup, I no longer have a simple set of classes I can grep the codebase with to quickly find the relevant components.