Reputation
60,424
Next tag badge:
139/100 score
17/20 answers
Badges
13 179 261
Newest
 Good Answer
Impact
~2.1m people reached

Apr
12
comment What are the drawbacks of making a multi-threaded JavaScript runtime implementation?
@cat Homoiconicity is a relic of Lisp's development in ancient days when parsing was still a dark art and not the (mostly) solved problem it is today. The original design papers for Lisp show a more complicated system, but they couldn't figure out how to parse it so they punted, came up with the most stupidly simple thing that could possibly work, and shoved all of the work that a parser ought to be responsible for off onto the developer. And nowhere does this become more painfully obvious than when you try to write macros without a proper contextual AST.
Apr
12
comment What are the drawbacks of making a multi-threaded JavaScript runtime implementation?
@cat: Metaprogramming and macros are great, done well. Lisp does not do them well, and homoiconicity is a big part of the problem, but a comment is too small to discuss this issue properly. But every time you see a data breach caused by injection (of the SQL variety, XSS/XSRF, or otherwise,) that's from someone managing to get a system to treat data as code when it shouldn't have been. Conflating data with code (the Lisp problem) and buffer overflows (the C problem) are, together, the source of the vast majority of all serious security holes in computing today.
Apr
12
comment What are the drawbacks of making a multi-threaded JavaScript runtime implementation?
@slebetman ...which is a large part of why it's so awful. Between its extreme dynamic typing, eval, and no real concept of namespaces--all serious problems in JavaScript that originated in Lisp--(not to mention the massive security holes inherent in the concept of conflating data and code,) Lisp has caused a lot more harm to our craft than benefit.
Apr
12
comment Why doesn't the compiler complain when I try to access a non-existent array value?
@WaymanBellIII There are plenty of ways to do that without opening up massive security holes. Civilized languages generally do what you're describing with streams.
Apr
12
comment Why doesn't the compiler complain when I try to access a non-existent array value?
This is not "cool and powerful"; it's a massive security hole masquerading as a language feature for 1337 haxx0rz.
Apr
12
comment Why doesn't the compiler complain when I try to access a non-existent array value?
Compilers aren't stupid in that regard; the C++ language (and the C language on which it's based) is stupid in that regard. This is a well-known problem called "buffer overflow* and it's been a major source of online security holes for literally over a quarter of a century, but a lot of programmers are stupid in that regard, and have failed to abandon C in favor of a less stupidly-insecure language.
Apr
6
answered Are browser console errors 'compiler errors', 'runtime errors', or neither?
Apr
6
comment In which order should lisp functions be defined?
That warning seems a bit silly: what if you have two mutually-recursive functions?
Apr
5
comment Why isn't there a primitive “complex number” type in Java?
@kai I'm claiming that it can't be represented in our common real-number-based mathematics by any simpler representation. This is clearly not the case for integers-as-prime-factor-lists.
Apr
5
awarded  java
Apr
4
comment Why isn't there a primitive “complex number” type in Java?
@RichardTingle It would, because it represents a small amount of data that can easily be treated as a single aggregate value, which you would prefer to copy around like a primitive, and for which the overhead of object allocation doesn't make sense.
Apr
4
comment Why isn't there a primitive “complex number” type in Java?
@RichardTingle You seem to be operating from the premise that an object can have methods and a struct can't. What makes you think this? The essential difference between an object and a struct is that an object is a reference type and can have inheritance, while a struct is a value type and cannot have inheritance.
Apr
4
answered Why isn't there a primitive “complex number” type in Java?
Apr
4
awarded  Enlightened
Apr
4
awarded  Nice Answer
Apr
3
comment Why is XML called a “language” exactly?
@JamesSnell Not to be confused with the other ML language family, of course. Yay for over-crowded acronyms!
Apr
3
comment Why is XML called a “language” exactly?
@MrLister Because they're not human-readable. When they aren't human-readable we tend to call them formats or data formats instead.
Apr
2
comment Why does :nth-child() in CSS start from 1 instead of 0?
"Should array indices start at 0 or 1? My compromise of 0.5 was rejected without, I thought, proper consideration." -- Stan Kelly-Bootle
Apr
2
comment Why double colon instead of dot?
The::horribly::ugly proliferation::of the::C++ namespace::resolution::operator everywhere is::known::as colon::cancer.
Mar
31
comment Can no Longer open Spyder IDE for Python Programming
Never heard of Spyder, but have you looked at PyScripter?