A language without focus

Boris Wang nano.kago at hotmail.com
Wed Apr 26 18:48:28 PDT 2006


D is a language begin in the world of windows.

The world of Windows is so different than the world of *nix,

there is no opensource, no cooperation, no realy hackers, except for java.


"gabe" <gabe_member at pathlink.com> дÈëÏûÏ¢ÐÂÎÅ:e2oom6$21g4$1 at digitaldaemon.com...
> I've been reading these posts for a while now, and going over the 
> documentation,
> and discovering some of the tools, and a few things have jumped out at me 
> about
> the D language and the D community:
>
> Arrow One: The Message
> The reason one language succeeds and another language fails has everything 
> to do
> with the marketing of the language. Look at Java -- there's a language 
> that
> didn't work for s!#& when it first came out -- it was clunky, slow, and
> uncomfortable for people who knew what a computer did and wanted the 
> computer to
> do just that (and only that). And yet, Java has succeeded, not only 
> through
> their bankroll, but through the packaging of what they do -- providing a 
> unified
> and coherent source of information, documentation, tutorials, compiler,
> debugger, build tools, packaging tools, networking tools, and system 
> analysis
> tools. Each one of these things is a singular effort, unremarkable on the 
> whole,
> but packaged together, they provide a compelling and remarkable interface 
> for
> programmers desperately looking to combine functionality with ease of use. 
> On a
> similar note, look at Python: there's a language with decent libraries,
> excellent syntactical clarity, tons of documentation and tutorials, and an 
> open
> source license that pleases the hackers while not scaring away businesses 
> with
> implementation worries -- if something breaks, they know they have the 
> community
> and their own resources to fix it.
>
> None of those things can really be said for D. First, you don't have a 
> fully
> functional, stress-tested compiler. Second, you have poor documentation, 
> and
> what documentation you do have is either written tersely, poorly, or 
> scattered
> to hell-and-gone. Third, you have absolutely no focus: there are dozens of
> projects out there planning to build the 'next big 
> utility/tool/ide/whatever',
> but hardly any of them seem to be terribly concerned with the fact that 
> D's
> libraries rest on pretty shakey ground. In short, the D library is a joke. 
> Have
> any of you perused the glibc recently, or the java.* packages? Notice 
> anything
> interesting about these projects? If you thought something like 'this has 
> a
> stunning wealth of library functionality and documentation', you'll 
> probably see
> where I'm going with this. We're not talking about advanced JavaBeans and
> ServerFaces, gtkhtml+, or any one of a dozen other amazingly diverse and
> specialized fields -- we're talking about the bare essentials here. And 
> nothing
> is more important for a language's success than those primary libraries. 
> You can
> go over to the 'Ares' forum, where I posted a comment on how a potential 
> library
> should be structured. There has to be an interface for programmers, and 
> it's up
> to the D community to provide those fundamental interpretations and 
> guidelines.
>
> Arrow Two: Liscenses.
> It's all about the liscenses. Take a look around the programming world and 
> look
> at the most active developer communities -- the Linux kernel, the Apache
> project, the Eclipse project. Each one of these communities shares one 
> startling
> thing in common: they are all, from front to back, from first line to 
> last, open
> source. Please, focus on this point, because I cannot stress enough the
> importance of what this kind of community support can do for a language 
> (PHP, as
> people have noted, went from a poor backwater to an IBM flagship in a 
> matter of
> 3 years through just this same kind of open source initiative). The 
> problem with
> D, as I see it, is the ambiguous and somewhat offputting liscensing terms 
> of the
> D libraries and compilers.
>
> One of the things that I think a lot of people miss about these open 
> source
> projects -- where their strength really lies -- is their appeal to those 
> kinds
> of people that adopt whole heartedly the notion of freedom. Freedom to do 
> what
> you want when you want with the source code that you have. This kind of 
> freedom
> appeals to a huge mass of hackers out there -- hackers who have learned 
> and
> weaned themselves on the open source projects of Linux, GNU, and Apache. I 
> think
> that's something that most people coming from the Windows side miss when
> thinking about this issue. Microsoft, whatever your opinion of it, has 
> trained a
> raft of people into beleiving that the only way you make money on 
> something is
> by keeping everything to yourself and trying to kill your opponent through
> technical starvation. It has led to a 'race condition', if you will, where
> everyone wants access but everybody has to wait for the BigGuy to say it's 
> ok. I
> think that the point of the D language should be instead to spread it as 
> much as
> possible, as freely as possible, to everyone, so that they can see for
> themselves how great it really is.
>
> Don't get me wrong -- I don't necessarily hate Microsoft -- but I do think 
> that
> a lot of people who use Microsoft have been bamboozled into thinking that 
> the
> only way that they're going to acheive commercial success is by assuring
> everyone that you're working with that everything will remain strictly
> confidential. Secrecy and the ability to deny innovation become the order 
> of the
> day. I would merely like to point out that companies like RedHat and 
> Novell, who
> have clearly adopted the OSI/FSF mentality, are thriving companies, not 
> least of
> all because they acknowledge that sharing is by far the quickest route to
> success.
>
> Arrow Third: Solidarity and conformance.
>
> Part of any projects success is it's ability to institude order among a 
> chaotic
> group of competing individuals and ideals. This is no less true in D, 
> where a
> number of libraries have developed vague interdependancies and marginal or
> somewhat disparate coding methodologies. One of the successes of many 
> projects
> can be linked back to their development to a uniform interface to outside
> consumers. Take Ruby as an example. Initially, it wasn't a very successful
> language, on the whole. It struggled in relative obscurity for nearly 7 
> years
> before books and articles started to be written about it. Then, all of a 
> sudden,
> it seemed like, something shifted and the community started to amass new
> members, contributions increased, and it managed to get over the 
> versioning hump
> into 1.8. How can we explain this success? There are a number of 
> explanations, I
> believe, but the one that I think speaks best to D's current situation is 
> it's
> development of coherent documentation and coding style guidelines. Look at 
> the
> Ruby specification for 1.6, and then look at it for 1.8. If you notice 
> anything,
> you should notice that the technical guidelines for what was and was not
> acceptable coding style became clear -- in essence, language purists began
> exercising control over not only the development but the day-to-day use of 
> the
> language. Perlisms began to gradually drop out of the language, to be 
> replaced
> with more 'idomatic ruby' (i.e., generators and iterators). Also, the 
> coding of
> documentation went through the roof -- take a look at www.ruby-doc.org and 
> see
> what proper documentation of methods actually looks like. They have 
> everything
> that a person could need -- not only an API and documentation, but 
> EXAMPLES OF
> USAGE that make how to use the API absolutely clear. Hard as I try, I 
> can't
> really say that I've seen the same in D. (For the record, you should also 
> note
> Python, started out as a teaching language, and had from the beginning 
> excellent
> documentation and EXAMPLES of usage, examples which only got better and 
> more
> advanced as the libraries themselves were refined.) Now, all of this isn't 
> to
> say that you should write a dozen tutorials per method when you're writing
> classes, but there needs to be a quick and coherent way to organize your
> information so that other people have more than just method declarations 
> to use.
> This leads me to my biggest and most overarching concern as to why D will 
> never
> take off as a language -- nobody knows how to write good documentation. 
> And it
> doesn't help that the D documentation guidelines aren't that good. 
> Frankly, it
> should be much clearer what constitutes a comment and what doesn't -- as 
> well as
> what should be included where when creating documentation files. The whole 
> hash
> pair of "XXX: xxx" doesn't really work for me -- or for a lexical parser 
> in
> creating complex and properly formatted documents, really. If you want to 
> make D
> a more palatable language, it's time that it grow up a little and start
> accepting the complexities of coding 'in the round', as it were. We need 
> to
> embrace the Unicode roots of D source files and begin to plan for XML 
> document
> creation. We need to find/create a parser that will work on XML-D 
> documents and
> create the appropriate documentation -- be they xhtml docs, pdfs, dvis --
> whatever. D needs to learn the cardinal rule of building a language 
> library: if
> people can't understand and easily assimilate exactly what it is you want 
> to do,
> they're not going to care.
>
> Exclamation Solutions:
> I would like to get involved in the D community in developing the tools 
> that
> will make D a truly great language. To make that possible, however, we 
> need to
> add a centralizing force and focus to the disparate goals of the project. 
> First,
> we need to design some kind of mission statement -- something that 
> uniquely
> defines our goals as a community and as a group of programmers devoted to 
> making
> D a better language for everyone to use. Second, we need to decide on some 
> goals
> -- goals that will help us realize our mission by making it easer for 
> people to
> come to D from other languages (or even there first language!). Third, we 
> need
> to organize ourselves into groups that can work on aspects of the mission 
> and
> can communicate easily to one another. This means that we need redundancy 
> in
> projects (so that if someone leaves, someone else can take over),
> democratization across the group (so that API's and tools can have 
> community
> input), and distributied responsibilites for all members (so that each 
> person
> feels that they belong through to the group -- not merely because they say 
> they
> do, but because they have earned the respect and the trust of their fellow
> members). In short, D should be a language where the community that bands 
> around
> it is one of openness, respect, and excited collaboration.
>
> I would like to post some more ideas about this, and I'd like to start
> organizing those people who are interested in joining together. I'd like 
> to hear
> back from the community about this. I'd like to hear back from people 
> excited
> about making D the best possible language it can be -- and making 
> programming in
> D an absolute joy.
>
> I look forward to hearing from you!
> _________________
> New to the land of D, but I like the look of the place.
> -Gabe
>
> 





More information about the Digitalmars-d mailing list