[HN Gopher] Introduction to Dlang [video] ___________________________________________________________________ Introduction to Dlang [video] Author : WalterBright Score : 121 points Date : 2022-10-08 23:09 UTC (2 days ago) (HTM) web link (www.youtube.com) (TXT) w3m dump (www.youtube.com) | WalterBright wrote: | Ali is the author of "Programming in D". | JohnBerea wrote: | And Walter ^ is the author of "D" itself : ) | googlryas wrote: | And John Berea ^ wrote this comment | havandprohacker wrote: | I need a link | acehreli wrote: | http://ddili.org/ders/d.en/index.html | neverartful wrote: | I was just thinking about possibly using D for one of my personal | projects. The tricky part (for me) is the application needs AWS | S3 interoperability. Anyone cross that bridge with D? I did some | searching and didn't find any S3 libraries for D. Could D's | interoperability with other languages like C or C++ be used here | to make use of one of those libraries? | johannes1234321 wrote: | I wouldn't go the way via C or C++, but start by building a | thin wrapper over http libraries. In the end what these are are | rest apis. | neverartful wrote: | I know what you're saying, and I'm often inclined to do that, | but in the case of S3 it's a heck of a lot of work/time. Have | rolled my own for smaller APIs though. | WalterBright wrote: | > Could D's interoperability with other languages like C or C++ | be used here to make use of one of those libraries? | | That's what the interoperability is for! | neverartful wrote: | Cool! I might have to give it a try. | NickNaraghi wrote: | go huskies! :-) | mealkh wrote: | Very cool to see this gaining traction, my favourite hedgefonds- | I-never-got-to-work-at introduced D to me and I believe it's one | of the more interesting projects in languages right now. | p0nce wrote: | Made a few examples here to kickstart D usage: | https://github.com/p0nce/DIID | vram22 wrote: | synergy20 wrote: | how is D different from C/c++/rust/zig for system programming? | what's the major selling point? is it good for embedded(no GC) | use cases? what stopped it from becoming universally used? | acehreli wrote: | > how is D different | | I don't know Zig yet. | | I had an opinion long time ago that nobody should use C | anymore; I would suggest C++ at least because it has | constructors and templates. D's [Better | C](https://dlang.org/spec/betterc.html) would be my go-to at | this time. | | C++ is getting better but it's still very difficult to get | right: It depends mainly on programmer attention e.g. to follow | 400+ [guidelines](https://isocpp.github.io/CppCoreGuidelines/Cp | pCoreGuidelines). | | Rust is "different" but it has the borrow checker as a safety | tool. D's [live functions](https://dlang.org/spec/ob.html) and | other [memory | safety](https://dlang.org/blog/2022/10/08/dip1000-memory- | safety-in-a...) features are closing the gap there. | | > major selling point | | I am copying slide 59 here: D provides competitive advantage by | helping happy programmers produce correct programs | pragmatically. | | Slide 8 lists what D does _not_ have, which can explain why D | has not gained popularity that it deserves. For example, nobody | can sell D as "Google's language" or "Apple's language". | synergy20 wrote: | makes sense, thanks! | no_wizard wrote: | Is there a way to enable safe "D" by default, rather than | using the `@safe` (what looks to be) modifier? | acehreli wrote: | No. We had a very long discussion about safe-by-default on | the forums but failed to reach a consensus. | | As I understand it, for safe-by-default to work, either all | C libraries would have @trusted D bindings written, or all | of them would have to be assumed to be @trusted. Most of | the community wanted explicit @trusted annotations, Walter | and others favored assuming them to be @trusted (or was it | assumed @safe?) was the way to go. So, no safe-by-default | at this time. :/ | gavinray wrote: | D-lang attributes can be used like a label, so for example | you can put at the top of your file: @safe | nogc: auto myFunc() { // do stuff } | struct Blah {} | | Whatever attributes you use apply to all code in the | lexical scope below the colon. | | It's useful for structs/classes struct | MyThing { auto unsafeFunc() {} | @safe: auto safeFunc1() {} } | Decabytes wrote: | > what stopped it from becoming universally used | | D had a lot of momentum in the beginning, but the license | around the compiler scared away some people, then there was the | whole standard library split with phobos and tango (irrelevant | now and has been for over a decade), and from my understanding | in the beginning (I wasn't around during that time) Walter | added features by request as there wasn't a DIP process yet (D | improvement proposals), and some people felt it was unfair. | These have all been rectified. | Keyframe wrote: | There was also this whole D1 vs D2 where some of us (I was | involved with Tango) though D1 more of as a 'better C' (not | related to actual better C) and D2 more of as a better C++. | Personally, I was more interested in D1 direction. D took the | D2 route with Alexandrescu onboard at a time. The whole thing | then was also lacking support. Even if D was a better | language (D1 was, I guess D2 might be as well - haven't | dabbled in a decade with it), you had to do everything from | scratch. No libraries, abandoned bindings, etc.. instead of | doing work with it, you had to do the plumbing first. That's | true for most niche languages. Rust was like that as well, | but not seems to have a momentum going on for it and is | growing / has grown out of that phase D never did. D has been | around now what, 15-20 years? How sweet would it be for | someone of Walter's caliber to join the ranks of Rust team? | Dude is incredible, but D seems to be a dead end ultimately. | Sorry to sound so harsh, but it didn't happen on a scale it | needs, why would it now or ever? | synergy20 wrote: | so all problems are resolved (including compiler license) | then, I was curious about D but never looked into seriously, | now it seems about time. | | anything safer than C, easier than c++ and rust is | interesting. | | i will build some code and check out its memory usage and | binary size, both are important for embedded. | acehreli wrote: | > memory usage and binary size | | Don't forget the -betterC compiler switch please. ;) | WalterBright wrote: | D is more capable as a systems programming language than C or | C++ is. Not only can you do whatever you like with pointers, | but it has a nice symbolic inline assembler, too. The code | generator is shared with C's and C++'s, so there is no | difference in code quality. | reil_convnet wrote: | This is a very well structured talk. | cassepipe wrote: | I don't know when I'll be using this language but I definitely | want to | no-dr-onboard wrote: | aaaaaaaaaaab wrote: | systems wrote: | I think its important to share few negatives about D | | 1. It have no edge, its not the best system language, and far | from a good application language (mainly because of the eco | system) | | 2. Fragile community, low number of user and the community forum | is toxic frequently | | 3. It doesnt have strong leadership, D doesnt have a good | roadmap, and constantly changing vision | | 4. Its a big language, and considering the drawbacks, its too big | to have such critical drawbacks | | I cant really think of any solid reason, why anyone would invest | in D, except if they are already knee deep into it for some | historical reasons | | D is not a horrible language, but today there are so many better | choices, and the language is too big, to risk investing in it | primeblue wrote: | enriquto wrote: | > the community forum is toxic frequently | | I don't know what the word "toxic" means in your sentence, but | anyhow the D forums are one of my favourite websites on the | internet: | | https://forum.dlang.org/group/general | | Heck, I'm not even interested in the D language too much, but | these forums are so good that I browse them in awe at least | once per week. They are so responsive! I'm not even talking | about the contents, but about the website itself. An arrogantly | efficient showcase of what a good website can be. | destructionator wrote: | > the community forum is toxic frequently | | what exactly does this mean? | bachmeier wrote: | It means people make posts like this poster has made here. | (This is an honest answer based on my experience.) | systems wrote: | actually this very accurate, but it doesnt make anything i | said less true or accurate | systems wrote: | tons of bikeshedding posts, ones that criticize D lack of | vision/focus and misfortune | acehreli wrote: | I heard Discord may have negative posts as well but I find | the official D newsgroups (with a forum interface) very | friendly and clean. Minimal moderation seems to help there. | gavinray wrote: | The Discord is quite nice, you should join =) | WalterBright wrote: | We moderate with a light touch to allow our users as much | freedom as we can. People can write negative and bikeshed | posts, and they can criticize me as much as they like. But | we do moderate posts that make personal criticisms of other | members, go off topic too far, or engage in unprofessional | behavior. | terminalcommand wrote: | Go Ali! When I was a little kid trying to get my feet wet with | programming, Ali used to write on a Turkish programming forum, | ceviz.net. He used to patiently answer all my questions. Since | then I learned English and got out of touch with the Turkish | community. I am surprised to see him on HN! | acehreli wrote: | Wonderful to see you here as well! :) | tomcam wrote: | How cool that you were so kind. World needs more people like | that. | CodeSgt wrote: | There are programmimg discord servers where I think most of | the kind and helpful programmers find themselves today. At | least, that's been my observation. | m00dy wrote: | Do you know Mr.Stop as well ? He 's almost old as Ali in | Turkish scene. He has been reversing bits and bytes though. | terminalcommand wrote: | I haven't come across him. He may have preceeded my time and | abilities at that time:). I hanged around in ceviz.net during | middle school, I guess around 2008-2010. Before that I was to | small to write code. My parents had bought me a Javascript | book and teach yourself c++ from Herbert Schildt from a local | bookstore. Javascript book was easy, C++ book was hard :). So | I abandoned the book shortly after learning cin, cout, | iostream and Ali was there to help me out write some | programs. I still remember this. I had written a basic | calculator in c++, insert number 1, insert operator, insert | number 2 kind of something. Ali wrote to me why don't you | write it so that it doesn't require you to enter seperate | inputs. That question lingered on my mind for a long time and | led me into learning about parsing and writing interpreters | years later. | Decabytes wrote: | I like programming in D. And I think that it can exist in a world | with Rust/Zig/Go/blub. My personal opinion/pitch for D. | | 1. I found D pretty easy to learn and use so getting productive | in it was easier for me than Rust. | | 2. D has a lot of improvements to C++ that make it more ergonomic | (no header files! built in package management!) | | 3. D has a lot of flexibility to go up and down the stack in | complexity as well as interface with existing c/c++ code. | a. Need to use d for scripting like Python? use Rdmd | b. Need to interface with c code and can't depend on the D | compiler? use -betterC ^1 c. Need a quick and dirty | way to use C code without creating bindings? use importC | d. Can't use the garbage collector? use @nogc e. Need | to interface with C++? use extern (C++) | | D's flexibility is its greatest strength and weakness. It can do | a lot of things but not all of its features are ergonomic. A lot | of that just has to do with man power. If it had a community as | large as C++ things would be different. Using the examples in 3, | you could use Ds features and write a kernel with @nogc, a user | interface for that kernel using regular D, and create build | scripts using rdmd. | | To see a c++ person perspective on D watch this video^2 | | 1. https://wiki.dlang.org/D_on_esp32/esp8266(llvm- | xtensa%2Bldc)... | | 2. DConf '22: Ray Tracing in (Less Than) One Weekend with DLang | -- Mike Shah https://www.youtube.com/watch?v=nCIB8df7q2g | bachmeier wrote: | I use D to interface with C code and C APIs. Started using it | for that purpose in June 2013 and haven't looked back. Used | Rust and Go first, did not like either, and have been happy | using D ever since. Over time the interoperability with C has | gotten even stronger - to the point that you don't need to | write bindings for the most part, and you can even directly | compile C code as part of your project. | acehreli wrote: | AMA I am the speaker. | toxik wrote: | Did Rust eat your (the D community's) lunch? | acehreli wrote: | It is definitely chewing on it. :) | | D's advantage over Rust is its familiar syntax and semantics. | C, C++, Java, C#, Python, etc. programmers feel at home once | they learn some differences. I heard others say "D is what | C++ should have been" and "Compiled Python". | | I did use Rust for a brief period in a project where the | experienced Rust programmer among us was throwing '&' | characters here and there to make the code compile, seemingly | randomly in many cases. Personally, I remember fighting with | impedance issues with the many different string types of | Rust. All of this spells a steeper learning curve to me. | | I think D is familiar to programmers of many other languages. | primeblue wrote: | glandium wrote: | The inconvenient truth about strings is that strings are | hard, and even Rust doesn't have enough string types. | WalterBright wrote: | D doesn't actually have string types, either, what it | does have is `string` is just an alias for: | const(char)[] | | meaning you can treat it like any other array. ___________________________________________________________________ (page generated 2022-10-11 23:00 UTC)