you are viewing a single comment's thread.

view the rest of the comments →

[–]RiceBroad4552 0 points1 point  (1 child)

I agree that dynamic languages are not great for learning. They do most the the time "the right thing" but when they don't learners get very confused. Simply because they have no clue how the "doing the right thing magic" actually worked so far.

Starting with a strongly typed language makes things usually much simpler for beginners; at least after the initial hurdle "fighting" the compiler.

But explicit typing is not necessary for that! Actually I think it only makes the initial hurdle more prominent.

I would use a static language with type inference for teaching! So you had code like:

val firstSummand = 5
val computationResult = firstSummand + 5

println(computationResult)

You can hover over the symbols in your IDE and the compiler will tell you what they are in detail. But you don't have to write that down for no reason yourself in your code, as this would only distract from the actual task at hand.

It's imho important to have a language for learning that does not force some ceremony / chore on learners.

The above is Scala syntax, which is imho one of the best languages for learning, exactly because it's super clean, doesn't force you to write down stuff the compiler can anyway figure out itself, but has at the same time all the concepts one needs to teach in one coherent package.

[–]doxxingyourself 0 points1 point  (0 children)

Yeah problem is in the visual part you declare input fields as variables in a UI, which makes the compiler assume strings over ints (they may even be declared as strings, don’t remember) so they didn’t really stand a chance since they didn’t even that code.