5 ms·
Nothing against this particular language, but... I feel like there is a new language at least every day. It would seem that this does more harm than good to the
by elwell 13y ago
Nothing against this particular language, but... I feel like there is a new language at least every day. It would seem that this does more harm than good to the developer community's progress. Of course, languages need to be iterated on in addition to the programs they compose. But, there is now such a large spread of similar languages that it necessarily slows the development of the most productive ones by blurring/resetting the focus constantly. Many technical problems can be solved with existing languages, rather than eliciting the distraction of a brand new language. Though, in this case, there is perhaps a clear purpose for the specialization of the language. There is certainly a benefit to new languages that offer truly new concepts or optimizations.
- melonakos 13y agoWe agree. Language bloat is a cacophonous. That's why we don't call ArrayFire a language. It's just a library with compatibility for existing languages, e.g. C, C++, Fortran.
- zhemao 13y agoI agree. This was just a class project, and I don't plan on continuing development. These features would be a lot more useful rolled into existing programming languages.
- kylelutz 13y agoWould you be interested in trying to adapt some of your approaches into a C++ GPGPU library (https://github.com/kylelutz/compute https://github.com/kylelutz/compute)?
- zhemao 13y agoHey that's pretty cool, and would probably make OpenCL usable by mere mortals. One improvement that I see you could borrow from vector is getting rid of this explicit copying business. Take a look at the array implementation in our runtime library. https://github.com/vectorlang/vector/blob/master/rtlib/vector_array.hpp https://github.com/vectorlang/vector/blob/master/rtlib/vecto... Basically, the VectorArray class contains both the host array pointer and the device array pointer. There are also two boolean flags, h_dirty and d_dirty. When you modify array elements on the host, h_dirty is set to one. Then, when you run a kernel, the data is copied to the device if h_dirty is set, h_dirty is cleared, and d_dirty is set. When you try to read an array element again on the CPU, the data is copied from device to host if d_dirty is set, and d_dirty is then cleared.
- bliti 13y agoI actually welcome new languages. Even if some may be buggy, and lacking in features. Most will most likely end up being lost or unused. But the knowledge gained from developing it is spread out into the industry. Also, it is distracting if you try and follow every new trend. Like you said, there are already a good amount of options available. No need to learn each and every new language. Though it is fun to download them on a Saturday and learn about the ideas the creator(s) had in mind when developing it.
- chongli 13y agoI hear this same refrain about Linux distros. Personally, I think there's a lot of merit to the proliferation of languages. Languages don't just change the way we write code, they change the way we think. A programming language monoculture would lead to a thinking monoculture and that would be disastrous for innovation.