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?
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.
I think Python is the best suited to your needs.
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
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!
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
((((((((((((((((((((((((((((((( (((((((((((((((((((((((((((((((((( (((((((((((((((((((((((((((( ))))))))))))))))))))))))))))))))))))) )))))))))))))))))))))) ))))))))))))
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
Python without doubt. Maybe also Lua if you want to teach game development.
Clearly the two best choices for this situation