March 02, 2017
On Thu, 2017-03-02 at 12:29 +0000, Jared Jeffries via Digitalmars-d wrote:
> > 
[…]
> IMHO, what really matters to a developer experimenting a new
> language are :
> - Is the new language easy to learn ? How long will it take me to
> become productive with it ?
> - Is it really worth the effort ? How will it help me in getting
> the job done ?

And what is the tooling and workflow? We are now living in the post- VIM/post-Emacs era. If there isn't a JetBrain IDE or plugin to an IDE for a language, you are in losing territory for big take up: without an IDE (JetBrains is just the current main example) the language is destined to be a niche or small community one.

I will elide the rant on this to avoid being accused of being repetitious.

> D is easier to learn, it's *both* more programmer-friendly (arrays, maps, slices, foreach loops, references types, closures), less verbose and more complete (templates, etc) than similar mainstream languages.
> 
> Basically you just have to learn some sort of curated C++/Java mix.
> 
> And in return you enjoy the *expressivity and productivity* of a scripting-language like Javascript *without sacrifying performance or safety*.
> 
> 
-- 
Russel. ============================================================================= Dr Russel Winder      t: +44 20 7585 2200   voip: sip:russel.winder@ekiga.net 41 Buckmaster Road    m: +44 7770 465 077   xmpp: russel@winder.org.uk London SW11 1EN, UK   w: www.russel.org.uk  skype: russel_winder

March 03, 2017
On 03/03/2017 12:10 AM, Martin Tschierschke wrote:
> On Wednesday, 1 March 2017 at 18:34:22 UTC, bachmeier wrote:
>> On Wednesday, 1 March 2017 at 17:09:51 UTC, Jared Jeffries wrote:
>>
>>> I think it should instead be advertised as the perfect language to
>>> learn programming and web development, because that's where it really
>>> shines, IMHO.
>>
>> I agree, but we need an intro to programming class using D as the
>> language in order to do that. Most of the materials for the language
>> assume you have programming experience. You can't just say that D
>> allows you to use pointers and other low-level constructs, you have to
>> explain what a pointer is and what you do with it. The same goes for
>> functional programming, OOP, contracts, compile time, and so on.
>> That's a big task. Ali's book is great as an introduction to the
>> language, but not really sufficient as a beginning programming tutorial.
>
> ???  I think the book is exactly written to work as an beginning
> programming tutorial.
> May be my impression was wrong.
>
> What would be very useful, would be to have one .deb learning package,
> which including compiler an ide many simple tutorial like examples and
> the ability to write simple programs with gui output.
>
> Do you know basic256?
> https://sourceforge.net/projects/kidbasic/
> It offers a convenient programming experience for beginners.
>
> I started to learn programming (BASIC) with an traditional home computer
> in the 80's
> (Schneider/Amstrad CPC6128).
>
> The best thing was, you only needed to switch it on and only with typing
> "DRAW 640,400" a line was drawn from the bottom left to the top right
> corner.
>
> Now give someone a new computer and ask him to do the same?
> How many years of computer experience will be needed?
> How many tool would I need to install?
>
>
> Regards mt.

I recently bought[0] a book from my childhood (yes yes, it was written long before my time).
I am not aware of any other book that teaches programming like it.
With a nice narrative, good funny comics and pretty simple code.

The sad reality is that computers today are so far more advanced than they ever used to be that most programmers never truly understand the cost of the things they think are "normal".

Like GUI's (hint, massive thing I hate people wanting when they start out).

[0] https://www.amazon.co.uk/d/cka/Childs-Guide-BBC-Micro-John-Dewhirst/0521277302
March 02, 2017
On Thursday, 2 March 2017 at 11:10:54 UTC, Martin Tschierschke wrote:
> I started to learn programming (BASIC) with an traditional home computer in the 80's
> (Schneider/Amstrad CPC6128).
>
> The best thing was, you only needed to switch it on and only with typing "DRAW 640,400" a line was drawn from the bottom left to the top right corner.
>
> Now give someone a new computer and ask him to do the same?
> How many years of computer experience will be needed?
> How many tool would I need to install?

I too learned to program using BASIC sometime in the mid-80's. The "enterprise" side of things has created a completely unnecessary learning curve. Java being used to teach intro to computing was successful at exactly one thing - it drove people away from programming.

I spend my days working with graduate students in economics departments. They have to program for their research, but most of them have never taken a programming class. I use RStudio server. Students need only a browser to do fairly complicated analyses. Once you eliminate the startup costs, it's amazing how easy it is for them to learn.

Do we have such a thing with D? Unfortunately we are moving in the wrong direction. New users are told to write configuration files for Hello World.
March 02, 2017
On Wednesday, 1 March 2017 at 08:12:05 UTC, Nick Sabalausky (Abscissa) wrote:
> What's quora?
>
> (It's really hard to always keep on top of all the latest tread sites/appz/whatever. It's all so fly-by-night.)

I've dissmissed Quora the first time I've seen it like 5 years ago, but last year I've discovered there are super-cool folks over there:

* https://www.quora.com/profile/Peter-Norvig
* https://www.quora.com/profile/Xavier-Amatriain


March 02, 2017
Why not advertise? Because lagging deterministic memory management, meaning nogc. And garbage collection

I'll probably be kicked for saying this. ^
March 02, 2017
On Wednesday, 1 March 2017 at 13:53:17 UTC, Mike Parker wrote:

> Plenty of people do, particularly on reddit, StackOverflow, Hacker News, and whatever forums & communities they tend to hang out at (e.g. gamedev.net). If there's an absence of such at Quora, it's just because none of the vocal D users are using it.

Actually in case of quora, the way it works is unlike reddit or this forum, where you see all recent topics, quora only shows you some bits it decides would be "interesting" for you, so if the first time you came on quora to read about alpacas, then later it will mostly show you questions and answers about alpacas and not about learning programming languages. I usually don't see any questions like mentioned above, instead when I come to quora I see mostly stuff about particle physics and black holes, very rarely I see questions where I could mention D.

March 02, 2017
On 03/02/2017 07:47 AM, Russel Winder via Digitalmars-d wrote:
>
> And what is the tooling and workflow? We are now living in the post-
> VIM/post-Emacs era. If there isn't a JetBrain IDE or plugin to an IDE
> for a language, you are in losing territory for big take up: without an
> IDE (JetBrains is just the current main example) the language is
> destined to be a niche or small community one.

I've used tools from JetBrains before. IMO, it should be easy for both vim and emacs to catch up to tools like JetBrains, Xamarin and such. All they need are a couple extensions to artificially boost memory footprint and introduce big startup and various UI delays. And done: instant parity with the popular IDE's. Should be easy enough to write.

March 02, 2017
On Thursday, 2 March 2017 at 15:32:26 UTC, bachmeier wrote:
> On Thursday, 2 March 2017 at 11:10:54 UTC, Martin Tschierschke wrote:
>> I started to learn programming (BASIC) with an traditional home computer in the 80's
>> (Schneider/Amstrad CPC6128).
>>
>> The best thing was, you only needed to switch it on and only with typing "DRAW 640,400" a line was drawn from the bottom left to the top right corner.
>>
>> Now give someone a new computer and ask him to do the same?
>> How many years of computer experience will be needed?
>> How many tool would I need to install?
>
> I too learned to program using BASIC sometime in the mid-80's. The "enterprise" side of things has created a completely unnecessary learning curve. Java being used to teach intro to computing was successful at exactly one thing - it drove people away from programming.
> ...
> Do we have such a thing with D? Unfortunately we are moving in the wrong direction. New users are told to write configuration files for Hello World.

I started on a (then obsolete) Acorn Electron and later moved to QBasic.

This article was written not too long ago.  First I laughed; then it convinced me :)

http://www.nicolasbize.com/blog/30-years-later-qbasic-is-still-the-best/
(Cached version because it seems to be down:
https://webcache.googleusercontent.com/search?q=cache:ZyMCKqG-ZKMJ:http://www.nicolasbize.com/blog/30-years-later-qbasic-is-still-the-best/+qbasic+is+still+the+best&hl=ja&gbv=1&ct=clnk )

I wish everyone teaching beginner programming would read that.
March 02, 2017
On 03/02/2017 10:32 AM, bachmeier wrote:
>
> I too learned to program using BASIC sometime in the mid-80's. The

Ditto here (well, late 80's). AppleSoft Basic on Apple IIc.

> "enterprise" side of things has created a completely unnecessary
> learning curve. Java being used to teach intro to computing was
> successful at exactly one thing - it drove people away from programming.

Oh, it was a disaster in so many ways, it even wound up warping the whole process of teaching programming basics into a total ineffective mess. Case in point:

Back around the height of Java schools, I was a tutor for CS 101 (Intro to programming, using Java) students at a university around here (John Carroll University). There were two instructors who taught the course: A prof who'd been teaching it since well before the Java craze, and a Java-zealout who was constantly bragging how she'd come direct from a real software dev studio and had real-world experience with the right way of doing things.

The two approached their classes very differently:

The first one, the one who had been teaching code since before Java, started out by teaching basic flow-of-execution. "This statement runs, then the next one, then the next one." Conditions, loops, functions, etc.

The second teacher, the one who was kneck-deep in the "Java/OOP is our god, we must not question" madness that was common in that time period...didn't teach it that way. Those students were instead dropped straight into object-oriented modeling. Because, of course, OOP is "the right way to do everything", as most programmers believed circa early 2000's. (Hell, even I believed it - but I hadn't drank enough of the kool-aid to think it was more fundamental than basic execution flow. But, OOP was such a craze back then, that it was widely seen as an alternative to imperative programming, rather than merely a way of structuring imperative code, as was the real dirty little truth of Java. So the imperative execution-flow was thought of as "dirty", something to discourage and sweep under the rug instead teach as a basic fundamental.)

So, literally with ZERO exceptions: EVERY student I got from the first teacher's class pretty much knew what they were doing and were only coming to me for confirmation that they were on the right track. Invariably they were. And EVERY (again, zero exceptions) student I got from the second teacher's class was *completely* and utterly lost, and didn't even have enough grasp of the basics of basics that I was able to help them get a working program - at ALL.

Java definitely had good points (especially compared to the C++ that was so predominant before Java stole its thunder), but it also lead to some real major blunders and corrupted a lot of minds.

> Do we have such a thing with D? Unfortunately we are moving in the wrong
> direction. New users are told to write configuration files for Hello World.

Lot of truth to that: I'm a big fan of using D instead of bash for scripting purposes, and about a couple months ago I found myself promoting that approach to a guy who writes a lot of bash scripts and python. It was embarrassing to show this as the "hello world" for replacing bash scripts with D:

-------------------------
#!/usr/bin/env dub
/+ dub.sdl:

   // This is the config file for the DUB package manager,
   // but it can be embedded into your main .d file like this.
   name "myscript"
   dependency "scriptlike" version="~>0.9.6"
+/

import scriptlike;

void main(string[] args) {
    run("echo Foobar > stuff.txt");
}
-------------------------

I don't think I won him over.


March 03, 2017
On Wednesday, 1 March 2017 at 14:34:59 UTC, Jack Stouffer wrote:
>
> There's a reason stackoverflow and softwareengineering.stackexchange delete these kinds of questions: they're counter productive and can't actually be answered.

Slant does a pretty good job of providing a platform to these opinionated questions.

https://www.slant.co/topics/25/viewpoints/11/~best-programming-language-to-learn-first~d