digitalmars.D - Some features should NOT include from GO/Java.
- Matthew Ong (42/42) May 16 2011 Hi All,
- Matthew Ong (36/78) May 18 2011 I read somewhere that it was written that threads. From what I can see
- Don (3/111) May 20 2011 You're missing string mixins (which are totally different from string
- dennis luehring (6/8) May 20 2011 links
Hi All, The reason I am starting this thread is to gather some valid/experience that people do not like about using Go or even Java. Naturally D-programming might not wants to repeat the same error. Java: 1) Swing API --- The inheritance tree is too deep. New OO encourages flatten object (1-2 level inheritance) for easy memory management from the JVM/GC. 2) final --- does not protect the content of the LinkedList/Hashmap. I think immutable keywords managed that? Informed me if I am wrong. 3) Do not have keywords to allow conditional compilation like version in D. 4) Threads are rather heavy and synchronization, that is why people introduced kilim. Something like the fiber-thread concept. 5) No marco-preprocessor like in C #define, when the limitations of the syntax is met. Sometime, that allows 6) No void* to allow passing of function pointer into any method to be called. That can be tricked: by using interface F1<R,P>{ R func1(P p1); } 7) No closure...Or lamda J. 8) No clear IPC like COM+, DCOM. Need to do networks sockets with full stack overheads. 9) GUI inter-component messaging is complex and can only do share memory. I hope that is defined with D. Yes, there MVC, but how to inter-comm without exposing too much info, there should be a way to do in-memory JMS model. GO: 1) No while/do-while/foreach... ONLY for loop. 2) Only Public/private scope... That claim is semi-true. It allowed to have method introduction to a library defined type. And allows user of that type to use the new method without knowing. 3) there is no auto promotion of data type even when it is safe. int does not go into long automatically. byte to int...etc (Aiks!!!) Both, There is no way to have a centralized Exception handling routine that allow routing of error message & filtering for both language like in the JSP. JSP. Over all, those are modeling issues that I do see. Matthew Ong ongbp yahoo.com
May 16 2011
On 5/16/2011 10:37 PM, Matthew Ong wrote:Hi All, The reason I am starting this thread is to gather some valid/experience that people do not like about using Go or even Java. Naturally D-programming might not wants to repeat the same error. Java: 1) Swing API --- The inheritance tree is too deep. New OO encourages flatten object (1-2 level inheritance) for easy memory management from the JVM/GC.2) final --- does not protect the content of the LinkedList/Hashmap. I think immutable keywords managed that? Informed me if I am wrong.3) Do not have keywords to allow conditional compilation like version in D.version(Windows)... does it4) Threads are rather heavy and synchronization, that is why people introduced kilim. Something like the fiber-thread concept.I read somewhere that it was written that threads. From what I can see in some weaknesses of JVM and claimed to be addressed by Go(shown on a video) about using multi-threads for multi-core CPU. There is no built in Java standard Thread Pool Manager at the JVM level but left to the J2EE container to implements. J2EE is sometime too complex to junior developers and writing our own container is a hard thing. I have seen in languages like prolog and perhaps others, that the thread are managed with options, perhaps some sort of built in library that does seemed to allow management. http://www.swi-prolog.org/man/threads.html clicked on 8.7.2.5) No marco-preprocessor like in C #define, when the limitations of the syntax is met. Sometime, that allowsmixin with template does address some of this issue I supposed. That does allow me to define up to level of content of a class but is not class itself. mixin template AType(T){ // but does not seems to allow me to inherit ClassC this level. private: T value; public: this(){...} void print(){...} } class ClassB : ClassC{ // ClassC Inheritance/Interface must only be done at this level? mixin AType!(string); // content } Perhaps I am missing something here.6) No void* to allow passing of function pointer into any method to be called. That can be tricked: by using interface F1<R,P>{ R func1(P p1); }7) No closure...Or lamda J.8) No clear IPC like COM+, DCOM. Need to do networks sockets with full stack overheads.bridge within windows. But RMI from java makes use of network sockets full stack. Since D is system level API, I am wondering if there is a solution?9) GUI inter-component messaging is complex and can only do share memory. I hope that is defined with D. Yes, there MVC, but how to inter-comm without exposing too much info, there should be a way to do in-memory JMS model.GO: 1) No while/do-while/foreach... ONLY for loop. 2) Only Public/private scope... That claim is semi-true. It allowed to have method introduction to a library defined type. And allows user of that type to use the new method without knowing. 3) there is no auto promotion of data type even when it is safe. int does not go into long automatically. byte to int...etc (Aiks!!!) Both, There is no way to have a centralized Exception handling routine that allow routing of error message& filtering for both language like in the JSP. JSP. Over all, those are modeling issues that I do see. Matthew Ong ongbp yahoo.com-- Matthew Ong email: ongbp yahoo.com
May 18 2011
Matthew Ong wrote:On 5/16/2011 10:37 PM, Matthew Ong wrote:You're missing string mixins (which are totally different from string mixins).Hi All, The reason I am starting this thread is to gather some valid/experience that people do not like about using Go or even Java. Naturally D-programming might not wants to repeat the same error. Java: 1) Swing API --- The inheritance tree is too deep. New OO encourages flatten object (1-2 level inheritance) for easy memory management from the JVM/GC.2) final --- does not protect the content of the LinkedList/Hashmap. I think immutable keywords managed that? Informed me if I am wrong.3) Do not have keywords to allow conditional compilation like version in D.version(Windows)... does it4) Threads are rather heavy and synchronization, that is why people introduced kilim. Something like the fiber-thread concept.I read somewhere that it was written that threads. From what I can see in some weaknesses of JVM and claimed to be addressed by Go(shown on a video) about using multi-threads for multi-core CPU. There is no built in Java standard Thread Pool Manager at the JVM level but left to the J2EE container to implements. J2EE is sometime too complex to junior developers and writing our own container is a hard thing. I have seen in languages like prolog and perhaps others, that the thread are managed with options, perhaps some sort of built in library that does seemed to allow management. http://www.swi-prolog.org/man/threads.html clicked on 8.7.2.5) No marco-preprocessor like in C #define, when the limitations of the syntax is met. Sometime, that allowsmixin with template does address some of this issue I supposed. That does allow me to define up to level of content of a class but is not class itself. mixin template AType(T){ // but does not seems to allow me to inherit ClassC this level. private: T value; public: this(){...} void print(){...} } class ClassB : ClassC{ // ClassC Inheritance/Interface must only be done at this level? mixin AType!(string); // content } Perhaps I am missing something here.6) No void* to allow passing of function pointer into any method to be called. That can be tricked: by using interface F1<R,P>{ R func1(P p1); }7) No closure...Or lamda J.8) No clear IPC like COM+, DCOM. Need to do networks sockets with full stack overheads.bridge within windows. But RMI from java makes use of network sockets full stack. Since D is system level API, I am wondering if there is a solution?9) GUI inter-component messaging is complex and can only do share memory. I hope that is defined with D. Yes, there MVC, but how to inter-comm without exposing too much info, there should be a way to do in-memory JMS model.GO: 1) No while/do-while/foreach... ONLY for loop. 2) Only Public/private scope... That claim is semi-true. It allowed to have method introduction to a library defined type. And allows user of that type to use the new method without knowing. 3) there is no auto promotion of data type even when it is safe. int does not go into long automatically. byte to int...etc (Aiks!!!) Both, There is no way to have a centralized Exception handling routine that allow routing of error message& filtering for both language like in the JSP. JSP. Over all, those are modeling issues that I do see. Matthew Ong ongbp yahoo.com
May 20 2011
Am 20.05.2011 12:39, schrieb Don:You're missing string mixins (which are totally different from string mixins).links "mixins" aka "string mixins" http://www.digitalmars.com/d/2.0/mixin.html template-mixin http://www.digitalmars.com/d/2.0/template-mixin.html
May 20 2011