> > IMHO not fair. They worked on it voluntarily while they also used it at
> > work. And they deserve credit for that volunteer work.
>
> Not a criticism, just an observation. One developer quoted an hourly wage
> to rewrite, and one user donated a noticeable amount of cash. That was in
> later years, when things were already stagnant. But it was still never
> integrated properly into GCC because they couldn't maintain their work
> in-tree (for whatever reason) and couldn't deal with the various backend
> bugs nor the tedious kludges needed to work in C (apparently).
Well, they were amateur (the GPC maintenance, not their usage in the company), while after 2000 GCC mostly had commercial. Still I never understood why GPC didn't centralize development more, had a VCS, a bug tracker etc.
> I don't know, honestly. It was a cool compiler with good dialect support,
> but it just was too brittle, I suppose. (I had it installed [DJGPP version,
> of course] on XP in 2005 before I even knew what to do with it.)
I actually tried GPC before FPC in 1997ish. Release were already old, couldn't get it to work reliably, non clear pointers on development versions, so I ended up with FPC.
> N.B. "m o n e y" is a dirty word, according to this forum software,
> literally.
Hehe. Well, we temporily banned the whole of China because of one bot, so I'd better not cast the first stone
> > > I did see one guy from .nl (SARC?) "privately" migrated from
> > > Extended Pascal (Prospero, not GPC) to D. I don't really blame him,
> > > I know it can get complicated, but his attempts to use FPC and Ada
> > > didn't pan out
> >
> > Strange post, his demands are weird, and many have no or few details.
> > Comparing GCed to non GC languages is IMHO apples and oranges anyway,
> and
> > it heavily depends on intended application.
>
> He seemed to have his reasons. I don't second-guess him too badly. Still,
> you would think that FPC or Ada would at least be halfway home, but maybe
> not. D seems farther away, but I guess it's not impossibly far.
I do second guess him. If the closest languages were not easy, you'd expect him to go with something mainstream, like Java/C# etc. GO,Rust,Python if need be.
But he ends up with D. He *chooses* from his dead-end minority Pascal compiler (and then I take Delphi as the majority one, not FPC) to rewrite in another boutique language.
I don't buy that, and to buy that he needs some very, very solid reasons. And what he produces is an amateur evaluation of languages that I could have regurgitated in 1998 in my sleep. No, no benefit of the doubt there.
His evaluation does push enormous "alarm" buttons in my mind because it is solely focused on language. Maybe this is because it is an engineering firm (and his apps are mostly calculating). But half of the his language arguments are about general application code, not purely calculating one. (like the safe pointers bit)
This is what me forces to reject this post. IMHO it is political.
> D can minimize (or "mostly" eliminate) GC usage, AFAIK, and the runtime
> library has been rewritten to avoid it sometimes. So it's not that bad.
I only saw fragments of this, never whole application examples. This might be fine if you are coding a isolated codec plugin in a DLL in D, but is it really relevant for application development in D as advertised?
> Besides, there are different kinds of GC, so they aren't all the same (or
> slow, buggy).
Afaik the D website itself says it is the worst "stop all threads with a global GC lock" kind. So that is not up for discussion.
> Don't forget that Oberon (usually, but not always) has GC,
Yes. Don't forget how far Oberon got. Exactly.
> too. Even Ada was supposedly designed to optionally support it.
Yes. Delphi was heavily modified also (a brief spell of Delphi.NET). But while it worked, it was more a special cases thing (and in Ada's case, to steer it past certain US military requirements), not something to desire for your every day.
> > Usually such tradeoffs are driven in the direction the main guy wants
> > anyway. It is usaully more about finding justification than to really
> > measure the various languages. More importantly, I complete miss other
> > aspects than language (libraries, target concerns, IDE, gui etc etc),
> which
> > is another sign it is crafted for a specific audience when the decision
> > already had effectively been made.
>
> I don't think he made the decision by himself. Rather, it seems he
> consulted with the company hierarchy itself first.
This looks like a one person document to me. I don't know if it is of his hand, or from the person who proclaimed D. I also miss all other majority languages in the comparison. I can't really believe something like this (and as far reaching as moving from a non-gc to gced language) is based on a 10 point language comparison.
One might as well toss a coin.
> > In my case D being GCed would earn a -50. Useless.
>
> Lua also has GC, but it's written in C.
Yeah, so no Lua for me. Point?
> Mark and sweep?? I dunno, but it
> varies by implementation. However, you do have a point. I remember reading
> that Modula-3's [sic] biggest portability problem was its GC, by far. (You
> know, FreeBSD's cvsup was written in it, I think.)
I know. I actually volunteered to look at it, in the hope of maintaining it.
And no, it was not the GC I think (since CVSUP is mostly a batch problem, a simple solution was simply be to never release memory, and try to handle some of the larger blocks manually.
The problem was simply the same that we have discussed here on this forum many times. The issue of no maintainership for extended periods of time (I think back then it was 2006 or 2007, and maintainerless since the mid to late nineties except for emergency fixes by ports@)
> GC is not perfect by any means, and I don't know enough to even pretend to
> advocate for it. But it's not (necessarily) the end of the world either.
No, it is "stop the world" :_)
Of course it is not the end of the world. But it is the end of the world for the category that is measured here. You might as well migrate to C# or Java then. So why aren't these in the list? He says himself that source-to-source conversion is not the problem. So why is the ugly duckling D suddenly the knight in shining armour?
For me, I'm in realtime image analysis, and many GCs feature a global lock that simply paralyses the application. So at the very least that would mean separating the codebase into two parts, e.g. a C++ part that does the main analysis and the more loosely coupled GUI part on top of it in "any" language.
> (You know, even
> C++ didn't have exceptions until much later, IIRC roughly AT&T 3.0
> [1990??].)
I've no idea. I didn't really consider C++ much before say late nineties. While I was aware of it, the subject was more the unique principles of Cfront rather than the language itself.
But the core difference is that exceptions only affect the current thread. It doesn't block another thread trying to allocate memory. (and usually the cost is also a magnitude less)
> > Browsed through it. Mostly same content as 2003. See that the M2 R10
> stuff
> > is also dead. (not that sad about it, IMHO it was a bit too baroque)
>
> R10 just simplified a bit, made it more Oberon-like (type extension, no
> variant records, IIRC).
Yes. Exactly that. It went from the System programming language that M2 was to be to the academic experiments that came after it. Useless. Oberon has been an interesting experiment (and doubly so because it was actually implemented), but nearly unusable for anything real.
Also most of the extensions seemed to be because of some strange desire to make M2 relevant for application development (as underpinning of the mythical objective M2). Which was, let's be honest, a whole delta worth of bridges too far.
IMHO it stood a better chance focussing on embedded, close to the machine. No world domination aspirations, just solid design and engineering.
> Still, I like Oberon a lot
I like Oberon like a small exe. Fun to see that a small grammar is possible, now let's take something else and get real work done.
> Long story short, I'm still sympathetic to ISO Modula-2 and Oberon-07 and
> whatever else (FPC/TP, of course). But it's like a weird halfway between
> two sides, even though neither will win.
Well, ISO M2 is mostly after my time (in my time it was more PIM3 vs PIM4), but it didn't seem as bad as you make it out to be. Oberon is IMHO in a totally different direction, and I don't see the synergy to be honest. |