Suggestion: Porting to D language


#1

Hi, Julian!

Some time ago, I got interested in a new language coming up with a speed (http://www.digitalmars.com/d/). The quick overview of the language can be obtained here http://www.digitalmars.com/d/overview.html

As the “The TIOBE Programming Community” index indicates (http://www.tiobe.com/tpci.htm) the language popularity is growing fast. Comparing to other languages (http://www.digitalmars.com/d/comparison.html), D has many advantages to consider to. I encountered a number of persons and companies who pay their close attention to D because it supports many platforms (Win, Lin, Mac so far), VM independent (compiles into native code), has native UTF-8 and Unicode string support, has delegates, lazy expressions, dynamic arrays, scope guards, slicing, dynamic closures and signal/slot mechanism through the standard library, has uniform Assembler support, has its own multi-platform dynamic library implementation along with the support of existing OS dependent ones, flexible memory management through the built-in garbage collector and much much more…

Anyway, I’m not a D guru but I want to start porting “JUCE” to D. I think, while “JUCE” is not so big to port it so far, so it is the time to start porting right now. The main problem is that D does not support multiple class inheritance so “mixin” is supposed to help us in this case but I’m not sure.

Julian, I’ll start porting only if you do not mind to help me to port it by answering or explaining some aspects of the framework. If not, I’m afraid that the work is going to be too hard for me and I won’t complete it alone. Maybe someone else wants to help me in this? Everyone’s welcomed!


#2

I have no experience with D, but it looks like it solves many of C++'s shortcomings and is faster too. I’d definitely be interested in a port, but I would imagine it would be fairly difficult to develop due to the feature overlap.


#3

I’ve been a fan of the D language since it came out, and if I was going to port Juce to any other language, then that would be it… but it’d be an absolutely massive job to port it! And it’d be a nightmare to try to keep two different versions going in parallel. I hope you have fun trying to port it, but you’ve got months and months of typing ahead of you!


#4

If jules is anything like my boss (jools) then he’ll completely despise being called Julian.

but I’m sure he’ll Cope! (boom boom)


#5

[quote=“Karbon L. Forms”]If jules is anything like my boss (jools) then he’ll completely despise being called Julian.

but I’m sure he’ll Cope! (boom boom)[/quote]

:lol: (Not sure how many of our overseas visitors will get the joke though…)


#6

[quote=“jules”][quote=“Karbon L. Forms”]If jules is anything like my boss (jools) then he’ll completely despise being called Julian.

but I’m sure he’ll Cope! (boom boom)[/quote]

:lol: (Not sure how many of our overseas visitors will get the joke though…)[/quote]

hehe

I’ve been dry-humped on stage by JC!


#7

[quote=“Karbon L. Forms”][quote=“jules”][quote=“Karbon L. Forms”]If jules is anything like my boss (jools) then he’ll completely despise being called Julian.

but I’m sure he’ll Cope! (boom boom)[/quote]

:lol: (Not sure how many of our overseas visitors will get the joke though…)[/quote]

hehe

I’ve been dry-humped on stage by JC![/quote]

hoho. He’s a national treasure.


#8

Hi guys! :smiley:

I see the thread’s got humorous. :slight_smile:

Anyway, laughter aside, I still feel doubts about porting “JUCE” to D. I need some encouragement :oops:.
Here is the resembling framework for D: http://harmonia.terrainformatica.com/. It has many interesting features to think about. So, I think, the “JUCE” community just has to provide the competitive juicy answer to the question “to be or not to be”! 8) :wink:


#9

Perhaps you could just port the interfaces and use a DLL. Or perhaps you could find away to link even.


#10

The biggest problem is that D does not support C++ in any way either DLL or LIB. Only C style DLLs and LIBs are fully supported.


#11

…now I’m consulting with Walter Bright (the father of D) on how to implement (rather simulate or mimic) the multiple inheritance in D. I think if I’ll find out that I’ll be able to port “JUCE” quickly enough.


#12

hmm. My guess is that if I was trying to port it, it’d probably take me at least 3-4 months, working all day, every day… Best of luck!


#13

The point is that many of your classes are unnecessary in D because they are implemented in Phobos library or just built-in into the language (e.g. unicode (UTF8) strings, sockets, threads, delegates, bit arrays, thread synchronization, cryptography etc.).


#14

Well I’ll be interested to see how you get on!


#15