21 ms·
Get in zoomer, we're saving React
- pkrumins 4y agoHTML tag has entered the chat.
- bagels 4y ago"Both the orange and red site recently spilled the tea about how mean Uncle React has been" Anyone know what this means?
- Hellion 4y agoIf you know you know. If you don’t, it’s lobsters
- oefrha 4y agoOrange site is Hacker News. Red site, lobste.rs?
- maxbond 4y agoThat was my guess as well (re lobste.rs), so I went there for the first time, but while the favicon is red the site itself doesn't have a prominent color at all, so I've no idea. Perhaps it's not a reference to the site's design, but that lobsters are red and that lobste.rs is, as I believe I saw [someone] once put it on twitter, "for people who need a second orange site in their lives?" (I removed the name because I can't find the tweet & don't want to risk putting words in their mouth.)
- andykx 4y agoI check both sites for different reasons. I come here to read interesting content about a variety of topics - even things that I spend very little time thinking about. I trust the community's ability to curate interesting content. Even if you think my trust is misplaced, I derive enjoyment from the articles and the ensuing content. I go to lobste.rs for software development content exclusively. There seems to be a bit more of an intentional focus on that kind of content there.
- maxbond 4y agoFor sure. I'm being glib, and I have mixed feelings about this site, but I do come back here everyday for a reason.
- doctoboggan 4y agoProbably HN and reddit
- melony 4y agoOrange is the site you are currently reading this on.
- Gigachad 4y ago“The orange site” is some weird euphemism twitter users use when complaining about HN. It’s also a great search term to chuck in to twitter for some entertainment.
- gardenhedge 4y agoIt seems to always be said with disdain. Is there a reason these people don't want to use the name? Do they really dislike the color orange?
- SSLy 4y agoIt's the same cultural phenomena as using euphemism to call out devils lurking below your bed. Humans have been doing this for thousands of years.
- pas 4y agobecause the name is harmless, uninteresting and unambiguous, but if anyone asks "what's that orange site" they can explain that it's bad because it's libertarian/capitalist/idealist/optimist/progressive/every-account-is-elon-musk-himself. and this helps them to maintain their nice oversimplification too.
- crooked-v 4y agoThis post ultimately seems to spend a long time complaining about other people not putting in the effort to fix the problems of React... while the author doesn't offer any solutions or even ideas for solutions. Also, the author makes repeated digs at React 18's concurrent mode work while at the same time complaining about the kind of stuff concurrent mode is supposed to fix (for example, React updates not happening fast enough to keep up with mouse dragging).
- faraaz98 4y agoAs soon as I saw, "you should listen to your elders" being used as a reason to read this article, i knew it wouldn't be high quality
- silisili 4y agoThat's a pretty inexperienced take, out of context. People should absolutely learn from elders, even if they feel the elders are wrong. Which is pretty much, every young person who has ever existed. There are often nuggets of wisdom buried inside resistance to change. I often wonder how much further along we'd be as a society if we didn't spend the first couple decades thinking we know everything. Myself included.
- nl 4y ago"Wisdom" of elders should stand on its own by being well reasoned. If someone needs to say "listen to your elders" then they aren't able to articulate their argument well enough to stand without it. (I've been programming much longer than the 32 years claimed by the article author. No one should listen to me because I'm old, except in the case where I'm talking about specific incidents I witnessed that younger people didn't.)
- silisili 4y ago> except in the case where I'm talking about specific incidents I witnessed that younger people didn't All in interpretation. I implicitly assume 'listen to your elders' is about experience, not age. Perhaps others read that differently. I don't think anyone is arguing a young PHD should do what an old chimney sweep tells him just because he's older. Unless of course said advice applies to PHD somehow.
- Existenceblinks 4y ago> Crucially, none of the React alternatives solve this FFS. The context is the web, nobody solves graphic problem like gaming for you, or need to. At this point it doesn't matter because HTML/DOM stuff is not going to suffice what you are talking about either. I honestly think after reading 50% of the article is all about bragging knowing history. I'm not old but I was there too. WIN32, MFC, QT, 8086 assembly whatever. I got a god damn computer engineering degree too but doesn't make me smarter, having better vision, knowing solution better than random ppl on the internet. I'm not sure what's the point of React here nor "Saving React". Why it needs to be saved in which sense. Do you mean, saving the web from React?
- inductive_magic 4y ago>I'm not sure what's the point of React here nor "Saving React". Why it needs to be saved in which sense. I read it as “svelte et al gain traction due to inferior younglings, therefore react is a sinking ship, let’s not let it sink because the tooling I use is the adequate choice (despite having to be saved)”
- Existenceblinks 4y agoYeah. The first paragraph is that point, but the follow up paragraphs are more of general sense of building UI. The other frameworks or libs lately move towards non virtual dom and reactivity. Solid, Preact, Svelte, Vue, Lit are superior engineering wise. But React is about the whole economy (unbelievable VCs put 100+ millions on that), so more libs more stuff created, rich ecosystem, poor engineering.
- friendlyHornet 4y agoYeah, I stopped halfway through the article. Don’t talk down and condescend to your audience for no reason I think the article should be rewritten and all the ranting removed It’s also difficult to follow where the author‘s going with all the side rants and unrelated remarks And yes, that is considered ranting, contrary to what the author claims in the beginning of the article
- akdor1154 4y agoIf I can rant at this quality when I have children, I'll consider my life to have been well lived and fulfilling.
- absolutelynobo 4y agoAs a web application and zoomer myself, I haven’t the faintest idea what this article is talking about.
- tomjakubowski 4y agoWow, a web application posting to Hacker News. What tech stack are you implemented in?
- skohan 4y agoTuring test failed lol
- absolutelynobo 4y agoPiss
- deleted 4y ago[deleted]
- whymauri 4y agoBut, but, you won't program unless your PRs are stamped with emojis! And you also don't know how to dance! (??)
- 199X 4y agoI can't read and it's hard to take serious a rant about front-end in a website that doesn't work in dark-mode
- llIIllIIllIIl 4y agoReact now is as mature as PHP4. Wake me up when it gets to PHP7 at least.
- klysm 4y agoI don’t understand arguments like this. PHP is fortunate enough to run on a real operating system with real APIs. React is running in the browser which is quite possibly the worst place to make anything stable. It will never be as stable.
- llIIllIIllIIl 4y agoThe only reasonable argument is that react helps you write the code that you will throw away and rewrite in two weeks.
- personjerry 4y agoInteresting observations about Mac vs Windows, but the article kinda trailed off into weak complaints and then unrelated rambling altogether
- AaronFriel 4y agoI thought this was the most insightful part, though it would be the second most if the author did more than allude to conflict-free replicated data types. Whenever you build a tiny language for the purpose of templating, it's worth asking yourself if it's really worth it to have to reinvent variables, loops, branches, scoping, expressions, and functions... Poorly. > Many competing frameworks acted like this wasn't so, and stuck to the old practice of using templates. They missed the obvious lesson here: every templating language inevitably turns into a very poor programming language over time. It will grow to add conditionals, loops, scopes, macros, and other things that are much nicer in actual code. A templating language is mainly an inner platform effect. It targets a weird imagined archetype of someone who isn't allergic to code, but somehow isn't smart enough to work in a genuine programming language. In my experience, this archetype doesn't actually exist. Designers don't want to code at all, while coders want native expressiveness. It's just that simple.
- asddubs 4y agoI always thought the point of the template language was more to enforce the boundary of presentation and code. and thus any template language that grows too powerful is a bad template language, because it's no longer doing the one job it has. So I think a template language should have loops, (non mutable) variables and basic conditions, that's it. So if there's something you can't do in your template that you want to do, the solution then isn't to write some sort of hideous thing in a bespoke templating language, but to add another variable/loop/whatever to the template. Of course this requires coordination and the larger the organization, the more this is going to slow things down. I also don't think this separation is as important on frontend javascript code, since the lines get blurry there anyway.
- _0w8t 4y agoIf a template needs loops or even conditionals, it is already too complex for my taste as it leads to wrong design patterns blurring presentation/code boundary. Something that just allows to access variables and call functions will keep the boundary while allowing a non-programmer or even the end-user to edit it.
- ccorcos 4y ago> Every templating language inevitably turns into a very poor programming language over time. This realization is what initially sold me on React. I just wanted program and build abstractions with an actual programming language!
- franciscop 4y agoExactly, I was a bit undecided back in the day thinking React and Angular might be similarly valuable, and I don't remember if there was even Vue yet or not (I believe not yet). Angular had just split, and I had to help contracting for a company using Angular 1, and OH BOY the page was horizontal and most of the programming statements happened within those nightmarish ng-if, ng-repeat, ng-{please-kill-me-know}. I believe there were parts up to 350-400 columns wide. That's exactly when I learned that same realization, and decided never to use (if I can avoid it) a programming environment that defines its own templating language.
- pas 4y agoI just wanted to wire up shit, make pages, send requests & receive responses ... and not spend days trying to pick the right router, form, state and whatever library for my view layer, and look for TS definitions for them, so I stayed on Angular2+ ^^
- EugeneOZ 4y agoHey, author! I also remember something, and you forgot to mention it: other frameworks were honestly saying that they took some ideas from React (or improved their solutions being inspired by React’s ideas). I don't think it was a good idea to use such a hostile style of writing - it is ok for web frameworks to evolve. It is more than ok to share ideas. Every time I see that some new framework took some idea of React (or Ember, or Angular, or PHP) - I see the “credits”, the authors are not trying to hide it. Some people are criticizing some frameworks - it is ok, no need to start holy wars because of that. Valid criticism will help, pointless toxicity will just shade away.
- encryptluks2 4y ago> We're Saving React Website proceeds to slowly load and runs like crap.
- pts_ 4y agoReact was the next jquery.
- mikessoft_gmail 4y ago
- bdcravens 4y agoThe fancy spotlight rays thing going on in the background is crazy distracting. Ended up disabling Javascript on the site to make it readable (ironic I know)
- impetus1 4y agoIt's not like react messaging can be used with Emacs..
- torginus 4y ago>A templating language is mainly an inner platform effect. It targets a weird imagined archetype of someone who isn't allergic to code, but somehow isn't smart enough to work in a genuine programming language. In Strange sentiment. Isn't React templating as well? Besides one of the most famous use of templates is macros (in C as well as other languages). Would people who generate code be allergic to coding?
- a_wild_dandan 4y ago> Isn't React templating as well? Nope! You can make React apps with just a plain ol' JS file (and doing so is frankly instructive). Most folk add in JSX for extra syntactic sugar tho, so the confusion with templating is understandable.
- xigency 4y agoYou can, but who does?
- Existenceblinks 4y agoYeah strangely it compiles to functions but they way they compose is not the way we compose function. Practically it's a template, compose via component mechanism. If it's a language it should be like Elm where attributes and children are also List and have return type, can be programed in function style.
- shepherdjerred 4y agoI think the point is that React is a true programming language with syntactic sugar to make it look templates, vs templates that bolt on some language.
- AtNightWeCode 4y agoReact is just JS as any other app using JS with templating. I really fail to see the benefit with the React approach. If anything it makes it more difficult to have a 100% match between design and the end product.
- chris_armstrong 4y agoThis article is weird linking together many unrelated strands of thought. Like linking reactive programming to “reactive” UIs, when really they mean UIs that are forgiving to their users instead of breaking down. Or how by coding on the web we’ve lost the immediacy of a UI that runs on our desktop, and the primitives (like undo/redo stacks) that make desktop user interfaces friendlier, at least without having to build them ourselves. And that new UI frameworks show up claiming to solve the problems that React creates with complexity, by forgoing the functionality that React provides that they pretend is unimportant by hiding behind toy examples. There’s actually not much in this article that doesn’t resonate with a jaded millenial like myself who knows their computer history, but could have been expressed more cohesively.
- cowtools 4y agoAs someone who has admittedly worked on approximately 0 user-facing programs, it seems like there are not many revolutionary ideas when it comes UI. I have some dream of a sort of user-interface system that exposes controls and data more directly to the user, independent of the author's stylistic choices. Sort of like semantic HTML with style-sheets that are configured on a per-user basis. It would be analogous to the unix shell in the sense that it would allow small programs to easily inter-operate, like plan9's pumbing or something. Instead of having a big monolithic program like kdenlive or blender, you would have a number of modifiable general-use programs that can be re-arranged to fit many use-cases in an extensible way. But instead of that it just seems like every toolkit or library wants to be highly specialized and complex, and provide for a very specific use-case rather than making the most general-possible user interface that is universal. Programmers should not be concerned with the appearance of their UIs like window decorations or the layout of buttons or text fields, for the same reason they should not be concerned with the minutia of optimizing assembly-code. It leads to a non-portable design. That should be left up to the system.
- skohan 4y agoIt's a nice idea, but if it were easy it would have been done by now. I think a lot of the problem is that UI tends to be very specific, and often giving one component what it needs to work well imposes requirements on other components. In order for a UI to work well and be comprehensible, there has to be a sensible hierarchy over the entire layout. If you don't achieve that, the whole might be less than the sum of its parts. But I think React is actually probably the closest thing to what you are describing. It does a pretty good job of encapsulating UI components into fairly small chunks which can be styled externally to fit into a larger layout. I also agree it would make sense to break things like Blender into smaller applications. But actually I think that would have more to do with having a standardized interoperable model layer, with a clear interface, so different applications could modify the same data with a different UI layer.
- mwcampbell 4y ago> What's really frustrating about all this is how passive and helpless the current generation of web developers seem to be in all this. It's as if they've all been lulled into complacency by convenience. They seem afraid to carve out their own ambitious paths, and lack serious gusto for engineering. If there isn't a "friendly" bot spewing encouraging messages with plenty of emoji at every turn, they won't engage. > As someone who took a classical engineering education, which included not just a broad scientific and mathematical basis, but crucially also the necessary engineering ethos, this is just alien to me. Call me cynical all you want, but it matches my experience. Coming after the generation that birthed Git and BitTorrent, and which killed IE with Firefox and Konqueror/WebKit, it just seems ridiculous. > Fuck, most zoomers don't even know how to dance. I don't mean that they are bad at dancing, I mean they literally won't try, and just stand around awkwardly. > Just know: nobody else is going to do it for you. So what are you waiting for? It seems like ranting about how the older generations were better, and conversely the younger generation is decadent, is as old as history itself. Anybody know why this is the case? Is it that our overall character has really been heading downhill for all of history? Or is it something else, like how we generally remember the best of the past but mostly notice the worst or merely average in the present?
- Barrin92 4y ago> Anybody know why this is the case? Because it's often true, although it's more cyclical than downhill. You have an open emerging technology and people start out self-reliant and have to learn from the ground up out of necessity, and over time things become so tower of babel like that new people can't or don't need to understand it anymore. Then it gets so bad that someone tears it down and you're back to the starting point
- WizardClickBoy 4y ago"Hard times create strong [developers]. Strong [developers] create good times. Good times create weak [developers]. And, weak [developers] create hard times."...?
- 4y ago
- stasm 4y ago> When you rename or move a file that you're editing, its window instantly reflects the new name and location. How does macOS achieve its reactivity? Is it two-way bindings? Events/messages? Immediate mode re-renders?
- skohan 4y agoIf I had to venture to guess based on how their APIs work, it's probably events. There's a system called "NotificationCenter" which can be observed to receive system events within Apple API's which is quite old.
- shadytrees 4y agoYes, there's the NSEvent ecosystem. Cocoa also lets you two-way bind a state object with the view as long as the state object (whether it's a controller or a model or a view model) implements key-value coding; notably, the blessed data framework (Core Data) is KVC-compliant, so apps that use Core Data sort of get all this for free. Core Data also has fairly good support for undo/redo. That being said, Core Data is a fairly idiosyncratic relational data layer. It's sort of a double-edged sword: it's easy to do 90% of what you want, and the last 10% will involve some deep dives into Apple's documentation. But it's been a long time since I've written an app on OS X -- someone will have to correct my errors. I've long thought that the inverse of what the OP suggests, bringing reactive UI programming techniques to Cocoa, would be much more interesting. Making native apps just as easy and as fun to build as web apps would be great! ReactiveCocoa/ReactiveSwift are promising, but the underlying, mutation-heavy Apple APIs still peek through. SwiftUI also seems promising, but still relatively immature to the, gosh, decades-old OS X platform.
- ex3ndr 4y agoNothing really, pretty much the same as WIN32 api. May be added event bus is somehow faster than simple few-line-invent-at-home implementation.
- mkl95 4y ago> Now, before you close this tab thinking "ugh, not another tech rant", let me first remind you that a post is not a rant simply because it makes you angry. Next, let me point out that I've been writing code for 32 years Well I closed that tab.
- twohaibei 4y agoHa, I was wondering if I'm the only one allergic to that attitude. For me it was one sentence later at "You should listen to your elders" where I decided this piece won't be much of a value and head over to the comments which never fail to have some interesting insights without forcing me to read extended history and ramblings.
- rco8786 4y agoHeh, ditto. I knew what was coming next
- Fervicus 4y agoOkay, so how are we saving React?
- TN1ck 4y agoThe author of this article also wrote the for me mind blowing things like MathBox2 [0], the Pixel Factory [1] and many more. The often mentioned clone of React in the article, described in "The GPU Banana Stand" [2] is something that wasn't heavily discussed here as I think the concepts are just very advanced. I mention this as I believe this is what the author is concerned about and what some might haven't experienced. Using React for "advanced" things were it just doesn't cut it and one has to go back to manual DOM manipulation, or having to dig very deep to understand how one can build UIs were the elements update 60 times per second. React works great for things were this is not a concern, but if the standard has these innate restrictions, what applications will the future hold if all people know is React? Though not a fan of some rants and the bashing on Zoomers, give them a chance to build the next iteration of the common tools, the oldest Zoomer is 25 at the moment. [0]: http://acko.net/files/pres/siggraph-2014-bof/online.html http://acko.net/files/pres/siggraph-2014-bof/online.html [1]: https://acko.net/files/gltalks/pixelfactory/online.html#17 https://acko.net/files/gltalks/pixelfactory/online.html#17 [2]: https://acko.net/blog/the-gpu-banana-stand/ https://acko.net/blog/the-gpu-banana-stand/
- Rapzid 4y ago> the oldest Zoomer is 25 at the moment. Yeah, give us millennials a shot! The oldest of us are just 42!
- qprofyeh 4y agoAuthor uses a tone, terms and phrases (FOB) that are really off putting. It’s sad because the subject is interesting. Luckily this HN thread is great.
- yellow_lead 4y agoIf this was a rant on boomers, it would be seen as ageist. Let's not blame all the new stuff on the new generation, it's not like a hoard of zoomersTM wrote react right after graduation.
- tartoran 4y agoI don’t blame it on the new generation at all and the boomer zoomer dichotomy bothers me quite a bit. I just want us all to steer away from this disaster in the making.
- LAC-Tech 4y agoNevertheless, when it appeared on the scene, it was wild: you're going to put the HTML and CSS in the JavaScript? Are you mad? I still think plain old CSS - separate from any JS or HTML or JS that generates HTML - is the way to go. Just so much easier and less brittle. I get that CSS being too hard for binary tree inverting geniuses to learn is now widely accepted folk wisdom, but it's really not true.
- klysm 4y agoI strongly dislike having all the css for the site in one place because the dependencies are opaque and it’s hard to apply local reasoning. For some CSS that’s what you want, but for a lot of use cases you want very specific rules coupled to very specific DOM. When I have that kind of relationship I want to control the blast radius and not let it leak out to the rest of the app. I also want co-location with the thing that’s making the relevant DOM. I also do think CSS is hard to learn because of how vast it is with the decades of shit piled on. There’s no clear way to do a lot of things, and if I have a solution, there’s always this doubt that I’m holding it wrong and fucking over future me. People that know CSS tend to hate things like tailwind and css-in-js because it’s an absolute abuse of the core design principles of “correct” CSS. But these things succeed for not 100% bad reasons.
- Aeolun 4y agoDespite them saying it’s not. This is just another variant of old man yells at cloud.
- genezeta 4y agoThis article is kind of sad. In part because it comes from its author, who usually writes interesting stuff. But this one is ranty -and no, it doesn't make me angry. It's ranty and also fluffy, light in content, scarce in any arguments or conclusions other than "youth these days! they don't even try!". I'm not young and I still find this article poor. After going through the first two thirds of the article with mostly uninteresting "I'm old; I know better" detours, the author seems to sort of relate React to "reactive", and goes on yet another detour on unrelated architecture. So, we're now reaching the end of the article and the only conclusion we get is... hey, stuff is hard, you need to do the work, you can't avoid putting in effort. And... that's it. That's all there is to the article. Eh.
- dhalucario 4y agoAlso: Why can't and won't you try dancing?
- wheelerof4te 4y agoCan any Web Dev framework survive long enough to be stable? If I learn some fancy framework today, I expect to use it for years to come else my knowledge and time is wasted.
- tuukkah 4y agoReact turns 10 soon.
- rk06 4y agoNo, it won't. Web is an ever changing platform, with a lot of churn. The most long lived framework currently is emberjs. But it is not the hottest, so you won't find it discussed much. The most "future proof" framework is "React" which is the one mentioned in Original article. It goes without saying but React is the cause of a lot of churn in js ecosystem, particularly due to its "no-battery included" approach. ## what about other popular frameworks? Other popular frameworks are angular and Vue. Angular has gone through such a major shift between angular 1 and angular 2, that angular 2 should have been renamed. That being said Angular2+ is also going through a paradigm shift (albeit in right direction this time) The other popular framework is Vue. Vue's templates have has gone through minor changes. And it has gone through a major change (vue 2 to vue3) recently. It is unlikely that another such large rewrite will happen for next 3-4 years. But after that, who knows? The only option here is to refresh your skills regularly every 2-3 years
- SSLy 4y ago> that angular 2 should have been renamed. Didn't it? I recall it was called AngularJS when it was v1. (Yes, I'm purposefully nitpicky here, you're still right a completely new name could have been helpful here)
- rk06 4y agoNope, it wasn't. Before it was angular and angularjs, like some people say vue and vuejs Or react and reactjs. After angular 2, Angular team decided to rechristen 1 as "angularjs". But they didn't (cause couldn't) change stackoverflow and other sites content
- nathias 4y agoI'm a React dev, I wish I could be working with svelte.
- tartoran 4y agoWhat stops you though?
- wildrhythms 4y agoMost likely an immense existing app with some gigantic library of React components... I still work on a React app with class-based components so complicated that nobody wants to touch. Like, componentDidUpdate() is hundreds of lines of spaghetti code kicking off even more setStates. Even some of the newer hooks-based components are a maze of side-effects... effects kicking off other effects, triggering a memo, triggering another memo. It's a mess, and management does not have 'tech debt' in their vocabulary.
- nathias 4y agocan't get a svelte job, there aren't that many
- fifticon 4y agoI agree with this guy. I can see that his tone unfortunately irks many to take offense and post. I am sad that microsoft has so dropped the ball on UI, that even MS' own teams use web tech to build apps nowadays. I particularly lament that scroll bars have become a lost art. We have gone from scroll bars working perfectly in windows 3.1, to .. whatever passes for a scrollbar these days. Often they are even hidden, so you have no idea how big the document is,or where you are in it. But it sure does look minimal and slick, until you have to actually use the thing. Many established keyboard shortcuts are going missing,but that is OK, since modern people dont like keyboards. My favorite is when installing current windows 10, when you select language and country. You get a list that displays .. 4 items at a time, from hundreds of choices. Unlike earlier versions, you can no longer press a key to jump to a letter. You must page through the whole list. Sorry if I made more millenials cry.
- ricardobayes 4y agoI thought windows had bad UX until I tried macOS. Maybe my taste is different than others but I found macOS UX to be really confusing. I particularly disliked the iconset. Interestingly this is not true for iOS and iPadOS, those are magnificent.
- amelius 4y agoI can never find the back button on iOS.
- ripe 4y agoIs there a back button? Honest question. I thought iPhones didn't have one. When I pick up my wife's iPhone I always feel a little lost.
- twodave 4y agoConvention is to keep it in the top left. All the stock apps will use more or less the same navigation dock up top for back and other functions. Often apps will be rejected for not providing this kind of functionality predictability. This was the hardest thing for me to learn moving from Android to ios as well, but the smoothness of ios trumps all the hardship in my opinion.
- DonHopkins 4y ago>Many competing frameworks acted like this wasn't so, and stuck to the old practice of using templates. They missed the obvious lesson here: every templating language inevitably turns into a very poor programming language over time. It will grow to add conditionals, loops, scopes, macros, and other things that are much nicer in actual code. A templating language is mainly an inner platform effect. It targets a weird imagined archetype of someone who isn't allergic to code, but somehow isn't smart enough to work in a genuine programming language. In my experience, this archetype doesn't actually exist. Designers don't want to code at all, while coders want native expressiveness. It's just that simple. This is exactly what I was getting at when I wrote this recent post about Smarty (in response to the following parent comment proposing building a crippled scripting system for designers), to which somebody insightfully commented "Someone doesn’t like Smarty…" https://news.ycombinator.com/item?id=32886317 https://news.ycombinator.com/item?id=32886317 parent> Even in game development, it often turns out to be a huge mess that coders have to go and sort out after the fact, it's almost inevitable if it's general purpose enough. If you do decide to build a scripting system for designers, I would recommend being very conservative with features and thinking twice before adding any new feature. https://news.ycombinator.com/item?id=32886424 https://news.ycombinator.com/item?id=32886424 >DonHopkins 5 days ago | prev [–] >Just hire competent and trustworthy designers, instead of purposefully crippling the tools you spend so much time developing. The best designers can also code, and if you design a system that discourages instead of encourages designers from coding, you're wasting the potential of those precious coder/designers, and wasting the opportunity to train your best designers to code too. >It's not as if Rock Star can't find anybody qualified who wants to work for them, or any designers who are willing to learn to code in a powerful visual scripting language. >This attitude causes disasters like PHP's "Smarty" templating language. >PHP was already a templating language, but somebody got it in their head that there should be an iron-clad separation between designers and programmers, and that PHP gave designers too much power and confused them, and that their incompetent untrustworthy designers who refused to learn anything about programming deserved something even "simpler" than PHP, so they came up with Smarty. >Then over time the realized that their designers were powerless, so their programmers would have to learn TWO languages so they could wade into the Smarty templates to make them actually work with all the extra code they had to write because Smarty was so crippled, so they nickle-and-dimed more and more incoherent programming language elements into Smarty, making it EVEN HARDER to use and more complicated and less consistent than PHP, yet nowhere near as powerful. https://news.ycombinator.com/item?id=20736574 https://news.ycombinator.com/item?id=20736574 DonHopkins on Aug 19, 2019 | parent | context | favorite | on: YAML: Probably not so great after all One of the most ridiculous examples of this was the Smarty templating language for PHP. Somebody got the silly idea in their head of implementing a templating language in PHP, even though PHP is ALREADY a templating language. So they took out all the useful features of PHP, then stuck a few of them back in with even goofier inconsistent hard-to-learn syntax, in a way that required a code generation step, and made templates absolutely impossible to debug. So in the end your template programmers need to know something just as difficult as PHP itself, yet even more esoteric and less well documented, and it doesn't even end up saving PHP programmers any time, either. https://web.archive.org/web/20100226023855/http://lutt.se/bl https://web.archive.org/web/20100226023855/http://lutt.se/bl... >Bad things you accomplish when using Smarty: >Adding a second language to program in, and increasing the complexity. And the language is not well spread at all, allthough it is’nt hard to learn. >Not really making the code more readable for the designer. >You include a lot of code which, in my eyes, is just overkill (more code to parse means slower sites). https://web.archive.org/web/20090227001433/http://www.rantin https://web.archive.org/web/20090227001433/http://www.rantin... >Most people would argue, that Smarty is a good solution for templating. I really can’t see any valid reasons, that that is so. Specially since “Templating” and “Language” should never be in the same statement. Let alone one word after another. People are telling me, that Smarty is “better for designers, since they don’t need to learn PHP!”. Wait. What? You’re not learning one programming language, but you’re learning some other? What’s the point in that, anyway? Do us all a favour, and just think the next time you issue that statement, okay? http://www.ianbicking.org/php-ghetto.html http://www.ianbicking.org/php-ghetto.html >I think the Broken Windows theory applies here. PHP is such a load of crap, right down to the standard library, that it creates a culture where it's acceptable to write horrible code. The bugs and security holes are so common, it doesn't seem so important to keep everything in order and audited. Fixes get applied wholesale, with monstrosities like magic quotes. It's like a shoot-first-ask-questions-later policing policy -- sure some apps get messed up, but maybe you catch a few attacks in the process. It's what happened when the language designers gave up. Maybe with PHP 5 they are trying to clean up the neighborhood, but that doesn't change the fact when you program in PHP you are programming in a dump.
- DonHopkins 4y ago>So what exactly did we lose? It's quite simple: by moving software into the cloud and turning them into web-based SaaS offerings, many of the basic affordances that used to be standard have gotten watered down or removed entirely. Here are some examples: >Menus let you cross over empty space and other menu items, instead of strictly enforcing hover rectangles. I know the guy, Frank Leahy, who implemented that feature invented by Bruce "Tog" Tognazzini. When he was at Apple, he rewrote the Menu Manager for Mac SE and Mac II. We were working together on a project at Current TV, and reminiscing about how great the original Apple Human Interface guidelines were, and how Apple had totally lost their original devotion to excellent user interface design, and I mentioned how the original edition of the Apple HIG book I had actually illustrated, documented, and justified that subtle feature. Frank proudly told me he was the one who implemented it for the Menu Manager, and that he was touched that somebody actually noticed and appreciated it as much as I did. https://news.ycombinator.com/item?id=17404401 https://news.ycombinator.com/item?id=17404401 https://bjk5.com/post/44698559168/breaking-down-amazons-mega-dropdown https://bjk5.com/post/44698559168/breaking-down-amazons-mega... >Breaking down Amazon’s mega dropdown [...] >DonHopkins on June 26, 2018 [–] >The comments are actually great -- even Tog weighs in! It also mentions Frank Lehey, who rewrote the Menu Manager for Mac SE and Mac II. >Jake Smith • 5 years ago This was first implemented by Apple's HID team back in the 80s, specifically Bruce Tognazzini, I believe. >Bruce "Tog" Tognazzini Jake Smith • 5 years ago Yes, I did invent it back in 1986 and it is firmly in the public domain. From what I remember, it was Jim Batson who worked out the math and coded it for the Mac OS. The OS X team later failed to copy the algorithm, so I am happy to see that amazon has resurrected it. >Josh Davenport Jake Smith • 5 years ago I think it was yes. It looks like it was originally implemented by NeXT and then removed by Apple when they bought NeXT. Tog himself talks about what happened here: https://www.asktog.com/columns/022DesignedToGiveFitts.html https://www.asktog.com/columns/022DesignedToGiveFitts.html in the answer to question 6 - "When I specified the Mac hierarchical menu algorthm in the mid-'80s, I called for a buffer zone shaped like a <, so that users could make an increasingly-greater error as they neared the hierarchical without fear of jumping to an unwanted menu...........Sadly, the NeXT folks, when coming to Apple, copied Windows, rather than the Mac" >markr_7 • 5 years ago Can't comment on the HID team, Bruce, or possibly the many times it was even implemented at Apple, but as a young developer at Apple in the 80s, I remember stopping by Frank Leahy's office as he was tweaking his code to get menus to "work right." I've often recalled the experience because of the time he was spending to get it right, and how the behavior wasn't simple once you started really trying to meet a users expectations. If I remember right it wasn't just the direction, but also time and therefore velocity. For example, you wouldn't want to stick with the wrong menu if the user wasn't really moving with purpose in the direction of the sub-menu.
- arminluschin 4y agoI guess we’re in the “orange” site right now. What is the “red” site?
- DaiPlusPlus 4y ago"Red" is a synonym for Orange in many places; or they could be referring to Blind or perhaps some Subreddit?
- kevincox 4y agohttps://lobste.rs https://lobste.rs probably.
- agumonkey 4y agoFunny how reactive seems recent for people, while dataflow / dag based visuals are old in the movie/cgi industry :) It always pains me to remember a p2 cpu could do realtime nurbs procedural animation (very complex) and yet we still have manual state machines for simpler tasks like documents / filesystems etc This article is right that there's a lot to gain in terms of ergonomics by finding leaner ways. I also think the web stack and dev culture is ready to respond well to this idea.
- rco8786 4y agoWhat is the red site
- pingiun 4y agomy guess is lobste.rs
- gardenhedge 4y agoreally? a site where most posts get 0 comments? I would have assumed reddit (/r/programming) which has a large overlap with what is discussed here (the scary orange site)
- DonHopkins 4y ago>But this is the same company that seamlessly transitioned its entire stack from PowerPC, to x86, to x64, and eventually ARM, with most users remaining blissfully unaware this ever took place. Also from 6502 to 65C03 to 65C816 to 68k to PowerPC... But Apple ][ users were painfully aware of the 68k transition. ;)
- klysm 4y agoAnd calling the ARM transition seamless is also quite amusing.
- CharlesW 4y agoHaving been through it, it was as seamless as one can imagine. Remember that 99%+ of Mac users have no idea what this means from a technical POV, or understand the amount of magic that allows most Intel software to "just work" on Apple Silicon devices.
- DonHopkins 4y agoThe only noticeable seam before the ARM transition was the terribly long and dreadful time between the PowerPC and the ARM when they were using hot ugly inefficient power hungry SpeedStep hobbled x86 and x64 processors jam packed into way too thin a case and hot glued next to swelling batteries without proper ventilation or cooling.
- anthk 4y agoAdium was just Cocoa Pidgin :p. And, well, Kopete was pretty much the "Adium" for Linux/BSD, and KDE3.5 (once you disabled Artsd and enabled DMIX on the Penguin) it was a beast.
- foobarbecue 4y agoI wonder about this: > A templating language ... targets a weird imagined archetype of someone who isn't allergic to code, but somehow isn't smart enough to work in a genuine programming language. In my experience, this archetype doesn't actually exist. In my day job, I write "sequences" to command a spacecraft, in a neutered "sequencing language" with conditionals but no looping. Several people on our team who are great at writing sequences for the spacecraft feel they "can't code" and don't learn other languages. I had assumed the deal with templating languages was similar and this type of people were the target users.
- williamcotton 4y agoCreating ways for people to interact and control a computer by writing but who don’t need to know about deploying to production, scaling databases, managing memory resources, etc, seems like a good division of labor. There are two forces at work here when this division of labor disappears: 1.) increasing complexity in the tool designed for non-computer engineers and 2.) the subtleties of a class of worker who don’t want to do literal manual labor like typing in SQL. At many firms it seems as if there is a layer of operations that is only capable of interacting with a CRUD UI, constricted either by ability or tooling. That is, there is a pressure from management to split a firm in two: those that code and those that do not. This means that even something as simple as making updates to a CRUD interface is entwined with the the rest of the engineering practices. Case in point: computer engineers writing SQL at the behest of some other entity at a firm who is not capable or allowed or even encouraged to learn or understand SQL.
- KronisLV 4y ago> Creating ways for people to interact and control a computer by writing but who don’t need to know about deploying to production, scaling databases, managing memory resources, etc, seems like a good division of labor. I guess it depends on the domain and the lines along which you want to divide your project along. If someone can write back end code but doesn't really know that much about databases, you might end up with an application that does hundreds of database queries just to display one application view or prepare a REST query response. If someone counts as a full stack developer but ends up producing a singleton app that cannot scale to more than one instance (e.g. stores important data in application memory, even things like user sessions), then you also probably have a bit of a problem on your hands. If someone counts as a DevOps engineer but doesn't think too much about security, you might end up with a database instance that's publicly available, increasing the attack surface of your system a whole lot. You can have a division of technical and non-technical folks, you can have a division between the different types of technical folks, but you absolutely do need at least someone who can wear all of the different hats (e.g. partake in a particular role) out there, in addition to them being present at the correct time to bring up things that are actually (or should be) blockers, which would otherwise get overlooked and would result in a horrendous implementation.
- AtNightWeCode 4y agoDid not get the point about back- end. But does people remember how FB used to work? After going to the start-page and some clicks it had sent 1000+ requests. This was back when you could expect max 5 connectios per domain. The site was slow. The Android app was basically just a spinner.
- AtNightWeCode 4y agoThe fundamental flaw of this article is that React as far as I know never claimed to solve all these issues. React mainly handles state and rendering. It is also a common crticism of React. The opposite is a common crticism of Angular. Maybe the article should have been about Angular.
- hantusk 4y agoWhen reading through the comments here, I really feel like the article was misunderstood. My summary of the article is: Point 1: React solved all the right things, but its current trajectory, does not prioritize developing the fundamental tooling we need. React does not allow us to build a new Figma (consistent undo/redo in collaborative settings, immediate low-latency mutation of app state to reflect user changes and building fundamentals to SaaS interoperability) Point 2: People are overwhelmed by the work, and too timid to target the fundamental architecture we need to solve these things. We're just going with the flow. He is leading https://usegpu.live/ https://usegpu.live/ to build the fundamentals right, an encourage people to either: - help out there, if it fits your use case, or - start working on targeting these fundamentals, where most needed for your own use cases, don't just go with the flow.
- deleted 4y ago[deleted]
- deleted 4y ago[deleted]
- h0l0cube 4y ago> React does not allow us to build a new Figma (consistent undo/redo in collaborative settings, immediate low-latency mutation of app state to reflect user changes and building fundamentals to SaaS interoperability) If I wanted to write the next Figma, the first thing I’d reach for is Phoenix Liveview + Channels with Vaxine/AntidoteDB or some other eventually consistent CRDT store for collaborative editing and host it on fly.io - I’d forgo the ‘front end’ completely
- ch_sm 4y ago> I’d forgo the ‘front end’ completely Not to dismiss your argument/stack preference, but forgoing the front end for a graphic design tool might prove difficult. EDIT: But yes, CRDT-backed stores are definitely the way to go for a requirement like this.
- 4y ago
- gardenhedge 4y agoWhat is with vocal programmer types and their love for dancing?
- amelius 4y agoHow can React be so great if Facebook's own UI sucks. They can't even get the back button to work correctly.
- pas 4y agoi think the back button behavior is intentional - at least on mobile. if someone sends you a link to a piece of content on FB and then you use the back button it sends you to your feed, and now they have a much greater chance of trapping the dear user in their algoverse.
- pier25 4y agoI've been doing front end since the late 90s and I disagree with many points here. One thing I do agree is the rant at the end about zoomers. We see stuff like tailwind popping up which really reflects the zoomer ethos of not wanting to learn fundamental stuff like CSS. "It's so easy to get started! Why would I learn anything else?" I think gen Xers and late boomers will be the most tech developped generations because we had to use computers that were hard to use.
- wildrhythms 4y agoOn the contrary, Tailwind necessitates learning CSS. I don't see how someone can write "flex flex-col gap-2 mx-2 px-4 py-2 text-gray-600" without understanding flex, margins, paddings, and seeing how children inherit certain properties. Tailwind doesn't replace CSS; it just moves properties out of a stylesheet and into a component template. That said, if someone is trying to learn Tailwind before learning CSS they're going to have a hard time (I doubt they will succeed at all).
- klysm 4y agoPeople that learned CSS before tailwind was a thing tend to hate the concept. But clearly it has to have some value right? Why is it so popular? I argue that it solves a clear design deficit in CSS. You cannot have tight coupling with CSS and a lot of the time you want tight coupling. In-line styles are insufficient, so we have tailwind. It’s an API to css that lets you tightly couple your styles. The re-usability of those styles is accomplished by composition of components or composition of atoms via @apply.
- pier25 4y ago> But clearly it has to have some value right? Why is it so popular? Popularity doesn't mean much. I mean, look at React. And Tailwind isn't that popular. From Twitter you might get the impression everyone is using it, but if you look at the State of CSS you'll see is not even close to something like Bootstrap or SASS. https://2021.stateofcss.com/en-US/technologies https://2021.stateofcss.com/en-US/technologies
- makeitdouble 4y ago> The very notion of "back-end" is a fallacy: it implies that one can produce a useful, working system, without ever having to talk to end-users. This is a small part of the rant, but he is fundamentally mistaken about what backends are. The real life equivalents are not bridges, but kitchens or back-offices: a place where you make the sausage so that the customer can have a delightful experience without the gory business part in sight. It’s not disconnected from end-users, quite he opposite, as it’s suppose to realize the core value of the product. I don’t agree with a lot of other parts of the rant either, but the global message of “react needs to evolve in a different direction” is I think interesting.
- makeitdouble 4y agoThe more I think about it, the more this plea to push web frameworks in the direction of desktop apps feels misguided. I know Chrome OS is really seen as the way forward for many many people, but what if they are just betting on the trend to last, when it is just the usual cycle of “applets” vs local applications ? The same way Java was pushed in the browser, to then cement its role in desktop apps (or the Flash -> Air progression), wouldn’t javascript heavy work sites at some point move to a native JS hooked into the system and opening the door to system wide drag and drop, undo etc.
- faangiq 4y ago>what’s a computer? t. average zoomer
- wildermuthn 4y agoExcept for the non-dancing zoomers catching stray bullets at the end, this is a really great rant. He’s absolutely right that React won for very good reasons, reasons that new frameworks don’t seem to understand by making old mistakes (templates and directives, looking hard at you). But the rant goes deeper in its accusation that React (and the web) has forgotten the past as well. React (and the web in general) isn’t a great solution for data that is 1) real-time, 2) multi-user, and 3) contextually undo-able. He’s not wrong, but I wonder what kind of applications he’s working on that require all three of those characteristics simultaneously. If you only need 2 out of his 3 data requirements, then React + Apollo can handle it just fine in experienced hands. For apps that truly do need all 3 capabilities, the problem isn’t React per-se. The problem is that such apps are just complex by their very nature — even by reducing accidental complexity to zero, you are still stuck with a huge amount of essential complexity. That’s just the nature of the beast. Although I have long since moved on from Clojure since Rich Hickey made it clear Clojure was not about me but about him and his consulting business, you really need a powerful language like Clojure to do something as tricky as the author wants poor little JS to do. Someone one described JS as a cute dog with three legs — you feel for it, and take care of it, but you know it really isn’t capable of too much. A hard problem needs a powerful tool, and nothing written in JS (kinda-typed or not) is going to get the job done.