www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - Code Poet, an IDE for D

reply Jeremie Pelletier <jeremiep gmail.com> writes:
It's been some time since I last posted to this newsgroup, I've been 
quite busy these past weeks!

Among other things, I started writing an IDE for D from scratch and 
opened a SourceForge project for it a few minutes ago, I'll also open a 
dsource project to link to the sf one in the following days.

At first I tried to code it in D using wxD but soon found out the 
limitations of these bindings, then I tried to write my own wxWidgets 
bindings which worked great until i realized I was leaking memory like 
hell and had a hard time linking garbage collected D objects to C++ 
reference counted objects without adding complex overhead.

So after spending two weeks on these failed attempts, I jumped back into 
C++ after two years of almost only writing D code, this time using 
boost, and boy is that library sweet!

Here is the (very simple) website of the project, with a screenshot of 
the program so far, the content is hard coded for now to test the custom 
editor painting routines.

http://codepoet.sourceforge.net


Jeremie
Nov 10 2009
next sibling parent reply Nick B <"nick_NOSPAM_.barbalich" gmail.com> writes:
Jeremie Pelletier wrote:
 It's been some time since I last posted to this newsgroup, I've been 
 quite busy these past weeks!
 
 Among other things, I started writing an IDE for D from scratch and 
 opened a SourceForge project for it a few minutes ago, I'll also open a 
 dsource project to link to the sf one in the following days.
 

Jeremie On 12 Oct 2009 you wrote: "Eclipse is heavy, slow and often unresponsive. I use poseidon myself because it is light and fast and I don't require much more from an IDE at the moment." Would you like to enlighten us as to why you have decided to write your own IDE & debugger, and give up Poseidon. cheers Nick B
Nov 10 2009
parent reply Jeremie Pelletier <jeremiep gmail.com> writes:
Nick B wrote:
 Jeremie Pelletier wrote:
 It's been some time since I last posted to this newsgroup, I've been 
 quite busy these past weeks!

 Among other things, I started writing an IDE for D from scratch and 
 opened a SourceForge project for it a few minutes ago, I'll also open 
 a dsource project to link to the sf one in the following days.

Jeremie On 12 Oct 2009 you wrote: "Eclipse is heavy, slow and often unresponsive. I use poseidon myself because it is light and fast and I don't require much more from an IDE at the moment." Would you like to enlighten us as to why you have decided to write your own IDE & debugger, and give up Poseidon. cheers Nick B

Sure, I really like Poseidon, but I got to the limit of its features and then it crashed one time too many on me (good thing I ctrl+S even few keystrokes) :x I've been using poseidon for over a year and a half now, and it has been great, only having a project manager and syntax highlighter and nothing else to depend on is a great way to learn about a language because it forces you to memorize everything. Many reasons lead me to decide to write my own IDE, its a project that I've been considering for quite some time now as a stepping stone to other long term ideas I have which would require such an IDE. I considered trying to pick up the poseidon sources and extending it, but porting it to DMD2 sounded like too much work. Working with the existing source implied using old versions of dwt and tango, two libraries I have no experience with. For one, I recently got addicted to the split window feature of VisualStudio and I found out that wxAUI implements it out of the box and in a better way than VS. You can drag and drop tabs to create new groups, and you're not limited to only one direction at a time. Intellisense was also another motivation, while its not needed to write code, its sure helps speed up the process, especially with those function parameter tooltips and autocompletion for the longer identifier names. Furthermore, Poseidon will only works with D code and only compile with dmd. I wanted to be able to use multiple languages and compilers side by side in the same project. As for debugging, poseidon's support for ddbg is great, but not nearly as powerful and practical as the debugging features of visual studio. Jumping back in C++ was refreshing, I now make very little use of macros, feel much more comfortable with templates and generic programming, basically I write C++ as if I was writing D, and it only makes me love the little conveniences of D even more. The IDE will also be cross-platform, I'm using wxWidgets for all the user interface and boost for everything else. Some things I have in mind for later in the development cycle are tasks, semantic analysis, version control for projects, automake and autoconf integration on unix, etc... Jeremie
Nov 10 2009
next sibling parent reply Nick B <"nick_NOSPAM_.barbalich" gmail.com> writes:
Jeremie Pelletier wrote:
 Nick B wrote:
 Jeremie Pelletier wrote:
 It's been some time since I last posted to this newsgroup, I've been 
 quite busy these past weeks!

 Among other things, I started writing an IDE for D from scratch and 
 opened a SourceForge project for it a few minutes ago, I'll also open 
 a dsource project to link to the sf one in the following days.



 
 The IDE will also be cross-platform, I'm using wxWidgets for all the 
 user interface and boost for everything else.
 
 Some things I have in mind for later in the development cycle are tasks, 
 semantic analysis, version control for projects, automake and autoconf 
 integration on unix, etc...
 
 
 Jeremie

Sounds really interesting. When do you expect it to be ready for beta testing ? Nick B
Nov 10 2009
parent Jeremie Pelletier <jeremiep gmail.com> writes:
Nick B wrote:
 Jeremie Pelletier wrote:
 Nick B wrote:
 Jeremie Pelletier wrote:
 It's been some time since I last posted to this newsgroup, I've been 
 quite busy these past weeks!

 Among other things, I started writing an IDE for D from scratch and 
 opened a SourceForge project for it a few minutes ago, I'll also 
 open a dsource project to link to the sf one in the following days.



 The IDE will also be cross-platform, I'm using wxWidgets for all the 
 user interface and boost for everything else.

 Some things I have in mind for later in the development cycle are 
 tasks, semantic analysis, version control for projects, automake and 
 autoconf integration on unix, etc...


 Jeremie

Sounds really interesting. When do you expect it to be ready for beta testing ? Nick B

At the rate this is going, I expect to have an usable editor within a month or two with a very basic set of features (project manager, syntax highlighting and compiler support only) and then from that I'll start adding features. It should also be cross platform from the start, the only windows-dependent code I have right now is the resource manager which loads embedded resources manually to create wxBitmap objects instead of using the heavyweight wxRC approach. Jeremie
Nov 11 2009
prev sibling parent =?ISO-8859-1?Q?Anders_F_Bj=F6rklund?= <afb algonet.se> writes:
Jeremie Pelletier wrote:

 Among other things, I started writing an IDE for D from scratch and
 opened a SourceForge project for it a few minutes ago, I'll also open a
 dsource project to link to the sf one in the following days.
 
 At first I tried to code it in D using wxD but soon found out the
 limitations of these bindings, then I tried to write my own wxWidgets
 bindings which worked great until i realized I was leaking memory like
 hell and had a hard time linking garbage collected D objects to C++
 reference counted objects without adding complex overhead.

 Jumping back in C++ was refreshing, I now make very little use of 
 macros, feel much more comfortable with templates and generic 
 programming, basically I write C++ as if I was writing D, and it only 
 makes me love the little conveniences of D even more.
 
 The IDE will also be cross-platform, I'm using wxWidgets for all the 
 user interface and boost for everything else.

Sounds like a good approach for a new fresh DMD2 IDE, the oldskool stuff with GDC and wxD and Code::Blocks is not very likely to make it there... I think Walter writes DMD the same way (D in C++) and Andrei is a fan of Boost, so I don't think you can go wrong there... Hope it gets released! --anders
Nov 11 2009
prev sibling next sibling parent reply "Lars T. Kyllingstad" <public kyllingen.NOSPAMnet> writes:
Jeremie Pelletier wrote:
 It's been some time since I last posted to this newsgroup, I've been 
 quite busy these past weeks!
 
 Among other things, I started writing an IDE for D from scratch and 
 opened a SourceForge project for it a few minutes ago, I'll also open a 
 dsource project to link to the sf one in the following days.
 
 At first I tried to code it in D using wxD but soon found out the 
 limitations of these bindings, then I tried to write my own wxWidgets 
 bindings which worked great until i realized I was leaking memory like 
 hell and had a hard time linking garbage collected D objects to C++ 
 reference counted objects without adding complex overhead.
 
 So after spending two weeks on these failed attempts, I jumped back into 
 C++ after two years of almost only writing D code, this time using 
 boost, and boy is that library sweet!
 
 Here is the (very simple) website of the project, with a screenshot of 
 the program so far, the content is hard coded for now to test the custom 
 editor painting routines.
 
 http://codepoet.sourceforge.net
 
 
 Jeremie

Though I don't use an IDE myself, I think this is great. It is often mentioned on the NG that one of the things keeping people away from D is the fact that there are so few IDEs with good D support. Are you strictly targeting Windows, or will this be available for other platforms as well? -Lars
Nov 11 2009
parent "Lars T. Kyllingstad" <public kyllingen.NOSPAMnet> writes:
Lars T. Kyllingstad wrote:
 Jeremie Pelletier wrote:
 It's been some time since I last posted to this newsgroup, I've been 
 quite busy these past weeks!

 Among other things, I started writing an IDE for D from scratch and 
 opened a SourceForge project for it a few minutes ago, I'll also open 
 a dsource project to link to the sf one in the following days.

 At first I tried to code it in D using wxD but soon found out the 
 limitations of these bindings, then I tried to write my own wxWidgets 
 bindings which worked great until i realized I was leaking memory like 
 hell and had a hard time linking garbage collected D objects to C++ 
 reference counted objects without adding complex overhead.

 So after spending two weeks on these failed attempts, I jumped back 
 into C++ after two years of almost only writing D code, this time 
 using boost, and boy is that library sweet!

 Here is the (very simple) website of the project, with a screenshot of 
 the program so far, the content is hard coded for now to test the 
 custom editor painting routines.

 http://codepoet.sourceforge.net


 Jeremie

Though I don't use an IDE myself, I think this is great. It is often mentioned on the NG that one of the things keeping people away from D is the fact that there are so few IDEs with good D support. Are you strictly targeting Windows, or will this be available for other platforms as well?

Forget it, I see you've already answered this in another post. :) -Lars
Nov 11 2009
prev sibling next sibling parent reply grauzone <none example.net> writes:
Jeremie Pelletier wrote:
 It's been some time since I last posted to this newsgroup, I've been 
 quite busy these past weeks!
 
 Among other things, I started writing an IDE for D from scratch and 
 opened a SourceForge project for it a few minutes ago, I'll also open a 
 dsource project to link to the sf one in the following days.
 
 At first I tried to code it in D using wxD but soon found out the 
 limitations of these bindings, then I tried to write my own wxWidgets 
 bindings which worked great until i realized I was leaking memory like 
 hell and had a hard time linking garbage collected D objects to C++ 
 reference counted objects without adding complex overhead.
 
 So after spending two weeks on these failed attempts, I jumped back into 
 C++ after two years of almost only writing D code, this time using 
 boost, and boy is that library sweet!

Oh dear, that's not good publicity for D... I know the implementation language doesn't really matter, but it's just not good publicity.
 Here is the (very simple) website of the project, with a screenshot of 
 the program so far, the content is hard coded for now to test the custom 
 editor painting routines.
 
 http://codepoet.sourceforge.net
 
 
 Jeremie

Nov 11 2009
next sibling parent Jeremie Pelletier <jeremiep gmail.com> writes:
grauzone wrote:
 Jeremie Pelletier wrote:
 It's been some time since I last posted to this newsgroup, I've been 
 quite busy these past weeks!

 Among other things, I started writing an IDE for D from scratch and 
 opened a SourceForge project for it a few minutes ago, I'll also open 
 a dsource project to link to the sf one in the following days.

 At first I tried to code it in D using wxD but soon found out the 
 limitations of these bindings, then I tried to write my own wxWidgets 
 bindings which worked great until i realized I was leaking memory like 
 hell and had a hard time linking garbage collected D objects to C++ 
 reference counted objects without adding complex overhead.

 So after spending two weeks on these failed attempts, I jumped back 
 into C++ after two years of almost only writing D code, this time 
 using boost, and boy is that library sweet!

Oh dear, that's not good publicity for D... I know the implementation language doesn't really matter, but it's just not good publicity.
 Here is the (very simple) website of the project, with a screenshot of 
 the program so far, the content is hard coded for now to test the 
 custom editor painting routines.

 http://codepoet.sourceforge.net


 Jeremie


My choice of C++ was based on the wxWidgets library, not the language itself. I don't mean to do bad publicity to D, and I believe a good IDE will do D more good than it being written in C++ would do harm. Jeremie
Nov 11 2009
prev sibling parent reply retard <re tard.com.invalid> writes:
Wed, 11 Nov 2009 10:00:58 +0100, grauzone wrote:

 Jeremie Pelletier wrote:
 It's been some time since I last posted to this newsgroup, I've been
 quite busy these past weeks!
 
 Among other things, I started writing an IDE for D from scratch and
 opened a SourceForge project for it a few minutes ago, I'll also open a
 dsource project to link to the sf one in the following days.
 
 At first I tried to code it in D using wxD but soon found out the
 limitations of these bindings, then I tried to write my own wxWidgets
 bindings which worked great until i realized I was leaking memory like
 hell and had a hard time linking garbage collected D objects to C++
 reference counted objects without adding complex overhead.
 
 So after spending two weeks on these failed attempts, I jumped back
 into C++ after two years of almost only writing D code, this time using
 boost, and boy is that library sweet!

Oh dear, that's not good publicity for D... I know the implementation language doesn't really matter, but it's just not good publicity.

Well, you sometimes have to accept that if the language isn't really production quality yet, it's counterproductive to use it for real world projects. When developing the IDE with C++, he will probably not run into that many compiler bugs. With D each 500..1000 lines of code would probably expose at least one bug.
Nov 29 2009
parent grauzone <none example.net> writes:
retard wrote:
 Wed, 11 Nov 2009 10:00:58 +0100, grauzone wrote:
 
 Jeremie Pelletier wrote:
 It's been some time since I last posted to this newsgroup, I've been
 quite busy these past weeks!

 Among other things, I started writing an IDE for D from scratch and
 opened a SourceForge project for it a few minutes ago, I'll also open a
 dsource project to link to the sf one in the following days.

 At first I tried to code it in D using wxD but soon found out the
 limitations of these bindings, then I tried to write my own wxWidgets
 bindings which worked great until i realized I was leaking memory like
 hell and had a hard time linking garbage collected D objects to C++
 reference counted objects without adding complex overhead.

 So after spending two weeks on these failed attempts, I jumped back
 into C++ after two years of almost only writing D code, this time using
 boost, and boy is that library sweet!

language doesn't really matter, but it's just not good publicity.

Well, you sometimes have to accept that if the language isn't really production quality yet, it's counterproductive to use it for real world projects. When developing the IDE with C++, he will probably not run into that many compiler bugs. With D each 500..1000 lines of code would probably expose at least one bug.

I understand, but others not knowing D won't. That's the problem. (PS: I don't think there are that many compiler bugs anymore; the larger problem are indeed the GUI bindings, especially the memory managment aspect.)
Nov 29 2009
prev sibling next sibling parent reply "Denis Koroskin" <2korden gmail.com> writes:
On Wed, 11 Nov 2009 06:22:42 +0300, Jeremie Pelletier <jeremiep gmail.com>  
wrote:

 It's been some time since I last posted to this newsgroup, I've been  
 quite busy these past weeks!

 Among other things, I started writing an IDE for D from scratch and  
 opened a SourceForge project for it a few minutes ago, I'll also open a  
 dsource project to link to the sf one in the following days.

 At first I tried to code it in D using wxD but soon found out the  
 limitations of these bindings, then I tried to write my own wxWidgets  
 bindings which worked great until i realized I was leaking memory like  
 hell

Try to integrate C++ DMD front-end into your IDE, and it will leak a lot more.
Nov 11 2009
parent reply Jeremie Pelletier <jeremiep gmail.com> writes:
Denis Koroskin wrote:
 On Wed, 11 Nov 2009 06:22:42 +0300, Jeremie Pelletier 
 <jeremiep gmail.com> wrote:
 
 It's been some time since I last posted to this newsgroup, I've been 
 quite busy these past weeks!

 Among other things, I started writing an IDE for D from scratch and 
 opened a SourceForge project for it a few minutes ago, I'll also open 
 a dsource project to link to the sf one in the following days.

 At first I tried to code it in D using wxD but soon found out the 
 limitations of these bindings, then I tried to write my own wxWidgets 
 bindings which worked great until i realized I was leaking memory like 
 hell

Try to integrate C++ DMD front-end into your IDE, and it will leak a lot more.

If I detect any leaks with DMD I'll just make it use boost's shared_ptr, then bye bye leaks! The debug runtime library that comes with visual studio already detects memory leaks and allows me to put breakpoints on them to see the call stack and local variable values of the leaked allocation. Its pretty easy to keep memory leaks around none with that, even if C++ requires more careful programming than D does, more destructor work than D also. Jeremie
Nov 11 2009
parent Jeremie Pelletier <jeremiep gmail.com> writes:
Denis Koroskin wrote:
 On Wed, 11 Nov 2009 17:15:09 +0300, Jeremie Pelletier 
 <jeremiep gmail.com> wrote:
 
 Denis Koroskin wrote:
 On Wed, 11 Nov 2009 06:22:42 +0300, Jeremie Pelletier 
 <jeremiep gmail.com> wrote:

 It's been some time since I last posted to this newsgroup, I've been 
 quite busy these past weeks!

 Among other things, I started writing an IDE for D from scratch and 
 opened a SourceForge project for it a few minutes ago, I'll also 
 open a dsource project to link to the sf one in the following days.

 At first I tried to code it in D using wxD but soon found out the 
 limitations of these bindings, then I tried to write my own 
 wxWidgets bindings which worked great until i realized I was leaking 
 memory like hell

lot more.

If I detect any leaks with DMD I'll just make it use boost's shared_ptr, then bye bye leaks!

It's just DMD never ever deletes anything (but duplicates instances a lot!). You'll have to wrap everything with smart pointers.

Well then that will make a good patch to submit to Walter :) I too would like to see DMD's memory consumption drop down.
 The debug runtime library that comes with visual studio already 
 detects memory leaks and allows me to put breakpoints on them to see 
 the call stack and local variable values of the leaked allocation.

 Its pretty easy to keep memory leaks around none with that, even if 
 C++ requires more careful programming than D does, more destructor 
 work than D also.

 Jeremie

Good luck with that!

So far so good!
Nov 11 2009
prev sibling next sibling parent "Denis Koroskin" <2korden gmail.com> writes:
On Wed, 11 Nov 2009 17:15:09 +0300, Jeremie Pelletier <jeremiep gmail.com>  
wrote:

 Denis Koroskin wrote:
 On Wed, 11 Nov 2009 06:22:42 +0300, Jeremie Pelletier  
 <jeremiep gmail.com> wrote:

 It's been some time since I last posted to this newsgroup, I've been  
 quite busy these past weeks!

 Among other things, I started writing an IDE for D from scratch and  
 opened a SourceForge project for it a few minutes ago, I'll also open  
 a dsource project to link to the sf one in the following days.

 At first I tried to code it in D using wxD but soon found out the  
 limitations of these bindings, then I tried to write my own wxWidgets  
 bindings which worked great until i realized I was leaking memory like  
 hell

lot more.

If I detect any leaks with DMD I'll just make it use boost's shared_ptr, then bye bye leaks!

It's just DMD never ever deletes anything (but duplicates instances a lot!). You'll have to wrap everything with smart pointers.
 The debug runtime library that comes with visual studio already detects  
 memory leaks and allows me to put breakpoints on them to see the call  
 stack and local variable values of the leaked allocation.

 Its pretty easy to keep memory leaks around none with that, even if C++  
 requires more careful programming than D does, more destructor work than  
 D also.

 Jeremie

Good luck with that!
Nov 11 2009
prev sibling next sibling parent reply watching <watching watching.com> writes:
what a pityful sate d is in. this probably shows, that you can't use d for
anything serious and by the time you guys are through discussing things, people
will be using something different for good.
too bad


Jeremie Pelletier Wrote:

 It's been some time since I last posted to this newsgroup, I've been 
 quite busy these past weeks!
 
 Among other things, I started writing an IDE for D from scratch and 
 opened a SourceForge project for it a few minutes ago, I'll also open a 
 dsource project to link to the sf one in the following days.
 
 At first I tried to code it in D using wxD but soon found out the 
 limitations of these bindings, then I tried to write my own wxWidgets 
 bindings which worked great until i realized I was leaking memory like 
 hell and had a hard time linking garbage collected D objects to C++ 
 reference counted objects without adding complex overhead.
 
 So after spending two weeks on these failed attempts, I jumped back into 
 C++ after two years of almost only writing D code, this time using 
 boost, and boy is that library sweet!
 
 Here is the (very simple) website of the project, with a screenshot of 
 the program so far, the content is hard coded for now to test the custom 
 editor painting routines.
 
 http://codepoet.sourceforge.net
 
 
 Jeremie

Nov 11 2009
next sibling parent reply Jeremie Pelletier <jeremiep gmail.com> writes:
watching wrote:
 what a pityful sate d is in. this probably shows, that you can't use d for
anything serious and by the time you guys are through discussing things, people
will be using something different for good.
 too bad
 

I really don't think so, the very purpose of this IDE I'm developing is to make D easier to use and develop large scale projects with. The only thing still in the way of using D with graphical applications right now is the lack of proper bindings to cross-platform GUI toolkits for D2.
Nov 11 2009
next sibling parent reply Nick B <"nick_NOSPAM_.barbalich" gmail.com> writes:
Jeremie Pelletier wrote:
 watching wrote:

 
 I really don't think so, the very purpose of this IDE I'm developing is 
 to make D easier to use and develop large scale projects with.
 
 The only thing still in the way of using D with graphical applications 
 right now is the lack of proper bindings to cross-platform GUI toolkits 
 for D2.

Jeremie Not sure if you know this, but Adam D Ruppe has just started developing a cross platform (linux & windows) 'D Windowing System'. See here for details: http://arsdnet.net/dws/ In particular read the section titled "Why I got started". cheers Nick B
Nov 11 2009
parent reply Jeremie Pelletier <jeremiep gmail.com> writes:
Nick B wrote:
 Jeremie Pelletier wrote:
 watching wrote:

 I really don't think so, the very purpose of this IDE I'm developing 
 is to make D easier to use and develop large scale projects with.

 The only thing still in the way of using D with graphical applications 
 right now is the lack of proper bindings to cross-platform GUI 
 toolkits for D2.

Jeremie Not sure if you know this, but Adam D Ruppe has just started developing a cross platform (linux & windows) 'D Windowing System'. See here for details: http://arsdnet.net/dws/ In particular read the section titled "Why I got started". cheers Nick B

I wasn't aware of it, this is great news! Jeremie
Nov 11 2009
parent Jeremie Pelletier <jeremiep gmail.com> writes:
Adam D. Ruppe wrote:
 On Wed, Nov 11, 2009 at 05:13:39PM -0500, Jeremie Pelletier wrote:
 I wasn't aware of it, this is great news!

Aye :) I have to say, having an IDE available as a dws app would be several kinds of awesome. Imagine running it on a central server and letting random people connect* and use it for instant demo... that has some fun potential. * The dws is network transparent. If you're familiar with X on Linux, think that, but better. But I still have a lot of work to do before it is ready to do something like an IDE. Maybe in a couple months we can look at each other's code and see how feasible a port is then.
 Jeremie


That would be really awesome, I'm familiar with X but always used it through GTK or GDK on the local display. I can only imagine everything that would be possible with your system and it looks very promising. Send me a mail once you get your widgets working :) Jeremie
Nov 11 2009
prev sibling parent reply Lutger <lutger.blijdestijn gmail.com> writes:
Jeremie Pelletier wrote:

 watching wrote:
 what a pityful sate d is in. this probably shows, that you can't use d
 for anything serious and by the time you guys are through discussing
 things, people will be using something different for good. too bad
 

I really don't think so, the very purpose of this IDE I'm developing is to make D easier to use and develop large scale projects with. The only thing still in the way of using D with graphical applications right now is the lack of proper bindings to cross-platform GUI toolkits for D2.

Out of curiosity, did you consider GtkD and QtD? Have you thought about how to do plugins / extensions already? Of all the best software I'm using it seems a large part comes from the extensions. I wish you all the best with this project, great to see something started again on this front.
Nov 11 2009
parent reply Jeremie Pelletier <jeremiep gmail.com> writes:
Lutger wrote:
 Jeremie Pelletier wrote:
 
 watching wrote:
 what a pityful sate d is in. this probably shows, that you can't use d
 for anything serious and by the time you guys are through discussing
 things, people will be using something different for good. too bad

to make D easier to use and develop large scale projects with. The only thing still in the way of using D with graphical applications right now is the lack of proper bindings to cross-platform GUI toolkits for D2.

Out of curiosity, did you consider GtkD and QtD? Have you thought about how to do plugins / extensions already? Of all the best software I'm using it seems a large part comes from the extensions. I wish you all the best with this project, great to see something started again on this front.

I did consider a gtk/gdk approach but not Qt since I never used that API. However, wxWidgets abstracts both the entire native widgets and drawing tookits and extends them quite a lot, especially with wxAUI, that therefore seemed like the best road. I have a basic draft for plugins already. I made a base Component class template to define abstract factories for the different component types such as Language, Compiler, Linker, Librarian and Plugin which each define a specific interface. It's a really simple API but it works great, components will be able to register observers at different points in the IDE to implement their functionalities. Jeremie
Nov 11 2009
parent Eldar Insafutdinov <e.insafutdinov gmail.com> writes:
Jeremie Pelletier Wrote:

 Lutger wrote:
 Jeremie Pelletier wrote:
 
 watching wrote:
 what a pityful sate d is in. this probably shows, that you can't use d
 for anything serious and by the time you guys are through discussing
 things, people will be using something different for good. too bad

to make D easier to use and develop large scale projects with. The only thing still in the way of using D with graphical applications right now is the lack of proper bindings to cross-platform GUI toolkits for D2.

Out of curiosity, did you consider GtkD and QtD? Have you thought about how to do plugins / extensions already? Of all the best software I'm using it seems a large part comes from the extensions. I wish you all the best with this project, great to see something started again on this front.

I did consider a gtk/gdk approach but not Qt since I never used that API. However, wxWidgets abstracts both the entire native widgets and drawing tookits and extends them quite a lot, especially with wxAUI, that therefore seemed like the best road. I have a basic draft for plugins already. I made a base Component class template to define abstract factories for the different component types such as Language, Compiler, Linker, Librarian and Plugin which each define a specific interface. It's a really simple API but it works great, components will be able to register observers at different points in the IDE to implement their functionalities. Jeremie

Well, QtD works well for D2, and I must say that Qt is a very easy API to learn.
Nov 11 2009
prev sibling next sibling parent "Adam D. Ruppe" <destructionator gmail.com> writes:
On Wed, Nov 11, 2009 at 05:13:39PM -0500, Jeremie Pelletier wrote:
 I wasn't aware of it, this is great news!

Aye :) I have to say, having an IDE available as a dws app would be several kinds of awesome. Imagine running it on a central server and letting random people connect* and use it for instant demo... that has some fun potential. * The dws is network transparent. If you're familiar with X on Linux, think that, but better. But I still have a lot of work to do before it is ready to do something like an IDE. Maybe in a couple months we can look at each other's code and see how feasible a port is then.
 
 Jeremie

-- Adam D. Ruppe http://arsdnet.net
Nov 11 2009
prev sibling next sibling parent reply hasenj <hasan.aljudy gmail.com> writes:
watching wrote:
 what a pityful sate d is in. this probably shows, that you can't use d for
anything serious and by the time you guys are through discussing things, people
will be using something different for good.
 too bad

+1 Totally agreed
Nov 11 2009
parent reply Walter Bright <newshound1 digitalmars.com> writes:
hasenj wrote:
 watching wrote:
 what a pityful sate d is in. this probably shows, that you can't use d 
 for anything serious and by the time you guys are through discussing 
 things, people will be using something different for good.
 too bad

+1 Totally agreed

I really like that Adam and Jeremie are doing something about shortcomings they perceive. That's what this is all about.
Nov 11 2009
parent reply watching <watching watching.org> writes:
most programmer want use the language and a lot libraries that come with it.
instead of gui, db etc. you guys discuss until all prospective users are gone
off to use something that lets them do the job

maybe it is time to put a large effort into libraries by all the bright people
that are arroung d. 


Walter Bright Wrote:

 hasenj wrote:
 watching wrote:
 what a pityful sate d is in. this probably shows, that you can't use d 
 for anything serious and by the time you guys are through discussing 
 things, people will be using something different for good.
 too bad

+1 Totally agreed

I really like that Adam and Jeremie are doing something about shortcomings they perceive. That's what this is all about.

Nov 11 2009
parent reply Jeremie Pelletier <jeremiep gmail.com> writes:
watching wrote:
 most programmer want use the language and a lot libraries that come with it.
instead of gui, db etc. you guys discuss until all prospective users are gone
off to use something that lets them do the job
 
 maybe it is time to put a large effort into libraries by all the bright people
that are arroung d. 

The IDE I'm developing is exactly for that purpose, to bring more people to D and to make writing D code more convenient. The D language doesn't need to come with tons of libraries out of the box, its a systems language after all; C++ only comes with the STL and C with the stdlib, you need platform headers and third party libraries to do something more than a simple console program. The D2 spec is still in development and so are most libraries for it, a book is getting near publication. I figured I'd contribute my part with an IDE, C++ sounded like a convenient choice at the moment. D is already much more convenient to use as a language than any other language I touched before and its only a matter of time before its libraries base grows. In any ways, I believe its a good thing to use multiple languages to better understand the differences between them, the end result doesn't change. I could've used java, C#, python or even mozilla's XUL with javascript and the IDE would've been the same. Jeremie
 Walter Bright Wrote:
 
 hasenj wrote:
 watching wrote:
 what a pityful sate d is in. this probably shows, that you can't use d 
 for anything serious and by the time you guys are through discussing 
 things, people will be using something different for good.
 too bad

Totally agreed

I really like that Adam and Jeremie are doing something about shortcomings they perceive. That's what this is all about.


Nov 12 2009
parent reply Walter Bright <newshound1 digitalmars.com> writes:
Jeremie Pelletier wrote:
 watching wrote:
 most programmer want use the language and a lot libraries that come 
 with it. instead of gui, db etc. you guys discuss until all 
 prospective users are gone off to use something that lets them do the job

 maybe it is time to put a large effort into libraries by all the 
 bright people that are arroung d. 

The IDE I'm developing is exactly for that purpose, to bring more people to D and to make writing D code more convenient.

Exactly, and I'm most pleased to see you and others stepping up to fill in the gaps.
 The D language doesn't need to come with tons of libraries out of the 
 box, its a systems language after all; C++ only comes with the STL and C 
 with the stdlib, you need platform headers and third party libraries to 
 do something more than a simple console program.

While that's true that C and C++ became successful with minimal libraries, I think the bar is much higher these days. Looking at the go library, there's a lot in there we could use in the D library. http://golang.org/pkg/ The library is licensed under the http://creativecommons.org/licenses/by/3.0/ meaning we can adapt it to D.
 In any ways, I believe its a good thing to use multiple languages to 
 better understand the differences between them, the end result doesn't 
 change. I could've used java, C#, python or even mozilla's XUL with 
 javascript and the IDE would've been the same.

I disagree, as then the IDE would be dependent on those large ecosystems. One nice thing about native apps is they stand alone. One thing I do suggest is writing it in a "D-ish" style so that it will be easier to translate to D at some point.
Nov 12 2009
next sibling parent reply dsimcha <dsimcha yahoo.com> writes:
== Quote from Walter Bright (newshound1 digitalmars.com)'s article
 Jeremie Pelletier wrote:
 watching wrote:
 most programmer want use the language and a lot libraries that come
 with it. instead of gui, db etc. you guys discuss until all
 prospective users are gone off to use something that lets them do the job

 maybe it is time to put a large effort into libraries by all the
 bright people that are arroung d.

The IDE I'm developing is exactly for that purpose, to bring more people to D and to make writing D code more convenient.

in the gaps.
 The D language doesn't need to come with tons of libraries out of the
 box, its a systems language after all; C++ only comes with the STL and C
 with the stdlib, you need platform headers and third party libraries to
 do something more than a simple console program.

libraries, I think the bar is much higher these days. Looking at the go library, there's a lot in there we could use in the D library. http://golang.org/pkg/ The library is licensed under the http://creativecommons.org/licenses/by/3.0/ meaning we can adapt it to D.

I thought (I'm not 100% sure on either of these counts) that: 1. We don't want anything in Phobos that requires attribution for works distributed exclusively in binary form, even if the license is otherwise permissive. This means we can't use BSD-licensed code in Phobos. 2. Creative commons isn't entirely clear about whether attribution would be required for stuff distributed in pure binary form.
Nov 12 2009
parent Walter Bright <newshound1 digitalmars.com> writes:
dsimcha wrote:
 I thought (I'm not 100% sure on either of these counts) that:
 
 1.  We don't want anything in Phobos that requires attribution for works
 distributed exclusively in binary form, even if the license is otherwise
 permissive.  This means we can't use BSD-licensed code in Phobos.

Right.
 2.  Creative commons isn't entirely clear about whether attribution would be
 required for stuff distributed in pure binary form.

Hmm. That would be a problem.
Nov 12 2009
prev sibling parent reply Jeremie Pelletier <jeremiep gmail.com> writes:
Walter Bright wrote:
 Jeremie Pelletier wrote:
 watching wrote:
 most programmer want use the language and a lot libraries that come 
 with it. instead of gui, db etc. you guys discuss until all 
 prospective users are gone off to use something that lets them do the 
 job

 maybe it is time to put a large effort into libraries by all the 
 bright people that are arroung d. 

The IDE I'm developing is exactly for that purpose, to bring more people to D and to make writing D code more convenient.

Exactly, and I'm most pleased to see you and others stepping up to fill in the gaps.

Thanks!
 The D language doesn't need to come with tons of libraries out of the 
 box, its a systems language after all; C++ only comes with the STL and 
 C with the stdlib, you need platform headers and third party libraries 
 to do something more than a simple console program.

While that's true that C and C++ became successful with minimal libraries, I think the bar is much higher these days. Looking at the go library, there's a lot in there we could use in the D library. http://golang.org/pkg/ The library is licensed under the http://creativecommons.org/licenses/by/3.0/ meaning we can adapt it to D.

It's true that the bar for bundled libraries is higher nowadays; I wouldn't touch C++ without boost for one. The go library is rather impressive, I'm used to seeing that much out of the box only in interpreted languages. In any ways its only a matter of time before phobos catches on.
 In any ways, I believe its a good thing to use multiple languages to 
 better understand the differences between them, the end result doesn't 
 change. I could've used java, C#, python or even mozilla's XUL with 
 javascript and the IDE would've been the same.

I disagree, as then the IDE would be dependent on those large ecosystems. One nice thing about native apps is they stand alone. One thing I do suggest is writing it in a "D-ish" style so that it will be easier to translate to D at some point.

That's what I'm already doing, the STL and boost make it much easier to do. I have string_t, wstring_t and dstring_t types derived from std::basic_string to cover D strings, as well as ustring_t which is set to the platform's native unicode encoding. I derived std::exception into Exception and Error to behave like D's exceptions, used boost::lexical_cast to create to<>() templates, I'm using struct and class as they would be used in D (POD vs polymorphic object) using only single inheritance and a lot of other support code to make a future port as easy and straightforward as possible. Jeremie
Nov 12 2009
parent Walter Bright <newshound1 digitalmars.com> writes:
Jeremie Pelletier wrote:
 That's what I'm already doing, the STL and boost make it much easier to 
 do. I have string_t, wstring_t and dstring_t types derived from 
 std::basic_string to cover D strings, as well as ustring_t which is set 
 to the platform's native unicode encoding. I derived std::exception into 
 Exception and Error to behave like D's exceptions, used 
 boost::lexical_cast to create to<>() templates, I'm using struct and 
 class as they would be used in D (POD vs polymorphic object) using only 
 single inheritance and a lot of other support code to make a future port 
 as easy and straightforward as possible.

Awesome! Great minds think alike!
Nov 12 2009
prev sibling next sibling parent "Robert Jacques" <sandford jhu.edu> writes:
On Thu, 12 Nov 2009 14:34:31 -0500, Walter Bright  
<newshound1 digitalmars.com> wrote:

 dsimcha wrote:
 I thought (I'm not 100% sure on either of these counts) that:
  1.  We don't want anything in Phobos that requires attribution for  
 works
 distributed exclusively in binary form, even if the license is otherwise
 permissive.  This means we can't use BSD-licensed code in Phobos.

Right.
 2.  Creative commons isn't entirely clear about whether attribution  
 would be
 required for stuff distributed in pure binary form.

Hmm. That would be a problem.

Binary form counts as a derivative work, so unless it's specifically waived you have to included it.
Nov 12 2009
prev sibling next sibling parent reply "Dejan Lekic" <dejan.lekic gmail.com> writes:
 Jeremie:
Good work!! Nice IDE.

 watching:
The fact that you dare not say your name, and post here anonymously says  
everything. Not only your reply has any credit (too subjective), but it is  
also disrespectful.
It is not problem of the D community that some people do not understand  
the power the D programming language gives to developers.
Nov 13 2009
parent watching <watching watching.com> writes:
seems like you are that you hit on the spot. never the less i like the language
-  i am a user and i can't use. the language is sweet and i hope they get their
act together and integrate tango. what's missing then is some db stuff and the
pre-canned qt.
for editors there is codeblocks, uestudio and some other debuggers ....

make your languguage for customer/user not the scientist.

am i disrespectful - i hope so. this thingy has to change from the ivorytower
to the main stream.


Dejan Lekic Wrote:

 
  Jeremie:
 Good work!! Nice IDE.
 
  watching:
 The fact that you dare not say your name, and post here anonymously says  
 everything. Not only your reply has any credit (too subjective), but it is  
 also disrespectful.
 It is not problem of the D community that some people do not understand  
 the power the D programming language gives to developers.

Nov 13 2009
prev sibling parent Anders Bergh <anders1 gmail.com> writes:
On Thu, Nov 12, 2009 at 20:34, Walter Bright <newshound1 digitalmars.com> w=
rote:
 dsimcha wrote:
 I thought (I'm not 100% sure on either of these counts) that:

 1. =C2=A0We don't want anything in Phobos that requires attribution for =


 distributed exclusively in binary form, even if the license is otherwise
 permissive. =C2=A0This means we can't use BSD-licensed code in Phobos.

Right.
 2. =C2=A0Creative commons isn't entirely clear about whether attribution=


 be
 required for stuff distributed in pure binary form.

Hmm. That would be a problem.

I would assume only the documentation is cc-licensed, as far as I can remember all of Go was released using the MIT license or similar. --=20 Anders Bergh
Nov 15 2009
prev sibling next sibling parent Frank Benoit <keinfarbton googlemail.com> writes:
In march 2009 i did a D2 port of DWT. It is called DWT2 and available
from http://hg.dsource.org/projects/dwt2
But i don't know if it still compiles with a current compiler.
Nov 11 2009
prev sibling next sibling parent Joel Christensen <joelcnz gmail.com> writes:
Why don't you post on d.D.ide?
Nov 11 2009
prev sibling next sibling parent reply BLS <windevguy hotmail.de> writes:
On 11/11/2009 04:22, Jeremie Pelletier wrote:
 Among other things, I started writing an IDE for D from scratch and
 opened a SourceForge project for it a few minutes ago, I'll also open a
 dsource project to link to the sf one in the following days.

 Jeremie

Very good name, pretty cool looking tool. a few notes : I think in order to create an IDE which supports larger projects you should integrate a Source Code Management System. D2 becomes reality , so drop D1 support. Publish the Plug-In Interface ASAP.
Nov 29 2009
next sibling parent reply Frank Benoit <keinfarbton googlemail.com> writes:
BLS schrieb:

 D2 becomes reality , so drop D1 support.

Nov 29 2009
parent reply Trass3r <mrmocool gmx.de> writes:
Frank Benoit schrieb:
 D2 becomes reality , so drop D1 support.


It's long overdue to port Tango to D2.
Nov 29 2009
parent reply BLS <windevguy hotmail.de> writes:
On 29/11/2009 17:24, Adil Baig wrote:
 The reason Tango wasn't ported to D2 is because D2 still in flux and has
 been for a few years. Tango is an essential part of most D projects, and
 as such, cannot be built on a moving target.

Tango is not even in sync with D1.
Nov 29 2009
parent grauzone <none example.net> writes:
BLS wrote:
 On 29/11/2009 17:24, Adil Baig wrote:
 The reason Tango wasn't ported to D2 is because D2 still in flux and has
 been for a few years. Tango is an essential part of most D projects, and
 as such, cannot be built on a moving target.

Tango is not even in sync with D1.

You have to use Tango trunk. The latest Tango release doesn't work with the newest dmd compiler because of regressions and breaking changes.
Nov 29 2009
prev sibling next sibling parent Adil Baig <adil.baig aidezigns.com> writes:
--000e0cd58ef8a1b7d8047984f6e0
Content-Type: text/plain; charset=ISO-8859-1

The reason Tango wasn't ported to D2 is because D2 still in flux and has
been for a few years. Tango is an essential part of most D projects, and as
such, cannot be built on a moving target.


On Sun, Nov 29, 2009 at 8:12 PM, Trass3r <mrmocool gmx.de> wrote:

 Frank Benoit schrieb:

  D2 becomes reality , so drop D1 support.


It's long overdue to port Tango to D2.

--000e0cd58ef8a1b7d8047984f6e0 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr"><div>The reason Tango wasn&#39;t ported to D2 is because D= 2 still in flux and has been for a few years. Tango is an essential part of= most D projects, and as such, cannot be built on a moving target.</div> <br><br><div class=3D"gmail_quote">On Sun, Nov 29, 2009 at 8:12 PM, Trass3r= <span dir=3D"ltr">&lt;<a href=3D"mailto:mrmocool gmx.de">mrmocool gmx.de</= a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" style=3D"margin:0= 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"> Frank Benoit schrieb:<div class=3D"im"><br> <blockquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1p= x #ccc solid;padding-left:1ex"><blockquote class=3D"gmail_quote" style=3D"m= argin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> D2 becomes reality , so drop D1 support.<br> </blockquote> ?? I think D1 and tango should not be dropped.<br> </blockquote> <br></div> It&#39;s long overdue to port Tango to D2.<br> </blockquote></div><br></div> --000e0cd58ef8a1b7d8047984f6e0--
Nov 29 2009
prev sibling parent Jeremie Pelletier <jeremiep gmail.com> writes:
BLS wrote:
 On 11/11/2009 04:22, Jeremie Pelletier wrote:
 Among other things, I started writing an IDE for D from scratch and
 opened a SourceForge project for it a few minutes ago, I'll also open a
 dsource project to link to the sf one in the following days.

 Jeremie

Very good name, pretty cool looking tool.

Thanks!
 a few notes :
 
 I think in order to create an IDE which supports larger projects you 
 should integrate a Source Code Management System.

That is already planned, it will be one of the first features to be implemented after the basic IDE is working.
 D2 becomes reality , so drop D1 support.

I'm going to support both, the only difference it makes for the IDE is in the compiler used and the document implementation. I don't think D2 will kill D1 as they're for different target audiences.
 Publish the Plug-In Interface ASAP.

As soon as I'm satisfied with it, right now I'm focusing on getting the IDE usable, that is to get the project manager, editor window and build process working.
Nov 29 2009
prev sibling parent reply retard <re tard.com.invalid> writes:
Tue, 10 Nov 2009 22:22:42 -0500, Jeremie Pelletier wrote:

 It's been some time since I last posted to this newsgroup, I've been
 quite busy these past weeks!
 
 Among other things, I started writing an IDE for D from scratch and
 opened a SourceForge project for it a few minutes ago, I'll also open a
 dsource project to link to the sf one in the following days.
 
 At first I tried to code it in D using wxD but soon found out the
 limitations of these bindings, then I tried to write my own wxWidgets
 bindings which worked great until i realized I was leaking memory like
 hell and had a hard time linking garbage collected D objects to C++
 reference counted objects without adding complex overhead.
 
 So after spending two weeks on these failed attempts, I jumped back into
 C++ after two years of almost only writing D code, this time using
 boost, and boy is that library sweet!
 
 Here is the (very simple) website of the project, with a screenshot of
 the program so far, the content is hard coded for now to test the custom
 editor painting routines.
 
 http://codepoet.sourceforge.net

Is there some reason why you didn't built your IDE on top of some existing open source IDE like kdevelop? Also built with C++ and uses a modern GUI library. You would only need to plug in the dmdfe, a build system, and add some D related GUI functionality.
Nov 29 2009
next sibling parent Jeremie Pelletier <jeremiep gmail.com> writes:
retard wrote:
 Tue, 10 Nov 2009 22:22:42 -0500, Jeremie Pelletier wrote:
 
 It's been some time since I last posted to this newsgroup, I've been
 quite busy these past weeks!

 Among other things, I started writing an IDE for D from scratch and
 opened a SourceForge project for it a few minutes ago, I'll also open a
 dsource project to link to the sf one in the following days.

 At first I tried to code it in D using wxD but soon found out the
 limitations of these bindings, then I tried to write my own wxWidgets
 bindings which worked great until i realized I was leaking memory like
 hell and had a hard time linking garbage collected D objects to C++
 reference counted objects without adding complex overhead.

 So after spending two weeks on these failed attempts, I jumped back into
 C++ after two years of almost only writing D code, this time using
 boost, and boy is that library sweet!

 Here is the (very simple) website of the project, with a screenshot of
 the program so far, the content is hard coded for now to test the custom
 editor painting routines.

 http://codepoet.sourceforge.net

Is there some reason why you didn't built your IDE on top of some existing open source IDE like kdevelop? Also built with C++ and uses a modern GUI library. You would only need to plug in the dmdfe, a build system, and add some D related GUI functionality.

Where's the challenge and fun in that? I want a standalone IDE so I get complete freedom in how I code the thing, I also want to make it easy to port to D in the future.
Nov 29 2009
prev sibling parent retard <re tard.com.invalid> writes:
Sun, 29 Nov 2009 13:05:28 -0500, Jeremie Pelletier wrote:

 retard wrote:
 Tue, 10 Nov 2009 22:22:42 -0500, Jeremie Pelletier wrote:
 
 It's been some time since I last posted to this newsgroup, I've been
 quite busy these past weeks!

 Among other things, I started writing an IDE for D from scratch and
 opened a SourceForge project for it a few minutes ago, I'll also open
 a dsource project to link to the sf one in the following days.

 At first I tried to code it in D using wxD but soon found out the
 limitations of these bindings, then I tried to write my own wxWidgets
 bindings which worked great until i realized I was leaking memory like
 hell and had a hard time linking garbage collected D objects to C++
 reference counted objects without adding complex overhead.

 So after spending two weeks on these failed attempts, I jumped back
 into C++ after two years of almost only writing D code, this time
 using boost, and boy is that library sweet!

 Here is the (very simple) website of the project, with a screenshot of
 the program so far, the content is hard coded for now to test the
 custom editor painting routines.

 http://codepoet.sourceforge.net

Is there some reason why you didn't built your IDE on top of some existing open source IDE like kdevelop? Also built with C++ and uses a modern GUI library. You would only need to plug in the dmdfe, a build system, and add some D related GUI functionality.

Where's the challenge and fun in that?

Of course it's less challenging and a bit less fun, but some of us just want to get the job done. As a IDE user I don't really care if it was fun to write the IDE, a production quality tool is the only thing that matters. I wouldn't pay for rewriting something that already existed. OTOH I would gladly pay for a decent plugin to my favorite IDE.
 
 I want a standalone IDE so I get complete freedom in how I code the
 thing, I also want to make it easy to port to D in the future.

Certainly.
Nov 29 2009