Re: Pitching D to academia

2016-03-12 Thread Russel Winder via Digitalmars-d
On Thu, 2016-03-10 at 23:47 +, Andrew via Digitalmars-d wrote:
[…]
> One of awful things about programming in many languages is that 
> there's a gazillion tools you need to tack-on before you can do 
> any engineering.  In C++ that includes Doxygen for documentation, 
> C++Unit for unit tests, gprof, gcov, valgrind, and so on.  One of 
> the nice things about D is that so much of this is part of the 
> language or build into DMD.

No-one should be using C++Unit for testing in C++ codes. USe a header
only system such as Catch or CUTE.

> So yes, sure, you can add what ever you like the Java and claim 
> its just as good (or better). The difference is that in D its all 
> right there already.

And Java is already right there in the context of teaching. Adding bits
to an extent infrastructure is easier that revolutionizing the
infrastructure. Been there done this three times: far too many
academics are weighed down by inertia when it comes to changing their
infrastructure.

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



signature.asc
Description: This is a digitally signed message part


Re: Pitching D to academia

2016-03-10 Thread Thiez via Digitalmars-d

On Thursday, 10 March 2016 at 23:47:55 UTC, Andrew wrote:
One of awful things about programming in many languages is that 
there's a gazillion tools you need to tack-on before you can do 
any engineering.  In C++ that includes Doxygen for 
documentation, C++Unit for unit tests, gprof, gcov, valgrind, 
and so on.  One of the nice things about D is that so much of 
this is part of the language or build into DMD.


So yes, sure, you can add what ever you like the Java and claim 
its just as good (or better). The difference is that in D its 
all right there already.


Does D have static checking of contracts, either built-in or 
through a tool? Because that is a really nice feature for 
design-by-contract situations.


Re: Pitching D to academia

2016-03-10 Thread Jay Norwood via Digitalmars-d

On Sunday, 6 March 2016 at 07:38:01 UTC, Ali Çehreli wrote:
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?


Ali


I think the D std.parallelism library would be a nicer starting 
point than using openMP if the examples are targeted toward demo 
on smaller multi-core systems.


Also, someone posted here on an app named vlang.  That sounded 
like it could make an interesting combo with a system-C course.




Re: Pitching D to academia

2016-03-10 Thread Andrew via Digitalmars-d
Surely a language such as Java is much better for things like 
design by contract through JML? It may not be built-in such as 
D's `in` and `out` blocks, but there is tool-support for both 
runtime and static checking, and JML can also describe things 
such as class invariants.


One of awful things about programming in many languages is that 
there's a gazillion tools you need to tack-on before you can do 
any engineering.  In C++ that includes Doxygen for documentation, 
C++Unit for unit tests, gprof, gcov, valgrind, and so on.  One of 
the nice things about D is that so much of this is part of the 
language or build into DMD.


So yes, sure, you can add what ever you like the Java and claim 
its just as good (or better). The difference is that in D its all 
right there already.




Re: Pitching D to academia

2016-03-10 Thread Thiez via Digitalmars-d

On Thursday, 10 March 2016 at 21:54:33 UTC, Andrew wrote:
Don't forget to mention all the "software engineering" 
principles that can be taught using D too including:


Design by Contract
Literate programming (embedded documentation)

and to tool that come "standard" in the language such as

Coverage
Profiling


Surely a language such as Java is much better for things like 
design by contract through JML? It may not be built-in such as 
D's `in` and `out` blocks, but there is tool-support for both 
runtime and static checking, and JML can also describe things 
such as class invariants. That it took over two years for a bug 
such as https://issues.dlang.org/show_bug.cgi?id=7910 to get 
fixed indicates to me that nobody is really using design by 
contract in D, and makes me wonder how many more bugs are hiding 
there. Java and JML have been used in both academia and the 
industry for almost two decades (although it's not as popular as 
it could be...) so I expect most of the easy-to-encounter bugs 
have been solved by now.


Re: Pitching D to academia

2016-03-10 Thread Andrew via Digitalmars-d
Don't forget to mention all the "software engineering" principles 
that can be taught using D too including:


Design by Contract
Literate programming (embedded documentation)

and to tool that come "standard" in the language such as

Coverage
Profiling




Re: Pitching D to academia

2016-03-09 Thread Ola Fosheim Grøstad via Digitalmars-d

On Wednesday, 9 March 2016 at 19:45:40 UTC, cym13 wrote:
Let's add that D binaries are usually too bloated for their 
disassembly to be as readable as their C equivalent (mangling 
doesn't help) so even for "reverse engineering" assembly it is 
less than perfect (although perfectly doable of course).


Yes, I think there are many good reasons for sticking to 
languages like C, Java or a narrow toy language. You usually want 
to use the language used in the best books for the course... And 
you care most about catering for the students that are having 
problems with the topic, i.e. make it easy to self study for weak 
students.


A new rich language can easily distract from learning objectives. 
I once tried to push some key XML technologies by having a 
mandatory pipeline that was like this: SQL -> XQuery -> XML -> 
XSLT -> HTML, which worked out ok, except it became too time 
consuming for the non-geek students. Which made them frustrated. 
It becomes challenging for students if they have to struggle with 
learning both the topic (design) and the tools at the same time.


So, either make learning the language the objective, or stick to 
a language they know or use a clean language they don't know, but 
that is perfect for the course. *shrug*




Re: Pitching D to academia

2016-03-09 Thread cym13 via Digitalmars-d
On Wednesday, 9 March 2016 at 19:34:24 UTC, Ola Fosheim Grøstad 
wrote:
On Wednesday, 9 March 2016 at 16:25:46 UTC, Craig Dillabaugh 
wrote:
I may be way off-base here but would teaching assembly be a 
good way
to get D into the hands of undergrads?  Learning assembly 
requires

some sort of 'harness' to code your assembly in.


I don't know what is common now, but I think machine language 
often has been taught either in the context of a 
OS/kernel-design course, hardware architecture (CPU/Computer 
design)  course and compiler design courses. Difficult to get D 
into an OS course as C is standard, inline asm makes no sense 
for a compiler and hardware courses are aiming one step below 
machine language so no need for higher level than assembly...


It is not uncommon for courses to be agnostic, though. That is, 
the teacher accepts any language in student projects, but uses 
a well-known language in lectures and examples.


Let's add that D binaries are usually too bloated for their 
disassembly to be as readable as their C equivalent (mangling 
doesn't help) so even for "reverse engineering" assembly it is 
less than perfect (although perfectly doable of course).


Re: Pitching D to academia

2016-03-09 Thread Laeeth Isharc via Digitalmars-d

On Wednesday, 9 March 2016 at 16:12:08 UTC, Michael wrote:
On Sunday, 6 March 2016 at 08:40:17 UTC, Ola Fosheim Grøstad 
wrote:

On Sunday, 6 March 2016 at 07:38:01 UTC, Ali Çehreli 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?


The geeky graduate students are the better target.

In teaching you usually want a focused clean language related 
to the course or a language that is already adopted by 
industry.


This hold a lot of weight speaking as a current postgraduate. I 
find that when teaching undergraduate courses, you're very much 
restricted to a few things. First, the choice of language to 
teach at the beginning of a student's degree needs to be based 
on what they will continue to use throughout their degree and 
beyond graduating. This means that other modules with specific 
software/library requirements will need to be taken into 
account (no point in teaching D/Go/Rust when you require MATLAB 
for several modules or coursework is required to be submitted 
in C/Java in later years). So it needs to fit with other taught 
units and that means that other members of staff who do not 
know D (and honestly, often don't have the time to learn a new 
language and rewrite all of the course material) will be stuck 
teaching the students another language on top of achieving 
their unit's aims.


Second, a university needs to be able to provide sufficient 
argument for teaching a language in relation to graduate 
employment; If the job market demands C++/Java/Python and only 
know D then problems arise pretty quickly and heads of 
department are not going to approve languages in place of those 
with high industrial demand. For most graduates, experience and 
skills for graduate employment is key.


Postgraduates, on the other hand, often have more time to 
experiment, and due to the nature of postgraduate work 
(particularly Ph.D and beyond) their research tends to require 
novelty. D has proved very valuable for me during my research 
and the lack of library requirements for experiments to be 
written and tested means that I am not tied to using a 
particular language. I am of course not saying that we 
shouldn't try to encourage undergraduates to explore D, but 
it's very difficult to try and introduce a new language into 
the curriculum at most universities without a rather large 
volume of support and justifications for doing so. Just some 
thoughts.


Chuck Allison's experience is quite interesting.  I don't think 
Utah Valley University is seen as a top tier school, but enough 
of his students have received very good offers from top companies 
is enough to make one think.


http://dconf.org/2014/talks/allison.html

Of course, teaching staff at most places won't have the standing 
that Chuck Allison does to break with custom, but on the other 
hand I suppose if you stick with custom you will at best achieve 
customary results.


I do take your point about postgrads, and that's a fair 
observation too.


Re: Pitching D to academia

2016-03-09 Thread Ola Fosheim Grøstad via Digitalmars-d
On Wednesday, 9 March 2016 at 16:25:46 UTC, Craig Dillabaugh 
wrote:
I may be way off-base here but would teaching assembly be a 
good way
to get D into the hands of undergrads?  Learning assembly 
requires

some sort of 'harness' to code your assembly in.


I don't know what is common now, but I think machine language 
often has been taught either in the context of a OS/kernel-design 
course, hardware architecture (CPU/Computer design)  course and 
compiler design courses. Difficult to get D into an OS course as 
C is standard, inline asm makes no sense for a compiler and 
hardware courses are aiming one step below machine language so no 
need for higher level than assembly...


It is not uncommon for courses to be agnostic, though. That is, 
the teacher accepts any language in student projects, but uses a 
well-known language in lectures and examples.




Re: Pitching D to academia

2016-03-09 Thread Craig Dillabaugh via Digitalmars-d

On Wednesday, 9 March 2016 at 16:12:08 UTC, Michael wrote:
On Sunday, 6 March 2016 at 08:40:17 UTC, Ola Fosheim Grøstad 
wrote:

On Sunday, 6 March 2016 at 07:38:01 UTC, Ali Çehreli 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?


The geeky graduate students are the better target.

In teaching you usually want a focused clean language related 
to the course or a language that is already adopted by 
industry.



clip


Postgraduates, on the other hand, often have more time to 
experiment, and due to the nature of postgraduate work 
(particularly Ph.D and beyond) their research tends to require 
novelty. D has proved very valuable for me during my research 
and the lack of library requirements for experiments to be 
written and tested means that I am not tied to using a 
particular language. I am of course not saying that we 
shouldn't try to encourage undergraduates to explore D, but 
it's very difficult to try and introduce a new language into 
the curriculum at most universities without a rather large 
volume of support and justifications for doing so. Just some 
thoughts.


I may be way off-base here but would teaching assembly be a good 
way

to get D into the hands of undergrads?  Learning assembly requires
some sort of 'harness' to code your assembly in.  The few such 
tools (NASM) are, by my memory, rather painful to work with.  
Could using DMDs inline assembler allow for a clean way of 
learning assembly


I say this as someone who never took a proper assembly course as 
an undergrad (we used a simulated/simple assembly lanaguage).  
I've since tried to learn Intel assembly with NASM or something 
similar, but had limited time and got frustrated with the tools.





Re: Pitching D to academia

2016-03-09 Thread Michael via Digitalmars-d
On Sunday, 6 March 2016 at 08:40:17 UTC, Ola Fosheim Grøstad 
wrote:

On Sunday, 6 March 2016 at 07:38:01 UTC, Ali Çehreli 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?


The geeky graduate students are the better target.

In teaching you usually want a focused clean language related 
to the course or a language that is already adopted by industry.


This hold a lot of weight speaking as a current postgraduate. I 
find that when teaching undergraduate courses, you're very much 
restricted to a few things. First, the choice of language to 
teach at the beginning of a student's degree needs to be based on 
what they will continue to use throughout their degree and beyond 
graduating. This means that other modules with specific 
software/library requirements will need to be taken into account 
(no point in teaching D/Go/Rust when you require MATLAB for 
several modules or coursework is required to be submitted in 
C/Java in later years). So it needs to fit with other taught 
units and that means that other members of staff who do not know 
D (and honestly, often don't have the time to learn a new 
language and rewrite all of the course material) will be stuck 
teaching the students another language on top of achieving their 
unit's aims.


Second, a university needs to be able to provide sufficient 
argument for teaching a language in relation to graduate 
employment; If the job market demands C++/Java/Python and only 
know D then problems arise pretty quickly and heads of department 
are not going to approve languages in place of those with high 
industrial demand. For most graduates, experience and skills for 
graduate employment is key.


Postgraduates, on the other hand, often have more time to 
experiment, and due to the nature of postgraduate work 
(particularly Ph.D and beyond) their research tends to require 
novelty. D has proved very valuable for me during my research and 
the lack of library requirements for experiments to be written 
and tested means that I am not tied to using a particular 
language. I am of course not saying that we shouldn't try to 
encourage undergraduates to explore D, but it's very difficult to 
try and introduce a new language into the curriculum at most 
universities without a rather large volume of support and 
justifications for doing so. Just some thoughts.


Re: Pitching D to academia

2016-03-07 Thread Timon Gehr via Digitalmars-d

On 07.03.2016 06:08, Walter Bright wrote:

On 3/5/2016 11:38 PM, Ali Çehreli 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?

Ali


Things I suspect academics would be interested in are features like D's
functional programming, purity, transitive immutability, etc.


Why those features in particular?


Re: Pitching D to academia

2016-03-07 Thread Andrew via Digitalmars-d

On Sunday, 6 March 2016 at 07:38:01 UTC, Ali Çehreli 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?


Ali


As an academic, the things I would hope you would cover are:

Simplicity:  That is, its real easy to say something in D, and 
certainly easier than in Java.  The message here is stop teaching 
Java and start teaching D to first year students.


Cleanness of expression: That is, it is so much easier to express 
yourself in D than in C++ (for example, template 
meta-programming).  That is, use D as an intermediate language 
for second year students learning about algorithms.


Multi-paradigm:  That is, since you already know OOP and D, you 
can learn other paradigms with a language you already know 
(functional, parallel, embedded, etc).  That is, use D for third 
year programming language courses too.


If you with to appeal to the brightest students then you need to 
cover topics of interest to them.  That would include interfaces 
to tools they understand (Hadoop, etc), efficiency (i.e. the 
@nogc), distributed programming, and so on.




Re: Pitching D to academia

2016-03-07 Thread Martin Tschierschke via Digitalmars-d

On Sunday, 6 March 2016 at 07:38:01 UTC, Ali Çehreli 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?


Ali


Operator overloading!
To build and use the clean Matrix-Vector products syntax M * v 
and not:
mult_matrix_vec(M,v). Combined with all the cool templating to 
define

one function for many types.








Re: Pitching D to academia

2016-03-06 Thread Walter Bright via Digitalmars-d

On 3/5/2016 11:38 PM, Ali Çehreli 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?

Ali


Things I suspect academics would be interested in are features like D's 
functional programming, purity, transitive immutability, etc.


Re: Pitching D to academia

2016-03-06 Thread Ali Çehreli via Digitalmars-d

Thank you everyone. This thread has been very helpful.

On 03/06/2016 01:55 AM, Russel Winder via Digitalmars-d wrote:
> 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?

Sorry for not asking a clear question. The audience will be the staff 
and students of the CS department. So, I think the following is correct.


> Level of student:
>
>  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

Let's see how many will show up. :)

Ali



Re: Pitching D to academia

2016-03-06 Thread Rikki Cattermole via Digitalmars-d

On 07/03/16 12:26 PM, Jesse Phillips wrote:

On Sunday, 6 March 2016 at 17:53:23 UTC, Seb wrote:

On Sunday, 6 March 2016 at 07:38:01 UTC, Ali Çehreli 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?



If you want D to flourish, you should _really_ focus on this.
Many CS students usually learn only one or two language at university.


I think this can be one of the selling points. In general, languages
aren't the teaching goal of a university.

Python/Java - These get chosen for early courses. Python likely because
of its strict formatting (get people used to formatting code), the
language is high level and has rich collection of libraries. Both of the
languages prevent worrying about a lot of other details (memory,
procedural is easy to explain)

C/C++ - These come into later classes, I'd guess because they are used
in industry and have unique usage requirements (null pointers, double free)

Otherwise courses seem to expect you know one language (java/python) and
try to teach you concepts within that language, and sometimes allow you
to do the homework in any language.

I think D is the right choice because it can demonstrate concepts while
provide the advantages of why other languages are chosen. And it has a
very nice set of toys that many students will enjoy playing with and
using in their homework. It makes a good learning language because it
makes a good using language.


This is actually the primary argument I made for my tertiary institute 
in making D the first language. It ended up with pretty much every tutor 
and even head of department (who was a programmer) agreeing with me.
Of course that's a big change and industry doesn't reflect it. So don't 
expect it to happen.


Re: Pitching D to academia

2016-03-06 Thread Jesse Phillips via Digitalmars-d

On Sunday, 6 March 2016 at 17:53:23 UTC, Seb wrote:

On Sunday, 6 March 2016 at 07:38:01 UTC, Ali Çehreli 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?




If you want D to flourish, you should _really_ focus on this.
Many CS students usually learn only one or two language at 
university.


I think this can be one of the selling points. In general, 
languages aren't the teaching goal of a university.


Python/Java - These get chosen for early courses. Python likely 
because of its strict formatting (get people used to formatting 
code), the language is high level and has rich collection of 
libraries. Both of the languages prevent worrying about a lot of 
other details (memory, procedural is easy to explain)


C/C++ - These come into later classes, I'd guess because they are 
used in industry and have unique usage requirements (null 
pointers, double free)


Otherwise courses seem to expect you know one language 
(java/python) and try to teach you concepts within that language, 
and sometimes allow you to do the homework in any language.


I think D is the right choice because it can demonstrate concepts 
while provide the advantages of why other languages are chosen. 
And it has a very nice set of toys that many students will enjoy 
playing with and using in their homework. It makes a good 
learning language because it makes a good using language.


Re: Pitching D to academia

2016-03-06 Thread sigod via Digitalmars-d

On Sunday, 6 March 2016 at 17:53:23 UTC, Seb wrote:
Why don't we make a Coursera (or similar) course about D? They 
usually have an audience of at least 50-100K.


That's a great idea. I would love to take such course.



Re: Pitching D to academia

2016-03-06 Thread Seb via Digitalmars-d

On Sunday, 6 March 2016 at 07:38:01 UTC, Ali Çehreli 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?




If you want D to flourish, you should _really_ focus on this.
Many CS students usually learn only one or two language at 
university.

At our university you can learn those in courses:

- Java for OOP
- Perl (not kidding) for scripting (normally now Python or 
sometimes JS is used)

- Haskell/OCaml/F# for functional programming
- C/C++ for system programming, imperative programming

The awesome part and what I love so much about D is that you can 
teach all of those in ONE language.


However my point is that most students will continue to use the 
language they learn at university (or maybe high school) forever 
- it's really similar to one's "native tongue" - this *not* only 
means that they get used to it, but they also will start new 
projects with it and continue to develop in this language. In 
other words: this will result in a huge increase of the user base 
and thus also (financial) interest in the D.


Why don't we make a Coursera (or similar) course about D? They 
usually have an audience of at least 50-100K.


In case money is pretty tight, some of these platforms even have 
special credit programs (25-50K$) to fund development of new 
courses, but usually a university is happy to sponsor the 
production costs for such a course if they can write their name 
on it.


Re: Pitching D to academia

2016-03-06 Thread Chris Wright via Digitalmars-d
On Sat, 05 Mar 2016 23:38:01 -0800, Ali Çehreli 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?
> 
> Ali

D has good support for functional programming. It's had support for this 
long enough that it's well baked into the standard library.

It doesn't do single-write, all-values-are-immutable style so well, 
though, which is another intuitive leap learning functional languages. 
But if you get people used to first-class functions in D, where they can 
make everything mutable, it should be easier to teach Haskell or OCaml or 
Elm.


Re: Pitching D to academia

2016-03-06 Thread Russel Winder via Digitalmars-d
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 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.win...@ekiga.net
41 Buckmaster Roadm: +44 7770 465 077   xmpp: rus...@winder.org.uk
London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder



signature.asc
Description: This is a digitally signed message part


Re: Pitching D to academia

2016-03-06 Thread cym13 via Digitalmars-d

On Sunday, 6 March 2016 at 07:38:01 UTC, Ali Çehreli 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?


Ali


I would insist heavily on the multiparadigm properties of D: 
being able to teach C-like imperative programming, java-like OOP, 
compilers and assembly, purity and functional paradigms, testing 
and profiling, all that without having to change language even 
once is likely to be D's strongest strength for a teacher I think.


Re: Pitching D to academia

2016-03-06 Thread Ola Fosheim Grøstad via Digitalmars-d

On Sunday, 6 March 2016 at 07:38:01 UTC, Ali Çehreli 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?


The geeky graduate students are the better target.

In teaching you usually want a focused clean language related to 
the course or a language that is already adopted by industry.




Re: Pitching D to academia

2016-03-06 Thread Minas Mina via Digitalmars-d

On Sunday, 6 March 2016 at 07:38:01 UTC, Ali Çehreli 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?


Ali


What about:

D can be used as a high level, high productivity scripting 
language, just like Python, with two exceptions:

1) You get static type checking
2) When can compile the program instead of interpreting when you 
need the performance. No need to re-write it.


Pitching D to academia

2016-03-05 Thread Ali Çehreli via Digitalmars-d
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?


Ali