| Thread overview | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
February 09, 2008 Necessities for Adoption of D | ||||
|---|---|---|---|---|
| ||||
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. | ||||
February 09, 2008 Re: Necessities for Adoption of D | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Hans W. Uhlig | Hans W. Uhlig: > 3) Good automatic documentation library for EVERYTHING The 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 | |||
February 09, 2008 Re: Necessities for Adoption of D | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Hans W. Uhlig | 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
| |||
February 10, 2008 Re: Necessities for Adoption of D | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Tyro[a.c.edwards] | 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 to develop portable C# GUI applications using GTK#. However, it's quite possible to create a C# GUI application without using a graphical 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.
| |||
February 10, 2008 Re: Necessities for Adoption of D | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Hans W. Uhlig | 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.
| |||
February 10, 2008 Re: Necessities for Adoption of D | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Robert Fraser | Robert Fraser wrote:
> 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.
sowking = working. Not a giant talking pig with a crown.
| |||
February 10, 2008 Re: Necessities for Adoption of D | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Tyro[a.c.edwards] | On Sun, 10 Feb 2008 08:26:42 +0900, Tyro[a.c.edwards] wrote:
> 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
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.
| |||
February 10, 2008 Re: Necessities for Adoption of D | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Tyro[a.c.edwards] | Tyro[a.c.edwards] wrote: > 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. 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. > 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, > Andrew Sincerely, Hans W. Uhlig | |||
February 10, 2008 Re: Necessities for Adoption of D | ||||
|---|---|---|---|---|
| ||||
Posted in reply to Robert Fraser | Robert Fraser wrote:
> Robert Fraser wrote:
>> 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.
>
> sowking = working. Not a giant talking pig with a crown.
I will take a look at that, last time I looked at Descent was a few months back.
| |||
February 10, 2008 Re: Necessities for Adoption of D | ||||
|---|---|---|---|---|
| ||||
Posted in reply to 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. 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. >> 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. 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. > 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. > > 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. 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* | |||
Copyright © 1999-2021 by the D Language Foundation
Permalink
Reply