6 ms·
I think you are overlooking OCaml & Haskell (which can both be used skillfully to approach performance of C).
by yohanatan 12y ago
I think you are overlooking OCaml & Haskell (which can both be used skillfully to approach performance of C).
- kryptiskt 12y agoHaskell is great, but GHC's runtime system is 50000 lines of C.
- thirsteh 12y agoWhich is relatively inconsequential as long as there's a clear boundary between things that can be manipulated by a user and the C code. It'd be better if it wasn't C at all, sure, but, from a security perspective I'd take a language with a C runtime over a language where code has to be carefully written in a memory-safe manner any day.
- zanny 12y agoGCC is written in C/C++. I don't think any of the compilers are dogfooding their language because its supposed to be reusing infrastructure. I'd hope an LLVM compiler for a language would eventually be dogfooded, though.
- yohanatan 12y agohttp://en.wikipedia.org/wiki/Bootstrapping_(compilers) http://en.wikipedia.org/wiki/Bootstrapping_(compilers) This is pretty much the first thing that everyone writes in their new programming language.
- zanny 12y agoGCC is written in C/C++. I don't think any of the compilers are dogfooding their language because its supposed to be reusing infrastructure. I'd hope an LLVM compiler for a language would eventually be dogfooded, though.
- meowface 12y agoAre there examples of either OCaml or Haskell being used for systems programming? I know that algorithmically they can achieve pretty close performance, but I don't think support is that great for low-level operations.
- tome 12y ago"Ivory" is a Haskell embedded domain specific language for writing safe C programs. One (very loose) way of thinking of it is that it compiles a restricted subset of Haskell to low level C. http://ivorylang.org/ http://ivorylang.org/
- yohanatan 12y agoThere is also 'Atom' which is an embedded DSL in Haskell for writing real-time embedded systems: http://en.wikipedia.org/wiki/Atom_(programming_language) http://en.wikipedia.org/wiki/Atom_(programming_language)
- thirsteh 12y agoIt's hard to tell what you mean by "low-level operations." A lot of systems programming, particularly the GNU suite, just deals with manipulating files, sockets, and so on, and Haskell can do that just fine. Example: http://www.haskell.org/haskellwiki/Simple_Unix_tools http://www.haskell.org/haskellwiki/Simple_Unix_tools
- tokenrove 12y agoYou might consider Mirage OS (http://www.openmirage.org/ http://www.openmirage.org/) to be systems programming.
- more_original 12y agoMaybe you could have a look at "Unix system programming in OCaml"? http://ocamlunix.forge.ocamlcore.org/ http://ocamlunix.forge.ocamlcore.org/