Re: How do you use D?
On Thursday, 4 January 2018 at 15:52:15 UTC, Andre Pany wrote: My hobby project is to create a bridge between the Embarcadero RAD Studion (Delphi) and D. The idea is to use all functionality from Delphi and RAD Studio (GUI designer, thousands of libraries) without writing one 1 line Pascal but write everything in D. At the moment I have already a windows demo application running, but I hope I can extend it to MacOS/Android/IPhone... https://github.com/andre2007/delta-core-10-2-1 The package you see on github is written by hand. At the moment I am writing a Pascal Parser to have everything generated by the Pascal Source files (VCL/Firemonkey/Indy/...) automatically. Interesting indeed. I am working on putting my transcompiler up on github, but it is still very much a WIP, and will be for a long time. The Extended Pascal PEG is available already, though: https://github.com/PhilippeSigaud/Pegged/tree/master/pegged/examples/extended_pascal Bastiaan.
Re: How do you use D?
On Thursday, 4 January 2018 at 15:52:15 UTC, Andre Pany wrote: On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote: 3) It is not possible to run DMD with the microsoft linker and libs without adapting the sc.ini. That is a pain! In the build infrastructure I can only use the dmd zip archive and not the setup routine. Also the adapation of the sc.ini I need to automate in a python script (XMake build plugin). Python does not like the sc.ini... due to duplicate keys... Just compare with LDC windows 64. You only have to extract the zip archive, call vcvarsall batch file which sets the environment variables and thats it! https://issues.dlang.org/show_bug.cgi?id=17967 It seems with the recent version of DMD (2.078.0) there is new feature which solves this problem (https://dlang.org/changelog/2.078.0.html#vs-auto-detection) That's fantastic! Thanks a lot! I will try it and then close the issue. Also the new options for customizing the code coverage seems like you heard my wishes within my mind;) Great work! Kind regards André
Re: How do you use D?
On Friday, 5 January 2018 at 00:38:05 UTC, Laeeth Isharc wrote: On Thursday, 4 January 2018 at 15:52:15 UTC, Andre Pany wrote: On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote: [...] I am working for a german software company. There are various programming languages used. I created several non customer facing tools in D for the projects I am involved. Also I tried to make advertisements for the D Programming Language by creating internal wiki pages, recordings, video channel with screencams and telling everyone about that nice programming language called D. [...] Very interesting. Have a look at pegged and the work done by Bastian who has also been building a pascal parser - for a different dialect. Thanks for the info, I try to make my parser easiliy replacable by a better solution like pegged. For the moment I try to get the generator working and cleanup things later. I will also have a look at the work of Bastian. Kind regards André
Re: How do you use D?
On Friday, 5 January 2018 at 11:49:44 UTC, Joakim wrote: Yes, but when I pointed out that it's fine to think you're the best as long as you stay focused on bettering the flaws you still have, I don't think that thinking you're the best brings anything but disadvantages, actually… Except when you are advertising perhaps. What would be better, a million JS programmers with 10k great ones who "grow your infrastructure," or 150k D programmers with 30k great ones doing the same? Holding everything else equivalent proportionally, I'd say the latter. Well, that is not the scale we are talking about here, but actually the former is the better if it means that you get twice as many that are paid to grow the eco system full time. If you compare JavaScript with D on that metric you are closer to a 1000:1 ratio or more in JavaScript's favour… Not a fair comparison, but that's the reality that drives adoption. When you reach critical mass within a specific domain a lot more people will be doing full-time eco system development… (Facebook, Google, Microsoft + a very large number of smaller companies). The browser domain is very large, so not a fair comparison, of course. speeding up a fundamentally slow and inefficient language design, which a core team of great programmers wouldn't have put out there in the first place. :P Doesn't really matter in most cases. The proper metric is "sufficient for that task at hand". So, if many people are paid to do full-time eco system development that also means that the tool is sufficient for a large number of use cases… You can do the same in browsers as people do with Python. Use something else for those parts where speed is paramount: stream from a server, use WebGL or WebAssembly, or use the browser engine cleverly. For instance I've implemented instant text search using CSS for even IE9, the browser engines were tuned for it, so it was fast. People use the same kind of thinking with C++/D/Rust as well, i.e use the GPU when the CPU is too slow, or use a cluster, or use a database lookup… Bother computer hardware and the very capable internet connections people have (at least in the west) are changing the equations. It is easier to think about a single entity like a programming language with a small set of isolated great programmers writing an application that will run on an isolated CPU, but the world is much more complicated now than it used to be in terms of options and the environment for computing. of programming. As for "full stack," a meaningless term which I bet actually has less CS bachelors than the percentage I gave. ;) I understand "full stack" to mean that you can quickly adapt to doing database, server, client and GUI development. Saying that most C++ programmers also use python implies that having two tools that you choose from is enough. In that case, you're basically agreeing with me, despite your previous statements otherwise, as I was saying we can't expect most programmers to learn more than one tool, ie a single language. No. The programming style for Python is very different from C++. Just because many C++ programmers also know Python, doesn't mean that they don't benefit from also knowing other languages. I bet many also know JavaScript and basic Lisp. Could be, but that changes nothing about the reality that most programmers are just going to pick one language and some set of frameworks that are commonly used with it. Ok. I personally don't find the standard libraries for Java and C# difficult to pick up as I go. Google gives very good hits on those. Application frameworks are more tedious, but they are also more quickly outdated. So you might have to learn or relearn one for a new project anyway. That is the current reality, it doesn't matter what hypothetical kind of development you have in mind. That's not an argument… That is just a unfounded claim. D users are the exception that prove the rule, the much larger majority not using D because they're already entrenched in their language. I don't really think D users are as exceptional as they often claim in these forums… when you _couldn't_ to entrench themselves in that market. And as I've pointed out to you before, they're still much more efficient, so until battery tech get much better, you're going to want to stick with those natively-compiled languages. Not convinced. I think most people on smartphones spend a lot of time accessing browser-driven displays. Either in the actual browser or as a widget in an app… It doesn't really matter, because the dominating activity isn't doing heavy things like theorem proving or data-mining… As long as the code for display rendering is efficient, but that is mostly GPU. Which of those python-glued GUI apps has become popular? That was the question: I can find toy apps in any language, that nobody uses. That's not right. Scripting is
Re: How do you use D?
On Wednesday, 3 January 2018 at 17:50:01 UTC, Ola Fosheim Grøstad wrote: On Wednesday, 3 January 2018 at 16:20:48 UTC, Joakim wrote: These languages may all have these problems, but I don't see the connection to your original point about it not being good to think you're the best. Hm? I tried to say that it is not good to think that you have the best programmers. Or that you are satisfied with only appealing to the best programmers. Yes, but when I pointed out that it's fine to think you're the best as long as you stay focused on bettering the flaws you still have, you responded with points about memory management and how C++ can't be a "competitive high level language," seemingly ignoring the topic at hand. Good to see you address it below. There are some assumptions about "best" in that attitude that isn't healthy for developing an ecosystem. First of all, it might not be true, maybe the best programmers go elsewhere. Second of all, programmers generally don't start out as "best". And only appealing to experience programmers is not a good long term strategy. Thinking you're the best doesn't imply that inexperienced programmers shouldn't show up, it just means they better think they have the ability to someday be similarly good. ;) And when you're smaller and trying to take on older languages with many more users, you need some identity to rally your much smaller group of insurgents: thinking you're the best is as good a rallying cry as any other. Finally, D is hardly pitched as an "expert-only" language, given it makes pragmatic choices to use a GC by default and carry forward the popular C syntax. It simply provides many more power tools that you can use, if you're so inclined to go farther and learn more. Anyway, you probably have a lot more great programmers using Javascript than any small language, measured in absolute numbers. And when growing a eco system it is those absolute numbers that matters. It doesn't matter if 99% are not good if the other 1% can grow your infrastructure. And well, right now that means developers can be very productive in that eco system (e.g. TypeScript, Angular, React etc). What would be better, a million JS programmers with 10k great ones who "grow your infrastructure," or 150k D programmers with 30k great ones doing the same? Holding everything else equivalent proportionally, I'd say the latter. Of course, a very important factor could be how willing the million is to pay for better tools, as that will lead to great tools programmers from less-popular languages to swarm into JS for the money, but given how much of the time all these dev tools are free, particularly for JS, that doesn't matter as much. Another huge factor is that you are fundamentally limited by the language, it doesn't matter how many great devs work on speeding up a fundamentally slow and inefficient language design, which a core team of great programmers wouldn't have put out there in the first place. :P More programmers don't have a bachelors in CS than those who do. I think you'll find the percentage who regularly use multiple languages is fairly low, let alone evaluating each one for each job. I think it depends on what type of developement we are talking about. But I see a lot of fuzz about fullstack developers. Not sure if that fuzz translates into something at scale, but "full-stack" is at least something that is mentioned frequently. It's a high percentage without CS bachelors in most subfields of programming. As for "full stack," a meaningless term which I bet actually has less CS bachelors than the percentage I gave. ;) Anyway, it is my impression that many C/C++ programmers also know Python and also have a good understanding of basic functional programming. So two tools in the toolbox is enough? Not sure what you mean by that. I meant to say that my impression is that most C/C++ programmers need a higher level language and also are capable of using other paradigms than what C/C++ encourages. Despite C++ being able to express a lot of the same things and also despite C++ being a language where you never really reach a full deep understanding of the language. It's pretty simple what I mean: you were responding to my point that most don't really pick the best tool for the job, but have a single language that they try to hammer every nail with. Saying that most C++ programmers also use python implies that having two tools that you choose from is enough. In that case, you're basically agreeing with me, despite your previous statements otherwise, as I was saying we can't expect most programmers to learn more than one tool, ie a single language. Your company is much more likely to bring in somebody with Java experience to write the Android portion. Mostly because of the iOS/Android frameworks, not really because of the languages. That's why I included such knowledge of the needed
Re: How do you use D?
On Thursday, 4 January 2018 at 15:52:15 UTC, Andre Pany wrote: On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote: [...] I am working for a german software company. There are various programming languages used. I created several non customer facing tools in D for the projects I am involved. Also I tried to make advertisements for the D Programming Language by creating internal wiki pages, recordings, video channel with screencams and telling everyone about that nice programming language called D. [...] Very interesting. Have a look at pegged and the work done by Bastian who has also been building a pascal parser - for a different dialect.
Re: How do you use D?
On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote: While the Orgs using D page is very nice ... I hoping to hear more personal stories ... So How do you use D? In work, (key projects or smaller side projects) in your side project, (github, links please) just to learn something new? (I would easily argue that learning D will make you a better C++ programmer, maybe not the most efficient way, but I a sure it i very effective) Did you introduce D to your work place? How? What challenges did you face? What is you D setup at work, which compiler, which IDE? And any other fun facts you may want to share :) I am working for a german software company. There are various programming languages used. I created several non customer facing tools in D for the projects I am involved. Also I tried to make advertisements for the D Programming Language by creating internal wiki pages, recordings, video channel with screencams and telling everyone about that nice programming language called D. To be able to write customer facing software in D I have to integrate the D programming language into the existing build landscape (Jenkins/XMake). It was possible to integrate D but there are rough edges. Before I start I want to say a big thank you to Sönke and everyone involved in the Dub project. Without Dub, the usage of D would not be possible at all! 1) There is a deprecated "version" attribute in dub.json. Dub now forces you to specify the application version using git tags. As the build landscape itself creates git tags which aren't Semver compatible, the deprecation of the "version" attribute is a great pain for me. I solved the problem by "inventing" an own way to specify a version (version.txt file), which is a bad solution. https://github.com/dlang/dub/issues/1301 2) During the official build no connection to the internet is allowed (e.g. code.dlang.org). For the moment I have no possibility to run an inhouse dub repository. This forces me to include source code of the dub packages I want to use, in my applications. The company is running a big Maven repository in which I could store the dub packages as zip files and which has http access to these artefacts. I would like to specify in my dub.json the url address to the zip file stored in the maven repository. https://github.com/dlang/dub/issues/1134 3) It is not possible to run DMD with the microsoft linker and libs without adapting the sc.ini. That is a pain! In the build infrastructure I can only use the dmd zip archive and not the setup routine. Also the adapation of the sc.ini I need to automate in a python script (XMake build plugin). Python does not like the sc.ini... due to duplicate keys... Just compare with LDC windows 64. You only have to extract the zip archive, call vcvarsall batch file which sets the environment variables and thats it! https://issues.dlang.org/show_bug.cgi?id=17967 4) Every open source software I want to use, needs to go through an open source process before I can use it in customer facing software. Dub has a very annoying behavior. If I want to use a package A and it has an optional dependency to be package B, Dub fails if B is not available. That leads to the issue that even I do not want to use B, I need to go through the open source process for B due to the behavior of Dub. I had this issue with the unit test frame work D-Unit. Fortunatelly the developer of D-Unit was kind and removed the optional dependency completely! https://github.com/dlang/dub/issues/1272 I have also to say a big thank you to Adam D. Ruppe. He has created a great library with very helpful functionality like database access, http server, terminal, ... and he is a very helpful and kind person. My hobby project is to create a bridge between the Embarcadero RAD Studion (Delphi) and D. The idea is to use all functionality from Delphi and RAD Studio (GUI designer, thousands of libraries) without writing one 1 line Pascal but write everything in D. At the moment I have already a windows demo application running, but I hope I can extend it to MacOS/Android/IPhone... https://github.com/andre2007/delta-core-10-2-1 The package you see on github is written by hand. At the moment I am writing a Pascal Parser to have everything generated by the Pascal Source files (VCL/Firemonkey/Indy/...) automatically. Kind regards André
Re: How do you use D?
On Thursday, 4 January 2018 at 13:07:37 UTC, Mengu wrote: there's also one other thing: atom, vs code, spotify, slack are all running on electron. does it make it a better platform than python? I found this example of using electron with Python: https://github.com/keybraker/electron-GUI-for-python Could probably use the same model for any language.
Re: How do you use D?
On Wednesday, 3 January 2018 at 16:20:48 UTC, Joakim wrote: On Wednesday, 3 January 2018 at 11:43:35 UTC, Paulo Pinto wrote: On Wednesday, 3 January 2018 at 11:13:04 UTC, Joakim wrote: On Wednesday, 3 January 2018 at 10:29:05 UTC, Ola Fosheim Grøstad wrote: On Wednesday, 3 January 2018 at 09:56:48 UTC, Pjotr Prins wrote: [...] I perceived that there was a lot of hype around Python 15 years ago or so. Now, universities are replacing Java with Python as the introduction language and Python is also becoming the defacto language for scientific programming. Python is basically getting critical mass and is now managing to take on Matlab and perhaps to some extent even C++/Fortran. Python has done well in those niches, but when is the last time you saw a popular GUI app written in Python? That is the largest segment of the market, and Python has basically no uptake there. Even Java got nowhere in the consumer GUI market, other than a few p2p apps like Vuze and the now-defunct Limewire, largely for piracy. you could not be more wrong. there are tons of python gui applications. pygtk, pyqt and wxpython are great libraries that allows you to create desktop apps very easy and fast. D does not even have a good solution except for gtkD which is a one man show. if it wasn't for Mike we would not even have it. leadership does not care. remember qtd guys stopping everything because a bug was not getting fixed? there's also one other thing: atom, vs code, spotify, slack are all running on electron. does it make it a better platform than python?
Re: How do you use D?
On Wednesday, 3 January 2018 at 20:11:03 UTC, Pjotr Prins wrote: I am thinking of Python here. I have to work in Python and there is no love lost. If I write conservative Python code then I think PyCharm community edition is getting me closer to static typing, but providing type info as comments when deduction fails is quirky. small group of people. I am partial to organizing a Guile/Guix day. Feel free to join in! https://libreplanet.org/wiki/Group:Guix/FOSDEM2018. Sounds like a fun event! (but I am nowhere near Belgium at that point in time).
Re: How do you use D?
On Wednesday, 3 January 2018 at 16:20:48 UTC, Joakim wrote: On Wednesday, 3 January 2018 at 11:43:35 UTC, Paulo Pinto wrote: On Wednesday, 3 January 2018 at 11:13:04 UTC, Joakim wrote: On Wednesday, 3 January 2018 at 10:29:05 UTC, Ola Fosheim Grøstad wrote: On Wednesday, 3 January 2018 at 09:56:48 UTC, Pjotr Prins wrote: [...] Good programmers aren't stuck on any single language and will pick the tool best suited for the job at hand. Good programmers are also good at picking up new languages. And who do you know who does this? While I myself have espoused the idea of the best tool for the job in this forum, realistically, other than a small handful of coders, when does that ever happen? [...] Everyone at my employer, a few thousand of them doing enterprise consulting. We specialize in a few large domains, and tend to jump between them every 6 months or a year, when switching projects. On my case, full stack development across JVM and .NET languages, with C++ for low level coding. How many of those few thousand are actually comfortable with C++ for low-level coding? I think you've said before that it's not many. So okay, your colleagues switch between Java and C#, which is somewhat uncommon as many places are pure C# or Java shops, but those are the two most popular enterprise application languages, noted for their similarities. You can hardly use this as an example of having a toolbox of languages and picking the best for the job, say Erlang for some high-concurrency microservice or ruby for an app you need to get up and running quickly. You're just using two of the most popular business languages and deciding which based on what the customer wants. Not all of them of them are comfortable with C++, that is true. But they are comfortable with other languages, which I am not. Notice that "JVM and .NET languages, with C++ for low level coding." was my own skillset, not everyone at the company. Also I said JVM and .NET languages, not Java and C#. If you want me to be more precise, Java, Clojure, C#, F#, VB.NET and now getting into Kotlin due to future Android projects. I also do JavaScript, PL/SQL, pgSQL on occasion, and have helped some iOS projects when an extra helping hand is needed and I am low on project requests. I never like to specialize in any technology stack, it is the best way to outdate myself on a market that is fashion driven. Of course there are lots of details I don't master in every programming language, but as Wirth puts it, it is all about mastering CS concepts, algorithms and data structures. Also why Knuth used his own invented Assembly instead of choosing any programming language. To actually know every detail of programming language, or what its runtime library is capable of, there are books and web sites to get it from. Soft skills and domain knowledge in each market are more relevant than knowing every single detail of a programming language.
Re: How do you use D?
On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote: How do you use D? Every programming language has an effect on how programmers think. I use D to explore different ways of thinking. Did you introduce D to your work place? How? What challenges did you face? My work place is my home ;-) I introduce whatever I want, whenever I want, however I want. What is you D setup at work, which compiler, which IDE? I prefer as little bells and whistles as possible. I like seeing just the code. So plain text editors, and commandline. And any other fun facts you may want to share :) Voyager 2 was launched by NASA in 1977. Sometime after 2025 it will not have enough electricity to power its instruments. Another 14,000..28,000 years after this, it will emerge from the Oort cloud that surrounds our solar system. https://solarsystem.nasa.gov/planets/oort
Re: How do you use D?
On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote: How do you use D? I use D for developing an RFID tracker tool, to track some tools for security purpose. It's basically a GUI application with RFID reader module using serial-port read/write. for the GUI, I use GtkD, for Database operation, I use entity. and It will have a web service implemented using vibe.d Did you introduce D to your work place? How? What challenges did you face? No, I used to introduce things I consider great or wonderful to others. But now, I would not introduce anything to others. Suitable tool for suitable jobs, and people have their own tastes. What is you D setup at work, which compiler, which IDE? I'm using D via VSCode + code-d plugin, and for compiler, I use dmd on linux, and ldc2 on windows. Both of them works great for my GTK GUI. The VScode+Code-d sometime seems too slow or did not correctly detect a compilation process. But it's enough for me, I got autocomplete works great.
Re: How do you use D?
On Wednesday, 3 January 2018 at 18:36:29 UTC, Ola Fosheim Grøstad wrote: Then you have this all the psychological effect that if people have invested significant time, resources and/or emotion into something then they will defend it and refuse to see flaws even when faced with massive evidence against it. So the hype will be sustained by a vocal set of believers if you have reached a large enough audience with your messaging before the product is launched…? Aye. Then it tapers off in a long tail… or the believers will make it work somehow, at least good enough to not be a lot worse than the alternatives. I am thinking of Python here. I have to work in Python and there is no love lost. Regarding hype. I think it is fairly easy to create a new language these days - thanks to LLVM and JVM targets. New languages pop up every other week it appears. Getting it right, however, takes a lot of time. D proves how much it takes to create a great (complex) language and deal with most corner cases. Writing a performing compiler (run time and compile time) is no mean feat. docs. I just disagree with the aim of trying to make D a hyped language. Yes, that is a bit late, I think. You would have to launch D3 or something to get a hype effect (at least in the west). I think D is too powerful/complicated to become a target for millions. The irony does not escape me, with many C++/JVM programmers out there, that D is a great replacement for C++ and many JVM languages. I did a stretch of Scala and I think D is the superior language, even if it misses out on some nifty Scala features. But that does not mean people will take to D in droves. Scala is bigger. Anyway, my opinions do not matter that much. Suffice to say I enjoy D and I think it is perfect for our large data processing projects. A language like GNU Guile has only a few developers - and they do great work. But is Guile used much outside GNU affiliated projects? No. Not that I am aware. Still, it is an amazing effort by a small group of people. I am partial to organizing a Guile/Guix day. Feel free to join in! https://libreplanet.org/wiki/Group:Guix/FOSDEM2018. Pj.
Re: How do you use D?
On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote: While the Orgs using D page is very nice ... I hoping to hear more personal stories ... So How do you use D? In work, (key projects or smaller side projects) in your side project, (github, links please) just to learn something new? (I would easily argue that learning D will make you a better C++ programmer, maybe not the most efficient way, but I a sure it i very effective) Did you introduce D to your work place? How? What challenges did you face? What is you D setup at work, which compiler, which IDE? And any other fun facts you may want to share :) I am a student that also does research at different institutions (maninly Italy and US). I use D for everything that is programming related and when I am not paired on a team. Mainly it has been backend stuff and D has been up to the challenge. My setup is neovim + deoplete (and other dev related plugins) I also use D for sideprojects (https://github.com/framecca)
Re: How do you use D?
On Wednesday, 3 January 2018 at 12:15:13 UTC, Pjotr Prins wrote: they come if they need it. I remember a Google engineer telling me that he was tired of people bringing up D every time. That was 10 years ago. D has had every chance to become a hype ;) There was a lot of hype around D about 10 years ago, because of slashdot? (slashdot doesn't seem to work as a hub in that way anymore?) Geeky people had even heard about it in job interviews… But the compiler was a bit too buggy for production use and the GC was… a problem for what it was position itself as: a replacement for C++. There are other languages that also position themselves as C++ replacements, such as http://loci-lang.org/ , but very few have heard of those. So yeah D has enjoyed more hype than most languages in this domain, actually. why. What is it that makes a hyped language? Well, depends on the hype, I guess. But you probably need some kind of "prophetic" message that will "remove all pain". Since C++98 was not painless, there was a market for a "prophetic message". Much less so now. Also you need a "tower for announcing" like Slashdot. I don't think reddit is anywhere near as effective as Slashdot used to be. Too fragmented. Rust received hype because it would make writing fast programs "painless", just wait, it isn't quite ready yet, but we'll get there. So they hype prophecies were there before Rust was actually useful. I don't think Go was all that hyped up. It received a lot of attention at first release, but was underwhelming in terms of features. But it received a lot of attention when being used for containers, I believe. So more a niche utility marketing effect in terms of buzz. So hype seems to come with a language being used for some new way of doing something (even though the language might not be significant in that regard, e.g. Go). Or the hype seems to come before the product is actually useful, not quite like a pyramid scheme, but close… Oh yeah, bitcoin too. Prophetic, but not particularly useful… yet, but just wait and see. So I guess hype comes from: 1. People having an emotional desire to be free from something. 2. A tech delivering some kind of prophetic message one can imagine will provide some kind of catharsis if one just believe in the outcome. Then you have this all the psychological effect that if people have invested significant time, resources and/or emotion into something then they will defend it and refuse to see flaws even when faced with massive evidence against it. So the hype will be sustained by a vocal set of believers if you have reached a large enough audience with your messaging before the product is launched…? Then it tapers off in a long tail… or the believers will make it work somehow, at least good enough to not be a lot worse than the alternatives. docs. I just disagree with the aim of trying to make D a hyped language. Yes, that is a bit late, I think. You would have to launch D3 or something to get a hype effect (at least in the west). A language like GNU Guile has only a few developers - and they do great work. But is Guile used much outside GNU affiliated projects?
Re: How do you use D?
On Wednesday, 3 January 2018 at 16:20:48 UTC, Joakim wrote: These languages may all have these problems, but I don't see the connection to your original point about it not being good to think you're the best. Hm? I tried to say that it is not good to think that you have the best programmers. Or that you are satisfied with only appealing to the best programmers. There are some assumptions about "best" in that attitude that isn't healthy for developing an ecosystem. First of all, it might not be true, maybe the best programmers go elsewhere. Second of all, programmers generally don't start out as "best". And only appealing to experience programmers is not a good long term strategy. Anyway, you probably have a lot more great programmers using Javascript than any small language, measured in absolute numbers. And when growing a eco system it is those absolute numbers that matters. It doesn't matter if 99% are not good if the other 1% can grow your infrastructure. And well, right now that means developers can be very productive in that eco system (e.g. TypeScript, Angular, React etc). More programmers don't have a bachelors in CS than those who do. I think you'll find the percentage who regularly use multiple languages is fairly low, let alone evaluating each one for each job. I think it depends on what type of developement we are talking about. But I see a lot of fuzz about fullstack developers. Not sure if that fuzz translates into something at scale, but "full-stack" is at least something that is mentioned frequently. Anyway, it is my impression that many C/C++ programmers also know Python and also have a good understanding of basic functional programming. So two tools in the toolbox is enough? Not sure what you mean by that. I meant to say that my impression is that most C/C++ programmers need a higher level language and also are capable of using other paradigms than what C/C++ encourages. Despite C++ being able to express a lot of the same things and also despite C++ being a language where you never really reach a full deep understanding of the language. Your company is much more likely to bring in somebody with Java experience to write the Android portion. Mostly because of the iOS/Android frameworks, not really because of the languages. Or rather, the Java language shouldn't be the stumbling block, but both of iOS and Android are rather bloated frameworks that takes time getting into. Which I think it is intentional. Both Apple and Google want developers to be dedicated experts on their platform and seems to deliberately go for changes that prevent cross platform tooling. It is unrealistic to expect the vast majority of programmers to do any more than use one language most of the time. I don't know. Depends on what kind of development we are talking about. This actually argues for a single language: you're going to spend a ton of time tracking all those shifting frameworks so you won't have time for a new language too, but at least you won't have to learn a new language every time you pick up the new js framework of the day. I think there is another way, but it isn't available yet. Program transliteration and software synthesis should over time be able to offset some of these issues. Most imperative languages are fairly similar. Most of the code we write, whether it is in Python, C+ or D would have a fairly similar structure. In some sections you get something very different, but I don't think that is dominating. (Functional and logic programming tend to lead to more different patterns though.) The ongoing churn may help new languages with new users and companies, don't think it helps with users who already know a language well. I don't know. Seems that many in these forums have done work in Java, Go, Python, Rust and C++. Seems like an oxymoron, tech changes so fast that I don't see how anything could be timeless, even if you really mean "will still be the same 20 years from now." ;) Right, but digital computing is a relatively new invention (and well, even electricity is relatively new ;-). Over time one would think that something "timeless" would establish itself. But for now we can just say "stable". There clearly are some frameworks that have been relatively stable. Like matlab. I think that is because matlab has tried to closely model the domain that scientists have been trained in (linear algebra). But it is interesting that Python is making inroads there. That matlab is now perceived as not having good enough abstraction mechanisms, perhaps. On the other hand, the mathematical field of logic is also relatively new as it is conceptualized today, and some people are exploring paradigms such as probabilistic programming languages and what not… So right, "timeless" is not realistic at the moment as the basic foundation is still quite new and we are still learning how to make
Re: How do you use D?
On Wednesday, 3 January 2018 at 11:43:35 UTC, Paulo Pinto wrote: On Wednesday, 3 January 2018 at 11:13:04 UTC, Joakim wrote: On Wednesday, 3 January 2018 at 10:29:05 UTC, Ola Fosheim Grøstad wrote: On Wednesday, 3 January 2018 at 09:56:48 UTC, Pjotr Prins wrote: [...] Good programmers aren't stuck on any single language and will pick the tool best suited for the job at hand. Good programmers are also good at picking up new languages. And who do you know who does this? While I myself have espoused the idea of the best tool for the job in this forum, realistically, other than a small handful of coders, when does that ever happen? [...] Everyone at my employer, a few thousand of them doing enterprise consulting. We specialize in a few large domains, and tend to jump between them every 6 months or a year, when switching projects. On my case, full stack development across JVM and .NET languages, with C++ for low level coding. How many of those few thousand are actually comfortable with C++ for low-level coding? I think you've said before that it's not many. So okay, your colleagues switch between Java and C#, which is somewhat uncommon as many places are pure C# or Java shops, but those are the two most popular enterprise application languages, noted for their similarities. You can hardly use this as an example of having a toolbox of languages and picking the best for the job, say Erlang for some high-concurrency microservice or ruby for an app you need to get up and running quickly. You're just using two of the most popular business languages and deciding which based on what the customer wants. On Wednesday, 3 January 2018 at 14:08:20 UTC, Ola Fosheim Grøstad wrote: On Wednesday, 3 January 2018 at 11:13:04 UTC, Joakim wrote: Not necessarily, it all depends if thinking you're the best leads to taking your eye off the ball of improving and acknowledging your problems, which I see little indication of here. Well, if a language is used for a narrow set of application areas then one might be able to have a deep understanding of what the challenges are. In general I think it is difficult to understand what challenges people have in areas one have little familiarity with. I've seen this time and time again in discussions about memory management. I think both Rust and D suffers a bit from this. And likewise, I think C++ designers are making a mistake by presuming that C++ can become a competitive high level language. So it is a general challenge in language design, I think. These languages may all have these problems, but I don't see the connection to your original point about it not being good to think you're the best. And who do you know who does this? While I myself have espoused the idea of the best tool for the job in this forum, realistically, other than a small handful of coders, when does that ever happen? I don't know how many… But if you have a good understanding of a language like Java and C/machine language, and also have the equivalent of a bachelor in comp sci, then I think you should be able to pick up just about any language in relatively short time (except C++ where the know-how is less accessible for various reasons). More programmers don't have a bachelors in CS than those who do. I think you'll find the percentage who regularly use multiple languages is fairly low, let alone evaluating each one for each job. Anyway, it is my impression that many C/C++ programmers also know Python and also have a good understanding of basic functional programming. So two tools in the toolbox is enough? I recently read some article linked off proggit that stated the reality much better: programmers learn a language that suits them, then use it everywhere they can. Well. Take an iOS programmer. She/he would start out with Objective-C, which requires understanding of C. Then maybe you also need to interface with C++ in order to use some library. Then you switch over to Swift… Then you need to port the app to Android and have to pick up some Java. Then somebody want to turn it into a webapp and you pick up TypeScript… Then someone needs interfacing with C# for a web-service and you pick up a bit of that… As long as you are interfacing with other systems you often achieve more by learning enough to use something written in another language than by picking a suboptimal solution that use your favourite language. If you're just stitching together a bunch of libraries written by others, sure, you can pick up enough to interface them. But we were talking about switching between significant use of each language based on the job, which almost never happens. Your company is much more likely to bring in somebody with Java experience to write the Android portion. But sure, if I need to hack together something I would usually think about using Python first, mostly because it is so mallable for smaller tasks.
Re: How do you use D?
On Wednesday, 3 January 2018 at 11:13:04 UTC, Joakim wrote: Not necessarily, it all depends if thinking you're the best leads to taking your eye off the ball of improving and acknowledging your problems, which I see little indication of here. Well, if a language is used for a narrow set of application areas then one might be able to have a deep understanding of what the challenges are. In general I think it is difficult to understand what challenges people have in areas one have little familiarity with. I've seen this time and time again in discussions about memory management. I think both Rust and D suffers a bit from this. And likewise, I think C++ designers are making a mistake by presuming that C++ can become a competitive high level language. So it is a general challenge in language design, I think. Agreed with much of this: they may be better at various things, but those things don't matter much of the time. Yes, I don't think any programmers are "best", some people are not at all suited for programming or lack some general knowledge, but otherwise I think we only have good programmers that are "best" in some very narrow domains. And who do you know who does this? While I myself have espoused the idea of the best tool for the job in this forum, realistically, other than a small handful of coders, when does that ever happen? I don't know how many… But if you have a good understanding of a language like Java and C/machine language, and also have the equivalent of a bachelor in comp sci, then I think you should be able to pick up just about any language in relatively short time (except C++ where the know-how is less accessible for various reasons). Anyway, it is my impression that many C/C++ programmers also know Python and also have a good understanding of basic functional programming. I recently read some article linked off proggit that stated the reality much better: programmers learn a language that suits them, then use it everywhere they can. Well. Take an iOS programmer. She/he would start out with Objective-C, which requires understanding of C. Then maybe you also need to interface with C++ in order to use some library. Then you switch over to Swift… Then you need to port the app to Android and have to pick up some Java. Then somebody want to turn it into a webapp and you pick up TypeScript… Then someone needs interfacing with C# for a web-service and you pick up a bit of that… As long as you are interfacing with other systems you often achieve more by learning enough to use something written in another language than by picking a suboptimal solution that use your favourite language. But sure, if I need to hack together something I would usually think about using Python first, mostly because it is so mallable for smaller tasks. Not really because it is my preferred language. I don't really like dynamic typing in principle, but it is productive for smaller tasks and prototyping. Given how much effort it takes to know a language platform well, not only the language itself but all the libraries and their bottlenecks, and most programmers' limited motivation to pick up new tech, that is the only approach that makes sense for the vast majority. Well, but libraries and frameworks are unfortunately not permanent. They are shifting relatively fast. Heck, even the Java standard library contains many things that you don't want to use, because there is something better in there. So if you start on a new project there is often a more productive framework you could go with. And that might require adopting a new language as well. This is of course good for new languages. If this was not the case then it would be near impossible for new languages to establish themselves. But it can also be taken as a sign that we don't have the languages and tooling that enable writing really good timeless libraries and frameworks. Maybe that will change in the future, I guess we now are reaching a point where neither CPU or memory are the limiting factor for most mundane applications. So maybe that will cause a more stable infrastructure to emerge… but probably not in our lifetime. I think we still have a long way to go in even simple areas such as GUI frameworks. Yes, but if you're only hyped because you were stowed away on a popular platform, ie javascript in the browser, or are easy to learn, Go from what I hear, then the technical limitations of the language put a ceiling on how high you can go. You'll get to that ceiling faster, but then you're stuck there. I perceived that there was a lot of hype around Python 15 years ago or so. Now, universities are replacing Java with Python as the introduction language and Python is also becoming the defacto language for scientific programming. Python is basically getting critical mass and is now managing to take on Matlab and perhaps to some extent even C++/Fortran.
Re: How do you use D?
On Wednesday, 3 January 2018 at 10:29:05 UTC, Ola Fosheim Grøstad wrote: On Wednesday, 3 January 2018 at 09:56:48 UTC, Pjotr Prins wrote: average ones. And D must be there. Similar to the Haskell and Lisp communities we have the luxury of dealing with the best programmers out there. This attitude is toxic, and it isn't true either. We differ in opinion here. Good programmers aren't stuck on any single language and will pick the tool best suited for the job at hand. Good programmers are also good at picking up new languages. Very true. Some languages are harder to learn and apply then others. Few C++ programmers make great Lisp or Haskell programmers. Hype leads to critical mass, which leads to higher productivity because you get better tooling, better documentation (including stack overflow), better libraries and better portability. I don't disagree. I am reacting to other messages where people assert that we need to improve this and that for the sake of popularity. Maybe it is toxic not to care too much about what other people want/need and perhaps I am wrong. But I don't think D will become a hyped language, so we may as well stop wanting to be one. D is a language for software engineers - and they come if they need it. I remember a Google engineer telling me that he was tired of people bringing up D every time. That was 10 years ago. D has had every chance to become a hype ;) Erlang has been a non-hype language for a long time. Now the success of whatsapp made it a lot more interesting to startups and therefore it is growing. Even so, I don't think it will ever become a hype. If you program in Erlang you can appreciate why. What is it that makes a hyped language? That should not stop us from answering questions and writing docs. I just disagree with the aim of trying to make D a hyped language. The only time where it is an advantage to be small is when your language design is changing. Once the language design is stable there is only disadvantages in not having critical mass. A language like GNU Guile has only a few developers - and they do great work. D and its community are not small in my book. Large enough not to be endangered and still keep moving forward. Hard but soft. About right.
Re: How do you use D?
On Wednesday, 3 January 2018 at 11:13:04 UTC, Joakim wrote: On Wednesday, 3 January 2018 at 10:29:05 UTC, Ola Fosheim Grøstad wrote: On Wednesday, 3 January 2018 at 09:56:48 UTC, Pjotr Prins wrote: [...] Good programmers aren't stuck on any single language and will pick the tool best suited for the job at hand. Good programmers are also good at picking up new languages. And who do you know who does this? While I myself have espoused the idea of the best tool for the job in this forum, realistically, other than a small handful of coders, when does that ever happen? [...] Everyone at my employer, a few thousand of them doing enterprise consulting. We specialize in a few large domains, and tend to jump between them every 6 months or a year, when switching projects. On my case, full stack development across JVM and .NET languages, with C++ for low level coding. Occasionally there are some projects using all of them, for example, JVM on the backend with a native desktop GUI developed in WPF.
Re: How do you use D?
On Wednesday, 3 January 2018 at 10:29:05 UTC, Ola Fosheim Grøstad wrote: On Wednesday, 3 January 2018 at 09:56:48 UTC, Pjotr Prins wrote: average ones. And D must be there. Similar to the Haskell and Lisp communities we have the luxury of dealing with the best programmers out there. This attitude is toxic Not necessarily, it all depends if thinking you're the best leads to taking your eye off the ball of improving and acknowledging your problems, which I see little indication of here. Haskell might attract programmers who are more interested in math, but in practical programming formal math is only 1% of what you need (99% of your time is not spent on things that require deep understanding of math). I don't see any evidence of Lisp programmers being better than other programmers either. Agreed with much of this: they may be better at various things, but those things don't matter much of the time. Good programmers aren't stuck on any single language and will pick the tool best suited for the job at hand. Good programmers are also good at picking up new languages. And who do you know who does this? While I myself have espoused the idea of the best tool for the job in this forum, realistically, other than a small handful of coders, when does that ever happen? I recently read some article linked off proggit that stated the reality much better: programmers learn a language that suits them, then use it everywhere they can. Ruby programmers can't write an OS kernel, so they don't bother with that. They may dabble with a few other languages, but unless forced to by a new job or project, they stick with what they know. Given how much effort it takes to know a language platform well, not only the language itself but all the libraries and their bottlenecks, and most programmers' limited motivation to pick up new tech, that is the only approach that makes sense for the vast majority. Hyped languages are for suckers. Hype leads to critical mass, which leads to higher productivity because you get better tooling, better documentation (including stack overflow), better libraries and better portability. Yes, but if you're only hyped because you were stowed away on a popular platform, ie javascript in the browser, or are easy to learn, Go from what I hear, then the technical limitations of the language put a ceiling on how high you can go. You'll get to that ceiling faster, but then you're stuck there. But you don't need lots of users to get hype. You can focus on a narrow domain and be the "hyped language" within a single realm. Another way to get stuck, you're highly specialized to a niche and can't break out. I'm not knocking this approach- it has worked well for many languages nowadays- it's just not what D is going after. The only time where it is an advantage to be small is when your language design is changing. Once the language design is stable there is only disadvantages in not having critical mass. And since when has the D language design been stable? ;) I don't think any language can call themselves done changing these days, look at how often C# has had to update itself and put out major versions. And who's to say D doesn't have critical mass? I'd say 100-200k users (my math based on the chart below: 2k downloads/day of dmd X 60 days between major versions + ldc/gdc and external downloads) is a significant market: http://erdani.com/d/downloads.daily.png It's not hyped or popular, but you can leverage that base to get bigger, particularly since you didn't sell out and specialize to get that base in the first place.
Re: How do you use D?
On Wednesday, 3 January 2018 at 09:56:48 UTC, Pjotr Prins wrote: average ones. And D must be there. Similar to the Haskell and Lisp communities we have the luxury of dealing with the best programmers out there. This attitude is toxic, and it isn't true either. Sure, Haskell might attract programmers who are more interested in math, but in practical programming formal math is only 1% of what you need (99% of your time is not spent on things that require deep understanding of math). I don't see any evidence of Lisp programmers being better than other programmers either. Good programmers aren't stuck on any single language and will pick the tool best suited for the job at hand. Good programmers are also good at picking up new languages. Hyped languages are for suckers. Hype leads to critical mass, which leads to higher productivity because you get better tooling, better documentation (including stack overflow), better libraries and better portability. But you don't need lots of users to get hype. You can focus on a narrow domain and be the "hyped language" within a single realm. The only time where it is an advantage to be small is when your language design is changing. Once the language design is stable there is only disadvantages in not having critical mass.
Re: How do you use D?
How do you use D? I write code for a living. We use D for writing the next generation critical large data software. Sequencing centers churn out TBs of data per day and writing code in Python does not cut it. Even JVM tools are problematic when it comes to raw performance. Sambamba, written in D, has been doing heavy lifting since 2014 and is running every second of the day somewhere on an HPC diagnosing cancer. Did you introduce D to your work place? How? What challenges did you face? Not that many as we make up the rules. Great programmers tend to like D once they grok it. Writing idiomatic D takes time though. I have written significant code in a great number of languages, including Ruby, Python, C++, Perl (ugh), Lisp, Elixir, Erlang, Scala... I am in a position to state what I like. Currently I favor Ruby for the quick and dirty, Elixir for web programming and D for data processing and raw speed. It is the fastest car in my garage. It would be C++ if I had no D - and I am very glad I don't have to write new code in C++. There are reasons I still use other languages. Ruby feels just slightly more productive and Elixir has some great features too for a functional programming language. I have absolutely no incentive to program in Go or Rust though I sometimes have to read such code. I think Go is a royal pain. What is you D setup at work, which compiler, which IDE? ldc and emacs. GNU Guix handles all dependencies. And any other fun facts you may want to share :) Started late programming 70s after a stretch playing chess. Been coding ever since. My first encounters with Walter were on Compuserve when I was using Zortech and Symantec C++ compilers. Obviously I am glad we moved forward, tooling-wise. On Sunday, 6 August 2017 at 05:39:36 UTC, Laeeth Isharc wrote: similar with programming language choices and such. Its way better to appeal to people who make up their own mind and bear the consequences then to those who have to cover their behinds by getting the right ticks in the boxes because the are never going to be earlier adopters except through some unfortunate accident - because you also don't want such people as early adopters! I think that is very true. I can understand why the people involved in D want it to be popular - to become famous, rich, or if only to convince those at work. But I think it is fine to target thousands of great programmers, rather than millions of average ones. And D must be there. Similar to the Haskell and Lisp communities we have the luxury of dealing with the best programmers out there. Hyped languages are for suckers. Even so, if you are a D programmer and your work environment does not allow you to use D, 'popularizing' D is not going to help that (how do you popularize a powerful language?). Grind your teeth and write in whatever the job dictates (I do that too), but sneak in your best work in D without telling anyone. There are always opportunities. Don't complain. Move on. That is my advice. I predict D has enough momentum to stay and be a better alternative to C/C++/JVM. Which is the main thing. Even when Walter and Andrei would drop out, for whatever reason, D will continue. There are some language features I would like, but to be honest I can live without them.
Re: How do you use D?
On Tuesday, 8 August 2017 at 01:20:37 UTC, Nicholas Wilson wrote: On Monday, 7 August 2017 at 19:54:51 UTC, Eugene Wissner wrote: Yes. Everything I know about low-level network programming, assembler, memory management, I learned from my working on my library, tanya. OT but tanya's readme has a wrong comment: ``` int i = arr[7]; // Access 7th element. ``` should be 8th element. Fixed, thanks!
Re: How do you use D?
On Monday, 7 August 2017 at 19:54:51 UTC, Eugene Wissner wrote: Yes. Everything I know about low-level network programming, assembler, memory management, I learned from my working on my library, tanya. OT but tanya's readme has a wrong comment: ``` int i = arr[7]; // Access 7th element. ``` should be 8th element.
Re: How do you use D?
I'm a self-employed web-developer, mostly working with PHP and Javascript and markup languages like HTML and stuff like CSS and SQL databases. On the other hand at school (in Russia) we began with QBasic, then Turbo Pascal and could choose if we use Turbo Pascal or something else for solving class excercises. It was the first time I learned C. After school I continued to use C for some open source projects I was participating for fun. Two years ago I started to look for a language that gives you a control over the system like C but at the same time has high-level constructs I was fimilar with from PHP. Here D comes into play (my second choice would be Haskell and Rust). How do you use D? In work, (key projects or smaller side projects) I'm living now in Germany and a year ago I found a job, where I can use D all the time, but I still continue doing web-development with PHP, Javascript and & Co. in your side project, (github, links please) Still my primary interest on D was to replace C in my projects, I started to work on a library that would give me C++ with the syntax of a modern high-level programming language. See https://github.com/caraus-ecms/tanya. just to learn something new? (I would easily argue that learning D will make you a better C++ programmer, maybe not the most efficient way, but I a sure it i very effective) Yes. Everything I know about low-level network programming, assembler, memory management, I learned from my working on my library, tanya. Did you introduce D to your work place? How? What challenges did you face? Though it is not reallistic to replace PHP and js with D for small end customers I want to start some web-service based on D on my own. After some work on tanya, I'm planning to continue to work on my web-framework, I've started before: https://github.com/caraus-ecms/caraus. What is you D setup at work, which compiler, which IDE? neovim, dmd and gcc on Slackware Linux.
Re: How do you use D?
On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote: While the Orgs using D page is very nice ... I hoping to hear more personal stories ... So How do you use D? For personal projects, using a mixed form of OOP and procedural programming (I won't make static classes if I'm not forced to, like in Java and C#). In work, (key projects or smaller side projects) I almost got a job at Sociomantic, that's all. If I were asked to develop someone a PHP based website, I'd probably would use vibe.D instead, while keep telling them that how much I had to work with PHP. in your side project, (github, links please) Projects that have been publicized: -PixelPerfectEngine: https://github.com/ZILtoid1991/pixelperfectengine A 2D engine mainly for retro games, once I get a way for efficient 2D acceleration it probably could easily handle native HD resolutions. -OpenRG: https://github.com/ZILtoid1991/OpenRG A response to the abandonment of easily usable raster graphics acceleration, will be written in DCompute for easy portability. I currently need more people on planning stuff, mainly for embedded systems. Currently nonpublic projects: -libPCM: A Library for converting and playing back various PCM and ADPCM formats. Currently having issues with finding usable ADPCM codec guides. -libLZHAM: Compression algorithm using an obscure algorithm found on github with my own enhancements, like an archive file format. It has speeds comparable to ZLIB, but almost the same compression rate as LZMA (sometimes it even surpasses it). DCompute version is planned. just to learn something new? (I would easily argue that learning D will make you a better C++ programmer, maybe not the most efficient way, but I a sure it i very effective) I pretty much learned C (and C#) through D. Did you introduce D to your work place? How? What challenges did you face? I introduced it in my college, I even made an OOP project using D as I no longer liked Java. My teacher could instantly read it, since he was pretty good with C++, Java, C#, and many others. What is you D setup at work, which compiler, which IDE? VS2015, DMD for x86 (thinking on working on an ARM codegen), LDC for everything else (engine will have several optimizations for single board computers like rPi, and maybe even mobile phones).
Re: How do you use D?
On Sunday, 6 August 2017 at 05:39:36 UTC, Laeeth Isharc wrote: [...] Thanks for sharing your views, a nice read. Bastiaan.
Re: How do you use D?
On Sunday, 6 August 2017 at 06:49:45 UTC, Ecstatic Coder wrote: For instance, D is my favorite language, and I try to promote it as much as I can (reddit, stackoverflow, even on the go-nuts google groups). But professionally I still use C++ (#3 TIOBE), PHP (#7), Go (#16) and now Dart (#20). Not D. Despite Go and Dart are very recent "post-D" languages, people are already starting to use them a lot these days. Whether you trust or not these "pseudo" rankings, they are probably already more popular than D, despite they are still in their 1.x version. That's sad, because the same developers who now use Go (including me) could have started to use D instead. But they didn't. Obviously Google's great support and marketing help a lot, but most developers are not as dumb as you may think. You have to look at the big picture. Let's ignore for a moment what might improve D's adoption and perception. Let's also ignore this particular moment in time. Let's go back to the beginning and look at the big picture from then until now. From that perspective, it's quite a rosy picture. We've got a wealth of libraries available compared to just a few years ago. Conversations on reddit don't immediately descend into D-bashing like they used to. I see more new people more frequently in the forums than I used to. Multiple companies are using D and talking about their usage, sharing their code, where there used to be none. It's just a vastly different community than it was when I first stumbled into it. Much for the better. Yes, there are holes to fill, improvements to be made, but there always have been and there always will be. It's an ongoing process that, by the way, has many more people contributing to it than it did a decade ago. It's natural for people to come in along the way, look at the current state of affairs (without the benefit of that longer perspective -- or even those who do have perspective but have lost heart because their major peeves haven't been addressed), and start despairing that if only D did this or did that, or targeted that domain, or had a plugin for that IDE, or whatever, then it would be a better choice than Rust or Go or Javascript and more developers would pick it up. That might even be true. But the thing to remember is that neither the language nor the community has stagnated. Progress is going steadily forward despite all the predictions of doom and gloom (which I've been seeing in these forums since 2003). And if everyone in the community would pick a pet peeve to fix, whether it be making edits to the web site or contributing to an IDE plugin, it all moves that much further forward. As long as we keep our heads down and keep chipping away, things will only continue to improve.
Re: How do you use D?
For instance, D is my favorite language, and I try to promote it as much as I can (reddit, stackoverflow, even on the go-nuts google groups). But professionally I still use C++ (#3 TIOBE), PHP (#7), Go (#16) and now Dart (#20). Not D. Despite Go and Dart are very recent "post-D" languages, people are already starting to use them a lot these days. Whether you trust or not these "pseudo" rankings, they are probably already more popular than D, despite they are still in their 1.x version. That's sad, because the same developers who now use Go (including me) could have started to use D instead. But they didn't. Obviously Google's great support and marketing help a lot, but most developers are not as dumb as you may think. They just use what solve their daily problems. In the end it's often as simple as that. That's why now I always use D to develop my command-line tools. It gets the job done quickly and easily. Same for Go and Dart. Despite I don't really like them actually.
Re: How do you use D?
On Sunday, 6 August 2017 at 06:04:57 UTC, Ecstatic Coder wrote: Very interesting post. My bachelor's thesis was a expert system for stock trading implemented with Borland C++ 1.0, and D would have been a good fit as well if had been an option in 1989, so I understand why you think that financial development will make D popular. I don't know that I would say finance will make D popular but it's one domain that I know well where I think it can be useful. Popularity isn't only a good thing either. I think the focus on Go, Rust etc as a competitive threat is misplaced. If they do something well and it fits us we should without shame copy it, but better. But just because they are the focus of attention amongst some communities doesn't mean we should otherwise worry about what they are doing. But that's the exact opposite of what trending languages do at the moment (Go, Kotlin, etc). They care to solve the basic problems of the casual developer : implementing desktop, mobile or web applications. Why try to beat them at their own game, or even spend energy wondering about it. The DNA of the community mostly isn't interested in solving the problems of the casual developer in the same way. So unless it changes then it's a tough game to expect to beat them on criteria they set. Looks at the compounded rate of growth of dmd daily downloads. If it were a stock, I wouldn't be short it, because it's in an uptrend and far from overbought. Many other contexts you would even call that explosive growth. Not the most interesting jobs maybe, but that's what pays the bill of many of us, the "less skilled" developers who are not engineers. I guess you only need one job. And there is share of market and share of mind. It's much easier for talented people to be recognised as such in a smaller community than a vast one.
Re: How do you use D?
Very interesting post. My bachelor's thesis was a expert system for stock trading implemented with Borland C++ 1.0, and D would have been a good fit as well if had been an option in 1989, so I understand why you think that financial development will make D popular. But that's the exact opposite of what trending languages do at the moment (Go, Kotlin, etc). They care to solve the basic problems of the casual developer : implementing desktop, mobile or web applications. Not the most interesting jobs maybe, but that's what pays the bill of many of us, the "less skilled" developers who are not engineers.
Re: How do you use D?
On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote: While the Orgs using D page is very nice ... I hoping to hear more personal stories ... So How do you use D? In work, (key projects or smaller side projects) in your side project, (github, links please) just to learn something new? (I would easily argue that learning D will make you a better C++ programmer, maybe not the most efficient way, but I a sure it i very effective) Did you introduce D to your work place? How? What challenges did you face? What is you D setup at work, which compiler, which IDE? And any other fun facts you may want to share :) I started programming in 1983: BBC BASIC, 6502 assembler, Z80 assembler. I learnt to program C on an Amstrad PCW running CP/M, and compiler I used had K style declarations. Then I discovered economics, and my life took a different course. I moved into trading and managing money, but I always programmed on the side to help me solve investment and business problems. Kept it quiet because programming was for a long time low status and clashed with what people expected to see in a money manager. Late 2013 I recognised that the way our business used technology was completely broken. The only way to make the most of technology is to combine an understanding of investing, financial instruments, the investment business, and technology in one mind. But where am I going to find a guy like that? So I looked in the mirror and realised I had to brush up my skills. So I started building tools to help me invest. My friends mostly thought it was a crazy course of action, because it's rare if you leave investing even temporarily to return to it, and I love markets, but sometimes the direct approach isn't the right one. We're drowning in data but don't have good tools to make sense of it. I learnt python and cython, but kept looking, because I wanted to have my cake and eat it. Why can I not have all of productivity, performance, static typing/correctness, abstraction, and code readability - I don't think I should have to choose just a couple, and I am not going to. That led me to D in 2014. At school they used to ask us if everyone else jumped out of the window would you do it too? And it's a profitable approach in financial markets to develop and learn to trust your own judgement of things. If a highly respected and very knowledgeable economist tells you "you do realise that there is no basis in economic theory for what you are suggesting", you need to be able to revisit your thinking, see what you might be missing, but in the end trust your own judgement over that of the putative expert. And he subsequently wrote a very impressive explanation after the fact of how what "couldn't be justified in theory" did in fact happen. And it's a bit similar with programming language choices and such. Its way better to appeal to people who make up their own mind and bear the consequences then to those who have to cover their behinds by getting the right ticks in the boxes because the are never going to be earlier adopters except through some unfortunate accident - because you also don't want such people as early adopters! Since then, one thing led to another, and I ended up hiring a few people from the community to help me as consultant developers. Maybe a bit more than 10% of Team Phobos, based on a simple calculation. I have also ended up running technology, amongst other things, for a decent size hedge fund. I am using D for the project I started beforehand, and we are starting to explore its usefulness in the rest of the firm for some core analytics. It pays to start small and build on early successes. Has D been good for me? What have been the consequences of the French Revolution? In both cases it's too early to say with utter confidence since life is complicated and things are not always what they seem to be in the moment, but I have a view on the latter, and I think the answer to the former is definitely yes. Finance used to be relatively at the leading edge. The industry got a bit too fat, it hired the wrong people as it expanded too quickly, and then after the crisis people had other things to worry about - first survival, and then an exploding burden of compliance. At one big bank even the compliance people complain about the number of compliance people they have. On top of that, there's so much legacy systems that it can be very difficult to do anything creative or new. So as an industry we fell behind a bit, and when you go through a cycle like that if becomes somewhat self-reinforcing. To turn things around you need to hire very good people, but it's not so easy to find very good people who are willing to work with the people who created and tolerated the mess in the first place. But it can be done, and I think based on a view from afar that the banks will do better on this front
Re: How do you use D?
On Sunday, 6 August 2017 at 03:30:00 UTC, Laeeth Isharc wrote: I've suggested exactly the same "easy-to-learn super-powered stronly-typed javascript" and "efficient web server development" advertising approachs to the D leadership, using a more "Python.org"-like website. [snip] Good long read.
Re: How do you use D?
On Saturday, 5 August 2017 at 21:31:49 UTC, Ecstatic Coder wrote: It is more about marketing. Maybe Go is not a perfect language, maybe not even a good one, but it's sold so good because of a good marketing So, calling D a "better C++" is a bad advertisement. But if you rename it to 'Script', for example "DatScript" and sell it as "better, statically typed JavaScript dialect which compiles into fast native executables" it will became #1 language on GitHub in no time. +1 I've suggested exactly the same "easy-to-learn super-powered stronly-typed javascript" and "efficient web server development" advertising approachs to the D leadership, using a more "Python.org"-like website. Maybe it's because this change would be much too radical, but I've been told that the "Better C++" slogan won't change, despite D could easily be "tweaked" to eat a significant part of Go/Dart's market shares. And I'm not especially convinced that many C++ developers are currently rushing towards D because of the current website. For instance, I've personally chosen D *only* it was much better than JavaScript/Node.js, not because it was better than C++, that I still have to use for game and mobile development. Still waiting that somebody explains me how to _easily_ use D with Unreal Engine, Cocos2D-X, etc... ;) I know I'm not the general case, but this still proves that "some" C++ developers won't switch to D for long because they are too tied to their ecosystem. In open source, and indeed in entrepreneurial corporations, the way to persuade people is to create the shift you advocate, at least in a small way, so people can see what your early start could become. Code wins arguments, as they say at Facebook, and not just code but documentation, business plans etc too. Its work to write it, but on the other hand my experience has been that work is rarely truly wasted. It might seem so at the time, but for example work I did to persuade somebody that didn't want to listen, and where it seemed like I was pointlessly banging my head against the wall, has ended up being very valuable, even in dollar terms a few years later. It's not always rational to be excessively calculating about risk reward in the face of genuine, radical uncertainty when the risk is not that bad. I agree with you that the benefits of D are not perfectly well communicated to people who aren't C++ programmers looking for salvation. I had a discussion just last week about that, explaining that D isn't just something they mostly fits only large data sets where performance is key. And in particular it's a cultural challenge because people have become resigned to the idea of different languages for different purposes, and to a large extent D doesn't fit the mental schema people have. Nothing much changes in life day to day, and changes that seem to be big often unfold slowly for a long time before being noticed. The financial crisis unfolding began in Feb 2007 at the latest, but it didn't feel like that to most people at the time. Similarly, compare D documentation today to that of early 2014 (when I first look at D). Plenty of it was all perfectly clear if you had a more academic training in computing, but if not then it wasn't the friendliest. I tried to persuade one chap who was helping me between jobs to learn D, and he was absolutely terrified of it, to a good extent because of the docs! And it's also because people are used to complexity being hidden from them and things being made very easy. Since D often involves paying a price upfront to make future things easier, perhaps it's worth bearing in mind that there's a coupling between the degree of development of the tooling and how polished the docs should be. If you make it so easy to learn D that you draw people who are utterly stuck when they hit dependency problems with dub, that may not be ideal either. Ie an implicit question of truth in advertising. And the situation with docs changed over time. One recent change is thanks to Seb Wilzbach who introduced runnable examples generated automatically from unit tests. If you look at his pull request it wasn't welcomed entirely with open arms in the beginning because the benefits weren't clear (and some other reasons I forgot). So if you think we should have friendlier docs appealing to non systems programmers, why not write a mock up so others can see. It needn't be either or, because you can have an easy or advanced channel from front page. And it's worth not alienating those who want to go straight to the meat of things - there's nothing more frustrating than a system that talks down to you or breaks things down into little pieces when you're quite used to slaughtering and butchering dinner for yourself, thank you very much... I really think there's a limit in how much sense it makes to think about D marketshare against other programming languages.
Re: How do you use D?
It is more about marketing. Maybe Go is not a perfect language, maybe not even a good one, but it's sold so good because of a good marketing So, calling D a "better C++" is a bad advertisement. But if you rename it to 'Script', for example "DatScript" and sell it as "better, statically typed JavaScript dialect which compiles into fast native executables" it will became #1 language on GitHub in no time. +1 I've suggested exactly the same "easy-to-learn super-powered stronly-typed javascript" and "efficient web server development" advertising approachs to the D leadership, using a more "Python.org"-like website. Maybe it's because this change would be much too radical, but I've been told that the "Better C++" slogan won't change, despite D could easily be "tweaked" to eat a significant part of Go/Dart's market shares. And I'm not especially convinced that many C++ developers are currently rushing towards D because of the current website. For instance, I've personally chosen D *only* it was much better than JavaScript/Node.js, not because it was better than C++, that I still have to use for game and mobile development. Still waiting that somebody explains me how to _easily_ use D with Unreal Engine, Cocos2D-X, etc... ;) I know I'm not the general case, but this still proves that "some" C++ developers won't switch to D for long because they are too tied to their ecosystem.
Re: How do you use D?
On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote: How do you use D? I use D for pretty much everything in my personal life at the moment. I've found some things that I thought were better in other languages, but either D's ecosystem has improved (which is why I'm rewriting my RSS reader from C# to D -- when I wrote it, vibe.d wasn't a thing) or I was proven false (scraping websites in Python led to a ton of inscrutable encoding errors; implementing a parser in C# was about 900 times slower than the D version until I wrote my own UTF8 string struct and made some other optimizations, at which point it was merely 3.5 times slower). By count, most of what I'm using it for is small scripts for simple simulations. Recurrences that I can't solve mentally in a reasonable amount of time, so I need a program for it. In ages past, I'd use Python, since it tends to be convenient. However, while it's a bit more convenient than D, type safety is worth a lot. I tend not to finish projects, but the ones I've worked on in the past week or strongly intend to get back to are: * An init system (mainly for learning). * A procedural generator for a witch's spellbook [1] * A rewrite of my RSS reader (70% complete) * A MUD involving procedurally generated sky islands As for the mechanism by which I use D: I've mainly stuck to vim. I've tried out vscode plus code-d, but that doesn't work for me. And in the past, I've used Eclipse plugins for D. Vim, NERDTree, and tmux make for a good editing experience -- it's what I use for Java at work. Did you introduce D to your work place? I used D to write a tool to extract and update vbulletin templates from a directory of templates. This meant we could store things in source control. (Vbulletin stores templates in its database. This makes their hosted solution much better, I'm sure. It makes my life more annoying.) Unfortunately, I was the only one who preferred source control rather than editing live. [1] Sample spellbook, only one spell (it needs some work): The Book of Vile Darkness a witch's guide to necromancy with friends 2 < )4 ,$ " 3 4 96, a spell to banish spirits You will need: * graveyard soil * bronze mirror reduce graveyard soil to a paste boil paste, bronze mirror in a size 6 cauldron mix paste thoroughly
Re: How do you use D?
On Thursday, 3 August 2017 at 03:46:38 UTC, Zwargh wrote: On Monday, 31 July 2017 at 12:32:52 UTC, Nicholas Wilson wrote: On Sunday, 30 July 2017 at 01:53:15 UTC, Zwargh wrote: I am using D to develop a system for rational drug design. The main application for D is for protein 3D structure prediction and statistical analysis using Differential Geometry and Knot Theory. Cool! Are you considered using dcompute for this once it has matured a bit? It is a possibility and MIR as well. In my experience, D could be the perfect replacement for C++ and Java for bioinformatics. I hope it does, i'll be using it for all my bioinformatics stuff.
Re: How do you use D?
On Monday, 31 July 2017 at 12:32:52 UTC, Nicholas Wilson wrote: On Sunday, 30 July 2017 at 01:53:15 UTC, Zwargh wrote: I am using D to develop a system for rational drug design. The main application for D is for protein 3D structure prediction and statistical analysis using Differential Geometry and Knot Theory. Cool! Are you considered using dcompute for this once it has matured a bit? It is a possibility and MIR as well. In my experience, D could be the perfect replacement for C++ and Java for bioinformatics.
Re: How do you use D?
On Wednesday, 2 August 2017 at 21:30:11 UTC, SCev wrote: guys don't do your own IDE, i see everyone working on his own IDE, please just make plugin for famous crossplatform IDE.. this will be better for comunity But I'm NIH interested in having my own plugin for Sublime which does exactly what I want how I want it. VSCode/Atom Used both of these for a considerable time, got sick of them (graphic glitches, slow, heavily interferes with power saving on battery power, etc.). Xamarin Studio/IntelliJ I'm frankly not interested in having either mono or a JVM on my machine. my team don't want use D cause IDEs are all shit I can understand that, but I'd have to say that D is then (currently) not for your team.
Re: How do you use D?
guys don't do your own IDE, i see everyone working on his own IDE, please just make plugin for famous crossplatform IDE.. this will be better for comunity VSCode/Atom/Xamarin Studio/IntelliJ my team don't want use D cause IDEs are all shit
Re: How do you use D?
On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote: While the Orgs using D page is very nice ... I hoping to hear more personal stories ... I use D2 since 2014. I had wide experience of C programming earlier. Now I use only DMD in all projects, except special. At the initial stage there were difficulties with a choice of good GUI and I decided to make the binding for Qt-5. QtE5 turned out and I use it for creation of cross-platform applications. I mix pfobos and API Qt-5 in the applications. https://github.com/MGWL/QtE5 https://www.youtube.com/channel/UCNlwbCCcpYVAI0EL2VFOutQ Short list of development: - Learnability monitoring (reception of examinations) - dmd + qte5 - Scanner of file system, indexing and search. - the forth language interpreter - dmd + asm_dmd - IDE5 - mini ide (example QtE5) - dmd + QtE5 - External DLL for extension functionality of VBA for MSOffice - dmd - Smart Scripts for start of external applications I use notepad++ and only dmd (win/linux/OSX for 32/64) or ide5 for small app. dmd is an excellent programming language )))
Re: How do you use D?
On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote: While the Orgs using D page is very nice ... I hoping to hear more personal stories ... So How do you use D? I've been using D for most of my personal projects since 2011. In work, (key projects or smaller side projects) Unfortunately it's pretty much impossible to introduce a new language in my position at work, but I use D regularly for small text processing tools. I need to rip apart and/or reformat text files regularly; I used to use Perl but I find D to be as good or better for this job than Perl, and faster as well. in your side project, (github, links please) Recently I've been working on a Discord bot and a small game (not on github), both using D libraries of course. just to learn something new? (I would easily argue that learning D will make you a better C++ programmer, maybe not the most efficient way, but I a sure it i very effective) I've learned about everything from programming language design to type theory to algorithm design to low-level programming just from participating in the D community over the past 6 years. There's no question that learning D has made me a better programmer and introduced me to concepts that I would not have been aware of otherwise. Did you introduce D to your work place? How? What challenges did you face? I would love to introduce D to my work place but it's not really possible. What is you D setup at work, which compiler, which IDE? Plain old Sublime Text with DCD/dscanner/dfmt. I used to heavily use Visual Studio with the visual-d plugin but I wanted something more light weight.
Re: How do you use D?
s/ok we have to because of failover/ok we have two because of failover/ On Wed, Aug 2, 2017 at 11:29 AM, Daniel Kozak <kozz...@gmail.com> wrote: > On Fri, Jul 28, 2017 at 4:58 PM, Ali via Digitalmars-d < > digitalmars-d@puremagic.com> wrote: > >> While the Orgs using D page is very nice ... I hoping to hear more >> personal stories ... >> >> So >> >> How do you use D? >> > > Mainly at work, for lot of things. > > autoloader - tool for parsing all php files at our main project and > generate file for autoloading php files > esatd - deamon for controling and communicating with our servers > (reading logs, do releases of our products, controlling of availability...) > cronchecker - tool for managing and watchdoging our crons > dbsync - db tool for syncing and moving our databases around different > servers > testdbsync - dbtool sync our production databases to our test databases > phpdispatcher - deamon for managing php workers processes > camera-media-server - reverse engineering server for communicating > with some chinese DVR units > esat-map-engine - tool for (reverse) geocoding, and generating map > tiles > mapfactorbridge - REST API over MapFactor OCX(windows only, we used it > under wine), so it is possible to use it on many machines through network > and on any platform > MapfactorWrapper - demon for calculating shortest path from one > city(or any place) to another using mapfactor ocx api (mapfactorbridge) > > > >> >> Did you introduce D to your work place? How? What challenges did you face? >> > > Yes in 2012, only problem was with the ecosystem. There has been no good > IDE and too few libraries, but because of posibility to use C libraries it > was not a problem. > But good IDE is still a problem for some of us. > > >> >> What is you D setup at work, which compiler, which IDE? >> > > DMD for development, LDC or GDC for release binaries, VSCode with webfreak > dlang plugin (2017-now), monodevelop (2013-2016) > > >> >> And any other fun facts you may want to share :) >> > > In 2012 at work we have been looking for a way how to improve performance > of our data processing machines. These machines process lots of files > (binary,xml,text...). > These files comes from GPS units and has been (still are) process by PHP > scripts (called parsers). > > So we decided to rewrite those PHP scripts to something faster (PHP has > been quite slow theses days, now with PHP7 and HHVM it is little better). > So I was responsible for finding another language (the right one) in which > we wil rewrite those scripts. OK easy task, so I selected few languages I > know to select from. > Java, C/C++, Go, Python. But quite fast I realized none of these languages > fulfil our requirements. > Our requirements was: > OOP (Go is out) > GC (C++ is out, ok there is a way to use gc in c++, but i have never done > that before) > Fast startup (Java is out because of VM) > Syntax similar to PHP as much as posible (python is out) > Fast compilation (C++ is out again) > > Our best choice has been Java, but it would mean change architecture > (instead of executing own process for every file, we will need to process > them in one process with multiple threads or something similar), which has > been no go these days. > > So I have been looking for some another language. And for some reason I > have remembered that there has been some language, which I have try at my > high school days (2004-2008). Unfortunately I did not remembred the name. > So I start typing into google things I have remembred about this language. > And after some time I have found it (D language). So I looked at D closer > and was very satisfied. My first thoughts was something like "This is it". > > So I introduce D to my coworkers. At first there has been two camps. One > camp has the same feeling about D as me, the other ones was OK with D as a > language, but has been afraid of ecosystem. So I have started to showing > them how easily I can use C ecosystem so they do not have to be worried. So > after some time D has been chosen and we started to rewrite our parsers > into D. > > First results (just data processing) has been promising (new parsers has > been 10 to 100 times faster than the old(PHP) ones with smaller system > requirments), but after integrating other parts (database, filesystem...) > we have realized there is an almost no gain in the end. Data processing was > only small part of parsers, so database and filesystem interaction has been > the problem. So we start to improve this part of parsers. In the end we was > 5 times faste
Re: How do you use D?
On Saturday, 29 July 2017 at 21:07:24 UTC, H. S. Teoh wrote: Unfortunately, they are not receptive to new languages right now. C is king here, sad to say, and even C++ is only barely tolerated (they basically outlawed C++ exceptions in the name of optimization, and use their own C-based hack instead, among other such restrictions). The mere mention of the word "GC" will make the answer an automatic "no". I use D without exceptions and GC too, previously I used C for this, but of course any D is miles ahead of it.
Re: How do you use D?
On Fri, Jul 28, 2017 at 4:58 PM, Ali via Digitalmars-d < digitalmars-d@puremagic.com> wrote: > While the Orgs using D page is very nice ... I hoping to hear more > personal stories ... > > So > > How do you use D? > Mainly at work, for lot of things. autoloader - tool for parsing all php files at our main project and generate file for autoloading php files esatd - deamon for controling and communicating with our servers (reading logs, do releases of our products, controlling of availability...) cronchecker - tool for managing and watchdoging our crons dbsync - db tool for syncing and moving our databases around different servers testdbsync - dbtool sync our production databases to our test databases phpdispatcher - deamon for managing php workers processes camera-media-server - reverse engineering server for communicating with some chinese DVR units esat-map-engine - tool for (reverse) geocoding, and generating map tiles mapfactorbridge - REST API over MapFactor OCX(windows only, we used it under wine), so it is possible to use it on many machines through network and on any platform MapfactorWrapper - demon for calculating shortest path from one city(or any place) to another using mapfactor ocx api (mapfactorbridge) > > Did you introduce D to your work place? How? What challenges did you face? > Yes in 2012, only problem was with the ecosystem. There has been no good IDE and too few libraries, but because of posibility to use C libraries it was not a problem. But good IDE is still a problem for some of us. > > What is you D setup at work, which compiler, which IDE? > DMD for development, LDC or GDC for release binaries, VSCode with webfreak dlang plugin (2017-now), monodevelop (2013-2016) > > And any other fun facts you may want to share :) > In 2012 at work we have been looking for a way how to improve performance of our data processing machines. These machines process lots of files (binary,xml,text...). These files comes from GPS units and has been (still are) process by PHP scripts (called parsers). So we decided to rewrite those PHP scripts to something faster (PHP has been quite slow theses days, now with PHP7 and HHVM it is little better). So I was responsible for finding another language (the right one) in which we wil rewrite those scripts. OK easy task, so I selected few languages I know to select from. Java, C/C++, Go, Python. But quite fast I realized none of these languages fulfil our requirements. Our requirements was: OOP (Go is out) GC (C++ is out, ok there is a way to use gc in c++, but i have never done that before) Fast startup (Java is out because of VM) Syntax similar to PHP as much as posible (python is out) Fast compilation (C++ is out again) Our best choice has been Java, but it would mean change architecture (instead of executing own process for every file, we will need to process them in one process with multiple threads or something similar), which has been no go these days. So I have been looking for some another language. And for some reason I have remembered that there has been some language, which I have try at my high school days (2004-2008). Unfortunately I did not remembred the name. So I start typing into google things I have remembred about this language. And after some time I have found it (D language). So I looked at D closer and was very satisfied. My first thoughts was something like "This is it". So I introduce D to my coworkers. At first there has been two camps. One camp has the same feeling about D as me, the other ones was OK with D as a language, but has been afraid of ecosystem. So I have started to showing them how easily I can use C ecosystem so they do not have to be worried. So after some time D has been chosen and we started to rewrite our parsers into D. First results (just data processing) has been promising (new parsers has been 10 to 100 times faster than the old(PHP) ones with smaller system requirments), but after integrating other parts (database, filesystem...) we have realized there is an almost no gain in the end. Data processing was only small part of parsers, so database and filesystem interaction has been the problem. So we start to improve this part of parsers. In the end we was 5 times faster than the old parsers, but we could just do all these changes to old parsers too. So we end up with rewriting our D parsers back to PHP, because D parsers has been to far from being complete. But it was not complete failure. Because of this we have improved our parsers and D has established in our ecosystem. After few years parsers performance became problem again (even with PHP 7). So we need to improve them again. We have already known that rewriting it to something faster would not help. So I have try another approach. The result of that approach is phpdispatcher. So instead of starting new process for every file re
Re: How do you use D?
On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote: While the Orgs using D page is very nice ... I hoping to hear more personal stories ... So How do you use D? I'm a full stack developer using D on my personal backend project development and APis. In work, (key projects or smaller side projects) in your side project, (github, links please) I'm working on my own platform using vibe.d and other D dub packages. just to learn something new? (I would easily argue that learning D will make you a better C++ programmer, maybe not the most efficient way, but I a sure it i very effective) Even after php and JavaScript, D has made me a matured and productive developer. Its expressiveness is unmatched. Did you introduce D to your work place? How? What challenges did you face? Most people are hooked by popular stuff. Too destructed to focus. What is you D setup at work, which compiler, which IDE? Sublime Text Editor + dub + DMD And any other fun facts you may want to share :) D is productive, fast, easy, clean and capable more than any languagein existence. It a fact. GC is very useful for my use case. Dub registry is great way to use libs, community is awesome and full of technical/experienced people. D is a language that takes you to every party.
Re: How do you use D?
On 2017-07-28 16:58, Ali wrote: While the Orgs using D page is very nice ... I hoping to hear more personal stories ... So How do you use D? In work, (key projects or smaller side projects) in your side project, (github, links please) just to learn something new? (I would easily argue that learning D will make you a better C++ programmer, maybe not the most efficient way, but I a sure it i very effective) I mostly use D at my spare time to write tools and libraries for D, [1][2][3][4] to mention a few. I've managed to sneak in some D code at work for a tool [5] that helps building slides using Markdown and a build job in GitLab. This is now used for our weekly meeting to build a combined slideshow. Although nothing in production yet. Did you introduce D to your work place? How? What challenges did you face? Yes. The first question that comes up is: "who is using D?" and "are there any developers that know D?". The lack of libraries in some areas is not helping. What is you D setup at work, which compiler, which IDE? TextMate with the default D bundle [6], can be downloaded directly from within TextMate. DMD, RDMD, DUB and DCD. [1] https://github.com/jacob-carlborg/dstep [2] https://github.com/d-widget-toolkit/dwt [3] https://github.com/jacob-carlborg/dvm [4] https://github.com/jacob-carlborg/orange [5] https://github.com/jacob-carlborg/remarkify [6] https://github.com/textmate/d.bundle -- /Jacob Carlborg
Re: How do you use D?
On Sunday, 30 July 2017 at 01:53:15 UTC, Zwargh wrote: I am using D to develop a system for rational drug design. The main application for D is for protein 3D structure prediction and statistical analysis using Differential Geometry and Knot Theory. Cool! Are you considered using dcompute for this once it has matured a bit?
Re: How do you use D?
On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote: How do you use D? In work, (key projects or smaller side projects) I did my undergraduate in CS where I picked up Python, Java and a little bit of C/C++, but Java was my most familiar language. When I started my PhD in an Engineering Maths department, I picked up Andrei's book on D as I had come across the language several times earlier but never had a good excuse to pick it up properly. My supervisor is more of a mathematician so I did not have any dependencies or limitations in the tools I chose to use for research. For the first year of my PhD I built models in Java with Python for scripting on the side. I was incredibly disappointed with the performance in Java, and having been learning D on the side during that year, I decided to rewrite it using D. I essentially chose D for the one reason many people do NOT choose D; I wanted a GC-language that offered a decent level of control like C/C++ and was much nicer to write than Java, but with the convenience of not having to concern myself too much with memory management. I was happy to tune for efficiency, but did not want memory management to interrupt my workflow when writing a new model. D was perfect for this. in your side project, (github, links please) I've been lazy with side projects since I am always trying to work on my maths and writing skills which are pretty lacking given my choice of degree. Did you introduce D to your work place? How? What challenges did you face? I've tried to inform people of the merits of D but in this department, we're heavily tied to Matlab for teaching. When I started, they switched up the undergrad courses and started teaching Python as an alternative to Matlab alongside C/Java, but there's still a lot of reliance on Matlab. I'd like to see them chuck Java and teach C/D but we'll see. At university, there's a lot of difficulty in balancing the necessities (C for embedded systems/robotics and Matlab for modelling). What is you D setup at work, which compiler, which IDE? I've been a long-time Sublime Text user, using DMD (rdmd is a life saver) and that's about it. I'm interested in VS Code with the dlang extension though. And any other fun facts you may want to share :) It makes me sad to see so many people disgruntled by the mere presence of a garbage collector. I like it a lot and while I am completely on board with moving toward making it more optional, I am glad it's there and would welcome speed improvements. I think there's a balance to be struck between allowing programmers to forget about the low-level memory management when writing programs and tuning memory management when optimising for performance.
Re: How do you use D?
On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote: While the Orgs using D page is very nice ... I hoping to hear more personal stories ... So How do you use D? In work, (key projects or smaller side projects) I am using D to develop a system for rational drug design. The main application for D is for protein 3D structure prediction and statistical analysis using Differential Geometry and Knot Theory. Did you introduce D to your work place? How? What challenges did you face? As a research scientist, I can choose any tools I think will do the job. What is you D setup at work, which compiler, which IDE? Visual Studio Code + D Plugin - DMD and LDC And any other fun facts you may want to share :) After using FORTRAN, C/C++ and Java for structural bioinformatics, I think D is the best language so far for programming those types of tools.
Re: How do you use D?
On Sat, Jul 29, 2017 at 12:58 AM, Ali via Digitalmars-d < digitalmars-d@puremagic.com> wrote: > While the Orgs using D page is very nice ... I hoping to hear more > personal stories ... > > So > > How do you use D > In work, (key projects or smaller side projects) > As a replacement for Python for automating tasks (I was already using python because I suck at shell scripting), D's main advantage here is that I can compile a binary that will run on the target computer without having to install any dependencies. The most important thing to note here is that I haven't come accross any serious downsides to using D instead of python. > in your side project, (github, links please) > https://github.com/kayosiii/subterrainian is my current side project. It is moving slowly as I tend to work on other things when I get into a place where I can either wait for features to be implemented or do a lot of extra work. Most recently this was getting iAllocator working in @nogc code. > just to learn something new? (I would easily argue that learning D will > make you a better C++ programmer, maybe not the most efficient way, but I a > sure it i very effective) > Initially i picked up Andrei's book because it looked interesting and found that D was closer to what I wanted than anything else out there. Generally I learn languages when they are the easiest way to get a task done D and Perl are the only two I have learned for 'fun'. Did you introduce D to your work place? How? What challenges did you face? > Until recently I was the only coder at my workplace. I would probably use D more if there were more game engines that intergrated D. What is you D setup at work, which compiler, which IDE? > Currently tooling is my least favourite aspect of using D. I am finding vscode with the D extension that intergrates Dub the least bad solution. And any other fun facts you may want to share :) >
Re: How do you use D?
On Fri, Jul 28, 2017 at 02:58:01PM +, Ali via Digitalmars-d wrote: [...] > How do you use D? vim + dmd git HEAD :-) Well, sometimes also gdc/ldc2, but usually just dmd git HEAD because I'm a sucker for bleeding edge D. > In work, (key projects or smaller side projects) Unfortunately, people at work are very C/C++ centric and resistant to other languages. Plus, we have a huge codebase that has to run on an embedded system, so adding a new language into the mix does not sit well with the PTBs. So, no D at work, sad to say. :-( > in your side project, (github, links please) Sorry, most of my projects are not (yet) available on github. The few which are, include: https://github.com/quickfur/fastcsv https://github.com/quickfur/qrat https://github.com/quickfur/dcal The dcal code is very minimal, because it was supposed to be example code for the following article, so I haven't added any bells and whistles that I otherwise normally would: https://wiki.dlang.org/Component_programming_with_ranges > just to learn something new? (I would easily argue that learning D > will make you a better C++ programmer, maybe not the most efficient > way, but I a sure it i very effective) Actually, I've found that D has completely spoiled C/C++ for me. After tasting the expressive power that is D, having to deal with C at work and C++ to a lesser extent (a rather constricted subset of C++, I might add, for various reasons) is just very painful and frustrating. I just can't enjoy working with C/C++ the way I used to anymore. D is just too comfortable to use and just too awesome, that going back to C/C++ feels like being forced to program on a 1MHz CPU with 64kB RAM after experiencing the power of a 6-core CPU with 800MHz per core with 3GB RAM. The only reason I'm still putting up with C/C++ is because they pay me to do it. > Did you introduce D to your work place? How? What challenges did you > face? Unfortunately, they are not receptive to new languages right now. C is king here, sad to say, and even C++ is only barely tolerated (they basically outlawed C++ exceptions in the name of optimization, and use their own C-based hack instead, among other such restrictions). The mere mention of the word "GC" will make the answer an automatic "no". > What is you D setup at work, which compiler, which IDE? [...] Compiler: usually dmd, but where performance is important, gdc or ldc2. IDE: what's that? :-D Linux is my IDE, vim is my source code editor. And no, I don't use syntax highlighting either. (IMAO, if code (or the language) needs highlighting just to be readable, it has already failed. I'm probably by far the minority in this opinion, and I'm quite happy with that. :-P) T -- By understanding a machine-oriented language, the programmer will tend to use a much more efficient method; it is much closer to reality. -- D. Knuth
Re: How do you use D?
On 7/29/17 3:05 AM, Russel Winder via Digitalmars-d wrote: In 2004 maybe "D as better C++" was a good line. In 2017 "D is a general purpose programming language that allow faster development time than C++, Go, and Rust" is a far better line? This is what attracts me to D--it's easy to write, clean to read, and super powerful. However the "faster development time" is a bit marred by D's current ecosystem: it's faster/easier than other languages in certain domains, but lack of libraries/integration make it a tough choice in other domains (like mobile). And we have fairly regular complaints on the forum about the new-to-D experience (and good on them for taking the time to post about it here!). If I had free time for D I'd be trying to work on improving those things.
Re: How do you use D?
On Fri, 2017-07-28 at 19:50 +, Anton Fediushin via Digitalmars-d wrote: > […] > It is more about marketing. Maybe Go is not a perfect language, > maybe not even a good one, but it's sold so good because of a > good marketing In the end Go is about interns at Google not making errors in Google code. It is also about some people liking it and being able to produce libraries and systems. And of course having lots of hype. I have to admit using Gogland as an IDE I quite like developing code with Go. > So, calling D a "better C++" is a bad advertisement. But if you > rename it to 'Script', for example "DatScript" and sell > it as "better, statically typed JavaScript dialect which compiles > into fast native executables" it will became #1 language on > GitHub in no time. In 2004 maybe "D as better C++" was a good line. In 2017 "D is a general purpose programming language that allow faster development time than C++, Go, and Rust" is a far better line? […] > > I am talking about community, not language. C++ community is so > huge that they cannot work together on the language, which leads > to different compilers supporting different features and > different frameworks for same purposes not compatible with each > other. So, instead of making something useful, C++ community > rewrites same code over and over again in the way they think it > should be done. > > It happens to new C++ specifications, when some feature got > rejected and one compiler implements it, but others doesn't. There is only one C++ standard, anyone using extras other than TR ones is not using C++, they have created their own language based on C++. -- Russel. = Dr Russel Winder t: +44 20 7585 2200 voip: sip:russel.win...@ekiga.net 41 Buckmaster Roadm: +44 7770 465 077 xmpp: rus...@winder.org.uk London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder signature.asc Description: This is a digitally signed message part
Re: How do you use D?
On Saturday, 29 July 2017 at 04:21:43 UTC, Shannon wrote: On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote: How do you use D? At my leisure time, I use it to build real-time apps (fast, faster, fastest ;-) At work, we use it for web-based stuff like apps in the cloud foundry. The big challenge for D is the small code base, lot of unfinished libs, low numbers of CPUs support, and tiny community compared to other languages. A typical discussion at work: "Did you hear about D?" "What's this" "A C-like language with more state-of-the-art syntax and functionalities. More secure, faster, more flexible compared to C, C++" "Is it strategic? Are other companies using it? Any light tower apps?..." "No, yet, but.." "Let's go to work with C/C++/Java/Javascript/PHP/Python...!" The point is, if you has the experience with other languages before, and you discover D (in my case it was an article in a german IT magazine), you don't like to go back. But you have to make the first step forward. Regards, Ozan
Re: How do you use D?
On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote: How do you use D? One work project a few years ago, and many side projects. rdmd makes D my "scripting" language of choice. In work, (key projects or smaller side projects) The need for single executable with the speed of C prompted me to finally dig into D, which I had been watching since 2007, or so. Most of my work is C++(Qt) - but the dependencies or need for installers made that undesireable for this project. I used D to build a model processing core component for an online service. All were happy with the experience. in your side project, (github, links please) I'm cooking up some bigger projects, beyond random scripts, but they are on private Fossil servers. I aim to make them public, when they get further along I meant to be coding right now! Did you introduce D to your work place? How? What challenges did you face? I don't tilt at those windmills anymore. It works for me. I'd rather be coding. What is you D setup at work, which compiler, which IDE? https://code.dlang.org/packages/dlangide while I can, but mostly Dlang plugin integration with Visual Studio Code And any other fun facts you may want to share :) I made some commandline utilities in D that would parse, process, and export 100K line files with an in-memory SQLite db and resources easily embedded in the executable. When I gave them to colleagues to use, they thought my code didn't work at all - because it executed and returned practically instantly. They were used to the 10s of seconds execution times of Ruby and Python!
Re: How do you use D?
On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote: How do you use D? I mostly use it for personal projects and used it several times for homework. In work, (key projects or smaller side projects) Still don't have a job :) in your side project, (github, links please) I'm creating a parasitic language (started like 2 days ago so still in very early stages) https://github.com/NotSpooky/Espuki Did several homeworks, one was creating a "MIPS" (instructions aren't really the same) simulator of a computer with two cores and two cache levels. https://github.com/NotSpooky/Simulador-MIPS The reason I became interested in D was the ability to mix usage of the GC with manual allocation for games. I spent several months making a 3D game but got bored (no GH link). just to learn something new? (I would easily argue that It has been very useful for this. For learning metaprogramming and ranges mostly. Did you introduce D to your work place? How? What challenges did you face? I have mentioned it to classmates. Most are somewhat interested but don't find it worth to learn a new language in which they won't probably work. What is you D setup at work, which compiler, which IDE? Vim. And any other fun facts you may want to share :) I like D more than any other current language, but I think backwards compatibility is already a significant burden. That's why I'm making a language that compiles to D. To have most of D without worrying too much about that.
Re: How do you use D?
How do you use D? I use D for building GTK applications, my current project is an open source Linux terminal emulator called Tilix (https://github.com/gnunn1/tilix) In work, (key projects or smaller side projects) Side projects only. Did you introduce D to your work place? How? What challenges No, my day job is all middleware and cloud projects primarily revolving around Java. What is you D setup at work, which compiler, which IDE? Visual Studio Code with the code-d plugin on Linux. I use DMD for development and LDC for releases.
Re: How do you use D?
On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote: How do you use D? I'm an economics professor. A lot of my work requires simulations and other tasks for which a slow language just won't work. I need good integration with C and the ability to call my programs from other languages. D is a perfect fit. I write a lot of functions that coauthors can call from R. I also use D for a lot of small (few dozen line) scripting tasks, for things like automating distribution of graded assignments to students and that sort of thing. in your side project, (github, links please) I don't program for fun. just to learn something new? (I would easily argue that learning D will make you a better C++ programmer, maybe not the most efficient way, but I a sure it i very effective) I came to D from Lisp and C, so I honestly don't do much I hadn't already been doing, and that's a good thing. Did you introduce D to your work place? How? What challenges did you face? Yes. There are no challenges when you are a researcher because you can do what you want. If I'm working with a grad student, they don't have much choice other than using what I use. Once you convince a researcher to use D, your work is done, because no external approval is needed. I also use some D functions inside R packages for my teaching. The same functionality is available in R, but it is many times slower, and the students will have to use D if they want the speed. What is you D setup at work, which compiler, which IDE? I use Geany, DMD, and LDC.
Re: How do you use D?
On Friday, 28 July 2017 at 18:48:25 UTC, Ali Çehreli wrote: On 07/28/2017 11:02 AM, Anton Fediushin wrote: > not with Go/Rust. They're good programming languages I really don't want to be in a position to diss other languages but with some experience, I can tell you that I agree with blog posts about Go being a disservice to programmers.[1] It is a good language in the sense that you have to dial your intellectual self down, accept limitations, and be deaf to limitations sold as merits. I can understand "Go is limited because it lacks this and that" but I can't agree with "Go is great because it lacks this and that." Maybe with a little more time I will forget powerful features of other languages and be a content Go programmer. :) "Go is great because it lacks things" is true when somebody comes from language, which allows too much (Like JavaScript or PHP). It is more about marketing. Maybe Go is not a perfect language, maybe not even a good one, but it's sold so good because of a good marketing So, calling D a "better C++" is a bad advertisement. But if you rename it to 'Script', for example "DatScript" and sell it as "better, statically typed JavaScript dialect which compiles into fast native executables" it will became #1 language on GitHub in no time. A friend of mine who had left Weka a few months ago has joined a startup in the microservices domain. The company uses Go (and some Python). My friend looked at Go and then spent some time to learn Rust and decided to push D instead for "competitive edge." (Not my words! :) ) His argument was, why should we be wasting time with other languages. So he is using D to write the most critical piece of the product. Nice! > splitted like in C++. I must have missed that one. Please tell me more about it or give some links to read about it. All I know is there is always disagreement on how some new C++ features should be designed. I am talking about community, not language. C++ community is so huge that they cannot work together on the language, which leads to different compilers supporting different features and different frameworks for same purposes not compatible with each other. So, instead of making something useful, C++ community rewrites same code over and over again in the way they think it should be done. It happens to new C++ specifications, when some feature got rejected and one compiler implements it, but others doesn't.
Re: How do you use D?
Ali wrote: How do you use D? ZX Spectrum emulator. Q2-like gfx engine. alot of 2d platformers, based on dynamic AABB trees tech. Secret Project of porting FPC platformer engine to D. highload TCP server. coding *all* my projects exclusively in D for at least 2.5 years now. converted some C coders to D ("look! D is a better C!").
Re: How do you use D?
On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote: How do you use D? I use it for everything I can. In the past, I have used it for work as my main job on web apps, though right now my work usage of D is limited to helper apps (it has a legacy ruby on rails codebase I am forced to work with as the main thing). I still do smaller work and all personal stuff in D to write web apps, little games, data processing, and gui programs. Most the programs I used day to day are written myself in D like my terminal emulator <https://github.com/adamdruppe/terminal-emulator>, irc program, code searcher, etc. Did you introduce D to your work place? How? What challenges did you face? The old job's main app was a PHP monstrosity that was impossible to maintain so we had to rewrite it... so I rewrote it in D. In about 1/10 the code and dev time, we matched the PHP's basic necessary functionality and were able to go forward with it. What is you D setup at work, which compiler, which IDE? dmd, no ide And any other fun facts you may want to share :) I've been using D for over half my programming years now. Started coding in 1999, started D in 2006... I also actually saw D in 2001 but disregarded it cuz my young self thought it looked like Java and Java sucks. lol
Re: How do you use D?
On 07/28/2017 11:02 AM, Anton Fediushin wrote: > not with Go/Rust. They're good programming languages I really don't want to be in a position to diss other languages but with some experience, I can tell you that I agree with blog posts about Go being a disservice to programmers.[1] It is a good language in the sense that you have to dial your intellectual self down, accept limitations, and be deaf to limitations sold as merits. I can understand "Go is limited because it lacks this and that" but I can't agree with "Go is great because it lacks this and that." Maybe with a little more time I will forget powerful features of other languages and be a content Go programmer. :) A friend of mine who had left Weka a few months ago has joined a startup in the microservices domain. The company uses Go (and some Python). My friend looked at Go and then spent some time to learn Rust and decided to push D instead for "competitive edge." (Not my words! :) ) His argument was, why should we be wasting time with other languages. So he is using D to write the most critical piece of the product. > splitted like in C++. I must have missed that one. Please tell me more about it or give some links to read about it. All I know is there is always disagreement on how some new C++ features should be designed. Ali [1] http://nomad.so/2015/03/why-gos-design-is-a-disservice-to-intelligent-programmers/
Re: How do you use D?
On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote: How do you use D? For personal projects, from low-level system hacking (like implementing own reference counted struct) to high-level web apps. just to learn something new? (I would easily argue that learning D will make you a better C++ programmer, maybe not the most efficient way, but I a sure it i very effective) Yup, with D I learned a lot of new programming techniques, like meta-programming, CTFE, Range-based algorithms etc. I really enjoy how quickly I can switch between low- and high-level code without changing the language. I think this is the main reason why I stayed with D, not with Go/Rust. They're good programming languages, but they force you to code in the way they call "idiomatic", not in the way you want to. D is a great language, because with all flexibility it has, D community haven't been splitted like in C++. What is you D setup at work, which compiler, which IDE? Latest DMD, Emacs and DUB. I also have LDC and GDC installed for testing. DMD compiles stuff faster than other compilers and has all latest things I need. And any other fun facts you may want to share :) It's a feature (c) Walter Bright, everytime somebody asks about bugs in D
Re: How do you use D?
Ali wrote: So How do you use D? mostly by invoking dmd or rdmd.
Re: How do you use D?
On Friday, 28 July 2017 at 14:58:01 UTC, Ali wrote: While the Orgs using D page is very nice ... I hoping to hear more personal stories ... So How do you use D? Privately whenever I need a program for something and D is the right tool for the job. in your side project, (github, links please) Most of my stuff is in a private gitlab instance, but there's tunneled [1], which is essentially a tool for Linux to route an arbitrary application's IPv4 traffic through an OpenVPN tunnel without interfering with the rest of the system's network traffic (i.e. other applications continue as is) using control groups. just to learn something new? (I would easily argue that learning D will make you a better C++ programmer, maybe not the most efficient way, but I a sure it i very effective) I originally started using D1 to learn something new (way back when), but I (on and off) stuck with it till today because it's still the least horrible option out there (that I know of) with the properties I need (designed for native programming, easy C interop, high productivity, maintainability, few UB / wtf moments). What is you D setup at work, which compiler, which IDE? For single file things neovim+dutyl, for projects Sublime Text 3 + custom plugin [2]. No IDEs for me. And any other fun facts you may want to share :) There's a (harmless) memory leak in druntime I want gone [3]. [1] https://github.com/Calrama/tunneled [2] https://github.com/Calrama/sublide [3] https://github.com/dlang/druntime/pull/1857
How do you use D?
While the Orgs using D page is very nice ... I hoping to hear more personal stories ... So How do you use D? In work, (key projects or smaller side projects) in your side project, (github, links please) just to learn something new? (I would easily argue that learning D will make you a better C++ programmer, maybe not the most efficient way, but I a sure it i very effective) Did you introduce D to your work place? How? What challenges did you face? What is you D setup at work, which compiler, which IDE? And any other fun facts you may want to share :)
Re: How do you use D to launch/open a window?
On Friday, 22 April 2016 at 21:13:31 UTC, anonymousuer wrote: What code is needed to tell D to open a window? Thank you in advance. You can choose between existing libraries or wrappers for GUI implementation like: DlangUI, Qt, ..., (or my new GUI framework called Rikarin what will be avaiable soon). If you want just create window for e.g. OpenGL context you can use WinAPI CreateWindow or wrappers like SDL or GLFW
Re: How do you use D to launch/open a window?
http://wiki.dlang.org/Libraries_and_Frameworks#GUI_Libraries
Re: How do you use D to launch/open a window?
On 2016-04-23 08:53, Mike Parker wrote: If you need a complete, cross-platform GUI toolkit, there are D bindings for Gtk (GtkD) and SWT (DWT). Technically DWT is not bindings to SWT. It's the full source completely translated to D. -- /Jacob Carlborg
Re: How do you use D to launch/open a window?
On Friday, 22 April 2016 at 21:13:31 UTC, anonymousuer wrote: What code is needed to tell D to open a window? Thank you in advance. import dlangui; mixin APP_ENTRY_POINT; extern (C) int UIAppMain(string[] args) { Window window = Platform.instance.createWindow("Window caption", null); window.mainWidget = parseML(q{ TextWidget {text: "hi!"} }); window.show(); return Platform.instance.enterMessageLoop(); }
Re: How do you use D to launch/open a window?
On Friday, 22 April 2016 at 21:29:29 UTC, anonymousuer wrote: On Friday, 22 April 2016 at 21:26:25 UTC, ciechowoj wrote: On Friday, 22 April 2016 at 21:13:31 UTC, anonymousuer wrote: What code is needed to tell D to open a window? Thank you in advance. Could you specify what kind of window do you need? As in a regular Windows window, for example when you open up IE or a program. The container of the program itself, non-command-line. The short answer: the same way you do it in C or C++. You just need to use bindings to the C or C++ libraries out there. D can interface directly with the Win32 API and the bindings for it are in DRuntime (the core.sys.windows as Rikki suggested). If all you need is to develop on Windows, that's a safe option. If you need a complete, cross-platform GUI toolkit, there are D bindings for Gtk (GtkD) and SWT (DWT). If you don't need all the bells and whistles like tabs, menus, editor panes and the like, then you can use SDL or GLFW (see DerelictSDL2 and DerelictGLFW3 for bindings), which are oriented toward games and, in GLFW's case, OpenGL.
Re: How do you use D to launch/open a window?
On 23/04/2016 9:29 AM, anonymousuer wrote: On Friday, 22 April 2016 at 21:26:25 UTC, ciechowoj wrote: On Friday, 22 April 2016 at 21:13:31 UTC, anonymousuer wrote: What code is needed to tell D to open a window? Thank you in advance. Could you specify what kind of window do you need? As in a regular Windows window, for example when you open up IE or a program. The container of the program itself, non-command-line. So a GUI window? If so I am working on a library for that for Phobos. Only problem is, its a long way off. Although Windows support is more or less done. https://github.com/rikkimax/alphaPhobos/tree/master/source/std/experimental/ui/window Otherwise you're stuck with c libraries such as SDL.
Re: How do you use D to launch/open a window?
On Friday, 22 April 2016 at 21:26:25 UTC, ciechowoj wrote: On Friday, 22 April 2016 at 21:13:31 UTC, anonymousuer wrote: What code is needed to tell D to open a window? Thank you in advance. Could you specify what kind of window do you need? As in a regular Windows window, for example when you open up IE or a program. The container of the program itself, non-command-line.
Re: How do you use D to launch/open a window?
On Friday, 22 April 2016 at 21:13:31 UTC, anonymousuer wrote: What code is needed to tell D to open a window? Thank you in advance. Could you specify what kind of window do you need?
How do you use D to launch/open a window?
What code is needed to tell D to open a window? Thank you in advance.