This paper describes, from motivations and main objectives to actual implementation, a novel agent-oriented programming language called JADEL. JADEL is designed to support the effective implementation of JADE agents and multi-agent systems in the scope of real-world model-driven development because it concretely helps developers by natively supporting agent-oriented abstractions, and because it is based on mature industrial-strength technologies. The four core abstractions that JADEL supports, namely agents, behaviours, communication ontologies, and interaction protocols, are presented by gradually introducing the specific syntaxes that the language provides for them. In the last part of the paper, a complete example of a simple JADEL multi-agent system is presented and discussed. Such an example is a well-known example from the official distribution of JADE and many programmers learned the basics of JADE from it. The choice of this example allows comparing JADEL source code with reference Java source code using JADE, and it clearly emphasizes the practical advantages of agent-oriented programming.Section 1 introduces and motivates the presented work. Section 2 surveys major AOP languages and, even if it cannot be considered exhaustive, it highlights the specific features of selected languages that have been relevant for the design of JADEL. Section 3 provides an overview of the features of JADE that are supported by JADEL. Section 4 presents the language in details by discussing main supported abstractions, and by specifying its formal syntax. Section 5 presents the most interesting parts of a complete example of the use of JADEL to develop a simple multi-agent system. Finally, Section 6 concludes the paper with a discussion of the current state of the presented work, and a preliminary assessment of the proposed language.