2,965 reputation
1116
bio website jelv.is
location Berkeley, CA
age 21
visits member for 4 years
seen yesterday

I am a student interested in programming languages, functional programming, program synthesis, type theory, universal algebra and startups (not necessarily in that order!). In the near future, I want to combine as many of these as possible.

I am currently an undergraduate researcher at the Berkeley ParLab, working on program synthesis. This past summer, I was a tech intern at Jane Street Capital, brazenly using OCaml in the real world. Right now, I'm leading a meetup group about type theory; you can see the slides here or just show up to the next on if you live near SF ;).

I am always happy to chat: my email is tikhon@jelv.is

GitHub: http://github.com/TikhonJelvis

Website: http://jelv.is


Aug
1
comment Legitimate use for IRC bots
Lambdabot in #haskell is a great example of a good bot: it does stuff like running haskell snippets, figuring out the types of statements and even rewriting functions in point-free style. People use it there all the time.
Jul
30
answered How have languages influenced CPU design?
Jul
30
comment What are good mathematical formulas to know for programming?
@MattEllen: It lets you solve recurrence relations that can help you find the complexity of recursive algorithms. This is particularly important when writing a "divide-and-conquer" style algorithm. Roughly speaking, you can use the master theorem to get the complexity if you know the complexity of each "step" and the branching factor.
Jul
28
revised Please explain the statement that the function an+b belongs to O(n^2) and and Θ(n)?
added 1103 characters in body
Jul
28
answered Please explain the statement that the function an+b belongs to O(n^2) and and Θ(n)?
Jul
26
answered How much should I know before looking for an internship? (self-taught with math background)
Jul
24
comment What are the factors that have made Java a success as a programming language in enterprise computing?
@FrankShearar: While I love Haskell's syntax as a programmer, I don't think it's easy to parse at all. For example, the operator precedence can depend on what modules you've loaded and even on code you haven't parsed yet! The indentation rules also seem rather complicated to implement.
Jul
21
comment Good resources and tools for modern, heavy JavaScript development?
If you're going to compile to JavaScript from a different language anyhow, there are plenty of choices--you don't have to use Java at all! For example, we're using js_of_ocaml at work right so we can write our code in OCaml and run it on the browser.
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.