digitalmars.D - Reasons to use D
- Chris (20/20) Sep 11 2015 Out of curiosity I searched for "reasons to use D" and I found
- Jack Stouffer (6/17) Sep 11 2015 It's ironic, BECAUSE D is multi-paradigm it allows the author to
- Chris (4/9) Sep 11 2015 You have a point there. But then again, if you don't know about
- "Ola Fosheim =?UTF-8?B?R3LDuHN0YWQi?= (12/26) Sep 11 2015 Then again, there are a lot of multi-paradigm platforms. I think
- Adam D. Ruppe (5/7) Sep 11 2015 "3. The documentation poor."
- Namespace (2/10) Sep 11 2015 JQuery, PHP, C++? That the nicest docs I've ever seen.
- Adam D. Ruppe (10/11) Sep 11 2015 C++ tends to be nice, yes. PHP isn't really any better than D, at
- Adam D. Ruppe (16/17) Sep 11 2015 BTW this is the lesson I've learned: have a couple examples for
- "Ola Fosheim =?UTF-8?B?R3LDuHN0YWQi?= (10/21) Sep 11 2015 I don't know. I liked the PHP documentation for having user
- Sebastiaan Koppe (2/6) Sep 11 2015 Does it have to do with char encodings?
- Adam D. Ruppe (15/16) Sep 11 2015 Not the issue I hit: it has to do with the script tags being
- skoppe (8/15) Sep 11 2015 Ah, forget about my suggestion, I misread something on the link
- Adam D. Ruppe (2/5) Sep 11 2015 I'm pretty sure it is the other way around...
- Sebastiaan Koppe (10/15) Sep 12 2015 I suppose you mean changing the contents of an existing script
- Adam D. Ruppe (10/13) Sep 12 2015 oh yeah, you are right. That's one thing I do like about D
- Meta (5/13) Sep 12 2015 Maybe because the static type system allows for overloading and
- Adam D. Ruppe (5/8) Sep 12 2015 Yea. Another huge thing to me is the slice operator. I use it for
- "Ola Fosheim =?UTF-8?B?R3LDuHN0YWQi?= (15/23) Sep 12 2015 Arrayviews ("slices") are available as a type so you can do it
- Adam D. Ruppe (7/9) Sep 12 2015 Yeah, there's also the Array.slice and String.substring that work
- "Ola Fosheim =?UTF-8?B?R3LDuHN0YWQi?= (9/19) Sep 12 2015 Array.slice create value copies, not reference views. I don't
- Adam D. Ruppe (18/24) Sep 12 2015 Right, that's why I said "kinda similarly"... the copy is really
- "Ola Fosheim =?UTF-8?B?R3LDuHN0YWQi?= (25/34) Sep 12 2015 Nice, so now you will do it again in 2016 ? ;)
- bachmeier (5/7) Sep 11 2015 I recently decided to learn PHP just to learn PHP. I can confirm
- "Ola Fosheim =?UTF-8?B?R3LDuHN0YWQi?= (13/21) Sep 11 2015 Ruby and Python have their documentation on Slashdot...
- "Ola Fosheim =?UTF-8?B?R3LDuHN0YWQi?= (3/4) Sep 11 2015 StackOverflow... Duh...
- David DeWitt (7/15) Sep 11 2015 I think the D docs are actually pretty good so I dont get why ppl
- Bahman Movaqar (5/9) Sep 11 2015 Couldn't help but to drop in and count two exceptions: Racket's
- bachmeier (3/14) Sep 11 2015 I'd add Guile. It's fun to read the manual.
- Bahman Movaqar (3/19) Sep 12 2015 /me nods
- Chris (26/31) Sep 11 2015 It is interesting. However, criticism of D often revolves around
- "Ola Fosheim =?UTF-8?B?R3LDuHN0YWQi?= (42/53) Sep 11 2015 Because of the lack of alternatives... But it is possible to do
- Sebastiaan Koppe (10/25) Sep 11 2015 I never understood those TypeScript people. They would learn a
- "Ola Fosheim =?UTF-8?B?R3LDuHN0YWQi?= (19/27) Sep 11 2015 It isn't a new language. It is where ECMAScript is going +
- "Ola Fosheim =?UTF-8?B?R3LDuHN0YWQi?= (3/3) Sep 11 2015 Here's another recent D mention:
- Bahman Movaqar (14/18) Sep 11 2015 I recall when Scala came out, somebody published[1] a
Out of curiosity I searched for "reasons to use D" and I found this: http://blog.pluralsight.com/d-programming-language-explained This paragraph called my attention: "At the same time, D doesn’t get all New Age on you: It doesn’t try to be multi-paradigm, it doesn’t claim “five percent better than C” performance, nor does it provide any language features that dramatically alter the existing object-oriented programming status quo." Sorry, but D _is_ multi-paradigm and it does challenge (not actively though) the OOP "status quo". I haven't written a class for a long time now, and I don't really miss it. D does not go against OOP in an ideological kind of way, but it clearly shows other ways of doing things. I like this one: "Users of D host an annual D language conference, but they mainly communicate online." If you are lucky, you can watch them in their natural habitat. Their mating habits are still a mystery to scientists. The article is not that old, you know (May 2014).
Sep 11 2015
On Friday, 11 September 2015 at 11:52:20 UTC, Chris wrote:Out of curiosity I searched for "reasons to use D" and I found this: http://blog.pluralsight.com/d-programming-language-explained This paragraph called my attention: "At the same time, D doesn’t get all New Age on you: It doesn’t try to be multi-paradigm, it doesn’t claim “five percent better than C” performance, nor does it provide any language features that dramatically alter the existing object-oriented programming status quo." Sorry, but D _is_ multi-paradigm and it does challenge (not actively though) the OOP "status quo".It's ironic, BECAUSE D is multi-paradigm it allows the author to believe it's not. When you have a C like syntax and a language that allows you to write your Java like code, and if you don't know about ranges, then I can easily see how this could be the author's opinion.
Sep 11 2015
On Friday, 11 September 2015 at 12:07:47 UTC, Jack Stouffer wrote:It's ironic, BECAUSE D is multi-paradigm it allows the author to believe it's not. When you have a C like syntax and a language that allows you to write your Java like code, and if you don't know about ranges, then I can easily see how this could be the author's opinion.You have a point there. But then again, if you don't know about ranges and all the other nice things in D, you shouldn't stick out your head like this.
Sep 11 2015
On Friday, 11 September 2015 at 11:52:20 UTC, Chris wrote:Out of curiosity I searched for "reasons to use D" and I found this: http://blog.pluralsight.com/d-programming-language-explained This paragraph called my attention: "At the same time, D doesn’t get all New Age on you: It doesn’t try to be multi-paradigm, it doesn’t claim “five percent better than C” performance, nor does it provide any language features that dramatically alter the existing object-oriented programming status quo." Sorry, but D _is_ multi-paradigm and it does challenge (not actively though) the OOP "status quo". I haven't written a class for a long time now, and I don't really miss it. D does not go against OOP in an ideological kind of way, but it clearly shows other ways of doing things.Then again, there are a lot of multi-paradigm platforms. I think C++ apologizers say "C++ is multi-paradigm" where others say "C++ is a messy hack". It sounds better. Multi paradigm: JVM, .NET, Common Lisp... even JavaScript could be framed as multi paradigm. Single paradigm: Forth, Scheme... And... eh? Here is another source for external D evaluations I missed, January 2015: http://developers.slashdot.org/story/15/01/20/2026221/is-d-an-underrated-programming-language I find the viewpoints of the student who wrote 18000 lines of D code interesting.
Sep 11 2015
On Friday, 11 September 2015 at 12:30:42 UTC, Ola Fosheim Grøstad wrote:I find the viewpoints of the student who wrote 18000 lines of D code interesting."3. The documentation poor." I agree.... but so is the documentation for virtually everything else I've ever used too. I'd take D's over Ruby's for example.
Sep 11 2015
On Friday, 11 September 2015 at 13:15:03 UTC, Adam D. Ruppe wrote:On Friday, 11 September 2015 at 12:30:42 UTC, Ola Fosheim Grøstad wrote:JQuery, PHP, C++? That the nicest docs I've ever seen.I find the viewpoints of the student who wrote 18000 lines of D code interesting."3. The documentation poor." I agree.... but so is the documentation for virtually everything else I've ever used too. I'd take D's over Ruby's for example.
Sep 11 2015
On Friday, 11 September 2015 at 13:35:07 UTC, Namespace wrote:JQuery, PHP, C++? That the nicest docs I've ever seen.C++ tends to be nice, yes. PHP isn't really any better than D, at least not when I was using it a few years ago. jQuery has burned me in the past. Take this page for example: http://api.jquery.com/html/ Tell me what it doesn't tell you... well, unless you know, you'll fail. And waste hours debugging some code that works perfectly fine with the browser's innerHTML property yet fails with jQuery's .html(). No docs are better than subtly wrong docs.
Sep 11 2015
On Friday, 11 September 2015 at 13:51:55 UTC, Adam D. Ruppe wrote:jQuery has burned me in the past.BTW this is the lesson I've learned: have a couple examples for the most common case, ready to be copy/pasted AND explicitly call out the weird edge cases with examples learned from debugging experience. For example, D docs should demonstrate patterns of compiler errors produced by common misuse. Make it so when someone searches the vomit dmd spews, it shows them the official doc saying "this is why it happened, what it means, and how to fix it". Tutorials should immediately accustom people to seeing compiler errors by guiding them into, then back out of, various error situations. If only I have three months wherein I didn't have to do anything else.... I'd actually really like to write a lot of D documentation.
Sep 11 2015
On Friday, 11 September 2015 at 13:51:55 UTC, Adam D. Ruppe wrote:On Friday, 11 September 2015 at 13:35:07 UTC, Namespace wrote:I don't know. I liked the PHP documentation for having user entries, not always correct, but often pointing out very real pitfalls. Of course, it is better to not have the pitfalls in the first place... C++ is really bad on StackOverflow. But cppreference.com is good and accurate, but that's because it actually is based on a formal reference. So for C++ I don't need Google as much as I do when writing programs in Python or Javascript. MDN and caniuseit.com are good too, I think.JQuery, PHP, C++? That the nicest docs I've ever seen.C++ tends to be nice, yes. PHP isn't really any better than D, at least not when I was using it a few years ago. jQuery has burned me in the past. Take this page for example: http://api.jquery.com/html/ Tell me what it doesn't tell you... well, unless you know, you'll fail. And waste hours debugging some code that works perfectly fine with the browser's innerHTML property yet fails with jQuery's .html(). No docs are better than subtly wrong docs.
Sep 11 2015
On Friday, 11 September 2015 at 13:51:55 UTC, Adam D. Ruppe wrote:jQuery has burned me in the past. Take this page for example: http://api.jquery.com/html/ Tell me what it doesn't tell you... well, unless you know, you'll fail.Does it have to do with char encodings?
Sep 11 2015
On Friday, 11 September 2015 at 15:30:05 UTC, Sebastiaan Koppe wrote:Does it have to do with char encodings?Not the issue I hit: it has to do with the script tags being ripped out. It says "To set the content of a <script> element, which does not contain HTML, use the .text() method and not .html().", but it doesn't say all script in the middle of the html will be ripped out too. The way I read that was $("script").html() is wrong and you should use $("script").text(). OK, script tags are implicitly cdata so indeed it might be different.. but if you do "div".innerHTML = "<script>sdasd</script>" in the browser, it all works! So when it said "This method uses the browser's innerHTML property", I wasn't expecting it to behave significantly differently!
Sep 11 2015
On Friday, 11 September 2015 at 19:54:55 UTC, Adam D. Ruppe wrote:On Friday, 11 September 2015 at 15:30:05 UTC, Sebastiaan Koppe wrote:Ah, forget about my suggestion, I misread something on the link you send.Does it have to do with char encodings?Not the issue I hit.So when it said "This method uses the browser's innerHTML property", I wasn't expecting it to behave significantly differently!That is not the only way it behaves differently. jQuery's html() will actually execute inline script, whereas innerHTML won't. Coming back to the thread's title, jQuery is a perfectly valid reason to use D. Sad that there is no proper way to do modern web development in D.
Sep 11 2015
On Saturday, 12 September 2015 at 03:52:11 UTC, skoppe wrote:That is not the only way it behaves differently. jQuery's html() will actually execute inline script, whereas innerHTML won't.I'm pretty sure it is the other way around...
Sep 11 2015
On Saturday, 12 September 2015 at 04:05:44 UTC, Adam D. Ruppe wrote:On Saturday, 12 September 2015 at 03:52:11 UTC, skoppe wrote:I suppose you mean changing the contents of an existing script element. I was talking about inserting a new inline-script via html(). Run this in the console on this page: $("#copyright").html("<script>alert(42);</script>"); // shows 42 document.querySelector("#copyright").innerHTML = "<script>alert(42);</script>"; // nothingThat is not the only way it behaves differently. jQuery's html() will actually execute inline script, whereas innerHTML won't.I'm pretty sure it is the other way around...
Sep 12 2015
On Saturday, 12 September 2015 at 11:36:47 UTC, Sebastiaan Koppe wrote:I suppose you mean changing the contents of an existing script element. I was talking about inserting a new inline-script via html().oh yeah, you are right. That's one thing I do like about D though: I find it so much easier to remember (perhaps because I wrote most the libs I use myself). I forget the difference between stuff like substr and substring in Javascript or chop and chomp in Ruby and so on. I have to refer to the docs to remember this stuff, even when I write it all the time. I find D's ways to be much easier to store in the brain, despite D arguably being a bigger, more complex language.
Sep 12 2015
On Saturday, 12 September 2015 at 16:32:52 UTC, Adam D. Ruppe wrote:oh yeah, you are right. That's one thing I do like about D though: I find it so much easier to remember (perhaps because I wrote most the libs I use myself). I forget the difference between stuff like substr and substring in Javascript or chop and chomp in Ruby and so on. I have to refer to the docs to remember this stuff, even when I write it all the time. I find D's ways to be much easier to store in the brain, despite D arguably being a bigger, more complex language.Maybe because the static type system allows for overloading and so all of these utility functions don't have to do a million different things depending on what you pass to them.
Sep 12 2015
On Saturday, 12 September 2015 at 16:34:42 UTC, Meta wrote:Maybe because the static type system allows for overloading and so all of these utility functions don't have to do a million different things depending on what you pass to them.Yea. Another huge thing to me is the slice operator. I use it for a lot of stuff and it is consistent for strings and other arrays. (well, utf issues aside, but D's rule there is simple enough to remember too)
Sep 12 2015
On Saturday, 12 September 2015 at 18:23:55 UTC, Adam D. Ruppe wrote:On Saturday, 12 September 2015 at 16:34:42 UTC, Meta wrote:Arrayviews ("slices") are available as a type so you can do it like this: a = new Uint32Array([7,2,3,6]) // a is [7, 2, 3, 6] b = a.subarray(1,3) // b reference [2, 3] b[0] = 8 // now a is [7, 8, 3, 6] a.set([5,9], 2) // now a is [7,8,5,9] Destructuring is coming too. So you can destructure arrays as if they are tuples. E.g.: var a,b; [a,b] = [2,4] [a,b] = [b,a] I think it might work in TypeScript or some of the other compilers already.Maybe because the static type system allows for overloading and so all of these utility functions don't have to do a million different things depending on what you pass to them.Yea. Another huge thing to me is the slice operator. I use it for a lot of stuff and it is consistent for strings and other arrays. (well, utf issues aside, but D's rule there is simple enough to remember too)
Sep 12 2015
On Saturday, 12 September 2015 at 18:44:44 UTC, Ola Fosheim Grøstad wrote:Arrayviews ("slices") are available as a type so you can do it like this:Yeah, there's also the Array.slice and String.substring that work kinda similarly in old standard javascript. But there's still a lot of type-specific verbiage in there, whereas with D, it is always the same [a .. $] for almost anything so it is one thing to remember instead of three or more.
Sep 12 2015
On Saturday, 12 September 2015 at 18:48:52 UTC, Adam D. Ruppe wrote:On Saturday, 12 September 2015 at 18:44:44 UTC, Ola Fosheim Grøstad wrote:Array.slice create value copies, not reference views. I don't think there is a "slice" for Array. :-/Arrayviews ("slices") are available as a type so you can do it like this:Yeah, there's also the Array.slice and String.substring that work kinda similarly in old standard javascript.But there's still a lot of type-specific verbiage in there, whereas with D, it is always the same [a .. $] for almost anything so it is one thing to remember instead of three or more.Yes. So, let's create a TypeScript like subset of:D. Compile GC-based D-JS -> JavaScript + TypeScript definitions. The problem is that you might need a little bit of Dependent Typing in order to provide types for the browser API. I.e. return type depending on parameter values? Not sure.
Sep 12 2015
On Saturday, 12 September 2015 at 18:59:11 UTC, Ola Fosheim Grøstad wrote:Array.slice create value copies, not reference views. I don't think there is a "slice" for Array. :-/Right, that's why I said "kinda similarly"... the copy is really important if you want to mutate it, but it is good enough for viewing (tho poorly performing by comparsion).Compile GC-based D-JS -> JavaScript + TypeScript definitions.That's basically what my D->JS thing did back in 2011.The problem is that you might need a little bit of Dependent Typing in order to provide types for the browser API. I.e. return type depending on parameter values? Not sure.That doesn't actually happen very often, and when it does, you can do a function overload like string foo(string s) { return s;} vs int foo(int i) { return i; } and it works in D land pretty well. Then use a pragma(mangle) to make both refer to the same browser function. That actually worked somewhat well in my dtojs but it was a mild hassle too once function callbacks got more involved. You can template them in D but then it bloats the generated JS for no real reason since they all have identical dynamically typed code! I suppose that is solvable too but i never got around to it and just went back to writing normal javascript. (I write small JS files anyway, it is an ok language for small scripts.)
Sep 12 2015
On Saturday, 12 September 2015 at 20:03:09 UTC, Adam D. Ruppe wrote:That's basically what my D->JS thing did back in 2011.Nice, so now you will do it again in 2016 ? ;)That actually worked somewhat well in my dtojs but it was a mild hassle too once function callbacks got more involved. You can template them in D but then it bloats the generated JS for no real reason since they all have identical dynamically typed code!Yes, you need to convert the D into a JS-specific IR and then fix it in an optimization step before code gen. But function overloading isn't enough, unless you accept casting, since javascript can return anything. I guess you can use template parameters when you request literal strings like «document.createElement("div")», but in other situations it might be more tricky. I don't think function overloading is enough if you want to avoid casting. But the TypeScript definition files might make it somewhat easier, and might be a good starting point as they expose typing issues. I don't think they are too hard to parse partially: https://github.com/Microsoft/TypeScript/blob/master/lib/lib.core.es6.d.ts https://github.com/Microsoft/TypeScript/blob/master/lib/lib.es6.d.ts https://github.com/Microsoft/TypeScript/blob/master/lib/lib.dom.d.ts etc Although I think one should only include what browsers have in common. So it is a tedious job that probably involves writing a test program that test what different browsers support and upload results to a web server...I suppose that is solvable too but i never got around to it and just went back to writing normal javascript. (I write small JS files anyway, it is an ok language for small scripts.)It's ok if you only write a few hundred lines of javascript, but the IDE code completion you get with typing really makes a difference.
Sep 12 2015
On Friday, 11 September 2015 at 13:51:55 UTC, Adam D. Ruppe wrote:C++ tends to be nice, yes. PHP isn't really any better than D, at least not when I was using it a few years ago.I recently decided to learn PHP just to learn PHP. I can confirm that the official docs are definitely worse than those for D. The Hacker News-type comments at the bottom make me question the quality of the whole PHP ecosystem.
Sep 11 2015
On Friday, 11 September 2015 at 13:15:03 UTC, Adam D. Ruppe wrote:On Friday, 11 September 2015 at 12:30:42 UTC, Ola Fosheim Grøstad wrote:Ruby and Python have their documentation on Slashdot... I wish Ali's book was available on dlang.org and cross-linked with documentation. I think documentation is the smaller issue (full language spec is a much more important priority IMHO). But it is interesting to read these current raw viewpoints from people who obviously chose D as the best starting point for their projects, used it for a while, but somehow lost interest and feel a need to express their views. If D had an asm.js backend it might be possible to create a "editor/compiler in your browser" tutorial. I like those. Combine that with shared view and live chat in the same window and you have a kick ass entry level solution.I find the viewpoints of the student who wrote 18000 lines of D code interesting."3. The documentation poor." I agree.... but so is the documentation for virtually everything else I've ever used too. I'd take D's over Ruby's for example.
Sep 11 2015
On Friday, 11 September 2015 at 13:41:23 UTC, Ola Fosheim Grøstad wrote:Ruby and Python have their documentation on Slashdot...StackOverflow... Duh...
Sep 11 2015
On Friday, 11 September 2015 at 13:15:03 UTC, Adam D. Ruppe wrote:On Friday, 11 September 2015 at 12:30:42 UTC, Ola Fosheim Grøstad wrote:I think the D docs are actually pretty good so I dont get why ppl say otherwise. I do much prefer the "New library reference preview" to the standard layout for the std. The only thing D needs is more examples of stuff online and easily searchable. I can Google something in Python and find a number of examples which is nice for work.I find the viewpoints of the student who wrote 18000 lines of D code interesting."3. The documentation poor." I agree.... but so is the documentation for virtually everything else I've ever used too. I'd take D's over Ruby's for example.
Sep 11 2015
On Friday, 11 September 2015 at 13:15:03 UTC, Adam D. Ruppe wrote:"3. The documentation poor." I agree.... but so is the documentation for virtually everything else I've ever used too. I'd take D's over Ruby's for example.Couldn't help but to drop in and count two exceptions: Racket's docs[1] and Java API docs[2]. [1] http://docs.racket-lang.org/ [2] http://docs.oracle.com/javase/7/docs/api/
Sep 11 2015
On Friday, 11 September 2015 at 14:17:03 UTC, Bahman Movaqar wrote:On Friday, 11 September 2015 at 13:15:03 UTC, Adam D. Ruppe wrote:I'd add Guile. It's fun to read the manual."3. The documentation poor." I agree.... but so is the documentation for virtually everything else I've ever used too. I'd take D's over Ruby's for example.Couldn't help but to drop in and count two exceptions: Racket's docs[1] and Java API docs[2]. [1] http://docs.racket-lang.org/ [2] http://docs.oracle.com/javase/7/docs/api/
Sep 11 2015
On Friday, 11 September 2015 at 17:58:49 UTC, bachmeier wrote:On Friday, 11 September 2015 at 14:17:03 UTC, Bahman Movaqar wrote:/me nods Another fun manual is Gforth's.On Friday, 11 September 2015 at 13:15:03 UTC, Adam D. Ruppe wrote:I'd add Guile. It's fun to read the manual."3. The documentation poor." I agree.... but so is the documentation for virtually everything else I've ever used too. I'd take D's over Ruby's for example.Couldn't help but to drop in and count two exceptions: Racket's docs[1] and Java API docs[2]. [1] http://docs.racket-lang.org/ [2] http://docs.oracle.com/javase/7/docs/api/
Sep 12 2015
On Friday, 11 September 2015 at 12:30:42 UTC, Ola Fosheim Grøstad wrote:Here is another source for external D evaluations I missed, January 2015: http://developers.slashdot.org/story/15/01/20/2026221/is-d-an-underrated-programming-language I find the viewpoints of the student who wrote 18000 lines of D code interesting.It is interesting. However, criticism of D often revolves around issues that every language has (or will have sooner or later - see you later Rust!;)). Yet people are willing to put up with the deficiencies of other languages, because they are told to by a committee, because it's "official", because it's the way it is. If not implementing breaking changes is an issue in D, why do people put up with C++'s backward compatibility then? Not to mention the fact that every few years there's a new C++ programming style that renders old code obsolete (in other words "What you've written so far is all crap!"). If D implemented breaking changes on a regular basis, the criticism would go along the lines of "One cannot use it, because the code breaks all the time, stay away from it until it's stable!". I've heard it all before. A lot of it has to do with expectations. The user is disappointed, but what did s/he expect in the first place? A good example are book reviews on amazon. Some people say a book is crap, because there were words they didn't understand, some people hate a book, because they expected something like Tolkien, but the language was not "noble" enough for their liking. Does that mean the book is actually bad? At least this particular reviewer of D actually used it and he or she does have points to take home and work on. However, I can't help but think that it's only from D that people expect miracles.
Sep 11 2015
On Friday, 11 September 2015 at 15:14:55 UTC, Chris wrote:the way it is. If not implementing breaking changes is an issue in D, why do people put up with C++'s backward compatibility then?Because of the lack of alternatives... But it is possible to do both. It is possible to bring current D to a complete state and maintain it, and also create a subset of it. In the JavaScript world you have various versions of JavaScript, TypeScript, TypeScript+React, TypeScript+Angular, they coexists. So, as long as you can easily interface between languages it is ok. I think language designers should focus more on creating languages for writing libraries to use with other languages than creating host languages. I am very unlikely to use Rust and D as host languages (Swift, Objective-C, Python etc are more likely).If D implemented breaking changes on a regular basis, the criticism would go along the lines of "One cannot use it, because the code breaks all the time, stay away from it until it's stable!". I've heard it all before.Yes, sure. Getting what you have specced out and polished is important, because as we can see with Rust the number of contributors increase quite a lot when people sense that you are "close to being done, this is it". I guess because it is easier to defend investing "work time" then. Then again it takes a looong time from you freeze to being totally production ready in most people's eyes. Go has been polished for 3 years and still need another year... But Go's commercial uptake is impressive for a relatively simple language. Rust needs a few more years, yep, I think so.At least this particular reviewer of D actually used it and he or she does have points to take home and work on. However, I can't help but think that it's only from D that people expect miracles.All languages suck at one level or another, which is why it is perhaps better to create smaller languages that interoperate with other languages really well, but I guess that vision is not so interesting, because adding a feature is easier and more fun than polishing what you have. Often the runtime become more of an issue than the language. You don't want 4 big runtimes in the same executable. There are good things about Perl 6 for instance, but it is just TOO big to keep in your head if you don't use it frequently. Which is a petty, because a focused string processing language would be a nice "sublanguage" to integrate with other languages. Same thing with Haskell. I'd love to use Haskell for some very specific tasks, but not as main programming language for a project. I think the JavaScript world is doing much better at the integration part than other platforms. There are now more and more browser-compilers where you can write code for various languages and have it compiled to JavaScript on the fly. Even OCaml: http://zhanghongbo.me/js-demo/
Sep 11 2015
On Friday, 11 September 2015 at 15:37:45 UTC, Ola Fosheim Grøstad wrote:In the JavaScript world you have various versions of JavaScript, TypeScript, TypeScript+React, TypeScript+Angular, they coexists. So, as long as you can easily interface between languages it is ok.I think language designers should focus more on creating languages for writing libraries to use with other languages than creating host languages. I am very unlikely to use Rust and D as host languages (Swift, Objective-C, Python etc are more likely).I never understood those TypeScript people. They would learn a *new* language, just to compile it into JavaScript?I think the JavaScript world is doing much better at the integration part than other platforms. There are now more and more browser-compilers where you can write code for various languages and have it compiled to JavaScript on the fly. Even OCaml: http://zhanghongbo.me/js-demo/Maybe there are so many tools for JavaScript, because it is so simple? And if you are in the JavaScript-is-evil camp, it is already obvious that there are so many tools. In either case, they are not doing better. It is their natural course of action.
Sep 11 2015
On Friday, 11 September 2015 at 16:07:09 UTC, Sebastiaan Koppe wrote:I never understood those TypeScript people. They would learn a *new* language, just to compile it into JavaScript?It isn't a new language. It is where ECMAScript is going + structural typing and generics. The typing helps with catching errors at compile time and gives you much better IDE support (completion). It would be nice to have a stricter version of it, but what is good about TS is that you can put static typing over existing code bases that are pure Javascript (and browser APIs). So it is very interoperable, but not strict.Maybe there are so many tools for JavaScript, because it is so simple? And if you are in the JavaScript-is-evil camp, it is already obvious that there are so many tools. In either case, they are not doing better. It is their natural course of action.Not sure what you meant by "natural course". The JavaScript/HTTP platform is doing better because the tool developers are forced to be interoperable with what is there (browsers/http). That means it is more obvious that inventing an isolated universe is a bad idea, and that you need 100% interoperability to do well, not 50%. If D had 100% interop with C++ then it would do much better, selling a 50% solution is difficult. But that would take radical changes...
Sep 11 2015
Here's another recent D mention: http://cppcast.com/2015/09/scott-meyers/ at 16:35.
Sep 11 2015
On Friday, 11 September 2015 at 11:52:20 UTC, Chris wrote:Out of curiosity I searched for "reasons to use D" and I found this: [...] The article is not that old, you know (May 2014).I recall when Scala came out, somebody published[1] a "intro/review" on Scala where he said "Scala is Haskell on JVM"; poor feller didn't know none of Scala, Haskell and OCaml. The cost of publishing something online is almost 0. This invites people with little to no knowledge and experience to pour out superficially done "reviews" in large quantities into Google's brain. There are people (easy to find on Twitter) who brag about writing one technical review/introduction each day; this is almost impossible if done correctly. I wouldn't take any of the online reviews seriously unless with a huge pile of rough grained salts :-) [1] I can't find the link. I should be thankful I suppose.
Sep 11 2015