this post was submitted on 29 Jan 2021
2 points (100.0% liked)

Asklemmy

44656 readers
910 users here now

A loosely moderated place to ask open-ended questions

Search asklemmy ๐Ÿ”

If your post meets the following criteria, it's welcome here!

  1. Open-ended question
  2. Not offensive: at this point, we do not have the bandwidth to moderate overtly political discussions. Assume best intent and be excellent to each other.
  3. Not regarding using or support for Lemmy: context, see the list of support communities and tools for finding communities below
  4. Not ad nauseam inducing: please make sure it is a question that would be new to most members
  5. An actual topic of discussion

Looking for support?

Looking for a community?

~Icon~ ~by~ ~@Double_[email protected]~

founded 5 years ago
MODERATORS
 

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?

top 27 comments
sorted by: hot top controversial new old
[โ€“] [email protected] 2 points 4 years ago

I think Python is the best suited to your needs.

[โ€“] [email protected] 1 points 4 years ago* (last edited 4 years ago)

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.

[โ€“] [email protected] 1 points 4 years ago* (last edited 4 years ago)

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

[โ€“] [email protected] 0 points 4 years ago* (last edited 4 years ago) (1 children)

Python without doubt. Maybe also Lua if you want to teach game development.

[โ€“] [email protected] 1 points 4 years ago

Clearly the two best choices for this situation

[โ€“] [email protected] 0 points 4 years ago (2 children)

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

[โ€“] [email protected] 0 points 4 years ago* (last edited 4 years ago) (1 children)
(((((((((((((((((((((((((((((((
     ((((((((((((((((((((((((((((((((((
          ((((((((((((((((((((((((((((
)))))))))))))))))))))))))))))))))))))
))))))))))))))))))))))
))))))))))))

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.

[โ€“] [email protected] 0 points 4 years ago (1 children)

AFAIK, you /can/ use the parentheses as tags in XML, ... but it's okay if it's not for you!

[โ€“] [email protected] 0 points 4 years ago (1 children)

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.

[โ€“] [email protected] 0 points 4 years ago (1 children)

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)))
[โ€“] [email protected] 0 points 4 years ago* (last edited 4 years ago) (1 children)

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.

[โ€“] [email protected] 2 points 4 years ago (1 children)

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.

[โ€“] [email protected] 0 points 4 years ago (1 children)

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.

http://wiki.c2.com/?SmugLispWeenie

[โ€“] [email protected] 0 points 4 years ago

LOLOL I'm definitely a convert! I'm not even mad, though; it's a meme for a reason

[โ€“] [email protected] 0 points 4 years ago

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.

[โ€“] [email protected] 0 points 4 years ago

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.

[โ€“] [email protected] 0 points 4 years ago
[โ€“] [email protected] 0 points 4 years ago
  • 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.

[โ€“] [email protected] 0 points 4 years ago

You could also try Nim

[โ€“] [email protected] 0 points 4 years ago (1 children)
[โ€“] [email protected] 0 points 4 years ago

Great article in order to get an overview of the Rust language

[โ€“] [email protected] 0 points 4 years ago (1 children)
[โ€“] [email protected] 0 points 4 years ago (1 children)
[โ€“] [email protected] 0 points 4 years ago (1 children)

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. :)

[โ€“] [email protected] 0 points 4 years ago (1 children)

Right?! I've been using Emacs Lisp for ... less than a year, and I'm already like, Boo, I don't wanna use Bash!

[โ€“] [email protected] 1 points 4 years ago

Janetsh might be of interest, and I've been using Babashka for all my scripting needs. :)