When HN users recommended it
1 HN user recommended this in 2024, in one comment.
20072026
Each tall tick is one HN user's first recommendation. A short tick is the same user again. Click a tick to jump to the comment.
1 HN user recommended this in 2024, in one comment.
Each tall tick is one HN user's first recommendation. A short tick is the same user again. Click a tick to jump to the comment.
I evolved Small Visual Basic (sVB) to be the best tool to introduce programming to kids: - sVB has the simplicity of Small Basic syntax and its turtle and graphics window, but sVB fixes SB issues. SB has no variable domains, no functions, no subroutine parameters and no objects. sVB has all of that. sVB also added more improvements to SB turtle and graphics window. - sVB is as modern as VB .NET, using some of its syntax features like array initializers, and making some use of XAML features. But it is still as easy as classic Visual Basic, using a simple form designer and event handling mechanism.
But why would anyone choose sVB over python, which is the most popular nowadays? Let's see Small Visual Basic versus Python in brief points: - Python is a full stack language, while sVB is only for desktop apps and only for educational purposes. But this doesn't mean that sVB has no future. it is actually the doorway to a popular and powerful development platform: the DotNET and Vs .NET. - Both Python and sVB are dynamically typed languages, but sVB is easier in this aspect, because it doesn't require type conversions. - Python is case-sensitive, and surprisingly, the True and False keywords starts with uppercase letters, while sVB is case-insensitive, and the code editor makes sure to fix words to their original casing. This makes it more easier to learn. - Python lists are 0-indexed, while sVB arrays are by default 1-indexed which is more natural and easier for kids to deal with, but nothing prevents them from using a 0 index or even negative indexes, because arrays in sVB are actually dictionaries, so indexes are actually keys! - Trigonometry functions use radian angles in Python. This is the default case in sVB, but you can disable this behavior to use degrees by default: Math.UseRadianAngles = False - Python for loops can be confusing because of the range exclusive end: for i in range(5, 0, -1): print(i) while for loops are very simple in sVB: For I = 5 To 1 Step -1 TW.WriteLine(I) Next - Python block indentation is confusing for kids, while sVB has end blocks that makes the code well constructed and readable. The sVB editor adds the end block statement automatically while the kid is typing. It also adjusts block indentation, pretty-lists spaces and identifier casing. It even enforces a variable casing rule: local vars and parameters start with a lowercase, while global vars, subroutine and function start with uppercase. So, in sVB, kids focus only on the code logic, not formatting! - In general, sVB IDE is easier and more powerful to deal with forms and graphics.
For this purpose and to prove my points, I started the sVB kid Programmer book series: https://www.amazon.com/dp/B0DNX2ZR4D to introduce books for grades from 1 to 6, and the series will continue with a different name for grades from 7 to 12. This is not just for teaching programming for kids, but also to enhance their math skills, and later there science skills too (using the physics engine of the LitDev extension for sVB). I hope you support sVB by introducing it to kids as you can. At least give it a try. It is installed with more than 160 interesting samples, and a full language reference PDF book: https://marketplace.visualstudio.com/items?itemName=ModernVB... This is a 4.5-years full-time hard work to develop sVB, write its reference book, and introduce it on YouTube videos (in Arabic), all that for free! The only exception is the Amazon books, because I can't afford to work for free for the next 5 years to complete this series! I am bringing these details to show you how I am a fan of BASIC. This work is just a step of my bigger plans to bring BASIC back to its rightful place.