I've used many computer languages over the years. Different languages serve different purposes and you can mostly do the same things in all languages. What sets them apart is how easy it is to do the task at hand, and how much gets in the way of doing that easily. Make sense? Probably not!
A steep learning curve is not a great thing, unless this is going to be the language you are always going to use. Then presumably this language has all the features you will ever need, but if it tries to be too universal then again it won't be very easy to accomplish easy tasks!
Likewise, when it comes to choosing a first language to learn don't be fooled into thinking your first language will be the only one you need to learn. It's about how you will learn to express your vision of what you want the computer to do, in the most efficient and least painful way.
Pascal (Object Oriented)
Pascal is both an excellent language to learn on and a fully capable one using Delphi class extensions. While it may lack C's terseness and convenient operators, Pascal code is more structured, and easier to understand. Especially when you have to go back to code you wrote a while ago this makes a big difference.
Dart
Dart is Google's answer to the shortcomings of Javascript. It compiles to Javascript and was designed to replace it completely in the browser, but that didn't happen. It's a modern object oriented language with a C like syntax which can run interpreted in the browser or from the command line, or compiled to run on native platforms. It supports both dynamic and statically typed variables. It's outstanding feature is that it runs in a single, non-blocking thread but supports concurrency using micro-tasks implemented with Futures.
Lua
My go-to for quick and dirty projects. Lua is both simple to learn and at the same time a powerful interpreted language which combines an easy Basic like syntax with dynamic object typing, powerful mapped array as the basic complex data type, and extensive meta-capabilities.
Java Script
While it was OK as a browser scripting language, it's prototype system for objects is not great. The language has been adapted to do many things it wasn't meant for, and thus suffers in it's design.
Java
Meant to be the write once run anywhere language, it tries to do everything in a big way. So much so that trying to do anything at all involves digging through reams of class documentation. Good for large projects where you need to hire programmers because Java programmers are a dime a dozen.
C++ to some extent
C++ is a full blown class language with everything to offer, but involves a lot of typing and separate header files to keep things orderly. It was built on C which is not really an application language (meant for systems programming), and the C syntax is difficult to fathom at times.
C##
Adding Smalltalk like messaging on top of C, with some other class objectiveness thrown in, makes for a horrible language.
If the reader hasn't figured it out, I am a programmer who has moved from C++ back to Pascal.
I use the Free Pascal Compiler (FPC) with Lazarus IDE on Mint Linux. I find the maturity of Pascal and Lazarus IDE makes for effortless development.
Pascal and HP SPL were my first serious languages I learned starting at University. Later as I began using and learning Unix, I learned C and systems programming was always my favorite. Originally, C++ was a powerful language based on C and available on Unix and later Linux. Yet after using C++ for many years, when I undertook a new project in Pascal (because I wanted a stack-oriented language) and using Lazarus IDE, I discovered that I was significantly more productive on that platform when starting projects from scratch.
I switched because of the KISS principal:
I never found an C++ IDE that I liked. Major IDE's for C++ are Universal IDE 's designed for all languages and tend to focus on a Java perspective. I want a IDE which is tailored for the language, and Lazarus is just that.
Free Pascal Compiler and Lazarus is the Pascal development platform for Linux, it has all the features and an event-driven GUI built in.
Pascal Code is simply EASIER TO MAINTAIN.