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

GC is shit

Name: Anonymous 2011-09-07 9:18

discuss

Name: Anonymous 2012-05-02 8:11

GC is shit.

Name: Anonymous 2012-05-02 8:25

>>11
I could never memorize Poe's law. I always mixed it up with that law about internet discussions and nazis.

Name: Anonymous 2012-05-02 14:21

>>159
where's the original one?

Name: Anonymous 2012-05-02 17:29

IF U WERE KILLED TOMORROW, I WOULDNT GO 2 UR FUNERAL CUZ ID B N JAIL 
4 KILLIN DA NIGGA THAT KILLED U!                                     
..... , ,_____________________                                       
..... / `---___________----_____|]                                   
...../_==o;;;;;;;;_______|                                           
.... / ______|                                                       
.....), _(__) /                                                      
....// (..) ), ----"                                                 
...//___//                                                           
..//___//                                                            
.//___//                                                             
WE TRUE HOMIES                                                       
WE RIDE TOGETHER                                                     
WE DIE TOGETHER                                                      
send this GUN to every thread you care about including this one if   
you care. C how many times you get this, if you get 13 your A TRUE   
HOMIE

Name: Anonymous 2012-05-04 14:30

ONE WORD THE FORCED SEGMENTATION FAULT OF THE CODE THREAD OVER

Name: Anonymous 2012-05-04 20:15

>>165
i'll upboats this

Name: Anonymous 2012-07-31 15:54

Many languages that ofter the kinds of memory safety guarentees that Rust does have a single allocation strategy: objects live on the heap, live for as long as they are needed, and are periodically garbage collected. This is very straightforword both conceptually and in implementation, but has very significant costs. Such languages tend to aggressively pursue ways to ameliorate allocation costs (think the Java virtual machine). Rust supports this strategy with shared boxes, memory allocated on the heap that may be referred to (shared) by multiple variables.

In comparison, languages like C++ offer a very precise control over where objects are allocated. In particular, it is common to put them directly on the stack, avoiding expensive heap allocation. In Rust this is possible as well, and the compiler will use a clever lifetime analysis to ensure that no variable can refer to stack objects after they are destroyed.

GC is just an easy solution for retarded language designers.

Name: Anonymous 2012-07-31 17:50

>>167
GC doesn't play any role in language design.

Name: Anonymous 2012-07-31 19:13

>>167
a single allocation strategy: objects live on the heap, live for as long as they are needed, and are periodically garbage collected.
http://lmgtfy.com/?q=escape+analysis

Name: Anonymous 2012-07-31 19:25

Go is a "systems programming language"...that forces GC!

Name: Anonymous 2012-07-31 20:20

>>170
Indeed, which makes it safer than C, since it's less likely that inept programmers will screw it up.
It's not like you need manual memory allocation in userland programs.

Name: Anonymous 2012-08-01 1:56

>>171
>safer than C
Might as well use Java. At least Java supports exceptions, runs in more places, executes faster, and more code available to copy and paste review. Go is a joke.

Name: Anonymous 2012-08-01 5:54

>>172
exceptions
That's an argument for Go.

runs in more places
If you compile Go with GCCGO, it runs pretty much anywhere. The only thing you need to do is to recompile it, which takes about as long as a Java compilation.

executes faster
Oh, please. A Go program starts up about as fast as a C one and will often finish before the Java program comes to main.

more code available to copy and paste
And all of it is shit. You don't really need copy and paste in Go, since it isn't designed to use so much unintuitive boilerplate code.

Java is a joke and so are you.

Name: Anonymous 2012-08-01 6:10

A Go program starts up about as fast as a C one and will often finish before the Java program comes to main.
public static final strictfp zing

Name: Anonymous 2012-08-01 6:25

>>173
Java is a joke and so are you.
Not the guy you're replying to but somehow you think Go is more mature than Java? It doesn't even support long lived processes on 32 bit, the GC runs out of memory in no time since it can't tell the difference between a value and a pointer.

Go is the joke, Java is more like satirical comedy.

Name: Anonymous 2012-08-01 6:50

>>174
% cat echo.go
package main
import (
   "fmt"
   "os"
)
func main() {
   //for i := 1; i < len(os.Args); i++ {
   for i, arg := range os.Args[1:] {
       if i != 0 {
           //os.Stdout.WriteString(" ")
           fmt.Print(" ")
       }
       //os.Stdout.WriteString(os.Args[i])
       fmt.Print(arg)
   }
   //os.Stdout.WriteString("\n")
   fmt.Println()
}
% time go build echo.go
go build echo.go  0.77s user 0.08s system 99% cpu 0.860 total
% for i in {1..3}; do time ./echo qwe asd; done
qwe asd
./echo qwe asd  0.01s user 0.00s system 90% cpu 0.011 total
qwe asd
./echo qwe asd  0.01s user 0.00s system 93% cpu 0.012 total
qwe asd
./echo qwe asd  0.00s user 0.00s system 88% cpu 0.011 total

As you can the Go program starts in a few milliseconds.

% cat Echo.java
public class Echo {
   public static void main(String []args) {
       for (int i = 0; i < args.length; i++) {
           if (i != 0) {
               System.out.print(" ");
           }
           System.out.print(args[i]);
       }
       System.out.print("\n");
   }
}
% time javac Echo.java
javac Echo.java  1.87s user 0.18s system 112% cpu 1.834 total
% for i in {1..3}; do time java Echo qwe asd; done
qwe asd
java Echo qwe asd  0.23s user 0.05s system 100% cpu 0.282 total
qwe asd
java Echo qwe asd  0.24s user 0.05s system 101% cpu 0.280 total
qwe asd
java Echo qwe asd  0.23s user 0.05s system 101% cpu 0.279 total

The Java program, on the other hand, takes twice as long to build and needs over 250 ms to run.

% for i in {1..3}; do time go run echo.go qwe asd; done
qwe asd
go run echo.go qwe asd  0.79s user 0.09s system 99% cpu 0.880 total
qwe asd
go run echo.go qwe asd  0.79s user 0.08s system 99% cpu 0.870 total
qwe asd
go run echo.go qwe asd  0.79s user 0.08s system 99% cpu 0.873 total

In comparison, I can compile and run a Go echo in about three times the duration the Java program needs to merely run.

Name: Anonymous 2012-08-01 12:31

>>173
Oh, please. A Go program starts up about as fast as a C one and will often finish before the Java program comes to main.
statements that are easily verifiable as wrong
http://shootout.alioth.debian.org/u32/which-programming-languages-are-fastest.php?calc=chart&java=on&go=on

Name: Anonymous 2012-08-01 13:52

>>173
Exceptions (or similar constructs using jmp operators) are necessary to build reliable software. They are often more efficient than the alternatives, like passing around error codes to which Go does not offer anything else. See >>177-san's comments about Go's performance, or lack thereof. This once again dispels ``compiled to platform menas fast,'' yet another bad idea Go was built around. I don't particularly like Java anyway (I prefer C++). Java has its own problems, but it's a lot better than Go. You're not doing Go any favors by criticizing Java.

Name: Anonymous 2012-08-01 13:58

>>177
You ARE aware that the startup time for Java programs in the benchmark game have been taken out of the measurements right? (only Java at that)
http://shootout.alioth.debian.org/help.php#java

Name: Anonymous 2012-08-01 14:05

>>179
It's the start-up time for the JVM that was taken out.

Name: Anonymous 2012-08-01 14:27

>>180
And? The Java ones have zero startup time as a result, only the overhead of a static method call. The rest of the language implementations have their total startup time counted, many of them have VMs.

Name: Anonymous 2012-08-01 14:39

>>178
Exceptions (or similar constructs using jmp operators) are necessary to build reliable software.
Untrue. You can as easily write reliable software with alternate error handling and Go's error return parameters do the job well. In fact, they even get rid of a common ``feature'' that actually makes exceptions less reliable: your programs will no longer abort just because you've forgotten to handle whichever exception something may throw. Exceptions introduce problems of their own and are not nearly the best and ultimate way to handle errors.

They are often more efficient than the alternatives, like passing around error codes
Haha, you're funny. Please, do tell me how exactly is stack unwinding more efficient than, say, errno or returning a value?

to which Go does not offer anything else.
Another piece of disinformation. Go offers the panic/recover mechanism, which is basically what your exceptions are. However, you shouldn't use it for standard errors, only for truly catastrophic failures that make the continuation of this program (at least this piece of it) impossible.

Name: Anonymous 2012-08-01 19:25

I don't even have JVM installed on any machine I run, on fucking principle. Guess whether or not I've written in JAVAAAAAAAAAAAAAAAAAAAA.

Name: Anonymous 2012-08-01 21:14

>>175
It doesn't even support long lived processes on 32 bit, the GC runs out of memory in no time since it can't tell the difference between a value and a pointer.
They need a conservative GC so they can do pointer arithmetic. Go was designed as a systems language, after all. What's that I hear? Go doesn't have pointer arithmetic? They released Go ``1.0'' with a broken GC because they couldn't be bothered to write one that keeps track of pointers? It sure shows how much Google cares about their new language.

Name: Anonymous 2012-08-01 21:27

>>182
What the fuck did you just fucking say about me, you little bitch? I'll have you know I graduated top of my class at MIT, and I've been involved in numerous Agile/SCRUM gatherings for my work, and I have over 300 confirmed commits to my git repository. I am trained in Enterprise Java Programming and I'm the top code monkey in the entire Software Industry. You are nothing to me but just logic error to debug. I will comment you the fuck out with scope the likes of which has never been seen before on this JVM, mark my fucking words. You think you can get away with saying that shit to me over the Internet? Think again, fucker. As we speak I am contacting the oracle headquarters and your IP is being piped through an interface written in visual basic. Now so you better prepare for the storm, maggot. The storm that wipes out the pathetic little code you call "Software". You're fucking compiled, kid. I can be anywhere, anytime, and I can write a Hello World in over seven hundred ways, and that's just with Assembly. Not only am I extensively trained in Network administration, but I have access to the entire GNU C Library and I will use it to its full extent to wipe your miserable ass off the face of my monitor, you little shit. If only you could have known what unholy retribution your little "clever" comment was about to bring down upon you, maybe you would have truncated your input. But you couldn't, you didn't, and now you're paying the price, you goddamn idiot.I will shit unformatted code all over your face and you will drown in it. You're fucking decompiled, Skiddo.

Name: Anonymous 2012-08-01 21:36

>>175,184
I admit that Go's GC could be better (in fact, they do plan to improve it sometime in the future).
However, the current one, while suboptimal, works. Not too well, but sufficiently enough to do its job. While it's true that it may miss some objects sometimes, that should happen very rarely, so it shouldn't be a problem for a few months of the program's uptime in the worst case.

Name: Anonymous 2012-08-01 21:41

>>185
lolol u mad bro u mad bro
suck my dick, faggot

Name: Anonymous 2012-08-01 22:15

>>184
They need a conservative GC
fucking right-wing dipshits

Name: Anonymous 2012-08-02 3:41

>>188
/prog/ stands for reactionary rock.

Name: Anonymous 2012-08-02 16:37

>>176
Java scales better. JVM start up time is a ridiculous thing to care about, since 99% of the time the JVM will be always running on a production server.

Name: Anonymous 2012-08-27 6:40

Found this in rationale saying why GCC should be written in C++



- GCC generates temporary garbage which is only freedby ggc collect.
-- ggc collect is expensive–scales by total memory usage.

- C++ permits reference counting smart pointers.
-- Fast allocation.
-- Lower total memory usage.
-- Copying a pointer adds an increment instruction.
-- Letting a pointer go out of scope adds a decrement and a test.
-- Reference counts are normally in memory cache, unlike ggc collect.

- We may want to use a mixture of reference counting and garbage collection.




So there you have it. GC is shit. C forces GC, C++ does not. Therefore C is also shit while C++ is not.

Name: Cudder !MhMRSATORI!fR8duoqGZdD/iE5 2012-08-27 7:05

>>191
GCC is horribly bloated anyway, in typical GNU style.

Name: Anonymous 2012-08-27 9:17

>>192
I never understood why people hate GNU so much; then I tried reading some glibc code

Name: Anonymous 2012-08-27 15:47

>>191
ref counting
worse than GC

Name: Anonymous 2012-09-05 11:08

http://3d.benjamin-thaut.de/?p=20

TLDR:
Garbage collection: 71 FPS, 14.0 ms frametime
Manual memory management: 142.8 FPS, 7.02 ms frametime

Name: Anonymous 2012-09-05 11:29

This is only a problem for toy programs. Real programs comes with a specification that states the amount of memory needed. Not less, not more!

Name: Anonymous 2012-09-05 11:31

Yeah, if it doesn't include SQL Server it's not a real program.

Name: Anonymous 2012-09-05 11:46

>>197

SQL Server is garbage, a black buggy hole, it's really simple to make it crap on itself. Sure in some cases a relational database might seem to be needed, but in the end it just means that you handed over a great part of your code to a black shitty hole. That's not a real program in my book.

Name: Anonymous 2012-09-05 12:10

>>198

And it implies your program will handle an unspecified amount of data, which per definition makes it a lala-land-toy program in my book.

Name: Anonymous 2012-09-05 13:16

>>196
only works if you never have to deal with user input of any kind, or even basic data structures

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