I want all of you JavaScript#++.NET 4.5 SP3 shitheads to understand what "bloat" is. I know that you think that you know what bloat is, but you don't. You think that it's when a program takes up a lot of disk space or a lot of RAM while running. WRONG.
Bloat is specifically what happens when you are lazy. If you're lazy, you decide that you don't need to understand pointers and you don't need to understand memory management and you don't need to understand the difference between compiling, linking, and interpreting. If you're lazy, you don't learn any low-level concepts.
Even after reading that paragraph, you still don't understand bloat. You're thinking "this is just going to be another GC is shit thread." WRONG.
The real problem with bloat is that you make the world shittier. Yes, your program uses more memory than it should. Yes, it's slower and more non-deterministic than it should be because you have no control over the GC. Yes, "Hello World" is a hundred megabytes. But all of that would be tolerable. What makes your program (and you) a pile of shit is that now the user has to be redirected to Microsoft's website to download another hundred megabytes of .NET installer, and he has to decide whether or not he wants the "full" version or the "client" version, and he has to decide whether he wants version 4.0 or 4.0.1 or 4.0.2 or 4.0.33019 SP1 or whether he should just set his computer on fire and buy a new one and pray that it already has all the right "frameworks" installed.
What you could have done, instead, was write a C program. For bonus points, you could even do it without linking to the standard C runtime, so that there is absolutely no bloat whatsoever. You won't, though. You'll just keep trying to implement a Y-combinator in PHP because that's really valuable to the world and we all need that far more than we need programs that just fucking run correctly and efficiently.
Name:
Anonymous2012-06-21 19:18
Tldr
Name:
Anonymous2012-06-21 19:28
>>1
Business constraints imply use of such techniques. We can't all strive for purity; life is too short.
>>3
It's debatable whether you spend more time trying to coerce Windows to do the right thing with your ridiculous combination of frameworks and baggage than it would take to just write a good program from scratch, without them. Further, once you learn how to do the latter, you never have to learn it again, and all your projects from that point forward will be bloat free at no extra cost.
That's for just one version of just one framework required to run your slow piece of shit.
If you think it's acceptable to have to deal with all of that bullshit, instead of just learning how to allocate and delete memory, then you need to choose a new career path.
Name:
Anonymous2012-06-21 20:44
shut the fuck up, ``faggot''
javascript is one of the most memory-efficient languages ever. prove me wrong.
Name:
Anonymous2012-06-21 20:58
>>1 What you could have done, instead, was write a C program. For bonus points, you could even do it without linking to the standard C runtime
right, confirmed for idiot
>>9
DOHOHO, that's impossible! No one could ever pull the titty of Microsoft out of their mouth! I can't do it so it's impossible! printf() is so incredible no one could write that! I'm gay!
I just finished reading Intel's optimization reference manual. I still think C is useless and a bad pretence of a low-level programming language. If you need to go low-level, you just write assembly.
I agree that huge runtime libraries filled with bloat and broken crap for backwards compatibility's sake is even worse, though. Actually, C's stdlib suffers the same problem: think of gets(), strcpy, and the new broken and deprecated function of the monthweek.
Name:
Anonymous2012-06-21 21:27
What we really need is a better CPU and instruction set. Lisp machines, Burroughs B5000, System/38 were high-level system architectures with garbage collection, channel I/O, process management, IPC, and preemptive task switching built into the hardware. This was 60's/70's/80's technology. The only problem was that they didn't fit on a single chip. We could certainly fit a GC and device/process message-passing system onto a single chip today, even an FPGA.
Lisp machines, Burroughs B5000, System/38 were high-level system architectures with garbage collection, channel I/O, process management, IPC, and preemptive task switching built into the hardware.
They were also slow as fuck. Putting bloat in hardware instead of software doesn't magically make it fast.
>>16
You're saying that x86 is not bloated incredibly bloated1 already? HAHAHAHAHAHAHAHA
[1] I mean real bloat, things nobody use and shouldn't use, like loopcc, enter, leave, the whole x87 instruction set, segments, compatibility modes for real and protected modes instead of long mode only, and I can go on forever.
Name:
Anonymous2012-06-21 21:50
>>15
all of those things can be done in software efficiently. are you too much of an idiot to implement them yourself so you pass on the work to the hardware engineers instead?
Name:
Anonymous2012-06-21 22:14
>>17
How do you propose to do floating point calculations without instructions to perform them? Surely you're not suggesting that such basic arithmetic should be consigned to bit-fiddling in software.
>>17
I didn't say anything about the huge clusterfuck that is x86. I mostly use ARM and MIPS.
Name:
Anonymous2012-06-21 22:32
>>17
Those instructions should be used, because they cost fewer bytes in the instruction stream.
I have a feeling Intel is secretly leaving them unoptimised for some time in the future when they'll release a processor that does have them optimized and update their compiler to use them, giving them the advantage. "Low-hanging fruits" they want to leave for the end, so to speak.
>>19
SSE2 supports scalar floating point operations.
Intel itself says you should use SSE2 instead of x87 unless you need those 80 bit of precision. SSE instructions also have shorter latency.
What makes your program (and you) a pile of shit is that now the user has to be redirected to Microsoft's website to download another hundred megabytes of .NET installer
This is not how most software development works. I can tell you're a student.
Name:
Anonymous2012-06-21 23:20
I want all of you C/C++ shitheads to understand what "premature optimization" is. I know that you think that you know what premature optimization is, but you don't. You think that it's when a program takes up a lot of bad assumptions and a locked and flawed design. WRONG.
Premature optimization is specifically what happens when you are a optimization monkey. If you're an optimization monkey, you decide that you don't need to understand compilers and you don't need to understand automatic memory management and you don't need to understand the difference between hand coded optimizations, and compiler optimizations. If you're an optimization monkey, you don't learn any high-level concepts.
Even after reading that paragraph, you still don't understand premature optimization. You're thinking "this is just going to be another C++ is shit thread." [b][i][u]WRONG[u][/i][/b].
The real problem with premature optimization is that you make the world shittier. Yes, your program is a little more inflexible than it should be. Yes, extending it is slower and more non-deterministic than it should be because you have no control over the other prematurely optimizing programmers. Yes, "Hello World" has a hundred dependencies on the current memory layout. But all of that would be tolerable. What makes your program (and you) a pile of shit is that now the user has to be redirected from a segmentation fault to your repository to download another hundred pages of missing documentation, and he has to decide whether or not he wants the to extend the "fully hand optimized and obfuscated" version or the "incomplete skeleton from the first check in" version, and he has to decide whether he wants the version 4.0, which requires the access library version 2.3, or version 4.0.1, which requires the rendering engine to be version 5.4, or 4.0.2, which requires the miner module to make copies of all arguments passed to the network builder, which then modifies in place the mesh passed to the surface distorter, which requires the miner module in version 4.0.33019 SP1 or whether he should just set his computer on fire and start from scratch and pray that it already has all the right "inline functions" installed.
What you could have done, instead, was write a program. For bonus points, you could even do it without self combusting the design, so that there is absolutely no premature optimization whatsoever. You won't, though. You'll just keep trying to reimplement your program in assembly because that's really valuable to the world and we all need that far more than we need finished programs.
>>24
Yeah, it's so common for all of today's college students to be singing the praises of assembly and being all like "Fuck Java, I want to know how the hardware works! I don't want to write fart apps for my iPhone!"