One of the positive features of the Ada programming language is the expressive power of its tasking model. No other language has a concurrency model that has such a wide range of synchronous and asynchronous language primitives. In this talk the two extremes of the expressive power of the language will be illustrated. A simple subset of features that gives rise to very predictable applications will be described (the Ravenscar Profile), as will a value based dynamic run-time scheduler that makesuse of many of the advanced aspects of the tasking model. The latter example demonstrates how new scheduling schemes can be implemented using the additional features of the real-time annex. Taken together these two examples illustrate the power of the tasking model and show that, in many ways, it is these features that represent the most significant aspects of the Ada language. The use of Ada remains the most effective way of teaching concurrent programming in universities and schools.