Reputation
3,335
Next privilege 5,000 Rep.
Approve tag wiki edits
Badges
12 18
Newest
 Enlightened
Impact
~253k people reached

Jul
20
comment If python compiles to assembly and an OS is written in it, will it compete favorably with C in benchmarks?
@MichaelT: I've heard of a Scheme compiler (Stalin Scheme) that essentially does just that. Scheme is an incredibly flexible and dynamic language, but given enough analysis and access to the whole program at compile time lets you produce very efficient code. Of course, Satlin was just a research project, but I imagine something like that could also be written for Python. It would, however, be prohibitively difficult to actually write.
Jul
18
comment Why are data structures so important in interviews?
Data structures are universal until you get hooked on purely functional programming :P.
Jul
18
comment Why are data structures so important in interviews?
@user12889: Pretty much everything in CS can become arbitrarily difficult :). That's why it's such a fun field. Of course, being arbitrarily easy is another matter entirely... But that is a very good point, especially for interviews.
Jul
17
comment Is COBOL still worth learning?
Given that there's no such thing as unnecessary knowledge, I nominate Intercal for the next language you learn!
Jul
15
comment Is it bad to learn multiple programming languages?
I think that's a good approach. Particularly importantly, it teaches you different languages. Learning Perl after PHP is not going to give you nearly as much insight as learning Prolog or Haskell!
Jul
14
comment What are the best practices regarding unsigned ints?
Another solution would be to require you to manually cast your numbers as appropriate. This is what Go seems to do (I've only played around with it a tiny bit though), and I like it more than Java's approach.
Jul
9
comment Functional Programming, JavaScript and UI - some neophyte questions
@ErikReppen: Check out FlapJax. If you don't mind a slightly more abstract library, check out Arrowlets which adds Haskell-style arrows to JavaScript. If you're into C#, there is RX.js which is a port of C#'s Reactive Extensions (RX). I've only played around with the latter two, and liked Arrowlets the most, but I'm rather partial to Haskell and so naturally biased :P.
Jul
7
comment Functional Programming, JavaScript and UI - some neophyte questions
Event driven programming is not the only way to write UIs. I suggest you take a look at some reactive programming libraries for Javascript: they can actually make your event-driven code simpler, elegant and more functional.
Jul
7
comment Why did visual programming never take off and what future paradigms might change that?
@PieterB: Not power users of the software they're working on but power users of their development tools like editors and programming languages. Unless, of course, the software they're working on also happens to be a development tool :P.
Jul
4
comment What does it mean if a job requires a “Bachelor's degree in Computer Science or related field”?
Keep in mind that a lot of these people predate CS as a field. The very first CS program to actually have that name was in 1953. I imagine it took a while after that for CS programs to spread to other universities. But yeah, there is no question that a mathematics education can produce a great programmer (as well as other fields like Physics or EE). Also, one Turing award winner studied Political Science, of all things, but I think that is just a coincidence.
Jul
3
comment The most mind-bending programming language?
One surprising thing about Prolog is that a basic prolog interpreter is actually surprisingly simple to implement. The fundamental algorithms behind it (e.g. unification and resolution) turned out to be much simpler than I thought they would be.
Jul
2
comment Is it worth to learn Experimental Languages?
@JörgWMittag: I think that says more about Java than about Haskell though.
Jun
17
comment Programming Language, Turing Completeness and Turing Machine
Yes, the lambda calculus is the genesis of functional programming. However, even Turing machines are naturally expressed in terms of functions; the formal definition of a Turing machine is just a tuple of some sets, symbols and a transition function.
Jun
11
comment How do I completely-self-study Computer Science?
I'm doing EECS at Berkeley right now. If the MIT EECS program is structured anything like Berkeley's, then you won't get much guidance there: we have a short intro sequence and then it's literally do whatever you want in whatever order you want as long as you do a minimum number of advanced courses. I think it's awesome, but it probably won't help you figure out which courses to take: I had to make the same decisions myself. (I had help from my faculty advisor, but in a complete coincidence his advice was to take his graduate seminar :)).
Jun
10
answered Why don't browsers support haml and sass?
Jun
3
comment Programming languages, positional languages and natural languages
Sort of. Particularly, I'm thinking of languages where you represent computation primarily using mathematical ideas. Mostly functional programming languages like Haskell. So it doesn't just express mathematical concepts, it actually uses them for everything like representing state and IO. It's also closer to mathematical notation than a natural language.
Jun
3
comment Programming languages, positional languages and natural languages
@JarrodRoberson: While you are right, I don't think Turing completeness is a useful criteria to define a "programming language". Particularly, there are some very nice total functional languages that are not Turing complete but are still useful for writing programs (e.g. Epigram or Agda).
Jun
3
comment Programming languages, positional languages and natural languages
You should also note programming languages that are primarily inspired by math. At least in PL research, these are fairly common.
Jun
3
comment Is musical notation Turing-Complete?
What you listed is not necessary for a Turing complete language. Lambda calculus only has applications, variables and lambdas (e.g. no loops, states or commands) but is Turing complete. The same goes for a bunch of other models of computation like SKI combinators.
Jun
3
comment Is musical notation Turing-Complete?
Building a Turing machine is the standard way to prove something is Turing complete, but the converse is not true--simply because you cannot figure out how to build a Turing machine does not mean something is not Turing complete. A Turing machine (with a tape and all) is just an arbitrary abstraction that has enough computing power; there are other abstractions just as powerful with no notion of tapes. Take a look at lambda calculus, SKI calculus or some esoteric languages (Fractran is cool).