Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon.

Pages: 1-

Bloat

Name: !jEtRn2gPRg 2011-09-18 2:22

Software bloat and its impact on computing today

I've been noticing a disappointing trend of modern developers creating software
that is becoming more and more inefficient: in code size, memory usage, and
run times, for basically equivalent tasks. As the days where software had to
share 640 KiB of memory have long disappeared, so has the skill of developing
fundamentally simple and cruft-free software it seems.

A key example is a comparison of implementations of `cat' over various
operating systems from the UNIX family [1], which is meant to be an extremely
simple program. GNU's `cat' consists of 782 lines, which is absolutely
ridiculous for a program that is, at a fundamental level, intended to
concatenate streams. `cat' is not meant to number lines, squeeze blank lines,
or format non-printable characters, and these features are arguably almost
never used.

I am becoming frustrated by popular software projects, even in the open-source
world, that suffer from extreme levels of unnecessary cruft. It disappoints me
to mention the GNU project as being a notorious offender in the creation of
bloated software. `emacs' is often jokingly referred to as an `entire operating
system', but this metaphor is far closer to reality than many people realise.
`GRUB', the GNU project's bootloader, is not a bootloader; it is also
comparable, in size and functionality, to an `operating system', and much of
its functionality is blatantly unnecessary for its perceived core purpose:
booting operating systems.

It is rare to find software today that follows the traditional UNIX philosophy,
even on operating systems inspired by UNIX. The UNIX philosophy consists of
concepts whereby software should be simple, orthogonal in nature, and modular,
among other good development practices. `Plan 9 from Bell Labs' gets it right
in many areas where other, more popular operating systems, don't. Unfortunately
it has not become a success over its predecessor, UNIX, because UNIX is widely
seen as `good enough', however technically inferior it may be.

However, in comparison to today's operating systems, even traditional UNIX
looks impressively lean, clear and simple. At some point in the future I do
plan to develop an operating system that is somewhat inspired by the design and
philosophy of UNIX.

[1] https://gist.github.com/665971

Name: Anonymous 2011-09-18 2:26

plan9 sucks because cat-v are huge faggots

Name: Anonymous 2011-09-18 2:52

>>2
I agree with most of the statements made harmful.cat-v.

Name: Anonymous 2011-09-18 3:37

Agreed. We should all use Lisp, because Lisp advances idea of functional decomposition, where every function does precisely one thing and does it well.

Name: Anonymous 2011-09-18 3:38

>>4
Isn't C a better choice?

Name: Anonymous 2011-09-18 3:39

>>4
Isn't C a better choice?

Name: Anonymous 2011-09-18 3:39

>>5
No. C is bloated.

Name: tdavis 2011-09-18 3:48

Only losers don't make full use of hardware -- the market want you to find a use.


In LoseThos, I use brute force methods to simplify the OS code.  I update my full screen 60 times a second regardless if anything has changed.  I have none of the invalidate rectangle crap.  A full screen video game is worst case, anyway, so might as well optimize for that.  I'm more efficient in the worst case which is when it matters.  The best case is stand-by idle.  That's important for laptops.

What else do I do burte force?

http://www.losethos.com/doc/Strategy.html


The market doesn't care if it runs on pathetic hardware, it wants some new value added by modern hardware.

Name: tdavis 2011-09-18 3:51

I process whole files, almost exclusively.  I don't mess around with reading a block at a time -- I just load everything.  It allows me to compress files, too.

Processing whole files makes all my code way simpler.  I have a use for modern hardware -- market losers don't use modern hardware.

Name: !jEtRn2gPRg 2011-09-18 4:24

>>9
Nobody gives a fuck. What if you wanted to read a 100 GB file? Do you have the RAM for that?

Name: Anonymous 2011-09-18 4:26

Borat.

Name: VIPPER 2011-09-18 4:27

>>7
Yeah, all those math operators, who needs them? Everything could just be done using loops and increments.

Name: Anonymous 2011-09-18 4:35

>>10
Nobody gives a fuck about 100 GB files except unix admins.

Name: tdavis 2011-09-18 4:37

LoseThos is for recreational programming, not being a professional admin.  The command-line is C/C++, not some silly admin language.

Pipes make you real proud, huh?  Kinda like solving crosswords when you get something useful.  Then you gotta brag.  "Hey I got this clever convoluted way of solviong this one problem with regexes and shit."

Name: Anonymous 2011-09-18 5:43

>>1
10/10. Now THIS is quality work. I'm actually impressed.

Name: Anonymous 2011-09-18 5:58

>>1
pff, measures bloatness by written lines
baka

Name: !jEtRn2gPRg 2011-09-18 5:58

>>15
Are you being sarcastic, or do you mean what you say?

Name: !jEtRn2gPRg 2011-09-18 5:59

>>15
In addition, are you impressed genuinely by the content, or are you 'impressed' by my trolling ability? I'm certainly not intending to troll.

Name: Anonymous 2011-09-18 6:34

>>17,18
I'm impressed by your trolling ability; you show that you aren't sloppy like most amateurs.

I'm certainly not intending to troll.
Oh, I see ( ≖‿≖)

Name: tdavis 2011-09-18 6:36

I agree on Grub!!  There's some obvfsucating going-on or something.  I wanted to boot my LoseThos partition which is just a chainloaded OS.  They had this crazy customize crap with an extra level of indirection.  It was obsvucating, evil bastards!


#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#

### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
  set have_grubenv=true
  load_env
fi
set default="0"
if [ "${prev_saved_entry}" ]; then
  set saved_entry="${prev_saved_entry}"
  save_env saved_entry
  set prev_saved_entry=
  save_env prev_saved_entry
  set boot_once=true
fi

function savedefault {
  if [ -z "${boot_once}" ]; then
    saved_entry="${chosen}"
    save_env saved_entry
  fi
}

function recordfail {
  set recordfail=1
  if [ -n "${have_grubenv}" ]; then if [ -z "${boot_once}" ]; then save_env recordfail; fi; fi
}

function load_video {
  insmod vbe
  insmod vga
  insmod video_bochs
  insmod video_cirrus
}

insmod part_msdos
insmod ext2
set root='(/dev/sda,msdos7)'
search --no-floppy --fs-uuid --set=root 59a819c4-7e13-4350-9803-f59d136854d8
if loadfont /usr/share/grub/unicode.pf2 ; then
  set gfxmode=auto
  load_video
  insmod gfxterm
fi
terminal_output gfxterm
insmod part_msdos
insmod ext2
set root='(/dev/sda,msdos7)'
search --no-floppy --fs-uuid --set=root 59a819c4-7e13-4350-9803-f59d136854d8
set locale_dir=($root)/boot/grub/locale
set lang=en_US
insmod gettext
if [ "${recordfail}" = 1 ]; then
  set timeout=-1
else
  set timeout=10
fi
### END /etc/grub.d/00_header ###

### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
if background_color 44,0,30; then
  clear
fi
### END /etc/grub.d/05_debian_theme ###

### BEGIN /etc/grub.d/10_linux ###
if [ ${recordfail} != 1 ]; then
  if [ -e ${prefix}/gfxblacklist.txt ]; then
    if hwmatch ${prefix}/gfxblacklist.txt 3; then
      if [ ${match} = 0 ]; then
        set linux_gfx_mode=keep
      else
        set linux_gfx_mode=text
      fi
    else
      set linux_gfx_mode=text
    fi
  else
    set linux_gfx_mode=keep
  fi
else
  set linux_gfx_mode=text
fi
export linux_gfx_mode
if [ "$linux_gfx_mode" != "text" ]; then load_video; fi
### BEGIN /etc/grub.d/30_os-prober ###
menuentry "Windows 7 (loader) (on /dev/sdb2)" --class windows --class os {
    insmod part_msdos
    insmod ntfs
    set root='(/dev/sdb,msdos2)'
    search --no-floppy --fs-uuid --set=root BAE02E36E02DF971
    chainloader +1
}
### END /etc/grub.d/30_os-prober ###
menuentry 'Ubuntu, with Linux 2.6.38-8-generic' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    set gfxpayload=$linux_gfx_mode
    insmod part_msdos
    insmod ext2
    set root='(/dev/sda,msdos7)'
    search --no-floppy --fs-uuid --set=root 59a819c4-7e13-4350-9803-f59d136854d8
    linux    /boot/vmlinuz-2.6.38-8-generic root=UUID=59a819c4-7e13-4350-9803-f59d136854d8 ro   quiet splash vt.handoff=7
    initrd    /boot/initrd.img-2.6.38-8-generic
}
menuentry 'Ubuntu, with Linux 2.6.38-8-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {
    recordfail
    set gfxpayload=$linux_gfx_mode
    insmod part_msdos
    insmod ext2
    set root='(/dev/sda,msdos7)'
    search --no-floppy --fs-uuid --set=root 59a819c4-7e13-4350-9803-f59d136854d8
    echo    'Loading Linux 2.6.38-8-generic ...'
    linux    /boot/vmlinuz-2.6.38-8-generic root=UUID=59a819c4-7e13-4350-9803-f59d136854d8 ro single
    echo    'Loading initial ramdisk ...'
    initrd    /boot/initrd.img-2.6.38-8-generic
}
### END /etc/grub.d/10_linux ###

### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###

### BEGIN /etc/grub.d/20_memtest86+ ###
menuentry "Memory test (memtest86+)" {
    insmod part_msdos
    insmod ext2
    set root='(/dev/sda,msdos7)'
    search --no-floppy --fs-uuid --set=root 59a819c4-7e13-4350-9803-f59d136854d8
    linux16    /boot/memtest86+.bin
}
menuentry "Memory test (memtest86+, serial console 115200)" {
    insmod part_msdos
    insmod ext2
    set root='(/dev/sda,msdos7)'
    search --no-floppy --fs-uuid --set=root 59a819c4-7e13-4350-9803-f59d136854d8
    linux16    /boot/memtest86+.bin console=ttyS0,115200n8
}
### END /etc/grub.d/20_memtest86+ ###

menuentry "LoseThos D" {
    insmod chain
    set root=(hd0,msdos1)
    chainloader +1
}

menuentry "LoseThos E" {
    insmod chain
    set root=(hd0,msdos5)
    chainloader +1
}

menuentry "LoseThos I" {
    insmod chain
    set root=(hd1,msdos5)
    chainloader +1
}

Name: Anonymous 2011-09-18 6:58

>>20
Fuck off.

Name: Anonymous 2011-09-18 10:24

>>1
I agree.

GC is worst of them.

Name: Anonymous 2011-09-18 10:57

>>22
Fuck off.

Name: Anonymous 2011-09-18 11:00

>>4
No. Lisp is the closest, but it still sucks huge dicks.

Name: Anonymous 2011-09-18 14:35

bloat is a big problem

I agree! Programmers just like to increase complexity in order further their job security and -

no I mean for the machine

oh, it's a Ctard

Name: Anonymous 2011-09-18 14:58

>>25
So true

Don't change these.
Name: Email:
Entire Thread Thread List