27,976 reputation
555100
bio website StackOverflow.Com/users/2988
location Karlsruhe, Germany
age 36
visits member for 4 years, 8 months
seen 2 hours 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.


2h
awarded  Nice Answer
4h
comment Is the use of one-letter variables encouraged?
@KilianFoth: it's also used that way in Haskell, ML, F# and Scala, I believe. And in Ruby, even though _ is a legal identifier just like any other, there was a recent change that unused local variables named _ (or starting with _) do not generate an "unused local variable" warning, even though Ruby normally warns about them.
6h
comment Is the use of one-letter variables encouraged?
@Michael: In my opinion, Programming Jargon is its own language, it's not English proper. And in that language, i is a proper word with a precisely defined meaning, namely "index you don't need to worry too much about". But I guess it's a matter of familiarity. If you read a lot of Haskell, you'll become accustomed to read m as monad, f as functor, x as some object, xs as a list of xs and so on.
6h
answered Is the use of one-letter variables encouraged?
6h
comment Is ART an installation process? Or an OS? Or a virtual Machine?
Interesting, thanks for the explanation. I never thought about what a design for a mostly static implementation for a mostly dynamic language ("dynamic" in the sense that all code loading, most method dispatch, and consequently all linking is dynamic) would look like. I'm only familiar with HotSpot, JRockit, J9, etc. which are mostly dynamic implementations and typical C++ implementations which are mostly static but for a mostly static language. ART is the first I have looked at which is mostly static for a mostly dynamic language. (Others are Excelsior.JET and GCJ, but I don't know them.)
7h
comment Is ART an installation process? Or an OS? Or a virtual Machine?
Ah, okay, so even the method dispatch code is not inlined but part of the runtime?
11h
answered Difference between synthesis and translation
14h
answered Is ART an installation process? Or an OS? Or a virtual Machine?
23h
answered What is the etymology of the “dot” operator for string concatenation?
2d
comment Has Javascript developed beyond what it was originally designed to do?
By the way, let's not forget that Netscape shipped LiveScript (the original name before it was changed to JavaScript as part of a deal with Sun) as a serverside scripting language as part of LiveServer even a couple of weeks before it shipped it as part of Navigator. So, in a sense, JS has been a serverside scripting language even before it became a clientside scripting language.
May
26
comment Libraries and licenses
@rjdkolb: I'm assuming that the legal department of a company that sells software products (as opposed to a company which sells something totally unrelated and just happens to have an internal IT department) will have lawyers who know about selling software products. Or at least the company will have a lawyer on retainer who knows about selling software products. Apparently, I was wrong.
May
26
answered Libraries and licenses
May
24
comment Is Objective-C the only language with infix arguments?
@Carcigenicate: The question is not about infix operators, it is about infix arguments, i.e. arguments which are interspersed in between the parts of the method name, e.g. for a method named foo:bar: it would be called foo: 1 bar: 2 instead of foo:bar:(1, 2).
May
24
comment How do hybrid interpreter-JIT compilers work?
@ColorfullyMonochrome: Yes. The stage 1 compiler is, well, at least less optimizing, but fast and small, and it injects profiling code into the compiled machine code. The stage 2 compiler is more optimizing, but slower and needs more memory, and it uses the collected profiling data. The original version (pre-Crankshaft) had just one moderately optimizing, fast and small compiler. Note that this is not an unusual design, the Maxine Research JVM and the JRockit JVM, for example, also have no interpreter.
May
24
revised Does needing the ability to extend a class at runtime imply poor design?
added 18 characters in body
May
24
comment Is Objective-C the only language with infix arguments?
Objective-C is basically C + Smalltalk + types. Java is Objective-C - C, or, IOW, Smalltalk + types. ECMAScript is Scheme + NewtonScript (which is based on Self) with a little bit of Act-1 (which is based on Self). Ruby is Smalltalk + Perl. Smalltalk heritage runs deep in modern OO.
May
24
comment How do hybrid interpreter-JIT compilers work?
Note: V8, at least in its original incarnation(s) did not have an interpreter. The original versions(s) had just one compiler, newer versions have two, but AFAIK no interpreter.
May
24
answered Does needing the ability to extend a class at runtime imply poor design?
May
24
revised Is Objective-C the only language with infix arguments?
added 34 characters in body
May
24
answered Is Objective-C the only language with infix arguments?