Announcement

Collapse
No announcement yet.

Warp: Facebook Open-Sources A Super Fast C/C++ Pre-Processor

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • #16
    Who gives a rusty ****?

    I've got LLVM/Clang and GCC. I'll pass.

    Comment


    • #17
      Originally posted by caligula View Post
      FB has hired experts from many fields, but the author of the tool is Walter Bright. Walter Bright is a self-taught compiler writer without a formal degree in computer science. Few years ago he did not know what higher order functions are, but he seems to know a thing or two about low level optimizations.

      Of course the whole FB language ecosystem is silly. We're expecting a real module system in the coming versions of C++. The include based system is a temporary solution and almost no other language today uses that kind of legacy system. It's terribly inefficient. See these slides http://llvm.org/devmtg/2012-11/Gregor-Modules.pdf

      But this tool is consistent with FB's eagerness towards PHP. PHP is probably the worst of the contemporary web programming languages. I'm not saying it won't work, but it was originally designed for small scale personal home pages, thus the name. A lot of work has been required to improve PHP. It still sucks compared to other similar languages with more thought on design, written by people with more formal academic knowledge. Facebook wanted to create a better compiler for PHP. They'd have come up with a much better tool with a better language (in terms of academic language research), but they probably wanted to produce a more reasonable tool for legions of cheap and ignorant mediocre programmers from public colleges and 3rd world countries with a weaker educational system.
      A B.S. in Mechanical Engineering, from Cal Tech.

      Word of advice: Most of us Mechanical Engineers have learned several programming languages. Writing a Compiler is not Rocket Science. No offense, but most of the top dogs in IT have Mechanical, Electrical and Physics degrees. CS was a helluva a lot easier degree than Mechanical Engineering, and about 1/10th as rewarding.

      Comment


      • #18
        Originally posted by pholklore View Post
        Huh. What's with the bashing, and that "if-no-formal-education-he-must-be-clueless" attitude?

        He's actually the designer of the D programming language. Funny nobody mentioned that...

        I don't really find that surprising that he did work for Facebook, given that Andrei Alexandrescu (the interviewer in the announcement) works at Facebook nowadays, and knowing they are friends. Andrei himself is a big D proponent and guru (in addition to being a C++ guru).
        First time I came across D was an interview conveyed by Jon Harrop. I thought it was funny because the guy was designing a multi-paradigm language with functional elements and didn't know what higher order functions are. I tried D few times a bit later and noticed that it had some hilarious problems with type inference. For example inferring the type for an array like [ [], [1,2,3]]. Having academic background knowledge of concepts such as System F could have been helpful in the task. Now that I read about this pre-processor project, it reminds me of C programming 20 years ago. It's been a long while since I worked with languages without any proper module system. OCaml naturally shines when it comes to modules and Rust is also rather interesting.

        Comment


        • #19
          LLVM did some tests - LLVM's is faster?

          Originally posted by curaga View Post
          I was going to ask when it will be integrated to llvm or gcc preprocessors, then saw it was written in D.
          I saw a "back of the envelope" comparison of warp v/s LLVM's preprocessor, and LLVM's was faster. I can't find the link now; must have read it on my other computer :-(. If anyone has the reference, please add it; otherwise, I'll find it later today and update...

          Comment


          • #20
            Originally posted by caligula View Post
            First time I came across D was an interview conveyed by Jon Harrop. I thought it was funny because the guy was designing a multi-paradigm language with functional elements and didn't know what higher order functions are. I tried D few times a bit later and noticed that it had some hilarious problems with type inference. For example inferring the type for an array like [ [], [1,2,3]]. Having academic background knowledge of concepts such as System F could have been helpful in the task. Now that I read about this pre-processor project, it reminds me of C programming 20 years ago. It's been a long while since I worked with languages without any proper module system. OCaml naturally shines when it comes to modules and Rust is also rather interesting.
            D1.0 was created by Walter Bright, who wrote a working commercial C++ compiler but didn't have a formal computer science education. D2.0, which is the current version, was mostly designed by Andrei Alexandrescu, the same guy who wrote Warp. He's got his PhD in computer science and there are youtube videos of him in friendly debates with Haskell and Lisp hackers - so it's likely he knows what he's doing.

            I'm not sure Rust trumps D 2.0. I really don't care too much if one beats the other, since both look to be easier to use, easier to secure, easier to read, etc... than C++.
            D2.0 has a pretty cool set of features, http://dlang.org/comparison.html

            Comment


            • #21
              Originally posted by caligula View Post
              C++ is constantly improving. Many of D 1.0 features were later implemented in C++. Some features still look a bit different in C++, but it's only about the syntax and the look'n'feel. I'd expect D to have some effect on C++, but eventually C++ will likely win. People want a continuous standard and clear upgrade path. D breaks compatibility in too many ways and it has smaller ecosystem and very few commercial players shoving truckloads of money on it.
              Facebook is the very definition of that.

              Comment

              Working...
              X