From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-0.9 required=5.0 tests=BAYES_00,FORGED_GMAIL_RCVD, FREEMAIL_FROM,T_FILL_THIS_FORM_SHORT autolearn=no autolearn_force=no version=3.4.4 X-Google-Thread: a07f3367d7,dea2d62ab1462538 X-Google-Attributes: gida07f3367d7,public,usenet X-Google-NewGroupId: yes X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!postnews.google.com!g1g2000yqi.googlegroups.com!not-for-mail From: Shark8 Newsgroups: comp.lang.ada Subject: Re: Writing an Operating System in Ada Date: Tue, 19 Jan 2010 10:58:23 -0800 (PST) Organization: http://groups.google.com Message-ID: <8eb51ea9-fd68-4427-9ae5-c64f789c9e43@g1g2000yqi.googlegroups.com> References: <8e9bc311-7540-40a1-b19e-49e93648c25c@s31g2000yqs.googlegroups.com> <9oyblld05omh$.1dzhmyoseeb7x$.dlg@40tude.net> <414945fd-8ed5-4f42-a237-0685602332b3@f5g2000yqh.googlegroups.com> <1c1x49re1atv3$.kxickttntzsn$.dlg@40tude.net> NNTP-Posting-Host: 75.161.1.171 Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 X-Trace: posting.google.com 1263927503 19445 127.0.0.1 (19 Jan 2010 18:58:23 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Tue, 19 Jan 2010 18:58:23 +0000 (UTC) Complaints-To: groups-abuse@google.com Injection-Info: g1g2000yqi.googlegroups.com; posting-host=75.161.1.171; posting-account=lJ3JNwoAAAAQfH3VV9vttJLkThaxtTfC User-Agent: G2/1.0 X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.1.7) Gecko/20091221 Firefox/3.5.7 (.NET CLR 4.0.20506),gzip(gfe),gzip(gfe) Xref: g2news1.google.com comp.lang.ada:8796 Date: 2010-01-19T10:58:23-08:00 List-Id: > > But that does remind me, I was thinking it would be good to have > > PostScript as the display for the OS, unifying the visual display that > > way it would eliminate the need for printer drivers (assuming they're > > postscript printers) as well as providing a true WYSIWYG for print- > > preview (MS's print preview can be a bit... inaccurate), right? > > Right, but in an OO system you would barely need PostScript. I doubt > anybody would like to program in PostScript, so what is left? Poor as a > data carrier, unusable for humans. Doesn't it remind something? XML? (:-)) So, what's wrong with it being used as a data-carrier? Like I mentioned before, it would be a nice uniform (and incidentally hardware-independent) data-carrier. It's not unfeasible to assume that it would make for some good low-bandwidth remote-UI as well, as opposed to X where the whole display is sent at every update (like a mouse-move/cursor-redraw update). And that it would be "unusable for humans" is a bit of a red-herring; X's data-link is even MORE unusable for humans and yet it is a fairly popular method for remote-desktop. > >> There shall be no interfaces at all. Ada 95 had everything needed, i.e. > >> abstract types. Introducing interfaces in Ada 2005 was a huge mistake. > > > Why do you say that? > > Because there should be a honest MI and no interfaces. What do you think of [Delphi-style] properties then? Basically they're an specification of some [virtual] field of an object [with indicators of it being readable and/or writable] that may either be renaming some internal field OR the appropriate getter/setter for a field in the implementation. I rather like the idea because it doesn't pollute the object-space with so many [publicly visible] getter/setter methods. Just to make sure there's no misunderstanding of what I'm referring to, here's the Delphi code for some person: Type TPerson = class private FFName, FMName, FLName : ShortString; {Internal Fields for first, middle, and last names.} FAge : Byte; Function FullName: String; Procedure Set_FName( Value: ShortString ); {Setter for fires name.} Procedure Set_FLame( Value: ShortString ); public Name : String read FullName; {Military Format; ex: Smith, John Q. } First_Name : ShortString read FFName write Set_FName; {Setter disallows zero-length first names.} Middle_Name : ShortString read FMName write FMName; {Zero- length middle names are allowed. } Last_Name : ShortString read FLName write Set_LName; {Setter disallows zero-length last names. } Age : Byte write FAge; {Write-only for this application/object...} end; {TPerson} IMPLEMENTATION Procedure TPerson.Set_FName( Value: ShortString ); begin IF Length(Value) > 0 THEN FFName:= Value; end; Procedure TPerson.Set_FLame( Value: ShortString ); begin IF Length(Value) > 0 THEN FLName:= Value; end; Function FullName: String; Middle_Initial : Character:= #000; {Null initial-value} begin IF Length(FMName) > 0 THEN Middle_Initial:= FMName[1]; {Get First Character.} FullName:= Last_Name + ', ' + First_Name + ' ' + Middle_Initial end;