DIPs | language | |
---|---|---|
10 | 146 | |
156 | 2,560 | |
0.6% | 1.3% | |
5.8 | 8.9 | |
11 days ago | 3 days ago | |
D | TeX | |
Creative Commons Zero v1.0 Universal | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
DIPs
-
The OpenD Programming Language (fork of D)
The reference compiler, DMD, is open source: https://github.com/dlang/dmd
But they don't accept just any Pull Request or features the community submits, understandably. There's a process called DIP for language improvements: https://github.com/dlang/DIPs/blob/master/DIPs/README.md
However, by some accounts, it's really hard to get anything through.
Given D already has so many feature, I find that to be a good thing , to be honest, by not everyone agrees, of course.
-
Mojo 🔥: A programming language for all AI developers
Borrow checking does not require lifetime annotations. D is a precedent there. Look at DIP25 and DIP1000.
-
Carbon Language: An experimental successor to C++
There's no "nogc" containers in phobos, or allocators, or an idiomatic way to do safe manual memory management. It expects you to do it the C way. It's also impossible to implement some things because of how D does moving. There's a DIP in the works to change how moving works, but it's overly complicated and bound to introduce even more bugs. https://github.com/dlang/DIPs/blob/master/DIPs/DIP1040.md
-
Is there any other programming language aside from C++ that has move semantics feature available?
D Is drafting up move semantics to interface better with C++. Although they're going a bit the Rust way in the current proposal. D has tried a couple of other strategies, but unique pointers and C++ interoperability kind of forced the hand of Walter Bright.
- Is D backwards compatible?
- PSC #025 2021-06-18 minutes - massive update on RFC processes and RFCs in flight
- Three situations regarding memory
- DIP1040: Copying, Moving, and Forwarding
-
Things that you miss from your previous language?
String interpolation is coming: https://github.com/dlang/DIPs/blob/master/DIPs/DIP1036.md
- System variables: Protecting data for memory safety in unsafe code
language
- Why do we have to put the const keyword in Flutter?
-
Playing around with Extension Types
I noticed that I can enable inline-class as an experiment to play with Extension Types. You need to also add sdk: ^3.3.0-0 to your pubspec.yaml.
- Entendendo Algoritmos: Recursão
-
Dart 3.1 and a retrospective on functional style programming in Dart
Current syntax is not all that bad if you are going to do OO and add various helper methods on `Message` and its subclasses, but if you just want to define your data and no behavior / helpers - then it is exceedingly verbose.
[1]: https://github.com/dart-lang/language/issues/3021
-
Macro example for Flutter widgets
Reference
-
HTML template languages?
A future version of Dart will probably support macros which should make this all a bit easier to use, similar to how Swift 5.9 works which makes already fantastic use of its new macro capabilities by integrating mobx (or solidjs) like reactivity into SwiftUI by a harmlessly looking @Obervable annotation.
-
What’s New in Swift 5.9?
Coming from a Dart context here where that team is also looking at adding Macros to the language. It was really interesting to compare and contrast some of the approaches https://github.com/dart-lang/language/blob/main/working/macr...
-
Build clean & concise UI components with Flutter similar to styled-components in React Native
Yes, that needs a bit of boilerplate for the constructor declaration and the extra build method, but I personally don't mind and with implicit constructors this will become much easier. Also, you get a performant UI as Flutter knows to not redraw widgets that didn't change.
-
A Guide to State Management in Flutter | Mobile App Development
I know that it would be nice not to use the generator at all, but we have to wait until static metaprogramming is implemented in dart. https://github.com/dart-lang/language/issues/1482
-
Why is Swift so slow (timeout) in compiling this code?
I implemented a prototype version of the algorithm in that paper when exploring exhaustiveness checking for pattern matching in Dart.
I found it pretty easy to understand, but also really easy to get it to generate huge combinatorially large spaces. Some careful memoization and deduplication helped, but even so I never got the performance to a state I considered acceptable.
Instead, I went with Luc Maranget's classic approach and figured out a way to adapt it to a language with subtyping (with a ton of work from Johnni Winther to figure out all of the hard complex cases around generics):
https://github.com/dart-lang/language/blob/main/accepted/fut...
The performance (in the prototype!) was dramatically better. You can always make pattern matching go combinatorial, but I haven't seen any real-world switches get particularly slow with our approach yet, and we have some fairly large tests of matching on tuples of enums.
What are some alternatives?
crubit
sdk - The Dart SDK, including the VM, dart2js, core libraries, and more.
compact_str - A memory efficient string type that can store up to 24* bytes on the stack
freezed - Code generation for immutable classes that has a simple syntax/API without compromising on the features.
peps - Python Enhancement Proposals
quicktype - Generate types and converters from JSON, Schema, and GraphQL
intellij-dlanguage - Intellij Plugin for the D Programming Language
Flutter - Flutter makes it easy and fast to build beautiful apps for mobile and beyond
proposals - ✍️ Tracking the status of Babel's implementation of TC39 proposals (may be out of date)
gallery - Flutter Gallery was a resource to help developers evaluate and use Flutter
carbon-lang - Carbon Language's main repository: documents, design, implementation, and related tools. (NOTE: Carbon Language is experimental; see README)
conduit - Dart HTTP server framework for building REST APIs. Includes PostgreSQL ORM and OAuth2 provider.