Announcement

Collapse
No announcement yet.

Futhark: A Pure, Functional Language For GPU Computing

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

  • #11
    Originally posted by Marc Driftmeyer View Post
    Anyone who thinks CUDA has the momentum over OpenCL is blind to a fault.
    I think the dominance of CUDA over OpenCL simply reflects the fact that the GPGPU market isn’t all that big. If it were ever to take off, you should see a lot more competition, and resultant preference for open standards. But you don’t.

    Comment


    • #12
      Originally posted by schmidtbag View Post
      languages that seem to have no advantage over any other except a well-made compiler (like Rust or Go)
      ...
      I don't really like languages that are platform-specific either (like Swift)
      Rust has it's advantages of memory safety being one of the better known ones. Another area that it's becoming quite popular with is embedded dev. It is far more pleasant to use than C imo and has many features that you miss out with C. To be fair I'm not hugely experienced in C, and it's been a while since I did some embedded dev but I remember that C was slightly stripped of some features as well on embedded platforms compared to running on an OS like linux. Cargo is also really nice to have, perhaps there is an equivalent for C with the ability to know if the packages can be used for embedded dev or not or work with a restricted feature set etc.

      Swift to my knowledge is no longer restricted to Apple platforms alone anymore.

      Comment


      • #13
        Reminds me of Halide, interested to see how this turns out. Not sure how it compares though, Halide has the brilliant separation of schedule and computation.

        Comment


        • #14
          That raises the question: Younger or elder futhark? And where are my rune keys?

          Comment


          • #15
            Originally posted by polarathene View Post
            Rust has it's advantages of memory safety being one of the better known ones. Another area that it's becoming quite popular with is embedded dev. It is far more pleasant to use than C imo and has many features that you miss out with C. To be fair I'm not hugely experienced in C, and it's been a while since I did some embedded dev but I remember that C was slightly stripped of some features as well on embedded platforms compared to running on an OS like linux. Cargo is also really nice to have, perhaps there is an equivalent for C with the ability to know if the packages can be used for embedded dev or not or work with a restricted feature set etc.
            Understood, but remember, as far as I can tell, Rust accomplishes everything you mentioned through the compiler. The compiler is what's so special about it. Obviously, it's syntax makes it much easier for the compiler to do its job. But, with the right approach, I don't see why these features couldn't be done for another language. It doesn't have to be C, it doesn't even need to be a compiled language (the same features could maybe be done for interpreted languages).
            Swift to my knowledge is no longer restricted to Apple platforms alone anymore.
            It works on Linux and FreeBSD too but it's more experimental than applicable.

            Comment


            • #16
              Originally posted by schmidtbag View Post
              Understood, but remember, as far as I can tell, Rust accomplishes everything you mentioned through the compiler. The compiler is what's so special about it. Obviously, it's syntax makes it much easier for the compiler to do its job. But, with the right approach, I don't see why these features couldn't be done for another language. It doesn't have to be C, it doesn't even need to be a compiled language (the same features could maybe be done for interpreted languages).
              You could say the same thing about any turing complete language. If you don't think Rust is unique enough to exist, then I'm not sure what you do think is appropriate. C, Haskell, maybe Python and nothing else?

              Comment


              • #17
                Originally posted by schmidtbag View Post
                Understood, but remember, as far as I can tell, Rust accomplishes everything you mentioned through the compiler. The compiler is what's so special about it. Obviously, it's syntax makes it much easier for the compiler to do its job. But, with the right approach, I don't see why these features couldn't be done for another language. It doesn't have to be C, it doesn't even need to be a compiled language (the same features could maybe be done for interpreted languages).

                It works on Linux and FreeBSD too but it's more experimental than applicable.
                There is nothing particularly special about Rust. There is nothing you can't do in C++ for instance. It has just changed the syntax so instead of unsafe forms being the shortest and most concise forms like in C++, the safe forms are the base forms in Rust.

                Comment


                • #18
                  Originally posted by carewolf View Post

                  There is nothing particularly special about Rust. There is nothing you can't do in C++ for instance. It has just changed the syntax so instead of unsafe forms being the shortest and most concise forms like in C++, the safe forms are the base forms in Rust.
                  You mean such as immutable by default, so that to have a mutable variable you have to declare it as so, whereas in most languages you'd declare immutable with a const?

                  Is there anything like Cargo for C or C++? Is supporting documentation and testing as well supported as Rust does(it doesn't require third party support, you can do inline documentation and testing that generates a nice browsable documentation for your codebase and easily performs testing on it. Sure it can be done in other languages, just the support for it is built right into the language/syntax. Discovering and using libraries along with compatibility is easier with Cargo imo too. I'm not sure how well C++ is supported on embedded platforms, if I remember right it is not so good without it's standard library which iirc you lose on embedded platforms.

                  Comment


                  • #19
                    Originally posted by carewolf View Post

                    There is nothing particularly special about Rust. There is nothing you can't do in C++ for instance. It has just changed the syntax so instead of unsafe forms being the shortest and most concise forms like in C++, the safe forms are the base forms in Rust.
                    Here is the truth. If it was so easy to perform this static analysis for C++, corporations would have already invested efforts in doing this. Rust does help the compiler solve this problem and Rust developers are solving the static analysis problem C++ is not. If you truly believe C++ is capable of this sort of static analysis, investigate it and put resources behind your statement. I don't mean this in an inflammatory way, it is just the reality. Rust also has other things like combining enums and data, which provides more static analysis boons. This doesn't even mention its high level capabilities which aren't being discussed here. The reality is that C++ is not being used in places people can afford not to use it because its issues really haven't been solved. Also, let's not kid ourselves, C++'s highly inconsistent syntax, strange corner cases, and needless verbosity don't make any of our lives easier and we all have been dreaming for a day to get rid of it, because enjoying coding actually affects your productivity and C++ isn't fun to code in.

                    Comment


                    • #20
                      Originally posted by polarathene View Post

                      You mean such as immutable by default, so that to have a mutable variable you have to declare it as so, whereas in most languages you'd declare immutable with a const?
                      Yes and smart pointers being the standard as opposed to raw pointers.

                      I'm not sure how well C++ is supported on embedded platforms, if I remember right it is not so good without it's standard library which iirc you lose on embedded platforms.
                      What in God's name are you blathering about? C++ is the most used language on embedded platforms.

                      Comment

                      Working...
                      X