Re: How do you use D?

2018-01-07 Thread Bastiaan Veelo via Digitalmars-d

On Thursday, 4 January 2018 at 15:52:15 UTC, Andre Pany wrote:
My hobby project is to create a bridge between the Embarcadero 
RAD Studion (Delphi) and D.
The idea is to use all functionality from Delphi and RAD Studio 
(GUI designer, thousands of libraries) without writing one 1 
line Pascal but write everything in D. At the moment I have 
already a windows demo application running, but I hope I can 
extend it to MacOS/Android/IPhone...

https://github.com/andre2007/delta-core-10-2-1
The package you see on github is written by hand. At the moment 
I am writing a Pascal Parser to
have everything generated by the Pascal Source files 
(VCL/Firemonkey/Indy/...) automatically.


Interesting indeed. I am working on putting my transcompiler up 
on github, but it is still very much a WIP, and will be for a 
long time.


The Extended Pascal PEG is available already, though: 
https://github.com/PhilippeSigaud/Pegged/tree/master/pegged/examples/extended_pascal


Bastiaan.


Re: How do you use D?

2018-01-06 Thread Andre Pany via Digitalmars-d

On Thursday, 4 January 2018 at 15:52:15 UTC, Andre Pany wrote:

On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote:

3) It is not possible to run DMD with the microsoft linker and 
libs without adapting the sc.ini.
That is a pain! In the build infrastructure I can only use the 
dmd zip archive and not
the setup routine. Also the adapation of the sc.ini I need to 
automate in a python script (XMake build plugin).

Python does not like the sc.ini... due to duplicate keys...

Just compare with LDC windows 64. You only have to extract the 
zip archive, call vcvarsall batch

file which sets the environment variables and thats it!
https://issues.dlang.org/show_bug.cgi?id=17967



It seems with the recent version of DMD (2.078.0) there is new 
feature which
solves this problem 
(https://dlang.org/changelog/2.078.0.html#vs-auto-detection)


That's fantastic! Thanks a lot!
I will try it and then close the issue.

Also the new options for customizing the code coverage seems like 
you heard my wishes

within my mind;)

Great work!

Kind regards
André




Re: How do you use D?

2018-01-06 Thread Andre Pany via Digitalmars-d

On Friday, 5 January 2018 at 00:38:05 UTC, Laeeth Isharc wrote:

On Thursday, 4 January 2018 at 15:52:15 UTC, Andre Pany wrote:

On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote:

[...]


I am working for a german software company. There are various 
programming languages used.
I created several non customer facing tools in D for the 
projects I am involved.
Also I tried to make advertisements for the D Programming 
Language by creating
internal wiki pages, recordings, video channel with screencams 
and telling everyone

about that nice programming language called D.

[...]


Very interesting. Have a look at pegged and the work done by 
Bastian who has also been building a pascal parser - for a 
different dialect.


Thanks for the info, I try to make my parser easiliy replacable 
by a better solution like pegged. For the moment I try to get the 
generator working and cleanup things later. I will also have a 
look at the work of Bastian.


Kind regards
André


Re: How do you use D?

2018-01-05 Thread Ola Fosheim Grøstad via Digitalmars-d

On Friday, 5 January 2018 at 11:49:44 UTC, Joakim wrote:
Yes, but when I pointed out that it's fine to think you're the 
best as long as you stay focused on bettering the flaws you 
still have,


I don't think that thinking you're the best brings anything but 
disadvantages, actually… Except when you are advertising perhaps.



What would be better, a million JS programmers with 10k great 
ones who "grow your infrastructure," or 150k D programmers with 
30k great ones doing the same?  Holding everything else 
equivalent proportionally, I'd say the latter.


Well, that is not the scale we are talking about here, but 
actually the former is the better if it means that you get twice 
as many that are paid to grow the eco system full time.  If you 
compare JavaScript with D on that metric you are closer to a 
1000:1 ratio or more in JavaScript's favour…  Not a fair 
comparison, but that's the reality that drives adoption.


When you reach critical mass within a specific domain a lot more 
people will be doing full-time eco system development… (Facebook, 
Google, Microsoft + a very large number of smaller companies).


The browser domain is very large, so not a fair comparison, of 
course.



speeding up a fundamentally slow and inefficient language 
design, which a core team of great programmers wouldn't have 
put out there in the first place. :P


Doesn't really matter in most cases. The proper metric is 
"sufficient for that task at hand". So, if many people are paid 
to do full-time eco system development that also means that the 
tool is sufficient for a large number of use cases…


You can do the same in browsers as people do with Python. Use 
something else for those parts where speed is paramount: stream 
from a server, use WebGL or WebAssembly, or use the browser 
engine cleverly. For instance I've implemented instant text 
search using CSS for even IE9, the browser engines were tuned for 
it, so it was fast.


People use the same kind of thinking with C++/D/Rust as well, i.e 
use the GPU when the CPU is too slow, or use a cluster, or use a 
database lookup…


Bother computer hardware and the very capable internet 
connections people have (at least in the west) are changing the 
equations.


It is easier to think about a single entity like a programming 
language with a small set of isolated great programmers writing 
an application that will run on an isolated CPU, but the world is 
much more complicated now than it used to be in terms of options 
and the environment for computing.



of programming.  As for "full stack," a meaningless term which 
I bet actually has less CS bachelors than the percentage I 
gave. ;)


I understand "full stack" to mean that you can quickly adapt to 
doing  database, server, client and GUI development.


Saying that most C++ programmers also use python implies that 
having two tools that you choose from is enough.  In that case, 
you're basically agreeing with me, despite your previous 
statements otherwise, as I was saying we can't expect most 
programmers to learn more than one tool, ie a single language.


No.  The programming style for Python is very different from C++. 
 Just because many C++ programmers also know Python, doesn't mean 
that they don't benefit from also knowing other languages. I bet 
many also know JavaScript and basic Lisp.


Could be, but that changes nothing about the reality that most 
programmers are just going to pick one language and some set of 
frameworks that are commonly used with it.


Ok. I personally don't find the standard libraries for Java and 
C# difficult to pick up as I go.   Google gives very good hits on 
those.


Application frameworks are more tedious, but they are also more 
quickly outdated. So you might have to learn or relearn one for a 
new project anyway.


That is the current reality, it doesn't matter what 
hypothetical kind of development you have in mind.


That's not an argument… That is just a unfounded claim.

D users are the exception that prove the rule, the much larger 
majority not using D because they're already entrenched in 
their language.


I don't really think D users are as exceptional as they often 
claim in these forums…


when you _couldn't_ to entrench themselves in that market.  And 
as I've pointed out to you before, they're still much more 
efficient, so until battery tech get much better, you're going 
to want to stick with those natively-compiled languages.


Not convinced. I think most people on smartphones spend a lot of 
time accessing browser-driven displays. Either in the actual 
browser or as a widget in an app…


It doesn't really matter, because the dominating activity isn't 
doing heavy things like theorem proving or data-mining…


As long as the code for display rendering is efficient, but that 
is mostly GPU.


Which of those python-glued GUI apps has become popular?  That 
was the question: I can find toy apps in any language, that 
nobody uses.


That's not right. Scripting is 

Re: How do you use D?

2018-01-05 Thread Joakim via Digitalmars-d
On Wednesday, 3 January 2018 at 17:50:01 UTC, Ola Fosheim Grøstad 
wrote:

On Wednesday, 3 January 2018 at 16:20:48 UTC, Joakim wrote:
These languages may all have these problems, but I don't see 
the connection to your original point about it not being good 
to think you're the best.


Hm?  I tried to say that it is not good to think that you have 
the best programmers. Or that you are satisfied with only 
appealing to the best programmers.


Yes, but when I pointed out that it's fine to think you're the 
best as long as you stay focused on bettering the flaws you still 
have, you responded with points about memory management and how 
C++ can't be a "competitive high level language," seemingly 
ignoring the topic at hand.  Good to see you address it below.


There are some assumptions about "best" in that attitude that 
isn't healthy for developing an ecosystem.  First of all, it 
might not be true, maybe the best programmers go elsewhere.  
Second of all, programmers generally don't start out as "best".
 And only appealing to experience programmers is not a good 
long term strategy.


Thinking you're the best doesn't imply that inexperienced 
programmers shouldn't show up, it just means they better think 
they have the ability to someday be similarly good. ;) And when 
you're smaller and trying to take on older languages with many 
more users, you need some identity to rally your much smaller 
group of insurgents: thinking you're the best is as good a 
rallying cry as any other.


Finally, D is hardly pitched as an "expert-only" language, given 
it makes pragmatic choices to use a GC by default and carry 
forward the popular C syntax.  It simply provides many more power 
tools that you can use, if you're so inclined to go farther and 
learn more.


Anyway, you probably have a lot more great programmers using 
Javascript than any small language, measured in absolute 
numbers. And when growing a eco system it is those absolute 
numbers that matters. It doesn't matter if 99% are not good if 
the other 1% can grow your infrastructure. And well, right now 
that means developers can be very productive in that eco system 
(e.g. TypeScript, Angular, React etc).


What would be better, a million JS programmers with 10k great 
ones who "grow your infrastructure," or 150k D programmers with 
30k great ones doing the same?  Holding everything else 
equivalent proportionally, I'd say the latter.  Of course, a very 
important factor could be how willing the million is to pay for 
better tools, as that will lead to great tools programmers from 
less-popular languages to swarm into JS for the money, but given 
how much of the time all these dev tools are free, particularly 
for JS, that doesn't matter as much.


Another huge factor is that you are fundamentally limited by the 
language, it doesn't matter how many great devs work on speeding 
up a fundamentally slow and inefficient language design, which a 
core team of great programmers wouldn't have put out there in the 
first place. :P


More programmers don't have a bachelors in CS than those who 
do.  I think you'll find the percentage who regularly use 
multiple languages is fairly low, let alone evaluating each 
one for each job.


I think it depends on what type of developement we are talking 
about. But I see a lot of fuzz about fullstack developers. Not 
sure if that fuzz translates into something at scale, but 
"full-stack" is at least something that is mentioned frequently.


It's a high percentage without CS bachelors in most subfields of 
programming.  As for "full stack," a meaningless term which I bet 
actually has less CS bachelors than the percentage I gave. ;)


Anyway, it is my impression that many C/C++ programmers also 
know Python and also have a good understanding of basic 
functional programming.


So two tools in the toolbox is enough?


Not sure what you mean by that. I meant to say that my 
impression is that most C/C++ programmers need a higher level 
language and also are capable of using other paradigms than 
what C/C++ encourages. Despite C++ being able to express a lot 
of the same things and also despite C++ being a language where 
you never really reach a full deep understanding of the 
language.


It's pretty simple what I mean: you were responding to my point 
that most don't really pick the best tool for the job, but have a 
single language that they try to hammer every nail with.  Saying 
that most C++ programmers also use python implies that having two 
tools that you choose from is enough.  In that case, you're 
basically agreeing with me, despite your previous statements 
otherwise, as I was saying we can't expect most programmers to 
learn more than one tool, ie a single language.


Your company is much more likely to bring in somebody with 
Java experience to write the Android portion.


Mostly because of the iOS/Android frameworks, not really 
because of the languages.


That's why I included such knowledge of the needed 

Re: How do you use D?

2018-01-04 Thread Laeeth Isharc via Digitalmars-d

On Thursday, 4 January 2018 at 15:52:15 UTC, Andre Pany wrote:

On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote:

[...]


I am working for a german software company. There are various 
programming languages used.
I created several non customer facing tools in D for the 
projects I am involved.
Also I tried to make advertisements for the D Programming 
Language by creating
internal wiki pages, recordings, video channel with screencams 
and telling everyone

about that nice programming language called D.

[...]


Very interesting. Have a look at pegged and the work done by 
Bastian who has also been building a pascal parser - for a 
different dialect.


Re: How do you use D?

2018-01-04 Thread Andre Pany via Digitalmars-d

On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote:
While the Orgs using D page is very nice ... I hoping to hear 
more personal stories ...


So

How do you use D?
In work, (key projects or smaller side projects)
in your side project, (github, links please)
just to learn something new? (I would easily argue that 
learning D will make you a better C++ programmer, maybe not the 
most efficient way, but I a sure it i very effective)


Did you introduce D to your work place? How? What challenges 
did you face?


What is you D setup at work, which compiler, which IDE?

And any other fun facts you may want to share :)


I am working for a german software company. There are various 
programming languages used.
I created several non customer facing tools in D for the projects 
I am involved.
Also I tried to make advertisements for the D Programming 
Language by creating
internal wiki pages, recordings, video channel with screencams 
and telling everyone

about that nice programming language called D.

To be able to write customer facing software in D I have to 
integrate the D
programming language into the existing build landscape 
(Jenkins/XMake). It was possible to

integrate D but there are rough edges.

Before I start I want to say a big thank you to Sönke and 
everyone involved
in the Dub project. Without Dub, the usage of D would not be 
possible at all!


1) There is a deprecated "version" attribute in dub.json. Dub now 
forces you to
specify the application version using git tags. As the build 
landscape itself creates git tags
which aren't Semver compatible, the deprecation of the "version" 
attribute is a great pain for me.
I solved the problem by "inventing" an own way to specify a 
version (version.txt file), which is a bad solution.

https://github.com/dlang/dub/issues/1301

2) During the official build no connection to the internet is 
allowed (e.g. code.dlang.org).
For the moment I have no possibility to run an inhouse dub 
repository.
This forces me to include source code of the dub packages I want 
to use, in my applications.


The company is running a big Maven repository in which I could 
store the dub packages
as zip files and which has http access to these artefacts. I 
would like to specify in my dub.json the url address to the zip 
file stored in the maven repository.

https://github.com/dlang/dub/issues/1134

3) It is not possible to run DMD with the microsoft linker and 
libs without adapting the sc.ini.
That is a pain! In the build infrastructure I can only use the 
dmd zip archive and not
the setup routine. Also the adapation of the sc.ini I need to 
automate in a python script (XMake build plugin).

Python does not like the sc.ini... due to duplicate keys...

Just compare with LDC windows 64. You only have to extract the 
zip archive, call vcvarsall batch

file which sets the environment variables and thats it!
https://issues.dlang.org/show_bug.cgi?id=17967

4) Every open source software I want to use, needs to go through 
an open source process before I can use it in customer facing 
software. Dub has a very annoying behavior. If I want to use a 
package A and it has an optional dependency to be package B, Dub 
fails if B is not available. That leads to the issue that even I 
do not want to use B, I need to go through the open source 
process for B due to the behavior of Dub.
I had this issue with the unit test frame work D-Unit. 
Fortunatelly the developer of D-Unit was kind and removed the 
optional dependency completely!

https://github.com/dlang/dub/issues/1272

I have also to say a big thank you to Adam D. Ruppe. He has 
created a great library with very helpful functionality like 
database access, http server, terminal, ...

and he is a very helpful and kind person.

My hobby project is to create a bridge between the Embarcadero 
RAD Studion (Delphi) and D.
The idea is to use all functionality from Delphi and RAD Studio 
(GUI designer, thousands of libraries) without writing one 1 line 
Pascal but write everything in D. At the moment I have already a 
windows demo application running, but I hope I can extend it to 
MacOS/Android/IPhone...

https://github.com/andre2007/delta-core-10-2-1
The package you see on github is written by hand. At the moment I 
am writing a Pascal Parser to
have everything generated by the Pascal Source files 
(VCL/Firemonkey/Indy/...) automatically.


Kind regards
André


Re: How do you use D?

2018-01-04 Thread Ola Fosheim Grøstad via Digitalmars-d

On Thursday, 4 January 2018 at 13:07:37 UTC, Mengu wrote:
there's also one other thing: atom, vs code, spotify, slack are 
all running on electron. does it make it a better platform than 
python?


I found this example of using electron with Python:
https://github.com/keybraker/electron-GUI-for-python

Could probably use the same model for any language.




Re: How do you use D?

2018-01-04 Thread Mengu via Digitalmars-d

On Wednesday, 3 January 2018 at 16:20:48 UTC, Joakim wrote:

On Wednesday, 3 January 2018 at 11:43:35 UTC, Paulo Pinto wrote:

On Wednesday, 3 January 2018 at 11:13:04 UTC, Joakim wrote:
On Wednesday, 3 January 2018 at 10:29:05 UTC, Ola Fosheim 
Grøstad wrote:
On Wednesday, 3 January 2018 at 09:56:48 UTC, Pjotr Prins 
wrote:

[...]


I perceived that there was a lot of hype around Python 15 
years ago or so. Now, universities are replacing Java with 
Python as the introduction language and Python is also 
becoming the defacto language for scientific programming. 
Python is basically getting critical mass and is now managing 
to take on Matlab and perhaps  to some extent even C++/Fortran.


Python has done well in those niches, but when is the last time 
you saw a popular GUI app written in Python?  That is the 
largest segment of the market, and Python has basically no 
uptake there.  Even Java got nowhere in the consumer GUI 
market, other than a few p2p apps like Vuze and the now-defunct 
Limewire, largely for piracy.




you could not be more wrong. there are tons of python gui 
applications. pygtk, pyqt and wxpython are great libraries that 
allows you to create desktop apps very easy and fast. D does not 
even have a good solution except for gtkD which is a one man 
show. if it wasn't for Mike we would not even have it. leadership 
does not care. remember qtd guys stopping everything because a 
bug was not getting fixed?


there's also one other thing: atom, vs code, spotify, slack are 
all running on electron. does it make it a better platform than 
python?


Re: How do you use D?

2018-01-04 Thread Ola Fosheim Grøstad via Digitalmars-d

On Wednesday, 3 January 2018 at 20:11:03 UTC, Pjotr Prins wrote:
I am thinking of Python here. I have to work in Python and 
there is no love lost.


If I write conservative Python code then I think PyCharm 
community edition is getting me closer to static typing, but 
providing type info as comments when deduction fails is quirky.


small group of people. I am partial to organizing a Guile/Guix 
day. Feel free to join in! 
https://libreplanet.org/wiki/Group:Guix/FOSDEM2018.


Sounds like a fun event!  (but I am nowhere near Belgium at that 
point in time).




Re: How do you use D?

2018-01-03 Thread Paulo Pinto via Digitalmars-d

On Wednesday, 3 January 2018 at 16:20:48 UTC, Joakim wrote:

On Wednesday, 3 January 2018 at 11:43:35 UTC, Paulo Pinto wrote:

On Wednesday, 3 January 2018 at 11:13:04 UTC, Joakim wrote:
On Wednesday, 3 January 2018 at 10:29:05 UTC, Ola Fosheim 
Grøstad wrote:
On Wednesday, 3 January 2018 at 09:56:48 UTC, Pjotr Prins 
wrote:

[...]


Good programmers aren't stuck on any single language and 
will pick the tool best suited for the job at hand.  Good 
programmers are also good at picking up new languages.


And who do you know who does this?  While I myself have 
espoused the idea of the best tool for the job in this forum, 
realistically, other than a small handful of coders, when 
does that ever happen?

[...]


Everyone at my employer, a few thousand of them doing 
enterprise consulting.


We specialize in a few large domains, and tend to jump between 
them every 6 months or a year, when switching projects.


On my case, full stack development across JVM and .NET 
languages, with C++ for low level coding.


How many of those few thousand are actually comfortable with 
C++ for low-level coding?  I think you've said before that it's 
not many. So okay, your colleagues switch between Java and C#, 
which is somewhat uncommon as many places are pure C# or Java 
shops, but those are the two most popular enterprise 
application languages, noted for their similarities.


You can hardly use this as an example of having a toolbox of 
languages and picking the best for the job, say Erlang for some 
high-concurrency microservice or ruby for an app you need to 
get up and running quickly.  You're just using two of the most 
popular business languages and deciding which based on what the 
customer wants.




Not all of them of them are comfortable with C++, that is true.

But they are comfortable with other languages, which I am not.

Notice that "JVM and .NET languages, with C++ for low level 
coding." was my own skillset, not everyone at the company.


Also I said JVM and .NET languages, not Java and C#. If you want 
me to be more precise, Java, Clojure, C#, F#, VB.NET and now 
getting into Kotlin due to future Android projects.


I also do JavaScript, PL/SQL, pgSQL on occasion, and have helped 
some iOS projects when an extra helping hand is needed and I am 
low on project requests.


I never like to specialize in any technology stack, it is the 
best way to outdate myself on a market that is fashion driven.


Of course there are lots of details I don't master in every 
programming language, but as Wirth puts it, it is all about 
mastering CS concepts, algorithms and data structures. Also why 
Knuth used his own invented Assembly instead of choosing any 
programming language.


To actually know every detail of programming language, or what 
its runtime library is capable of, there are books and web sites 
to get it from.


Soft skills and domain knowledge in each market are more relevant 
than knowing every single detail of a programming language.


Re: How do you use D?

2018-01-03 Thread codephantom via Digitalmars-d

On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote:

How do you use D?


Every programming language has an effect on how programmers think.

I use D to explore different ways of thinking.

Did you introduce D to your work place? How? What challenges 
did you face?


My work place is my home ;-) I introduce whatever I want, 
whenever I want, however I want.



What is you D setup at work, which compiler, which IDE?


I prefer as little bells and whistles as possible. I like seeing 
just the code. So plain text editors, and commandline.



And any other fun facts you may want to share :)


Voyager 2 was launched by NASA in 1977. Sometime after 2025 it 
will not have enough electricity to power its instruments. 
Another 14,000..28,000 years after this, it will emerge from the 
Oort cloud that surrounds our solar system.


https://solarsystem.nasa.gov/planets/oort



Re: How do you use D?

2018-01-03 Thread Binghoo Dang via Digitalmars-d

On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote:


How do you use D?


I use D for developing an RFID tracker tool, to track some tools 
for security purpose.
It's basically a GUI application with RFID reader module using 
serial-port read/write. for the GUI, I use GtkD, for Database 
operation, I use entity. and It will have a web service 
implemented using vibe.d




Did you introduce D to your work place? How? What challenges 
did you face?




No, I used to introduce things I consider great or wonderful to 
others. But now, I would not introduce anything to others. 
Suitable tool for suitable jobs, and people have their own tastes.



What is you D setup at work, which compiler, which IDE?



I'm using D via VSCode + code-d plugin, and for compiler, I use 
dmd on linux, and ldc2 on windows. Both of them works great for 
my GTK GUI.


The VScode+Code-d sometime seems too slow or did not correctly 
detect a compilation process. But it's enough for me, I got 
autocomplete works great.





Re: How do you use D?

2018-01-03 Thread Pjotr Prins via Digitalmars-d
On Wednesday, 3 January 2018 at 18:36:29 UTC, Ola Fosheim Grøstad 
wrote:
Then you have this all the psychological effect that if people 
have invested significant time, resources and/or emotion into 
something then they will defend it and refuse to see flaws even 
when faced with massive evidence against it. So the hype will 
be sustained by a vocal set of believers if you have reached  a 
large enough audience with your messaging before the product is 
launched…?


Aye.

Then it tapers off in a long tail… or the believers will make 
it work somehow, at least good enough to not be a lot worse 
than the alternatives.


I am thinking of Python here. I have to work in Python and there 
is no love lost.


Regarding hype. I think it is fairly easy to create a new 
language these days - thanks to LLVM and JVM targets. New 
languages pop up every other week it appears. Getting it right, 
however, takes a lot of time. D proves how much it takes to 
create a great (complex) language and deal with most corner 
cases. Writing a performing compiler (run time and compile time) 
is no mean feat.


docs. I just disagree with the aim of trying to make D a hyped 
language.


Yes, that is a bit late, I think. You would have to launch D3 
or something to get a hype effect (at least in the west).


I think D is too powerful/complicated to become a target for 
millions. The irony does not escape me, with many C++/JVM 
programmers out there, that D is a great replacement for C++ and 
many JVM languages. I did a stretch of Scala and I think D is the 
superior language, even if it misses out on some nifty Scala 
features. But that does not mean people will take to D in droves. 
Scala is bigger.


Anyway, my opinions do not matter that much. Suffice to say I 
enjoy D and I think it is perfect for our large data processing 
projects.


A language like GNU Guile has only a few developers - and they 
do great work.


But is Guile used much outside GNU affiliated projects?


No. Not that I am aware. Still, it is an amazing effort by a 
small group of people. I am partial to organizing a Guile/Guix 
day. Feel free to join in! 
https://libreplanet.org/wiki/Group:Guix/FOSDEM2018.


Pj.


Re: How do you use D?

2018-01-03 Thread Fra Mecca via Digitalmars-d

On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote:
While the Orgs using D page is very nice ... I hoping to hear 
more personal stories ...


So

How do you use D?
In work, (key projects or smaller side projects)
in your side project, (github, links please)
just to learn something new? (I would easily argue that 
learning D will make you a better C++ programmer, maybe not the 
most efficient way, but I a sure it i very effective)


Did you introduce D to your work place? How? What challenges 
did you face?


What is you D setup at work, which compiler, which IDE?

And any other fun facts you may want to share :)


I am a student that also does research at different institutions 
(maninly Italy and US).
I use D for everything that is programming related and when I am 
not paired on a team.
Mainly it has been backend stuff and D has been up to the 
challenge.


My setup is neovim + deoplete (and other dev related plugins)

I also use D for sideprojects (https://github.com/framecca)



Re: How do you use D?

2018-01-03 Thread Ola Fosheim Grøstad via Digitalmars-d

On Wednesday, 3 January 2018 at 12:15:13 UTC, Pjotr Prins wrote:
they come if they need it. I remember a Google engineer telling 
me that he was tired of people bringing up D every time. That 
was 10 years ago. D has had every chance to become a hype ;)


There was a lot of hype around D about 10 years ago,  because of 
slashdot?  (slashdot doesn't seem to work as a hub in that way 
anymore?) Geeky people had even heard about it in job interviews… 
But the compiler was a bit too buggy for production use and the 
GC was… a problem for what it was position itself as: a 
replacement for C++.


There are other languages that also position themselves as C++ 
replacements, such as http://loci-lang.org/  , but very few have 
heard of those. So yeah D has enjoyed more hype than most 
languages in this domain, actually.



why. What is it that makes a hyped language?


Well, depends on the hype, I guess.  But you probably need some 
kind of "prophetic" message that will "remove all pain". Since 
C++98 was not painless, there was a market for a "prophetic 
message". Much less so now. Also you need a "tower for 
announcing" like Slashdot. I don't think reddit is anywhere near 
as effective as Slashdot used to be. Too fragmented.


Rust received hype because it would make writing fast programs 
"painless", just wait, it isn't quite ready yet, but we'll get 
there. So they hype prophecies were there before Rust was 
actually useful.


I don't think Go was all that hyped up. It received a lot of 
attention at first release, but was underwhelming in terms of 
features. But it received a lot of attention when being used for 
containers, I believe. So more a niche utility marketing effect 
in terms of buzz.


So hype seems to come with a language being used for some new way 
of doing something (even though the language might not be 
significant in that regard, e.g. Go). Or the hype seems to come 
before the product is actually useful, not quite like a pyramid 
scheme, but close… Oh yeah, bitcoin too. Prophetic, but not 
particularly useful… yet, but just wait and see.


So I guess hype comes from:

1. People having an emotional desire to be free from something.

2. A tech delivering some kind of prophetic message one can 
imagine will provide some kind of catharsis if one just believe 
in the outcome.


Then you have this all the psychological effect that if people 
have invested significant time, resources and/or emotion into 
something then they will defend it and refuse to see flaws even 
when faced with massive evidence against it. So the hype will be 
sustained by a vocal set of believers if you have reached  a 
large enough audience with your messaging before the product is 
launched…?


Then it tapers off in a long tail… or the believers will make it 
work somehow, at least good enough to not be a lot worse than the 
alternatives.


docs. I just disagree with the aim of trying to make D a hyped 
language.


Yes, that is a bit late, I think. You would have to launch D3 or 
something to get a hype effect (at least in the west).


A language like GNU Guile has only a few developers - and they 
do great work.


But is Guile used much outside GNU affiliated projects?




Re: How do you use D?

2018-01-03 Thread Ola Fosheim Grøstad via Digitalmars-d

On Wednesday, 3 January 2018 at 16:20:48 UTC, Joakim wrote:
These languages may all have these problems, but I don't see 
the connection to your original point about it not being good 
to think you're the best.


Hm?  I tried to say that it is not good to think that you have 
the best programmers. Or that you are satisfied with only 
appealing to the best programmers.


There are some assumptions about "best" in that attitude that 
isn't healthy for developing an ecosystem.  First of all, it 
might not be true, maybe the best programmers go elsewhere.  
Second of all, programmers generally don't start out as "best".  
And only appealing to experience programmers is not a good long 
term strategy.


Anyway, you probably have a lot more great programmers using 
Javascript than any small language, measured in absolute numbers. 
And when growing a eco system it is those absolute numbers that 
matters. It doesn't matter if 99% are not good if the other 1% 
can grow your infrastructure. And well, right now that means 
developers can be very productive in that eco system (e.g. 
TypeScript, Angular, React etc).



More programmers don't have a bachelors in CS than those who 
do.  I think you'll find the percentage who regularly use 
multiple languages is fairly low, let alone evaluating each one 
for each job.


I think it depends on what type of developement we are talking 
about. But I see a lot of fuzz about fullstack developers. Not 
sure if that fuzz translates into something at scale, but 
"full-stack" is at least something that is mentioned frequently.



Anyway, it is my impression that many C/C++ programmers also 
know Python and also have a good understanding of basic 
functional programming.


So two tools in the toolbox is enough?


Not sure what you mean by that. I meant to say that my impression 
is that most C/C++ programmers need a higher level language and 
also are capable of using other paradigms than what C/C++ 
encourages. Despite C++ being able to express a lot of the same 
things and also despite C++ being a language where you never 
really reach a full deep understanding of the language.


Your company is much more likely to bring in somebody with Java 
experience to write the Android portion.


Mostly because of the iOS/Android frameworks, not really because 
of the languages.


Or rather, the Java language shouldn't be the stumbling block, 
but both of iOS and Android are rather bloated frameworks that 
takes time getting into. Which I think it is intentional. Both 
Apple and Google want developers to be dedicated experts on their 
platform and seems to deliberately go for changes that prevent 
cross platform tooling.


It is unrealistic to expect the vast majority of programmers to 
do any more than use one language most of the time.


I don't know. Depends on what kind of development we are talking 
about.


This actually argues for a single language: you're going to 
spend a ton of time tracking all those shifting frameworks so 
you won't have time for a new language too, but at least you 
won't have to learn a new language every time you pick up the 
new js framework of the day.


I think there is another way, but it isn't available yet.

Program transliteration and software synthesis should over time 
be able to offset some of these issues.


Most imperative languages are fairly similar.  Most of the code 
we write, whether it is in Python, C+ or D would have a fairly 
similar structure.  In some sections you get something very 
different, but I don't think that is dominating.


(Functional and logic programming tend to lead to more different 
patterns though.)


The ongoing churn may help new languages with new users and 
companies, don't think it helps with users who already know a 
language well.


I don't know. Seems that many in these forums have done work in 
Java, Go, Python, Rust and C++.


Seems like an oxymoron, tech changes so fast that I don't see 
how anything could be timeless, even if you really mean "will 
still be the same 20 years from now." ;)


Right, but digital computing is a relatively new invention (and 
well, even electricity is relatively new ;-).  Over time one 
would think that something "timeless" would establish itself. But 
for now we can just say "stable".


There clearly are some frameworks that have been relatively 
stable. Like matlab. I think that is because matlab has tried to 
closely model the domain that scientists have been trained in 
(linear algebra). But it is interesting that Python is making 
inroads there. That matlab is now perceived as not having good 
enough abstraction mechanisms, perhaps.


On the other hand, the mathematical field of logic is also 
relatively new as it is conceptualized today, and some people are 
exploring paradigms such as probabilistic programming languages 
and what not… So right, "timeless" is not realistic at the moment 
as the basic foundation is still quite new and we are still 
learning how to make 

Re: How do you use D?

2018-01-03 Thread Joakim via Digitalmars-d

On Wednesday, 3 January 2018 at 11:43:35 UTC, Paulo Pinto wrote:

On Wednesday, 3 January 2018 at 11:13:04 UTC, Joakim wrote:
On Wednesday, 3 January 2018 at 10:29:05 UTC, Ola Fosheim 
Grøstad wrote:
On Wednesday, 3 January 2018 at 09:56:48 UTC, Pjotr Prins 
wrote:

[...]


Good programmers aren't stuck on any single language and will 
pick the tool best suited for the job at hand.  Good 
programmers are also good at picking up new languages.


And who do you know who does this?  While I myself have 
espoused the idea of the best tool for the job in this forum, 
realistically, other than a small handful of coders, when does 
that ever happen?

[...]


Everyone at my employer, a few thousand of them doing 
enterprise consulting.


We specialize in a few large domains, and tend to jump between 
them every 6 months or a year, when switching projects.


On my case, full stack development across JVM and .NET 
languages, with C++ for low level coding.


How many of those few thousand are actually comfortable with C++ 
for low-level coding?  I think you've said before that it's not 
many. So okay, your colleagues switch between Java and C#, which 
is somewhat uncommon as many places are pure C# or Java shops, 
but those are the two most popular enterprise application 
languages, noted for their similarities.


You can hardly use this as an example of having a toolbox of 
languages and picking the best for the job, say Erlang for some 
high-concurrency microservice or ruby for an app you need to get 
up and running quickly.  You're just using two of the most 
popular business languages and deciding which based on what the 
customer wants.


On Wednesday, 3 January 2018 at 14:08:20 UTC, Ola Fosheim Grøstad 
wrote:

On Wednesday, 3 January 2018 at 11:13:04 UTC, Joakim wrote:
Not necessarily, it all depends if thinking you're the best 
leads to taking your eye off the ball of improving and 
acknowledging your problems, which I see little indication of 
here.


Well, if a language is used for a narrow set of application 
areas then one might be able to have a deep understanding of 
what the challenges are.


In general I think it is difficult to understand what 
challenges people have in areas one have little familiarity 
with. I've seen this time and time again in discussions about 
memory management.


I think both Rust and D suffers a bit from this.  And likewise, 
I think C++ designers are making a mistake by presuming that 
C++ can become a competitive high level language.


So it is a general challenge in language design, I think.


These languages may all have these problems, but I don't see the 
connection to your original point about it not being good to 
think you're the best.


And who do you know who does this?  While I myself have 
espoused the idea of the best tool for the job in this forum, 
realistically, other than a small handful of coders, when does 
that ever happen?


I don't know how many…  But if you have a good understanding of 
a language like Java and C/machine language, and also have the 
equivalent of a bachelor in comp sci, then I think you should 
be able to pick up just about any language in relatively short 
time (except C++ where the know-how is less accessible for 
various reasons).


More programmers don't have a bachelors in CS than those who do.  
I think you'll find the percentage who regularly use multiple 
languages is fairly low, let alone evaluating each one for each 
job.


Anyway, it is my impression that many C/C++ programmers also 
know Python and also have a good understanding of basic 
functional programming.


So two tools in the toolbox is enough?

I recently read some article linked off proggit that stated 
the reality much better: programmers learn a language that 
suits them, then use it everywhere they can.


Well. Take an iOS programmer. She/he would start out with 
Objective-C, which requires understanding of C. Then maybe you 
also need to interface with C++ in order to use some library. 
Then you switch over to Swift… Then you need to port the app to 
Android and have to pick up some Java. Then somebody want to 
turn it into a webapp and you pick up TypeScript… Then someone 
needs interfacing with C# for a web-service and you pick up a 
bit of that…


As long as you are interfacing with other systems you often 
achieve more by learning enough to use something written in 
another language than by picking a suboptimal solution that use 
your favourite language.


If you're just stitching together a bunch of libraries written by 
others, sure, you can pick up enough to interface them.  But we 
were talking about switching between significant use of each 
language based on the job, which almost never happens.  Your 
company is much more likely to bring in somebody with Java 
experience to write the Android portion.


But sure, if I need to hack together something I would usually 
think about using Python first, mostly because it is so 
mallable for smaller tasks. 

Re: How do you use D?

2018-01-03 Thread Ola Fosheim Grøstad via Digitalmars-d

On Wednesday, 3 January 2018 at 11:13:04 UTC, Joakim wrote:
Not necessarily, it all depends if thinking you're the best 
leads to taking your eye off the ball of improving and 
acknowledging your problems, which I see little indication of 
here.


Well, if a language is used for a narrow set of application areas 
then one might be able to have a deep understanding of what the 
challenges are.


In general I think it is difficult to understand what challenges 
people have in areas one have little familiarity with. I've seen 
this time and time again in discussions about memory management.


I think both Rust and D suffers a bit from this.  And likewise, I 
think C++ designers are making a mistake by presuming that C++ 
can become a competitive high level language.


So it is a general challenge in language design, I think.

Agreed with much of this: they may be better at various things, 
but those things don't matter much of the time.


Yes, I don't think any programmers are "best", some people are 
not at all suited for programming or lack some general knowledge, 
but otherwise I think we only have good programmers that are 
"best" in some very narrow domains.


And who do you know who does this?  While I myself have 
espoused the idea of the best tool for the job in this forum, 
realistically, other than a small handful of coders, when does 
that ever happen?


I don't know how many…  But if you have a good understanding of a 
language like Java and C/machine language, and also have the 
equivalent of a bachelor in comp sci, then I think you should be 
able to pick up just about any language in relatively short time 
(except C++ where the know-how is less accessible for various 
reasons).


Anyway, it is my impression that many C/C++ programmers also know 
Python and also have a good understanding of basic functional 
programming.


I recently read some article linked off proggit that stated the 
reality much better: programmers learn a language that suits 
them, then use it everywhere they can.


Well. Take an iOS programmer. She/he would start out with 
Objective-C, which requires understanding of C. Then maybe you 
also need to interface with C++ in order to use some library. 
Then you switch over to Swift… Then you need to port the app to 
Android and have to pick up some Java. Then somebody want to turn 
it into a webapp and you pick up TypeScript… Then someone needs 
interfacing with C# for a web-service and you pick up a bit of 
that…


As long as you are interfacing with other systems you often 
achieve more by learning enough to use something written in 
another language than by picking a suboptimal solution that use 
your favourite language.


But sure, if I need to hack together something I would usually 
think about using Python first, mostly because it is so mallable 
for smaller tasks. Not really because it is my preferred 
language. I don't really like dynamic typing in principle, but it 
is productive for smaller tasks and prototyping.


Given how much effort it takes to know a language platform 
well, not only the language itself but all the libraries and 
their bottlenecks, and most programmers' limited motivation to 
pick up new tech, that is the only approach that makes sense 
for the vast majority.


Well, but libraries and frameworks are unfortunately not 
permanent. They are shifting relatively fast. Heck, even the Java 
standard library contains many things that you don't want to use, 
because there is something better in there.


So if you start on a new project there is often a more productive 
framework you could go with.


And that might require adopting a new language as well.

This is of course good for new languages. If this was not the 
case then it would be near impossible for new languages to 
establish themselves.


But it can also be taken as a sign that we don't have the 
languages and tooling that enable writing really good timeless 
libraries and frameworks.


Maybe that will change in the future, I guess we now are reaching 
a point where neither CPU or memory are the limiting factor for 
most mundane applications. So maybe that will cause a more stable 
infrastructure to emerge… but probably not in our lifetime. I 
think we still have a long way to go in even simple areas such as 
GUI frameworks.



Yes, but if you're only hyped because you were stowed away on a 
popular platform, ie javascript in the browser, or are easy to 
learn, Go from what I hear, then the technical limitations of 
the language put a ceiling on how high you can go.  You'll get 
to that ceiling faster, but then you're stuck there.


I perceived that there was a lot of hype around Python 15 years 
ago or so. Now, universities are replacing Java with Python as 
the introduction language and Python is also becoming the defacto 
language for scientific programming. Python is basically getting 
critical mass and is now managing to take on Matlab and perhaps  
to some extent even C++/Fortran.



Re: How do you use D?

2018-01-03 Thread Pjotr Prins via Digitalmars-d
On Wednesday, 3 January 2018 at 10:29:05 UTC, Ola Fosheim Grøstad 
wrote:

On Wednesday, 3 January 2018 at 09:56:48 UTC, Pjotr Prins wrote:
average ones. And D must be there. Similar to the Haskell and 
Lisp communities we have the luxury of dealing with the best 
programmers out there.


This attitude is toxic, and it isn't true either.


We differ in opinion here.

Good programmers aren't stuck on any single language and will 
pick the tool best suited for the job at hand.  Good 
programmers are also good at picking up new languages.


Very true. Some languages are harder to learn and apply then 
others. Few C++ programmers make great Lisp or Haskell 
programmers.


Hype leads to critical mass, which leads to higher productivity 
because you get better tooling, better documentation (including 
stack overflow), better libraries and better portability.


I don't disagree. I am reacting to other messages where people 
assert that we need to improve this and that for the sake of 
popularity. Maybe it is toxic not to care too much about what 
other people want/need and perhaps I am wrong. But I don't think 
D will become a hyped language, so we may as well stop wanting to 
be one. D is a language for software engineers - and they come if 
they need it. I remember a Google engineer telling me that he was 
tired of people bringing up D every time. That was 10 years ago. 
D has had every chance to become a hype ;)


Erlang has been a non-hype language for a long time. Now the 
success of whatsapp made it a lot more interesting to startups 
and therefore it is growing. Even so, I don't think it will ever 
become a hype. If you program in Erlang you can appreciate why. 
What is it that makes a hyped language?


That should not stop us from answering questions and writing 
docs. I just disagree with the aim of trying to make D a hyped 
language.


The only time where it is an advantage to be small is when your 
language design is changing. Once the language design is stable 
there is only disadvantages in not having critical mass.


A language like GNU Guile has only a few developers - and they do 
great work.


D and its community are not small in my book. Large enough not to 
be endangered and still keep moving forward. Hard but soft. About 
right.





Re: How do you use D?

2018-01-03 Thread Paulo Pinto via Digitalmars-d

On Wednesday, 3 January 2018 at 11:13:04 UTC, Joakim wrote:
On Wednesday, 3 January 2018 at 10:29:05 UTC, Ola Fosheim 
Grøstad wrote:
On Wednesday, 3 January 2018 at 09:56:48 UTC, Pjotr Prins 
wrote:

[...]


Good programmers aren't stuck on any single language and will 
pick the tool best suited for the job at hand.  Good 
programmers are also good at picking up new languages.


And who do you know who does this?  While I myself have 
espoused the idea of the best tool for the job in this forum, 
realistically, other than a small handful of coders, when does 
that ever happen?

[...]


Everyone at my employer, a few thousand of them doing enterprise 
consulting.


We specialize in a few large domains, and tend to jump between 
them every 6 months or a year, when switching projects.


On my case, full stack development across JVM and .NET languages, 
with C++ for low level coding.


Occasionally there are some projects using all of them, for 
example, JVM on the backend with a native desktop GUI developed 
in WPF.




Re: How do you use D?

2018-01-03 Thread Joakim via Digitalmars-d
On Wednesday, 3 January 2018 at 10:29:05 UTC, Ola Fosheim Grøstad 
wrote:

On Wednesday, 3 January 2018 at 09:56:48 UTC, Pjotr Prins wrote:
average ones. And D must be there. Similar to the Haskell and 
Lisp communities we have the luxury of dealing with the best 
programmers out there.


This attitude is toxic


Not necessarily, it all depends if thinking you're the best leads 
to taking your eye off the ball of improving and acknowledging 
your problems, which I see little indication of here.


Haskell might attract programmers who are more interested in 
math, but in practical programming formal math is only 1% of 
what you need (99% of your time is not spent on things that 
require deep understanding of math).   I don't see any evidence 
of Lisp programmers being better than other programmers either.


Agreed with much of this: they may be better at various things, 
but those things don't matter much of the time.


Good programmers aren't stuck on any single language and will 
pick the tool best suited for the job at hand.  Good 
programmers are also good at picking up new languages.


And who do you know who does this?  While I myself have espoused 
the idea of the best tool for the job in this forum, 
realistically, other than a small handful of coders, when does 
that ever happen?


I recently read some article linked off proggit that stated the 
reality much better: programmers learn a language that suits 
them, then use it everywhere they can.  Ruby programmers can't 
write an OS kernel, so they don't bother with that.  They may 
dabble with a few other languages, but unless forced to by a new 
job or project, they stick with what they know.


Given how much effort it takes to know a language platform well, 
not only the language itself but all the libraries and their 
bottlenecks, and most programmers' limited motivation to pick up 
new tech, that is the only approach that makes sense for the vast 
majority.



Hyped languages are for suckers.


Hype leads to critical mass, which leads to higher productivity 
because you get better tooling, better documentation (including 
stack overflow), better libraries and better portability.


Yes, but if you're only hyped because you were stowed away on a 
popular platform, ie javascript in the browser, or are easy to 
learn, Go from what I hear, then the technical limitations of the 
language put a ceiling on how high you can go.  You'll get to 
that ceiling faster, but then you're stuck there.


But you don't need lots of users to get hype.  You can focus on 
a narrow domain and be the "hyped language" within a single 
realm.


Another way to get stuck, you're highly specialized to a niche 
and can't break out.  I'm not knocking this approach- it has 
worked well for many languages nowadays- it's just not what D is 
going after.


The only time where it is an advantage to be small is when your 
language design is changing. Once the language design is stable 
there is only disadvantages in not having critical mass.


And since when has the D language design been stable? ;) I don't 
think any language can call themselves done changing these days, 
look at how often C# has had to update itself and put out major 
versions.


And who's to say D doesn't have critical mass?  I'd say 100-200k 
users (my math based on the chart below: 2k downloads/day of dmd 
X 60 days between major versions + ldc/gdc and external 
downloads) is a significant market:


http://erdani.com/d/downloads.daily.png

It's not hyped or popular, but you can leverage that base to get 
bigger, particularly since you didn't sell out and specialize to 
get that base in the first place.


Re: How do you use D?

2018-01-03 Thread Ola Fosheim Grøstad via Digitalmars-d

On Wednesday, 3 January 2018 at 09:56:48 UTC, Pjotr Prins wrote:
average ones. And D must be there. Similar to the Haskell and 
Lisp communities we have the luxury of dealing with the best 
programmers out there.


This attitude is toxic, and it isn't true either.  Sure, Haskell 
might attract programmers who are more interested in math, but in 
practical programming formal math is only 1% of what you need 
(99% of your time is not spent on things that require deep 
understanding of math).   I don't see any evidence of Lisp 
programmers being better than other programmers either.


Good programmers aren't stuck on any single language and will 
pick the tool best suited for the job at hand.  Good programmers 
are also good at picking up new languages.




Hyped languages are for suckers.


Hype leads to critical mass, which leads to higher productivity 
because you get better tooling, better documentation (including 
stack overflow), better libraries and better portability.


But you don't need lots of users to get hype.  You can focus on a 
narrow domain and be the "hyped language" within a single realm.



The only time where it is an advantage to be small is when your 
language design is changing. Once the language design is stable 
there is only disadvantages in not having critical mass.




Re: How do you use D?

2018-01-03 Thread Pjotr Prins via Digitalmars-d

How do you use D?


I write code for a living.

We use D for writing the next generation critical large data 
software. Sequencing centers churn out TBs of data per day and 
writing code in Python does not cut it. Even JVM tools are 
problematic when it comes to raw performance. Sambamba, written 
in D, has been doing heavy lifting since 2014 and is running 
every second of the day somewhere on an HPC diagnosing cancer.


Did you introduce D to your work place? How? What challenges 
did you face?


Not that many as we make up the rules. Great programmers tend to 
like D once they grok it.
Writing idiomatic D takes time though. I have written significant 
code in a great number of languages, including Ruby, Python, C++, 
Perl (ugh), Lisp, Elixir, Erlang, Scala... I am in a position to 
state what I like. Currently I favor Ruby for the quick and 
dirty, Elixir for web programming and D for data processing and 
raw speed. It is the fastest car in my garage. It would be C++ if 
I had no D - and I am very glad I don't have to write new code in 
C++. There are reasons I still use other languages. Ruby feels 
just slightly more productive and Elixir has some great features 
too for a functional programming language. I have absolutely no 
incentive to program in Go or Rust though I sometimes have to 
read such code. I think Go is a royal pain.



What is you D setup at work, which compiler, which IDE?


ldc and emacs. GNU Guix handles all dependencies.


And any other fun facts you may want to share :)


Started late programming 70s after a stretch playing chess. Been 
coding ever since. My first encounters with Walter were on 
Compuserve when I was using Zortech and Symantec C++ compilers. 
Obviously I am glad we moved forward, tooling-wise.


On Sunday, 6 August 2017 at 05:39:36 UTC, Laeeth Isharc wrote:
similar with programming language choices and such.  Its way 
better to appeal to people who make up their own mind and bear 
the consequences then to those who have to cover their behinds 
by getting the right ticks in the boxes because the are never 
going to be earlier adopters except through some unfortunate 
accident - because you also don't want such people as early 
adopters!


I think that is very true. I can understand why the people 
involved in D want it to be popular - to become famous, rich, or 
if only to convince those at work. But I think it is fine to 
target thousands of great programmers, rather than millions of 
average ones. And D must be there. Similar to the Haskell and 
Lisp communities we have the luxury of dealing with the best 
programmers out there.


Hyped languages are for suckers.

Even so, if you are a D programmer and your work environment does 
not allow you to use D, 'popularizing' D is not going to help 
that (how do you popularize a powerful language?). Grind your 
teeth and write in whatever the job dictates (I do that too), but 
sneak in your best work in D without telling anyone. There are 
always opportunities. Don't complain. Move on. That is my advice.


I predict D has enough momentum to stay and be a better 
alternative to C/C++/JVM. Which is the main thing. Even when 
Walter and Andrei would drop out, for whatever reason, D will 
continue. There are some language features I would like, but to 
be honest I can live without them.


Re: How do you use D?

2017-08-07 Thread Eugene Wissner via Digitalmars-d

On Tuesday, 8 August 2017 at 01:20:37 UTC, Nicholas Wilson wrote:

On Monday, 7 August 2017 at 19:54:51 UTC, Eugene Wissner wrote:
Yes. Everything I know about low-level network programming, 
assembler, memory management, I learned from my working on my 
library, tanya.


OT but tanya's readme has a wrong comment:

```
int i = arr[7]; // Access 7th element.
```

should be 8th element.


Fixed, thanks!


Re: How do you use D?

2017-08-07 Thread Nicholas Wilson via Digitalmars-d

On Monday, 7 August 2017 at 19:54:51 UTC, Eugene Wissner wrote:
Yes. Everything I know about low-level network programming, 
assembler, memory management, I learned from my working on my 
library, tanya.


OT but tanya's readme has a wrong comment:

```
int i = arr[7]; // Access 7th element.
```

should be 8th element.


Re: How do you use D?

2017-08-07 Thread Eugene Wissner via Digitalmars-d
I'm a self-employed web-developer, mostly working with PHP and 
Javascript and markup languages like HTML and stuff like CSS and 
SQL databases.


On the other hand at school (in Russia) we began with QBasic, 
then Turbo Pascal and could choose if we use Turbo Pascal or 
something else for solving class excercises. It was the first 
time I learned C. After school I continued to use C for some open 
source projects I was participating for fun. Two years ago I 
started to look for a language that gives you a control over the 
system like C but at the same time has high-level constructs I 
was fimilar with from PHP. Here D comes into play (my second 
choice would be Haskell and Rust).



How do you use D?
In work, (key projects or smaller side projects)
I'm living now in Germany and a year ago I found a job, where I 
can use D all the time, but I still continue doing 
web-development with PHP, Javascript and & Co.



in your side project, (github, links please)
Still my primary interest on D was to replace C in my projects, I 
started to work on a library that would give me C++ with the 
syntax of a modern high-level programming language. See 
https://github.com/caraus-ecms/tanya.


just to learn something new? (I would easily argue that 
learning D will make you a better C++ programmer, maybe not the 
most efficient way, but I a sure it i very effective)
Yes. Everything I know about low-level network programming, 
assembler, memory management, I learned from my working on my 
library, tanya.


Did you introduce D to your work place? How? What challenges 
did you face?
Though it is not reallistic to replace PHP and js with D for 
small end customers I want to start some web-service based on D 
on my own. After some work on tanya, I'm planning to continue to 
work on my web-framework, I've started before: 
https://github.com/caraus-ecms/caraus.



What is you D setup at work, which compiler, which IDE?

neovim, dmd and gcc on Slackware Linux.


Re: How do you use D?

2017-08-06 Thread solidstate1991 via Digitalmars-d

On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote:
While the Orgs using D page is very nice ... I hoping to hear 
more personal stories ...


So

How do you use D?


For personal projects, using a mixed form of OOP and procedural 
programming (I won't make static classes if I'm not forced to, 
like in Java and C#).



In work, (key projects or smaller side projects)


I almost got a job at Sociomantic, that's all. If I were asked to 
develop someone a PHP based website, I'd probably would use 
vibe.D instead, while keep telling them that how much I had to 
work with PHP.



in your side project, (github, links please)


Projects that have been publicized:
-PixelPerfectEngine: 
https://github.com/ZILtoid1991/pixelperfectengine A 2D engine 
mainly for retro games, once I get a way for efficient 2D 
acceleration it probably could easily handle native HD 
resolutions.
-OpenRG: https://github.com/ZILtoid1991/OpenRG A response to the 
abandonment of easily usable raster graphics acceleration, will 
be written in DCompute for easy portability. I currently need 
more people on planning stuff, mainly for embedded systems.


Currently nonpublic projects:
-libPCM: A Library for converting and playing back various PCM 
and ADPCM formats. Currently having issues with finding usable 
ADPCM codec guides.
-libLZHAM: Compression algorithm using an obscure algorithm found 
on github with my own enhancements, like an archive file format. 
It has speeds comparable to ZLIB, but almost the same compression 
rate as LZMA (sometimes it even surpasses it). DCompute version 
is planned.


just to learn something new? (I would easily argue that 
learning D will make you a better C++ programmer, maybe not the 
most efficient way, but I a sure it i very effective)


I pretty much learned C (and C#) through D.

Did you introduce D to your work place? How? What challenges 
did you face?


I introduced it in my college, I even made an OOP project using D 
as I no longer liked Java. My teacher could instantly read it, 
since he was pretty good with C++, Java, C#, and many others.



What is you D setup at work, which compiler, which IDE?


VS2015, DMD for x86 (thinking on working on an ARM codegen), LDC 
for everything else (engine will have several optimizations for 
single board computers like rPi, and maybe even mobile phones).


Re: How do you use D?

2017-08-06 Thread Bastiaan Veelo via Digitalmars-d

On Sunday, 6 August 2017 at 05:39:36 UTC, Laeeth Isharc wrote:

[...]


Thanks for sharing your views, a nice read.

Bastiaan.


Re: How do you use D?

2017-08-06 Thread Mike Parker via Digitalmars-d

On Sunday, 6 August 2017 at 06:49:45 UTC, Ecstatic Coder wrote:
For instance, D is my favorite language, and I try to promote 
it as much as I can (reddit, stackoverflow, even on the go-nuts 
google groups).


But professionally I still use C++ (#3 TIOBE), PHP (#7), Go 
(#16) and now Dart (#20).


Not D.

Despite Go and Dart are very recent "post-D" languages, people 
are already starting to use them a lot these days. Whether you 
trust or not these "pseudo" rankings, they are probably already 
more popular than D, despite they are still in their 1.x 
version.


That's sad, because the same developers who now use Go 
(including me) could have started to use D instead. But they 
didn't.


Obviously Google's great support and marketing help a lot, but 
most developers are not as dumb as you may think.




You have to look at the big picture. Let's ignore for a moment 
what might improve D's adoption and perception. Let's also ignore 
this particular moment in time. Let's go back to the beginning 
and look at the big picture from then until now. From that 
perspective, it's quite a rosy picture. We've got a wealth of 
libraries available compared to just a few years ago. 
Conversations on reddit don't immediately descend into D-bashing 
like they used to. I see more new people more frequently in the 
forums than I used to. Multiple companies are using D and talking 
about their usage, sharing their code, where there used to be 
none. It's just a vastly different community than it was when I 
first stumbled into it. Much for the better.


Yes, there are holes to fill, improvements to be made, but there 
always have been and there always will be. It's an ongoing 
process that, by the way, has many more people contributing to it 
than it did a decade ago. It's natural for people to come in 
along the way, look at the current state of affairs (without the 
benefit of that longer perspective -- or even those who do have 
perspective but have lost heart because their major peeves 
haven't been addressed), and start despairing that if only D did 
this or did that, or targeted that domain, or had a plugin for 
that IDE, or whatever, then it would be a better choice than Rust 
or Go or Javascript and more developers would pick it up. That 
might even be true. But the thing to remember is that neither the 
language nor the community has stagnated. Progress is going 
steadily forward despite all the predictions of doom and gloom 
(which I've been seeing in these forums since 2003). And if 
everyone in the community would pick a pet peeve to fix, whether 
it be making edits to the web site or contributing to an IDE 
plugin, it all moves that much further forward. As long as we 
keep our heads down and keep chipping away, things will only 
continue to improve.


Re: How do you use D?

2017-08-06 Thread Ecstatic Coder via Digitalmars-d
For instance, D is my favorite language, and I try to promote it 
as much as I can (reddit, stackoverflow, even on the go-nuts 
google groups).


But professionally I still use C++ (#3 TIOBE), PHP (#7), Go (#16) 
and now Dart (#20).


Not D.

Despite Go and Dart are very recent "post-D" languages, people 
are already starting to use them a lot these days. Whether you 
trust or not these "pseudo" rankings, they are probably already 
more popular than D, despite they are still in their 1.x version.


That's sad, because the same developers who now use Go (including 
me) could have started to use D instead. But they didn't.


Obviously Google's great support and marketing help a lot, but 
most developers are not as dumb as you may think.


They just use what solve their daily problems. In the end it's 
often as simple as that.


That's why now I always use D to develop my command-line tools. 
It gets the job done quickly and easily.


Same for Go and Dart. Despite I don't really like them actually.



Re: How do you use D?

2017-08-06 Thread Laeeth Isharc via Digitalmars-d

On Sunday, 6 August 2017 at 06:04:57 UTC, Ecstatic Coder wrote:

Very interesting post.

My bachelor's thesis was a expert system for stock trading 
implemented with Borland C++ 1.0, and D would have been a good 
fit as well if had been an option in 1989, so I understand why 
you think that financial development will make D popular.


I don't know that I would say finance will make D popular but 
it's one domain that I know well where I think it can be useful. 
Popularity isn't only a good thing either.


I think the focus on Go, Rust etc as a competitive threat is 
misplaced.  If they do something well and it fits us we should 
without shame copy it, but better.  But just because they are the 
focus of attention amongst some communities doesn't mean we 
should otherwise worry about what they are doing.





But that's the exact opposite of what trending languages do at 
the moment (Go, Kotlin, etc).


They care to solve the basic problems of the casual developer : 
implementing desktop, mobile or web applications.


Why try to beat them at their own game, or even spend energy 
wondering about it.  The DNA of the community mostly isn't 
interested in solving the problems of the casual developer in the 
same way.  So unless it changes then it's a tough game to expect 
to beat them on criteria they set.


Looks at the compounded rate of growth of dmd daily downloads.  
If it were a stock, I wouldn't be short it, because it's in an 
uptrend and far from overbought.  Many other contexts you would 
even call that explosive growth.



Not the most interesting jobs maybe, but that's what pays the 
bill of many of us, the "less skilled" developers who are not 
engineers.


I guess you only need one job.   And there is share of market and 
share of mind.  It's much easier for talented people to be 
recognised as such in a smaller community than a vast one.





Re: How do you use D?

2017-08-06 Thread Ecstatic Coder via Digitalmars-d

Very interesting post.

My bachelor's thesis was a expert system for stock trading 
implemented with Borland C++ 1.0, and D would have been a good 
fit as well if had been an option in 1989, so I understand why 
you think that financial development will make D popular.


But that's the exact opposite of what trending languages do at 
the moment (Go, Kotlin, etc).


They care to solve the basic problems of the casual developer : 
implementing desktop, mobile or web applications.


Not the most interesting jobs maybe, but that's what pays the 
bill of many of us, the "less skilled" developers who are not 
engineers.




Re: How do you use D?

2017-08-05 Thread Laeeth Isharc via Digitalmars-d

On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote:
While the Orgs using D page is very nice ... I hoping to hear 
more personal stories ...


So

How do you use D?
In work, (key projects or smaller side projects)
in your side project, (github, links please)
just to learn something new? (I would easily argue that 
learning D will make you a better C++ programmer, maybe not the 
most efficient way, but I a sure it i very effective)


Did you introduce D to your work place? How? What challenges 
did you face?


What is you D setup at work, which compiler, which IDE?

And any other fun facts you may want to share :)


I started programming in 1983: BBC BASIC, 6502 assembler, Z80 
assembler.  I learnt to program C on an Amstrad PCW running CP/M, 
and compiler I used had K style declarations.


Then I discovered economics, and my life took a different course. 
 I moved into trading and managing money, but I always programmed 
on the side to help me solve investment and business problems.  
Kept it quiet because programming was for a long time low status 
and clashed with what people expected to see in a money manager.


Late 2013 I recognised that the way our business used technology 
was completely broken.  The only way to make the most of 
technology is to combine an understanding of investing, financial 
instruments, the investment business, and technology in one mind. 
 But where am I going to find a guy like that?  So I looked in 
the mirror and realised I had to brush up my skills.


So I started building tools to help me invest.  My friends mostly 
thought it was a crazy course of action, because it's rare if you 
leave investing even temporarily to return to it, and I love 
markets, but sometimes the direct approach isn't the right one.  
We're drowning in data but don't have good tools to make sense of 
it.


I learnt python and cython, but kept looking, because I wanted to 
have my cake and eat it.  Why can I not have all of productivity, 
performance, static typing/correctness, abstraction, and code 
readability - I don't think I should have to choose just a 
couple, and I am not going to. That led me to D in 2014.


At school they used to ask us if everyone else jumped out of the 
window  would you do it too? And it's a profitable approach in 
financial markets to develop and learn to trust your own 
judgement of things.  If a highly respected and very 
knowledgeable economist tells you "you do realise that there is 
no basis in economic theory for what you are suggesting", you 
need to be able to revisit your thinking, see what you might be 
missing, but in the end trust your own judgement over that of the 
putative expert.  And he subsequently wrote a very impressive 
explanation after the fact of how what "couldn't be justified in 
theory" did in fact happen.  And it's a bit similar with 
programming language choices and such.  Its way better to appeal 
to people who make up their own mind and bear the consequences 
then to those who have to cover their behinds by getting the 
right ticks in the boxes because the are never going to be 
earlier adopters except through some unfortunate accident - 
because you also don't want such people as early adopters!


Since then, one thing led to another, and I ended up hiring a few 
people from the community to help me as consultant developers.  
Maybe a bit more than 10% of Team Phobos, based on a simple 
calculation.


I have also ended up running technology, amongst other things, 
for a decent size hedge fund.  I am using D for the project I 
started beforehand, and we are starting to explore its usefulness 
in the rest of the firm for some core analytics.  It pays to 
start small and build on early successes.


Has D been good for me? What have been the consequences of the 
French Revolution? In both cases it's too early to say with utter 
confidence since life is complicated and things are not always 
what they seem to be in the moment, but I have a view on the 
latter, and I think the answer to the former is definitely yes.


Finance used to be relatively at the leading edge.  The industry 
got a bit too fat, it hired the wrong people as it expanded too 
quickly, and then after the crisis people had other things to 
worry about - first survival, and then an exploding burden of 
compliance.  At one big bank even the compliance people complain 
about the number of compliance people they have.  On top of that, 
there's so much legacy systems that it can be very difficult to 
do anything creative or new.


So as an industry we fell behind a bit, and when you go through a 
cycle like that if becomes somewhat self-reinforcing.  To turn 
things around you need to hire very good people, but it's not so 
easy to find very good people who are willing to work with the 
people who created and tolerated the mess in the first place.  
But it can be done, and I think based on a view from afar that 
the banks will do better on this front

Re: How do you use D?

2017-08-05 Thread jmh530 via Digitalmars-d

On Sunday, 6 August 2017 at 03:30:00 UTC, Laeeth Isharc wrote:


I've suggested exactly the same "easy-to-learn super-powered 
stronly-typed javascript" and "efficient web server 
development" advertising approachs to the D leadership, using 
a more "Python.org"-like website.




[snip]

Good long read.


Re: How do you use D?

2017-08-05 Thread Laeeth Isharc via Digitalmars-d

On Saturday, 5 August 2017 at 21:31:49 UTC, Ecstatic Coder wrote:
It is more about marketing. Maybe Go is not a perfect 
language, maybe not even a good one, but it's sold so good 
because of a good marketing


So, calling D a "better C++" is a bad advertisement. But if 
you rename it to 'Script', for example "DatScript" 
and sell it as "better, statically typed JavaScript dialect 
which compiles into fast native executables" it will became #1 
language on GitHub in no time.


+1

I've suggested exactly the same "easy-to-learn super-powered 
stronly-typed javascript" and "efficient web server 
development" advertising approachs to the D leadership, using a 
more "Python.org"-like website.


Maybe it's because this change would be much too radical, but 
I've been told that the "Better C++" slogan won't change, 
despite D could easily be "tweaked" to eat a significant part 
of Go/Dart's market shares.


And I'm not especially convinced that many C++ developers are 
currently rushing towards D because of the current website.


For instance, I've personally chosen D *only* it was much 
better than JavaScript/Node.js, not because it was better than 
C++, that I still have to use for game and mobile development.


Still waiting that somebody explains me how to _easily_ use D 
with Unreal Engine, Cocos2D-X, etc... ;)


I know I'm not the general case, but this still proves that 
"some" C++ developers won't switch to D for long because they 
are too tied to their ecosystem.


In open source, and indeed in entrepreneurial corporations, the 
way to persuade people is to create the shift you advocate, at 
least in a small way, so people can see what your early start 
could become.  Code wins arguments, as they say at Facebook, and 
not just code but documentation, business plans etc too.


Its work to write it, but on the other hand my experience has 
been that work is rarely truly wasted.  It might seem so at the 
time, but for example work I did to persuade somebody that didn't 
want to listen, and where it seemed like I was pointlessly 
banging my head against the wall, has ended up being very 
valuable, even in dollar terms a few years later.  It's not 
always rational to be excessively calculating about risk reward 
in the face of genuine, radical  uncertainty when the risk is not 
that bad.


I agree with you that the benefits of D are not perfectly well 
communicated to people who aren't C++ programmers looking for 
salvation.  I had a discussion just last week about that, 
explaining that D isn't just something they mostly fits only 
large data sets where performance is key.  And in particular it's 
a cultural challenge because people have become resigned to the 
idea of different languages for different purposes, and to a 
large extent D doesn't fit the mental schema people have.


Nothing much changes in life day to day, and changes that seem to 
be big often unfold slowly for a long time before being noticed.  
The financial crisis unfolding began in Feb 2007 at the latest, 
but it didn't feel like that to most people at the time.


Similarly, compare D documentation today to that of early 2014 
(when I first look at D).  Plenty of it was all perfectly clear 
if you had a more academic training in computing, but if not then 
it wasn't the friendliest.  I tried to persuade one chap who was 
helping me between jobs to learn D, and he was absolutely 
terrified of it, to a good extent because of the docs!


And it's also because people are used to complexity being hidden 
from them and things being made very easy.  Since D often 
involves paying a price upfront to make future things easier, 
perhaps it's worth bearing in mind that there's a coupling 
between the degree of development of the tooling and how polished 
the docs should be.  If you make it so easy to learn D that you 
draw people who are utterly stuck when they hit dependency 
problems with dub, that may not be ideal either.   Ie an implicit 
question of truth in advertising.


And the situation with docs changed over time.  One recent change 
is thanks to Seb Wilzbach who introduced runnable examples 
generated automatically from unit tests.  If you look at his pull 
request it wasn't welcomed entirely with open arms in the 
beginning because the benefits weren't clear (and some other 
reasons I forgot).


So if you think we should have friendlier docs appealing to non 
systems programmers, why not write a mock up so others can see.  
It needn't be either or, because you can have an easy or advanced 
channel from front page.


And it's worth not alienating those who want to go straight to 
the meat of things - there's nothing more frustrating than a 
system that talks down to you or breaks things down into little 
pieces when you're quite used to slaughtering and butchering 
dinner for yourself, thank you very much...


I really think there's a limit in how much sense it makes to 
think about D marketshare against other programming languages.



Re: How do you use D?

2017-08-05 Thread Ecstatic Coder via Digitalmars-d
It is more about marketing. Maybe Go is not a perfect language, 
maybe not even a good one, but it's sold so good because of a 
good marketing


So, calling D a "better C++" is a bad advertisement. But if you 
rename it to 'Script', for example "DatScript" and 
sell it as "better, statically typed JavaScript dialect which 
compiles into fast native executables" it will became #1 
language on GitHub in no time.


+1

I've suggested exactly the same "easy-to-learn super-powered 
stronly-typed javascript" and "efficient web server development" 
advertising approachs to the D leadership, using a more 
"Python.org"-like website.


Maybe it's because this change would be much too radical, but 
I've been told that the "Better C++" slogan won't change, despite 
D could easily be "tweaked" to eat a significant part of 
Go/Dart's market shares.


And I'm not especially convinced that many C++ developers are 
currently rushing towards D because of the current website.


For instance, I've personally chosen D *only* it was much better 
than JavaScript/Node.js, not because it was better than C++, that 
I still have to use for game and mobile development.


Still waiting that somebody explains me how to _easily_ use D 
with Unreal Engine, Cocos2D-X, etc... ;)


I know I'm not the general case, but this still proves that 
"some" C++ developers won't switch to D for long because they are 
too tied to their ecosystem.




Re: How do you use D?

2017-08-03 Thread Neia Neutuladh via Digitalmars-d

On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote:

How do you use D?


I use D for pretty much everything in my personal life at the 
moment. I've found some things that I thought were better in 
other languages, but either D's ecosystem has improved (which is 
why I'm rewriting my RSS reader from C# to D -- when I wrote it, 
vibe.d wasn't a thing) or I was proven false (scraping websites 
in Python led to a ton of inscrutable encoding errors; 
implementing a parser in C# was about 900 times slower than the D 
version until I wrote my own UTF8 string struct and made some 
other optimizations, at which point it was merely 3.5 times 
slower).


By count, most of what I'm using it for is small scripts for 
simple simulations. Recurrences that I can't solve mentally in a 
reasonable amount of time, so I need a program for it. In ages 
past, I'd use Python, since it tends to be convenient. However, 
while it's a bit more convenient than D, type safety is worth a 
lot.


I tend not to finish projects, but the ones I've worked on in the 
past week or strongly intend to get back to are:


* An init system (mainly for learning).
* A procedural generator for a witch's spellbook [1]
* A rewrite of my RSS reader (70% complete)
* A MUD involving procedurally generated sky islands

As for the mechanism by which I use D: I've mainly stuck to vim. 
I've tried out vscode plus code-d, but that doesn't work for me. 
And in the past, I've used Eclipse plugins for D. Vim, NERDTree, 
and tmux make for a good editing experience -- it's what I use 
for Java at work.



Did you introduce D to your work place?


I used D to write a tool to extract and update vbulletin 
templates from a directory of templates. This meant we could 
store things in source control. (Vbulletin stores templates in 
its database. This makes their hosted solution much better, I'm 
sure. It makes my life more annoying.)


Unfortunately, I was the only one who preferred source control 
rather than editing live.



[1] Sample spellbook, only one spell (it needs some work):

The Book of Vile Darkness
a witch's guide to necromancy with friends

2 <  )4 ,$ " 3  4  96, a spell to banish spirits

You will need:
 * graveyard soil
 * bronze mirror

reduce graveyard soil to a paste
boil paste, bronze mirror in a size 6 cauldron
mix paste thoroughly


Re: How do you use D?

2017-08-02 Thread Nicholas Wilson via Digitalmars-d

On Thursday, 3 August 2017 at 03:46:38 UTC, Zwargh wrote:

On Monday, 31 July 2017 at 12:32:52 UTC, Nicholas Wilson wrote:

On Sunday, 30 July 2017 at 01:53:15 UTC, Zwargh wrote:
I am using D to develop a system for rational drug design. 
The main application for D is for protein 3D structure 
prediction and statistical analysis using Differential 
Geometry and Knot Theory.


Cool! Are you considered using dcompute for this once it has 
matured a bit?


It is a possibility and MIR as well. In my experience, D could 
be the perfect replacement for C++ and Java for bioinformatics.


I hope it does, i'll be using it for all my bioinformatics stuff.


Re: How do you use D?

2017-08-02 Thread Zwargh via Digitalmars-d

On Monday, 31 July 2017 at 12:32:52 UTC, Nicholas Wilson wrote:

On Sunday, 30 July 2017 at 01:53:15 UTC, Zwargh wrote:
I am using D to develop a system for rational drug design. The 
main application for D is for protein 3D structure prediction 
and statistical analysis using Differential Geometry and Knot 
Theory.


Cool! Are you considered using dcompute for this once it has 
matured a bit?


It is a possibility and MIR as well. In my experience, D could be 
the perfect replacement for C++ and Java for bioinformatics.





Re: How do you use D?

2017-08-02 Thread Moritz Maxeiner via Digitalmars-d

On Wednesday, 2 August 2017 at 21:30:11 UTC, SCev wrote:
guys don't do your own IDE, i see everyone working on his own 
IDE, please just make plugin for famous crossplatform IDE.. 
this will be better for comunity


But I'm NIH interested in having my own plugin for Sublime which 
does exactly what I want how I want it.




VSCode/Atom


Used both of these for a considerable time, got sick of them 
(graphic glitches, slow, heavily interferes with power 
saving on battery power, etc.).



Xamarin Studio/IntelliJ


I'm frankly not interested in having either mono or a JVM on my 
machine.




my team don't want use D cause IDEs are all shit


I can understand that, but I'd have to say that D is then 
(currently) not for your team.


Re: How do you use D?

2017-08-02 Thread SCev via Digitalmars-d
guys don't do your own IDE, i see everyone working on his own 
IDE, please just make plugin for famous crossplatform IDE.. this 
will be better for comunity


VSCode/Atom/Xamarin Studio/IntelliJ

my team don't want use D cause IDEs are all shit


Re: How do you use D?

2017-08-02 Thread MGW via Digitalmars-d

On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote:
While the Orgs using D page is very nice ... I hoping to hear 
more personal stories ...


I use D2 since 2014. I had wide experience of C programming 
earlier. Now I use only DMD in all projects, except special. At 
the initial stage there were difficulties with a choice of good 
GUI and I decided to make the binding for Qt-5. QtE5 turned out 
and I use it for creation of cross-platform applications. I mix 
pfobos and API Qt-5 in the applications.


https://github.com/MGWL/QtE5
https://www.youtube.com/channel/UCNlwbCCcpYVAI0EL2VFOutQ

Short list of development:
- Learnability monitoring (reception of examinations) - dmd + qte5

- Scanner of file system, indexing and search.

- the forth language interpreter - dmd + asm_dmd

- IDE5 - mini ide (example QtE5) - dmd + QtE5

- External DLL for extension functionality of VBA for MSOffice - 
dmd


- Smart Scripts for start of external applications

I use notepad++ and only dmd (win/linux/OSX for 32/64) or ide5 
for small app.


dmd is an excellent programming language )))


Re: How do you use D?

2017-08-02 Thread Meta via Digitalmars-d

On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote:
While the Orgs using D page is very nice ... I hoping to hear 
more personal stories ...


So

How do you use D?


I've been using D for most of my personal projects since 2011.


In work, (key projects or smaller side projects)


Unfortunately it's pretty much impossible to introduce a new 
language in my position at work, but I use D regularly for small 
text processing tools. I need to rip apart and/or reformat text 
files regularly; I used to use Perl but I find D to be as good or 
better for this job than Perl, and faster as well.



in your side project, (github, links please)


Recently I've been working on a Discord bot and a small game (not 
on github), both using D libraries of course.


just to learn something new? (I would easily argue that 
learning D will make you a better C++ programmer, maybe not the 
most efficient way, but I a sure it i very effective)


I've learned about everything from programming language design to 
type theory to algorithm design to low-level programming just 
from participating in the D community over the past 6 years. 
There's no question that learning D has made me a better 
programmer and introduced me to concepts that I would not have 
been aware of otherwise.


Did you introduce D to your work place? How? What challenges 
did you face?


I would love to introduce D to my work place but it's not really 
possible.



What is you D setup at work, which compiler, which IDE?


Plain old Sublime Text with DCD/dscanner/dfmt. I used to heavily 
use Visual Studio with the visual-d plugin but I wanted something 
more light weight.


Re: How do you use D?

2017-08-02 Thread Daniel Kozak via Digitalmars-d
s/ok we have to because of failover/ok we have two because of failover/

On Wed, Aug 2, 2017 at 11:29 AM, Daniel Kozak <kozz...@gmail.com> wrote:

> On Fri, Jul 28, 2017 at 4:58 PM, Ali via Digitalmars-d <
> digitalmars-d@puremagic.com> wrote:
>
>> While the Orgs using D page is very nice ... I hoping to hear more
>> personal stories ...
>>
>> So
>>
>> How do you use D?
>>
>
> Mainly at work, for lot of things.
>
> autoloader - tool for parsing all php files at our main project and
> generate file for autoloading php files
> esatd - deamon for controling and communicating with our servers
> (reading logs, do releases of our products, controlling of availability...)
> cronchecker - tool for managing and watchdoging our crons
> dbsync - db tool for syncing and moving our databases around different
> servers
> testdbsync - dbtool sync our production databases to our test databases
> phpdispatcher - deamon for managing php workers processes
> camera-media-server - reverse engineering server for communicating
> with some chinese DVR units
> esat-map-engine - tool for (reverse) geocoding, and generating map
> tiles
> mapfactorbridge - REST API over MapFactor OCX(windows only, we used it
> under wine), so it is possible to use it on many machines through network
> and on any platform
> MapfactorWrapper - demon for calculating shortest path from one
> city(or any place) to another using mapfactor ocx api (mapfactorbridge)
>
>
>
>>
>> Did you introduce D to your work place? How? What challenges did you face?
>>
>
> Yes in 2012, only problem was with the ecosystem. There has been no good
> IDE and too few libraries, but because of posibility to use C libraries it
> was not a problem.
> But good IDE is still a problem for some of us.
>
>
>>
>> What is you D setup at work, which compiler, which IDE?
>>
>
> DMD for development, LDC or GDC for release binaries, VSCode with webfreak
> dlang plugin (2017-now), monodevelop (2013-2016)
>
>
>>
>> And any other fun facts you may want to share :)
>>
>
> In 2012 at work we have been looking for a way how to improve performance
> of our data processing machines. These machines process lots of files
> (binary,xml,text...).
> These files comes from GPS units and has been (still are) process by PHP
> scripts (called parsers).
>
> So we decided to rewrite those PHP scripts to something faster (PHP has
> been quite slow theses days, now with PHP7 and HHVM it is little better).
> So I was responsible for finding another language (the right one) in which
> we wil rewrite those scripts. OK easy task, so I selected few languages I
> know to select from.
> Java, C/C++, Go, Python. But quite fast I realized none of these languages
> fulfil our requirements.
> Our requirements was:
> OOP (Go is out)
> GC (C++ is out, ok there is a way to use gc in c++, but i have never done
> that before)
> Fast startup (Java is out because of VM)
> Syntax similar to PHP as much as posible (python is out)
> Fast compilation (C++ is out again)
>
> Our best choice has been Java, but it would mean change architecture
> (instead of executing own process for every file, we will need to process
> them in one process with multiple threads or something similar), which has
> been no go these days.
>
> So I have been looking for some another language. And for some reason I
> have remembered that there has been some language, which I have try at my
> high school days (2004-2008).  Unfortunately I did not remembred the name.
> So I start typing into google things I have remembred about this language.
> And after some time I have found  it (D language). So I looked at D closer
> and was very satisfied. My first  thoughts was something like "This is it".
>
> So I introduce D to my coworkers. At first there has been two camps. One
> camp has the same feeling about D as me, the other ones was OK with D as a
> language, but has been afraid of ecosystem. So I have started to showing
> them how easily I can use C ecosystem so they do not have to be worried. So
> after some time D has been chosen and we started to rewrite our parsers
> into D.
>
> First results (just data processing) has been promising (new parsers has
> been 10 to 100 times faster than the old(PHP) ones with smaller system
> requirments), but after integrating other parts (database, filesystem...)
> we have realized there is an almost no gain in the end. Data processing was
> only small part of parsers, so database and filesystem interaction has been
> the problem. So we start to improve this part of parsers. In the end we was
> 5 times faste

Re: How do you use D?

2017-08-02 Thread Kagamin via Digitalmars-d

On Saturday, 29 July 2017 at 21:07:24 UTC, H. S. Teoh wrote:
Unfortunately, they are not receptive to new languages right 
now.  C is king here, sad to say, and even C++ is only barely 
tolerated (they basically outlawed C++ exceptions in the name 
of optimization, and use their own C-based hack instead, among 
other such restrictions). The mere mention of the word "GC" 
will make the answer an automatic "no".


I use D without exceptions and GC too, previously I used C for 
this, but of course any D is miles ahead of it.


Re: How do you use D?

2017-08-02 Thread Daniel Kozak via Digitalmars-d
On Fri, Jul 28, 2017 at 4:58 PM, Ali via Digitalmars-d <
digitalmars-d@puremagic.com> wrote:

> While the Orgs using D page is very nice ... I hoping to hear more
> personal stories ...
>
> So
>
> How do you use D?
>

Mainly at work, for lot of things.

autoloader - tool for parsing all php files at our main project and
generate file for autoloading php files
esatd - deamon for controling and communicating with our servers
(reading logs, do releases of our products, controlling of availability...)
cronchecker - tool for managing and watchdoging our crons
dbsync - db tool for syncing and moving our databases around different
servers
testdbsync - dbtool sync our production databases to our test databases
phpdispatcher - deamon for managing php workers processes
camera-media-server - reverse engineering server for communicating with
some chinese DVR units
esat-map-engine - tool for (reverse) geocoding, and generating map tiles
mapfactorbridge - REST API over MapFactor OCX(windows only, we used it
under wine), so it is possible to use it on many machines through network
and on any platform
MapfactorWrapper - demon for calculating shortest path from one city(or
any place) to another using mapfactor ocx api (mapfactorbridge)



>
> Did you introduce D to your work place? How? What challenges did you face?
>

Yes in 2012, only problem was with the ecosystem. There has been no good
IDE and too few libraries, but because of posibility to use C libraries it
was not a problem.
But good IDE is still a problem for some of us.


>
> What is you D setup at work, which compiler, which IDE?
>

DMD for development, LDC or GDC for release binaries, VSCode with webfreak
dlang plugin (2017-now), monodevelop (2013-2016)


>
> And any other fun facts you may want to share :)
>

In 2012 at work we have been looking for a way how to improve performance
of our data processing machines. These machines process lots of files
(binary,xml,text...).
These files comes from GPS units and has been (still are) process by PHP
scripts (called parsers).

So we decided to rewrite those PHP scripts to something faster (PHP has
been quite slow theses days, now with PHP7 and HHVM it is little better).
So I was responsible for finding another language (the right one) in which
we wil rewrite those scripts. OK easy task, so I selected few languages I
know to select from.
Java, C/C++, Go, Python. But quite fast I realized none of these languages
fulfil our requirements.
Our requirements was:
OOP (Go is out)
GC (C++ is out, ok there is a way to use gc in c++, but i have never done
that before)
Fast startup (Java is out because of VM)
Syntax similar to PHP as much as posible (python is out)
Fast compilation (C++ is out again)

Our best choice has been Java, but it would mean change architecture
(instead of executing own process for every file, we will need to process
them in one process with multiple threads or something similar), which has
been no go these days.

So I have been looking for some another language. And for some reason I
have remembered that there has been some language, which I have try at my
high school days (2004-2008).  Unfortunately I did not remembred the name.
So I start typing into google things I have remembred about this language.
And after some time I have found  it (D language). So I looked at D closer
and was very satisfied. My first  thoughts was something like "This is it".

So I introduce D to my coworkers. At first there has been two camps. One
camp has the same feeling about D as me, the other ones was OK with D as a
language, but has been afraid of ecosystem. So I have started to showing
them how easily I can use C ecosystem so they do not have to be worried. So
after some time D has been chosen and we started to rewrite our parsers
into D.

First results (just data processing) has been promising (new parsers has
been 10 to 100 times faster than the old(PHP) ones with smaller system
requirments), but after integrating other parts (database, filesystem...)
we have realized there is an almost no gain in the end. Data processing was
only small part of parsers, so database and filesystem interaction has been
the problem. So we start to improve this part of parsers. In the end we was
5 times faster than the old parsers, but we could just do all these changes
to old parsers too. So we end up with rewriting our D parsers back to PHP,
because D parsers has been to far from being complete.

But it was not complete failure. Because of this we have improved our
parsers and D has established in our ecosystem. After few years parsers
performance became problem again (even with PHP 7). So we need to improve
them again. We have already known that rewriting it to something faster
would not help. So I have try another approach.

The result of that approach is phpdispatcher. So instead of starting new
process for every file re

Re: How do you use D?

2017-08-01 Thread aberba via Digitalmars-d

On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote:
While the Orgs using D page is very nice ... I hoping to hear 
more personal stories ...


So

How do you use D?
I'm a full stack developer using D on my personal backend project 
development and APis.



In work, (key projects or smaller side projects)
in your side project, (github, links please)
I'm working on my own platform using vibe.d and other D dub 
packages.


just to learn something new? (I would easily argue that 
learning D will make you a better C++ programmer, maybe not the 
most efficient way, but I a sure it i very effective)
Even after php and JavaScript, D has made me a matured and 
productive developer. Its expressiveness is unmatched.




Did you introduce D to your work place? How? What challenges 
did you face?

Most people are hooked by popular stuff. Too destructed to focus.



What is you D setup at work, which compiler, which IDE?


Sublime Text Editor + dub + DMD



And any other fun facts you may want to share :)
D is productive, fast, easy, clean and capable more than any 
languagein existence. It a fact. GC is very useful for my use 
case. Dub registry is great way to use libs, community is awesome 
and full of technical/experienced people.


D is a language that takes you to every party.




Re: How do you use D?

2017-08-01 Thread Jacob Carlborg via Digitalmars-d

On 2017-07-28 16:58, Ali wrote:

While the Orgs using D page is very nice ... I hoping to hear more
personal stories ...

So

How do you use D?
In work, (key projects or smaller side projects)
in your side project, (github, links please)
just to learn something new? (I would easily argue that learning D will
make you a better C++ programmer, maybe not the most efficient way, but
I a sure it i very effective)


I mostly use D at my spare time to write tools and libraries for D, 
[1][2][3][4] to mention a few.


I've managed to sneak in some D code at work for a tool [5] that helps 
building slides using Markdown and a build job in GitLab. This is now 
used for our weekly meeting to build a combined slideshow. Although 
nothing in production yet.



Did you introduce D to your work place? How? What challenges did you face?


Yes. The first question that comes up is: "who is using D?" and "are 
there any developers that know D?". The lack of libraries in some areas 
is not helping.



What is you D setup at work, which compiler, which IDE?


TextMate with the default D bundle [6], can be downloaded directly from 
within TextMate. DMD, RDMD, DUB and DCD.


[1] https://github.com/jacob-carlborg/dstep
[2] https://github.com/d-widget-toolkit/dwt
[3] https://github.com/jacob-carlborg/dvm
[4] https://github.com/jacob-carlborg/orange
[5] https://github.com/jacob-carlborg/remarkify
[6] https://github.com/textmate/d.bundle

--
/Jacob Carlborg


Re: How do you use D?

2017-07-31 Thread Nicholas Wilson via Digitalmars-d

On Sunday, 30 July 2017 at 01:53:15 UTC, Zwargh wrote:
I am using D to develop a system for rational drug design. The 
main application for D is for protein 3D structure prediction 
and statistical analysis using Differential Geometry and Knot 
Theory.


Cool! Are you considered using dcompute for this once it has 
matured a bit?




Re: How do you use D?

2017-07-31 Thread Michael via Digitalmars-d

On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote:

How do you use D?
In work, (key projects or smaller side projects)


I did my undergraduate in CS where I picked up Python, Java and a 
little bit of C/C++, but Java was my most familiar language. When 
I started my PhD in an Engineering Maths department, I picked up 
Andrei's book on D as I had come across the language several 
times earlier but never had a good excuse to pick it up properly. 
My supervisor is more of a mathematician so I did not have any 
dependencies or limitations in the tools I chose to use for 
research. For the first year of my PhD I built models in Java 
with Python for scripting on the side. I was incredibly 
disappointed with the performance in Java, and having been 
learning D on the side during that year, I decided to rewrite it 
using D. I essentially chose D for the one reason many people do 
NOT choose D; I wanted a GC-language that offered a decent level 
of control like C/C++ and was much nicer to write than Java, but 
with the convenience of not having to concern myself too much 
with memory management. I was happy to tune for efficiency, but 
did not want memory management to interrupt my workflow when 
writing a new model. D was perfect for this.



in your side project, (github, links please)


I've been lazy with side projects since I am always trying to 
work on my maths and writing skills which are pretty lacking 
given my choice of degree.


Did you introduce D to your work place? How? What challenges 
did you face?


I've tried to inform people of the merits of D but in this 
department, we're heavily tied to Matlab for teaching. When I 
started, they switched up the undergrad courses and started 
teaching Python as an alternative to Matlab alongside C/Java, but 
there's still a lot of reliance on Matlab. I'd like to see them 
chuck Java and teach C/D but we'll see. At university, there's a 
lot of difficulty in balancing the necessities (C for embedded 
systems/robotics and Matlab for modelling).



What is you D setup at work, which compiler, which IDE?


I've been a long-time Sublime Text user, using DMD (rdmd is a 
life saver) and that's about it. I'm interested in VS Code with 
the dlang extension though.



And any other fun facts you may want to share :)


It makes me sad to see so many people disgruntled by the mere 
presence of a garbage collector. I like it a lot and while I am 
completely on board with moving toward making it more optional, I 
am glad it's there and would welcome speed improvements. I think 
there's a balance to be struck between allowing programmers to 
forget about the low-level memory management when writing 
programs and tuning memory management when optimising for 
performance.


Re: How do you use D?

2017-07-29 Thread Zwargh via Digitalmars-d

On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote:
While the Orgs using D page is very nice ... I hoping to hear 
more personal stories ...


So

How do you use D?



In work, (key projects or smaller side projects)


I am using D to develop a system for rational drug design. The 
main application for D is for protein 3D structure prediction and 
statistical analysis using Differential Geometry and Knot Theory.


Did you introduce D to your work place? How? What challenges 
did you face?


As a research scientist, I can choose any tools I think will do 
the job.



What is you D setup at work, which compiler, which IDE?


Visual Studio Code + D Plugin - DMD and LDC


And any other fun facts you may want to share :)


After using FORTRAN, C/C++ and Java for structural 
bioinformatics, I think D is the best language so far for 
programming those types of tools.






Re: How do you use D?

2017-07-29 Thread Danni Coy via Digitalmars-d
On Sat, Jul 29, 2017 at 12:58 AM, Ali via Digitalmars-d <
digitalmars-d@puremagic.com> wrote:

> While the Orgs using D page is very nice ... I hoping to hear more
> personal stories ...
>
> So
>
> How do you use D
>
In work, (key projects or smaller side projects)
>

As a replacement for Python for automating tasks (I was already using
python because I suck at shell scripting), D's main advantage here is that
I can compile a binary that will run on the target computer without having
to install any dependencies. The most important thing to note here is that
I haven't come accross any serious downsides to using D instead of python.


> in your side project, (github, links please)
>

https://github.com/kayosiii/subterrainian is my current side project. It is
moving slowly as I tend to work on other things when I get into a place
where I can either wait for features to be implemented or do a lot of extra
work. Most recently this was getting iAllocator working in @nogc code.


> just to learn something new? (I would easily argue that learning D will
> make you a better C++ programmer, maybe not the most efficient way, but I a
> sure it i very effective)
>

Initially i picked up Andrei's book because it looked interesting and found
that D was closer to what I wanted than anything else out there. Generally
I learn languages when they are the easiest way to get a task done D and
Perl are the only two I have learned for 'fun'.

Did you introduce D to your work place? How? What challenges did you face?
>

Until recently I was the only coder at my workplace. I would probably use D
more if there were more game engines that intergrated D.

What is you D setup at work, which compiler, which IDE?
>

Currently tooling is my least favourite aspect of using D. I am finding
vscode with the D extension that intergrates Dub the least bad solution.

And any other fun facts you may want to share :)
>


Re: How do you use D?

2017-07-29 Thread H. S. Teoh via Digitalmars-d
On Fri, Jul 28, 2017 at 02:58:01PM +, Ali via Digitalmars-d wrote:
[...]
> How do you use D?

vim + dmd git HEAD :-)

Well, sometimes also gdc/ldc2, but usually just dmd git HEAD because I'm
a sucker for bleeding edge D.


> In work, (key projects or smaller side projects)

Unfortunately, people at work are very C/C++ centric and resistant to
other languages. Plus, we have a huge codebase that has to run on an
embedded system, so adding a new language into the mix does not sit well
with the PTBs.  So, no D at work, sad to say. :-(


> in your side project, (github, links please)

Sorry, most of my projects are not (yet) available on github.  The few
which are, include:

https://github.com/quickfur/fastcsv
https://github.com/quickfur/qrat
https://github.com/quickfur/dcal

The dcal code is very minimal, because it was supposed to be example
code for the following article, so I haven't added any bells and
whistles that I otherwise normally would:

https://wiki.dlang.org/Component_programming_with_ranges


> just to learn something new? (I would easily argue that learning D
> will make you a better C++ programmer, maybe not the most efficient
> way, but I a sure it i very effective)

Actually, I've found that D has completely spoiled C/C++ for me.  After
tasting the expressive power that is D, having to deal with C at work
and C++ to a lesser extent (a rather constricted subset of C++, I might
add, for various reasons) is just very painful and frustrating.  I just
can't enjoy working with C/C++ the way I used to anymore.  D is just too
comfortable to use and just too awesome, that going back to C/C++ feels
like being forced to program on a 1MHz CPU with 64kB RAM after
experiencing the power of a 6-core CPU with 800MHz per core with 3GB
RAM.  The only reason I'm still putting up with C/C++ is because they
pay me to do it.


> Did you introduce D to your work place? How? What challenges did you
> face?

Unfortunately, they are not receptive to new languages right now.  C is
king here, sad to say, and even C++ is only barely tolerated (they
basically outlawed C++ exceptions in the name of optimization, and use
their own C-based hack instead, among other such restrictions). The mere
mention of the word "GC" will make the answer an automatic "no".


> What is you D setup at work, which compiler, which IDE?
[...]

Compiler: usually dmd, but where performance is important, gdc or ldc2.

IDE: what's that? :-D  Linux is my IDE, vim is my source code editor.
And no, I don't use syntax highlighting either. (IMAO, if code (or the
language) needs highlighting just to be readable, it has already failed.
I'm probably by far the minority in this opinion, and I'm quite happy
with that. :-P)


T

-- 
By understanding a machine-oriented language, the programmer will tend to use a 
much more efficient method; it is much closer to reality. -- D. Knuth


Re: How do you use D?

2017-07-29 Thread David Gileadi via Digitalmars-d

On 7/29/17 3:05 AM, Russel Winder via Digitalmars-d wrote:

In 2004 maybe "D as better C++" was a good line. In 2017 "D is a
general purpose programming language that allow faster development time
than C++, Go, and Rust" is a far better line?


This is what attracts me to D--it's easy to write, clean to read, and 
super powerful. However the "faster development time" is a bit marred by 
D's current ecosystem: it's faster/easier than other languages in 
certain domains, but lack of libraries/integration make it a tough 
choice in other domains (like mobile). And we have fairly regular 
complaints on the forum about the new-to-D experience (and good on them 
for taking the time to post about it here!). If I had free time for D 
I'd be trying to work on improving those things.


Re: How do you use D?

2017-07-29 Thread Russel Winder via Digitalmars-d
On Fri, 2017-07-28 at 19:50 +, Anton Fediushin via Digitalmars-d
wrote:
> 
[…]
> It is more about marketing. Maybe Go is not a perfect language, 
> maybe not even a good one, but it's sold so good because of a 
> good marketing

In the end Go is about interns at Google not making errors in Google
code. It is also about some people liking it and being able to produce
libraries and systems. And of course having lots of hype. I have to
admit using Gogland as an IDE I quite like developing code with Go.

> So, calling D a "better C++" is a bad advertisement. But if you 
> rename it to 'Script', for example "DatScript" and sell 
> it as "better, statically typed JavaScript dialect which compiles 
> into fast native executables" it will became #1 language on 
> GitHub in no time.

In 2004 maybe "D as better C++" was a good line. In 2017 "D is a
general purpose programming language that allow faster development time
than C++, Go, and Rust" is a far better line?

[…]
> 
> I am talking about community, not language. C++ community is so 
> huge that they cannot work together on the language, which leads 
> to different compilers supporting different features and 
> different frameworks for same purposes not compatible with each 
> other. So, instead of making something useful, C++ community 
> rewrites same code over and over again in the way they think it 
> should be done.
> 
> It happens to new C++ specifications, when some feature got 
> rejected and one compiler implements it, but others doesn't.

There is only one C++ standard, anyone using extras other than TR ones
is not using C++, they have created their own language based on C++.

-- 
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: How do you use D?

2017-07-29 Thread O/N/S (Ozan) via Digitalmars-d

On Saturday, 29 July 2017 at 04:21:43 UTC, Shannon wrote:

On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote:

How do you use D?


At my leisure time, I use it to build real-time apps (fast, 
faster, fastest ;-)


At work, we use it for web-based stuff like apps in the cloud 
foundry.
The big challenge for D is the small code base, lot of unfinished 
libs, low numbers of CPUs support, and tiny community compared to 
other languages.


A typical discussion at work:
"Did you hear about D?"
"What's this"
"A C-like language with more state-of-the-art syntax and 
functionalities. More secure, faster, more flexible compared to 
C, C++"
"Is it strategic? Are other companies using it? Any light tower 
apps?..."

"No, yet, but.."
"Let's go to work with C/C++/Java/Javascript/PHP/Python...!"

The point is, if you has the experience with other languages 
before, and you discover D (in my case it was an article in a 
german IT magazine), you don't like to go back. But you have to 
make the first step forward.


Regards, Ozan


Re: How do you use D?

2017-07-28 Thread Shannon via Digitalmars-d

On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote:

How do you use D?
One work project a few years ago, and many side projects.  rdmd 
makes D my "scripting" language of choice.



In work, (key projects or smaller side projects)
The need for single executable with the speed of C prompted me to 
finally dig into D, which I had been watching since 2007, or so.  
Most of my work is C++(Qt) - but the dependencies or need for 
installers made that undesireable for this project. I used D to 
build a model processing core component for an online service.  
All were happy with the experience.



in your side project, (github, links please)
I'm cooking up some bigger projects, beyond random scripts, but 
they are on private Fossil servers.  I aim to make them public, 
when they get further along I meant to be coding right now!




Did you introduce D to your work place? How? What challenges 
did you face?
I don't tilt at those windmills anymore.  It works for me.  I'd 
rather be coding.




What is you D setup at work, which compiler, which IDE?

https://code.dlang.org/packages/dlangide while I can, but
mostly Dlang plugin integration with Visual Studio Code



And any other fun facts you may want to share :)
I made some commandline utilities in D that would parse, process, 
and export 100K line files with an in-memory SQLite db and 
resources easily embedded in the executable.  When I gave them to 
colleagues to use, they thought my code didn't work at all - 
because it executed and returned practically instantly.  They 
were used to the 10s of seconds execution times of Ruby and 
Python!


Re: How do you use D?

2017-07-28 Thread NotSpooky via Digitalmars-d

On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote:

How do you use D?
I mostly use it for personal projects and used it several times 
for homework.

In work, (key projects or smaller side projects)

Still don't have a job :)

in your side project, (github, links please)
I'm creating a parasitic language (started like 2 days ago so 
still in very early stages) https://github.com/NotSpooky/Espuki
Did several homeworks, one was creating a "MIPS" (instructions 
aren't really the same) simulator of a computer with two cores 
and two cache levels. https://github.com/NotSpooky/Simulador-MIPS
The reason I became interested in D was the ability to mix usage 
of the GC with manual allocation for games. I spent several 
months making a 3D game but got bored (no GH link).

just to learn something new? (I would easily argue that
It has been very useful for this. For learning metaprogramming 
and ranges mostly.
Did you introduce D to your work place? How? What challenges 
did you face?
I have mentioned it to classmates. Most are somewhat interested 
but don't find it worth to learn a new language in which they 
won't probably work.

What is you D setup at work, which compiler, which IDE?

Vim.

And any other fun facts you may want to share :)
I like D more than any other current language, but I think 
backwards compatibility is already a significant burden. That's 
why I'm making a language that compiles to D. To have most of D 
without worrying too much about that.


Re: How do you use D?

2017-07-28 Thread Gerald via Digitalmars-d

How do you use D?


I use D for building GTK applications, my current project is an 
open source Linux terminal emulator called Tilix 
(https://github.com/gnunn1/tilix)



In work, (key projects or smaller side projects)


Side projects only.


Did you introduce D to your work place? How? What challenges


No, my day job is all middleware and cloud projects primarily 
revolving around Java.



What is you D setup at work, which compiler, which IDE?


Visual Studio Code with the code-d plugin on Linux. I use DMD for 
development and LDC for releases.





Re: How do you use D?

2017-07-28 Thread bachmeier via Digitalmars-d

On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote:


How do you use D?


I'm an economics professor. A lot of my work requires simulations 
and other tasks for which a slow language just won't work. I need 
good integration with C and the ability to call my programs from 
other languages. D is a perfect fit. I write a lot of functions 
that coauthors can call from R.


I also use D for a lot of small (few dozen line) scripting tasks, 
for things like automating distribution of graded assignments to 
students and that sort of thing.



in your side project, (github, links please)


I don't program for fun.

just to learn something new? (I would easily argue that 
learning D will make you a better C++ programmer, maybe not the 
most efficient way, but I a sure it i very effective)


I came to D from Lisp and C, so I honestly don't do much I hadn't 
already been doing, and that's a good thing.


Did you introduce D to your work place? How? What challenges 
did you face?


Yes. There are no challenges when you are a researcher because 
you can do what you want. If I'm working with a grad student, 
they don't have much choice other than using what I use. Once you 
convince a researcher to use D, your work is done, because no 
external approval is needed. I also use some D functions inside R 
packages for my teaching. The same functionality is available in 
R, but it is many times slower, and the students will have to use 
D if they want the speed.



What is you D setup at work, which compiler, which IDE?


I use Geany, DMD, and LDC.



Re: How do you use D?

2017-07-28 Thread Anton Fediushin via Digitalmars-d

On Friday, 28 July 2017 at 18:48:25 UTC, Ali Çehreli wrote:

On 07/28/2017 11:02 AM, Anton Fediushin wrote:

> not with Go/Rust.  They're good programming languages

I really don't want to be in a position to diss other languages 
but with some experience, I can tell you that I agree with blog 
posts about Go being a disservice to programmers.[1] It is a 
good language in the sense that you have to dial your 
intellectual self down, accept limitations, and be deaf to 
limitations sold as merits. I can understand "Go is limited 
because it lacks this and that" but I can't agree with "Go is 
great because it lacks this and that." Maybe with a little more 
time I will forget powerful features of other languages and be 
a content Go programmer. :)


"Go is great because it lacks things" is true when somebody comes 
from language, which allows too much (Like JavaScript or PHP).


It is more about marketing. Maybe Go is not a perfect language, 
maybe not even a good one, but it's sold so good because of a 
good marketing


So, calling D a "better C++" is a bad advertisement. But if you 
rename it to 'Script', for example "DatScript" and sell 
it as "better, statically typed JavaScript dialect which compiles 
into fast native executables" it will became #1 language on 
GitHub in no time.


A friend of mine who had left Weka a few months ago has joined 
a startup in the microservices domain. The company uses Go (and 
some Python). My friend looked at Go and then spent some time 
to learn Rust and decided to push D instead for "competitive 
edge." (Not my words! :) ) His argument was, why should we be 
wasting time with other languages. So he is using D to write 
the most critical piece of the product.


Nice!


> splitted like in C++.
I must have missed that one. Please tell me more about it or 
give some links to read about it. All I know is there is always 
disagreement on how some new C++ features should be designed.


I am talking about community, not language. C++ community is so 
huge that they cannot work together on the language, which leads 
to different compilers supporting different features and 
different frameworks for same purposes not compatible with each 
other. So, instead of making something useful, C++ community 
rewrites same code over and over again in the way they think it 
should be done.


It happens to new C++ specifications, when some feature got 
rejected and one compiler implements it, but others doesn't.









Re: How do you use D?

2017-07-28 Thread ketmar via Digitalmars-d

Ali wrote:


How do you use D?


ZX Spectrum emulator. Q2-like gfx engine. alot of 2d platformers, based on 
dynamic AABB trees tech. Secret Project of porting FPC platformer engine to 
D. highload TCP server. coding *all* my projects exclusively in D for at 
least 2.5 years now. converted some C coders to D ("look! D is a better C!").


Re: How do you use D?

2017-07-28 Thread Adam D. Ruppe via Digitalmars-d

On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote:

How do you use D?


I use it for everything I can. In the past, I have used it for 
work as my main job on web apps, though right now my work usage 
of D is limited to helper apps (it has a legacy ruby on rails 
codebase I am forced to work with as the main thing).


I still do smaller work and all personal stuff in D to write web 
apps, little games, data processing, and gui programs.


Most the programs I used day to day are written myself in D like 
my terminal emulator 
<https://github.com/adamdruppe/terminal-emulator>, irc program, 
code searcher, etc.


Did you introduce D to your work place? How? What challenges 
did you face?


The old job's main app was a PHP monstrosity that was impossible 
to maintain so we had to rewrite it... so I rewrote it in D. In 
about 1/10 the code and dev time, we matched the PHP's basic 
necessary functionality and were able to go forward with it.



What is you D setup at work, which compiler, which IDE?


dmd, no ide


And any other fun facts you may want to share :)


I've been using D for over half my programming years now. Started 
coding in 1999, started D in 2006... I also actually saw D in 
2001 but disregarded it cuz my young self thought it looked like 
Java and Java sucks. lol


Re: How do you use D?

2017-07-28 Thread Ali Çehreli via Digitalmars-d

On 07/28/2017 11:02 AM, Anton Fediushin wrote:

> not with Go/Rust.  They're good programming languages

I really don't want to be in a position to diss other languages but with 
some experience, I can tell you that I agree with blog posts about Go 
being a disservice to programmers.[1] It is a good language in the sense 
that you have to dial your intellectual self down, accept limitations, 
and be deaf to limitations sold as merits. I can understand "Go is 
limited because it lacks this and that" but I can't agree with "Go is 
great because it lacks this and that." Maybe with a little more time I 
will forget powerful features of other languages and be a content Go 
programmer. :)


A friend of mine who had left Weka a few months ago has joined a startup 
in the microservices domain. The company uses Go (and some Python). My 
friend looked at Go and then spent some time to learn Rust and decided 
to push D instead for "competitive edge." (Not my words! :) ) His 
argument was, why should we be wasting time with other languages. So he 
is using D to write the most critical piece of the product.


> splitted like in C++.

I must have missed that one. Please tell me more about it or give some 
links to read about it. All I know is there is always disagreement on 
how some new C++ features should be designed.


Ali

[1] 
http://nomad.so/2015/03/why-gos-design-is-a-disservice-to-intelligent-programmers/




Re: How do you use D?

2017-07-28 Thread Anton Fediushin via Digitalmars-d

On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote:

How do you use D?


For personal projects, from low-level system hacking (like 
implementing own reference counted struct) to high-level web apps.


just to learn something new? (I would easily argue that 
learning D will make you a better C++ programmer, maybe not the 
most efficient way, but I a sure it i very effective)


Yup, with D I learned a lot of new programming techniques, like 
meta-programming, CTFE, Range-based algorithms etc. I really 
enjoy how quickly I can switch between low- and high-level code 
without changing the language.
I think this is the main reason why I stayed with D, not with 
Go/Rust. They're good programming languages, but they force you 
to code in the way they call "idiomatic", not in the way you want 
to.
D is a great language, because with all flexibility it has, D 
community haven't been splitted like in C++.



What is you D setup at work, which compiler, which IDE?


Latest DMD, Emacs and DUB. I also have LDC and GDC installed for 
testing. DMD compiles stuff faster than other compilers and has 
all latest things I need.



And any other fun facts you may want to share :)


It's a feature (c) Walter Bright, everytime somebody asks about 
bugs in D


Re: How do you use D?

2017-07-28 Thread ketmar via Digitalmars-d

Ali wrote:


So

How do you use D?


mostly by invoking dmd or rdmd.


Re: How do you use D?

2017-07-28 Thread Moritz Maxeiner via Digitalmars-d

On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote:
While the Orgs using D page is very nice ... I hoping to hear 
more personal stories ...


So

How do you use D?


Privately whenever I need a program for something and D is the 
right tool for the job.



in your side project, (github, links please)


Most of my stuff is in a private gitlab instance, but there's 
tunneled [1], which is essentially a tool for Linux to route an 
arbitrary application's IPv4 traffic through an OpenVPN tunnel 
without interfering with the rest of the system's network traffic 
(i.e. other applications continue as is) using control groups.


just to learn something new? (I would easily argue that 
learning D will make you a better C++ programmer, maybe not the 
most efficient way, but I a sure it i very effective)


I originally started using D1 to learn something new (way back 
when), but I (on and off) stuck with it till today because it's 
still the least horrible option out there (that I know of) with 
the properties I need (designed for native programming, easy C 
interop, high productivity, maintainability, few UB / wtf 
moments).



What is you D setup at work, which compiler, which IDE?


For single file things neovim+dutyl, for projects Sublime Text 3 
+ custom plugin [2].

No IDEs for me.


And any other fun facts you may want to share :)


There's a (harmless) memory leak in druntime I want gone [3].

[1] https://github.com/Calrama/tunneled
[2] https://github.com/Calrama/sublide
[3] https://github.com/dlang/druntime/pull/1857


How do you use D?

2017-07-28 Thread Ali via Digitalmars-d
While the Orgs using D page is very nice ... I hoping to hear 
more personal stories ...


So

How do you use D?
In work, (key projects or smaller side projects)
in your side project, (github, links please)
just to learn something new? (I would easily argue that learning 
D will make you a better C++ programmer, maybe not the most 
efficient way, but I a sure it i very effective)


Did you introduce D to your work place? How? What challenges did 
you face?


What is you D setup at work, which compiler, which IDE?

And any other fun facts you may want to share :)


Re: How do you use D to launch/open a window?

2016-04-24 Thread Satoshi via Digitalmars-d-learn

On Friday, 22 April 2016 at 21:13:31 UTC, anonymousuer wrote:
What code is needed to tell D to open a window? Thank you in 
advance.


You can choose between existing libraries or wrappers for GUI 
implementation like:
DlangUI, Qt, ..., (or my new GUI framework called Rikarin what 
will be avaiable soon).


If you want just create window for e.g. OpenGL context you can 
use WinAPI CreateWindow or wrappers like SDL or GLFW


Re: How do you use D to launch/open a window?

2016-04-23 Thread Kagamin via Digitalmars-d-learn

http://wiki.dlang.org/Libraries_and_Frameworks#GUI_Libraries


Re: How do you use D to launch/open a window?

2016-04-23 Thread Jacob Carlborg via Digitalmars-d-learn

On 2016-04-23 08:53, Mike Parker wrote:


If you need a complete, cross-platform
GUI toolkit, there are D bindings for Gtk (GtkD) and SWT (DWT).


Technically DWT is not bindings to SWT. It's the full source completely 
translated to D.


--
/Jacob Carlborg


Re: How do you use D to launch/open a window?

2016-04-23 Thread thedeemon via Digitalmars-d-learn

On Friday, 22 April 2016 at 21:13:31 UTC, anonymousuer wrote:
What code is needed to tell D to open a window? Thank you in 
advance.


import dlangui;
mixin APP_ENTRY_POINT;

extern (C) int UIAppMain(string[] args) {
Window window = Platform.instance.createWindow("Window 
caption", null);

window.mainWidget = parseML(q{
TextWidget {text: "hi!"}
});

window.show();
return Platform.instance.enterMessageLoop();
}



Re: How do you use D to launch/open a window?

2016-04-23 Thread Mike Parker via Digitalmars-d-learn

On Friday, 22 April 2016 at 21:29:29 UTC, anonymousuer wrote:

On Friday, 22 April 2016 at 21:26:25 UTC, ciechowoj wrote:

On Friday, 22 April 2016 at 21:13:31 UTC, anonymousuer wrote:
What code is needed to tell D to open a window? Thank you in 
advance.


Could you specify what kind of window do you need?


As in a regular Windows window, for example when you open up IE 
or a program. The container of the program itself, 
non-command-line.


The short answer: the same way you do it in C or C++. You just 
need to use bindings to the C or C++ libraries out there. D can 
interface directly with the Win32 API and the bindings for it are 
in DRuntime (the core.sys.windows as Rikki suggested). If all you 
need is to develop on Windows, that's a safe option. If you need 
a complete, cross-platform GUI toolkit, there are D bindings for 
Gtk (GtkD) and SWT (DWT). If you don't need all the bells and 
whistles like tabs, menus, editor panes and the like, then you 
can use SDL or GLFW (see DerelictSDL2 and DerelictGLFW3 for 
bindings), which are oriented toward games and, in GLFW's case, 
OpenGL.


Re: How do you use D to launch/open a window?

2016-04-22 Thread rikki cattermole via Digitalmars-d-learn

On 23/04/2016 9:29 AM, anonymousuer wrote:

On Friday, 22 April 2016 at 21:26:25 UTC, ciechowoj wrote:

On Friday, 22 April 2016 at 21:13:31 UTC, anonymousuer wrote:

What code is needed to tell D to open a window? Thank you in advance.


Could you specify what kind of window do you need?


As in a regular Windows window, for example when you open up IE or a
program. The container of the program itself, non-command-line.


So a GUI window?
If so I am working on a library for that for Phobos.
Only problem is, its a long way off. Although Windows support is more or 
less done.


https://github.com/rikkimax/alphaPhobos/tree/master/source/std/experimental/ui/window

Otherwise you're stuck with c libraries such as SDL.


Re: How do you use D to launch/open a window?

2016-04-22 Thread anonymousuer via Digitalmars-d-learn

On Friday, 22 April 2016 at 21:26:25 UTC, ciechowoj wrote:

On Friday, 22 April 2016 at 21:13:31 UTC, anonymousuer wrote:
What code is needed to tell D to open a window? Thank you in 
advance.


Could you specify what kind of window do you need?


As in a regular Windows window, for example when you open up IE 
or a program. The container of the program itself, 
non-command-line.


Re: How do you use D to launch/open a window?

2016-04-22 Thread ciechowoj via Digitalmars-d-learn

On Friday, 22 April 2016 at 21:13:31 UTC, anonymousuer wrote:
What code is needed to tell D to open a window? Thank you in 
advance.


Could you specify what kind of window do you need?


How do you use D to launch/open a window?

2016-04-22 Thread anonymousuer via Digitalmars-d-learn
What code is needed to tell D to open a window? Thank you in 
advance.