Re: DConf 2019: Shepherd's Pie Edition

2019-01-14 Thread Bienlein via Digitalmars-d-announce
On Saturday, 22 December 2018 at 13:33:29 UTC, Russel Winder 
wrote:

Brilliant, DConf comes to the UK, I can get to it…

except…

it's on at the exact same time as DevoxxUK 2019 which is at the 
Business Design Centre. :-(


Programming languages are unimportant anyway.


Re: My Meeting C++ Keynote video is now available

2019-01-14 Thread aliak via Digitalmars-d-announce

On Tuesday, 15 January 2019 at 06:57:28 UTC, Paul Backus wrote:

On Tuesday, 15 January 2019 at 05:18:45 UTC, aliak wrote:

Quote from article:

"The languages with the strongest positive coefficients - 
meaning associated with a greater number of defect fixes are 
C++, C, and Objective-C, also PHP and Python.  On the other 
hand, Clojure, Haskell, Ruby and Scala all have significant 
negative coefficients implying that these languages are less 
likely than average to result in defect fixing commits."


Does this take into account the experience of the programmers 
writing in each language? Given their relative popularity, I 
imagine PHP and Python have many more beginning programmers 
writing code in them than Haskell and Clojure.


Not that I saw in the paper no. But that is a good point.


Re: My Meeting C++ Keynote video is now available

2019-01-14 Thread Paul Backus via Digitalmars-d-announce

On Tuesday, 15 January 2019 at 05:18:45 UTC, aliak wrote:

Quote from article:

"The languages with the strongest positive coefficients - 
meaning associated with a greater number of defect fixes are 
C++, C, and Objective-C, also PHP and Python.  On the other 
hand, Clojure, Haskell, Ruby and Scala all have significant 
negative coefficients implying that these languages are less 
likely than average to result in defect fixing commits."


Does this take into account the experience of the programmers 
writing in each language? Given their relative popularity, I 
imagine PHP and Python have many more beginning programmers 
writing code in them than Haskell and Clojure.


Re: My Meeting C++ Keynote video is now available

2019-01-14 Thread aliak via Digitalmars-d-announce
On Saturday, 12 January 2019 at 15:51:03 UTC, Andrei Alexandrescu 
wrote:

https://youtube.com/watch?v=tcyb1lpEHm0

If nothing else please watch the opening story, it's true and 
quite funny :o).


Now as to the talk, as you could imagine, it touches on another 
language as well...



Andrei


Awesome talk! As usual.

Regarding this quote: "The ruby guy next to you is writing just 
as crappy code..."  I don't think that's really correct. The 
reference is code complete, which is published in 93 (i.e. no 
java, no ruby, before the stl even?) and i believe (just googled 
this so may be wrong) the reference in that book is from a 1977 
paper on programmer quality and productivity and the 2004 edition 
of code complete changes the number form 15 to 50 / 1000 to 1 .. 
25 / 1000, but references the same paper afaik.


Here's a more recent study: 
http://rayb.info/uploads/cacm2017-lang.pdf


Here's an article that summarizes it -> 
https://www.i-programmer.info/news/98-languages/11184-which-languages-are-bug-prone.html


Quote from article:

"The languages with the strongest positive coefficients - meaning 
associated with a greater number of defect fixes are C++, C, and 
Objective-C, also PHP and Python.  On the other hand, Clojure, 
Haskell, Ruby and Scala all have significant negative 
coefficients implying that these languages are less likely than 
average to result in defect fixing commits."


Also this is more anecdotal, but for example going from 
objective-c to swift, the number of non-application-specific bugs 
per line (regardless of whether or not that's even a good measure 
路‍♂️), i feel, has gone down by an exaggerated order of magnitude.


Cheers,
- Ali



Re: My Meeting C++ Keynote video is now available

2019-01-14 Thread Neia Neutuladh via Digitalmars-d-announce
On Mon, 14 Jan 2019 21:12:48 +, Paul Backus wrote:
> On Monday, 14 January 2019 at 21:08:50 UTC, Ben Jones wrote:
>> Is it possible to declare a function whose name is a CTFE computed
>> string?
> 
> Yes, if you do it with a string mixin.

And more simply, you can declare a function with a hard-coded name, then 
use an alias to expose it under a different name.


Re: My Meeting C++ Keynote video is now available

2019-01-14 Thread Walter Bright via Digitalmars-d-announce

On 1/14/2019 10:49 AM, Jacob Carlborg wrote:

But Ddoc has macros ;)


Indeed it does. But the macros cannot be used to create syntax, and there is no 
token concatenation. Macros cannot define other macros.




Re: My Meeting C++ Keynote video is now available

2019-01-14 Thread Ben Jones via Digitalmars-d-announce

On Monday, 14 January 2019 at 21:22:32 UTC, Andre Pany wrote:

On Monday, 14 January 2019 at 21:08:50 UTC, Ben Jones wrote:
On Saturday, 12 January 2019 at 15:51:03 UTC, Andrei 
Alexandrescu wrote:

https://youtube.com/watch?v=tcyb1lpEHm0

If nothing else please watch the opening story, it's true and 
quite funny :o).


Now as to the talk, as you could imagine, it touches on 
another language as well...



Andrei


A lot of the questions were about documenting the hook API and 
catching misspelling errors when defining a hook.


It seems like it would be nice if you could list the hook 
method names a static array or dictionary or struct containing 
a field for each method, etc.  One each for the required and 
optional methods.


The hook author could grab the name/signature of the method 
they're intending to implement from that data structure and 
any misspellings would be caught immediately.


Is it possible to declare a function whose name is a CTFE 
computed string?


For ranges there are concepts like Input Range. A struct/class 
must have several methods to be compliant. You can check the 
compliance using function isInputRange
 
https://dlang.org/library/std/range/primitives/is_input_range.html


Maybe something similiar can be done here. Not checking 
individual methods, but concepts...


Kind regards
Andre


I don't think that's quite sufficient because a hook may/may not 
have the optional methods, and could have extra stuff.  What you 
want is to specify per method "this method is part of the hook 
interface," which as I type it kind of sounds like the job of an 
annotation...





Re: My Meeting C++ Keynote video is now available

2019-01-14 Thread Andre Pany via Digitalmars-d-announce

On Monday, 14 January 2019 at 21:08:50 UTC, Ben Jones wrote:
On Saturday, 12 January 2019 at 15:51:03 UTC, Andrei 
Alexandrescu wrote:

https://youtube.com/watch?v=tcyb1lpEHm0

If nothing else please watch the opening story, it's true and 
quite funny :o).


Now as to the talk, as you could imagine, it touches on 
another language as well...



Andrei


A lot of the questions were about documenting the hook API and 
catching misspelling errors when defining a hook.


It seems like it would be nice if you could list the hook 
method names a static array or dictionary or struct containing 
a field for each method, etc.  One each for the required and 
optional methods.


The hook author could grab the name/signature of the method 
they're intending to implement from that data structure and any 
misspellings would be caught immediately.


Is it possible to declare a function whose name is a CTFE 
computed string?


For ranges there are concepts like Input Range. A struct/class 
must have several methods to be compliant. You can check the 
compliance using function isInputRange
 
https://dlang.org/library/std/range/primitives/is_input_range.html


Maybe something similiar can be done here. Not checking 
individual methods, but concepts...


Kind regards
Andre


Re: My Meeting C++ Keynote video is now available

2019-01-14 Thread Paul Backus via Digitalmars-d-announce

On Monday, 14 January 2019 at 21:08:50 UTC, Ben Jones wrote:
Is it possible to declare a function whose name is a CTFE 
computed string?


Yes, if you do it with a string mixin.


Re: My Meeting C++ Keynote video is now available

2019-01-14 Thread Ben Jones via Digitalmars-d-announce
On Saturday, 12 January 2019 at 15:51:03 UTC, Andrei Alexandrescu 
wrote:

https://youtube.com/watch?v=tcyb1lpEHm0

If nothing else please watch the opening story, it's true and 
quite funny :o).


Now as to the talk, as you could imagine, it touches on another 
language as well...



Andrei


A lot of the questions were about documenting the hook API and 
catching misspelling errors when defining a hook.


It seems like it would be nice if you could list the hook method 
names a static array or dictionary or struct containing a field 
for each method, etc.  One each for the required and optional 
methods.


The hook author could grab the name/signature of the method 
they're intending to implement from that data structure and any 
misspellings would be caught immediately.


Is it possible to declare a function whose name is a CTFE 
computed string?


Re: My Meeting C++ Keynote video is now available

2019-01-14 Thread H. S. Teoh via Digitalmars-d-announce
On Mon, Jan 14, 2019 at 08:38:39PM +, Guillaume Piolat via 
Digitalmars-d-announce wrote:
[...]
> Other people often lack interest because of real or perceived template
> bloat, and it's critical.
> 
> - I think it's important to emphasize CTFE over template
> instantiations because (per Stefan's measurements) template
> instantiations are a lot slower and CTFE is already surprisingly
> faster than template meta-programming, and on the road to become even
> faster with the superbly needed newCTFE.

I think another angle of attack that AFAICT has been mostly overlooked
is for the compiler to recognize certain common template patterns, and
optimize away intermediate template instantiations that are not actually
necessary.  Not every template instantiation requires wholesale copying
of the AST.  I surmise certain patterns of templates could be profitably
turned into some kind of compile-time executed code.


T

-- 
Без труда не выловишь и рыбку из пруда. 


Re: My Meeting C++ Keynote video is now available

2019-01-14 Thread Guillaume Piolat via Digitalmars-d-announce
On Saturday, 12 January 2019 at 15:51:03 UTC, Andrei Alexandrescu 
wrote:

https://youtube.com/watch?v=tcyb1lpEHm0

If nothing else please watch the opening story, it's true and 
quite funny :o).


Now as to the talk, as you could imagine, it touches on another 
language as well...



Andrei


About the adoption and success of DbI libraries:

- Buried inside your talks there are lots of hard-earned 
principles:

  "What's missing is as important as what's here"
  "Big interfaces are good"
  etc...
  We have a lack of DbI designers such as yourself or Vladimir so 
a short text that teach how to design with DbI could be in order.
  I redirect people to "std::allocator is to allocation what 
std::vector is to vexation" because it seems to be the only 
tutorial on this.


  Other people often lack interest because of real or perceived 
template bloat, and it's critical.


- I think it's important to emphasize CTFE over template 
instantiations because (per Stefan's measurements) template 
instantiations are a lot slower and CTFE is already surprisingly 
faster than template meta-programming, and on the road to become 
even faster with the superbly needed newCTFE.




Re: code-d 0.20.0 - serve-d 0.4.0 - Happy new year!

2019-01-14 Thread WebFreak001 via Digitalmars-d-announce

On Sunday, 13 January 2019 at 21:40:43 UTC, Murilo wrote:

On Monday, 31 December 2018 at 17:42:46 UTC, WebFreak001 wrote:

[...]


It would be a good idea to publish that on the facebook group 
for users of D. There you would be able to spread the 
information fast. It is called Programming in D. Here is the 
link:  https://www.facebook.com/groups/662119670846705/


sorry I don't use Facebook, but I would be glad if anyone who 
posts stuff there could share this :)


Top Five World’s Most Underrated Programming Languages

2019-01-14 Thread Andrei Alexandrescu via Digitalmars-d-announce

Of possible interest:

https://www.technotification.com/2019/01/most-underrated-programming-languages.html


Re: My Meeting C++ Keynote video is now available

2019-01-14 Thread Jacob Carlborg via Digitalmars-d-announce

On 2019-01-14 15:42, Steven Schveighoffer wrote:

That's a bad example :) The clear answer is mysql-native, which is what 
vibe.d recommends.


Exactly, and I don't need five minutes for that. Five seconds is enough :)

--
/Jacob Carlborg


Re: My Meeting C++ Keynote video is now available

2019-01-14 Thread Jacob Carlborg via Digitalmars-d-announce

On 2019-01-14 08:50, Walter Bright wrote:

Interesting cites, which provide a basis for why I've opposed AST 
macros, and why Ddoc and unittest are builtin (and a few other things).


But Ddoc has macros ;)

--
/Jacob Carlborg


Re: My Meeting C++ Keynote video is now available

2019-01-14 Thread H. S. Teoh via Digitalmars-d-announce
On Mon, Jan 14, 2019 at 03:57:36PM +, Adam D. Ruppe via 
Digitalmars-d-announce wrote:
> On Monday, 14 January 2019 at 14:56:00 UTC, bachmeier wrote:
> > Only a small sliver of programming involves anything where "overhead
> > of a runtime" is an issue. I hope you intend this comment as
> > pertaining to Better C usage.
> 
> Real D is the true better C. These improvements can improve in various
> situations.
> 
> That said though, I'd be against removing built-in classes and
> interfaces.  They are useful in a lot of places built in...

Yeah, much as I'm a big promoter of struct-based range-based template
style D code, classes and interfaces do still have their place.  When
you need runtime dynamic polymorphism, it just makes sense to use
classes and interfaces instead of trying to bandage your way around
structs and CT introspection.  I'm still searching for a theoretical
model that would bridge the gap between the two and make one unified
model, but for now, they each still have their place.


> though I kinda wish the runtime code was a bit thinner and lighter
> too.

Yeah, the whole thing about the monitor field IMO is an unnecessary
burden on a use case that isn't always needed.  If synchronized classes
or whatever needs it, then it should be an ABI specific to synchronized
classes.  Everybody else shouldn't need to pay tax on it if they never
actually need to use it.


T

-- 
Shin: (n.) A device for finding furniture in the dark.


Re: My Meeting C++ Keynote video is now available

2019-01-14 Thread Steven Schveighoffer via Digitalmars-d-announce

On 1/14/19 10:57 AM, Adam D. Ruppe wrote:

On Monday, 14 January 2019 at 14:56:00 UTC, bachmeier wrote:
Only a small sliver of programming involves anything where "overhead 
of a runtime" is an issue. I hope you intend this comment as 
pertaining to Better C usage.


Real D is the true better C. These improvements can improve in various 
situations.


That said though, I'd be against removing built-in classes and 
interfaces. They are useful in a lot of places built in... though I 
kinda wish the runtime code was a bit thinner and lighter too.


Some of the old crufty features of classes can be jettisoned like 
toString and toHash, and object.factory.


-Steve


Re: My Meeting C++ Keynote video is now available

2019-01-14 Thread Adam D. Ruppe via Digitalmars-d-announce

On Monday, 14 January 2019 at 14:56:00 UTC, bachmeier wrote:
Only a small sliver of programming involves anything where 
"overhead of a runtime" is an issue. I hope you intend this 
comment as pertaining to Better C usage.


Real D is the true better C. These improvements can improve in 
various situations.


That said though, I'd be against removing built-in classes and 
interfaces. They are useful in a lot of places built in... though 
I kinda wish the runtime code was a bit thinner and lighter too.


Re: My Meeting C++ Keynote video is now available

2019-01-14 Thread bachmeier via Digitalmars-d-announce

On Monday, 14 January 2019 at 03:58:37 UTC, Mike Franklin wrote:

Because design by introspection allows us to "assemble programs 
atomically", perhaps high-level language features like classes 
and interfaces can become obsolete, and the language itself can 
be reduced simpler primitives that don't require the overhead 
of a runtime.


Only a small sliver of programming involves anything where 
"overhead of a runtime" is an issue. I hope you intend this 
comment as pertaining to Better C usage.


Re: My Meeting C++ Keynote video is now available

2019-01-14 Thread 12345swordy via Digitalmars-d-announce

On Monday, 14 January 2019 at 10:06:48 UTC, Mike Franklin wrote:

On Monday, 14 January 2019 at 05:31:27 UTC, Paul Backus wrote:

When something like an object system is made part of the 
language (or at the very least, the standard library), it 
becomes a focal point [2] that the community can coordinate 
around. Due to the diverse, distributed nature of any 
programming-language community, trying to coordinate through 
explicit communication is not really a viable option, so 
having these kinds of focal points is very important if we 
want to be able to work together on anything.


[1] http://winestockwebdesign.com/Essays/Lisp_Curse.html
[2] https://en.wikipedia.org/wiki/Focal_point_(game_theory)


I think D's structs are a sufficient object system for such a 
focal point.  With design by introspection, `alias`, templates, 
`alias this`, `static if`, CTFE, mixins, and a few new D 
features, classes would be unnecessary.  Rust and Zig are 
pretty good examples of this.


D's implementation could even be improved to keep its runtime, 
yet still allow D to be used as I'm suggesting, without 
introducing any breakage for anyone.  I made some significant 
progress in that direction when I was working on the compiler 
in the 2017~2018 timeframe, but my abilities ultimately fell 
short, and I couldn't see a way forward without support.


Mike


Killing classes will kill my interest and investment in D.
Alex.


Re: My Meeting C++ Keynote video is now available

2019-01-14 Thread bachmeier via Digitalmars-d-announce

On Monday, 14 January 2019 at 05:31:27 UTC, Paul Backus wrote:

Scheme is probably the language that takes this idea of a 
minimal "core language" with powerful metaprogramming 
facilities the furthest, and the result is a fragmented 
ecosystem that makes writing portable, non-trivial programs 
close to impossible. (See "The Lisp Curse" [1].)


Much as I hate to disagree with folks on the internet, this is an 
explanation in search of an example. Scheme was originally 
created as a toy language so Steele and Sussman could have an 
object oriented language with actors.[1] It later turned out to 
be a good language for SICP. Macros did not even appear in the 
Scheme standard until R4RS, and they were not part of the 
standard until R5RS in 1998, 23 years after initial work started 
on Scheme. That's not to say that individual implementations 
didn't have Common Lisp macros prior to R5RS, but the 
metaprogramming thing was more of a Common Lisp thing than a 
Scheme thing.


To me, it's obvious why Scheme has never taken off. It wasn't 
created as a language for widespread commercial usage. That was 
the realm of Common Lisp, and to some extent Common Lisp 
succeeded. CL was not killed by excessive use of macros.


I'll also note that R started as a dialect of Scheme, but it was 
designed for practical use from the start, and it has millions of 
users. D has little hope of ever achieving the popularity of R. 
You can do all kinds of metaprogramming with R. I got tired of 
R's lack of proper tail call support, so added a working 
implementation of Clojure's recur in a couple of hours.


Extrapolating from Scheme to D is simply not the best use of 
one's time.


[1] See page 33 of https://dreamsongs.com/Files/HOPL2-Uncut.pdf


Re: My Meeting C++ Keynote video is now available

2019-01-14 Thread Steven Schveighoffer via Digitalmars-d-announce

On 1/14/19 5:18 AM, Martin Tschierschke wrote:

On Monday, 14 January 2019 at 07:50:32 UTC, Walter Bright wrote:

On 1/13/2019 9:31 PM, Paul Backus wrote:
Scheme is probably the language that takes this idea of a minimal 
"core language" with powerful metaprogramming facilities the 
furthest, and the result is a fragmented ecosystem that makes writing 
portable, non-trivial programs close to impossible. (See "The Lisp 
Curse" [1].)


When something like an object system is made part of the language (or 
at the very least, the standard library), it becomes a focal point 
[2] that the community can coordinate around. Due to the diverse, 
distributed nature of any programming-language community, trying to 
coordinate through explicit communication is not really a viable 
option, so having these kinds of focal points is very important if we 
want to be able to work together on anything.


[1] http://winestockwebdesign.com/Essays/Lisp_Curse.html
[2] https://en.wikipedia.org/wiki/Focal_point_(game_theory)


Interesting cites, which provide a basis for why I've opposed AST 
macros, and why Ddoc and unittest are builtin (and a few other things).


Also, before std::string came along in C++, everyone invented their 
own string class, and as a result, nobody could share code.


This is exactly the argument to get a database driver 
(mysql,postgres...) and probably a webserver in std.


I don't like the idea of it, because there are so many approaches. Even 
different approaches among one server protocol.




But to avoid getting std.lib to big, the D Foundation might adopt some 
third party libs as core libraries, so they get maintained within the D 
Foundation Git account to make them somehow official.


We are now approaching the 1500 Dub package, and the ecosystem becomes 
more and more complex.


This is true, I searched yesterday for a decimal package that fits my 
use case (I'm getting decimal numbers as strings in a JSON library, with 
no limits as to what number of decimal places are supported). There were 
probably 4 or 5 that implement the general concept of a decimal type, 
but I was faced with a couple issues:


1. Is it maintained? Some of them are really old, some are old-ish, but 
could potentially be pretty stable
2. Does it have all the features I want? I am hesitant at this point to 
select something that has overflow problems, because I don't actually 
know how much would be too much.


With one central package, I can be sure that 1 is answered, but then I 
don't actually have any choices for whether it works for me or not. If 
it doesn't implement the features I want (basically, I want completely 
arbitrary precision AND number of digits), then I still have to roll my own.


Some packages are hard to solve every, if not most, requirements. Really 
that should be the defining feature of whether it goes into the standard 
library.


(https://code.dlang.org/  1482 packages: The search for mysql now 
returns 23 packages. Please tell me which to use for the back end, of 
your own vibe.d app. I give you 5 minutes...:-)

Regards mt.


That's a bad example :) The clear answer is mysql-native, which is what 
vibe.d recommends.


-Steve


Re: My Meeting C++ Keynote video is now available

2019-01-14 Thread JN via Digitalmars-d-announce

On Monday, 14 January 2019 at 13:07:35 UTC, aberba wrote:
Do people really use Rust in production beyond the safety die 
hards (of course Mozilla and few uses here and there, mostly C 
guys...lowlevel purists)? Its such a weird,complicated and 
academic lang... doubt it'll ever be mainstream like D is 
supposed to be.


Actually, a lot of people do. Many big companies are getting 
interested in Rust and many game developers are investigating its 
capabilities. Rust seems to be mostly appealing to C/C++ 
programmers who are looking for an alternative.


Re: My Meeting C++ Keynote video is now available

2019-01-14 Thread aberba via Digitalmars-d-announce

On Monday, 14 January 2019 at 10:06:48 UTC, Mike Franklin wrote:

On Monday, 14 January 2019 at 05:31:27 UTC, Paul Backus wrote:

When something like an object system is made part of the 
language (or at the very least, the standard library), it 
becomes a focal point [2] that the community can coordinate 
around. Due to the diverse, distributed nature of any 
programming-language community, trying to coordinate through 
explicit communication is not really a viable option, so 
having these kinds of focal points is very important if we 
want to be able to work together on anything.


[1] http://winestockwebdesign.com/Essays/Lisp_Curse.html
[2] https://en.wikipedia.org/wiki/Focal_point_(game_theory)


I think D's structs are a sufficient object system for such a 
focal point.  With design by introspection, `alias`, templates, 
`alias this`, `static if`, CTFE, mixins, and a few new D 
features, classes would be unnecessary.  Rust and Zig are 
pretty good examples of this.


Do people really use Rust in production beyond the safety die 
hards (of course Mozilla and few uses here and there, mostly C 
guys...lowlevel purists)? Its such a weird,complicated and 
academic lang... doubt it'll ever be mainstream like D is 
supposed to be.




Re: My Meeting C++ Keynote video is now available

2019-01-14 Thread JN via Digitalmars-d-announce

On Monday, 14 January 2019 at 05:31:27 UTC, Paul Backus wrote:

[1] http://winestockwebdesign.com/Essays/Lisp_Curse.html


This part always feels familiar to me in D (just replace Lisp 
with D and Haskell with say Rust):


Answer: The Lisp Curse kicks in. Every second or third serious 
Lisp hacker will roll his own implementation of lazy evaluation, 
functional purity, arrows, pattern matching, type inferencing, 
and the rest. Most of these projects will be lone-wolf 
operations. Thus, they will have eighty percent of the features 
that most people need (a different eighty percent in each case). 
They will be poorly documented. They will not be portable across 
Lisp systems. Some will show great promise before being abandoned 
while the project maintainer goes off to pay his bills. Several 
will beat Haskell along this or that dimension (again, a 
different one in each case), but their acceptance will be 
hampered by flame wars on the comp.lang.lisp Usenet group.


also this one:

I saw this 10 years ago when looking for a GUI to my Lisp. No 
problem, there were 9 different offerings. The trouble was that 
none of the 9 were properly documented and none were bug free. 
Basically each person had implemented his own solution and it 
worked for him so that was fine.


Re: My Meeting C++ Keynote video is now available

2019-01-14 Thread Martin Tschierschke via Digitalmars-d-announce

On Monday, 14 January 2019 at 07:50:32 UTC, Walter Bright wrote:

On 1/13/2019 9:31 PM, Paul Backus wrote:
Scheme is probably the language that takes this idea of a 
minimal "core language" with powerful metaprogramming 
facilities the furthest, and the result is a fragmented 
ecosystem that makes writing portable, non-trivial programs 
close to impossible. (See "The Lisp Curse" [1].)


When something like an object system is made part of the 
language (or at the very least, the standard library), it 
becomes a focal point [2] that the community can coordinate 
around. Due to the diverse, distributed nature of any 
programming-language community, trying to coordinate through 
explicit communication is not really a viable option, so 
having these kinds of focal points is very important if we 
want to be able to work together on anything.


[1] http://winestockwebdesign.com/Essays/Lisp_Curse.html
[2] https://en.wikipedia.org/wiki/Focal_point_(game_theory)


Interesting cites, which provide a basis for why I've opposed 
AST macros, and why Ddoc and unittest are builtin (and a few 
other things).


Also, before std::string came along in C++, everyone invented 
their own string class, and as a result, nobody could share 
code.


This is exactly the argument to get a database driver 
(mysql,postgres...) and probably a webserver in std.


But to avoid getting std.lib to big, the D Foundation might adopt 
some third party libs as core libraries, so they get maintained 
within the D Foundation Git account to make them somehow official.


We are now approaching the 1500 Dub package, and the ecosystem 
becomes more and more complex.


(https://code.dlang.org/  1482 packages: The search for mysql now 
returns 23 packages. Please tell me which to use for the back 
end, of your own vibe.d app. I give you 5 minutes...:-)

Regards mt.


Re: My Meeting C++ Keynote video is now available

2019-01-14 Thread Mike Franklin via Digitalmars-d-announce

On Monday, 14 January 2019 at 05:31:27 UTC, Paul Backus wrote:

When something like an object system is made part of the 
language (or at the very least, the standard library), it 
becomes a focal point [2] that the community can coordinate 
around. Due to the diverse, distributed nature of any 
programming-language community, trying to coordinate through 
explicit communication is not really a viable option, so having 
these kinds of focal points is very important if we want to be 
able to work together on anything.


[1] http://winestockwebdesign.com/Essays/Lisp_Curse.html
[2] https://en.wikipedia.org/wiki/Focal_point_(game_theory)


I think D's structs are a sufficient object system for such a 
focal point.  With design by introspection, `alias`, templates, 
`alias this`, `static if`, CTFE, mixins, and a few new D 
features, classes would be unnecessary.  Rust and Zig are pretty 
good examples of this.


D's implementation could even be improved to keep its runtime, 
yet still allow D to be used as I'm suggesting, without 
introducing any breakage for anyone.  I made some significant 
progress in that direction when I was working on the compiler in 
the 2017~2018 timeframe, but my abilities ultimately fell short, 
and I couldn't see a way forward without support.


Mike