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

  • #11
    Originally posted by tarceri View Post
    Yes although it doesn't seem to be a huge project, hopefully someone can take the concepts and rewrite it in c/c++ so it can benefit llvm/gcc.
    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.

    Comment


    • #12
      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.
      I'm waiting for Rust: memory safe with much more low-level flexibility than D. In the mean-time D is a nice language which never took off, C++ is an ugly but powerful language that's getting more and more complex, and... why did this discussion devolve three ways into Warp, FB is evil, and language X >> lang Y?

      Comment


      • #13
        Originally posted by Cyborg16 View Post
        I'm waiting for Rust: memory safe with much more low-level flexibility than D. In the mean-time D is a nice language which never took off, C++ is an ugly but powerful language that's getting more and more complex, and... why did this discussion devolve three ways into Warp, FB is evil, and language X >> lang Y?
        1. I'm waiting for Rust as well. Awesome language with so much potential. It's almost here!! >.<
        2. Because it's the Phoronix forums. We can't keep on-topic for more than 5 posts (usually less... I've seen the very first comment derail the entire thread *shrug*)

        Comment


        • #14
          Originally posted by Cyborg16 View Post
          I'm waiting for Rust: memory safe with much more low-level flexibility than D. In the mean-time D is a nice language which never took off, C++ is an ugly but powerful language that's getting more and more complex, and... why did this discussion devolve three ways into Warp, FB is evil, and language X >> lang Y?
          "FB is evil" is clearly trolling and off topic. Language X >> language Y is on-topic. I was merely explaining the issues behind slow compilation times in C++. I'd say the Warp is a great product, but it kind of solves a non-problem. If people didn't use such crap language likes C++ (the main problems are pre-processing, syntactical and it's lack of module system in this case) or used an improved future version of C++, there would be less need for Warp. You can think of it like the next step after fixing a slow algorithm by shoving more hardware on it. Now the algorithm is still weak, but you're using a micro-optimized I/O framework to mitigate the cost. The "Real Solution" would be to fix the language.

          Comment


          • #15
            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.
            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).

            Comment


            • #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

                      Working...
                      X