10 ms·
This is he. AMA!
by andralex 11y ago
This is he. AMA!
- alessioalex 11y agoMult succes in continuare ! :)
- andralex 11y agoMultzam!
- jordigh 11y agoLooks like the target audience for C++ mindshare is being taken away by Golang and Rust. When I think of "D" I think of nothing but "oh, yeah, they use it at Facebook". Who else uses it? How do you see Golang and Rust as competition?
- p0nce 11y ago> Who else uses it? http://wiki.dlang.org/Current_D_Use http://wiki.dlang.org/Current_D_Use And many more companies not in that list.
- jordigh 11y agoNever heard of any of them besides Facebook. Anyone famous?
- patal 11y agoRemedy and Funatics developed popular games. Though it's not said what they used "D" for. Remedy is responsible for Alan Wake and Max Payne, Funatics for Cultures, Zanzarah, among others.
- agumonkey 11y agoPretty big names in their field.
- gozo 11y agoBy following the links in the wiki: Remedy: "integrating D with a typical C/C++ game engine as an extension language for use processing game logic" Funatics: "D as a replacement for the parts of our infrastructure that use nodejs right now"
- andralex 11y agoD would be definitely helped by a large corporate sponsor. I think the foundation will make the language a more serious alternative for such adoption. Competition is good for all involved. Rust and C++ are the competitors closer to the same turf. I think we have a solid value proposition and several ways to enhance it and differentiate ourselves. Time will tell.
- 99decisionstr 11y agoWe built all of our machine learning backend in D at AdRoll. Some examples: - learning of large-scale classifiers and regressors using custom optimizers - real-time pricing of billions of ads a day using these models on ad exchanges. <.5ms latency to parse complex bid requests and compute sparse and simd dense dot-products - a real-time event processing system that hits DynamoDB with ~4.5K json queries per sec on a single node We literally have D systems deployed on hundreds of ec2 instances as we speak and responsible for mission critical tasks of a >100$M run rate company. D is ready for prime time and works at scale.
- martin_ 11y agoThanks for sharing!
- troutwine 11y agoAnd we embed D in our large-scale Erlang deployments, too. It's a fun time.
- shawn-butler 11y ago>> D is ready for prime time Not on ARM. I will try again but last time I tried setting up a toolchain (~6 months ago) met with headache, pain, and eventually heartache.
- srean 11y agoIs there a lot of C++ to go traffic ? I have not seen much along those lines. Go doesn't remotely look like a language that a C++ programmer would be interested in. Given its limitation go is an ok enough language but that's about it.
- rezaprima 11y agoPardon my ignorance, but do you have some kind of roadmap for D ? What features do you prioritize to develop or enhance ? Will D focus on concurrency (Erlang's domain) first, RAD web app/service (PHP, Java, and Ruby's domain), or something else ?
- andralex 11y agoI have quite a few things in mind for the immediate future. Organizationally, I want to get the D Language Foundation rolling as an organizational mothership of the language. Technically, I want to focus on: (a) completely defining the language - fuzzy corners such as the meaning of "shared" are a liability; (b) offer a solid experience to users who don't want a garbage collector; and (c) design more libraries using the fledgling Design by Introspection technique. (EDIT sorry, submitted too soon) With regard to targeted users and uses, D is an ample language that could be used for a large range (heh) of applications. I want to make sure the core language and libraries offers a solid support on which various applications, frameworks, and libraries can build.
- minthd 11y ago>> D is an ample language that could be used for a large range (heh) of applications. I want to make sure the core language and libraries offers a solid support on which various applications, frameworks, and libraries can build. The advice given in marketing new products is often opposite - find a niche, offer much better value than competitors for that niche ,become the leader of that niche - and use that base to expand. I wonder if this kind of advice offers a better route for success for a programming language ? What was the case historically ?
- andralex 11y agoThis is good food for thought. Yes, working through a niche has been a good "in" for some languages.
- vinceguidry 11y ago
- thepumpkin1979 11y ago1. I read you were rewriting the GC, is that still on track? 2. is there any plan to include Mobile(mainly iOS/Android) in the D roadmap? 3. any plans to safely use the standard library with GC disabled?
- andralex 11y ago1. I got std.experimental.allocator accepted for inclusion. On its basis it's not difficult to build the structures and algorithms necessary for garbage collection. However, there were two concurrent developments. One is Martin Nowak and others did great work on improving D's existing garbage collector. The other trend is that it became increasingly clear that a category of users will always be weary of a GC, be it for the right or wrong reasons. So the better place to hit is to offer a great experience in D without requiring any garbage collection at all. 2. Mobile is an important area for a language like D. We don't have many experts on team to work on that, but we're looking. One thing I can do soon is to encourage ARM support, which right now works only experimentally and in a science project kind of way. 3. I want to make it possible to use a well-defined subset of the standard library without a GC. (The subset part is for legacy compatibility.)
- umanwizard 11y agoI fixed a bug in Flint; do you have an equivalent of the Knuth $2.56 check? On a serious note... what do you think you will miss the most about Facebook?
- andralex 11y agoThe income :o). Well, just kidding. I think the best thing about Facebook is its people. They are really really good, and that's felt at all levels.
- deleted 11y ago[deleted]
- jeremiep 11y agoWhats the status of std.stream?
- bionsuba 11y agoNot AA, but streams have been pretty much deprecated in favor of ranges.
- jeremiep 11y agoAren't ranges and streams conceptually different? Ranges are for data traversals and streams are for data transfers. I want more than empty, front and popFront to manipulate byte buffers with high performance. I'm thinking about reading data structures, performing bit conversion, and extracting primitive values from untyped byte arrays. Going as far as to reuse the array's memory for the values being read which isn't possible with ranges.
- andralex 11y agoI think the lack of demand for it has been an indicator that ranges with additions are just enough. We're currently looking at adding optional primitives to ranges in a Design by Introspection manner to support bulk streaming of data.
- jeremiep 11y agoI would definitely love to see range primitives support bulk streaming! How about adding a byte buffer concept alongside with ranges? I'm thinking an API similar to Netty's ByteBuf but using D's compile-time capabilities instead. These would be valid ranges as well but offer direct byte access on top.
- jeremiep 11y agoAlso, while on the subject of status updates, what's the status of std.reflection? Any chance UDAs could be included in there? :) It would be great if the reflection info could be outputted to a separate file for those cases where its only needed during program initialization or used by external tools.
- crudbug 11y agoI followed D for sometime, it has taken all the good parts from other languages in an incremental manner - contracts / actors/ functional concepts. Do you vision D becoming a transpiler platform, similar to JavaScript land where languages target D source ? x-lang => D => ldc => binary
- andralex 11y agoProbably not; D is not a particularly suited language for being a backend target. To be fair, neither is Javascript; it got in that position by accident. That said, just as a related aside, there's the Daniel Murphy's magicport program that translates real projects from C++ do D semiautomatically (Daniel used it to translate the D compiler itself; we recently committed to bootstrapping).
- deleted 11y ago[deleted]
- ihaveajob 11y agoCould you please elaborate on why D is not a good backend language? Knowing the little I know about it, I assumed that would be a good start for it.
- twsted 11y agoMy question: Why? I mean, why this decision for your personal career?
- andralex 11y agoI want to work on something where I can make a difference, and I think this is it. Paul Graham wrote (paraphrased from http://www.paulgraham.com/procrastination.html http://www.paulgraham.com/procrastination.html) one should at best work on things likely to be part of one's obituary. At this point I feel there'd be little difference if my obituary read "worked for 6 years at Facebook" vs. 7, 8 etc. But if I helped people get code written better, that's a lure I wasn't willing to not seize.
- nickpsecurity 11y agoMy background was high assurance systems and security plus regular software/system development. Mainly do R&D now while evangelizing field's developments. The academic and industrial side of the field keep making great progress in transformation (see Semantic Designs), static checking (Astree Analyzer), compilation (CompCert), better optimization, and so on. The main thing that hurts such work, though, is when the language and/or its standard get too complex or vague. C++ was horrid in this regard. So, as you try to formalize it, I encourage you to try to remove as much ambiguity and processing complexity as possible. Maybe also work with academics who specialize in formal specs or methods that caught many defects in prior language or system specs. The result is that researchers interested in building assurance and QA tools for D will have a much easier time. Just look at how long it took to certify a C compiler vs ML and LISP compilers despite latter languages being much more powerful. Reason it's important, whether an immediate concern or not, is that much of the best stuff comes from cash- and time-strapped, but smart, academics trying to make a name or push state-of-the-art. Easier your language is to work with, the more of them might choose it. And you've done a really, good job on a C++ replacement that I thought would've had more adoption. So, I'd like to see some of those brains get put on your work, too. :) Regardless, good luck to you on your next move!