30 Million LoC Problem

youtube.com/watch?v=kZRE7HIO3vk

Is he right about the state and necessary future of software development Jow Forums?
I'm not knowledgeable enough to judge.

My best summarization:
>The "30 million" refers to all the known/approximated code underneath your code/a software writer's code
>The problem with modern software and software development is that we are writing software on top of software (Operating Systems) instead of hardware, like back in the 80s and early 90s

>The reason for this is a mixture of hardware manufacturers not cooperating, laziness, and historical hardware experimentation which is no longer valid
>It's impossible to reliably test code because of the massive abstraction you're working above
>It's impossible to make truly performance or creative code due to API limitations/friction, and bugs
>It's possible for hardware guys to make an ISA for a SoC (which is a very likely future of PCs)....
>and this is what they should do so we can make software independent of the OS and all other software (if desired), or at the very least far more independent (memory given and taken from an ISA instead of the OS)

Attached: Handmade-Hero-1.jpg (646x387, 56K)

Other urls found in this thread:

unikernel.org/
urbit.org/
destroyallsoftware.com/talks/the-birth-and-death-of-javascript
twitter.com/SFWRedditImages

Abstraction exists for a reason my dude. It's not an obstacle alone.

>my dude
i'm a girl.

kys trannyfaggot

I watched this guys rant the other day. He's rather vague on what exactly his proposal would look like.

this

and dont come back retard your post is shit

all abstractions are leaky though, the more code you have the more likely those issues are gonna bubble through

unironically this

K

If abstraction is such a big problem, how come we don't see companies vertically integrating their own hardware and software solutions? Apple is kinda doing this and even with extreme profit margins they aren't delivering a much better experience than anyone else.

This. I, as a programmer, don't wanna deal with NUL pointers, bit ordering and similar shit. It's not fucking 70s anymore.

Isn't this what you already do in C and C++?

Gah! Can't you just wait for a couple hundred of years? It will iron itself out.

We're all little girls in this board user.

that’s because you’re dumbfuck nigger cattle

Wouldn't it be too difficult to make hardware and embedded systems that could be compatible with other hardware?

I'm pretty sure most people aren't going to invest into a new computer with a new OS.

Would not agree in the slightest as a currently working developer. No body cares about how fast the machines that run the code are as long as the software doesn't 'feel' sluggish. Near-future will have all work done on 'cloud computing' and just have results sent to phones and tablets. Your browser is your new OS, everything is a web-app with an expendable API. Also it's easier than ever to get your own SoC chip mass produced thanks to China.

2/10 for narrow view of both computing and economics.

Attached: yup_os.png (740x189, 43K)

he's right, software has long been out of control and the experience for the user sucks ass

No, it's really simple if you're strictly operating your own ecosystem in isolation. Any fortune 500 company would be able to fund it. The fact they aren't doing that suggests to me the approach isn't actually desirable. Abstract is the language of communication across ecosystems with their own idiosyncrasies. Communication is king not individual efficiency because individuals aren't very productive by themselves no matter what tools you give them.

He isn't, really.

> No body cares about how fast the machines that run the code are as long as the software doesn't 'feel' sluggish.
You don't care. Programmers who don't just shit out dumb apps for a living actually do.
What he criticizes is that access to hardware is shitty as hell, and I'd be great if someone would unify hardware access and make it simpler.
All of this is completely possible.
But because broadcom and nvidia even prefer their shit to be closed binary blobs, nobody can create a competing OS for example at this point.

No, what we need is more abstraction with modularity on top. You take your hardware and abstract it using the most minimal flat assembly for that platform. This low level software layer acts as boot firmware (and maybe an EFI) that would also provide some sort of sockets or something that the OS kernel and drivers can plug into. Using a microkernel would make this super easy. Then on top of that you can run a display server, window managers, and user apps, and maybe a subsystem similar to systemd or DTrace for init and special services management.

Silly proposal. If you work in embedded system you would know that you can go anywhere from bare metal to full OS.
People are not doing it because other people, way more clever and autistic wrote already all the basic fucntionality you may need to rewrite for every project.

didn't watch but sounds like this guy is a massively retarded faggot

t. visual studio developer

I'll take abstraction over developing for bare hardware any day.

Do one of the following:

BASIC interpreter (only)
Linux from scratch (bare bones drivers and software)

This is only a problem if you are a new fag retard.

You didn't watch it, did you?
This is NOT what he is talking about.
>People are not doing it because other people, way more clever and autistic wrote already all the basic fucntionality you may need to rewrite for every project.
These exact people are what this is supposed to be for, you retard.
An example:
A smart gamedev wants more fps for his game and already knows a good way to optimize his engine, but OpenGL (for example) doesn't expose anything in its API that lets him do this particular optimization.
Which can even be the case when the internal driver actually does make use of what is necessary to do this optimization.
This is because OpenGL abstracts over a huge set of possible graphics hardware.
As it turns out, this huge span is pretty unnecessary though, because most graphics hardware is actually pretty similar to begin with.
Now Vulkan exists to somewhat fix this issue.
And what is the result? Better performance for those that want it.

His idea is to take it one step further, and unify hardware access in a straightforward manner, similar to what already happens with the CPU.
An idea could be something like an ISA for Devices.

This doesn't mean that Abstractions can't still exist and be shared anymore, they would just now be possible to be written by everyone.
The hardware manufacturers could even ship the very same abstractions, but now as a form of library.

My guess is that something like this will come from the RISC-V field, because it is pretty nicely extensible.

>as long as the software doesn't 'feel' sluggish
unfortunately software does usually feel sluggish
not to mention web pages often feel slugging as well.

A simple resulting benefit would be prefect hardware support in fringe OSs.
No need to reverse engineer Nvidia drivers anymore for freedom.
Plan9 with graphics acceleration support would be quite interesting too.

> Linux from scratch
> systemd is 2 million lines of unaudited code with ties to alphabet agencies

Pick one

No, that's because I want to get shit done instead of recompiling linux kernels all day long.

>unironically supporting software regression
>in this timeline
>on this image board

This species really needs to fucking end its existance

Well the problem is old apis rely mostly on cpus to compile into machine for gpus. Vulkan does cut down on compiling and no screen tearing but the overhead it takes makes dev times longer which cuts into profits. In the end its only about money though vulkan is gaining support the switch os is built on it

fuck you programming decent hardware would be fun and not hard

While your 'getting shit done' is fapping to trannies being fucked by black bulls on pornhub, for some people compiling Linux Kernels is _actually_ their getting shit done.
Guess who knows more about tech?

hahahaha u got misgendered on the internet

Fapping to interracial tranny porn is more productive than anything you could do on Linux

Stop grooming underage girls.

Attached: 1526870209882.jpg (760x460, 128K)

>no TITS or GTFO
the absolute state of Jow Forums

you're right, and some faggot's going to come along and say "lol upgrade"

Im a firm believer that most programs should run WELLon a 1ghz cpu with 1gb ram. web browsers, office suites, etc.

Ironically this exists within the highly abstracted walls of the amazon fire tablet.
>inb4 shilling
I don't reccomend anyone support their botnet, but the fire 7 has 1gig of memory and an absolutely anemic little dualcore cpu yet it manages to be functional for the purpose of delivering botnet media to the drones that consume it.

don't you just love when you click something and there is no immediate response?

Direct hardware access running in userland what could go wrong.

>the botnet... finds a way

Pic related is the Beauvais Cathedral, it was made around 1270. An insanely ambitious construction for its time.

You see those ugly bars around it at right?

They are structural supports. There are a lot more on the inside.

They were put there because the Cathedral was collapsing. It was too big and it didn't had the proper foundations modern architects would use.

It is an early example of mankind fighting complexity with brute force.

Our software systems are like this Cathedral, we don't really understand them at a foundation level, and we don't really understand the layers of abstraction we have put into them.

Eventually no ducktaped support is gonna save us and everything is going to collapse.

Attached: 1200px-Beauvais_Cathedral_Exterior_1,_Picardy,_France_-_Diliff.jpg (1199x933, 334K)

I know, right? Modern hardware is so complicated, that it is impossible to develop for - exactly what this guy is talking about.

>i solved the problem of memory management and endiannes which is present since the 70s
>how?
>i let others do it

One day we'll be using 100,000 LOC microkernels, right guys? One day bloated GNU binutils won't be standard, right?

Attached: 1526854533170.png (711x336, 240K)

exactly, this is Jow Forums, not /b/
Jow Forums doesn't care about physical pleasures

lol, how can you have physical pleasure with 2d girls (male)?

exactly

This is something he actually suggests in the video, that people could write abstraction for the people who want it, but you still have the option to go low level if you want. You can't do that at the moment.

What a dumb thread.

We solved plenty of problems in computing and moved on to bigger, more complex problems that require bigger, more complex systems.
Sure CS would be comfy if everyone just reinvented and implemented bubble sort forever. It would also be fucking useless.

I don't have time to take a part all the stupid point you made so I'll just crown the stupidest:
>It's impossible to make truly performance or creative code due to API limitations/friction, and bugs

You can't write good software because *other* software is bad? Literally just get good.

unikernel.org/
urbit.org/
destroyallsoftware.com/talks/the-birth-and-death-of-javascript

If you retards refuse to use assembler/C and follow degenerate like torvalds who is proud on having bloated kernel, chasing line count like insane, then no wonder everything went to shit. Care about freedom, care about functionality but also refuse to use bloated shit and learn how to make your own solutions. You have all the tools needed literally everywhere.

Call me the next time you have to make an IRQ handler or reinvent scheduling.
We have operating systems for a reason.

>LFS
>compiling bloated shit of linus
>compiling bloated shit of stallmeme
Just write your own OS nigger.

I can't believe you're accomplishing anything with assembly/C if you can't even learn fucking English.

faved and shared

>muh ASM
>muh C
>muh bloated kernel
You are doing yourself a disservice by endorsing a bloated compiler with spooky optimizations on top of a bloated as fuck architecture and then calling it minimal.

>like back in the 80s and early 90s
They had operating systems back then too, you know.
They weren't fundamentally "closer" to the hardware back then than we are now.
I can still write a C program that makes a syscall from userspace.

>compiler
Just write your own compiler nigger. Linus fucked you to ass pretty hard you will defend him even on your deathbed xDDDDDD

>bigger, more complex problems
examples? it seems to me like we're doing the same things as before (e.g. using a word processor) but with exponentially more resource consumption

>You can't write good software because *other* software is bad?
you can't write fast software if some abstraction below it is slow

>chasing line count like insane
Most of the lines in the linux kernel are just drivers, which aren't loaded unless the hardware is actually present, and can easily be compiled out.
I'm not going to say Linux is minimal, but the core is not as bloated as the line count suggests it is.

That won't fix x86. Now you have to deal with the huge over-engineered instruction set yourself.
Now please kill yourself you waste of space.

someone recommend a word processor with very low LoC for windows 10

Problems that have been solved for 20+ years are now nightmare hellscapes of unsupportable broken lagging trash.

No one can extend, modify or fix anything any more without making things worse. Updates have to be forced down the customers throat and everything has to paid for by stealing peoples data because they sure as hell won't pay for this bullshit.

And that's just the internet. Everyone's windows/mac computer is just one press of that update button away from total disaster and god help your iphone/android shit.

And of course some microdicked, object oriented, package managed javascript cocksucker will come along and tell us that everything is fine.

The next big thing in computing is going to be throwing your computer in the trash and doing everything the old fashioned way if we don't sort this shit out.

Then it's not the software that's slow, and it doesn't mean the abstraction has to go.

a girl(male) or girl(female)? I prefer girl(male)

bobs

by abstraction i include system libraries and quasi-system libraries

TempleOS

It's really disturbing how we slowly approach a state described in sci-fi dystopias such as Asimov's Foundation or WH40K, where in contact with technology we perform rites that we learned from our predecessors, having no idea how or why they work

I'm fine with worshipping the 'machine god'.

nothing fucking works correctly, everything is unresponsive, everything chomps ram and cpu time, everything thrashes the hard disk, everything is riddled with bugs. these are all symptoms of needless complexity and mindless stacking of software e.g. frameworks.

wash it all away and start from ground level again

even if it's just a rotten corpse (technologically speaking)?

Attached: God-Emperor.jpg (1115x1386, 296K)

I really want this. I envy those who were in on this at the ground floor in the 70s.

Omnissiah and the Emperor are different entities.

You can build an all new OS on any hardware you want as long as you port and update basic web browsing and office software. Look at Chromebooks. They offer battery life above all else, and they sell like hotcakes.

Aren't. God Emperor will become Humanity's own God representative considering the worship being poured into him. Mars merely uses a different term but their worship goes into his image as well.

Good. Just keep renting those shitty VMs from Amazon and Google to run some shitty webapp backend in a container.

>examples?

Well how about fucking word processors. Simply having to deal with all the different file formats, hard ware and other software out there require it to be way more complex then just saving a string.

Also there are plenty of amazing apis out there. Sure, there are a million shitty ones. But if your api is shit you shouldn't be writing software based on it. You should be writing a better api.
>a stacked some shit on top of other shit and all I got was shit
yeah no shit

>word processors. Simply having to deal with all the different file formats, hard ware and other software
jesus christ

is that the reason everything's so fucking unresponsive and resource intensive now? "file formats, hard ware and other software"? really? is that it?

Dude is a unisex term. There was no reason for you to bring it up and paint yourself a target.

Casey is literally me except he know his shit.

>hurr it was fine to program c64 in assembly and so it's fine to program modern octacore computers in assembly as well
if shit works, shit works. you're not gonna pay for some autist to code everything in raw C with no libraries and reinvent the wheel 30 million times if you can pay a dollar for paajet to do the same with 10% performance impact and three times memory usage. and it's not bad, it's fine, it's fucking good that we can build more complicated stuff based on someone else's work

His streams are great if you want to learn shit.
Hours and hours of detailed content.

And here comes another brainlet.
Actually watch the video, or at least read the fucking thread before spewing your garbage.

>it don't wanna deal with the basic, relatively simple, programming stuff but I wanna work as a programmer anyway

>hardware and software
>is that it?

Dude the amount and capacity of hard and software has been skyrocketing for decades. It's not a small change.
That and every computer being connected to every other computer adds an whole other layer of what-the-fuck.

I'll also happily agree that there are a shit ton of slow, bloated programs out there. I just have a problem with OPs and others attitude of "It's impossible to write good software anymore" and then they go on to blame everyone else for their problems.

Also if-current-trends-continue graphs/arguments are usually bullshit.

>Dude the amount and capacity of hard and software has been skyrocketing for decades
that doesn't make software slow.

No that's what adds the complexity.

it's a fundamental problem of any SYSTEM; technological, mechanical, social, political, economical, or otherwise. the more complexity you add (the more power you give) to an existing SYSTEM, the more difficult it becomes to maintain, scrutinise, control, and indeed, break away from. this means that the public is more likely to experience Stockholm syndrome symptoms and support the SYSTEM, because they would be unwilling or incapable of imagining their life without it. this includes totalitarian governments, vendor-locked software, overengineered vehicles, instruction set dependent software, and Google's "let me do everything for you because I've studied your actions long enough to be able to accurately replicate them" software. like any overbearing SYSTEM, it will inevitably collapse. the greater the complexity, the more catastrophic and far-reaching the consequences of its collapse.

Attached: ted-kaczynski-2.jpg (900x750, 65K)

>not putting your comment in a docker container on AWS VM

LMAO GRAMPA

literally Google's Selfish Ledger.

>Unified ISA on all devices
>An exploit is found inherent in the architecture (see: Spectre)
>Now ALL of the code base has to be fixed

The point of the video is that it doesn't have to be difficult to program even in assembly if the software and hardware people hadn't drifted so far apart.

Consider that the cathedral has not collapsed for 750 years, and later cathedrals in the same style were even more complex bu built without the supports.

So not different from today, why do you bitch, bitch?

cool! crank out those 50MLOC codebases like they won't become intractably hard to maintain and buggy!