Hacker News new | past | comments | ask | show | jobs | submit login

In server-side rendering, clients are sent HTML that they can see immediately

I noticed this too. You can put a plaintext file on the server and it gets transferred to the browser pretty fast. You can also put another plaintext file ending with .css on the server and it can make things on the first page move and look really nice just because the browser knows what to do with it.

It’s a neat trick but still second to useful content on the first page (that is the page you get to read, if it lets you).




My brother just started learning web development this past year and his mind was blown when I told him you could send HTml over HTtp.


I slapped my forehead when I was reading a thread about HTMX and someone asked. "How can you send HTML to the browser without JavaScript?"


It's not React's fault but the ignorance of the average React dev never stops surprising me. From using divs for buttons or links to this.


I think a big part of the problem is how online education and bootcamps/college degrees for web-dev are structured. Often times people are so overwhelmed with the stack they are supposed to learn that quite obvious and important stuff gets lost. People just try things out until it works without understanding the underlying structure. If you come from a simpler MVC framework like Rails or Laravel, it enables you to focus on the really important stuff first, and explore from there. It is also much more rewarding to see some solid results early.


Yeah the issue is that beginners are not learning web dev or even front end, they are learning React.


Yeah modern JavaScript frameworks heavily discourage semantic markup, and I’m salty about it.


Svelte must be an exception to that rule because semantic html is a first-class citizen.


react-native-web


Yep... yep.


God help us. It's not his fault, to be clear, but God help us.

The problem is the dogmatism of it all. If you point to a simpler and a more obvious solution, your coworkers will ridicule you and turn you into an old man pariah.


Tell me about it. I had a lot of trouble in job interviews last year.


Please help the guy before he gets too far along. Some of us might have to work with him.

Seriously though, I saw someone described as a 22 yr old software engineer in an article. There is a better term: "Software Engineering Apprentice"


For context, he's 40 years old and working in data science after a career switch from another data-heavy field. He's just learning web dev to build internal pages for displaying stuff, so no need to worry :D


Unionize already.

It's not just about wage, it's about assigning appropriate work to peoples level and having them progress through the most efficient steps to mastery while also completing billable hours


> ...it's about assigning appropriate work to peoples level and having them progress through the most efficient steps to mastery...

that's the opposite of what a union does. A union rewards seniority and nothing else.


Yeah...OK. Found the union hater.


Normally workers unionize to improve their poor conditions vs an abusive employer, and when they have little to no ability to find another job for similar/better terms. Is that the situation for software devs where you’re at?


That may be common circumstances where a union becomes the only viable option for the workers, but unions have additional benefits that something like it would greatly benefit the software industry.

In particular, it's the assignment of work to the union and then the union is responsible for pairing workers with the assignments which enables the union to create a training funnel where different requirements of the same job can be split among different workers of varying seniority such that apprentices are able to work on the easier items even when there are things beyond their skill involved in the overall work assigned to the union.

Typically a union does primarily exist to create CBAs for wages but this is another function of them which I think would be very helpful for SE and future protection.

So maybe not a traditional union is necessary, but I think there are some functions more or less exclusive to unions right now that would be beneficial to apply to SE. Hopefully that makes sense


While we're gatekeeping, how about "Software Developer Apprentice"? This stuff isn't technically engineering.


Reminds me of the joke about, "Omg, that's amazing, the new iPhone will support voicechat ... and you can use your phone number as your screenname!"


A joke made even funnier by being true (FaceTime Audio)


The problem is that browsers started out as hypertext clients and unwittingly evolved into application platforms to implement, among other things, custom hypertext clients in it. Somehow “lets add more features to make hypertext more capable” turned into “you’re on your own now to implement a usable application with this big incoherent pile of impedance-mismatched features”.


You might be interested in this article by the creator of the HTML5 spec: https://news.ycombinator.com/item?id=34612696

He talks about using WASM for applications and HTML/CSS/JS for basic websites.


The article link (not yours, but the link to the article from your link) doesn't seem to work.

What does he suggest we do about the UI layer? Draw pixels on a canvas from WASM?


Try this link: https://docs.google.com/document/d/1peUSMsvFGvqD5yKh3GprskLC...

Yes he says to use a language that compiles to WASM for the UI parts to draw pixels on the screen.


Isn't this a redo of Flash and ActiveX, then?


Yep, and it's pretty nice. However, he talks about important things that weren't in Flash, like accessibility, and how to handle them cleanly.

It really seems like WASM will be the write once run everywhere runtime that was touted in the past. Java almost got us there but was too dependent on Java, whereas WASM is for any language. I've been using Flutter with their experimental web WASM support and it's very fast.


I think this makes sense for complex apps like games, CAD and design software, etc.

I hope it doesn't replace the lowest common denominator of HTML for generic apps, though, if only because it would dramatically raise the barrier to entry (not that your typical React app is particularly readable in the inspector...).


Yeah Figma is in WASM and it's great that it is. I don't see it coming for React apps, really. Or if it is, that the JS tooling itself will automatically convert it to WASM.

I personally use Flutter for a lot of my apps, as well as React/NextJS for SEO based apps, the combo works pretty well.


Yeah, Figma's tech is incredible! Especially when I use side by side with Microsoft Teams, lol. One's a complex layered drawing app with plug-ins and imports and the other is a glorified chat app... guess which one is 10x slower and crashes every half an hour?

Whelps. Time to learn C++ again!


Might I suggest...Rust? It really is a great language and it has excellent WASM support due to not being GCed, just like C++.


Good idea. Sounds fun, actually!


What next? Are you going to tell me you can send down a text file that runs code on a page by page basis?


Blasphemy!


I thought we had lost that technology.


We must seek the knowledge of the dwarves.


Every CPU in the whole must regenerate websites from json descriptors. That's how it should always have been.


Why did we abandon XSLT?


Never have. Just renamed it to node yaml.


nah. xml was much better !!!


XSLT still works in browsers believe it or not. It's great for making templated static sites.


I find XML quite readable but XSL's mix of logic expressed in XML and XML content is just awful. Syntax highlighting does help somewhat though.


An elegant technique, for a more... civilized age.


We should probably create a vault in the Artic and store bits of HTML, just in case... you never know.


What is this sorcery you speak of?


Careful, my child, for those who speak of these things are forced to leave their tribes and wander forever in the deserts and the wastelands.


Truth


To cap it all off, I'll add some dynamism with cgi-bin magic.


I've developed a simple programming language to make this a bit easier, I've been using it for my Personal Home Page.


I wonder if you could use it to call some existing C libraries. Maybe just add some wrapper functions to execute the compiled binaries, and return the result. As long as you keep the same order of arguments for the function call, this could be quite straightforward. /s


You have lost the Perl of Wisdom possessed by the ancients....


Well get ready for Advanced Server Pages then! /s


Why use kubernetes and the cloud when you can FTP or rsync your code onto a box?

Simpler times.


2nd law of Thermodynamics: Entropy increases over time.

Quoting[0]:

"The entropy of a system can in fact be shown to be a measure of its disorder and of the unavailability of energy to do work."

I rather like that - where "work" is the time spent solving first order business problems, and "disorder" is a measure of the energy spent not directly solving the business problem. AKA dealing with accidental complexity.

[0] https://www.coursehero.com/study-guides/physics/15-6-entropy...


I just ssh to the server and edit the code there, I never understood why people need to have two whole environments that they keep in sync.

(though seriously, in my dorm room in the 90s, my pentium 90 desktop at the end of my bed had a fixed IP address and was the server...)


Now add 5 people doing that at the same time and report back on how scaleable that solution is.


That's how we did it at my first gig with PHP and Drupal. I'm not going to say it was great or even particularly good, but given our work was split across different modules, you could easily have multiple people either uploading changes over FTP or doing some quick hacks over SSH. After all, you only needed to copy over your changes and not re-deploy the entire project. The server was a little Dell box sat under the desk of the 'CTO' in his office.

There were some cowboy-level engineering practices for sure, to the point that I'm not sure you could call it 'software engineering', but there was definitely some beauty in the simplicity of that setup compared to what we typically have to do these days. At least after you set up the box and the access to it, anyway.


You need Kubernetes for a product which has a 5 people team?


Resume/CV won't pad by itself


I deploy my static blog via rsync. I also have Isso [0] on it. No need for a back-end web framework or anything.

[0] - https://isso-comments.de/


Sure, that's what we'll do! Sounds grand!

By the way, we need to add another feature to our page, would you mind looking through that file so there are no class collisions? What do you mean its too long? 50k lines? Pfft.. But at least it 'gets transferred to the browser pretty fast'


Be sure not to disturb this apprentice's troubled mind with such highly advanced topics as server side includes and related sorcery.

Do not awaken the Ancients for only the pure of heart will survive such an encounter.


Yeah 10 different files with 10k unorganized lines each is totally different :D

I swear you js haters never fail to make me laugh with all the ignorant lamentations.


Do these guys actually think you should only write a singular (or maybe even a low plural number of) html file(s)? That’s crazy haha, that’d be pretty rough to maintain!

Could they have been joking that, maybe, there’s a lot of folks who are a little too tunnel visioned on the newest most modern js metaframeworks that they have little or limited knowledge of the foundations of their ecosystem? Given that you know something about html files and basic web servers, was your position necessarily the original subject of the joke/point here? Surely it was! Gruff old school devs are so obstinate and short sighted haha.

You opened, intending to construct an argument on your genuine position, with a massive strawman, on a lighthearted commentary over a line from the article that was purposefully taken slightly out of context- not even remotely a tirade on “js hating.” You’re not having an argument in this comment thread with anyone, because no one was even discussing anything to begin with.

I think there’s things to laugh at here (like the original joke) that aren’t how genuinely stupid you think the commenter who is ironically replying to every of your comments in a vague and mystical tone.


You utter these heresies whilst holding 10k files each containing 10 demonic incantations.

Let us not sink into unproductive musings of the intellect, but meditate on the nature of the pendulum swing.


My ducks are in the row and there is no pendulum swing. There is one only in people's heads. People who didn't learn the tools then (when JS era started) and are refusing to learn them now (when more and more focus is on SSR). These people's opinions are irrelevant as their only argument is that they didn't invest the time to understand the benefits.


I, too, hail from those lands overrun with the elemental curly brackets. Yet my understanding has matured and is now ready to receive new wisdom and insights.

I would be careful assuming too much about us, who are wise in the ways of the world and, dare I say, exceedingly goodlooking.


> These people's opinions are irrelevant as their only argument is that they didn't invest the time to understand the benefits.

Wouldn't the same be true of "JS era" developers who never learned the basics of a static website or a templated server-side app? If the issue is being too lazy to have more than one tool in your toolbox, then it applies to everyone.


You are not your technology.


Im14andthisisdeep :) Did I ever say otherwise? Tools are invented to make things more convenient and not learning them properly is not an excuse to whine.


You are wholesale calling people ignorant over a technology decision.

> When disagreeing, please reply to the argument instead of calling names. "That is idiotic; 1 + 1 is 2, not 3" can be shortened to "1 + 1 is 2, not 3."




Consider applying for YC's Spring batch! Applications are open till Feb 11.

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

Search: