Previous | Next --- Slide 17 of 66
Back to Lecture Thumbnails

Maybe C++ by itself is not easy to use and hence doesn't have high productivity but if you have a good codebase, good debugging tools then your productivity goes up by a lot in the same. Obviously there's the initial cost of creating the codebase but once you're done with that you should be able to write general applications with a lot of ease. So what I'm saying is maybe C++ comes the closest to being inside the triangle.


I think Rust is the most promising current language for being inside the triangle. It does pretty well at the productivity and completeness levels, and I think the extra semantics and guarantees from its type system will help with optimization and scaling.


@memebryant I would say Ocaml is an even better fit. (The biggest exception being low-level bit nonsense, which I will agree Rust is probably better for in most cases.)


I'm not sure if SQL and Hive fall into the High Performance & High Productivity category. They are both far from "complete," since they are mostly used for querying from a well-structured dataset instead of for performing general-purpose calculations. However, both are easy to write (Hive code is essentially SQL code), and they can be highly performant when written properly.

For example, Hive queries are often executed as MapReduce jobs which can be run over a cluster of machines. At Facebook, a query that finds users with certain non-trivial conditions (e.g. by page likes & demographic info) would only take <1hr. Similarly, SQL queries over a properly-indexed dataset can be highly efficient, and there are ways for users to examine how a query is executed so as to build efficient indexes.


Here is a video that gives a good look at a specific example of how Domain Specific Languages are used in the real world and how they can be used in a variety of environments. However again it stresses the key to Domain Specific Languages that is a very defined use case.


@colorblue: I guess the link is not correct.


@randomized sorry about that