• 2 Posts
  • 25 Comments
Joined 2 years ago
cake
Cake day: June 12th, 2023

help-circle


  • e.g. don’t touch AGPL code unless you also use AGPL

    Just to clear this up: copyleft licenses, GPL variants for example, require the license of your code to equally preserve the freedoms provided to your users, or in other words also be a copyleft license. There are some loopholes like GPL on a server, but be very careful when using copyleft code unless you want to use a copyleft license as well.

    It gets somewhat murkier when you use someone’s code and base yours on that. IANAL, and that’s very much the legal territory. If at all possible, just reuse the original copyright and license and then derive your work (given the license allows that).

    That all depends on the license AFAIK, but IANAL. Most FOSS licenses allow you to do whatever you want while preserving copyright claims, and that includes rewriting or changing the license. GPL forces copyleft, so even if you rewrote it from scratch, you could still be liable if you saw the original code.

    For example I’ve heard that corpos bootleg copyleft code by having completely separate teams doing design and implementation. The implementation team can’t ever see any part of the original code, and they have limited communication with the design team. I think that would also go around the copyright claims as well.

    If at all possible, just reuse the original copyright and license and then derive your work (given the license allows that).

    Or just slap a GPL and subsume everything within a vortex of FREEDOM, and thusly become a true FOSS dude


  • there are very few “starter” Clojure jobs; they mostly expect you to have years of experience.

    That’s because the language is made for people who wrote java for the last 10 years. It’s cool and all, but it’s horrible for learning programming when you compare it to cl or scheme. Neither of them break language uniformity and simplicity in order to accommodate java interop, while also having decades worth of excellent teaching material.

    It’s a Lisp language which is the oldest kind.

    Fortran, COBOL, ALGOL are older

    Instead of “object oriented”, I think if it as verb oriented. Each statement is a verb (function) possibly followed by all the nouns you want to apply it to. Easy peasy, right?

    I think you’re over complicating the explanation, it’s just a different notation:

    (1 + 2 + 3) == (+ 1 2 3)

    (1 + (2 * 3)) == (+ 1 (* 2 3))

    People complain that there’s “too many parentheses”. People like to complain about dumb stuff.

    I think it’s got more to do with everything seemingly being completely different. Most languages have C-style syntax, and python is like the only popular exception. It’s like knowing only latin and having to learn cyrilic or alphabet.




  • Julia, Clojure and Go. Are any of these good for a beginner or should I start with something else?

    That totally depends on what you want to do.

    Go should be easiest since it’s purposefully simplified in order to make learning it easier. There are some more difficult concepts, but the start should be easy enough. I know about go with tests, but it’s not really programming beginner friendly.

    I’d avoid clojure as a beginner. It’s more for people who know java, but don’t want to write java. Common lisp and schemes are good for learning programming, but they’re not a popular group of languages and that can be a problem.