Hi, everyone
TL;DR - post below your suggestion for a good programming language for an almost-rookie teacher/educator/writer to start using.
More info: I am trying to decide on which programming language to learn. I know my way around HTML and CSS from being active online, but haven’t done much programming apart from this. I write, teach, and work with digital teaching/learning products a lot. In 2021, I think there will be plenty of time for me to start working with programming. I don’t mean just “learn to code” - I mean using the language(s) as an educator/writer/publisher. Libre / open source context preferred. Which languages look like they fit the bill, Lemmy?
I think Python is the best suited to your needs.
Elm is a statically typed purely functional programming language specifically designed for creating web UIs and to be easy to learn. It is very simple, has great documentation and learning resources, actually helpful error messages, and given that you already know HTML and CSS I think it’s by far the quickest and easiest way to get results and keep motivated.
For those who do not already know HTML and CSS, there’s also simple and powerful graphics libraries and other tools that have been used to teach thousands of kids to program and think algebraically, most notably at McMaster University, who’s produced several research papers on using it.
Python, Javascript, Rust
Python - probably the easiest language to learn, big in the science community
Javascript - probably the easiest language to learn if you’re either impatient or a visual learner, easy to start as a beginner and set up and get visual feedback, if you make stuff with it to teach it’s the most likely to reach a large audience
Rust - cool and efficient language
You could also try Nim
Great article in order to get an overview of the Rust language
My pitch for Clojure and some beginner resources. :)
LISP
Can’t go wrong with Lisp for interactive workflow alone in my opinion. I don’t think I could use a non-Lisp based language at this point. :)
Right?! I’ve been using Emacs Lisp for … less than a year, and I’m already like, Boo, I don’t wanna use Bash!
Python without doubt. Maybe also Lua if you want to teach game development.
Clearly the two best choices for this situation
LISP
It’s easier to get into than you’d think – and SICP (Structure and Interpretation of Computer Programs, a seminal text) is written in Scheme, a Lisp. LISP
Someone who is always eager to let you know that whatever it is you’re doing would be done better in LispLanguage. Why? Don’t ask, they can’t explain it to the rest of us. The wise course is to stay clear and wait for them to go extinct.
Nonsense, they can and will explain it. Some of it isn’t true, but a lot of it is.
[smug smug smug smug]
And whether they actually are able to explain it or not, quite often they will try. And this is not necessarily a good thing, depending on whether your ride’s leaving.LOLOL I’m definitely a convert! I’m not even mad, though; it’s a meme for a reason
((((((((((((((((((((((((((((((( (((((((((((((((((((((((((((((((((( (((((((((((((((((((((((((((( ))))))))))))))))))))))))))))))))))))) )))))))))))))))))))))) ))))))))))))
If I can use the parenthesis in the way that keys or tags in XML are used (as true trees) then I will accept it.
However, this is not common nor the standard way which make examples harder to help with learning.
AFAIK, you /can/ use the parentheses as tags in XML, … but it’s okay if it’s not for you!
I think you mean SXML which is a variation of XML with S-Expressions.
But what I mean is writting Lisp like a XML tree which would be pretty similar to SXML for readability.
I actually haven’t heard of SXML, so I meant regular lisp. For me, I just mean that this is pretty tree-based, so far as I can tell (I’m not an actual programmer, though, which might be the issue with my understanding):
(defun foo (bar baz) (if (predicate) (do if true) (do if false)))
This is an XML tree:
This is an SXML tree compared with an XHTML (XML based HTML) tree:
SXML uses the standard S-Expressions syntax but what I expect is being able to use more this:
(*TOP* (@ (*NAMESPACES* (x "http://www.w3.org/1999/xhtml") ) ) (x:html (@ (xml:lang "en") (lang "en") ) (x:head (x:title "An example page") ) (x:body (x:h1 (@ (id "greeting") ) "Hi, there" ) (x:p "This is just an >>example<< to show XHTML & SXML.") ) ) )
I think that most people liking Lisp don’t want to change the current formatting standard and maybe most of them have eagle view or a good “mind parser” but it is more readable for me writing like this. I can identify errors easily and I don’t have to count the parenthesis as I have been doing for reading Scheme and Lisp basic programs well.
I also combine this with tabulation of 4 characters instead of soft-tabs (real white spaces) of 2 characters like some people do due to the JS influence.
Oh, well if you just mean a formatting thing – you can format a source file however you want :) But yeah, that’s not really the popular way to do it. For me, just the opening tags + indentation work well enough to delimit everything, but to each their own.
:3
It depends if you want to learn it just for yourself or for your students. They will expect to work with a language that is broadly used.
As an educator/writer/publisher, you might be interested in interactive fiction, so maybe take a look at Inform 7.
To learn a general purpose language, Python would be my first suggestion.
Rust
- C99 to find out how everything works.
- Golang because it’s fast and forces you to write in a good style.
- Python for all the packages that exist and the capabilities of stringing together three libraries and calling it a day.
In that order! IMHO you should first learn how the basics (data types, memory mapping, …) work before you get more comfortable.
You could swap Golang with Rust and C99 with Zig if you want to be more Hipster.