Pitching D to academia

Russel Winder via Digitalmars-d digitalmars-d at puremagic.com
Sun Mar 6 01:55:17 PST 2016


On Sat, 2016-03-05 at 23:38 -0800, Ali Çehreli via Digitalmars-d wrote:
> Motivated by Dmitry's "Pitching D to a gang of Gophers" thread, how 
> about pitching it to a gang of professors and graduate students?
> 
> I will be presenting D to such an audience at METU in Ankara. What
> are 
> the points that you would stress? I am thinking that they would be 
> interested more in whether D is better as a teaching tool. Do you
> agree?

It all depends who the students are that academics you are pitching to
will be dealing with.

Assuming Turkish academic structure and academics are at least
analogous to UK ones…

Level of student:

    A. Learning programming from nothing.
    B. Learning about data structures and algorithms as a second
    programming course.
    C. Doing some advanced option.

Which subject is their main one:

    1. Computing
    2. Computer Science
    3. Electronic Engineering
    4. Physics
    5. Biology
    6. Economics
    …

For 3 they will use C: It has been enshrined in canon for about 30
years that electronic engineers will use C.

4, 5, 6, and … will either use Fortran (but not FORTRAN), or Python.
This is due to extant codebases and support for subject specific data
analysis and visualization.

There is likely no point in trying to get D in front of students other
than in categories 1 and 2.

All too often courses labelled "Computer Science" contain little or no
programming, or at best very little quality programming education.
Fashion is generally the driving force behind most language choice,
very few institutions do proper analysis.

For options courses, C above, people will choose a domain related
language rather than a general purpose one. For OS, use C (or C++,
Rust) – the idea of writing an OS in a language with GC will not have
percolated in. FP course will use Haskell, Clean, Lisp, OCaml, SML,…

For second course, B above, it is usual to carry on with the language
of the initial course, especially if there has only been one. If there
hasn't it helps as you get two languages to work with.

For introduction courses, A above, most will use Java (because,
history), or Python. Unless you are Texas A&M in which case C++. Some
enlightened organizations will use a combination, Haskell and Prolog,
Python and C++,…

The single most important driver is being able to do stuff immediately
on Day 1. This generally means a REPL – usually because that is the
indoctrination the academics have received over the years.

So where does D fit?

Do not try to compete with the FP languages in FP courses, just do not
go there.

OS and hardware could be a good place, especially using the no GC D.

D fits well for data structures and algorithms as it can do the full
multi-paradigm thing way better than C++, and Rust, and you can bring C
in if needed. The material in Phobos is good to show end results, but D
is good for showing the simple algorithms needed in such a course. You
get the full imperative approach and the more declarative approach
possible with D.

Find out which text books they use if any, or which materials they use,
if D fits with that good, if it doesn't then you have to wait for a
change of responsible academic before you get a change of language and
material.

For starting, D's single most important thing is rdmd. Write code, run
it.

The downside for D is that it is big and complex more or less from the
outset, like C++ and Rust, just less so. Biggest competitor will be Go
which is very simple at the outset and only gets complicated later, and
they have "go run".

Type inference is good so you don't spend time writing out the names of
types lots of time (as in Java). Strong compile time typing is good,
mostly because students do not have to know about it at the outset. 
 
Some academics like a bottom up approach; some students like that. Some
academic prefer a more wholistic, experiential approach; some students
like that. Kids love playing and finding out in a morass of lack of
knowledge. By the time people have got to university most students have
had that joy beaten out of them by academics in favour of the structure
bottom up constructivism. How sad.

So D as a language that can handle bottom up and experiential learning
might be a good line.

Anyway this has turned into a long email, and I have to go. Hopefully
this has helped some. 

-- 
Russel.
=============================================================================
Dr Russel Winder      t: +44 20 7585 2200   voip: sip:russel.winder at ekiga.net
41 Buckmaster Road    m: +44 7770 465 077   xmpp: russel at winder.org.uk
London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: This is a digitally signed message part
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20160306/9743b9e7/attachment.sig>


More information about the Digitalmars-d mailing list