4,520 reputation
11733
bio website langnostic.inaimathi.ca
location Toronto, Canada
age 30
visits member for 4 years, 2 months
seen Oct 28 at 18:38

Common Lisp/Haskell/JavaScript/Scheme/Elisp hacker with a degree in Graphic Design, an eye for layout and a hungry, hungry mind.


May
25
comment The rationale behind Falsy values
@MasonWheeler - Hm. So in Java/.NET, the empty string and the null string are distinct values? That's a bit odd. You're right though; that's a separate issue.
May
25
comment The rationale behind Falsy values
@MasonWheeler - That begs the sequence question though: do you go the Python route and declare that empty sequences in general are Falsy, or do you treat String as special among them? Also, at that point, shouldn't you provide some facility to your users to define their own Falsies (since things other than the standard library sequences can be empty)?
May
25
comment The rationale behind Falsy values
@MasonWheeler - Fair enough.
May
25
comment The rationale behind Falsy values
JS also does some odd things with regard to "0". Specifically, "0" == 0, but !!"0". Which leads to the very odd situation that "0" == 0 && 0 == "" && "0" != "". Once you've decided that 0 is Falsy, and that a number should compare to its stringified version under ==, making "0" Falsy seems more consistent, if anything. Thanks for the insight.
May
25
comment The rationale behind Falsy values
@MasonWheeler - JS has the following Falsy values: 0, "", undefined, null and NaN, while Python has 0, None, [], {}, () and "". I don't use C very much, so I'm not sure how it compares. The "anything as a boolean" is not an exclucively C thing either though; Common Lisp also lets you put anything in the test portion of an if or when, but only something that evaluates to NIL (which represents the empty list) will be treated Falsily.
Feb
17
comment Is MySQL viable for small-medium business applications
Sorry, that should have read "...you never distribute anything...". Also, refer to section 13 of the AGPL for relevant bits there.
Feb
17
comment Is MySQL viable for small-medium business applications
IANAL, but based on what you describe, you're ok. The GPL only bites if you try to distribute GPLed code without also providing a "the corresponding source", or directions for how to freely obtain it. Sections 4 and 6 of the license are relevant to you. If by "hosted", you mean "software as a service", you never distribute source code, so you're fine unless you use a component licensed under the AGPL (in which case, you need to post the source for your server for all your users in order to comply).
Jan
21
comment Stack-instructions machines
@Donal - That is a true statement.
Jan
20
comment Stack-instructions machines
@Peter - Yeah... It's interesting, but a much lower level of abstraction than I'm used to dealing with for typesetting.
Nov
27
comment Why should we use low level languages if a high level one like python can do almost everything?
You shouldn't randomly rewrite code that you plan to make no further changes to (that's a waste of effort no matter what you're rewriting to) but I'm not sure how wide the gulf is between "understanding a million lines of C for the purposes of adding features/making significant changes" and "understanding a million lines of C for the purposes of rewriting it in something else". Having that much code that your team doesn't understand already sounds like quite the liability to me.
Nov
25
comment Why should we use low level languages if a high level one like python can do almost everything?
@marcof - As an illustrative example, I refer you to the first ~35 seconds of this video. Joking aside, I don't know if you could compress 1 000 000 lines of idiomatic C down to 5k lines of idiomatic python, but my point was that the choice is not as simple as if plan.scan /rewrit(e|ing)/ false end; there is a benefit conferred by rewriting in a more expressive, less verbose language with the obvious performance cost. If you can afford it, it might be a good idea.
Oct
11
comment Why should we use low level languages if a high level one like python can do almost everything?
@Dark Templar - Because the components of a purely functional program have no dependency on external state and have no assumptions about what order they will run in. This makes it easier (though not easy) to reason about how to efficiently break such a program up across different processes. Have a Haskell-related link in which Simon Peyton Jones explains his approach in-depth.
Sep
2
comment Difference between free and open software?
@Jonathan - Had you adhered to the terms of the GPL, you could have enacted those innovations. What it would have entailed is merely not restricting your users. I think what you meant to say is "We wanted to innovate on top of GPL code and then refuse (or limit) access to it to anyone outside our company/group/what-have-you". Preventing that kind of free-riding is the precise purpose of the GPL. No, it does not infect source code; you are perfectly free to do without it. If you want the benefit of building on it, you must not reduce access to works derived from it. That's all.
Sep
1
comment Difference between free and open software?
@Jonathan Cline - To paraphrase one of Stallmans' responses "As a factual matter, the GPL does not spread like a virus. It can't infect software by running on the same computer. It spreads more like a spider plant; if you cut off a branch and plant it somewhere, then it grows there too". AFAIK, the LGPL is even less "viral" than the GPL, as you can use code released under it in proprietary software. Out of curiosity, why do you say that these licenses are "not free"?
Sep
1
comment Difference between free and open software?
@Ingo - I think he meant free (as in speech) software because he referenced the GNU GPL gnu.org/philosophy/free-sw.html . In this context, Free Software most certainly provides access to the sources.
Mar
9
comment Programmers that need a lot of “Outside Help” - Is this bad?
@Mark Trapp - to be fair, replacing "Does anyone else think it's kind of tacky or" with "Is it" seems to yield a legitimate question. This seems like one in need of rewording.
Mar
8
comment Resources for functional programming beginner
You mention SICP, but you might also want to point out the Little Schemer Trilogy, which is excellent for beginners to functional programming.
Mar
8
comment Resources for functional programming beginner
IMO, this is most useful for Schemers who want to get into Haskell (or perhaps Haskellers who want into Scheme). I doubt someone who knew neither language would benefit much. It is a great exercise to go through though.
Feb
24
comment What programming languages should every computer science student be taught?
Somewhat related: youtube.com/watch?v=Ps8jOj7diA0 Stanford has their complete Programming Paradigms 2008 lectures up on YouTube.
Feb
24
comment What programming languages should every computer science student be taught?
+1 for listing to-the-metal languages.