From 661df7a3e6bf3165ac38bac2b6ffd53ed12ce514 Mon Sep 17 00:00:00 2001 From: Matej Focko Date: Thu, 1 Feb 2024 16:40:46 +0100 Subject: [PATCH] blog(first-language): rename and small changes Signed-off-by: Matej Focko --- ...nguage.md => 2024-02-04-first-language.md} | 44 ++++++++++--------- 1 file changed, 24 insertions(+), 20 deletions(-) rename blog/{2023-12-xx-first-language.md => 2024-02-04-first-language.md} (74%) diff --git a/blog/2023-12-xx-first-language.md b/blog/2024-02-04-first-language.md similarity index 74% rename from blog/2023-12-xx-first-language.md rename to blog/2024-02-04-first-language.md index a0ce9f3..3fbf727 100644 --- a/blog/2023-12-xx-first-language.md +++ b/blog/2024-02-04-first-language.md @@ -1,9 +1,9 @@ --- -title: First language for programming +title: First programming language description: | Thinking about the issues that can arise from making a wrong choice for a first programming language. -date: 2023-12-29 +date: 2024-02-04 authors: - key: mf title: a.k.a. passionate Python hater @@ -20,11 +20,16 @@ time of writing this post I have been teaching _Foundations of Programming_ for Let's talk about the first language beginners come into contact with hands on[^1]. + + :::caution Spoiler alert At one point or another, this post will turn into full-blown Python rant as it is the most common choice for the first language. +I'm also purposefully leaving out educational “languages” like [Scratch], +[Baltík] or [Imagine]. + ::: ## My journey @@ -43,14 +48,14 @@ a unique experience. ### Self-study My first time touching a proper programming language was around ‘11 and it was -a VB.NET[^2]. If you have a look at this language, it is a rather verbose +a VB.NET[^1]. If you have a look at this language, it is a rather verbose language. However if you understand English, it is very easy to read because of the said verbosity. When you dig deeper, you may find some very weird stuff going on, like indexing of arrays, or even allocating arrays that preallocates -one more or one less[^3] element than the specified size. Syntax is also quite +one more or one less[^2] element than the specified size. Syntax is also quite unusual with apostrophes marking the comments. -Overall it's not that bad and the book I've had[^4] was rather nice. In +Overall it's not that bad and the book I've had[^3] was rather nice. In retrospective I would say that VB.NET is very nice first language, because it's easy to write and read and yet is quite powerful. @@ -61,16 +66,16 @@ the root my “hate” towards Java. In retrospective I consider Java very primitive language. You might disagree with me on this one, but if you think about it, Java is very simple language in -the sense of syntax and what it can do[^5]. And yes, there are lots of people -that consider C# the _Microsoft's Java_[^6], but you cannot hide the fact that +the sense of syntax and what it can do[^4]. And yes, there are lots of people +that consider C# the _Microsoft's Java_[^5], but you cannot hide the fact that in the recent releases there are features that are almost 1:1 taken from the C# and implemented in the Java. Most of them are _quality of life_ things that make the life of the developers less painful. All in all, there are still many things that you need to workaround in Java by abusing interfaces and design patterns -and some of those things can be done in a very simple way in other languages[^7] +and some of those things can be done in a very simple way in other languages[^6] Around the time of attending the high school C appeared in my life… I think I've -seen C for the first time in the lectures from FIT CTU[^8] +seen C for the first time in the lectures from FIT CTU[^7] After C we have a mayhem of anything and everything. Looking back I have to admit that I've managed to move from Java towards C# as @@ -84,19 +89,18 @@ Pascal Python -[^1]: - I'm purposefully leaving out educational “languages” like Scratch, - [Baltík](https://www.sgpsys.com/infovek/index.htm) or - [Imagine](https://imagine.input.sk/index.html). +[scratch]: https://scratch.mit.edu/ +[baltík]: https://www.sgpsys.com/infovek/index.htm +[imagine]: https://imagine.input.sk/index.html -[^2]: https://en.wikipedia.org/wiki/Visual_Basic_(.NET) -[^3]: I don't even remember which one :smile: -[^4]: https://www.oreilly.com/library/view/microsoft-visual-basic/9780735645332/ -[^5]: +[^1]: https://en.wikipedia.org/wiki/Visual_Basic_(.NET) +[^2]: I don't even remember which one :smile: +[^3]: https://www.oreilly.com/library/view/microsoft-visual-basic/9780735645332/ +[^4]: We also need to keep in mind the aphorism: “All that glitters is not gold” and the fact that syntax sugar can be abused and get very hard to process for people; yes… I'm looking at you Python… -[^6]: vomits violently because of the Microsoft; C# is nice though -[^7]: decorators are something for a long-haul discussion by itself… -[^8]: _TODO_: add lectures +[^5]: vomits violently because of the Microsoft; C# is nice though +[^6]: decorators are something for a long-haul discussion by itself… +[^7]: https://www.youtube.com/playlist?list=PL0VUmynWzoOlYMAqekeklZzCPUDKh3Nsj