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?

  • poVoq@lemmy.ml
    link
    fedilink
    arrow-up
    16
    ·
    edit-2
    4 years ago

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

  • zksmk@lemmy.ml
    link
    fedilink
    arrow-up
    6
    ·
    edit-2
    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

  • glennsl@lemmy.ml
    link
    fedilink
    arrow-up
    6
    ·
    edit-2
    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.

  • copacetic@lemmy.ml
    link
    fedilink
    arrow-up
    5
    ·
    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.

  • sia@lemmy.ml
    link
    fedilink
    arrow-up
    4
    ·
    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.

  • acidwash jeans@lemmy.ml
    link
    fedilink
    arrow-up
    4
    arrow-down
    1
    ·
    4 years ago

    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

    • Echedenyan@lemmy.ml
      link
      fedilink
      arrow-up
      2
      ·
      edit-2
      4 years ago
      (((((((((((((((((((((((((((((((
           ((((((((((((((((((((((((((((((((((
                ((((((((((((((((((((((((((((
      )))))))))))))))))))))))))))))))))))))
      ))))))))))))))))))))))
      ))))))))))))
      

      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.

        • Echedenyan@lemmy.ml
          link
          fedilink
          arrow-up
          0
          ·
          4 years ago

          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.

          • acidwash jeans@lemmy.ml
            link
            fedilink
            arrow-up
            0
            ·
            4 years ago

            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)))
            
            • Echedenyan@lemmy.ml
              link
              fedilink
              arrow-up
              0
              ·
              edit-2
              4 years ago

              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.

              • acidwash jeans@lemmy.ml
                link
                fedilink
                arrow-up
                2
                ·
                4 years ago

                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.

    • sia@lemmy.ml
      link
      fedilink
      arrow-up
      2
      ·
      4 years ago

      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

  • Openmastering@lemmy.ml
    link
    fedilink
    arrow-up
    2
    ·
    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.