Hello. At FOSDEM, my colleague Thomas Maluszycki gave a talk[1] about rapid application development in Ada. This made me think. You see, I have a 14-year-old son whom I teach programming to. He is lukewarm about it but I think it is my duty as a parent to give him basic education in this field, as computers are already everywhere and will probably govern his live even more than ours. So I played with him with Colobot[2], taught him a little bit of Ada (with the French translation of Barnes' book for Ada 95), a little bit of ZX Spectrum BASIC, and now he's writing a Pong clone with the LÖVE framework[3], in Lua[4]. This framework makes it very easy to have immediate results... but Lua lacks strong typing and in particular range checking, and a debugger. So it occurred to me that LÖVE is really a Lua binding to SDL plus a predefined event loop, and that it would be quite easy to do something similar based on the sdlada thick binding. The goal would be to attract teenage programmers to the language and to programming in general. Possibly on a Raspberry Pi. I'd be willing to make a Debian package for it. What do you think? [1] https://fosdem.org/2020/schedule/event/ada_rad/ [2] http://colobot.info/ [3] http://love2d.org/ [4] https://www.lua.org/ -- Ludovic Brenta. The partners leverage consumer-facing potentials.
On Saturday, February 8, 2020 at 5:41:01 AM UTC-6, Ludovic Brenta wrote:
> Hello.
>
> At FOSDEM, my colleague Thomas Maluszycki gave a talk[1] about rapid
> application development in Ada. This made me think. You see, I have a
> 14-year-old son whom I teach programming to. He is lukewarm about it
> but I think it is my duty as a parent to give him basic education in
> this field, as computers are already everywhere and will probably govern
> his live even more than ours. So I played with him with Colobot[2],
> taught him a little bit of Ada (with the French translation of Barnes'
> book for Ada 95), a little bit of ZX Spectrum BASIC, and now he's
> writing a Pong clone with the LÖVE framework[3], in Lua[4]. This
> framework makes it very easy to have immediate results... but Lua lacks
> strong typing and in particular range checking, and a debugger.
>
> So it occurred to me that LÖVE is really a Lua binding to SDL plus a
> predefined event loop, and that it would be quite easy to do something
> similar based on the sdlada thick binding. The goal would be to attract
> teenage programmers to the language and to programming in general.
> Possibly on a Raspberry Pi. I'd be willing to make a Debian package for
> it. What do you think?
>
> [1] https://fosdem.org/2020/schedule/event/ada_rad/
> [2] http://colobot.info/
> [3] http://love2d.org/
> [4] https://www.lua.org/
>
> --
> Ludovic Brenta.
> The partners leverage consumer-facing potentials.
Wonderful idea. Go forth & prosper. Consider packaging for as many Linux variants as possible. For example, Chromebooks are ubiquitous in the USA's schools (i.e., the ones that are not still loyal to Apple iPad). Consider every way of rolling the red carpet out to educational institutions' habits & comfort zones (e.g., ChromeOS app) instead of only a hobbyist board for at-home/independent-study/extra-curricular use.
On 2/8/2020 3:40 AM, Ludovic Brenta wrote:
> Hello.
>
> At FOSDEM, my colleague Thomas Maluszycki gave a talk[1] about rapid
> application development in Ada. This made me think. You see, I have a
> 14-year-old son whom I teach programming to. He is lukewarm about it
> but I think it is my duty as a parent to give him basic education in
> this field, as computers are already everywhere and will probably govern
> his live even more than ours. So I played with him with Colobot[2],
> taught him a little bit of Ada (with the French translation of Barnes'
> book for Ada 95), a little bit of ZX Spectrum BASIC, and now he's
> writing a Pong clone with the LÖVE framework[3], in Lua[4]. This
> framework makes it very easy to have immediate results... but Lua lacks
> strong typing and in particular range checking, and a debugger.
>
> So it occurred to me that LÖVE is really a Lua binding to SDL plus a
> predefined event loop, and that it would be quite easy to do something
> similar based on the sdlada thick binding. The goal would be to attract
> teenage programmers to the language and to programming in general.
> Possibly on a Raspberry Pi. I'd be willing to make a Debian package for
> it. What do you think?
>
> [1] https://fosdem.org/2020/schedule/event/ada_rad/
> [2] http://colobot.info/
> [3] http://love2d.org/
> [4] https://www.lua.org/
>
I don't know much about those languages but I was a bit puzzled when I
looked up if GNAT Ada supprts Rasperry a few weeks ago to see that it
only supports an old version. It doesn't seem to be up to date with the
hardware development. No idea if the old version can be used on the
newer boards since I don't own one yet, but that would definitely be a
thing that people would consider.
On the topic of teenage programmers: Although I am not a teenager I am
new to Ada. What is repelling is when you read Barne's book and you
throw up your arms and think: How am I ever going to master all that?!
But I guess what is true for C++ must be true for Ada as well: People
use 20% of the language features 80% of the time. it would be good to
find a way to introduce new programmers using these 20% to start with.
Barne's book is simply overwhelming for the newcommer since it covers
nearly all aspects and you can start out with much less
On Sunday, 9 February 2020 17:34:17 UTC, Rick Newbie wrote: > I don't know much about those languages but I was a bit puzzled when I > looked up if GNAT Ada supprts Rasperry a few weeks ago to see that it > only supports an old version. It doesn't seem to be up to date with the See https://www.raspberrypi.org/downloads/ for up to date OS with up to date GNAT. > On the topic of teenage programmers: Although I am not a teenager I am > new to Ada. What is repelling is when you read Barne's book and you > throw up your arms and think: How am I ever going to master all that?! It's not the best book for learning, but it's fine for people who know previous Ada's. > But I guess what is true for C++ must be true for Ada as well: People > use 20% of the language features 80% of the time. it would be good to > find a way to introduce new programmers using these 20% to start with. > Barne's book is simply overwhelming for the newcommer since it covers > nearly all aspects and you can start out with much less I wouldn't necessarily say that's true for Ada, there are certainly people using quite a lot of Ada features in their projects. Maybe not all, like DSA, but a lot, like OO, aspects, tasking, interfaces, containers, etc.
On 2020-02-09 18:34, Rick Newbie wrote: > I don't know much about those languages but I was a bit puzzled when I > looked up if GNAT Ada supprts Rasperry a few weeks ago to see that it > only supports an old version. It doesn't seem to be up to date with the > hardware development. No idea if the old version can be used on the > newer boards since I don't own one yet, but that would definitely be a > thing that people would consider. GNAT fully supports Raspberry (ARMv7). Debian, Ubuntu, Fedora all have GNAT Ada compiler in their repositories for ARMv7 target. P.S. If you meant rather a barebone ARM. GNAT Pro has support for that too, AFAIK. Though it does not make sense to run such a thing on a Raspberry. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de
Rick Newbie <nuttin@nuttn.nowhere> writes: > On the topic of teenage programmers: Although I am not a teenager I am > new to Ada. What is repelling is when you read Barne's book and you > throw up your arms and think: How am I ever going to master all that?! Even though it is out of date by now, I still like and recommend the free book by John English, "Ada 95: the Craft of Object-Oriented Programming". This is a gentle introduction to Ada as a first programming language and it is not overwhelming. Professionals and die-hard enthusiasts can always learn from the reference manual :) https://www.adaic.org/resources/add_content/docs/craft/html/contents.htm -- Ludovic Brenta. Competitiveness and implementation enable the team players.
On 2/9/2020 11:34 AM, Rick Newbie wrote:
> On the topic of teenage programmers: Although I am not a teenager I am
> new to Ada. What is repelling is when you read Barne's book and you
> throw up your arms and think: How am I ever going to master all that?!
>
One of the reasons a programming language become less popular
is that it becomes more complicated with time.
Look at what happened to C++. Same with Ada. They start
relatively small and simple, and each few years, they update
the standard and add more complication and "advanced" features
so that few could understand it all. This has also happened
to Fortran with addition of OO to it, where it is as complex as
C++ and Ada. Fortran used to be very simple language.
One of the reason why python is so popular (even though I think
it is a horrible language myself) is that it is "simple".
There should be something in between. A simple, yet well designed
and strongly typed language. That is why I liked Pascal the
most of all the languages I programmed in (followed by Ada).
--Nasser
That's actually very true. I have to work in C++ professionally but I always remember the day of Turbo Pascal or Modula-2. Install, run the IDE and ready to go, no fighting about missing libraries or esoteric features. I must admit that I look at some new C++ programs and I don't understand what's going on. Same with forums. Sometimes I browse Stackexchange just for fun and I read questions from people about the behavior of pieces of code that they don't understand and the answers just make me shake my head. Who would have ever thought of that?! When I learned C I had a book about 200 pages. I read that and afterwards I was able to write my first small programs. I don't have the feeling it will be that easy with Ada. In fact I try to keep it simple and get me some exercise by translating some of the games from David Ahl's 1970's book from BASIC to Ada because I think that it is possible to translate those games with the more simple features of Ada to get me going. I think when the language becomes so complicated that you need professional help, not with algorithmic problems but with syntactical questions, it is too bloated. Hence my above remark that you use 20% of the features 80% of the time. I know certain modern features are a blessing, for instance I love Lambdas in C++ because they allow me to put active code in a datatable instead of in a long switch statement, but I could live without it if necessary. If I remember my early teachings correctly you can formulate nearly every problem on a Touring Machine :)
On Monday, February 10, 2020 at 11:05:47 AM UTC+1, Rick Newbie wrote: > That's actually very true. I have to work in C++ professionally but I > always remember the day of Turbo Pascal or Modula-2. Install, run the > IDE and ready to go, no fighting about missing libraries or esoteric > features. Then, LEA is for you: https://sourceforge.net/projects/l-e-a/ NB: it runs without installing. The compiler included has guaranteed less than 20% of Ada features :-). Not completely pure Ada yet (work in progress).
"Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> writes: > P.S. If you meant rather a barebone ARM. GNAT Pro has support for that > too, AFAIK. Though it does not make sense to run such a thing on a > Raspberry. The "Ada and SPARK on ARM Cortex-M" tutorial[1] works best on a Pi, because the native compiler already understands ARM and has an Ada runtime! It requires some work to get a cross-compiler on Windows, other Linux, or Mac to work (can be done, I should write it up) [1] http://www.inspirel.com/articles/Ada_On_Cortex.html
Ludovic Brenta <ludovic@ludovic-brenta.org> writes:
> Rick Newbie <nuttin@nuttn.nowhere> writes:
>> On the topic of teenage programmers: Although I am not a teenager I am
>> new to Ada. What is repelling is when you read Barne's book and you
>> throw up your arms and think: How am I ever going to master all that?!
>
> Even though it is out of date by now, I still like and recommend the
> free book by John English, "Ada 95: the Craft of Object-Oriented
> Programming". This is a gentle introduction to Ada as a first
> programming language and it is not overwhelming. Professionals and
> die-hard enthusiasts can always learn from the reference manual :)
>
> https://www.adaic.org/resources/add_content/docs/craft/html/contents.htm
I strongly support this.
On Saturday, 8 February 2020 11:41:01 UTC, Ludovic Brenta wrote: Dragging this thread back on track... > So it occurred to me that LÖVE is really a Lua binding to SDL plus a I never looked at it before, but knew of it, never knew it was a wrapper around SDL. > predefined event loop, and that it would be quite easy to do something > similar based on the sdlada thick binding. The goal would be to attract Yeah, that would be pretty cool. Any features required, just add a PR. I want to get iterators around Surfaces (old, not really for new projects) and textures (for accelerated 2D and for new stuff). Definitely not having to mess about with OpenGL/Vulkan is a good start. > teenage programmers to the language and to programming in general. > Possibly on a Raspberry Pi. I'd be willing to make a Debian package for > it. What do you think? Sounds good to me. Luke.
On 2/10/2020 2:37 AM, gautier_niouzes@hotmail.com wrote:
> On Monday, February 10, 2020 at 11:05:47 AM UTC+1, Rick Newbie wrote:
>> That's actually very true. I have to work in C++ professionally but I
>> always remember the day of Turbo Pascal or Modula-2. Install, run the
>> IDE and ready to go, no fighting about missing libraries or esoteric
>> features.
>
> Then, LEA is for you:
> https://sourceforge.net/projects/l-e-a/
>
> NB: it runs without installing. The compiler included has guaranteed less than 20% of Ada features :-). Not completely pure Ada yet (work in progress).
>
Thanks I check it out
On 08/02/2020 11:40, Ludovic Brenta wrote: > So it occurred to me that LÖVE is really a Lua binding to SDL plus a > predefined event loop, and that it would be quite easy to do something > similar based on the sdlada thick binding. The goal would be to attract > teenage programmers to the language and to programming in general. > Possibly on a Raspberry Pi. I'd be willing to make a Debian package for > it. What do you think? FWIW, I think it's an excellent idea. One of the most important things for a beginner is being able to achieve visible results from simple code. So something that allows you to draw to the screen and respond to user input, while minimum boiler-plate code (often confusing to newbies) really helps. If you're looking for inspiration for some demos/examples, you should checkout the "One Lone Coder" videos on YouTube: https://www.youtube.com/channel/UC-yuWVUplUJZvieEligKBkA/featured He has written a really simple "game engine" in C++ along the same lines, and (IMO) his projects show just how valuable lowering the barriers to experimentation can be. Lots of fun too! > > [1] https://fosdem.org/2020/schedule/event/ada_rad/ > [2] http://colobot.info/ > [3] http://love2d.org/ > [4] https://www.lua.org/ >
On Tuesday, 11 February 2020 19:10:49 UTC, Chris Sykes wrote:
>
> If you're looking for inspiration for some demos/examples, you should
> checkout the "One Lone Coder" videos on YouTube:
> https://www.youtube.com/channel/UC-yuWVUplUJZvieEligKBkA/featured
Can confirm OLC is very good / accessible, check out his SNES emulator series.
On Saturday, February 8, 2020 at 12:41:01 PM UTC+1, Ludovic Brenta wrote: > I have a 14-year-old son whom I teach programming to. > This framework makes it very easy to have immediate results... but > Lua lacks strong typing and in particular range checking, and a debugger. Perhaps you will find AdaBots[1] interesting. It happens also to be a 'binding' from Ada to lua, in the sense that it leverages the already existing lua interpreter built into ComputerCraft[2], and the world already provided by Minecraft. This makes it quite easy to think of interesting challenges without having to program that whole world; e.g. help I'm stuck at the bottom of a well, have the turtle build me a staircase back to the surface. [1] https://github.com/TamaMcGlinn/AdaBots [2] https://tweaked.cc/
On Saturday, 8 February 2020 at 12:41:01 UTC+1, Ludovic Brenta wrote: > Hello. > > At FOSDEM, my colleague Thomas Maluszycki gave a talk[1] about rapid > application development in Ada. This made me think. You see, I have a > 14-year-old son whom I teach programming to. He is lukewarm about it > but I think it is my duty as a parent to give him basic education in > this field, as computers are already everywhere and will probably govern > his live even more than ours. So I played with him with Colobot[2], > taught him a little bit of Ada (with the French translation of Barnes' > book for Ada 95), a little bit of ZX Spectrum BASIC, and now he's > writing a Pong clone with the LÖVE framework[3], in Lua[4]. This > framework makes it very easy to have immediate results... but Lua lacks > strong typing and in particular range checking, and a debugger. > > So it occurred to me that LÖVE is really a Lua binding to SDL plus a > predefined event loop, and that it would be quite easy to do something > similar based on the sdlada thick binding. The goal would be to attract > teenage programmers to the language and to programming in general. > Possibly on a Raspberry Pi. I'd be willing to make a Debian package for > it. What do you think? > > [1] https://fosdem.org/2020/schedule/event/ada_rad/ > [2] http://colobot.info/ > [3] http://love2d.org/ > [4] https://www.lua.org/ > > -- > Ludovic Brenta. > The partners leverage consumer-facing potentials. Hi Ludovic, there could be an alternative for teaching kids programming. Have a look at Object Oriented Turing (https://en.wikipedia.org/wiki/Turing_(programming_language)). Strong typed, with a simple syntax, and powerful constructs. The language was used at University of Toronto, and in high schools in Ontario. The only drawback is that the system is no longer maintained. - Object Oriented Turing Reference: http://compsci.ca/holtsoft/OOTRef.pdf - Introduction to Programming in Turing: http://compsci.ca/holtsoft/IPT.pdf - The environment: http://tristan.hume.ca/openturing/ - ... and more here ... http://compsci.ca/holtsoft/ Regards, Darek