19,272 reputation
43676
bio website StackOverflow.Com/users/2988
location Karlsruhe, Germany
age 35
visits member for 4 years
seen 1 hour ago

Not a software developer in the sense that I write software as part of my job or otherwise get paid to do so. Also, not a developer in the sense that I write software for others.

I write software for myself, often for no other reason than that I want to. (What I call recreational programming.)

Actually, I’m currently forcibly confined to recreational programming, as I’m looking for a job.

My current go-to language is Ruby, but I’m interested in all sorts of other languages as well: Newspeak, Seph, Ioke, Self, Io, Slate, Reia, Cobra, Fortress, Sapphire, Haskell, Scala, Clojure, Racket, Go, Fancy, Poison, and many more.


1d
comment When I create an object, is fresh memory allocated to both instance fields and methods or only to instance fields
Also, modern compiler optimizations. Escape Analysis can move objects with heap semantics to the stack, stream fusion, list fusion, array fusion and the likes can make it so that an object that is allocated semantically on the heap is in fact completely eliminated and not allocated at all. TCO can change the space complexity. Supercompilation may in rare cases even change the algorithmic complexity! Eric Lippert has a nice blog post where he attacks the "structs are on the stack, classes are on the heap" notion and says that what matters is the semantics. Stack and heap are incidental.
1d
comment When I create an object, is fresh memory allocated to both instance fields and methods or only to instance fields
Sorry, I overlooked the jvm tag on the question. I usually tend to think of the two as completely separate, because I actually do use Java and I do use the JVM, but I have never used the two together: I pretty much exclusively use Java without the JVM (on Android) and the JVM without Java (using Scala and JRuby).
1d
comment When I create an object, is fresh memory allocated to both instance fields and methods or only to instance fields
The JLS doesn't even talk about a heap at all, doesn't it? It's perfectly legal to implement Java with a dynamic stack and no heap instead of a finite fixed-size stack and a dynamic heap. The JLS also doesn't say anything about the JVM, it's perfectly valid to implement Java without a JVM.
1d
comment What is the difference between if('' == $variable) and if($variable == '')
… guarantee symmetry, and again, the object can do with the message as it pleases.
1d
comment What is the difference between if('' == $variable) and if($variable == '')
@devnull: not in OO. In an object-oriented language, messages are sent to a distinguished object, the receiver, and the receiver gets to decide what to do with the message. Reverse the equality and the message gets sent to the other object, which may or may not decide to do something different. There really is no way to implement symmetric methods in OO without express cooperation of all objects involved. You could implement equality as a message send to a context object, i.e. a == b is equivalent to context.==(a, b) instead of a.==(b), but then it falls upon the context object to …
1d
comment When I create an object, is fresh memory allocated to both instance fields and methods or only to instance fields
What you are saying makes sense, but is that actually guaranteed by the JLS? Normally, the JLS gives implementors a lot of leeway in questions like this.
1d
comment When I create an object, is fresh memory allocated to both instance fields and methods or only to instance fields
The Java Language Specification doesn't say anything about how much memory is allocated when and for what purpose. That is left to the implementer, and every implementer may choose differently.
1d
comment How much pair programming is ideal?
Promiscuous Pairing is the solution to the "two people hit by the same bus" problem: in every break draw a lottery and randomly reassign pairs for the next 4 hours. Bonus points for doing this across projects, then, not only will everybody in the same project be on the same page, everybody in the whole company will be up to speed on all projects.
2d
comment Is there a name for the technique of converting method parameters into a unified form to simplify further processing?
I'd call it "normalization".
2d
awarded  Enlightened
2d
awarded  Nice Answer
2d
comment Are Git branches, in fact, “homeomorphic endofunctors mapping submanifolds of a Hilbert space”?
@amon: I added a quote by the author of that joke, wherein he explains that any sense that statement would potentially make is purely coincidental: "Attempts to analyze it in this fashion should be futile, but due to a bug in reality, you can actually make any sufficiently hand-wavy statement fit if you try hard enough."
2d
revised Are Git branches, in fact, “homeomorphic endofunctors mapping submanifolds of a Hilbert space”?
Add sources.
Sep
16
answered Are Git branches, in fact, “homeomorphic endofunctors mapping submanifolds of a Hilbert space”?
Sep
16
answered What are factors to take into consideration in choosing a programming language/paradigm for a rule-based natural-language translation program?
Sep
15
awarded  Nice Answer
Sep
11
awarded  Yearling
Sep
9
comment Could the creation of many methods in Java affect performance?
This may have been true before inlining was invented, but it certainly isn't true anymore. Inlining has been around since, I don't know, the 60s? 50s?
Sep
8
comment GPL- How much source must be released?
@AProgrammer: Yes, of course, there are many ways to create a derivative work. Copying and editing the source code, for example. That's literally "deriving". But mere linking alone cannot create a derivative work. Take the following scenario: I develop some piece of software which links against some library. Later, you develop a drop-in replacement for that library and release it under the GPL. Some user installs your library and my software and now the linker links my software against your library. How does that make my software a derivative? Yours didn't exist when I wrote mine!
Sep
7
comment GPL- How much source must be released?
Do you have a more independent source than the FSF's FAQ for your claims that a purely technical act involving absolutely no human interaction whatsoever (linking) somehow creates a derivative work? AFAIK, no copyright lawyer actually believes that to be true, nor has any court ever ruled that way. In fact, I heard that apart from Richard Stallman (who is not a lawyer) not even the FSF's lawyers believe that.