November 10, 2004 Re: D is dying | ||||
---|---|---|---|---|
| ||||
Posted in reply to wisefriend | Out of curiosity, any idea why Python succeeded where Modula 3 failed? I just took a glance at the Modula 3 spec, but the languages seem vaguely similar. Sean |
November 10, 2004 Re: D is dying | ||||
---|---|---|---|---|
| ||||
Posted in reply to Sean Kelly | In article <cmtqao$2uo8$1@digitaldaemon.com>, Sean Kelly says... > >Out of curiosity, any idea why Python succeeded where Modula 3 failed? I just took a glance at the Modula 3 spec, but the languages seem vaguely similar. > Modula source code looks uggly. Ant |
November 10, 2004 Re: D is dying | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ilya Minkov | Ilya Minkov wrote:
> In article <cmsc3r$kko$1@digitaldaemon.com>, xjc says...
>
>>Hope this would not happen. It is sad that many beautiful languages indeed
>>became toys.
>
>
> Rather disappeared. See Sather.
> ...
> -eye
>
>
I never did figure out just what happened to Sather. It seemed to just evaporate. My wild guess was that it was a computer science department project, and those involved got their respective degrees. (Doctor of Sather? Unlikely...but plausibly essentially true except for the wording.) One time I was looking at it, and figuring that I'd give it a look as soon as I was done looking at Eiffel. The next time I looked the site was shut down. Appearantly it's had periodic revivals, but I've never been looking at the right time.
So I don't even know whether it was a decent language. Just that it's never been active when I was looking.
|
November 10, 2004 Re: D is dying | ||||
---|---|---|---|---|
| ||||
Posted in reply to Sjoerd van Leent | Sjoerd van Leent wrote:
> wisefriend@hotmail.cx wrote:
> ...
> But look at the mailing list, look at CUJ, look around on www.dsource.org or some other site. Do you see D is failing, I don't.
>
> Regards to the community (and by far not to our so called friend),
> Sjoerd
D isn't failing, but it isn't succeeding as well as I would hope. Partially this is inevitable, one always tends to raise ones hopes too high, but partially...
One thing that is badly needed is a lot more example code. Examples for every feature of the language, and how it could be used. And... there are things that might be possible, but I can't tell, and can't quite figure out how one should approach trying. Like an associative array with shorts (or ulongs) for index values...a sparse array. It could be used, e.g., as an array that holds selected blocks from a disk file. (With a slightly more complex data structure, it could be useful in implementing a B+Tree.) I keep feeling it OUGHT to be possible, but not being able to figure out how one would declare it. (N.B.: This isn't the memory-mapped file that's in phobos. That one sometimes [when?] needs to all fit into memory, this one would never have more than some selected number of blocks in memory at once. And you can't slice it.)
I'm convinced that there's *something* wrong with D, but I haven't been able to pin down exactly what it is. I know that it has to do with the fact that types in D are, must be, determined at compile time. This makes certain language constructs either impossible, or quite clumsy.
Recently I tryed creating a type called DskAddr, thus:
typedef ulong DskAddr;
This looks quite reasonable, but there's no way to do automatic conversions of ulong's to DskAddrs. This means that all of the system routines that I might want to use would either need to be rewritten, or.... well, I could render the code hideous with casts, or I could abandon the typedef. If I tried to do:
dskAddr += 1020;
it didn't work. If I tried instead
dskAddr += cast(DskAddr)1020;
it also didn't work. (Something about illegal l-values.) I'm sure there are ways around this, but it's excessively clumsy, and just WHAT the proper way around it is isn't obvious. So I basically just went back and ripped out all of the typedefs.
(Actually, I don't remember the precise details...those are merely the approximate statements that were causing the problem, which I never have understood. But the result was that I gave up on using typedefs in the way I would with Ada.)
I do understand the reasons that many of the choices were made, and I really appreciate garbage collection (and don't understand why it isn't going to be a part of Ada2005), but ...
Well, D isn't designed to suite my tailored needs. And it seems better than Java. But it sure would be nice to be able to marshall and unmarshall objects, and to do run-time tests to determine whether or not some particular method was supported by the object (i.e., to not need to know ahead of time what kind of object one was unmarshalling). I suppose that what I'm wishing for here is a language that is to D as Python is to Pyrex, and I've avoided Pyrex because it looked as if there was just too much overhead. So I may well be wishing for something impossible.
|
November 11, 2004 Re: D is dying | ||||
---|---|---|---|---|
| ||||
Posted in reply to Charles Hixson | In article <cmu97b$ik0$1@digitaldaemon.com>, Charles Hixson says... > >Recently I tryed creating a type called DskAddr, thus: > >typedef ulong DskAddr; > >This looks quite reasonable, but there's no way to do automatic conversions of ulong's to DskAddrs. Try using alias instead of typedef Sean |
November 11, 2004 Re: D is dying | ||||
---|---|---|---|---|
| ||||
Posted in reply to Charles Hixson | In article <cmu97b$ik0$1@digitaldaemon.com>, Charles Hixson says... > >or I could abandon the typedef. If I tried to do: > dskAddr += 1020; >it didn't work. If I tried instead > dskAddr += cast(DskAddr)1020; >it also didn't work. (Something about illegal l-values.) By the way, I think typedef is either partially broken or it has some odd usage requirements. I ran into a similar problem with a class I'd typedef'd--the compiler didn't recognize the new symbol as a class type. I submitted a bug report about this this morning. Sean |
November 11, 2004 OT: Sather Re: D is dying | ||||
---|---|---|---|---|
| ||||
Posted in reply to Charles Hixson | Charles Hixson schrieb: > I never did figure out just what happened to Sather. It seemed to just evaporate. My wild guess was that it was a computer science department project, and those involved got their respective degrees. (Doctor of Sather? Unlikely...but plausibly essentially true except for the Here are explainations from the last maintainers: http://lists.gnu.org/archive/html/info-sather/2002-04/msg00022.html http://lists.gnu.org/archive/html/info-sather/2002-04/msg00026.html Why do we nerds always ruin our health? I heard, my brother-in-law, whom i barely know, but i believe he is much more talented than myself, has almost become disabled - he only has strength enough fot 1 or 2 hours of mental activity a day, let alone any physical activity. He should be at the age of slightly above 25 at the moment. The old page and the messages above mention one name which rings the bell - Norbert Nemec, who has apparently taken over the language as it was loosing its original creators and maintainers - probably for indeed a sort of the reason you mention. BTW, Norbert seems to live less than 200 km away from me. A handshaking trip is a must! :> I paste here last valid mailing list threads for future reference: http://lists.gnu.org/archive/html/info-sather/2003-01/threads.html http://lists.gnu.org/archive/html/info-sather/2002-12/threads.html http://lists.gnu.org/archive/html/info-sather/2002-11/threads.html http://lists.gnu.org/archive/html/info-sather/2002-04/threads.html http://lists.gnu.org/archive/html/info-sather/2001-07/threads.html From old messages it also appears that compiler became unmaintainable and was due to be rewritten. A similar rewrite to the library had almost been completed. > wording.) One time I was looking at it, and figuring that I'd give it a look as soon as I was done looking at Eiffel. The next time I looked the site was shut down. Appearantly it's had periodic revivals, but I've never been looking at the right time. 1.2 beta was the last one before Sather changed hands. 1.3 beta is the last traceable piece and dates back to end 2000 - early 2001. > So I don't even know whether it was a decent language. Just that it's never been active when I was looking. It is like angels singing in heaven. Purest harmony. :) Which, unfortunately, does't mean that it would be practical to use, because of issues and lack of libraries - D seems much better equipped already. -eye [np: Angelzoom - Guardian Angel] Coincidence? |
November 11, 2004 Re: D is dying | ||||
---|---|---|---|---|
| ||||
Posted in reply to Sean Kelly | Sean Kelly wrote:
> In article <cmu97b$ik0$1@digitaldaemon.com>, Charles Hixson says...
>
>>o... l-values.)
> By the way, I think typedef is either partially broken or it has some odd usage
> requirements. I ran into a similar problem with a class I'd typedef'd--the
> compiler didn't recognize the new symbol as a class type. I submitted a bug
> report about this this morning. Sean
OK. That one's a bug. But *CAN* an associative array be declared with integral indexes? Or does one need to reimplement a hashtable class? I suspect the latter, but I can't really tell.
The documentation is a lot better than that of many languages, but I keep running into places where it seems that things that ought to be possible probably aren't (without, e.g., re-implementing most of the existing functionality with a few changes). But it's not really clear that they aren't possible. But it's also not clear how to do them (if they are possible).
In the particular case of sparse arrays, this may be inherrent in using the same syntax for two different things...but perhaps I just haven't figured out how to declare things properly.
Other places where problems like this occur are things like specifying interfaces with template parameters. I'm fairly certain that that one is, or ought to be, possible, but when I tried I could get the compiler to accept the interface declaration, but I couldn't figure out how to use it with a class. So that's one I'm fairly certain is possible, or intended to be possible, to use with the language.
Another thing is how to specify an interface that's dependant on two other interfaces (where both are templates). I seem to be quite confused about template usage, though I've read the section several times. I want the specification to insist that certain of the inherited template values are identical (say, both are ulongs) even though they're in different templates. So I would need to have the template parameter of the current template define the arguments for instantiation of the interface-templates that I'm inheiriting from. (I can't really say implementing...this is, after all, an interface.)
Also, I feel like I should be able to submit a comment about unclarity of documentation when I encounter it, but the only place that I've discovered to do this is this mailing list. And that really isn't a good place, as it is relatively high volume, and not specific to the point. So messages tend to be both ignored and lost. (Someone might tell me how to get around a problem, but if what I'm trying to do is get the documentation ammended, that's not to the point.)
|
November 11, 2004 Re: D is dying | ||||
---|---|---|---|---|
| ||||
Posted in reply to Charles Hixson | Charles Hixson wrote:
> ...
> OK. That one's a bug. But *CAN* an associative array be declared with integral indexes? Or does one need to reimplement a hashtable class? I suspect the latter, but I can't really tell.
> ...
I've checked again, and no, it can't. The index to an associative array must be a char[]. (I probably won't remember this, because I keep WANTING to use integral indexes. Until I finally give up and write a hashtable that can be used.) So that one's not a documentation problem, but rather the language not working the way I want it to. (Sigh. They ALL do that!)
Well, a hashtable won't really work, it will need to be an AVL tree or some such. I think I've seen one around, but it doesn't seem to be a part of the standard library, and I don't know if it's a template... This is probably a standard part of a language's growing pains. But I *DO* feel that the basic data structures should be a part of the standard library, if they aren't built in. (I suppose that's what the dtl is about...)
|
November 11, 2004 Re: D is dying | ||||
---|---|---|---|---|
| ||||
Posted in reply to Charles Hixson | On Wed, 10 Nov 2004 18:22:19 -0800, Charles Hixson wrote: > Charles Hixson wrote: >> ... >> OK. That one's a bug. But *CAN* an associative array be declared with >> integral indexes? Or does one need to reimplement a hashtable class? I >> suspect the latter, you suspect wrong. >> but I can't really tell. now you can. >> ... > I've checked again, and no, it can't. The index to an associative array must be a char[]. ??????? do I not understant what you say? consider the program and output: ############ import std.stdio; char[][int] aa; int[char] bb; void main() { aa[1] = "one"; aa[2] = "two"; aa[-1] = "eno"; aa[-2] = "owt"; for(int i = -3 ; i<=3 ; i++ ) { if ( i in aa ) { writefln("aa[%d] = %s", i,aa[i]); } else { writefln("%d no in aa", i); } } bb['a'] = 1; bb['b'] = 2; for( char c = 'a' ; c<'h' ; c++) { if ( c in bb ) { writefln("bb['%s'] = %d", c,bb[c]); } else { writefln("'%s' not in bb", c); } } } ############ -3 no in aa aa[-2] = owt aa[-1] = eno 0 no in aa aa[1] = one aa[2] = two 3 no in aa bb['a'] = 1 bb['b'] = 2 'c' not in bb 'd' not in bb 'e' not in bb 'f' not in bb 'g' not in bb ############ I use objects all the time Ant |
Copyright © 1999-2021 by the D Language Foundation