Początki HL++ sięgają lat ’90 dwudziestego wieku. Początkowo było to ćwiczenie informatyczne na zajęcia o abstrakcyjnych typach danych. Były to czasy dominacji Matlaba, jednak język ten posiadał swoje ograniczenia, wynikające z tego, że kod był interpretowany, a nie kompilowany. W związku z tym pisanie w nim pętli lub funkcji rekurencyjnych mijało się z celem, gdyż programy działały bardzo wolno. Tu z pomocą przychodziły języki takie jak Pascal lub C. Kod w nich napisany działał setki razy szybciej i to było dobre rozwiązanie. Brakowało jednak odpowiednich bibliotek, aby wygodnie pisać programy naukowe. Prosty projekt biblioteki macierzowej wychodził naprzeciw tym oczekiwaniom, jednak same macierze to za mało. Stopniowo dodawane więc były kolejne biblioteki i funkcje i tak projekt ewoluował do obecnej postaci.
1995: wersja 1.0 skupiała się na oprogramowaniu macierzy i metod numerycznych
1999: w wersji 1.1 dodano macierze rzadkie, sieci neuronowe i funkcje scoringowe
2003: w wersji 1.2 dodano obiekt tabela oraz bibliotekę obsługi zadań
2008: w wersji 1.3 obsługę wykresów i kompresji
2014: powstała wersja 2.0, napisana od nowa z wykorzystaniem wzorców. Klasa 'dane’ implementuje funkcje wspólne dla macierzy i tabel. Macierze otrzymały etykiety kolumn i wierszy
2015: w wersji 2.1 dodano bibliotekę raportów w HTML i zapytań SQL
2016: w wersji 2.2 dodano biblioteki symulacji i obliczania kwantyli
2017: w wersji 2.3 dodano obsługę R i narzędzia do pracy w tym języku
2018-2021: wersja 2.4 nie wprowadza nowości, ale skupia się na udoskonaleniu dotychczasowych bibliotek
