35 ms·
OpenD, a D language fork that is open to your contributions
- tlivolsi 3y agoWhat's Walther's take on the many gripes with the D leadership?
- wussboy 3y agoI’m not sure I’ve ever seen him comment here on a D related post. Which I totally understand.
- sneed_chucker 3y agoI've definitely seen him discuss D here when it comes up.
- pjmlp 3y agoOnly when D itself isn't the matter being discussed.
- fuzztester 3y agoHe did on this post, here: https://news.ycombinator.com/item?id=38988220 https://news.ycombinator.com/item?id=38988220
- tastyminerals2 3y agoHe pretty much derailed the D forum forking thread into remotely related tech discussion. This was weird to observe tbo, in the end my take is that he doesn't seem to bother much and would rather continue living in his version of the story.
- bachmeier 3y agoIt's worth pointing out that Walter is one of two co-maintainers of the language. The other has not said anything at all. On the other hand, I'm not sure what there is to say if they're not going to make any changes in the process. I'm far more concerned about community development of libraries, IDE support, and the beginner experience (especially on Windows) than I am about changes to the language, which is already pretty good. As a Linux user working on top of C libraries, the experience is incredible. That's not the case for everyone.
- tastyminerals2 3y agoAren‘t these connected? Its about the contribution culture. If there is so much pain that it led to a language fork, what IDE and quality of life improvements from a shrinking community can we talk about? When I started with D several years ago, there were a few meetups and active contributors. These ppl now have left D for Rust and now we have this fork. Does it look like there is success ahead? I would say it looks more like the last desperate effort to change things.
- bachmeier 3y agoI view them as two separate issues. On the one side, there are the complaints about language changes. It's hard to convince Walter to change the language, and it's hard to contribute to the compiler and/or standard library (those are the complaints, true or not). Then there are problems for users of the language not having enough libraries and a sub-par IDE experience (again, true or not). Go and Rust built communities of programmers that aggressively used the language and made their work available to others. I don't see any reason we couldn't have more of that with the language as it currently stands. Adam certainly had no trouble knocking out hundreds of thousands of lines of nice libraries. Edit: And Ilya doing all his good work with Mir. The first is a long-term problem. We'll see the effects ten years from now. The second makes it hard to have a reason to use the language right now (largely for anyone that doesn't want to write scripts or interact with C libraries). That's most of what concerns me.
- atilaneves 3y agoI just posted on the forum about it, I didn't do it before because of surgery (I'm still nowhere near 100%). What changes would you like to see happen?
- phlakaton 3y agoI recognize that pattern of behavior because I've done something similar at times myself. Or at least, in my pattern it was this: what's done is done, confronting it will just create a lot more drama for me, and I don't feel confident in wading into a fraught social situation anyway. I'm much more in my element working on technical problems. So I let the social thing go and go work on the technical thing. This is not always a healthy thing to do, but to me it's not in the least weird. That being said, never assume that no response from someone means someone doesn't care. I felt awful when dealing with situations like this. If this were my project, I would probably be extremely frustrated and more than a little bummed, whether or not I thought the fork was understandable. Those are not things that are constructive to air in public, though, and I think it is a mark of leadership that Walter's dialogue remains as calm and polite through all of that thread as he usually is.
- justin66 3y ago> That being said, never assume that no response from someone means someone doesn't care. I felt awful when dealing with situations like this. If this were my project, I would probably be extremely frustrated and more than a little bummed, whether or not I thought the fork was understandable. Contrariwise, I read through that forum thread and some of the linked github issues, and it wouldn't be shocking if he were happy to see some of those people walk away. It would not be politic for him to say so.
- chromatin 3y agoMy research group left D for Rust several years ago due to nonresponsiveness and poor language development trajectory. While I wish Adam and the others success with OpenD, I hope they can take the opportunity to pick a more unique/memorable name.
- djha-skin 3y agoI nominate "dope", short for "D, OPEned".
- chalsprhebaodu 3y agoLiberateD FreeD
- speps 3y agoFollow up post: https://dpldocs.info/this-week-in-d/Blog.Posted_2024_01_08.html https://dpldocs.info/this-week-in-d/Blog.Posted_2024_01_08.h...
- justin66 3y agoFunny stuff. > Again, remember, I have other work and responsibilities, so I can't do a great deal of work myself, even if I wanted to.
- apgwoz 3y agoLooks like there’s an update https://dpldocs.info/this-week-in-d/Blog.Posted_2024_01_08.html https://dpldocs.info/this-week-in-d/Blog.Posted_2024_01_08.h... and they’ve gotten some interest. Personally, I think it’d have been more fun if they named it ‘Died’ — you get the benefits of sweet taglines “It never Died,” a statement about it being a fork, and the permission to take the language in new directions if that makes sense in the future. OpenD implies full compatibility, etc.. (I have no skin in this game, though. Good luck!)
- Kranar 3y agoD is such a sad case of how a good technical product can fail due to poor leadership and decision making. A language is more than just a compiler, it's also an ecosystem and a community. D's community is actually very welcoming but man, watch some of the DConf videos and Q&As on Youtube and it's cringe seeing key leaders talking down to people, or dismissing people's concerns, or just have this ego about themselves like they know what's best and everyone should shutup and just go along with them. Anyhow, D went from a language that I remember back in 2015 was often promoted on places like reddit and here as a fresh alternative to C++ that was constantly evolving, to nowadays you rarely hear anything about it at all. I think even Andrei Alexandrescu has given up on it. Good luck to these guys on trying to bring life back to it, but frankly I think at this point most people have given up and moved on to alternatives like Rust, Nim, Zig, etc...
- guraf 3y ago[flagged]
- TheCondor 3y agoMaybe they shouldn’t bring D back to life… drop the name, make a clean break and come up with a new one.
- pstuart 3y agoLet's call it E.
- davexunit 3y agohttp://www.erights.org/ http://www.erights.org/
- rerdavies 3y agoE, F, G, and H are already taken. It's hard to say whether I is available, or un-googleable. J through W are also taken. X++ is taken, but X seems to be available. Y and Z are taken. A would be an excellent choice were it not completely un-googleable. Finally, B is a famous precursor to C.
- systems 3y agowho is exactly behind this, and how much support is he getting from the d community ??? D is a very small community , so this seem to be a big bet
- bachmeier 3y agoThe person that wrote the post is Adam Ruppe. He's a very prolific D programmer, best known for these libraries https://github.com/adamdruppe/arsd https://github.com/adamdruppe/arsd and for publishing a book on the language. It's too early to judge how much support there will be. I don't expect current users to split into camps though. My prediction is that the relationship will end up being similar to Ubuntu vs Debian. An example is string interpolation. Walter wants to stick to his own proposal, which nobody else likes, while Adam's already implemented his proposal in OpenD.
- deleted 3y ago[deleted]
- pmarreck 3y ago[flagged]
- debugnik 3y agoIt is open source. Open source doesn't mean that arbitrary pull requests are welcome, see SQLite or Lua for other examples.
- pmarreck 3y agoThat's fair and thanks for the elucidation on the topic
- LorenDB 3y agoD is completely opensource already (https://github.com/dlang/dmd https://github.com/dlang/dmd). The "open" of OpenD is just ADR saying that OpenD will be more open to new language features than D has historically been.
- bsdpufferfish 3y agowhich just means a different person is guiding the project
- jb1991 3y agoIt’s about the policies and the culture that the leadership evokes, just like the leader of a country. It does matter who is in charge.
- bsdpufferfish 3y agoSure. But the existing option is the inventors who started the project from nothing and have committed decades of their life. Just like politics like you said, outsiders often think it's easy to come in and fix everything. Dividing the community makes sense if things are going off the deep end or no longer being supported. It doesn't make sense in hopes of getting a slightly more efficient approval process.
- jeffparsons 3y agoAt least Walter, and presumably others in the D leadership, are active here. There's a good chance they will see your comments. This is just a reminder that they are human, too, they care a lot about D, and in my experience they are basically decent people who are trying their best.
- tastyminerals2 3y agoMore than 20 years passed and nothing really changed. What makes you think it will be different now. It's a "Tango" part 2 all over again. Except now, the ship has long sailed.
- lolinder 3y agoThey didn't say it would be different now, they're just reminding people that Walter is here on HN so to try to be respectful and realize that he's a human being too. Unlike most here, he's attached his real identity to this project, so drive by anonymous pot shots would be inappropriate.
- ktm5j 3y agoWhile true, and I agree that everyone is human, Walter isn't the only one here who cares about D. If the project would thrive under different leadership then that's something that needs to be considered. I for one really hope for a D comeback, it's by far my favorite language. It's not an attack against Walter, or anyone else. Just people trying to save something that they love.
- emrah 3y agoAre there any examples of forks going in a different direction than the original and being (more) successful?
- coder543 3y agoLibreOffice, MariaDB, Nextcloud, and OpenZFS might be a few prominent examples.
- HKH2 3y agoInkscape?
- nwallin 3y agoX.Org. (if you know what X is, you are familiar with X.Org, which is a fork of XFree86) Chromium is a fork of Webkit which is a fork of KHTML. If you use a web browser, that browser is either Firefox or a fork (of a fork) of KHTML. I don't know what percentage of Chromium/Webkit users have heard of KHTML, but I'd recon it's on the order of 1%. mplayer used to be a very popular, very good media player, mostly for linux but it was cross platform. Development sort of died. These days its fork mpv is much more common. There used to be many different forks of GCC. In 1997, all of these developers merged their forks together into the EGCS project. This project proved to be very active and very...good. It was so good that the FSF halted development on mainline GCC, forked EGCS into the new mainline GCC, and restructured the community built around the ideas of the EGCS community. If you use GCC, this is the version you use; forked from GCC into EGCS, forked from EGCS back into GCC. MacOS' kernel is a fork of FreeBSD. Much of its userspace is a fork from ... somewhere. If you use MacOS it's forks all the way down. Kindle is forked from Android and/or linux and/or... well it's complicated. Amazon forked a lot of stuff. Much of the Android ecosystem has been forked. OpenSSL was forked into Tink, for instance. Again, complicated, lots of forks. yt-dlp was forked from youtube-dl when ... the lawyers came. Ubuntu is a fork of Debian.
- notyoutube 3y agoI'm not sure the distinction is that clean, but isn't ubuntu still based off debian. As in, not a fork that went its own way, but a (big) collection of modifications on top of current debian?
- neilv 3y agoIn the last decade, we've had many learning experiences around governance of programming languages. Most of the changing languages that come to mind, I realize, that they, too, had a big upset or oops related to governance. I now think one of the key things to look for in a programming language is governance -- what they say about how they do it, what they actually do, how that's working out so far, and how you think that will work out in the future.
- lifthrasiir 3y agoWhile I agree this is an important problem, I don't think there is a satisfactory answer. Programming language evolution is more or less a complexity management, while you also have to balance requirements from various stakeholders. Almost all governance drama came from one group of stakeholders complaining about requirements essential for other group of stakeholders, and you can't always satisfy both. (Rust `async` for example is known to be such case, explaining a functioning but generally unsatisfactory design.) Go is a rare exception where the core team had no reason to honor all stakeholders and enough resource and willpower to do so, and yet some drama did happen.
- neilv 3y agoWe might be able say that a given assessment of governance will work out well for our needs. But it's a lot easier to identify showstoppers early on. For example, if a language designer and implementor says upfront that they want to run it as Benevolent Dictator For Life, and also that they don't want to see feature PRs from people, because they prefer to work through all the details themself... That's their right, and great information to have upfront. That governance might tentatively work for some adopters, and others will decide it's a showstopper without needing to explore further.
- lifthrasiir 3y agoYou are right about early adopters, but once those have been filtered, there will still be multiple stakeholders within the resulting community. Even when we don't consider new users, I can't see how they can be adaquately catered for in general.
- xpressvideoz 3y agoI witnessed a similar case while touring D as an outsider. When Rust was new and the concept of lifetime was brought to the D community, it was deemed unnecessary by Walter. A few years later, he brought his own lifetime proposal that is sufficiently different to Rust's and thus even less verified compared to the previous suggestion from the community. Now that I lost my interest in D, I'm not sure of the maturity of the new lifetime feature, but I would be surprised if it is as useful as Rust's.
- bsdpufferfish 3y agoSo now you can have a project with someone else's opinion instead of Walter's.
- xpressvideoz 3y agoNot someone else, but many others. I value projects governed by multiple people because one person cannot be an expert in every field, even though that person is smarter than most people.
- tonyedgecombe 3y agoThere are two sides to that. Once you start running a project by committee you will find all sorts of odd features winding their way through the system. Politicking has as much influence as technical merit when it comes to new proposals.
- fasterik 3y agoI'm not too familiar with either Rust's or D's approach to lifetimes, but from some quick forum searching, it appears that adding Rust-like lifetimes to D would have required significant changes to the design of the language. Every potential feature has tradeoffs in terms of how it interacts with other language features, adds cognitive overhead, decreases compilation speed, complicates the design of the standard library, breaks backward compatibility, etc. I don't think it's reasonable to expect a large-scale overhaul just to support one feature you like from another language.
- xeeeeeeeeeeenu 3y agoThere's a big thread about this on the D forums: https://forum.dlang.org/thread/beykokfitddfdsjyqjjy@forum.dlang.org?page=1 https://forum.dlang.org/thread/beykokfitddfdsjyqjjy@forum.dl...
- fsckboy 3y agoclarify: the big thread referenced here is started by the people doing the forking (2 people so far), and there's a fair amount of good detailed response by D people which is lacking in TFA above. The orig article is just beefing about personalities, and this link has more technical discussion sounds from this like the people forking basically want a different language, for which they're willing to make a number of breaking changes.
- tastyminerals2 3y agono, the D forum thread has several github links which pretty much self-explanatory of what has been going on.
- countWSS 3y agoMy suggestions: completely get rid of GC(use refcounts or borrowed pointers), add macros(see FreeBasic extensions of C macros), migrate everything complex/optional out of stdlib to specific packages(Rust ecosystem is centered on packages not stdlib), and you will have a solid competitor to C++ and perhaps Rust. Rust of course has better macros and type system, but D looks simpler and more approachable for rapid prototyping/tinkering that will drive adoption.
- teleforce 3y agoYour suggestions are moving backward, and GC by default and no macro made D intuitive and Pythonic that are big plus in any modern programming language construct. The non GC is not really needed unless you're working on OS control primitives but again D give you alternative unlike Go. Every modern languages should avoid macro like a plaque otherwise you will sooner or later create a ghetto inside your community not unlike Ruby on Rails. C++ and Rust are complex languages and it's evident by their long compilation time, while Go and D are much simpler hence faster compilation time. D get many things right, and C++ and later languages like Nim have been copying D uniques features left and right since its introduction.
- countWSS 3y agoThen, D will compete with GC languages that outclass it in ecosystem diversity and metaprogramming.(i.e. it will remain same niche language it was for decades). Having a huge runtime with GC doesn't seem appealing or efficient.
- teleforce 3y agoFret not, Python just a fringe programming language for more than two decades, it only then become popular. If you have the right fundamentals success will eventually come your way.
- WhereIsTheTruth 3y agoPython is a interpreted language, and is both strongly/dynamic typed D is a native strongly typed language You don't make game engines in Python, and certainty not drivers, python devs fall back to C when they need performance, this should give you a hint
- LAC-Tech 3y agoI wish this project all the success in the world. D has a lot of great ideas, and if getting patches approved is a bottleneck, this is the right choice.
- pjmlp 3y agoUnfortunelly this was bound to happen, after so much remarks on forking D throughout the years. Almost everything I liked in D when Andrei Alexandrescu's book came out in 2010, have made its way to C#, Java, C++. Yeah, maybe the implementation isn't as nice as in D, but that hardly matters when the implementation is available in some form, with much better tooling and library ecosystem. Too many years lost chasing the golden feature that would bring people in, without stabilitizing those features. Even Andrei is nowadays apparently mostly busy with C++ and CUDA than D. And then there is the whole compile to native programming languages renaissance from the last decade, adding even more competition. Which is a pity, as the community itself is full of great folks to talk with.
- Shorel 3y agoIf that means the language will revive and all the work will not be lost, then it is fortunate, I would say. I am using Python every day. And there are many things from D which I miss. Not to mention the performance.
- thot_experiment 3y agoI know that calling it "FreeD" is probably a bad idea but I would have thought it was real clever. I've toyed with the language before and it was always enjoyable, just lacked the library/compiler support that I need for the sorts of things I'd use D for so I've stuck with C, looking forward to trying again in a couple years if this sticks!
- yawniek 3y agowhat D imo would benefit most of is a cohesive standard library that comes with batteries included and makes it easy to ship real world apps and services. basically what Go did, having many standard protocol implementations within stdlib.
- p0nce 3y agoThe name is unfortunate, there is nothing "closed" about D and OpenD ends up from the start with no rules as to what gets merged.
- Alifatisk 3y agoDamn it, so know I gotta choose between which variant of D I want to comply with?
- jacquesm 3y agoNew governance models start with discussions about governance by a quorum of interested parties, not by dictating a new set of features or the decision to leave some out. That's just a change of regime, not a change of model. I'm sure that there are legitimate gripes and D's reliance on Walter as gatekeeper may be too strict for some but the way this fork has started out doesn't bode well for the long term. Forks succeed only if they are carried broadly, you'd need to more or less pull a majority of the folks in the D community along rather than just a handful of prolific but ultimately low in number individuals because there is a fair chance that both your fork will fail and that you further fragment the mindshare of the original to the point that it too looses any viability that it still had. You also need to be able and willing to support it for decades.
- tastyminerals2 3y ago[flagged]
- _a_a_a_ 3y agoThis is a nasty comment, and lacks any references to those github PR discussions. It comes across very much as somebody who has no experience in managing even halfway large projects. I've been writing a compiler and I put in a lot of work to keep things simple, manageable and comprehensible, and therefore most likely correct. If I hadn't, I'd be stuck in a swamp of bad code and spending more time fixing old problems than extending the language.I'd say are spent about 30% of the time re-factoring just for this.If I open source my work, I will reject code that is not up to my standards for the same reason that Walter does.
- tastyminerals2 3y agoIt is, and written mostly out of disappointment after reading the pr discussions. I still believe that Walter should have at least addressed it instead of going circles and acting as if nothing is happening. It is clear that what has been behind the scenes for years just poured out now and unsurprisingly it doesn’t look nice. We can talk volumes about how hard it is to manage large projects and keep everyone happy when in the end nobody cares if there is no progress. Weka ppl pretty much upfront said it.
- _a_a_a_ 3y agoOK, so please show me those discussions and change my mind.
- deleted 3y ago[deleted]
- flohofwoe 3y agoI fail to see any negative aspects of having multiple compiler implementations around. IMHO that's the main reason why C became so popular, compilers are free to explore into different directions, language extensions that have proven their worth will eventually be picked up by other implementations, and sometimes even make it into the standard without being butchered too much by the committee agreement process.
- rnd0 3y agoI'm confused, I thought that there already were 3 around? Or at least 2? gcc plus the one from dlang?
- sixthDot 3y agothe 3rd, LDC, uses LLVM as backend. Both all share the same frontend. https://dlang.org/download.html https://dlang.org/download.html open-D is not a 4th implementation it's a fork.
- gallier2 3y agoThere also SDC which is an experimental D compiler not using DMD code. I don't know how complete it is but it is actively updated.
- eggy 3y ago[flagged]
- anta40 3y ago>> Until we get everything written Now we have 3 D compilers: DMD (the de facto standard), LDC, and GDC. I guess the OpenD project will have their own compiler, too. Well... let's see.
- animeepisode 3y ago[flagged]
- softirq 3y agoD is a real anomaly to me because it should have had the same trajectory as Rust, it vastly improved upon other systems languages at conception, the authors evangelized it, including at FAANG, and yet, Rust seems to have gained traction everywhere D failed to do so. Even in places where C++ has historically been shunned, Rust has some traction (Linux Kernel). I now believe that language adoption is just a product of the right news cycles and timing, and perhaps hype over the creators or a certain feature. I am sad we got Rust and not D. D is so much easier to grok as a C++ person, and I think Rust is incredibly verbose looking.
- kadoban 3y agoTiming is important. D was like year 2000, Rust 2015 or something? A lot had changed in the meantime.
- voakbasda 3y agoCommunity is everything, and D leadership smothered theirs like a bag of kittens in the river.
- zozbot234 3y agoRust has memory safety without GC, and a from-scratch language design. D is an evolutionary development of C++ (which is also gaining new features of its own) with little to recommend it besides. A comparison with Carbon and cppfront is also instructive, note that both of those have not added GC to the language.
- josefx 3y agoWhen I heard about D it was often in combination with issues that seemed rather basic. Like multiple mutually exclusive runtime libraries that made D libraries incompatible with each other from the start, or hard version breaks that where trying to solve fundamental issues but also caused projects to lag behind for years. Have you seen how long the Python 2 to 3 migration took? The news cycles didn't do anything to fix that mess either.
- dequan 3y ago
- logicprog 3y agoPersonally, it's confusing to me what D's niche would be if they go all in on the GC. I get that it didn't really have a solid niche before either, because it was basically just a 10% better C++, without any really distinguishing killer feature, so it was kind of a hard sell, because most people are either going to stick with C++ for the existing support and code bases and industry, or are going to use Rust for greenfield projects, or Zig if they want simplicity, especially since with C++ 20 a 10% better C++ already exists, but I don't think focusing on having a garbage collector really helps so much? All this means is that it's going to be competing with C# and Java, which are already the garbage collected, safe, streamlined C++ successors and have been intended to be such since their inception, and I don't see how you can really compete with either of those languages at this point. Especially C# with its actually pretty excellent low level and unsafe capabilities like raw pointers and control over whether things are reference or value types and control over the layout of things in memory and stuff like that, combined with its pretty okay (for an OOP first language of its age) type system and reflection and all of the ML family features it's been getting. Honestly, I've always felt really confused about what D's vision is. I've tried reading some of the docs about certain language features like better see and safe mode and lifetimes and they've been grammatically just kind of hard to read and generally poorly explained, despite going into great detail on things, and I've never really been able to get a sense for a coherent design vision or purpose for the language. The author mentions that this has been a problem, but I don't feel their vision is really any clearer. Yes they have a few concrete midterm technical goals, which is great, but it isn't clear to me what those goals are in service of. Honestly, I'm a rust programmer, so you know what I do for Greenfield personal projects, but I'd rather just use OCaml, C++, or even C# if I had to pick something else.
- bachmeier 3y ago> Personally, it's confusing to me what D's niche would be if they go all in on the GC. I get that it didn't really have a solid niche before either, because it was basically just a 10% better C++ Yeah, for a long time the language was marketed as a better C++. That was wrong for two reasons. First, it's a C++ replacement, but it's not C++, as many C++ developers learned in frustration. Second, it's a lot more than a C++ replacement. It works for scripts, as a general programming language, and especially for C interop (ImportC, BetterC, etc.) One of the goals of the fork is to stop apologizing for the GC. You still have reference counting, unique pointers, and whatever in the standard library. I'm sure if someone wants to contribute functions that avoid the GC, they'll be accepted. What you're not likely to see with the fork is Adam writing new functions for the standard library that go to great lengths to avoid the GC. He believes fear of the GC is overblown.
- JonChesterfield 3y agoAs a contrary perspective, a language which enthusiastically welcomes patches from anyone is likely to degenerate into an incoherent mess very quickly. Language design is difficult. Features interact in complicated ways. Fixing mistakes is tricky - you break existing code. Forking D sounds fine. It's easier to start with an implementation than to go from scratch. Ideas which work out well get to have a existence proof when proposing them to the original. Ideas that crash and fail don't add to the debt of the original language. I hope the fork goes well and this proves a net gain for the original ecosystem.
- atilaneves 3y agoFWIW, I just posted this on the D forum: https://forum.dlang.org/post/vwnefgsszqxobssylhmc@forum.dlang.org https://forum.dlang.org/post/vwnefgsszqxobssylhmc@forum.dlan...