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=-1.9 required=5.0 tests=BAYES_00 autolearn=unavailable autolearn_force=no version=3.4.4 X-Received: by 2002:a02:2549:: with SMTP id g70-v6mr4437808jag.54.1531574845967; Sat, 14 Jul 2018 06:27:25 -0700 (PDT) X-Received: by 2002:aca:4787:: with SMTP id u129-v6mr2007915oia.4.1531574845781; Sat, 14 Jul 2018 06:27:25 -0700 (PDT) Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!feeder.eternal-september.org!news.unit0.net!takemy.news.telefonica.de!telefonica.de!newsfeed.xs4all.nl!newsfeed9.news.xs4all.nl!85.12.16.69.MISMATCH!peer02.ams1!peer.ams1.xlned.com!news.xlned.com!peer02.am4!peer.am4.highwinds-media.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!d7-v6no3480982itj.0!news-out.google.com!l67-v6ni3813itl.0!nntp.google.com!d7-v6no3480980itj.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: comp.lang.ada Date: Sat, 14 Jul 2018 06:27:25 -0700 (PDT) In-Reply-To: <821c650e-72ae-4bd1-97a4-3a9bd7433d48@googlegroups.com> Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=47.185.195.62; posting-account=zwxLlwoAAAChLBU7oraRzNDnqQYkYbpo NNTP-Posting-Host: 47.185.195.62 References: <1d3743b1-1a36-429d-92c7-9ae0e7c16e63@googlegroups.com> <8cf99886-bbf2-4fb9-9a92-aaa5403a2624@googlegroups.com> <821c650e-72ae-4bd1-97a4-3a9bd7433d48@googlegroups.com> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <3ac8b674-b05d-482f-8e43-9bb21f28825e@googlegroups.com> Subject: Re: Ada: A beginners experience From: "Dan'l Miller" Injection-Date: Sat, 14 Jul 2018 13:27:25 +0000 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Received-Bytes: 5679 X-Received-Body-CRC: 1139641451 Xref: reader02.eternal-september.org comp.lang.ada:53803 Date: 2018-07-14T06:27:25-07:00 List-Id: On Friday, July 13, 2018 at 10:53:15 PM UTC-5, blakemi...@gmail.com wrote: > On Saturday, July 14, 2018 at 10:53:02 AM UTC+8, Dan'l Miller wrote: > > On Friday, July 13, 2018 at 9:36:32 PM UTC-5, blakemi...@gmail.com wrot= e: > > > At the moment I spend too much time trying understand how to make my = tools work, and not enough time > > > using my tools.=20 > >=20 > > Specifically what do you mean by =E2=80=9Cmake the tools work=E2=80=9D?= Do you spend > > 1) more time tweaking the command-line and build scripts and surroundin= g ecosystem, as getting exasperated trying to get the toolchain to work tog= ether (almost independent of Ada-the-language-per-se)=20 > > or > > 2) more time having lengthy errors/warnings-from-compiler conversations= with the GNAT compiler about Ada source code, as cycles of learning of lea= rning Ada itself? >=20 > The first of the two options, well at least most of the time. An example = of the entry barrier level is the Inspirel tutorials for Ada on the Cortex-= M. I have tried many times to make this work, but so far I have had no luck= . (The author posts here so I will add that I have still learnt a lot from = the tutorial). This is the only beginner style tutorial that I have found, = but I have run into trouble with it. > I have been able to get lights blinking on a STM32F4discovery board usin= g the GPL-2018-community release and I am working my way through the code t= o truely understand it. I've been able to get some external leds flashing s= o I am having some success along the way.=20 > I don't mind the compiler telling me off, and correcting my mistakes but= fighting the toolchain, and even trying to understand the toolchain comple= tely is hard going. > I am determined to understand how it all works, and learning to deal wit= h problems of building software and board support packages may simply come = with the territory. But some clear documentation that doesn't make assumpti= ons about prior knowledge would also help. >=20 > Mike Blake I figured that might be what you mean, because it is perennially my obstacl= e whenever learning new languages. On one hand, the Ada community & compiler vendors shouldn't just stop at gi= ving advice (e.g., via c.l.a; StackOverflow) and at teaching (e.g., books, = Ada Gems). https://github.com/Microsoft/Windows-iotcore-samples The Ada community & compiler vendors should take a page from, say, Microsof= t's culture to put a generous amount of well-collected/organized examples* = for various single-focus use-cases. What is most excellent about Microsoft= 's approach to this in particular is that they give the entire solution fil= e (and project file) that is a canned set-up of the entire ecosystem that i= s guaranteed to work for a specific version of their toolchain. Ada commun= ity & compiler vendors would do well to mimic all that to the Nth degree. (Alex Gamper's integration of GNAT into Visual Studio should directly benef= it from being part of these solution files for Microsoft-OS targets. Licen= se permitting, eventually one could envision a usecase-by-usecase translite= ration of each of the numerous C++/CX, C++/WinRT, C# Microsoft-authored sam= ples in GitHub to Ada-WinRT. Despite people sometimes avoiding Microsoft, = Alex Gamper's work is likely to eventually attract & deeply/widely teach Ad= a in a very accessible way to a entirely untapped new audience. Much the s= ame could be done for other OSes.) * Unfortunately, Microsoft uses the word =E2=80=A2samples=E2=80=A2 (instead= of the more-correct =E2=80=A2examples=E2=80=A2), as if a statistician is p= ulling a few random manufactured goods going by on the assembly line as a q= uality check. On the other hand, Ada compiler vendors should be extra diligent in making = their toolchain easy to quickly & obviously configure in the top 5 dozen co= mmonplace usecases without consulting the incantations in a semisecret book= of magic spells that only a few magicians have. (Even Microsoft doesn't d= o a good job at all on this variant: there is no set of =E2=80=9Csamples= =E2=80=9D on GitHub regarding how to tweak their build scripts in dozens of= different usecase ways.)