www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Are there desktop appications being developed in D currently?

reply "Puming" <zhaopuming gmail.com> writes:
Hi,

I bumped into a blog talking about building a (toy) browser 
engine in Rust:

(http://limpet.net/mbrubeck/2014/08/08/toy-layout-engine-1.html)

In the blog I found that the OP is in the mozilla servo team 
building a parallel browser for mozilla. The servo is hosted on 
github here:

(https://github.com/servo)

Yes, rust is a more infantile language compared to D, but people 
are already using them to create complicate applications like 
browser! This kind of projects would become a huge drive force to 
strengthen best practices in the language/lib design and attract 
newcomers.

When I learned about Clojure, and found that an editor/ide [Light 
Table](http://lighttable.com) was written entirely by 
Clojure(script), was really intrigged. [Atom](http://atom.io) is 
written in nodejs/coffeescript.

So I wonder, is there similar projects in D that I can take part, 
learn and enjoy?

I see the current hotspot of D are compilers、libs、http-server and 
game area, but haven't encountered an application project such as 
an editor, music player, etc.
Aug 08 2014
next sibling parent reply "ed" <g g.com> writes:
On Saturday, 9 August 2014 at 00:34:43 UTC, Puming wrote:
 Hi,

 I bumped into a blog talking about building a (toy) browser 
 engine in Rust:

 (http://limpet.net/mbrubeck/2014/08/08/toy-layout-engine-1.html)

 In the blog I found that the OP is in the mozilla servo team 
 building a parallel browser for mozilla. The servo is hosted on 
 github here:

 (https://github.com/servo)

 Yes, rust is a more infantile language compared to D, but 
 people are already using them to create complicate applications 
 like browser! This kind of projects would become a huge drive 
 force to strengthen best practices in the language/lib design 
 and attract newcomers.

 When I learned about Clojure, and found that an editor/ide 
 [Light Table](http://lighttable.com) was written entirely by 
 Clojure(script), was really intrigged. [Atom](http://atom.io) 
 is written in nodejs/coffeescript.

 So I wonder, is there similar projects in D that I can take 
 part, learn and enjoy?

 I see the current hotspot of D are compilers、libs、http-server 
 and game area, but haven't encountered an application project 
 such as an editor, music player, etc.
Manu started a project a while back which you may be interested in looking at. http://forum.dlang.org/thread/mailman.470.1386845003.3242.digitalmars-d puremagic.com https://github.com/FeedBackDevs/feedback Cheers, ed
Aug 08 2014
parent "Puming" <zhaopuming gmail.com> writes:
On Saturday, 9 August 2014 at 01:26:05 UTC, ed wrote:
 On Saturday, 9 August 2014 at 00:34:43 UTC, Puming wrote:
 Hi,

 I bumped into a blog talking about building a (toy) browser 
 engine in Rust:

 (http://limpet.net/mbrubeck/2014/08/08/toy-layout-engine-1.html)

 In the blog I found that the OP is in the mozilla servo team 
 building a parallel browser for mozilla. The servo is hosted 
 on github here:

 (https://github.com/servo)

 Yes, rust is a more infantile language compared to D, but 
 people are already using them to create complicate 
 applications like browser! This kind of projects would become 
 a huge drive force to strengthen best practices in the 
 language/lib design and attract newcomers.

 When I learned about Clojure, and found that an editor/ide 
 [Light Table](http://lighttable.com) was written entirely by 
 Clojure(script), was really intrigged. [Atom](http://atom.io) 
 is written in nodejs/coffeescript.

 So I wonder, is there similar projects in D that I can take 
 part, learn and enjoy?

 I see the current hotspot of D are compilers、libs、http-server 
 and game area, but haven't encountered an application project 
 such as an editor, music player, etc.
Manu started a project a while back which you may be interested in looking at. http://forum.dlang.org/thread/mailman.470.1386845003.3242.digitalmars-d puremagic.com https://github.com/FeedBackDevs/feedback Cheers, ed
Thanks, I could recall the discussion, but was not able to find it. Definitely gonna look at it :-)
Aug 08 2014
prev sibling next sibling parent reply ketmar via Digitalmars-d-learn <digitalmars-d-learn puremagic.com> writes:
On Sat, 09 Aug 2014 00:34:42 +0000
Puming via Digitalmars-d-learn <digitalmars-d-learn puremagic.com>
wrote:

yes, there is. all of ours apps are done with D and GtkD now. alas,
it's in-house, but alot of people using them. ;-)
Aug 09 2014
parent "Puming" <zhaopuming gmail.com> writes:
On Saturday, 9 August 2014 at 15:19:35 UTC, ketmar via 
Digitalmars-d-learn wrote:
 On Sat, 09 Aug 2014 00:34:42 +0000
 Puming via Digitalmars-d-learn 
 <digitalmars-d-learn puremagic.com>
 wrote:

 yes, there is. all of ours apps are done with D and GtkD now. 
 alas,
 it's in-house, but alot of people using them. ;-)
Can you give me some links? What platforms are they on?
Aug 09 2014
prev sibling next sibling parent reply "thedeemon" <dlang thedeemon.com> writes:
On Saturday, 9 August 2014 at 00:34:43 UTC, Puming wrote:
 Yes, rust is a more infantile language compared to D, but 
 people are already using them to create complicate applications 
 like browser!
Heh, Rust was initially created exactly to create a browser. Servo project is its main driver and purpose.
 I see the current hotspot of D are compilers、libs、http-server 
 and game area, but haven't encountered an application project 
 such as an editor, music player, etc.
We've got some. Photo processing app: http://www.infognition.com/blogsort/ Disk space visualizer and redundancy searcher: http://www.infognition.com/undup/ A tool for watching some folders and processing video files there: http://www.infognition.com/VideoEnhancer/autovideoenhance.html And we're going to make the next major version of Video Enhancer itself in D too. All the apps were made with DFL - D Forms Library, a nice equivalent of .NET's WinForms.
Aug 09 2014
next sibling parent "Dicebot" <public dicebot.lv> writes:
On Saturday, 9 August 2014 at 17:14:39 UTC, thedeemon wrote:
 We've got some.

 Photo processing app:
 http://www.infognition.com/blogsort/

 Disk space visualizer and redundancy searcher:
 http://www.infognition.com/undup/

 A tool for watching some folders and processing video files 
 there:
 http://www.infognition.com/VideoEnhancer/autovideoenhance.html

 And we're going to make the next major version of Video 
 Enhancer itself in D too.

 All the apps were made with DFL - D Forms Library, a nice 
 equivalent of .NET's WinForms.
How about mention at http://wiki.dlang.org/Current_D_Use ? :)
Aug 09 2014
prev sibling parent reply "Puming" <zhaopuming gmail.com> writes:
Interesting :-)

Unfortunately they are all windows only apps, I don't have a 
windows machine.

Can I link them on my bookmarks about D projects?

https://github.com/zhaopuming/awesome-d


On Saturday, 9 August 2014 at 17:14:39 UTC, thedeemon wrote:
 On Saturday, 9 August 2014 at 00:34:43 UTC, Puming wrote:
 Yes, rust is a more infantile language compared to D, but 
 people are already using them to create complicate 
 applications like browser!
Heh, Rust was initially created exactly to create a browser. Servo project is its main driver and purpose.
 I see the current hotspot of D are compilers、libs、http-server 
 and game area, but haven't encountered an application project 
 such as an editor, music player, etc.
We've got some. Photo processing app: http://www.infognition.com/blogsort/ Disk space visualizer and redundancy searcher: http://www.infognition.com/undup/ A tool for watching some folders and processing video files there: http://www.infognition.com/VideoEnhancer/autovideoenhance.html And we're going to make the next major version of Video Enhancer itself in D too. All the apps were made with DFL - D Forms Library, a nice equivalent of .NET's WinForms.
Aug 09 2014
parent reply "thedeemon" <dlang thedeemon.com> writes:
On Sunday, 10 August 2014 at 04:41:45 UTC, Puming wrote:

 Photo processing app:
 Disk space visualizer and redundancy searcher:
 A tool for watching some folders and processing video files 
 there...
 Interesting :-)

 Unfortunately they are all windows only apps, I don't have a 
 windows machine.
If you have Linux they work fine via Wine.
 Can I link them on my bookmarks about D projects?
 https://github.com/zhaopuming/awesome-d
I'm not in position to decide if they're awesome or not. :) Not sure they fit into that list, but if you want to include a mention, I don't mind for sure.
Aug 09 2014
parent "Puming" <zhaopuming gmail.com> writes:
On Sunday, 10 August 2014 at 05:34:49 UTC, thedeemon wrote:
 On Sunday, 10 August 2014 at 04:41:45 UTC, Puming wrote:

 Photo processing app:
 Disk space visualizer and redundancy searcher:
 A tool for watching some folders and processing video files 
 there...
 Interesting :-)

 Unfortunately they are all windows only apps, I don't have a 
 windows machine.
If you have Linux they work fine via Wine.
 Can I link them on my bookmarks about D projects?
 https://github.com/zhaopuming/awesome-d
I'm not in position to decide if they're awesome or not. :) Not sure they fit into that list, but if you want to include a mention, I don't mind for sure.
added your organization to : https://github.com/zhaopuming/awesome-d#organizations
Aug 10 2014
prev sibling next sibling parent reply "Peter Alexander" <peter.alexander.au gmail.com> writes:
On Saturday, 9 August 2014 at 00:34:43 UTC, Puming wrote:
 Yes, rust is a more infantile language compared to D, but 
 people are already using them to create complicate applications 
 like browser!
Rust was designed to build Servo. The people building Servo are the people building Rust. With all due respect to Rust, I don't think that counts as endorsement of the language.
Aug 09 2014
parent reply "Puming" <zhaopuming gmail.com> writes:
On Saturday, 9 August 2014 at 21:46:45 UTC, Peter Alexander wrote:
 On Saturday, 9 August 2014 at 00:34:43 UTC, Puming wrote:
 Yes, rust is a more infantile language compared to D, but 
 people are already using them to create complicate 
 applications like browser!
Rust was designed to build Servo. The people building Servo are the people building Rust. With all due respect to Rust, I don't think that counts as endorsement of the language.
I didn't know about that. I don't actually know much about Rust except the hype on hackernews :-) But nonetheless, this indicates that a serious application like a browser is a good driving force for a language to evolve.
Aug 09 2014
next sibling parent Russel Winder via Digitalmars-d-learn <digitalmars-d-learn puremagic.com> writes:
On Sun, 2014-08-10 at 04:37 +0000, Puming via Digitalmars-d-learn wrote:
[=E2=80=A6]
 I didn't know about that. I don't actually know much about Rust=20
 except the hype on hackernews :-)
=20
 But nonetheless, this indicates that a serious application like a=20
 browser is a good driving force for a language to evolve.
There is a Rust user group in London, it is having it's second meeting next week, and I am not going to be able to go :-( The first London Go user group meeting (at which I spoke) was about 20 people, within a year it became 120 people and 80 people unable to get in due to space limitations. Initial meeting were much more tutorial and introductory style, now the Go user group meetings are about applications and experiences, and indeed things that need to change about the language. If the Rust experience is even remotely like the Go experience there will be a strong group of users creating many, many good (and many, many, many bad) systems using it very quickly. As noted earlier in another thread there are maybe two or three D users within 50 miles of London so no meetings actually happen as yet. If we were able to push D as the language Facebook and other large companies are funding development of, this would be a hook to get some people to a meeting, much as Go was funded by Google and Rust is funded by Mozilla =E2= =80=94 Rust user group meetings are currently at Mozilla's offices in London, Go was originally meeting wherever but is now sponsored by CloudFlare and meets at Forward offices. Step 1 is obviously to have a Meetup group. Noticebly Go and Rust have an International overarching group and then each local group is separate. --=20 Russel. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D Dr Russel Winder t: +44 20 7585 2200 voip: sip:russel.winder ekiga.n= et 41 Buckmaster Road m: +44 7770 465 077 xmpp: russel winder.org.uk London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder
Aug 10 2014
prev sibling parent "Joakim" <dlang joakim.airpost.net> writes:
On Sunday, 10 August 2014 at 04:37:20 UTC, Puming wrote:
 On Saturday, 9 August 2014 at 21:46:45 UTC, Peter Alexander 
 wrote:
 On Saturday, 9 August 2014 at 00:34:43 UTC, Puming wrote:
 Yes, rust is a more infantile language compared to D, but 
 people are already using them to create complicate 
 applications like browser!
Rust was designed to build Servo. The people building Servo are the people building Rust. With all due respect to Rust, I don't think that counts as endorsement of the language.
I didn't know about that. I don't actually know much about Rust except the hype on hackernews :-) But nonetheless, this indicates that a serious application like a browser is a good driving force for a language to evolve.
I'm planning on tinkering with D over the next couple months on an idea to replace the web browser, which I laid out on this forum last year: http://forum.dlang.org/thread/tlpikltmamsfmqunndwm forum.dlang.org?page=3#post-dqddjhccpmxhgcssqtol:40forum.dlang.org The browser has gotten way too complex, it's time to design away much of that complexity. On the one hand, this might show D is a good language to try new ideas, instead of simply implementing old, obsolete ones. On the other hand, since it's much simpler, it's not really going to push the language like an overly complex browser might. ;)
Aug 10 2014
prev sibling parent reply "Adam D. Ruppe" <destructionator gmail.com> writes:
I wrote a terminal emulator in D a while ago 
https://github.com/adamdruppe/terminal-emulator

terminal emulators are pretty boring as far as desktop 
applications go though. I have more on my to do list but haven't 
actually gotten to them yet.
Aug 10 2014
next sibling parent reply "Adam D. Ruppe" <destructionator gmail.com> writes:
My thing works on Windows and Linux btw, though the windows 
version pipes to the plink program to talk to ssh. It'd be pretty 
easy to make it a stand alone thing though with a few tweaks, 
then it could be like an escape sequence handling library.
Aug 10 2014
parent "Puming" <zhaopuming gmail.com> writes:
Sorry for my misunderstanding.

After looking at your code I realized that your terminal emulator 
is a GUI application and I was responding about a shell :-)

Nonetheless, a terminal emulator is a very interesting tool.

On Sunday, 10 August 2014 at 13:25:32 UTC, Adam D. Ruppe wrote:
 My thing works on Windows and Linux btw, though the windows 
 version pipes to the plink program to talk to ssh. It'd be 
 pretty easy to make it a stand alone thing though with a few 
 tweaks, then it could be like an escape sequence handling 
 library.
Aug 10 2014
prev sibling parent reply "Puming" <zhaopuming gmail.com> writes:
Wow, it just happens that I checked your terminal.d code on the 
list an hour ago :-)

Definitely gonna look at it.

What do you mean by 'boring'? I think a shell in D would be 
awesome.


I'm planning to make a shell scripting lib in D, I would like it 
to be very powerful, but my coding skills was holding me back. 
Here is a list of what I want it to be:

1. multimode. I want it to combine shell and repl, I don't like 
that in the other repl you lose the ablility to call normal shell 
commands. So I think this shell could have a multiple mode just 
like what vi does: you change to a different mode by a key 
stroke. This will make it seemless to switch between repl mode 
and shell mode and other modes.

2. repl.

3. shell mode that interacts with repl. For example, the results 
of each shell command call will be stored in a repl variable for 
further repl computing.

4. remote mode. A config file sets up remote machines access, 
then we can call shell commands & repl commands as if on the 
remote machine, and even do them concurrently. It should also 
make resource/code syncing between machines easy(with rsync and 
lftp style of remote file management).

5. MVC style input/output. The out put of commands can be 
formated with a template (with color and indentations, even 
markdown support). traditional shell outputs are a mess.

6. bookmarks of every thing. Folders\Variables\routine 
commands\remote resources

7. autocomplete and auto style. write colorful code in the repl. 
Vi/emacs support of inline editing is also a plus.

8. dub support. You can create a project in the shell, and import 
dependencies interactly, and the dub.json will be updated as you 
type.

9. interactive coding & building. Interact with editors, and with 
dub and repl support, we can write code in a interactive way. You 
try some code in the repl and fit it into the project, no 
copy/pasting required.

All these combined will become a very complicated project, far 
beyond my ability. Currently I'm only doing item 4 and 5. (item 4 
was my initial requirement, we need a tool to manage shell 
scripts on multiple servers). I heard that someone was writing a 
repl, but forgot where it is, I'm waiting for it.

On Sunday, 10 August 2014 at 13:23:25 UTC, Adam D. Ruppe wrote:
 I wrote a terminal emulator in D a while ago 
 https://github.com/adamdruppe/terminal-emulator

 terminal emulators are pretty boring as far as desktop 
 applications go though. I have more on my to do list but 
 haven't actually gotten to them yet.
Aug 10 2014
parent reply "Adam D. Ruppe" <destructionator gmail.com> writes:
On Sunday, 10 August 2014 at 14:28:33 UTC, Puming wrote:
 What do you mean by 'boring'? I think a shell in D would be 
 awesome.
tbh I think shells are a bit boring too, but like you said in the other message, they are two different things. But a terminal emulator isn't much of a gui because all it displays is text (and mine actually can display pictures too) - no buttons, text areas, checkboxes, etc. like typically comes to mind when you think of a desktop gui app. I've been slowly writing a miniature gui widget library too, with the goal of zero dependencies and < 300kb compiled executables... but I just haven't had the time. Whenever I need a quick gui for a personal project I've actually been outputting html or something and reading the response with my cgi.d. html forms cover like 95% of my use cases.
 5. MVC style input/output. The out put of commands can be 
 formated with a template (with color and indentations, even 
 markdown support). traditional shell outputs are a mess.
I like what Windows Powershell does - it talks in objects which can be formatted to string or passed to other commands that understand them. For a while, I was toying with doing that in D too. I don't remember where I put the file (a super-simplified version is in my book somewhere though)... but the shell commands were actually just D functions that return strongly typed stuff. When composing them, it calls the function directly and communicating with external commands it does some simple toString serialization and deserialization so that works too. But I haven't finished it in great part because I find regular old bash to work well enough for me.
 7. autocomplete and auto style. write colorful code in the 
 repl. Vi/emacs support of inline editing is also a plus.
gnu readline which bash uses allows the editing and autocomplete which is cool.
Aug 10 2014
parent "Puming" <zhaopuming gmail.com> writes:
On Sunday, 10 August 2014 at 18:40:23 UTC, Adam D. Ruppe wrote:
 On Sunday, 10 August 2014 at 14:28:33 UTC, Puming wrote:
 What do you mean by 'boring'? I think a shell in D would be 
 awesome.
tbh I think shells are a bit boring too, but like you said in the other message, they are two different things. But a terminal emulator isn't much of a gui because all it displays is text (and mine actually can display pictures too) - no buttons, text areas, checkboxes, etc. like typically comes to mind when you think of a desktop gui app.
http://xiki.org/ provides a more GUI like terminal that has more gui widgets. xcode's swift language playground also shows a more visiual way of doing repl.
 I've been slowly writing a miniature gui widget library too, 
 with the goal of zero dependencies and < 300kb compiled 
 executables... but I just haven't had the time. Whenever I need 
 a quick gui for a personal project I've actually been 
 outputting html or something and reading the response with my 
 cgi.d. html forms cover like 95% of my use cases.

 5. MVC style input/output. The out put of commands can be 
 formated with a template (with color and indentations, even 
 markdown support). traditional shell outputs are a mess.
I like what Windows Powershell does - it talks in objects which can be formatted to string or passed to other commands that understand them.
Wow, I didn't know about that. This is another thing that windows does better.
 For a while, I was toying with doing that in D too. I don't 
 remember where I put the file (a super-simplified version is in 
 my book somewhere though)... but the shell commands were 
 actually just D functions that return strongly typed stuff. 
 When composing them, it calls the function directly and 
 communicating with external commands  it does some simple 
 toString serialization and deserialization so that works too.

 But I haven't finished it in great part because I find regular 
 old bash to work well enough for me.

 7. autocomplete and auto style. write colorful code in the 
 repl. Vi/emacs support of inline editing is also a plus.
gnu readline which bash uses allows the editing and autocomplete which is cool.
Thanks, I'll try that.
Aug 10 2014