You probably learned to program a long time ago, with a personal computer-toy such as the Spectrum. There were not many options: there was Basic and then Basic in a different computer. If you went the formal way, probably you started with Pascal or, later on, Java, and, even later, Python. Not many options there either. It was that way or the highway.
But say you could have had a choice in your first programming language, say, you started right now. What would you like your language to be like? Is there any one language now that could be all you wanted your first language to be?
For further actions, you may consider blocking this person and/or reporting abuse

Latest comments (28)
Interesting question!
Lol, yeah Q Basic was the first I learned from copying code listings in books from the library in the early 90s to make simple games, and Come Uni time the first language we learned was Pascal.
I like the look of Python having written a few programs in it for my Raspberry Pi; I think that is a good option for beginners as its quite readable and teaches a tidy coding style with the indentation necessary for the programs to operate correctly.
I started with PHP. God help me.
Then I got on to Ruby. Bliss
I wish it had been js or python rather than Pascal so I would be hireable.
Technically Logo was my first language but that was when I was in 7th grade.
I started with Python and I loved it. The syntax was so similar to natural language and I could build stuff so fast!
If I had to pick a different language to have learned first, it would have been JavaScript. You can build such practical and fun things with just a little bit of code, which I think gets new developers excited!
From a practical standpoint, Java is probably the happy middle ground of programming right now -- it is nicer to work with than C++ and C though it has some similar tendencies and it doesn't spoil you like super high level languages do!
Thanks!
Pascal
I started with C# which is a pretty solid choice (by my prof). I haven't touched it since but I think it did a good job introducing many of the important introductory topics (Types, Variables, Control Flow, Classes, Encapsulation, Inheritance, Polymorphism, etc).
If I were to choose a language to start with now it would have to be Scala (my favorite, go figure!). Scala is multi-paradigm (Object Oriented and Functional), has a strong static type system + type inference, and can generally be quite terse. All of these characteristics would allow students to start in the language doing simple things and then take on more and more complicated topics as time goes on, all while staying the in the same language.
I agree that the many ways to use Scala make it a bit complicated, but this same property makes it flexible enough to cover a wide swath of CS topics.
I started with Applesoft Basic, which is what you got with an Apple //e.
If I could go back and choose a different language for myself that was widely available in the early 80's, along with a good book to go with it, I'd choose Pascal.
If I was starting today, and I'm not being pushed in a particular direction by some specific end goal (like native development for some particular platform).... I'm going with Groovy.
Why Groovy? Well...
As much as I'd like to think the right answer is Scheme, which I would then use to work my way through SICP, I think the truth is that I wouldn't stick with it.
I'd like to start with a strongly typed language, or something that can act like one. Groovy, if I pretend the keyword def doesn't exist, is close enough. I want to have to explicitly spell out what I'm doing, and have the compiler double-check me on it. I want the IDE support that strong typing helps enable. Speaking of which...
I want a reasonable IDE to work with. I'd be fine with Eclipse.
I want the various libraries that I'm likely to want to be built-in. If it's my first language, I don't want to mess around with package management.
I want well-organized API documentation. On that front, I like the online javadoc/groovydoc for whatever JDK version I'm using.
I would like reasonable built-in syntax for basic collection types. Lists and maps, for instance.
I would like to get started without needing to understand what's going on with lots of boilerplate. And without needing to understand and spell out packages for something as simple as a print statement. Looking at you Java...
I shouldn't have to know about backwards compatibility issues. And, cutting and pasting code should never lead to something bring broken because of issues with significant whitespace. Hi Python!
A REPL isn't a hard requirement, but it earns some bonus points.
The other option that I'd like to consider is Go, which I'm just getting to know. It seems like it has a lot going for it, but for now I don't know it well enough to feel comfortable choosing it over groovy.
Thanks! I do think that REPLs are great to learn syntax and single-statement and sequencing before building whole programs.
You make a good argument! My experience with Groovy hasn't been great (mostly deciphering wild Gradle scripts) but I am always willing to give a JVM family member a chance :D
Strictly my first programming language was javascript, I coded a Lucas Duck translator at the age of 14. After that I learned python and jumped to C, and I feel happy I gave those steps. If I got to choose now, I think I would choose python over javascript, mostly because it has so many libraries that feels like doing techie magic .
But I also think starting with a, let's say, hardcore language such as C (or C++), can help you understand the rest easily.
I started with c and java but it was c# which fascinated me with its rich features.
I wish i could start with c!
But i started with pascal ... yes 3 years ago...
I went the other way round. In fact, I learned C with a book entitled "C for native Pascal speakers". So there was apparently a market for that...