February 11, 2014
On Tuesday, 11 February 2014 at 11:00:18 UTC, Chris wrote:
> On Tuesday, 11 February 2014 at 05:03:29 UTC, Mike Parker wrote:
>>
>
> The most important thing for newbies, either new to the language or new to programming, is "instant gratification". If it compiles and works, people are more likely to be enthusiastic about it. Give them useful examples and use cases and they will begin to see how useful programming is and start thinking about applications, however trivial they may be, they can write themselves for their own personal use (a little clock, a calculator for VAT ...) In this way they will start to think as both developer and user, add features, go ever deeper into programming. Creating useful things, that's what it's all about, isn't it?

Thanks for your last paragraph. That's what I was talking about.
February 11, 2014
On Tuesday, 11 February 2014 at 17:40:29 UTC, Steve Teale wrote:
> On Tuesday, 11 February 2014 at 11:00:18 UTC, Chris wrote:
>> On Tuesday, 11 February 2014 at 05:03:29 UTC, Mike Parker wrote:
>>>
>>
>> The most important thing for newbies, either new to the language or new to programming, is "instant gratification". If it compiles and works, people are more likely to be enthusiastic about it. Give them useful examples and use cases and they will begin to see how useful programming is and start thinking about applications, however trivial they may be, they can write themselves for their own personal use (a little clock, a calculator for VAT ...) In this way they will start to think as both developer and user, add features, go ever deeper into programming. Creating useful things, that's what it's all about, isn't it?
>
> Thanks for your last paragraph. That's what I was talking about.

Well this is pretty much why I got confused by initial question - it does not have much to do with D itself. It would have fitted more some kind of educational psychology newsgroup or something like that. Language specifics don't have much impact here, it is something that students start to recognise only after they have been deep into programming for some time already.
February 11, 2014
On Tuesday, 11 February 2014 at 17:37:17 UTC, Steve Teale wrote:
> You hijacked my topic and converted it into the usual arguments about lack of infrastructure for D.
>
> I'm talking about guys and girls who don't have a computer, let alone C#. They just have a cheap smart phone that maybe they succeeded in getting rooted. So is your answer that they should just use Java?
>
> And yes, the C# library is excellent, but D is a better language, and is easy to use. Get out of the wood and see the trees!
>
> I'm at the other end of my life, with a long view of history. We should do our bit to help to bring civilization and reason (back) to the world, not just tell people 'use C#'.
>
> A more relevant criticism would be that people who only know say Swahili won't be able to find out about and use D anyway - Java either. Sadly my Swahili is not up to it.
Well, that's the problem, it was kind of a silly question to begin with.  How many Swahili people even have a smartphone, as opposed to a feature phone?  What percentage of them would be able to grasp the concept of rooting, let alone execute it?

I suppose if we were to humor the question, as it's always possible that the next John Carmack is out there somewhere, here's what I'd suggest.  You can get an Android smartphone for as cheap as $50-100 these days.  I'd pick one up that worked with a bluetooth keyboard, as programming on the touch keyboard on your small phone screen is paramount to torture. ;) Then, you have two options:

1) Download an ssh client app and buy access to a FreeBSD or linux VPS, which you can get for as cheap as $5/month.  This might require a credit card or paypal account, not sure how tough those are to get in the developing world.  You can then ssh into the VPS, download dmd or any other compiler, and code to your heart's content, albeit with some annoying lag from developing over the network.

2) Root your smartphone and install all the necessary development software, which I'm not sure even exists, as most devs cross-compile to Android.

Both seem kind of far-fetched.  You need a certain basic level of knowledge, wealth, and leisure time to get into programming, which many in the developing world don't have.  But if they really went after it, the VPS option is probably the best bet, at a cost of about $100 up front plus $5/month for hosting.
February 12, 2014
On 11 February 2014 05:03, Tofu Ninja <emmons0@purdue.edu> wrote:

> On Monday, 10 February 2014 at 18:11:38 UTC, Steve Teale wrote:
>
>> What can be done to capture the attention of young people in the developing world?
>>
>> Probably the most effective thing would be if it were possible to edit, compile, and run D programs on a cheap Android ARM phone.
>>
>> Is this within the bounds of possibility?
>>
>> There are millions of unemployed, bored, restless, and ambitious young men out there, who have saved their all to buy a cheap smartphone.
>>
>> Any other ideas?
>>
>> Steve
>>
>
> I am only 20 and am still in university so I feel like I can answer this with at least my own experiences. Personally I think D would capture the attention of more young people if it was simply easier to use. The first "real" language I really got into was C#(about 5-6 years ago) and I think the main reason is that it was so flipin easy to learn and get started. All I had to do to set it up was download Visual Studio and I was done... period ... The documentation was fantastic and everything was named in very intuitive ways. Most of the time when I was learning I would just ctrl+space and start scrolling through the auto-complete reading the documentation of all the functions right there in visual studio. It was soooooo easy. In my opinion the biggest thing holding D back by a long shot is the tooling and documentation... it is simply terrible. But thats just my opinion so I don't want anyone taking offense.
>

Oh... my... god...

+ulong.max!

This is like music to my ears! :)
I've been banging on about the importance of this stuff forever, and so
frequently get dismissed as being lazy or irrelevant.


Also something that would help get younger people into D was if the std lib
> was a little bit more expansive. Look at java and c# in my opinion they are both so popular because their std lib is so large. Younger people don't like to have to deal with non standard libraries as they just make it so much more difficult to do things especially as they are still trying to learn.
>
> The lack of a real GUI library is also a hindrance. Young people like to see results on the screen other than just text. That is why web and mobile development is so popular with young people.
>
> tldr; Tools suck, documentation sucks, std lib is small and no std GUI lib...
>

It's great to hear it directly from the sort of people that I always refer to when I talk about this stuff! :)

Fortunately, it has been recognised that tooling must be made a central
focus.
Small steps like VisualD being moved to dlang.org, bundled with the DMD
installer, issues tracking in the main bugtracker, etc.
This is ideally intended to improve visibility of tooling related issues.

What we really lack though, is a couple more Rainer and Alexander's. Worth their weight in gold!

The other major hurdle is a proper parser usable for tooling. Many are
trying to reinvent the wheel, and nothing short of the DMD front-end itself
is really capable of properly parsing D code.
The biggest missing component I'm aware of is this
DMD-frontend-as-a-library idea that is always being discussed, but never
seems to be happening. If I had to nominate a single critical goal for the
ecosystem for 2014, that would be it.


February 12, 2014
On Tuesday, 11 February 2014 at 17:37:17 UTC, Steve Teale wrote:
> On Monday, 10 February 2014 at 19:03:22 UTC, Tofu Ninja wrote:
>
>> I am only 20 and am still in university so I feel like I can answer this with at least my own experiences. Personally I think D would capture the attention of more young people if it was simply easier to use. The first "real" language I really got into was C#(about 5-6 years ago) and I think the main
>
> You hijacked my topic and converted it into the usual arguments about lack of infrastructure for D.
>
> I'm talking about guys and girls who don't have a computer, let alone C#. They just have a cheap smart phone that maybe they succeeded in getting rooted. So is your answer that they should just use Java?
>
> And yes, the C# library is excellent, but D is a better language, and is easy to use. Get out of the wood and see the trees!
>
> I'm at the other end of my life, with a long view of history. We should do our bit to help to bring civilization and reason (back) to the world, not just tell people 'use C#'.
>
> A more relevant criticism would be that people who only know say Swahili won't be able to find out about and use D anyway - Java either. Sadly my Swahili is not up to it.
>
> Sorry, but you asked for it ;=)
>
> Steve
Oh I am sorry, by developing world I thought you were talking about the world of developers, why are you interested in getting D to the developing world? Seems kinda odd...
February 12, 2014
"Manu" <turkeyman@gmail.com> wrote in message news:mailman.16.1392169704.6445.digitalmars-d@puremagic.com...
On 11 February 2014 05:03, Tofu Ninja <emmons0@purdue.edu> wrote:

> The other major hurdle is a proper parser usable for tooling. Many are trying to reinvent the wheel, and nothing short of the DMD front-end itself is really capable of properly parsing D code.
> The biggest missing component I'm aware of is this DMD-frontend-as-a-library idea that is always being discussed, but never seems to be happening. If I had to nominate a single critical goal for the ecosystem for 2014, that would be it.

DDMD first, then libDMD.  Patience. 

February 12, 2014
On Monday, 10 February 2014 at 18:14:26 UTC, Dejan Lekic wrote:
> On Monday, 10 February 2014 at 18:11:38 UTC, Steve Teale wrote:
>> What can be done to capture the attention of young people in the developing world?
>>
>> Probably the most effective thing would be if it were possible to edit, compile, and run D programs on a cheap Android ARM phone.
>>
>> Is this within the bounds of possibility?
>>
>> There are millions of unemployed, bored, restless, and ambitious young men out there, who have saved their all to buy a cheap smartphone.
>>
>> Any other ideas?
>>
>> Steve
>
> A D compiler that targets JVM or Dalvik directly is my personal dream...

That's kind of what I was going for when I was working on my
transcompiler a while back. Something that goes directly from d
source to Dalcik would be so amazing though...
February 12, 2014
On Wednesday, 12 February 2014 at 04:42:47 UTC, Jeremy DeHaan
wrote:
> On Monday, 10 February 2014 at 18:14:26 UTC, Dejan Lekic wrote:
>> On Monday, 10 February 2014 at 18:11:38 UTC, Steve Teale wrote:
>>> What can be done to capture the attention of young people in the developing world?
>>>
>>> Probably the most effective thing would be if it were possible to edit, compile, and run D programs on a cheap Android ARM phone.
>>>
>>> Is this within the bounds of possibility?
>>>
>>> There are millions of unemployed, bored, restless, and ambitious young men out there, who have saved their all to buy a cheap smartphone.
>>>
>>> Any other ideas?
>>>
>>> Steve
>>
>> A D compiler that targets JVM or Dalvik directly is my personal dream...
>
> That's kind of what I was going for when I was working on my
> transcompiler a while back. Something that goes directly from d
> source to Dalcik would be so amazing though...

err..Dalvik
February 12, 2014
On Tuesday, 11 February 2014 at 20:12:16 UTC, Joakim wrote:
> On Tuesday, 11 February 2014 at 17:37:17 UTC, Steve Teale wrote:
>> You hijacked my topic and converted it into the usual arguments about lack of infrastructure for D.
>>
>> I'm talking about guys and girls who don't have a computer, let alone C#. They just have a cheap smart phone that maybe they succeeded in getting rooted. So is your answer that they should just use Java?
>>
>> And yes, the C# library is excellent, but D is a better language, and is easy to use. Get out of the wood and see the trees!
>>
>> I'm at the other end of my life, with a long view of history. We should do our bit to help to bring civilization and reason (back) to the world, not just tell people 'use C#'.
>>
>> A more relevant criticism would be that people who only know say Swahili won't be able to find out about and use D anyway - Java either. Sadly my Swahili is not up to it.
> Well, that's the problem, it was kind of a silly question to begin with.  How many Swahili people even have a smartphone, as opposed to a feature phone?  What percentage of them would be able to grasp the concept of rooting, let alone execute it?
>
> I suppose if we were to humor the question, as it's always possible that the next John Carmack is out there somewhere, here's what I'd suggest.  You can get an Android smartphone for as cheap as $50-100 these days.  I'd pick one up that worked with a bluetooth keyboard, as programming on the touch keyboard on your small phone screen is paramount to torture. ;) Then, you have two options:
>
> 1) Download an ssh client app and buy access to a FreeBSD or linux VPS, which you can get for as cheap as $5/month.  This might require a credit card or paypal account, not sure how tough those are to get in the developing world.  You can then ssh into the VPS, download dmd or any other compiler, and code to your heart's content, albeit with some annoying lag from developing over the network.
>
> 2) Root your smartphone and install all the necessary development software, which I'm not sure even exists, as most devs cross-compile to Android.
>
> Both seem kind of far-fetched.  You need a certain basic level of knowledge, wealth, and leisure time to get into programming, which many in the developing world don't have.  But if they really went after it, the VPS option is probably the best bet, at a cost of about $100 up front plus $5/month for hosting.

I suggest Raspberry Pi:

http://www.raspberrypi.org/

It was especially designed for the "developing world" (whatever that means! A lot of structures and laws in Europe go back to the Middle Ages!) It is about £40~50. I saw one, a tiny little thing but very powerful.

We send all our electronic rubbish to Africa. Instead of sending it there as rubbish poluting the environment and ruining the locals' health, we should give them to the people so they have something to work with. A lot of devices still work, but they are "outdated".
February 12, 2014
On 10/02/2014 20:32, Adam Wilson wrote:
> Not having an IDE is more tangential, but no less important. Here we
> have two integrations with popular IDE's, Visual Studio and Mono.
> However, these integrations suffer from the lack of tooling for D. DMD
> can't be used as libary, so these integrations have had to produce their
> own parsing engines and they are always behind DMD itself so they never
> parse the current DMD language quite correctly. This means that you
> can't turn on the really cool features that we in the C#/Java community
> have become used to. D's integration with IDE's is similar to the
> situation with IDE integration for C++. Yes D is easier to parse than
> C++, but since we can't use the canonical parser, we don't have any
> parsers that match D in it's current form so the AST's are almost always
> broken or plain incorrect.
>
> Building a new IDE won't solve this problem. Here we need to focus on
> building better tools for D, turning DMD itself into a library or
> Compiler-as-a-Service in the current lingo, since libraries are now
> "services". D needs to make great strides in tooling to be relevant, we
> need first-class debugging, and they need to support more than the
> terminal. We need D as library, we need better IDE integrations. We need
> a broader standard library. We need more bindings for existing
> libraries. We need more new libraries (like the Aurora library I am
> working on).

Once you have a complete D parser (as all the major D IDEs have now), it's easy to keep it up to date, since the new language syntaxes are few, and easy to implement.
The real problem is semantic analysis (anything from code completion, to error/warning reporting, etc.). That's the hard thing to implement (as it's so extensive), to keep up to date, and to be full-feature and not just limited.

There is not a chance in hell DMD would sucessfully be adapted for these purposes. Maybe as fork, but not as the main stream. Even as a fork I hardly see it happening (The Descent IDE went with this route but it the semantic engine was buggy and quickly became very hard to maintain.) The reasons are manyfold and I'm not going into detail, but suffice to say a semantic engine for an IDE needs to be prepared to run in an interactive/deamon mode to have a decent performance, not in batch (run once) mode like a compiler. This adds several constraints and requirements to the semantic engine architecture, something that DMD is not prepared to. It would take a large engineering effort to adapt it to that, and crucially, Walter would have to be involved, but he has his hands full already.

A better approach for the D situation, is having a semantic engine done from scratch, adapted for IDE use. With that in mind, a project like DCD is very interesting and promising, although still a significant effort.

--
Bruno Medeiros