On 13/07/2015 12:14 a.m., "Ola Fosheim =?UTF-8?B?R3LDuHN0YWQi?=
<ola.fosheim.grostad+dl...@gmail.com>" wrote:
I've been thinking a bit about where languages fit in the web service
space. Both mobile app and web services are likely candidates for typed
and efficient languages. I'm not at all happy with the "prolific"
choices that are available. Yet, D is currently not in a strong position
for mobile apps or web servers. So what does the competition look like?
JAVA is big and a strong player, but also heavy and resource demanding.
I don't consider it for my use due to the resource requirements. I want
something more nimble.
- Java is for those who already have invested in the language or need a
framework written in it.
C# plays in the same category as Java, with the additional "Microsoft"
taint (for good and bad).
- Like Java, C# is for those who need integration with Microsoft products.
GO is nimble, but the language is a bit annoying. On the good side it
has a low latency GC, but with a performance penalty. Google are now
also fully supporting Go on Google App Engine (together with Java and
Python)
https://sourcegraph.com/blog/live/gophercon2015/123574706480
https://groups.google.com/forum/#!topic/google-appengine-go/as9wUqT77YU
- Go is an alternative for those who want to write a light server from
scratch and/or integrate with Google Cloud. It has a very quickly gained
a lot of web related frameworks and 3rd party APIs.
RUST was never meant for the web servers, but people seem to have taken
to writing frameworks for it lately. Rust is like Go a bit annoying, but
with some strong non-GC semantics.
- Rust is difficult to place, but seems like an emerging TCP/HTTP
alternative where better-speed-than-GC is a requirement. Might become an
alternative to C++/Java for game-servers?
C++ offers everything needed, but unfortunately writing safe code in C++
is tedious and difficult.
- I'm not really sure why anyone would want to write a server in C++.
Seems like a "last resort" language for this purpose. What you fall back
on when the alternatives don't cut it, or don't integrate with required
libraries, at the cost of development time.
HASKELL is used to some extent. In theory a functional language should
be a perfect match for a web service, but is it? Not sure, but I am not
likely to use it for web programming for the same reason I would not
choose C++. I am afraid it will become tedious.
PONY is an upcoming actor based, non-GC language that might be worth
watching. Not production ready, a fringe language, but the actor based
programming model might be suitable.
Maybe you know some other statically typed languages worth mentioning?
To me it seems like C++ and Rust are the most likely targets for D to
compete with. Yet, to me those languages are on the fringe of
web-service programming. More suitable for specialised services like
image rescaling or game servers.
Java, C# and now Go seems to have strong infrastructure advantages
that makes them difficult targets. They all have integration advantages
not provided by other languages.
What do you think about the future for D in the web service space?
Controversial part: D is not very pleasant to write web services in
currently.
BUT: I also do not consider any language/framework to fully hit the nail
on the head. Although ruby on rails has some pretty neat ideas.
Currently I believe a D web server/front end for web service framework
should be an web application server not a plain old web server.
The model for web servers is odd for D I think.
We have great potential here with web applications.
I personally have plans here but ugh, lets just say last night I started
to rewrite my webserver and I'm now writing bindings for XED (x86
encoding/decoding). Turns out, I kinda want a LISPy style configuration
language *shrugs*.