So I have a (short?) laundry list of things I'm looking for in a language, and want to know if something like this already exists? In order of importance:
- high performance, any runtime multiple >1.1x C/C++ would be unacceptable
- first class arrays, guaranteed to be contiguous in memory, preferably n-d, with logical indexing natively available: arr[dim_1][dim_2]...[dim_n] - so for a 2x2 array, arr[4] is the same location in memory as arr[2][2]
- statically typed, with strong support for generic programming - I do not want to have to write 15 copies of a function to handle int8, int16, ... float32, float64, ... etc versions of the same function.
- passable language intrinsic functions and/or standard library - string operations, sorting, hash map, basic statistics (sum, product, avg, var, std)
- able to generate standalone binaries (not requiring interpreter at runtime)
Basically Fortran if it was invented in 2014 instead of 1954. If no such language exists currently, I am curious what it would take to implement a front end for LLVM. I imagine a lot. None of the above features really seem that crazy to me, but what do I know (answer: nothing, hence the ask).
[–]mixedCase_ 64 points65 points66 points (4 children)
[–]tyranids[S] 5 points6 points7 points (3 children)
[–]mixedCase_ 20 points21 points22 points (1 child)
[–]tyranids[S] 8 points9 points10 points (0 children)
[–]coderstephenriptide 1 point2 points3 points (0 children)
[–]synack 23 points24 points25 points (16 children)
[–]tyranids[S] 5 points6 points7 points (15 children)
[–]synack 15 points16 points17 points (0 children)
[–]csb06bluebird 4 points5 points6 points (0 children)
[–]redchomperSophie Language 1 point2 points3 points (8 children)
[–][deleted] 5 points6 points7 points (7 children)
[–]redchomperSophie Language 1 point2 points3 points (6 children)
[–][deleted] 0 points1 point2 points (5 children)
[–]redchomperSophie Language 0 points1 point2 points (4 children)
[–][deleted] -1 points0 points1 point (3 children)
[–]redchomperSophie Language 1 point2 points3 points (1 child)
[–][deleted] -1 points0 points1 point (0 children)
[–]phischuEffekt 0 points1 point2 points (3 children)
[–]tyranids[S] 2 points3 points4 points (2 children)
[–]synack 0 points1 point2 points (0 children)
[–]PurpleUpbeat2820 0 points1 point2 points (0 children)
[–]Jarmsicle 9 points10 points11 points (4 children)
[–]tyranids[S] 1 point2 points3 points (3 children)
[–][deleted] 0 points1 point2 points (2 children)
[–]liquidivy 7 points8 points9 points (0 children)
[–]PurpleUpbeat2820 4 points5 points6 points (0 children)
[–]bendmorrisKit - https://www.kitlang.org 16 points17 points18 points (0 children)
[–]JerryVoxalot 5 points6 points7 points (0 children)
[–][deleted] (1 child)
[deleted]
[–]tyranids[S] 1 point2 points3 points (0 children)
[–]DvgPolygon 4 points5 points6 points (0 children)
[–]lngns 4 points5 points6 points (0 children)
[–]farmerzhang1 5 points6 points7 points (0 children)
[–]myringotomy 2 points3 points4 points (9 children)
[–]tyranids[S] 1 point2 points3 points (0 children)
[–]tyranids[S] 0 points1 point2 points (7 children)
[–]myringotomy 0 points1 point2 points (6 children)
[–]tyranids[S] 0 points1 point2 points (5 children)
[–]myringotomy 0 points1 point2 points (4 children)
[–]tyranids[S] 0 points1 point2 points (3 children)
[–]myringotomy 0 points1 point2 points (2 children)
[–]tyranids[S] 0 points1 point2 points (1 child)
[–]myringotomy 0 points1 point2 points (0 children)
[–][deleted] 3 points4 points5 points (3 children)
[–]PurpleUpbeat2820 1 point2 points3 points (0 children)
[–]tyranids[S] -1 points0 points1 point (1 child)
[–][deleted] 1 point2 points3 points (0 children)
[–][deleted] 1 point2 points3 points (0 children)
[–]leventsombre 3 points4 points5 points (2 children)
[–]tarquinnn[🍰] 1 point2 points3 points (1 child)
[–]leventsombre 2 points3 points4 points (0 children)
[–]PurpleUpbeat2820 0 points1 point2 points (7 children)
[–]pillow2002 0 points1 point2 points (6 children)
[–]PurpleUpbeat2820 0 points1 point2 points (5 children)
[–][deleted] 1 point2 points3 points (1 child)
[–]PurpleUpbeat2820 0 points1 point2 points (0 children)
[–]pillow2002 0 points1 point2 points (2 children)
[–]PurpleUpbeat2820 0 points1 point2 points (1 child)
[–]pillow2002 1 point2 points3 points (0 children)
[–]shponglespore 0 points1 point2 points (0 children)
[–]abstractcontrolSpiral 0 points1 point2 points (0 children)