July 12, 2014
On Friday, 11 July 2014 at 19:08:43 UTC, Nick Sabalausky wrote:
> Yea, that's one of the things that drew me to D. It came around saying (quite literally) "pragmatic language design" at exactly the time I was noticing how much of a pain ideology-driven and minimalist languages can be.

+1000

---
Paolo
July 12, 2014
On Fri, 2014-07-11 at 20:25 +0000, Joakim via Digitalmars-d wrote: […]
> Name one "general purpose language" that currently crosses the native->scripting divide and has good usage on both ends of the market.  It doesn't exist, because it's almost impossible to do.
[…]

Go and D are really quite close to something useful though on this front.

-- 
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


July 12, 2014
On Fri, 2014-07-11 at 18:53 +0200, simendsjo via Digitalmars-d wrote: […]
> Yes, I was very perplexed when I was profiling and finally found the main offender. Unfortunately I don't have the code - it was a project done for a past employer back in 2006/2007 (Python 2.4 IIRC).

Ah. In which case the anecdote is only of historical interest since it says nothing about Python as it is today. 2.7 is way faster than 2.4 and has far more in it that would like make the code in need of a amendment anyway – also the way local variables are stored and manipulated has been changed and improved massively over the intervening time. Moreover 3.4 is way, way better than 2.7 and has so much more in it that a rewrite would definitely be needed if performance was a factor. Without the code though there is no data point, so nothing to pursue. Sadly.

[…]
> I think of this as a fault in the compiler. It was quite obvious (to me) that nothing else relied on the value so the value didn't have to be created on each iteration.

A new variable was not being created on each iteration. Python does not have block scoping.

This cannot be seen as a fault with the compiler since all the compiler does is to check syntax and indents and convert your source code into bytecodes. The compiler does not and must not do any form of amending the abstract syntax tree (AST). Manipulations of the AST must be in the source code, cf. MacroPy.

-- 
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


July 12, 2014
On Fri, 2014-07-11 at 16:54 +0000, Chris via Digitalmars-d wrote: […]
> I remember Java used to be "theeee" best thing ever. After years of using it, however, I found out how restricted the language was / is. Still, it's been a success, because people believed all the propaganda. What matters to me is not so much the odd fancy feature, it's how well the language performs in general purpose programming. Go was designed for servers and thus will always have one up on D or any other language at that matter. But could I use Go for what I have used D? Not so sure about that. Also, like Java Go is a closed thing. D isn't. Once I read about D that it shows what can be done "once you take a language out of the hands of a committee". Go, like Java, will finally end up in a cul de sac and will have a hard time trying to get out of it. Not because the language is inherently bad, because it's in the hand of a committee. Ideology kills a language. But it doesn't matter, because people will use Go or whatever anyway, will _have_ to use it.

People believed the FORTRAN propaganda, the COBOL propaganda, the Pascal propaganda. I think we ought to distinguish good marketing from hype. Java had good marketing, was in the right place at the right time, and had a huge amount of hype as well.

If Go is better for server things than D then might as well stop trying to use D at all.

Go was actually designed as a better C with CSP for concurrency and parallelism.

Go, D, Rust, C++, C, Haskell,… are all just programming languages that create native code executable. Thus they are all in the same category regarding potential usage. Everything else is about whether the programmer likes and uses well, the language.

If Go and Java are closed languages, so is D. All three have open source repositories and people can submit changes via pull requests. All three have committees comprising the people who have commit rights to the mainline and they are the only people who can actually change the language.

I think I have to repeat the point about irony here regarding ideology :-)

> What I'm taking issue with is that everybody focuses on the flaws of D (every language has flaws), which often gives the impression that it's an unfinished, stay-away business. It's not. D can be used, and I've used it, for production code. It's more mature than D or Rust and it is superior to other languages like Java (no OO-ideology for example). Mind you, D is a hindsight language, which makes it wiser. Does it have flaws? Yes. I come across them sometimes. Is there a language without flaws? If there is, tell me about it. Talking about hindsight, I've tried many different languages, I like D because of what it has to offer for general purpose programming, it compiles natively, interfaces with C at no cost at all, it has strong modelling power, features that users require are added. I may sound like a zealot (see "irony"), but I'm not. I'm very pragmatic, D is a good tool and, being community driven, there is a real chance of making it a fantastic tool. Individual features are not everything.

Go folk have exactly the same view and argument regarding Go. Java folk have exactly the same view and argument regarding Java – well except for the compiles to native code bit, obviously. ;-)

In the end it is about community rather than the programming language per se. Java created a huge community that was evangelical. Go has rapidly created an active community that is evangelical. Python has rapidly created a large evangelical community. D has slowly created a small community that hasn't as yet created the outward looking evangelical aspect. Where are the user groups having local meetings is my main metric. Java definitely, Go definitely, C++ sort of, D no. This is the real problem for D I feel. Without local user groups meeting up you don't get exposure and you don't get traction in the market.

If there were more D users in the London area than one in London and one in Brighton maybe we could start a London D User Group (LonDUG). SkillsMatter would host.

-- 
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


July 12, 2014
On Fri, 2014-07-11 at 10:40 -0700, H. S. Teoh via Digitalmars-d wrote: […]
> When I finally got past the hype and tried out the language for myself, I found the same thing you did: it's totally straitjacketed, and shoves the OO idealogy down your throat even when it obviously doesn't fit. The infamous long-winded "class MyLousyApp { public static void main(blah blah blah) ... }" is a prime example of shoehorning something obviously non-OO into an OO paradigm, just because we want to.  Not to mention Java's verbosity, which is only tolerable with IDE support -- total fail, in my book. I mean, hello, we're talking about a *language* intended for *humans* to communicate with the computer? If we need *another* program to help us elucidate this communication, something's gone very, very wrong with the language. A language that needs a machine to help you write, is by definition a language for communication between *machines*, not between humans and machines.

Java is not an object-oriented language in the Smalltalk, C++, Python sense of object-oriented.

Picking out the main entry boilerplate is a wee bit unfair. Though Groovy, Kotlin and Ceylon have added top-level functions again by finding compilation strategies, and Scala has created the App class which does something similar.

You comment about programming languages applies equally well to C++, Go, Python, Rust, D, etc. as it does to Java.

> Then there's the lack of generics until the n'th revision, and when it finally came, it was lackluster (google for issues caused by type erasure in Java sometime). D totally beats Java in this area IMO.

I think it may just be Stockholm Syndrome, but some notable people whose opinions I generally trust, are now saying that type erasure in Java is a good thing. I am not one of them. Java should have done what C# did and enforce reification of type parameters in the underlying machine, JVM and CLR respectively.

> That's not to say that Java, the language, (as opposed to the class library or the marketing hype) isn't a pretty good language. In fact, it's quite a beautiful language -- in the idealistic, ivory tower, detached-from-real-life sense of being a perfect specimen suitable for a museum piece. Its disconnect from the messy real world, unfortunately, makes it rather painful to use in real-life. Well, except with the help of automated tools like IDEs and what-not, which makes one wonder, if we need a machine to help us communicate with a machine, why not just write assembly language instead? But I digress. :-P

Now this is mis-direction. Java is a real-world language in that it is used in the real world. Whilst there are many using Java because they know no better, many are using it out of choice. Java evolves with the needs of the users prepared to get involved in evolving the language.

-- 
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


July 12, 2014
On 12 July 2014 11:27, Russel Winder via Digitalmars-d <digitalmars-d@puremagic.com> wrote:
> On Fri, 2014-07-11 at 16:54 +0000, Chris via Digitalmars-d wrote: […]
>> I remember Java used to be "theeee" best thing ever. After years of using it, however, I found out how restricted the language was / is. Still, it's been a success, because people believed all the propaganda. What matters to me is not so much the odd fancy feature, it's how well the language performs in general purpose programming. Go was designed for servers and thus will always have one up on D or any other language at that matter. But could I use Go for what I have used D? Not so sure about that. Also, like Java Go is a closed thing. D isn't. Once I read about D that it shows what can be done "once you take a language out of the hands of a committee". Go, like Java, will finally end up in a cul de sac and will have a hard time trying to get out of it. Not because the language is inherently bad, because it's in the hand of a committee. Ideology kills a language. But it doesn't matter, because people will use Go or whatever anyway, will _have_ to use it.
>
> People believed the FORTRAN propaganda, the COBOL propaganda, the Pascal propaganda. I think we ought to distinguish good marketing from hype. Java had good marketing, was in the right place at the right time, and had a huge amount of hype as well.
>
> If Go is better for server things than D then might as well stop trying to use D at all.
>
> Go was actually designed as a better C with CSP for concurrency and parallelism.
>

Or a better Oberon, I haven't quite decided which yet... :)

> If there were more D users in the London area than one in London and one in Brighton maybe we could start a London D User Group (LonDUG). SkillsMatter would host.
>

And I say Hello! from sunny Brighton.


I do believe there are a few people around the London area who either have worked in, work in, or have a vested interest in D.  I'll give Dejan a poke and find out some more numbers.

Regards
Iain.

July 12, 2014
Am 12.07.2014 14:54, schrieb Iain Buclaw via Digitalmars-d:
> On 12 July 2014 11:27, Russel Winder via Digitalmars-d
> <digitalmars-d@puremagic.com> wrote:
>> On Fri, 2014-07-11 at 16:54 +0000, Chris via Digitalmars-d wrote:
>> […]
>>> I remember Java used to be "theeee" best thing ever. After years
>>> of using it, however, I found out how restricted the language was
>>> / is. Still, it's been a success, because people believed all the
>>> propaganda. What matters to me is not so much the odd fancy
>>> feature, it's how well the language performs in general purpose
>>> programming. Go was designed for servers and thus will always
>>> have one up on D or any other language at that matter. But could
>>> I use Go for what I have used D? Not so sure about that. Also,
>>> like Java Go is a closed thing. D isn't. Once I read about D that
>>> it shows what can be done "once you take a language out of the
>>> hands of a committee". Go, like Java, will finally end up in a
>>> cul de sac and will have a hard time trying to get out of it. Not
>>> because the language is inherently bad, because it's in the hand
>>> of a committee. Ideology kills a language. But it doesn't matter,
>>> because people will use Go or whatever anyway, will _have_ to use
>>> it.
>>
>> People believed the FORTRAN propaganda, the COBOL propaganda, the Pascal
>> propaganda. I think we ought to distinguish good marketing from hype.
>> Java had good marketing, was in the right place at the right time, and
>> had a huge amount of hype as well.
>>
>> If Go is better for server things than D then might as well stop trying
>> to use D at all.
>>
>> Go was actually designed as a better C with CSP for concurrency and
>> parallelism.
>>
>
> Or a better Oberon, I haven't quite decided which yet... :)


No, Oberon is still better.

Active Oberon has concurrency support via active objects and contrary to Go, has first class support for systems programming. Oh and the last versions even had a primitive version of generics.

Only thing I dislike in Wirth's languages is the need of uppercase keywords, but all modern editors can do a "replace as you type" kind of thing anyway.


--
Paulo

July 12, 2014
On Sat, 2014-07-12 at 13:54 +0100, Iain Buclaw via Digitalmars-d wrote: […]
> Or a better Oberon, I haven't quite decided which yet... :)

Whatever the reality initially, it is definitely now marketed as a modernized C. Echoes of C++ then.

> > If there were more D users in the London area than one in London and one in Brighton maybe we could start a London D User Group (LonDUG). SkillsMatter would host.
> >
> 
> And I say Hello! from sunny Brighton.

Aha the Brighton dwelling D user of note ;-)

I have lived in Brighton, but it was a long time ago, it is probably very different now. No West Pier for a start!

> I do believe there are a few people around the London area who either have worked in, work in, or have a vested interest in D.  I'll give Dejan a poke and find out some more numbers.

We could start a code dojo to build up an initial activity and then spawn off public meetings with tutorial style material to attract people new to D. "D for C++ programmers", "D for C programmers", "D for Python programmers", "D for JavaScript kiddies",…

We might initially draw on the ACCU London people to gauge interest.

-- 
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


July 12, 2014
On 12 July 2014 15:11, Russel Winder via Digitalmars-d <digitalmars-d@puremagic.com> wrote:
> On Sat, 2014-07-12 at 13:54 +0100, Iain Buclaw via Digitalmars-d wrote: […]
>> Or a better Oberon, I haven't quite decided which yet... :)
>
> Whatever the reality initially, it is definitely now marketed as a modernized C. Echoes of C++ then.
>
>> > If there were more D users in the London area than one in London and one in Brighton maybe we could start a London D User Group (LonDUG). SkillsMatter would host.
>> >
>>
>> And I say Hello! from sunny Brighton.
>
> Aha the Brighton dwelling D user of note ;-)
>
> I have lived in Brighton, but it was a long time ago, it is probably very different now. No West Pier for a start!
>

I live literally 400 yards away from the burnt down west pier.  Its a beautiful sight in the morning, come sun, rain, or fog.  I hear they are building a 100 metre high elevator-to-nowhere in its place.  Sad times...


>> I do believe there are a few people around the London area who either have worked in, work in, or have a vested interest in D.  I'll give Dejan a poke and find out some more numbers.
>
> We could start a code dojo to build up an initial activity and then spawn off public meetings with tutorial style material to attract people new to D. "D for C++ programmers", "D for C programmers", "D for Python programmers", "D for JavaScript kiddies",…
>
> We might initially draw on the ACCU London people to gauge interest.
>

I can give you my details, and can see where things go from there.

Regards
Iain.

July 12, 2014
On Sat, 2014-07-12 at 15:37 +0100, Iain Buclaw via Digitalmars-d wrote: […]
> I live literally 400 yards away from the burnt down west pier.  Its a beautiful sight in the morning, come sun, rain, or fog.  I hear they are building a 100 metre high elevator-to-nowhere in its place.  Sad times...

We lived for a while in Little Western Street. Even then the West Pier was crumbling and was closed a short while after we wandered up and down it one afternoon in glorious (very un-English) sun.

[…]
> 
> I can give you my details, and can see where things go from there.

Is evening meetings in London something you might be up for?

Depending on who is involved and what constitutes the "centre of mass", there is always the option of meeting in a pub in Clapham Junction – saves the extra haul across Central London.


-- 
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