Live data from Hacker News

Is software abstraction killing civilization? (2021)

datagubbe.se

151–160 of 219 posts

Re: Is software abstraction killing civilization? (2021)

#151

I teach the systems class at Montana State, where we go from transistors up to a real computing system, and I have students that don't understand what a file system really is when they start my class I agree that blow is wrong on some details, but I really think we need to be thinking hard around a NAND-to-Tetris style education that starts in high school for our technical students. I use "outdated" models like Littl…

This depends on the specialization. Computer science vs. computer or electronics engineering, for example. Computer science, despite the misnomer, is not about computers, even if computers are an indispensable tool in the field. Computer science is all about abstraction and language modeling of a domain and their application; the computing technology of the tool, however important practically, is an implementation de…

I like this description a lot, but I think it needs a caveat or two. Most people writing code today are not computer scientists and don’t understand many of the mathematical fundamentals.

I’ve always thought of programming as 1 part science, 1 part craft, and 1 part art. The percentages of those parts vary depending on the job. There may be 0% science in some roles (outside of writing functions). I think the vast majority of programmers are firmly in the craft camp.

Re: Is software abstraction killing civilization? (2021)

#152
„ If we forget low level stuff, civilization will fall apart since we won't be able to keep vital software running.“

I argue the other way around. There is too mich complexity involved with using low level systems to model high level processes. We use the wrong tools and often model our system in a way which mimics the initial dataflow instead of discovering our domain and have a higher level understanding.

Complexity kills. And we must do everything in our power ti keep complexity to its minimum and avoid accidental complexity.

Re: Is software abstraction killing civilization? (2021)

#153

I teach the systems class at Montana State, where we go from transistors up to a real computing system, and I have students that don't understand what a file system really is when they start my class I agree that blow is wrong on some details, but I really think we need to be thinking hard around a NAND-to-Tetris style education that starts in high school for our technical students. I use "outdated" models like Littl…

> When I look at modern 64 bit architecture books that get suggested for me to teach with I just laugh

Why I recommend Bryant/O'Hallaron's Computer Systems: A Programmer's Perspective (for comparch) to newbies, as coding is what most folks are likely to be doing early on.

https://books.google.com/books/about/Computer_Systems.html?i...

Re: Is software abstraction killing civilization? (2021)

#154

You make some very good points here. I've watched the talk too and criticism of it is important. I have to say though Blow is right when he says: "you can't just Draw pixels to the screen" I am a game engine programmer at a 'medium sized' games company and it is becoming VERY difficult to hire anyone to work on graphics code. DX12 (and others of the same generation) is a massive step up from what previous generations…

> Unless something changes, the hiring pool is going to continue to decrease in size.

Or, we'll see the return of "trainees"?

Re: Is software abstraction killing civilization? (2021)

#155

„ If we forget low level stuff, civilization will fall apart since we won't be able to keep vital software running.“ I argue the other way around. There is too mich complexity involved with using low level systems to model high level processes. We use the wrong tools and often model our system in a way which mimics the initial dataflow instead of discovering our domain and have a higher level understanding. Complexit…

> And we must do everything in our power to keep complexity to its minimum and avoid accidental complexity.

We aren't avoiding nor minimising complexity (by being at higher levels) but merely being ignorant of it, which is okay, too; until the abstractions leak: For example, folks working in hpc / cybersecurity have no such luxury.

Re: Is software abstraction killing civilization? (2021)

#156
post #27

I think JavaScript on the server and React and these things has really made the web a mess of software development compared to how little stuff it actually does. I know for a fact a bunch of kids now do not even know that HTML is what gets rendered in the browser. They think that React is itself what browsers render. Not to mention the absolute idiot of a CEO of Vercel who thinks React is the Linux kernel of developm…

> They think that React is itself what browsers render My kingdom for native JSX in the browser. That would be awesome . Something similar to how we have WebGL and Canvas, but for pure JavaScript UI without the extra step of DOM reconciliation. There’s a small (and growing) cohort of people working on rendering React Native directly on canvas or webgl (I think). Supposedly gives you super smooth UX, but I haven’t kno…

oh no. At this point, we just need something that doesn't use the stupid combo of two languages(one markup and one style sheet) for UI and one(totally single threaded) for UX that allows people to share and view simple text and media to one another. Maybe then we can rid ourselves from constraints like having to stick to JS or a Virtual Machine like V8 while settling on poor implementations like WebGL and Canvas. WebGPU is still not a thing and it probably won't be anytime soon.

A new web browser or another JS runtime won't be the solution to the current mayhem. What could actually be helpful is an alternative to the "web browser" that operates on an entirely different stack than the currently JIT overdosed JS engines. But since everybody is well accustomed to and excited about improvements within the current madness(like this comment), adaptation of any alternative web browser like software will be highly unlikely even if it were several folds better at transferring media and rendering graphics with a much simpler approach and high performance. We are officially fo*ked.

Re: Is software abstraction killing civilization? (2021)

#157

„ If we forget low level stuff, civilization will fall apart since we won't be able to keep vital software running.“ I argue the other way around. There is too mich complexity involved with using low level systems to model high level processes. We use the wrong tools and often model our system in a way which mimics the initial dataflow instead of discovering our domain and have a higher level understanding. Complexit…

> And we must do everything in our power to keep complexity to its minimum and avoid accidental complexity. We aren't avoiding nor minimising complexity (by being at higher levels) but merely being ignorant of it, which is okay, too; until the abstractions leak: For example, folks working in hpc / cybersecurity have no such luxury.

You are right, I should have been more accurate in my depiction. Inherently technological problems require low level-technological solutions. There is no way around that.

But most complexity I see arrives from just moving data from A to B to automate everyday bureaucratic tasks or enable data analysis. And the needless complexity I encounter in such systems is just mind boggling.

Currently I am working on a government system which captures tasks for long running procedures such as approving power plants. And the way the devs are treating this system is borderline criminal, acting as if this is just another CRUD app without any structure or architecture.

Re: Is software abstraction killing civilization? (2021)

#159

I teach the systems class at Montana State, where we go from transistors up to a real computing system, and I have students that don't understand what a file system really is when they start my class I agree that blow is wrong on some details, but I really think we need to be thinking hard around a NAND-to-Tetris style education that starts in high school for our technical students. I use "outdated" models like Littl…

Actual old fashioned file systems aren’t really in use anymore, and the computerized versions hide the details, you don’t even get a command prompt on an iPad. I’m pretty sure my 8 year old has no clue what a file system is yet (I learned at about 7 when my dad brought home an Osborne with pre-DOS CPM to play around with). Computers don’t require you to know that stuff anymore just to use apps and save/get files.

The details being hidden on toys doesn't mean they're not relevant to a course training people to be developers...

Re: Is software abstraction killing civilization? (2021)

#160
post #113

Earlier quoted context omitted.

Mind you, I’m a former x86 asm and C guy who avoids writing HTML. Web 1 state transfers never made sense to me. It just doesn’t click, I don’t think this way and refuse to do so in the name of not sure what. And while I despise react for its architectural delusions, I still use a js framework to render my webapps. I also don’t see any bloat or something, they all render instantly on both my pc and my phone.

> I also don’t see any bloat or something, they all render instantly on both my pc and my phone. That's because both our phones and computers have multicore CPUs running billions of instructions per second per core. So all the bloat gets executed quickly, and we don't get to notice that it's there. But it's there. And it's dirty.

Due to my "roots" I'm capable of painting a "site" fully myself, given only the windowing API and e.g. pango/cairo (too lazy to reserach into skia) and a few utility libraries. I had actually created a fully working gui framework in the past using only drawing and windowing libs.

And I can tell you that a browser is an absolute technological atrocity that is full of binary bloat and practical (as in, not on paper) inefficiencies. An additional layer that generates 2000-or-so {}s per mutating interaction doesn't add much to this. It doesn't add anything at all, unless you're armed with a profiler.

"Browsers are fast and efficient" is a fucking lie. Same for HTML. You're looking for bloat in the wrong places. The only reason you don't realize it is because

both our phones and computers have multicore CPUs running billions of instructions per second per core. So all the bloat gets executed quickly, and we don't get to notice that it's there.

For example, this almost empty, absolutely js-less "Add comment" page I'm writing this comment on takes 50MB (a clean browser run, ALL plugins disabled). That's only the page -- the entire browser takes 450MB.

A full-blown gtk-based backup app that I'm using, with numerous screens and layouts, only uses 14MB, and total 35MB after I click through all of its screens, settings, managers, etc. You can't even fathom how much memory it would take if it was browser-based.

Post reply on HN