As parallel architectures are now the norm, it is necessary to consider programming languages and libraries that offer a trade-off between execution efficiency and programming productivity. While languages and libraries for high performance computing, such as MPI, favor efficiency over productivity, of lot of application domains require that mainstream programmers develop parallel applications without a huge knowledge about parallel programming. An algorithmic skeleton is a pattern of a classical parallel algorithm, and most often, an algorithmic skeleton also corresponds to a sequential algorithm. For example the map algorithmic skeleton applies a function to all the elements of a distributed collection and is related to the application of a function to a sequential collection. For the programmer, a parallel application is then obtained as the combination of several algorithmic skeletons. Orléans Skeleton Library (OSL) is a library of parallel algorithmic skeletons, written in C++ on top of MPI, which uses meta-programming techniques for optimization. Research on high-level parallel programming approaches systematically evaluate the performance of applications written using these approaches and informally argue that high-level parallel programming languages or libraries increase the productivity of programmers. In this talk, I will present OSL and a first attempt to evaluate the trade-off between programming effort and performance of applications developed using different programming models including OSL.