Is D programming friendly for beginners?

M.M. matus at email.cz
Wed Mar 13 08:17:57 UTC 2024


On Tuesday, 12 March 2024 at 22:27:11 UTC, Mike Shah wrote:
> On Tuesday, 12 March 2024 at 20:40:49 UTC, Meta wrote:
>> On Tuesday, 12 March 2024 at 16:20:29 UTC, matheus. wrote:
>>> [...]
>>
>> I think it really depends on the person. My first language was 
>> C++, which was absolute hell to learn as a complete beginner 
>> to programming, but I really wanted to learn a language with 
>> low-level capabilities that could also do gamedev. Learning 
>> C++ as my first language was incredibly difficult, but it also 
>> made the programming parts of my CS degree a breeze - 
>> especially courses like machine level programming. Nobody else 
>> in the class even understood what a pointer was for the first 
>> couple weeks.
>
> I've been at institutions where C++ is the first language and 
> for most folks who were sure they wanted to do programming it 
> was a fine enough language (when taught with care) to teach. In 
> fact, it benefited me (and other instructors) quite a bit when 
> I saw those students later and taught them computer graphics 
> (usually taught in C++ to prepare them for job market).
>
> For folks who were not sure if they wanted to study computer 
> science, unfortunately they were scared away as they thought 
> this was the only path for programming (i.e. C++, assembly, 
> etc.). For this reason, a language that is gentler (e.g. 
> Python, JavaScript, or I also suspect a large subset of D) 
> would all have been better choices. More universities these 
> days are offering courses with gentler options (e.g. 
> Programming for non-majors) which usually take this approach to 
> more slowly ramp students up -- which I think is a good thing 
> to have these offerings. And then later on in the program, 
> these students can learn the good stuff (i.e. systems, 
> compilers, graphics, etc. :) )

I understand that outside of CS, something like Python is a fine 
choice, hiding many low-level details. But within a 
CS-curriculum, one needs to come beyond basics-of-programming to 
something like efficient algorithm-design-and-data-structures; 
isn't a typed language better here? (Like the quote of Knuth 
says: if you do not understand the hardware behind, your programs 
will look weird. I have observed this a lot with current 
data-science students, which use a map/dictionary for everything, 
largely ignoring the existence of arrays).


More information about the Digitalmars-d-announce mailing list