Der Programmier-Thread

crysmopompas

I am a bot ¯\_(ツ)_/¯
systems, systems, systems, systems, systems, systems, systems, systems, systems, systems
Spielt gerade: GT&FM | 60fps FTW
Let’s say you ask your programming language to do the simplest possible task: print out “hello world”. Generally this takes two syscalls: write and exit.
...
Most languages do a whole lot of other crap other than printing out “hello world”, even if that’s all you asked for.
Mit der glibc werden daraus schon 11 System Calls, mit Java 226, mit Node.js 673 und mit Ruby 1401. (Noch mehr Tests siehe Artikel)

https://drewdevault.com/2020/01/04/Slow.html
And hidden therein is my actual point: complexity. There has long been a trend in computing of endlessly piling on the abstractions, with no regard for the consequences. The web is an ever growing mess of complexity, with larger and larger blobs of inscrutable JavaScript being shoved down pipes with no regard for the pipe’s size or the bridge toll charged by the end-user’s telecom. Electron apps are so far removed from hardware that their jarring non-native UIs can take seconds to respond and eat up the better part of your RAM to merely show a text editor or chat application.

The PC in front of me is literally five thousand times faster than the graphing calculator in my closet - but the latter can boot to a useful system in a fraction of a millisecond, while my PC takes almost a minute. Productivity per CPU cycle per Watt is the lowest it’s been in decades, and is orders of magnitude (plural) beneath its potential. So far as most end-users are concerned, computers haven’t improved in meaningful ways in the past 10 years, and in many respects have become worse. The cause is well-known: programmers have spent the entire lifetime of our field recklessly piling abstraction on top of abstraction on top of abstraction. We’re more concerned with shoving more spyware at the problem than we are with optimization, outside of a small number of high-value problems like video decoding.1 Programs have grown fat and reckless in scope, and it affects literally everything, even down to the last bastion of low-level programming: C.
That’s the true message I wanted you to take away from my article: most programmers aren’t thinking about this complexity. Many choose tools because it’s easier for them, or because it’s what they know, or because developer time is more expensive than the user’s CPU cycles or battery life and the engineers aren’t signing the checks.
https://drewdevault.com/2020/01/08/Re-Slow.html
 
Zuletzt editiert:

Planet

50% water, 50% air, the glass is always full!
PSN-Name: PlanetJumble
Das ist schon richtig, aber das Entwickeln von Hello World Applikationen ist ein verschwindend geringer Anteil von meiner Arbeit. ;)

Wenn man das, was ich so teilweise in Java (Groovy, Kotlin) entwickelt habe, in Assembler oder auch nur in optimiertem C geschrieben hätte, wäre der Entwicklungsaufwand (und damit auch die Fehlerwahrscheinlichkeit) ein sehr hohes Vielfaches davon gewesen. Mit Pferdekutschen kommt man auch zur Arbeit, und es ist wahnsinnig viel umweltfreundlicher, macht aber irgendwie auch niemand mehr heutzutage...
 

crack-king

Administrator
Team-Mitglied
systems, systems, systems, systems, systems, systems
Und man darf nicht vergessen, dass es den meisten Applikationen auch egal ist. Die Anforderungen sind nicht so groß, dass man sich über solche Sachen Gedanken machen muss.

Wobei man halt auch aufpassen muss nicht ins verschwenderische abzudriten. Insbesondere dank der Cloud ist es dann einfacher noch paar Instanzen zu kaufen als mal den Code ein bisschen zu optimieren.
 

Planet

50% water, 50% air, the glass is always full!
PSN-Name: PlanetJumble
Die Wartezeiten, die durch ineffizienten Code entstehen, sind auch so gut wie immer im unteren einstelligen Prozentbereich. Fast die gesamte Performance geht bei Datenbankoperationen drauf, gefolgt von Netzwerkverkehr.
 

crack-king

Administrator
Team-Mitglied
systems, systems, systems, systems, systems, systems
Datenbankoperationen sind teuer und da kann man viel falsch machen, das ist richtig. Insbesondere das Event Sourcing verändern sich Zugriffspattern einfach. Jedoch kann Code ebenfalls ineffizient sein, wenn große Datenmengen unvorteilhaft verarbeitet werden.
 
Top