> I am confident that D can be a viable first language
Not sure what this confidence is based on, the basics are broken (toolchain, basic syntax errors you shouldn't even need a compile step to figure out, the squiggly error underline should be right there in your editor!), and what does sticking to "Vanilla D" offer as a benefit vs. some other language?
I’m not sure that the choice of the language matters a great deal for an intro course to be honest
There’s no way students can wrap their heads around advanced topics to the point where language selection matters that much
Of course toy languages like Brainfuck, low level stuff like pure assembly or archaic languages like COBOL would be detrimental to learning. But any mainstream language from the last forty years or so will have major crossovers with most others
I fail to see how D is that extreme compared to most other languages or any reason it should be pedagogically dismissed as a first language
> I’m not sure that the choice of the language matters a great deal for an intro course to be honest
Huge disagreement from me! The choice might not matter for the already motivated students who were going to learn to code no matter the language, but for folks on the fringe of CS the language matters immensely. There are arguments to be made about frustration, developer experience, grokability, but imo the most important is distance between code and gui. It’s very motivating to build something you can interact with. It’s very demotivating to work on contextually-meaningless algorithm problems.
agreed -- i really like python a lot for a first (and long term lang). it reads like english compared to C or Java and you could toss up a website or something like that very quickly with it.
It really does matter at least according to this paper [1]. However I think the paper missed one major sin of not having a GC for introductory programming language. D actually avoids most of these sins and it is GC by default.
[1] Seven Deadly Sins of Introductory Programming Language Design:
Not sure I agree. GC is essential in industry (well, I'd argue that! Ignoring embedded anyway) but I think the programmer has to understand the real cost, and that means allocating and de-allocating, and if that is hidden by the GC then they're not learning that.
True, but you don't need to get them to write C (or similar) in order for them to get to that point later on, once they can write basic stuff.
In that regard, D is excellent because it does allow you to write code without the GC once you've mastered the basics, so it may be a (very) advanced part of a course to optimize some algorithm by manually managing memory, and seeing how much difference it makes.
Sure they do. You can tell anyone to "just install IntelliJ" or "just install Xcode" and they'll have a working environment with zero effort. All the popular languages don't require handholding
I would attribute that to the language/company putting in the effort for an easy install. I am sure it is easy to install Swift on Mac but I was trying to guide my friend through it on Windows and he gave up because it was too complex and the installer didn't work immediately (some library path error).
SwiftUI and all the other Apple frameworks that allow you to do more than read and write text to a console don't work on Windows. Beginners should just use an IDE. If one isn't available for their language/platform, that's a sign of things to come
"Most people don't setup their own environment for their first language...."
Since most people probably try out js as their first language (often without knowing what js is) - setting upt the environment and IDE is as simple as open dev tools ..
Not sure what this confidence is based on, the basics are broken (toolchain, basic syntax errors you shouldn't even need a compile step to figure out, the squiggly error underline should be right there in your editor!), and what does sticking to "Vanilla D" offer as a benefit vs. some other language?