digitalmars.D - Necessities for Adoption of D
- Hans W. Uhlig (62/62) Feb 09 2008 Good morning everyone,
- bearophile (5/7) Feb 09 2008 Having a standard GUI toolkit built-in in the standard library is quite ...
- Tyro[a.c.edwards] (46/56) Feb 09 2008 I boggles the hell out of me every time someone comes and complains that...
- Christopher Wright (10/12) Feb 09 2008 It can be a showstopper if you're trying to get stuff done. It's not a
- Christopher Wright (3/5) Feb 10 2008 My mistake. It has a halfway decent GUI designer, and I just didn't
- Jesse Phillips (11/72) Feb 09 2008 Your right, if someone wants to learn D they will. The problem is that w...
- Hans W. Uhlig (78/148) Feb 09 2008 Having several libraries that do the same thing, are fully community
- Neil Vice (32/65) Feb 09 2008 My only complaint with the "two standard libs" issue is their
- Jesse Phillips (4/10) Feb 09 2008 Hans, the book is great. I wouldn't say it is a great reference though,
- Lars Ivar Igesund (14/25) Feb 10 2008 This has nothing to do with forking, but rather the fact that to use Tan...
- Tyro[a.c.edwards] (24/76) Feb 10 2008 I am many thing... but a liar is absolutely not one of them. If I'm made
- Neil Vice (3/10) Feb 11 2008 I probably fall in the camp of the complainers. I would love to lend a h...
- Tyro[a.c.edwards] (4/17) Feb 11 2008 There are a number of projects at dsource.org atrophying from a lack of
- Robert Fraser (3/8) Feb 09 2008 Funny you mention that, since I'm sowking on a unittest feature in
- Robert Fraser (2/11) Feb 09 2008 sowking = working. Not a giant talking pig with a crown.
- Hans W. Uhlig (3/15) Feb 09 2008 I will take a look at that, last time I looked at Descent was a few
- Robert Fraser (2/18) Feb 09 2008 It's not in the app just yet; it needs a builder before it's useful.
- BCS (3/14) Feb 09 2008 How about a "color by time in line" feature. the more time spent in that...
- Robert Fraser (2/18) Feb 09 2008 Bookmarked for far-far-future reference (as in when the robots take over...
- Vladimir Panteleev (7/9) Feb 09 2008 About GUI integration - I don't think it should be the burden of the lan...
- bearophile (13/14) Feb 10 2008 A built-in standard GUI toolkit has some advantages, it's a standard, so...
- Vladimir Panteleev (11/15) Feb 10 2008 wrap=3D1, justify=3D'left')
- Simen Kjaeraas (16/28) Feb 10 2008 ine =3D =
- bearophile (8/11) Feb 10 2008 This is shorter and I think it looks better, with less syntax:
- Clay Smith (36/97) Feb 10 2008 I do not think D lacks examples or documentation. When I was a newer
- Hans W. Uhlig (7/130) Feb 10 2008 You would be surprised what a crappy GUI in a standard library can do, I...
- Burton Radons (24/33) Feb 10 2008 Do you mean in the library or in the language? I don't think D can be a ...
- Jesse Phillips (5/16) Feb 10 2008 Well that's what D2 is getting ready for, magically-paralleling programs...
- Burton Radons (2/20) Feb 10 2008 Reference? I don't use 2.0. Anyway what I said holds IMO - when you want...
- Jesse Phillips (7/40) Feb 11 2008 I don't recall the news posts that discussed such possibilities, but it
- Hans W. Uhlig (9/62) Feb 11 2008 Yes, With both where computers are going and where they already are,
Good morning everyone, I am new to the D forums but I have been following D's progress for a good while. The topic seems to pop up quite a bit and was mentioned in the very long Standard Library Concerns thread about adoption for new users. Coming from C and then Java and now Looking at D. There are many things sun did right with Java and some things that they still need to work on but I figure I will toss in my .02 and let people shoot each one down in turn. 1) Lots of example code & documentation - This one may sound silly, but if you want to do nearly anything in Java as a programmer, you can enter in Google "Java <thing I want to do>" and find something from sun on the topic. This makes it simple for new users. 2) A single standard library for most tasks - The whole Phobos here and Tango there and DWT someplace else makes picking up a language difficult. Not only that but as a Java Instructor I can simply point to the Sun java & javax library sets available and say here is something that can do that. In Suns case it may not do it well but its there. 3) Good automatic documentation library for EVERYTHING - Being able to search and find all the information on a Java library in the same format and the same style no matter what library I look at makes using the language easier and usually faster for development. 3) Good, native parallelism - With dual core, quad core, or in IBM's Cell processor Obscene core processors, none of the current C Syntax family is parallelism handled natively and "well". 4) Write once, run everywhere. - This one may make me sound like a loon but Sun had the right idea. Just not the bast implementation. I will clarify however I said Write once, not compile once. Most system specific tasks for application level programming are handled by the standard library. This includes gui integration, simple and native cross compile tools and integrated tar/compression support. 5) A library packager - The scripting languages got it right with cpan, simple quick, easy, no complex installation instructions, just cpan install x. Being able to do this and keep your libraries up-to-date quickly and easily is a godsend to most programmers. DSource is nice, but it lacks a lot in usability, and being able to figure out core from cruft. 6) Well supported exterainious libs - In java if you need an xml library there are 30, in perl if you need a mysql link, there is one that is regularly updates. This one takes people using the language and doing such things but its important none the less. There is no reason to reinvent the wheel 10 times when someone has done it for you. (I am well aware that many programmers will reinvent the wheel 'right' again anyway) 7) A Good IDE, with debugging, stress testing & Benchmarking - Sounds odd but being able to time a function or stress test something across all possible values from your IDE is a beautiful thing, as is good debugging, syntax coloring and all the other nifty little things that Eclipse and Visual Studio have done right. And my final bullet for this memo which is far longer then I thought it would be 8) Unified Thought in Paradime - Right now I see in the community a divergence in idea between C style functions, C++ style classes and a cleaner java style classes. (My preference is C functions and java classes but thats just me) Choose your options and unify that in the library. Do what perl did in premise and have oo or function style(yes I am aware this is older libs like CGI but I dont care for the argument). Integrate Both paradimes into the core logic of your libraries or focus on one. But don't develop libraries that compete. Feel free to shoot and flame all you like but I figured a Pointy Haired Programmers opinion from a newcomer might spark some valuable discussion. Hans W. Uhlig Engineer Click Consulting, Inc.
Feb 09 2008
Hans W. Uhlig:3) Good automatic documentation library for EVERYTHINGThe ddoc seems a good starting point, do you know it? (But I think such things don't need to built in the compiler).This includes gui integration,Having a standard GUI toolkit built-in in the standard library is quite positive (like Delphi, Python, etc). Bye, bearophile
Feb 09 2008
Hans W. Uhlig さんは書きました:Good morning everyone, I am new to the D forums but I have been following D's progress for a good while. 2) A single standard library for most tasks - The whole Phobos here and Tango there and DWT someplace else makes picking up a language difficult. Not only that but as a Java Instructor I can simply point to the Sun java & javax library sets available and say here is something that can do that. In Suns case it may not do it well but its there.I boggles the hell out of me every time someone comes and complains that there are more than one standard library. I have never had that problem and I can attest to you that my programming experience pales in comparison to anyone on this newsgroup. There has only ever been one standard library. Tango and its predecessor "Mango" was created because patches submitted to Phobos were not readily implemented. But instead of sitting around and complain about it, people actually took a positive step to address the situation. It grew into what it is today because the creators believe in what they are doing and continue to develop their product. Of course, a good following (aka user base) is always a morale booster. But if I recall correctly, the Tango Team has never claimed that they are the standard and Walter has never endorsed it as the "Other Standard". Don't get me wrong, it is a damn good library and could easily become the standard. But as I sit here typing this message it is most definitely not a standard. This is plain asinine. Most, if not all complaints of this sort claim that new users are hampered because the website is badly designed, there are two standard libraries, there is no IDE, debugging support is nonexistent or under par and the list goes on and on. As a novice programmer, I’m here to tell you that these claims do not apply to people who really want to learn the language. I really doesn’t even require you to understand what you are doing to learn this language. I’ve ported the Mersenne Twister on two separate occasions (both original and SIMD versions) to D, and while I learned a little more about D in the process of doing so, I still do not understand a whole lot about programming. The amazing thing about this is that I learned and did it all without any documentation other than the D website, the source code, and asking a few questions here and there. My debugger was me, my IDE was first notepad then I upgraded to UltraEdit because the job paid for it. I used the only standard library D has: Phobos. I've been able to do in D what I still cannot do in C++ which has only one "STANDARD LIBRARY" and thousands of volumes of books dedicated to explaining its every intricate detail. I've spent in excess of $5000 dollars to learn C++ and still cannot do in it what I can do in D on which I've spent $0. Sorry, make that $10 since I did buy "Learn to Tango with D". The language is not that difficult to learn especially if you are a novice and have no preconceived ideas about what programming should be. For those who come across with preconceived ideas, the site provides enough to explain differences between D and C, D and C++, D and JAVA and so on… To me, that is all you should require if you are an experienced programmer. Yes, bells and whistles can make easier. But is that truly a showstopper? I don’t think so. Regards, Andrew
Feb 09 2008
Tyro[a.c.edwards] wrote: [ snip ]Yes, bells and whistles can make easier. But is that truly a showstopper? I don’t think so.It can be a showstopper if you're trying to get stuff done. It's not a showstopper if you want to learn the language. To give an example, MonoDevelop in Linux doesn't have a decent GUI designer[1], which would be a showstopper for many companies attempting designer; it just takes a lot longer and ends up with worse results. [1] Your mileage may vary. I found it quite difficult to use.
Feb 09 2008
Christopher Wright wrote:To give an example, MonoDevelop in Linux doesn't have a decent GUI designer[1], ...My mistake. It has a halfway decent GUI designer, and I just didn't understand how Gtk works.
Feb 10 2008
On Sun, 10 Feb 2008 08:26:42 +0900, Tyro[a.c.edwards] wrote:Hans W. Uhlig さんは書きました:Your right, if someone wants to learn D they will. The problem is that we have to convince people that they want to learn the language. This my not sound to hard because of D's simplicity and power compared to its competition. The conflicts and things that are missing will drive people away, or it give them something to point at to explain why they don't want to spend time learning it. These people are looking at D and are saying, "I have all these tools in my language, and know what I am doing." Then you have the new programmers that aren't set in their ways. The problem here is that one company is hiring D coders.Good morning everyone, I am new to the D forums but I have been following D's progress for a good while. 2) A single standard library for most tasks - The whole Phobos here and Tango there and DWT someplace else makes picking up a language difficult. Not only that but as a Java Instructor I can simply point to the Sun java & javax library sets available and say here is something that can do that. In Suns case it may not do it well but its there.I boggles the hell out of me every time someone comes and complains that there are more than one standard library. I have never had that problem and I can attest to you that my programming experience pales in comparison to anyone on this newsgroup. There has only ever been one standard library. Tango and its predecessor "Mango" was created because patches submitted to Phobos were not readily implemented. But instead of sitting around and complain about it, people actually took a positive step to address the situation. It grew into what it is today because the creators believe in what they are doing and continue to develop their product. Of course, a good following (aka user base) is always a morale booster. But if I recall correctly, the Tango Team has never claimed that they are the standard and Walter has never endorsed it as the "Other Standard". Don't get me wrong, it is a damn good library and could easily become the standard. But as I sit here typing this message it is most definitely not a standard. This is plain asinine. Most, if not all complaints of this sort claim that new users are hampered because the website is badly designed, there are two standard libraries, there is no IDE, debugging support is nonexistent or under par and the list goes on and on. As a novice programmer, I’m here to tell you that these claims do not apply to people who really want to learn the language. I really doesn’t even require you to understand what you are doing to learn this language. I’ve ported the Mersenne Twister on two separate occasions (both original and SIMD versions) to D, and while I learned a little more about D in the process of doing so, I still do not understand a whole lot about programming. The amazing thing about this is that I learned and did it all without any documentation other than the D website, the source code, and asking a few questions here and there. My debugger was me, my IDE was first notepad then I upgraded to UltraEdit because the job paid for it. I used the only standard library D has: Phobos. I've been able to do in D what I still cannot do in C++ which has only one "STANDARD LIBRARY" and thousands of volumes of books dedicated to explaining its every intricate detail. I've spent in excess of $5000 dollars to learn C++ and still cannot do in it what I can do in D on which I've spent $0. Sorry, make that $10 since I did buy "Learn to Tango with D". The language is not that difficult to learn especially if you are a novice and have no preconceived ideas about what programming should be. For those who come across with preconceived ideas, the site provides enough to explain differences between D and C, D and C++, D and JAVA and so on… To me, that is all you should require if you are an experienced programmer. Yes, bells and whistles can make easier. But is that truly a showstopper? I don’t think so. Regards, Andrew
Feb 09 2008
Tyro[a.c.edwards] wrote:Hans W. Uhlig さんは書きました:Having several libraries that do the same thing, are fully community supported and do things radically different are wonderful for confusing new users. As was mentioned in another thread, the concept of objects is radically different between the two "standard" libraries, this is an aweful way to unify your platform and make it "popular" which is what deems any language to success or failure in use.Good morning everyone, I am new to the D forums but I have been following D's progress for a good while. 2) A single standard library for most tasks - The whole Phobos here and Tango there and DWT someplace else makes picking up a language difficult. Not only that but as a Java Instructor I can simply point to the Sun java & javax library sets available and say here is something that can do that. In Suns case it may not do it well but its there.I boggles the hell out of me every time someone comes and complains that there are more than one standard library.I have never had that problem and I can attest to you that my programming experience pales in comparison to anyone on this newsgroup. There has only ever been one standard library. Tango and its predecessor "Mango" was created because patches submitted to Phobos were not readily implemented.For a "supplementary library" I find it funny that its not released as a set of source files to be added to a compiler or a set of libs for version x, for version y, or version zed. Its distributed as a set of libs, compiler, linker, make & debugger. This to me smacks not only of a standard library but nearly a full fork based on said library.But instead of sitting around and complain about it, people actually took a positive step to address the situation. It grew into what it is today because the creators believe in what they are doing and continue to develop their product. Of course, a good following (aka user base) is always a morale booster. But if I recall correctly, the Tango Team has never claimed that they are the standard and Walter has never endorsed it as the "Other Standard".Well I will address this as two pieces, First, having a community driven project is a wonderful thing. It tends to do two things, increase submitted code and exponentially increase scope creep. Now, neither is bad for a standard library as long as someone is managing all these pieces and cleaning them up afterwards. However since the majority of vocal users here seem to think tango is the future and phobos was a wonderful stepping stone development library for Dv1, perhaps its time to look at what will get solidified for D2 and ensure some common standards for the future. As to the second comment you made, even if the Tango Team does not say we are the new standard, the community seems to have made up its mind that it is. Since Phobos is not being updated well and needs some code rewrites(noting the IO speeds and a few other areas) perhaps this isnt a bad thing. As D is a growing language it can go through changes and even entire library sets.Don't get me wrong, it is a damn good library and could easily become the standard. But as I sit here typing this message it is most definitely not a standard.Perhaps you should look at why your peers seem to think it is.This is plain asinine. Most, if not all complaints of this sort claim that new users are hampered because the website is badly designed, there are two standard libraries, there is no IDE, debugging support is nonexistent or under par and the list goes on and on.All of those are killers to your average code money, remember, they are told to code, not think. D seems to sit where linux is right now, It is a beautiful product with lots of future, proven ideas, a good community and about as much continuity and polish as a train wreck. No quality IDE(some are getting there but not there yet), no good debuggers or the IDE to use with them,and a badly designed website without good documentation wont attract the attention of companies. These same companies who say "I need to use D! It will decrease development time, increase productivity and lower my support costs." and then funnel large amounts of money into developing the few rough areas. This includes mainstream IDE support, and loads of other things.As a novice programmer, I’m here to tell you that these claims do not apply to people who really want to learn the language.My comment is for anyone who wishes to learn the language for usage, not necessarily for pleasure. If you learn said languages for pleasure then your niche of people will be small and your languages usage will be so as well. If your language is powerful, easy to use and easy to learn by ANYONE including the 9-5 code monkeys who their boss says we need X written in Zed then it serves a far larger crowd.I really doesn’t even require you to understand what you are doing to learn this language.I beg to differ. Most lower end programmers don't understand a command line let alone linkers, and debuggers. Visual Studio, Komodo and Eclipse/Netbeans are as far as they go.I’ve ported the Mersenne Twister on two separate occasions (both original and SIMD versions) to D, and while I learned a little more about D in the process of doing so, I still do not understand a whole lot about programming.To write that complex an algorithm and no know much about programming you are either an idiot savant or a liar.The amazing thing about this is that I learned and did it all without any documentation other than the D website, the source code, and asking a few questions here and there. My debugger was me, my IDE was first notepad then I upgraded to UltraEdit because the job paid for it. I used the only standard library D has: Phobos.And my father walked up hills both ways in the snow & rocks without shoes because thats what he had. So when it came to us, he paved the road, bought us shoes and gave us a segway. Were learn a whole lot more at school now then he did.I've been able to do in D what I still cannot do in C++ which has only one "STANDARD LIBRARY" and thousands of volumes of books dedicated to explaining its every intricate detail. I've spent in excess of $5000 dollars to learn C++ and still cannot do in it what I can do in D on which I've spent $0.Notice my argument failed to mention C++. I have written code in c++ and found its object orientation and standard library to be painful to use. http://www.phy.duke.edu/~rgb/Beowulf/c++_interview/c++_interview.html while tongue in cheek seems to be very poignant. C++ was an attempt to bring OO to a procedural language without breaking anything. I find most real systems programmers still prefer C over C++. Isn't this why Walter Wrote D rather then C+2? I will however note that spending loads of money on books at this point in free communication is a laugh. You can learn C from 50-100 sites on the internet without spending a dime on direct material. Same goes for most any language you care to learn. So the number of trees you cut down for your library in this argument has very little sway, times have changed.Sorry, make that $10 since I did buy "Learn to Tango with D". The language is not that difficult to learn especially if you are a novice and have no preconceived ideas about what programming should be.Since this is plesant conversation, how is the book? I was looking to pick it up as a reference since there is a limit on the online material available.For those who come across with preconceived ideas, the site provides enough to explain differences between D and C, D and C++, D and JAVA and so on… To me, that is all you should require if you are an experienced programmer.Preconceived ideas, tested solutions and methods seem to be what D is sold as. 30 years of experience from all languages brought together in one tight clean package written to be easy to learn and easy to use. Or perhaps I misread Walter's sales pitch.Yes, bells and whistles can make easier. But is that truly a showstopper? I don’t think so.Bells, whistles, the entire percussion section, and a missing lead singer could stop the show, or at least delay it. Perhaps we should let the band in, and let the understudy take the stage.Regards, AndrewSincerely, Hans W. Uhlig
Feb 09 2008
Having several libraries that do the same thing, are fully community supported and do things radically different are wonderful for confusing new users. As was mentioned in another thread, the concept of objects is radically different between the two "standard" libraries, this is an aweful way to unify your platform and make it "popular" which is what deems any language to success or failure in use.My only complaint with the "two standard libs" issue is their incompatibility. The idea of writing a library for a language that replaces Object thereby breaking compatibility with any "standard" code sounds like madness to me. Besides that, as wonderful as it would be to have all the tools you'll ever need already written for you in exactly the manner you'd choose, that is very unlikely to ever occur no matter what the development model. I like the idea that people write libraries for themselves and make them publicly available. If you like them, use them; if you don't, don't. It only affects me negtively when a library like Tango breaks compatibility.A would love to see a great D IDE with all the features mentioned and more. Of course I'd also love a great C++ IDE - I've still yet to find one. It strikes me as a massive project and one that IMHO comes second to polishing the language itself.This is plain asinine. Most, if not all complaints of this sort claim that new users are hampered because the website is badly designed, there are two standard libraries, there is no IDE, debugging support is nonexistent or under par and the list goes on and on.All of those are killers to your average code money, remember, they are told to code, not think. D seems to sit where linux is right now, It is a beautiful product with lots of future, proven ideas, a good community and about as much continuity and polish as a train wreck. No quality IDE(some are getting there but not there yet), no good debuggers or the IDE to use with them,and a badly designed website without good documentation wont attract the attention of companies. These same companies who say "I need to use D! It will decrease development time, increase productivity and lower my support costs." and then funnel large amounts of money into developing the few rough areas. This includes mainstream IDE support, and loads of other things.I beg to differ. Most lower end programmers don't understand a command line let alone linkers, and debuggers. Visual Studio, Komodo and Eclipse/Netbeans are as far as they go.More's the pity.Whereas I'm still struggling to make it up the hill at all. I'd much rather sufficient tools soon than ideal tools eventually. Every time I go to write a struct I come across some language or compiler "odity" that isn't explained in the brief specification, crashes the compiler or is even a legitimate, though unintuitive initially to me, language feature that I'd love to have explained to me but haven't. Now as much as some of my complaints may apply to 1.0 admittedly I am working with 2.0. It is of course an alpha and you expect plenty of hiccups, but I would have thought you should also expect to be able to have some way of going about getting them resolved. The open source front-end is little help if I can't compile it to attempt patches and, for example, nobody has yet explained to me why I need to write a redundant opCall just to make a copy of a struct? Please excuse my rant but I find myself quickly losing patience with D2 and thinking about 'going back' to C++ primarily due to a lack of documentation and not because of a lack of IDE or complete std-lib. *vent complete*The amazing thing about this is that I learned and did it all without any documentation other than the D website, the source code, and asking a few questions here and there. My debugger was me, my IDE was first notepad then I upgraded to UltraEdit because the job paid for it. I used the only standard library D has: Phobos.And my father walked up hills both ways in the snow & rocks without shoes because thats what he had. So when it came to us, he paved the road, bought us shoes and gave us a segway. Were learn a whole lot more at school now then he did.
Feb 09 2008
On Sat, 09 Feb 2008 19:10:14 -0800, Hans W. Uhlig wrote:Since this is plesant conversation, how is the book? I was looking to pick it up as a reference since there is a limit on the online material available. Sincerely, Hans W. UhligHans, the book is great. I wouldn't say it is a great reference though, its missing an index. I'll have to do some more coding before I know its reference quality.
Feb 09 2008
Hans W. Uhlig wrote:This has nothing to do with forking, but rather the fact that to use Tango you need to replace the parts of the DMD package that makes D tick. Of course we want people to use our library, and it will be easier for them if they can download all they need in a step less. We did go pretty please with Walter to make this happen. An additional facet of this is that every few releases of DMD, it gains a bug that breaks Tango, and by distributing the compiler ourselves, we can better minimize questions related to faulty compilers. -- Lars Ivar Igesund blog at http://larsivi.net DSource, #d.tango & #D: larsivi Dancing the TangoI have never had that problem and I can attest to you that my programming experience pales in comparison to anyone on this newsgroup. There has only ever been one standard library. Tango and its predecessor "Mango" was created because patches submitted to Phobos were not readily implemented.For a "supplementary library" I find it funny that its not released as a set of source files to be added to a compiler or a set of libs for version x, for version y, or version zed. Its distributed as a set of libs, compiler, linker, make & debugger. This to me smacks not only of a standard library but nearly a full fork based on said library.
Feb 10 2008
Hans W. Uhlig さんは書きました:Tyro[a.c.edwards] wrote:Hans W. Uhlig さんは書きました:I am many thing... but a liar is absolutely not one of them. If I'm made to conform to your prolarized concept of human knowledge and programming ability, then I will have to say I stand in the camp of idiot savants all by my lonesome. I tend to think I can simply read and follow the simple instructions provided by on the website, which in my mind take common sense, not understanding.I’ve ported the Mersenne Twister on two separate occasions (both original and SIMD versions) to D, and while I learned a little more about D in the process of doing so, I still do not understand a whole lot about programming.To write that complex an algorithm and no know much about programming you are either an idiot savant or a liar.> The amazing thing about this is that I learnedAnd ofcourse if we should lose our road due to an unfortunate earthquake most of us would all sit around complaining because we've never walked over a hill in our life. Those that took the time to walk up a few hills eventhough the didn't have to would have not be hampered by this problems and would simply fall back on this experience until such time when the roads were rebuiled.and did it all without any documentation other than the D website, the source code, and asking a few questions here and there. My debugger was me, my IDE was first notepad then I upgraded to UltraEdit because the job paid for it. I used the only standard library D has: Phobos.And my father walked up hills both ways in the snow & rocks without shoes because thats what he had. So when it came to us, he paved the road, bought us shoes and gave us a segway. Were learn a whole lot more at school now then he did.It is great to the point I've read. I've not yet complete reading it so I cannot give you a complete review. I'd venture to say that if they wrap things up they way they started, it will turn out to be a very good book indeed.Sorry, make that $10 since I did buy "Learn to Tango with D". The language is not that difficult to learn especially if you are a novice and have no preconceived ideas about what programming should be.Since this is plesant conversation, how is the book? I was looking to pick it up as a reference since there is a limit on the online material available.It took those other languages 30 years to reach where they have the backing of the best marketing teams and billions of dollars in support from the largest companies outfitted with paid professionals whose job it was to develop and improve those languages. I'm sure that D will pale in comparison to those languages with regard to commercial acceptance and viability. I simply hope that people would lend a hand at fixing the problems they encounter rather than always complaining about them.For those who come across with preconceived ideas, the site provides enough to explain differences between D and C, D and C++, D and JAVA and so on… To me, that is all you should require if you are an experienced programmer.Preconceived ideas, tested solutions and methods seem to be what D is sold as. 30 years of experience from all languages brought together in one tight clean package written to be easy to learn and easy to use. Or perhaps I misread Walter's sales pitch.Yes, bells and whistles can make easier. But is that truly a showstopper? I don’t think so.Bells, whistles, the entire percussion section, and a missing lead singer could stop the show, or at least delay it. Perhaps we should let the band in, and let the understudy take the stage.Regards, AndrewSincerely, Hans W. Uhlig
Feb 10 2008
It took those other languages 30 years to reach where they have the backing of the best marketing teams and billions of dollars in support from the largest companies outfitted with paid professionals whose job it was to develop and improve those languages. I'm sure that D will pale in comparison to those languages with regard to commercial acceptance and viability. I simply hope that people would lend a hand at fixing the problems they encounter rather than always complaining about them.I probably fall in the camp of the complainers. I would love to lend a hand at fixing problems if only I had code I could modify, compile and test to that end.
Feb 11 2008
Neil Vice $B$5$s$O=q$-$^$7$?(B:There are a number of projects at dsource.org atrophying from a lack of attention. I'm sure you can find one there that peaks your curiosity. More than likely the developer(s) would gladly welcome the help.It took those other languages 30 years to reach where they have the backing of the best marketing teams and billions of dollars in support from the largest companies outfitted with paid professionals whose job it was to develop and improve those languages. I'm sure that D will pale in comparison to those languages with regard to commercial acceptance and viability. I simply hope that people would lend a hand at fixing the problems they encounter rather than always complaining about them.I probably fall in the camp of the complainers. I would love to lend a hand at fixing problems if only I had code I could modify, compile and test to that end.
Feb 11 2008
Hans W. Uhlig wrote:7) A Good IDE, with debugging, stress testing & Benchmarking - Sounds odd but being able to time a function or stress test something across all possible values from your IDE is a beautiful thing, as is good debugging, syntax coloring and all the other nifty little things that Eclipse and Visual Studio have done right.Funny you mention that, since I'm sowking on a unittest feature in Descent right now that includes the ability to time test runs.
Feb 09 2008
Robert Fraser wrote:Hans W. Uhlig wrote:sowking = working. Not a giant talking pig with a crown.7) A Good IDE, with debugging, stress testing & Benchmarking - Sounds odd but being able to time a function or stress test something across all possible values from your IDE is a beautiful thing, as is good debugging, syntax coloring and all the other nifty little things that Eclipse and Visual Studio have done right.Funny you mention that, since I'm sowking on a unittest feature in Descent right now that includes the ability to time test runs.
Feb 09 2008
Robert Fraser wrote:Robert Fraser wrote:I will take a look at that, last time I looked at Descent was a few months back.Hans W. Uhlig wrote:sowking = working. Not a giant talking pig with a crown.7) A Good IDE, with debugging, stress testing & Benchmarking - Sounds odd but being able to time a function or stress test something across all possible values from your IDE is a beautiful thing, as is good debugging, syntax coloring and all the other nifty little things that Eclipse and Visual Studio have done right.Funny you mention that, since I'm sowking on a unittest feature in Descent right now that includes the ability to time test runs.
Feb 09 2008
Hans W. Uhlig wrote:Robert Fraser wrote:It's not in the app just yet; it needs a builder before it's useful.Robert Fraser wrote:I will take a look at that, last time I looked at Descent was a few months back.Hans W. Uhlig wrote:sowking = working. Not a giant talking pig with a crown.7) A Good IDE, with debugging, stress testing & Benchmarking - Sounds odd but being able to time a function or stress test something across all possible values from your IDE is a beautiful thing, as is good debugging, syntax coloring and all the other nifty little things that Eclipse and Visual Studio have done right.Funny you mention that, since I'm sowking on a unittest feature in Descent right now that includes the ability to time test runs.
Feb 09 2008
Reply to Robert,Hans W. Uhlig wrote:How about a "color by time in line" feature. the more time spent in that line of code the darker it is.7) A Good IDE, with debugging, stress testing & Benchmarking - Sounds odd but being able to time a function or stress test something across all possible values from your IDE is a beautiful thing, as is good debugging, syntax coloring and all the other nifty little things that Eclipse and Visual Studio have done right.Funny you mention that, since I'm sowking on a unittest feature in Descent right now that includes the ability to time test runs.
Feb 09 2008
BCS wrote:Reply to Robert,Bookmarked for far-far-future reference (as in when the robots take over).Hans W. Uhlig wrote:How about a "color by time in line" feature. the more time spent in that line of code the darker it is.7) A Good IDE, with debugging, stress testing & Benchmarking - Sounds odd but being able to time a function or stress test something across all possible values from your IDE is a beautiful thing, as is good debugging, syntax coloring and all the other nifty little things that Eclipse and Visual Studio have done right.Funny you mention that, since I'm sowking on a unittest feature in Descent right now that includes the ability to time test runs.
Feb 09 2008
On Sat, 09 Feb 2008 23:42:27 +0200, Hans W. Uhlig <huhlig clickconsulting.com> wrote: I'll reply to some points that haven't been replied to.4) Write once, run everywhere. - This one may make me sound like a loon but Sun had the right idea. Just not the bast implementation. I will clarify however I said Write once, not compile once. Most system specific tasks for application level programming are handled by the standard library. This includes gui integration, simple and native cross compile tools and integrated tar/compression support.About GUI integration - I don't think it should be the burden of the language to provide that. There are several binding libraries for cross-platform GUI libraries which work pretty well (an example: http://wxd.sourceforge.net/ )5) A library packager - The scripting languages got it right with cpan, simple quick, easy, no complex installation instructions, just cpan install x. Being able to do this and keep your libraries up-to-date quickly and easily is a godsend to most programmers. DSource is nice, but it lacks a lot in usability, and being able to figure out core from cruft.We have this with Gregor's excellent DSSS ( D Shared Source System, http://dsource.org/projects/dsss/ ). -- Best regards, Vladimir mailto:thecybershadow gmail.com
Feb 09 2008
Vladimir Panteleev:About GUI integration - I don't think it should be the burden of the language to provide that. There are several binding libraries for cross-platform GUI libraries which work pretty well (an example: http://wxd.sourceforge.net/ )A built-in standard GUI toolkit has some advantages, it's a standard, so it hopefully gets developed to a refined state instead of having 5-10 half-baked GUI toolkits that are of little use, like the current situation. And if you don't like the standard one, you are free still to develop/install a different one. Regarding WxD, I suggest their developers to take a good look at the now dead "Wax", it shows a way to write a better wrapper for Wx (it's not meant to replace the normal Wx API, but to offer an alternative, a simper one): http://zephyrfalcon.org/labs/wax.html Wax was developed for Python, that has named arguments too, so that Python code may look like: tb = TextBox(parent, size=(400, 200), multiline=1, readonly=0, wrap=1, justify='left') Named arguments are quite useful for such GUI-style code, but not available in D yet (they are in the D Wish List), so some alternative solution has to be found: auto tb = TextBox(parent).size(400, 200).multiline(1).readonly(0).wrap(1).justify("left"); Or: auto tb = TextBox(parent, ["nx":400, "ny":200, "multiline":1, "readonly":0, "wrap":1, "justify": LEFT]); auto tb = TextBox(parent).opts(["nx":400, "ny":200, "multiline":1, "readonly":0, "wrap":1, "justify": LEFT]); Bye, bearophile
Feb 10 2008
On Sun, 10 Feb 2008 14:47:00 +0200, bearophile <bearophileHUGS lycos.com=wrote:Wax was developed for Python, that has named arguments too, so that Py=thon code may look like:=tb =3D TextBox(parent, size=3D(400, 200), multiline=3D1, readonly=3D0,=wrap=3D1, justify=3D'left') D isn't too far off with "with" statements. Example DFL code: with(tb =3D new TextBox) { bounds =3D Rect(100, 100, 200, 200); multilin= e =3D true; readOnly =3D false; wordWrap =3D true; parent =3D this; } And with the new full closures, you can implement event handlers inline,= too. -- = Best regards, Vladimir mailto:thecybershadow gmail.com
Feb 10 2008
Vladimir Panteleev <thecybershadow gmail.com> wrote:On Sun, 10 Feb 2008 14:47:00 +0200, bearophile =<bearophileHUGS lycos.com> wrote:Wax was developed for Python, that has named arguments too, so that =, wrap=3D1, =Python code may look like: tb =3D TextBox(parent, size=3D(400, 200), multiline=3D1, readonly=3D0=ine =3D =justify=3D'left')D isn't too far off with "with" statements. Example DFL code: with(tb =3D new TextBox) { bounds =3D Rect(100, 100, 200, 200); multil=true; readOnly =3D false; wordWrap =3D true; parent =3D this; }Now if only you could declare a new variable within a with statement. It= 's = not strictly necessary, but I find with (auto tb =3D new TextBox()) { ... } to be more aesthetically pleasing than auto tb =3D new TextBox(); with (tb) { ... } of course, given that with introduces a separate scope, tb might go out = of = scope the moment the with statement exits. This might be open to = interpretation though, seeing as tb is declared outside the curly braces= .And with the new full closures, you can implement event handlers inlin=e, =too.
Feb 10 2008
Vladimir Panteleev Wrote:D isn't too far off with "with" statements. Example DFL code: with(tb = new TextBox) { bounds = Rect(100, 100, 200, 200); multiline = true; readOnly = false; wordWrap = true; parent = this; }This is shorter and I think it looks better, with less syntax: auto tb = TextBox(space1).size(400, 200).multiline(1).readonly(0).wrap(1).justify("left"); In D you may want to use camelCase to move your fingers a bit more: auto tb = TextBox(space1).size(400, 200).multiLine(1).readOnly(0).wrap(1).justify("left");And with the new full closures, you can implement event handlers inline, too.I don't use D 2.x, but I presume a good Wax-like wrapper can be written for D too :-) Bye, bearophile
Feb 10 2008
Hans W. Uhlig wrote:Good morning everyone, I am new to the D forums but I have been following D's progress for a good while.Hello.1) Lots of example code & documentation - This one may sound silly, but if you want to do nearly anything in Java as a programmer, you can enter in Google "Java <thing I want to do>" and find something from sun on the topic. This makes it simple for new users.I do not think D lacks examples or documentation. When I was a newer user, http://www.digitalmars.com/d/1.0/lex.html and http://www.dsource.org/projects/tutorials/wiki got me by pretty well. If the documentation is good enough for newbie hobby programmers, I think professionals should be able to understand it.2) A single standard library for most tasks - The whole Phobos here and Tango there and DWT someplace else makes picking up a language difficult. Not only that but as a Java Instructor I can simply point to the Sun java & javax library sets available and say here is something that can do that. In Suns case it may not do it well but its there.I sort of agree, but... 1) While Tango / Phobos situation is not up to par, ... the situation would be a whole lot worse if Tango didn't exist. Tango is pretty great, and I think just by its existence it will help get phobos up to speed, as well as provide a good alternative lib that decent programmers can have a sense of ownership with. 2) It probably is not smart to have a big GUI in a standard library, because if the GUI is buggy and incomplete, people will think the same of the whole standard lib. Plus, someone may write a better GUI and then the standard lib won't be able to use it.3) Good automatic documentation library for EVERYTHING - Being able to search and find all the information on a Java library in the same format and the same style no matter what library I look at makes using the language easier and usually faster for development.We have that http://www.digitalmars.com/d/2.0/ddoc.html3) Good, native parallelism - With dual core, quad core, or in IBM's Cell processor Obscene core processors, none of the current C Syntax family is parallelism handled natively and "well".I'm pretty sure the D community is very aware of this.4) Write once, run everywhere. - This one may make me sound like a loon but Sun had the right idea. Just not the bast implementation. I will clarify however I said Write once, not compile once. Most system specific tasks for application level programming are handled by the standard library. This includes gui integration, simple and native cross compile tools and integrated tar/compression support.Both phobos and Tango are cross platform...5) A library packager - The scripting languages got it right with cpan, simple quick, easy, no complex installation instructions, just cpan install x. Being able to do this and keep your libraries up-to-date quickly and easily is a godsend to most programmers. DSource is nice, but it lacks a lot in usability, and being able to figure out core from cruft.I think DSSS http://www.dsource.org/dsss has the potential to become this, although lack of a 'dsss update' feature prevents it. DSSS is a great way to fetch libraries however.6) Well supported exterainious libs - In java if you need an xml library there are 30, in perl if you need a mysql link, there is one that is regularly updates. This one takes people using the language and doing such things but its important none the less. There is no reason to reinvent the wheel 10 times when someone has done it for you. (I am well aware that many programmers will reinvent the wheel 'right' again anyway)I'm not sure what you mean by well supported, but D does have plenty of libraries that do a pretty good job of gettings things done http://www.dsource.org/projects7) A Good IDE, with debugging, stress testing & Benchmarking - Sounds odd but being able to time a function or stress test something across all possible values from your IDE is a beautiful thing, as is good debugging, syntax coloring and all the other nifty little things that Eclipse and Visual Studio have done right. And my final bullet for this memo which is far longer then I thought it would beI don't know anything about this really, but D did recently get a d.ide newsgroup, so its on the radar it looks like.8) Unified Thought in Paradime - Right now I see in the community a divergence in idea between C style functions, C++ style classes and a cleaner java style classes. (My preference is C functions and java classes but thats just me) Choose your options and unify that in the library. Do what perl did in premise and have oo or function style(yes I am aware this is older libs like CGI but I dont care for the argument). Integrate Both paradimes into the core logic of your libraries or focus on one. But don't develop libraries that compete.I don't think library competition is necessarily a bad thing. It adds some sport into the process and if a library has to compete, it will become stronger. As with unified style,... I think http://www.digitalmars.com/d/2.0/dstyle.html tries to be it, but honestly, you can't control someone to do exactly how you want. People will just use the style they feel confortable with and its nice to know that D attracts C, C++, and Java programmers.
Feb 10 2008
Clay Smith wrote:Hans W. Uhlig wrote:You would be surprised what a crappy GUI in a standard library can do, I reference AWT & Swing as an example. It did miles to help Java.Good morning everyone, I am new to the D forums but I have been following D's progress for a good while.Hello.1) Lots of example code & documentation - This one may sound silly, but if you want to do nearly anything in Java as a programmer, you can enter in Google "Java <thing I want to do>" and find something from sun on the topic. This makes it simple for new users.I do not think D lacks examples or documentation. When I was a newer user, http://www.digitalmars.com/d/1.0/lex.html and http://www.dsource.org/projects/tutorials/wiki got me by pretty well. If the documentation is good enough for newbie hobby programmers, I think professionals should be able to understand it.2) A single standard library for most tasks - The whole Phobos here and Tango there and DWT someplace else makes picking up a language difficult. Not only that but as a Java Instructor I can simply point to the Sun java & javax library sets available and say here is something that can do that. In Suns case it may not do it well but its there.I sort of agree, but... 1) While Tango / Phobos situation is not up to par, ... the situation would be a whole lot worse if Tango didn't exist. Tango is pretty great, and I think just by its existence it will help get phobos up to speed, as well as provide a good alternative lib that decent programmers can have a sense of ownership with. 2) It probably is not smart to have a big GUI in a standard library, because if the GUI is buggy and incomplete, people will think the same of the whole standard lib. Plus, someone may write a better GUI and then the standard lib won't be able to use it.I will look into DSSS but it sounds like something that should come with the base package including your standard lib, and toolchain.3) Good automatic documentation library for EVERYTHING - Being able to search and find all the information on a Java library in the same format and the same style no matter what library I look at makes using the language easier and usually faster for development.We have that http://www.digitalmars.com/d/2.0/ddoc.html3) Good, native parallelism - With dual core, quad core, or in IBM's Cell processor Obscene core processors, none of the current C Syntax family is parallelism handled natively and "well".I'm pretty sure the D community is very aware of this.4) Write once, run everywhere. - This one may make me sound like a loon but Sun had the right idea. Just not the bast implementation. I will clarify however I said Write once, not compile once. Most system specific tasks for application level programming are handled by the standard library. This includes gui integration, simple and native cross compile tools and integrated tar/compression support.Both phobos and Tango are cross platform...5) A library packager - The scripting languages got it right with cpan, simple quick, easy, no complex installation instructions, just cpan install x. Being able to do this and keep your libraries up-to-date quickly and easily is a godsend to most programmers. DSource is nice, but it lacks a lot in usability, and being able to figure out core from cruft.I think DSSS http://www.dsource.org/dsss has the potential to become this, although lack of a 'dsss update' feature prevents it. DSSS is a great way to fetch libraries however.Its not that all peoples code should be but the language should follow the same paradime for the "accepted" and "core" code and libraries.6) Well supported exterainious libs - In java if you need an xml library there are 30, in perl if you need a mysql link, there is one that is regularly updates. This one takes people using the language and doing such things but its important none the less. There is no reason to reinvent the wheel 10 times when someone has done it for you. (I am well aware that many programmers will reinvent the wheel 'right' again anyway)I'm not sure what you mean by well supported, but D does have plenty of libraries that do a pretty good job of gettings things done http://www.dsource.org/projects7) A Good IDE, with debugging, stress testing & Benchmarking - Sounds odd but being able to time a function or stress test something across all possible values from your IDE is a beautiful thing, as is good debugging, syntax coloring and all the other nifty little things that Eclipse and Visual Studio have done right. And my final bullet for this memo which is far longer then I thought it would beI don't know anything about this really, but D did recently get a d.ide newsgroup, so its on the radar it looks like.8) Unified Thought in Paradime - Right now I see in the community a divergence in idea between C style functions, C++ style classes and a cleaner java style classes. (My preference is C functions and java classes but thats just me) Choose your options and unify that in the library. Do what perl did in premise and have oo or function style(yes I am aware this is older libs like CGI but I dont care for the argument). Integrate Both paradimes into the core logic of your libraries or focus on one. But don't develop libraries that compete.I don't think library competition is necessarily a bad thing. It adds some sport into the process and if a library has to compete, it will become stronger. As with unified style,... I think http://www.digitalmars.com/d/2.0/dstyle.html tries to be it, but honestly, you can't control someone to do exactly how you want. People will just use the style they feel confortable with and its nice to know that D attracts C, C++, and Java programmers.
Feb 10 2008
Hans W. Uhlig Wrote:3) Good, native parallelism - With dual core, quad core, or in IBM's Cell processor Obscene core processors, none of the current C Syntax family is parallelism handled natively and "well".Do you mean in the library or in the language? I don't think D can be a magically-parallelising language; it's not constructed for it, and while it's a cool trick in those languages which do it I'd be worried about it not parallelising important code because of some functional test incorrectly failing and making it run sequentially. But it could handle something like OpenMP more elegantly, where you tell the compiler what can be parallelised, a la: // The compiler can and probably should split this into pieces. parallel foreach (i, foo) // The compiler can also do these two tasks at the same time. parallel { // Pause any other worker threads so that only this thread can work during this statement. synchronized { } // But this only causes us to pause this thread if another thread is using the object. synchronized (object) { } } parallel bar (); // But everything's gotta be done before calling this! baz (); That would be a quick addition to the compiler that could be expanded over time (both in how well the compiler handles the instruction and semantics) rather than taking a month just to get it to a semi-working state, it's something that would retain its usefulness even if the compiler starts to learn how to automatically parallelise code, and it's simple (probably too simple, I haven't explored OpenMP much) while still making a material contribution to the language. I'm working on this issue in a library, but there's a limit to how elegant I can make it. Also I have no freaking idea what I'm doing. It hasn't stopped me before, but it does slow me down.6) Well supported exterainious libs - In java if you need an xml library there are 30, in perl if you need a mysql link, there is one that is regularly updates. This one takes people using the language and doing such things but its important none the less. There is no reason to reinvent the wheel 10 times when someone has done it for you. (I am well aware that many programmers will reinvent the wheel 'right' again anyway)I half agree and half disagree. I can see how this allows outsiders to get a simple, cohesive view of a language. On the other hand, there are often manifest problems or deficiencies in a library, and variations on a theme allow us to explore different ways to address the issue and find the best way to implement it. This is particularly important with D, which has certain features which no other language has and needs implementing in new ways. It's not pointless reinvention.
Feb 10 2008
On Sun, 10 Feb 2008 22:59:49 -0500, Burton Radons wrote:Hans W. Uhlig Wrote:Well that's what D2 is getting ready for, magically-paralleling programs. It already supports threading which is explicit. Granted its not the simplest to use, but I think paralleling will be evolving soon for D. (And by soon I mean later)3) Good, native parallelism - With dual core, quad core, or in IBM's Cell processor Obscene core processors, none of the current C Syntax family is parallelism handled natively and "well".Do you mean in the library or in the language? I don't think D can be a magically-parallelising language; it's not constructed for it, and while it's a cool trick in those languages which do it I'd be worried about it not parallelising important code because of some functional test incorrectly failing and making it run sequentially.
Feb 10 2008
Jesse Phillips Wrote:On Sun, 10 Feb 2008 22:59:49 -0500, Burton Radons wrote:Reference? I don't use 2.0. Anyway what I said holds IMO - when you want code to be executed in parallel, it's not something that should be left to an overly-cautious safety check. For instance, it'd be extremely hard to prove that asm blocks containing SIMD code can be safely parallelised since they may or may not be utilising their own output as input. Yet that's precisely the situation in which parallelisation needs to be done most aggressively. You can also make better decisions about when an array is going to get long enough to merit splitting, while the compiler can only do this after instrumenting. And when I'm optimising code, the last thing I want is for seemingly harmless changes to suddenly cause jumps of 30% in execution speed, which is what could happen with automatic parallelisation.Hans W. Uhlig Wrote:Well that's what D2 is getting ready for, magically-paralleling programs. It already supports threading which is explicit. Granted its not the simplest to use, but I think paralleling will be evolving soon for D. (And by soon I mean later)3) Good, native parallelism - With dual core, quad core, or in IBM's Cell processor Obscene core processors, none of the current C Syntax family is parallelism handled natively and "well".Do you mean in the library or in the language? I don't think D can be a magically-parallelising language; it's not constructed for it, and while it's a cool trick in those languages which do it I'd be worried about it not parallelising important code because of some functional test incorrectly failing and making it run sequentially.
Feb 10 2008
On Mon, 11 Feb 2008 02:07:29 -0500, Burton Radons wrote:Jesse Phillips Wrote:I don't recall the news posts that discussed such possibilities, but it relates to the fact that D is heading towards adding more functional style programming. This is where const and invariant are playing a big roll. I don't know if Walter has come out and said it will allow for automatic paralleling, but any move toward function coding lends to such possibilities.On Sun, 10 Feb 2008 22:59:49 -0500, Burton Radons wrote:Reference? I don't use 2.0. Anyway what I said holds IMO - when you want code to be executed in parallel, it's not something that should be left to an overly-cautious safety check. For instance, it'd be extremely hard to prove that asm blocks containing SIMD code can be safely parallelised since they may or may not be utilising their own output as input. Yet that's precisely the situation in which parallelisation needs to be done most aggressively. You can also make better decisions about when an array is going to get long enough to merit splitting, while the compiler can only do this after instrumenting. And when I'm optimising code, the last thing I want is for seemingly harmless changes to suddenly cause jumps of 30% in execution speed, which is what could happen with automatic parallelisation.Hans W. Uhlig Wrote:Well that's what D2 is getting ready for, magically-paralleling programs. It already supports threading which is explicit. Granted its not the simplest to use, but I think paralleling will be evolving soon for D. (And by soon I mean later)3) Good, native parallelism - With dual core, quad core, or in IBM's Cell processor Obscene core processors, none of the current C Syntax family is parallelism handled natively and "well".Do you mean in the library or in the language? I don't think D can be a magically-parallelising language; it's not constructed for it, and while it's a cool trick in those languages which do it I'd be worried about it not parallelising important code because of some functional test incorrectly failing and making it run sequentially.
Feb 11 2008
Burton Radons wrote:Hans W. Uhlig Wrote:Yes, With both where computers are going and where they already are, native parallelism is one of the prime areas where a language will have to shine.3) Good, native parallelism - With dual core, quad core, or in IBM's Cell processor Obscene core processors, none of the current C Syntax family is parallelism handled natively and "well".Do you mean in the library or in the language? I don't think D can be a magically-parallelising language; it's not constructed for it, and while it's a cool trick in those languages which do it I'd be worried about it not parallelising important code because of some functional test incorrectly failing and making it run sequentially. But it could handle something like OpenMP more elegantly, where you tell the compiler what can be parallelised, a la: // The compiler can and probably should split this into pieces. parallel foreach (i, foo) // The compiler can also do these two tasks at the same time. parallel { // Pause any other worker threads so that only this thread can work during this statement. synchronized { } // But this only causes us to pause this thread if another thread is using the object. synchronized (object) { } } parallel bar (); // But everything's gotta be done before calling this! baz (); That would be a quick addition to the compiler that could be expanded over time (both in how well the compiler handles the instruction and semantics) rather than taking a month just to get it to a semi-working state, it's something that would retain its usefulness even if the compiler starts to learn how to automatically parallelise code, and it's simple (probably too simple, I haven't explored OpenMP much) while still making a material contribution to the language. I'm working on this issue in a library, but there's a limit to how elegant I can make it. Also I have no freaking idea what I'm doing. It hasn't stopped me before, but it does slow me down.very true but when you move from hobbier to production you need a single accepted standard you can show a Pointy haired project manager and say we are using X from Y. we can rely on them supporting it for x years. Personal Development vs Corporate development have very different standards.6) Well supported exterainious libs - In java if you need an xml library there are 30, in perl if you need a mysql link, there is one that is regularly updates. This one takes people using the language and doing such things but its important none the less. There is no reason to reinvent the wheel 10 times when someone has done it for you. (I am well aware that many programmers will reinvent the wheel 'right' again anyway)I half agree and half disagree. I can see how this allows outsiders to get a simple, cohesive view of a language. On the other hand, there are often manifest problems or deficiencies in a library, and variations on a theme allow us to explore different ways to address the issue and find the best way to implement it. This is particularly important with D, which has certain features which no other language has and needs implementing in new ways. It's not pointless reinvention.
Feb 11 2008