mirror of
https://github.com/mfocko/blog.git
synced 2024-11-25 06:11:55 +01:00
blog(first-language): rename and small changes
Signed-off-by: Matej Focko <me@mfocko.xyz>
This commit is contained in:
parent
c39768d820
commit
661df7a3e6
1 changed files with 24 additions and 20 deletions
|
@ -1,9 +1,9 @@
|
||||||
---
|
---
|
||||||
title: First language for programming
|
title: First programming language
|
||||||
description: |
|
description: |
|
||||||
Thinking about the issues that can arise from making a wrong choice for a
|
Thinking about the issues that can arise from making a wrong choice for a
|
||||||
first programming language.
|
first programming language.
|
||||||
date: 2023-12-29
|
date: 2024-02-04
|
||||||
authors:
|
authors:
|
||||||
- key: mf
|
- key: mf
|
||||||
title: a.k.a. passionate Python hater
|
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
|
Let's talk about the first language beginners come into contact with hands
|
||||||
on[^1].
|
on[^1].
|
||||||
|
|
||||||
|
<!--truncate-->
|
||||||
|
|
||||||
:::caution Spoiler alert
|
:::caution Spoiler alert
|
||||||
|
|
||||||
At one point or another, this post will turn into full-blown Python rant as it
|
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.
|
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
|
## My journey
|
||||||
|
@ -43,14 +48,14 @@ a unique experience.
|
||||||
### Self-study
|
### Self-study
|
||||||
|
|
||||||
My first time touching a proper programming language was around ‘11 and it was
|
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
|
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
|
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
|
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.
|
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
|
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.
|
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
|
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
|
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
|
the sense of syntax and what it can do[^4]. And yes, there are lots of people
|
||||||
that consider C# the _Microsoft's Java_[^6], but you cannot hide the fact that
|
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#
|
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
|
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
|
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
|
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
|
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.
|
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
|
Looking back I have to admit that I've managed to move from Java towards C# as
|
||||||
|
@ -84,19 +89,18 @@ Pascal
|
||||||
|
|
||||||
Python
|
Python
|
||||||
|
|
||||||
[^1]:
|
[scratch]: https://scratch.mit.edu/
|
||||||
I'm purposefully leaving out educational “languages” like Scratch,
|
[baltík]: https://www.sgpsys.com/infovek/index.htm
|
||||||
[Baltík](https://www.sgpsys.com/infovek/index.htm) or
|
[imagine]: https://imagine.input.sk/index.html
|
||||||
[Imagine](https://imagine.input.sk/index.html).
|
|
||||||
|
|
||||||
[^2]: https://en.wikipedia.org/wiki/Visual_Basic_(.NET)
|
[^1]: https://en.wikipedia.org/wiki/Visual_Basic_(.NET)
|
||||||
[^3]: I don't even remember which one :smile:
|
[^2]: I don't even remember which one :smile:
|
||||||
[^4]: https://www.oreilly.com/library/view/microsoft-visual-basic/9780735645332/
|
[^3]: https://www.oreilly.com/library/view/microsoft-visual-basic/9780735645332/
|
||||||
[^5]:
|
[^4]:
|
||||||
We also need to keep in mind the aphorism: “All that glitters is not gold”
|
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
|
and the fact that syntax sugar can be abused and get very hard to process
|
||||||
for people; yes… I'm looking at you Python…
|
for people; yes… I'm looking at you Python…
|
||||||
|
|
||||||
[^6]: vomits violently because of the Microsoft; C# is nice though
|
[^5]: vomits violently because of the Microsoft; C# is nice though
|
||||||
[^7]: decorators are something for a long-haul discussion by itself…
|
[^6]: decorators are something for a long-haul discussion by itself…
|
||||||
[^8]: _TODO_: add lectures
|
[^7]: https://www.youtube.com/playlist?list=PL0VUmynWzoOlYMAqekeklZzCPUDKh3Nsj
|
Loading…
Reference in a new issue