Jump to page: 1 2
Thread overview
Answers needed from those using D for Web Development, Web APIs and Services
Dec 15
aberba
Dec 19
crimaniak
Dec 22
crimaniak
Re: D build and SCons [was Answers needed from those using D for Web Development, Web APIs and Services]
Dec 24
bachmeier
Re: D build and SCons [was Answers needed from those using D for Web Development, Web APIs and Services]
Re: D build and SCons
Re: D build and SCons
Dec 22
bauss
December 15
I'm going to do a writeup on the state of D in Web Development, APIs and Services for 2017. I need the perspective of the community too along with my personal experience. Please help out. More details the better.

0. Since when did you or company start using D in this area?

1. Do you use a framework? Which one?

2. Why that approach and what would have done otherwise?

3. Which task exactly do you use D to accomplish?

4. Which (dub) packages do you use and for what purpose?

5. How do you host your software code (cloud platforms,  vps,  PaaS, docker,  Openshift, kubernetes, etc)?

6. What are some constraints and problems in using D for such tasks?

7. What solutions do you recommend?
December 19
On Friday, 15 December 2017 at 08:13:25 UTC, aberba wrote:
> I'm going to do a writeup on the state of D in Web Development, APIs and Services for 2017. I need the perspective of the community too along with my personal experience. Please help out. More details the better.
I think some questions already answered in this survey https://forum.dlang.org/thread/hrtakvaqrhvayeidqxbb@forum.dlang.org

I wonder, it is possible to filter Google Forms result to see only results with relevant items in 'primary and secondary area of development' questions?
December 21
On Tuesday, 19 December 2017 at 06:58:06 UTC, crimaniak wrote:
> On Friday, 15 December 2017 at 08:13:25 UTC, aberba wrote:
>> I'm going to do a writeup on the state of D in Web Development, APIs and Services for 2017. I need the perspective of the community too along with my personal experience. Please help out. More details the better.
> I think some questions already answered in this survey https://forum.dlang.org/thread/hrtakvaqrhvayeidqxbb@forum.dlang.org
>
> I wonder, it is possible to filter Google Forms result to see only results with relevant items in 'primary and secondary area of development' questions?

yes, I can see each response and export them to csv. I wanted to make a summary of the results but I don't really know where to start
December 22
On Thursday, 21 December 2017 at 19:58:44 UTC, WebFreak001 wrote:
> yes, I can see each response and export them to csv. I wanted
 I think if you can make csv with only answers related to WEB development it will be data relevant to what aberba wants.

> to make a summary of the results but I don't really know where to start

  As for me, the main summary of results already is on the /viewanalytics page:

D User Survey
167 answers

D even much more marginal than I expected.

--
Узок их круг, страшно далеки они от народа
December 22
On Friday, 15 December 2017 at 08:13:25 UTC, aberba wrote:
> 0. Since when did you or company start using D in this area?

I used D for web in 2009 until about 2013 for work, and then changed jobs and didn't get back into using D until this year.

> 1. Do you use a framework? Which one?

my own web.d

> 2. Why that approach and what would have done otherwise?

Libraries suck. I avoid them unless they are ubiquitous. Using traditional cgi meant it could go with a well-tested production server.

> 3. Which task exactly do you use D to accomplish?

everything server-side, json apis as well as html pages/form handling/websockets.

> 4. Which (dub) packages do you use and for what purpose?

none

> 5. How do you host your software code (cloud platforms,  vps,  PaaS, docker,  Openshift, kubernetes, etc)?

on a linux server.

> 6. What are some constraints and problems in using D for such tasks?

Nothing serious. Compile time got a little slow (~14 seconds at one point) but some refactoring improved it.

> 7. What solutions do you recommend?

keep it simple to get work done.
December 22
On Friday, 15 December 2017 at 08:13:25 UTC, aberba wrote:
> I'm going to do a writeup on the state of D in Web Development, APIs and Services for 2017. I need the perspective of the community too along with my personal experience. Please help out. More details the better.
>
> 0. Since when did you or company start using D in this area?

I converted 2 of my websites from PHP to D earlier this year.

http://clarityfitidaho.com
http://bobbiblu.net

>
> 1. Do you use a framework? Which one?

I use my own "cgi.d" framework to create cgi scripts in D that are served up by apache. (https://github.com/marler8997/mored/blob/master/more/cgi.d)  I started a project to replace apache for my applications, however, I have not finished or deployed it yet.

>
> 2. Why that approach and what would have done otherwise?

PHP is a nightmare.  I love the benefits of compiled languages, and D is both compiled and powerful enough to compete with dynamic languages like python/javascript/php.  Go would also be a good candidate, but without all the power of D that I've come to know and love, I feel like someone's cut off my legs when I program in it.

>
> 3. Which task exactly do you use D to accomplish?

In the web space, I use it to render web pages via cgi scripts, but I use D in many more areas outside of the web space.

>
> 4. Which (dub) packages do you use and for what purpose?

I don't use any dub packages.

>
> 5. How do you host your software code (cloud platforms,  vps,  PaaS, docker,  Openshift, kubernetes, etc)?

I rent a debian server for $50 a month from serverpronto. I host a handful of websites on it and use it for other things as well.

>
> 6. What are some constraints and problems in using D for such tasks?

No complaints from me.  D works great especially on linux.

>
> 7. What solutions do you recommend?


December 22
On Friday, 15 December 2017 at 08:13:25 UTC, aberba wrote:
> I'm going to do a writeup on the state of D in Web Development, APIs and Services for 2017. I need the perspective of the community too along with my personal experience. Please help out. More details the better.
>
> 0. Since when did you or company start using D in this area?
>
> 1. Do you use a framework? Which one?
>
> 2. Why that approach and what would have done otherwise?
>
> 3. Which task exactly do you use D to accomplish?
>
> 4. Which (dub) packages do you use and for what purpose?
>
> 5. How do you host your software code (cloud platforms,  vps,  PaaS, docker,  Openshift, kubernetes, etc)?
>
> 6. What are some constraints and problems in using D for such tasks?
>
> 7. What solutions do you recommend?

0. Since over a year ago, I mostly do freelancing with it, so just me really.

1. Diamond -- https://github.com/diamondmvc/diamond

2. Would have done nothing different.

3. Every project I do using D, I pretty much use D only, so all tasks necessary; big or small.

4. mysql-native, vibe.d and diamond.

5. I don't host any projects myself.

6. None so far, except for webservices like SOAP. (Although I'm planning on implementing that for Diamond -- Don't know when however.)

7. Depends on the task.
December 22
> On Friday, 15 December 2017 at 08:13:25 UTC, aberba wrote:
> > 0. Since when did you or company start using D in this area?

Unfortunately I'm presently not able to use D at my job.


[...]
> > 1. Do you use a framework? Which one?

I've used Adam Ruppe's cgi.d for a bit, but recently switched to vibe.d.


[...]
> > 2. Why that approach and what would have done otherwise?

I actually rather like cgi.d for its simplicity.  Vibe.d is pretty cool and pretty powerful, but it comes with a complex set of dependencies that are a pain to manage. Yes I know dub does it "automatically", but the problem with dub is that it tries to do too much -- it wants to be a build system in addition to being a packaging system. The former is OK, I guess, even though I really wish it was more configurable in terms of how it manages local repository caches. But as a build system, I'm sorry to say that dub sucks. Or at least, its docs suck, 'cos I can't figure out how to make it do what I want. After struggling with it for about a week or two, I threw in the towel and went back to SCons.  Nowadays I only use dub for updating vibe.d via a dummy blank project.

The main reason I went to vibe.d was because of HTTPS support, that cgi.d didn't have. That, and also it was supposed to be the flagship web platform for D, so I figured I should at least give it a try. It does have some nice perks like less boilerplate for handling HTTP requests, I suppose, and Diet templates are kinda cool though also kinda klunky in certain details. The ubiquitous use of classes instead of structs rubbed me the wrong way somewhat, but I can live with it. Built-in support for databases was nice, but I didn't end up using it because (1) I needed a persistent database that's always consistent on-disk, so Redis was out, and I really don't like the idea of needing a separate database server just to run Mongo (managing a separate dependent service is way too much needless complexity for what I'm doing), so I went back to Adam Ruppe's sqlite.d instead.

Overall, vibe.d is not bad. The docs could use improvement -- I struggled to find what I want for quite a few things, which wasted a lot of time. A lot of the frustration came from the docs being unclear about whether something was possible or not. Beyond the most basic examples, many things were implicit, or just plain not stated, leading to me spending far too much time trying to figure out whether module X supported feature Y, or if I should look elsewhere or write my own. I'm OK with writing a feature myself, but it's frustrating when I don't even know whether I need to.  Other than that, though, vibe.d performance is pretty good and it does what I need, with a number of nice syntactic shortcuts to reduce boilerplate. So overall, I'm relatively happy with it.


[...]
> > 3. Which task exactly do you use D to accomplish?

Just serving dynamic webpages on server-side. Basically as a PHP replacement.


[...]
> > 4. Which (dub) packages do you use and for what purpose?

Just vibe.d and its dependencies.

I struggled to make dub do what I want, so in general I avoided using it, sad to say.  Currently the only thing I use dub for is to update vibe.d, via a dummy empty package that declares dependency on vibe.d. Once vibe.d is built, I link my code to its static libraries manually from SCons.


> > 5. How do you host your software code (cloud platforms,  vps,  PaaS, docker,  Openshift, kubernetes, etc)?

On a Linux server.


> > 6. What are some constraints and problems in using D for such tasks?

Constraints? Problems?  D has none. :-D

Well OK, let's just say D fits the way I work very well, and has powerful tools for reducing boilerplate, so I find working in D highly productive.  If there's any real issue with using D overall, it's in struggling to make dub do what I want.  I still haven't figured out whether that's due to an inherent limitation in dub, or the docs are just that bad.


[...]
> > 7. What solutions do you recommend?
[...]

If you're starting from scratch, vibe.d + dub isn't a bad approach. My main issue with dub is in trying to integrate it with an existing codebase and with my style of working.  It's somewhat Windows-like in that respect, if you follow its workflow style, everything Just Works(tm). But if you want to customize stuff like I do, be prepared for a less pleasant time that may involve doing lots of stuff on your own. Thankfully, doing stuff on your own in D is less painful than in other languages that I've programmed in, so even if you end up needing to do that, it's workable.


T

-- 
Frank disagreement binds closer than feigned agreement.
December 22
On Friday, 22 December 2017 at 17:42:57 UTC, H. S. Teoh wrote:
> The main reason I went to vibe.d was because of HTTPS support, that cgi.d didn't have.

You shouldn't be running a homemade HTTP server in public. The way you should do it is putting the application behind a real web server (you can do it with cgi mode or http using a reverse proxy, both of which cgi.d fully supports) which is responsible for the encryption.
December 22
On Fri, 2017-12-22 at 09:42 -0800, H. S. Teoh via Digitalmars-d wrote: […]
> that are a pain to manage. Yes I know dub does it "automatically",
> but
> the problem with dub is that it tries to do too much -- it wants to
> be a
> build system in addition to being a packaging system. The former is
> OK,
> I guess, even though I really wish it was more configurable in terms
> of
> how it manages local repository caches. But as a build system, I'm
> sorry
> to say that dub sucks. Or at least, its docs suck, 'cos I can't
> figure
> out how to make it do what I want. After struggling with it for about
> a
> week or two, I threw in the towel and went back to SCons.  Nowadays I
> only use dub for updating vibe.d via a dummy blank project.
> 
[…]

Just to reiterate, SCons D support now has a ProgramAllAtOnce builder for those that want to use Unit-Threaded in their D codebases using SCons.

Also I have the beginnings of a Dub SCons tool for using Dub as a package manager in a SCons build.

Currently it does what I need, so until there are users requesting extensions and bug fixes it is "job done", though I may try to get enough tests to go for a pull request of the currently separate tool into the SCons distribution.


https://github.com/russel/SCons_D_Experiment

-- 
Russel.
===========================================
Dr Russel Winder      t: +44 20 7585 2200
41 Buckmaster Road    m: +44 7770 465 077
London SW11 1EN, UK   w: www.russel.org.uk


« First   ‹ Prev
1 2