1. 1

    I really dislike the idea of it being prefixed by #, gives me perl/ruby/php vibes, but I think Record and Tuple would be really nice to have in JS.

    1. 4

      Janet uses a similar syntax, where there are matching mutable and immutable data structures. Janet’s Data Structures except they do the opposite - immutable is the “normal” syntax, and you denote mutable structures with an @. One of the differences of a well designed languages and a language that continuously bolts on whatever is popular at the time.

      Literally JS is on the exact same course as php in many ways. Both started off as niche languages to support web dev. Both continuously merge popular ideas from 3rd party libraries. Neither can purge the excess or “break the web”.

      1. 3

        I dislike the use of # as well, but for different reasons. It’s already being used for private class fields, so this is going to make parsing more complicated and also be somewhat difficult to understand for new developers.

        1. 1

          That one is really weird to me because the convention has been to use _varName for a lonnnng time for private stuff. :shrug:

          1. 1

            Making _varName private though would be backwards-incompatible, which is a nonstarter for JS. The irony is that the popularity of the convention makes this problem even more significant, because library consumers hacking together a solution by fiddling with the library’s “private” variables is probably a frequent occurrence.

      1. 4

        I wonder if OP has an opinion on Pony lang, One of the newer, and more refreshing takes in OO offerings

        1. 2

          Weird to put this much work into a programming language but not bother to register a domain for it.

          1. 10

            Looking a little deeper:

            Every type in Teal accepts nil as a valid value, even if, like in Lua, attempting to use it with some operations would cause a runtime error, so be aware!

            This is a bit disappointing for me to read since nils are by far the most common type errors in Lua. I’m definitely open to the idea of putting a little more work into my coding by thinking in types, but the types need to pull their weight! A type system which can’t catch the most common type error feels like a missed opportunity.

            1. 3

              Fwiw the talk mentioned nil safety as a potential future direction.

              1. 2

                While still in semi-early development, Pallene is another alternative with some additional performance benefits.

                White Paper


                1. 3

                  Yeah, it looks really promising. IIRC Pallene is developed by the core Lua developers. Unfortunately the documentation in their repo does not have enough detail to determine whether their type system has the same nil problem as Teal’s.

                  1. 1

                    One of the things I notice when working in Lua is, I’m sure because of its relatively small developer community (as compared to say Java or Python or C/C++) I find a lot of places where the Lua ecosystem goes right up to the edge of the water and then just … stops.

                    Like, as a for instance, try getting luarocks working on a non *NIX based system. It’s not easy :) I know it’s been done but - not easy.

                    Again this is totally understandable because polish and depth require engineer hours to create and those don’t grow on trees.

                    1. 1

                      I find a lot of places where the Lua ecosystem goes right up to the edge of the water and then just … stops.

                      My perspective on this is that Lua developers tend to have more restraint and recognize that sometimes if you can’t do something right, it’s better not to do it at all.

                      1. 2

                        I appreciate that. I definitely is nice to skip the super annoying “Here are 30 half baked almost implementations of $THING” phase.

                        Like the fact that there used to be about 9000 Python distros for Windows and now there’s essentially 1 mainstream one.

                2. 1

                  Totally agree. This makes me think of all the gyrations Swift goes through to ensure that you’re never using or getting a potentially Nil value unless you really REALLY need it and mean for that to be possible in this circumstance.

                  1. 1

                    I didn’t like this either. I appreciate Go have the zero-value idea for basic types, but there is still the nil issue for interfaces and pointers.

                    Back in my JavaScript days it was tedious always checking for null values before doing the real work.

                    1. 1

                      Unrelated to this, but you may be pleased to know that you can use ?. to safely access values that may not exist in JS. e.g. const name = some?.nested?.obj?.name;

                  2. 2

                    there is a domain, but not a website: http://teal-language.org

                  1. 3

                    Pallene presents an alternative to JIT compiling Lua. Instead of writing non-idiomatic JIT-centric code to avoid implicit “optimization killers” in LuaJIT, Pallene presents an explicit subset of idioms and optional type annotations that allows for standard compiler optimizations as well as Lua-specific optimizations.

                    1. 7

                      Seems to be a more picture oriented version of https://git-rebase.io/

                      1. 1

                        You should check Janet programming language; it has PEG as part of the core https://janet-lang.org/docs/peg.html. And it is overall nice LISP dialect with some Lua flavour.

                        1. 2

                          I think that’s a great way to describe it. You can feel the Lua-isms in the design, even if the syntax are different.

                        1. 9

                          On a related note, I’m also now the owner of the shithub.us domain – I’m thinking of offering semi-public git hosting on it. The name came up, and the comparison is obvious.

                          1. 3

                            How about a webshop for toilets and accessories? I think it could work :-)

                            1. 1

                              Or sell it to a Septic Tank draining service

                              1. 1

                                Having both would be amazing.

                            1. 2

                              @ruki are you the dev? Maybe you can opt in to Hacktoberfest and get some motivated individuals to write some LDoc or similar annotations for the project. I’d love to jump in, but without some more comprehensive docs I wouldn’t know where to begin. Looks great though

                              1. 1

                                Yes, but I don’t have much time to write documents. You can directly refer to all examples in the tests directory. And thank you very much for your suggestions.

                                1. 1

                                  I understand the dilemma. There’s a gang of people looking to complete Hacktoberfest, and would probably write (at least some of) those annotations for you if you opt-in and throw some issues up for completing them. Might as well cash in on free help while it’s available.

                                  1. 1

                                    Thanks, I will consider to use LDoc to generate documents. https://github.com/tboox/ltui/issues/13

                                    Although Hacktoberfest seems very interesting, I still don’t know how to organize and create events, and I don’t think anyone will participate in my project.

                              1. 3

                                Hey, author of the post here! Really happy to see it on Lobsters, and I’d be happy to answer any questions and/or comments you have!

                                I encountered this “bug” while working on rewriting my iOS app with the new App and Scene structures introduced during WWDC2020. The project is nearing completion, and I’m really excited about how its turning out.


                                1. 12

                                  Unfortunately not related to the content, but for me the font choice made the post too difficult to read.

                                  1. 3

                                    Understandable. I was attempting to make it “retro,” though I’m going to change the font when I rewrite the site (soon) to make it clearer and load faster.

                                    1. 2

                                      I agree with you. Try using Reader View if your browser supports it. It’s much better.

                                      1. 2

                                        Pictures/videos also don’t work in Safari 14.

                                        1. 1

                                          Yeah, they’re in .webm which for some reason is not supported by Safari despite massive size reductions from mp4. Going to need to add mp4s.

                                      2. 3

                                        Nice post! Happens to all of us :-)

                                        That’s what you get for populating static items in a list. I’m a little confused about the sorting (or whether it works as needed):

                                        • Completed tasks are at the bottom. Ongoing tasks are at the top.
                                        • Higher priority items are at the top of their category (completed/ongoing).
                                        • After above two points, ordering is done ascending, by task name.

                                        The above statements sound nice, but:

                                        • the UI fails to show important (high prio) tasks
                                        • sorting by name is not visible, as the point above. Looking at the videos your provided, it appears sorting is random (although it may not be)

                                        I’m not an Apple user, but I would enjoy having a task list with the following features:

                                        • Priority items clearly marked (color/“hotness” or font weight)
                                        • Completed tasks with a “greyed out”/“disabled” state (the strikethrough helps)
                                        • Sorting based on the timestamp when the item was created/modified/completed
                                        1. 1

                                          Thank you for the great suggestions!

                                          Some clarifications about sorting:

                                          • The exclamation marks on the trailing side are supposed to be the main indicator of priority, which I understand might be too small of an indicator.
                                          • The “ascending task name sort” is just a fancy way of saying alphabetical order. Because it’s the third priority it may seem a little random, but what it does is sort all tasks of the same priority and the same category (completed/ongoing) in alphabetical order.

                                          Feature suggestions:

                                          • I love the idea of color/weight indicators for priority! Definitely going to implement that going forward.
                                          • Completed tasks are grayed out in addition to the strikethrough in the main app, I’ve just yet to implement it in the rewrite.
                                          • The timestamp sort would be an important thing, but a big feature of the app is that tasks get deleted at midnight every day so that would be a really short-term thing. I will consider adding it as an additional sort method, though.
                                      1. 29

                                        I cannot help myself but to imagine a open source ideas incubator governed by:

                                        Antirez, Linus, Mike Pall (LuaJit), Rich Hickey (Clojure)

                                        Perhaps, they would find it difficult to work together, but they all have something in common:

                                        1. They cannot be easily manipulated
                                        2. they do not want to manipulate others
                                        3. They are visionaries
                                        4. They express themselves through software (on both technical and conceptual levels)
                                        5. They work very hard, for very long time, based on a believe and passion alone
                                        6. They are not afraid to challenge ‘status quo’

                                        The combination of the above, perhaps is rare, and finding a way to explore their combined wisdoms, quirks, and talents – would be very neat and beneficial to society as a whole.

                                        If such a cooperative is successful, I would also hope that they would figure out a way to find the next generation of folks so that the process continues.

                                        1. 5

                                          I like it, but maybe sub Mike Pall with Roberto Ierusalimschy because he seems to meet all the same criteria except has a wider range of projects he’s involved in and presents lots of white papers and research around his projects. [1]

                                          No offence to Mike Pall, of course, LuaJIT is still alien software in my book and “he” still could be an anonymous group of genius computer scientists sharing a pseudonym afaik.

                                          [1] - http://www.inf.puc-rio.br/%7Eroberto/cvpub.html

                                          1. 3

                                            Why are there no women in this list?

                                            1. 47

                                              While I agree with the sentiment, I think the short question comes off as aggressive. Instead, you can make a suggestion to avoid putting all of the onus on the previous commenter.

                                              For example, “I noticed your list doesn’t have any women. What about ___ or ___? They have a proven track record on $PROJECT.”

                                              It brings attention to talented women in the industry and provides people with a jumping off point to learn about their accomplishments. Asking questions calls attention to biases, but it doesn’t always inform.

                                              1. 14

                                                Some random posters list if 4 of their favorite open source project leaders doesn’t need to add a token woman. Asking politely would have made it harder to see how completely ridiculous this is.

                                                1. -1

                                                  You mistakenly assumed the sentiment is to call out a user instead of pointing out the systems that have led to there not being a lot of women for them to include.

                                                  The question is about why there aren’t comparably a lot of women noted in open source and not meant to call out OP directly.

                                                  Y’all are being defensive where it isn’t needed and taking this personally instead of as a time to reflect on why open source culture is how it is and how behaviors in the current system are the problem.

                                                  Honestly, with 23 upvotes and 22 downvoting and having to share your defense, all we’ve done instead is identify the problem even more concretely than would have happened if y’all would have taken the comment for what it was and not for what it wasn’t.

                                                  For those of you labeling this as “off-topic” specifically, I would argue that it isn’t. I’m asking about a list in response to a comment about a list. The list is the topic in context of this thread.

                                                  Hopefully this comes to fruition, because it’s unfortunately too relevant here. https://lobste.rs/s/lpvcsm/proposal_for_moderation_policies_no_tone

                                                  1. 6

                                                    Y’all are being defensive where it isn’t needed and taking this personally instead of as a time to reflect on why open source culture is how it is and how behaviors in the current system are the problem.

                                                    If you wanted people to reflect on it, then posting a pointed question is not the way to go. Something similar to this would have been waaay better at getting people to think:

                                                    I’d love to see a few women contributors on that list too. Do you know any who would fit that team?

                                                    I’m not here to tone police comments because I actually agree with you that we should encourage women to join us in these endeavours, but you are not helping that cause. You are creating division by using bad wording and being more focused on being “correct”. Take this loss and let the issue die down. The trenches have already been dug here.

                                                    1. 1

                                                      If you wanted people to reflect on it, then posting a pointed question is not the way to go. Something similar to this…:

                                                      I’d love to see a few women contributors on that list too. Do you know any who would fit that team?

                                                      Your new question here has absolutely nothing to do with the one that was posted. monokrome was not looking for someone to offer up the name of a woman in tech, but to discuss the reasons why there might not be one on the list in the first place.

                                                      I’m not here to tone police comments

                                                      Seems to me that not only are you here to tone police, but also to police the content of the comment; to divert away from a meaningful and difficult discussion of under-representation (which you have no obligation to participate in), and instead re-frame it as a pedestrian question of “could someone please identify a women in tech”.

                                                      1. 1

                                                        discuss the reasons why there might not be [a female programmer] on the list in the first place.

                                                        Why should this discussion happen on lobste.rs? I thought we only allow content related to programming?

                                                    2. 4

                                                      Well, it seems that I misunderstood your comment here. I imagine that many others did too. I think that is the key issue here. Having a comment that explicitly calls out the system instead of the list would have made a difference for me. Calling out just the list makes it seem like the problem is with the person who created the list.

                                                      As for tone policing, I do believe systemic biases exist and need to be discussed. However, I think the way we discuss them is important.

                                                      I like lobsters a lot and I don’t like seeing discussions devolve into a locked in flame war. My comment was meant to provide constructive feedback and to take air away from destructive comments. My goal isn’t to prevent you from speaking, but to make it easier for your to be heard, if that makes sense.

                                                  2. 32

                                                    Cynical answer: building rep in the open source world takes a lot of time, and it’s been historically so woman-hostile that women haven’t been given a chance to build serious rep.

                                                    Hopeful answer: Jessie Frazelle, maybe? My niche is dominated by academics so I don’t know a lot of FLOSS names outside of formal methods.

                                                    1. 6

                                                      Speaking of Jessie Frazelle, I’ve recently learnt that she’s teaming up with a few other brilliant people at https://oxide.computer/, where you’ll find (among others) Bryan Cantrill and Steve Klabnik.

                                                      1. 3

                                                        Well, that’s cool :)

                                                      2. 12

                                                        Even the women who have built names for themselves in tech, are less likely to be known by men. So there’s that. I can think of a bunch of amazing people but not specifically in open source…

                                                        1. 8

                                                          Strange assumption. What are open-source projects run by women that people should know about?

                                                          1. 30

                                                            Cynical comment: Not identifying as a woman, but having “seen some things” over the years, I can’t help but think that some of the reasons we don’t find so many woman leading open source (surely there are many, though!) is because it’s dangerous to put yourself out there as a woman. How many sexual violence threats do you think a woman would receive if they were the maintainer of Redis, very opinionated, and shutdown ideas because they didn’t fit the direction she wanted to take? I bet the number is not 0.

                                                            1. 13

                                                              You-ain’t-seen-cynical-yet comment: How many death threats do you think a man receives if they’re the maintainer of Redis, very opinionated, etc? The number is very not 0. Anyone who has ever done anything significant has been on the receiving side of some harassment. Today’s effortless communication magnifies the effect, but I’m sure there were people writing “Ο Ευριπίδης τρώει σκατά” on the walls in 420 BC. The difference is whether you let it derail you. The successful ones are the ones who ignore that shit. So why do those who persevere tend to be “privileged”? A very simple psychological reason. Perceived-privilege means having no other face-saving option. If you bail out from a visible position after receiving some harassment and you say “I quit because I felt threatened as a woman” or “I quit because I felt threatened as a person of color” or whatever, there’s a fair chance you’ll be the subject of articles praising your heroism in exposing the harsh reality faced by members of $GROUP who dare to lead. Do the same thing as a straight white male, and, well, you’re a quitter. The narrative expects success from you, it expects you to keep your problems to yourself, and you’d better not have any insecurities. Underdogs are expected to battle with self-doubt; on you, it’s childish and absurd, so forge ahead or be a failure forever.

                                                              1. 9

                                                                Or maybe it’s because those groups are often at risk in their every day life and take threats on themselves seriously due to past experience?

                                                                1. 2

                                                                  That would be a pretty big mistake. Regardless of who you are, the supply of people willing to make threats still outnumbers the supply of people capable of carrying them out a million to one. The harm here comes from labels themselves.

                                                                  1. 17

                                                                    I think you’re arguing in good faith, so I’ll provide a good faith response. The problem isn’t one of existence but degree. I’ve been the target of internet outrage mobs and serial harassers, and both are terrifying. I lived through them, yes, but it’s absolutely awful to have someone constantly email you screeds from new, unblocked email addresses about how you’re awful and deserve to die. I’m also a straight (((white))) male and have only really gotten attacked over things I wrote, not my identity. Would I have muscled through it and continued writing if I had gotten 10x the amount of online harassment? I don’t know, maybe I would have managed, maybe it would have been too much for me. But there’s certainly some magnitude of abuse that would have gotten me to stop drawing attention to myself. Women and minorities get more abuse online, so it’s more likely to cross that line.

                                                                    Summary: everybody has tolerance level, there’s probably no significant difference in what the tolerance level is for men and women, but women get so much more abuse online it’s more likely to cross that tolerance level.

                                                                    1. 3

                                                                      Different people do have different tolerance levels; it’s easy to see that some people withstand massive abuse, and some don’t, and the differentiating factor is self-esteem, or confidence, or arrogance, however you want to interpret it. So why do the ones with that confidence tend to look alike? Freely granted, one reason is because there is injustice in the world, and a track record of success builds confidence.

                                                                      But that can’t be all either, and here is where my dark fear lies: by labeling people as disadvantaged, we disadvantage them. Psychology is a terribly powerful force. If you believe that the problems you face are the same problems shared by all human beings, trying to make something of our lives in an indifferent universe, then any successful human being can be a role model to draw strength from. If you believe that your problems are special, that only a few share your circumstances enough to understand, then you’re reliant on a role model who is “like you”. That mode of thinking used to be the province of moody teenagers, and growing past it was the sign of an adult — but now it’s just normal, and labeling strongly encourages it. All I want is a world where people tell themselves “I am a human being. I have been blessed with intelligence that can overcome any problem. I cannot ask for any more.”

                                                                      1. 1

                                                                        So, is your solution is to just ignore the problem and not talk about it? If so, I think that there has been enough proof to show that only makes the problem worse.

                                                                        1. 2

                                                                          No, just the opposite. If I just wanted to ignore problems and not talk about things, I think I could do that perfectly well on my own, without the aid of the internet. But because I have a foolish compulsion to try to make a positive difference in the world and help other human beings, you see me here. Thankfully for all involved, mostly that compulsion expresses itself as tens of thousands of hours of technical volunteering, but occasionally a bit of freelance philosophizing bubbles up. Agree with me or disagree with me, but kindly don’t misrepresent me.

                                                                2. 5

                                                                  Less death threats than a woman receives. I’ve had multiple people threaten to murder me just because I was streaming video games on Twitch, and I’ve never had more than a dozen or so viewers. If a woman was maintaining something as big as Redis, they’d be getting more death threats than Antirez.

                                                                  Nobody should be getting death threats, but that’s just the truth.

                                                                  1. 2

                                                                    I think it’s much more likely that people quit silently all the time, whether they’re URMs or not. It just doesn’t get publicized so much, so it’s not as visible. But when people quit publicly, it’s much more visible, so it’s what we tend to focus on.

                                                                3. 3

                                                                  I am choosing not to answer this because (1) it’s beside the point, and (2) as I said in the remark you’re replying to, nothing comes to mind. I’m not clear why you felt the need to ask for something that I already said I don’t have.

                                                                4. 2

                                                                  Yeah, the way women are treated in open source doesn’t help the situation.

                                                                5. 1

                                                                  I was hoping people would see it this way but it seems everybody takes it defensively instead of identifying problems. Thanks for not being one of them :)

                                                                6. 11

                                                                  What do you hope to gain by asking such a pointed question that comes across as very aggressive?

                                                                    1. 1

                                                                      To be clear: This is not trolling or off topic. This is a reply to a post that directly mentions the comment which it was replying to, and the content that this comment represents is exactly the kind of content that the link represents. I am not trolling, but want you to be aware that this behavior is being noticed.

                                                                      The constant flagging of comments only proves that flags can’t be used to do anything like banning people, because people are too immature, defensive, and unreasonable to flag properly.

                                                                  1. 34

                                                                    And here you see why Antirez wants out.

                                                                    1. 15

                                                                      Exactly, too many people in the industry spend their time stirring up controversy. Those folk do not provide solutions and just cause people like Antirez problems and a heacache. They complain and paint people that provide tremendous benefit to the company in a bad light.

                                                                    2. 18

                                                                      Go ahead, make your nomination.

                                                                      1. 11

                                                                        Why are there no Uzbekistanis on this list?

                                                                        1. 28

                                                                          Алекса́ндра Аса́новна Элбакя́н isn’t Uzbekistani but Kazakhstani (so not part of the usual US/Europe community), but definitely matches the criteria in the list, through Sci Hub challenges the status quo in ways that - in the long term - may exceed even Linus’ contributions and is even a woman (see the question up-thread for why that matters). So, there’s my nomination.

                                                                          1. 4

                                                                            I don’t know, in the long run, if Sci Hub will be more influential than Linux. But as of 2020 it’s absolutely more influential than Redis, LuaJIT, and Clojure.

                                                                            1. 2

                                                                              Hahaha, thank you for this answer :)

                                                                            2. 5

                                                                              Uzbekistanis make up 0.4% of the world population. Women make up ~50% of it.

                                                                              1. -2

                                                                                Women make up ~50% of it.

                                                                                What are you implying exactly?

                                                                            3. 1

                                                                              Because Redis, Linux, LuaJit, nor Clojure were made by women.

                                                                              1. -9

                                                                                Because none of them has come out as trans yet.

                                                                                1. 6

                                                                                  Per my sister comment, I don’t think a short, quipy comment helps further this discussion. This comment thread is potentially sensitive and I do not think we should escalate it.

                                                                                  1. 6

                                                                                    There is nothing we as users can do. This site is just going to continue going down the shitter unless the admins/mods start enforcing rules, or replacing the terrible, terrible, upvote-comment-tree comment format with a traditional forum layout. If I was running this site, I would ban this person (and everyone who wrote a snarky reply) for 7 days, leave the comment in-tact, and prevent people from replying to it. It’s simple and gets the message across.

                                                                                    1. 2

                                                                                      Could you link to the comment you’re referring to? I can see a couple candidates and don’t want to misunderstand you by guessing.

                                                                                      Also, what specific rule would you like to see added and enforced?

                                                                                      1. 1

                                                                                        “Why are there no women in this list?” is rather passive aggressive and in no way constructive, I think it warrants a temp-ban. It’s a zero effort cheap shot. Look at the comments that spawned from it. Would be a tragedy if lobste.rs became like HN, Reddit, or, godforbid, Twitter. </2 cents>

                                                                                        1. 2

                                                                                          Not to mention that the poster’s Twitter account is suspended – that takes some effort.

                                                                                          1. 1

                                                                                            moved reply to meta thread for the sake of conversation there: https://lobste.rs/s/lpvcsm/proposal_for_moderation_policies_no_tone#c_fu0xzl

                                                                                          2. 1

                                                                                            Sorry I shouldn’t have used the word “rule”. I don’t think specific rules are strictly necessary. All I’m saying is, you’re admin, it’s your site, you have all the power and can do basically whatever you want. I feel like punishing the bad actors in a public way would fix a lot of things.

                                                                                            SomethingAwful and Facepunch had pretty good mod teams and tooling if you want something to go off of.

                                                                                          3. 1

                                                                                            Well, now we know why N64N64 isn’t a mod.

                                                                                        2. 2

                                                                                          What is your problem?

                                                                                      2. 2

                                                                                        RMS fails the second criteria? If not, why did you choose not to include him?

                                                                                        1. 25

                                                                                          I can imagine those four working well together. I cannot imagine them working well with RMS.

                                                                                          1. 1

                                                                                            This comment is especially funny when juxtaposed with https://lobste.rs/s/gigoo8/end_redis_adventure#c_tf95fm - as RMS is well known for his ‘gross’ approach to sexual advances.

                                                                                          2. 1

                                                                                            While I understand the idea, I wonder whether such a thing is in general a good idea. You know, when someone is good and successful at X, it doesn’t necessarily mean that they are also good at making others good and successful at X.

                                                                                            This is based on a complete assumption. What if these people got successful because they went their own road. I think that’s what these people have in common. Following the steps of one of them closely (which might be the main thing they can provide) might be the complete opposite.

                                                                                            Without wanting to go too far from that thought, I also see that in day to day work, that is people assuming they do the right thing based on someone else having done the same thing. While this of course might be true and is a good approach in many situations, it might not be.

                                                                                          1. 2

                                                                                            Joy presents one of the nicest/quickest OOTB crud experiences I’ve had. The combination of nice cli generator commands, sqlite integration and familiar structure make it a real pleasure. Plus, you get to write in Janet which is a perk in itself.

                                                                                            1. 1

                                                                                              I never understood why they (or anyone else afaik) tried to take Myst’s format to the web. Seems like a good medium for that type of game.

                                                                                              1. 1

                                                                                                How do you enable this preference as an end user? Is it OS specific or browser specific?

                                                                                                1. 1

                                                                                                  Months ago I wrote this little page that lets you know whether your browser supports the prefers-color-scheme CSS media query or not: https://prefers-color-scheme.bejarano.io

                                                                                                  1. 1

                                                                                                    Just change your theme to dark mode on iOS or Android, or whatever OS. I’ve included instructions on the post on how to manually test it in Firefox.

                                                                                                  1. 1

                                                                                                    What does this offer that Lapis doesn’t? Lapis is also sinatra like and more battle tested (itch.io for example).

                                                                                                    1. 1

                                                                                                      I tried to update my only Lapis project just two weeks ago and also didn’t have such a good impression. The old instructions with luarocks (discouraged by openresty) still kinda work, but iirc only with 1.6.0 and not 1.7.0 - but I might have just made some mistakes. (1.7.0 is from May 2018).

                                                                                                      I’m sure it’s still usable, but there are a ton of open issues and pull requests and I don’t have high hopes there will be a lot of maintenance…

                                                                                                    1. 2

                                                                                                      hishamhm (of LuaRocks fame) is recently trying to develop his own take on a statically typed dialect of Lua: https://github.com/hishamhm/tl

                                                                                                      1. 1

                                                                                                        There are actually a couple of promising projects, some with common developers. See this issue on the tl repo:


                                                                                                      1. 50

                                                                                                        I think most of the problems are ecosystem/people issues–in turn driving the language/framework problems.

                                                                                                        Selected short gripes on people (any one of which I could write volumes on):

                                                                                                        • Conflating standard library problems with language problems. ES5 was actually a pretty reasonable language–the problem came from having a standard lib so anemic (to this day!) that people feel the need to keep adding stuff. If TC39/W3C spent less time getting high on their own supply and more time fixing the standard library then so much of what I hate goes away.
                                                                                                        • Permanent neophilia and just an overwhelming lack of restraint and good taste. Nobody seems to acknowledge the costs to chasing new shiny.
                                                                                                        • Everybody uses solutions backed by Big Players without regard for whether it’s a good idea or not. Your blog doesn’t need React. Your E-commerce site probably doesn’t need Cognito. Staaaaaahp.
                                                                                                        • Everything has so many dependencies and this nests. Left-pad should’ve been a wake-up call, and yet apparently nobody is actually serious about fixing that.
                                                                                                        • Tooling is too complicated and takes too long to run. Why is setting up Webpack annoying? What is it hard to just run off a config off the top of one’s head?
                                                                                                        • Testing culture seems to have gone super far into unit testing and just really sucks for actual can-the-user-do-the-thing-that-makes-us-money testing. It should be easier to script UAT than to do the DI and other stuff around unit testing, but for some reason that’s not where we evolved.
                                                                                                        • Too much popularity-driven development. We could be forgiven for assuming that most technical decisions being made in Webland are the result of conference talks and Big Personalities posting online.

                                                                                                        Selected language gripes:

                                                                                                        • ES6+ is getting past what comfortably fits in a person’s head.
                                                                                                        • CSS really needs to just have nested scoping already.

                                                                                                        Select framework gripes:

                                                                                                        • React has made dumb decisions and devs won’t back down on them. className, full stop.
                                                                                                        • ThreeJS keeps carving out key stuff–say, orbit cameras–into the examples instead of core, keeps adding other shit into core, and somehow bungles packaging the ‘extras’ into friendly NPM modules. At least this was the case last winter when I ran into it, again.
                                                                                                        • D3 is super easy to make slow and awful, and just always looks like spaghetti code to me.
                                                                                                        • There is no good framework to do some of the Java computational geometry stuff we did two decades ago. This is likely because making a holey concave polygon from other smaller holey concave polygons and triangulating it is Real People Hard but making another vdom knockoff is Frontend Engineer Hard.

                                                                                                        I could go on, but why close the year on a negative note?

                                                                                                        1. 11

                                                                                                          lack of restraint and good taste.

                                                                                                          This sounds like the root cause of everything else here.

                                                                                                          1. 3

                                                                                                            ES6+ is getting past what comfortably fits in a person’s head.

                                                                                                            I agree. If you took generators out of ES6 I think you’d have a reasonably comprehensible version of JS. I can get behind optional chaining to kill _.get(myObject, 'some.path.where.any.of.these.could.be.undefined.or.null)… but the trend of just adding more things to the language is a bit concerning.

                                                                                                            1. 3
                                                                                                              1. Incredibly poor library quality.

                                                                                                              Basically, a JavaScript library consists of

                                                                                                              • gnarly spaghetti code
                                                                                                              • without comments
                                                                                                              • inside a single file
                                                                                                              • with some constructor that takes a config object
                                                                                                              • where roughly 80% of the properties are undocumented
                                                                                                              • and 90% of the config options are not tested with each other
                                                                                                              • and break hilariously when used together
                                                                                                              • with no existing tests, and no actual testing being done between releases,
                                                                                                              • which means things randomly breaking in minor releases,
                                                                                                              • and the project is “active”, but the authors aren’t really acknowledging any bugs.
                                                                                                              2. Really bad build times.

                                                                                                              At my work a project has somewhat above 1.5m lines of Java code, and probably less than 50.000 lines of JavaScript.

                                                                                                              The 1.5 million lines of Java build faster than the 50.000 lines of JavaScript.

                                                                                                              3. Don’t even bother using libraries. They simply won’t last for the life-time of a commercial project.
                                                                                                              1. 3

                                                                                                                Implying frontend engineers aren’t “real people” seems really unpleasant and stupid and seeing it upvoted a lot makes me less inclined to visit and recommend this website

                                                                                                                1. 7

                                                                                                                  I read this in the way of “this stuff is hard because it’s genuinely hard for people in general, versus this other stuff is made hard for frontend developers because of random yak shaving reasons in JavaScript that don’t exist in Java”

                                                                                                                  1. 3

                                                                                                                    It really reads more like “real engineers work on actually challenging problems involving polygons whereas dumb frontend people just mess around with stupid vdom knockoffs.”

                                                                                                                    1. 1

                                                                                                                      Well tbf, one of my pet peeves is arbitrary job titles. When did we all become engineers?

                                                                                                                  2. 4

                                                                                                                    Where in the comment can you point to @friendlysock stating the frontend engineers aren’t “real people”?

                                                                                                                    I’m genuinely curious. I don’t read it like that at all. I read his comment as stating that a lot of the ecosystem issues around frontend development are driven by short-term fads and ideas churn. This isn’t a reflection on people as individuals, rather on the group as a whole.

                                                                                                                    1. 2

                                                                                                                      it’s probably this part

                                                                                                                      This is likely because making a holey concave polygon from other smaller holey concave polygons and triangulating it is Real People Hard but making another vdom knockoff is Frontend Engineer Hard.

                                                                                                                      though I interpreted it differently. I understood the message as both things being hard, though the vdom knockoff would get more credit from frontend developers than the computational geometry stuff.

                                                                                                                      edit: didn’t see @mbrock’s comment:)

                                                                                                                      1. 1

                                                                                                                        making a holey concave polygon from other smaller holey concave polygons and triangulating it is Real People Hard but making another vdom knockoff is Frontend Engineer Hard.

                                                                                                                        Maybe I’m misreading or just grumpy but it’s pretty common for Smart People Online to imply some kind of subhuman status for programmers who work on frontend…

                                                                                                                        1. 6

                                                                                                                          Last job I had was at least half frontend engineering, job before that 3/4. There was some genuinely tricky frontend work–98% of it though was not. I’m not some Real People engineer shitting on FE work without any idea what it’s like. Honestly, I’m unsure the work I do mostly qualifies as Real People technical work at all anymore. That said…

                                                                                                                          In my experience the types of problems solved and praised in frontend circles–frequently in the web in general–tend to be either:

                                                                                                                          • dealing with self-inflicted complications (“grunt was too old so we used gulp but I didn’t like it so we switched to we webpack but now we’re trying parcel!”)
                                                                                                                          • reinventing the wheel yet again (“kachow folks here’s your boy friendlysock coming at you with yet another grid system that uses the same class names as bootstrap but handles floats slightly differently”)
                                                                                                                          • fighting problems in the wrong part of the stack (“we have to use an SPA because our Rails backend is SO SLOW serving just normal pages”)
                                                                                                                          • dealing with stupid browser behavior (“that webworker messaging worked great until IE11 decided to fuck up transferable objects and just spew memory everywhere”)
                                                                                                                          • dealing with org dysfunction (“look I know you want it pixel for pixel to match the cut up but like you never explained the animation states of this button”)
                                                                                                                          • dealing with stupid business constraints (“our customers want our app to load faster but you need to pull in 15 megabytes of 3rd party analytics scripts via GTM, one of which is apparently hosted on a Raspberry Pi with a 2G connection in Antarctica”)

                                                                                                                          And look, I’ve made my money solving all of those problems. And it can be a thousand times more frustrating to deal with any of those things than a Real People algorithm.

                                                                                                                          But, like, let’s be real here: the things people go to conferences about and get Github stars on and tweet about are different orders of technical difficulty compared to what many people do in undergrad CS.

                                                                                                                          (And no, before you get annoyed at that, I don’t have a CS degree either.)

                                                                                                                          1. 2

                                                                                                                            I dunno, couldn’t you make such a list about backend programmers, game developers, like everyone except actual researchers and probably most of those too? “Wow, I’m a backend developer, I’ll spend two years switching back and forth between Postgres and some weird novel big data thing and fuck around with different message queues that never seem to work reliably and then rewrite all our Go micro services into Rust”, etc.

                                                                                                                            1. 1

                                                                                                                              I’ll spend two years switching back and forth between Postgres and some weird novel big data thing and fuck around with different message queues that never seem to work reliably and then rewrite all our Go micro services into Rust

                                                                                                                              That seems more like what a frontend-dev-tasked-with-backend-work would do, not what a real backend programmer would do.

                                                                                                                              1. 1


                                                                                                                              2. 1

                                                                                                                                I certainly could, and I believe the same about backend devs in most cases. OP specifically asked about frontend stuff.

                                                                                                                                (Also, game devs get a little bit of a pass from me since they deal with a much more varied problem domain–provided they aren’t just reselling Unity assets.)

                                                                                                                        2. 1

                                                                                                                          I think he meant “real software developers”.

                                                                                                                        1. 3

                                                                                                                          I’m really confused, does the author have any merit in any of these arguments?

                                                                                                                          He added an addendum to the post recognizing the rebuttal but it leaves me even more confused.

                                                                                                                          1. 9

                                                                                                                            Brave had intended to do a lot of stuff. There are plenty of reddit/hacker news threads with outraged users up in arms related to them. He might be correct that Brave never did some of those things, but only because the internet at large was pretty pissed.

                                                                                                                            Replacing ads

                                                                                                                            Accepting tips on users behalf and scraping profile data to misrepresent site owns as registered users

                                                                                                                            There’s a couple Brave people in that thread, brandnewlow and i think brendoneich adamantly defending this and trying to pass it off as a “UI problem”. IMO seems like they try to tip toe on the line of how much they can get away with.

                                                                                                                        1. 2

                                                                                                                          I believe Cowboy is what Heroku runs on if my DevTools aren’t lying to me. I’d consider that a fair endorsement.

                                                                                                                          1. 1

                                                                                                                            Hermes was written as a cowboy middleware. I’m not sure how many of those authors would make that particular decision again, given the chance.

                                                                                                                          1. 3
                                                                                                                            Main Changes
                                                                                                                            * new generational mode for garbage collection
                                                                                                                            * to-be-closed variables
                                                                                                                            * const variables
                                                                                                                            * userdata can have multiple user values
                                                                                                                            * new implementation for math.random
                                                                                                                            * warning system
                                                                                                                            * debug information about function arguments and returns
                                                                                                                            * new semantics for the integer 'for' loop
                                                                                                                            * optional 'init' argument to 'string.gmatch'
                                                                                                                            * new functions 'lua_resetthread' and 'coroutine.close'
                                                                                                                            * coersions string-to-number moved to the string library
                                                                                                                            * allocation function allowed to fail when shrinking a memory block
                                                                                                                            * new format '%p' in 'string.format'
                                                                                                                            * utf8 library accepts codepoints up to 2^31 


                                                                                                                            1. 1

                                                                                                                              Thank you for posting this :) It looks like a worthy upgrade, I wonder if the code is still able to be compiled on DOS? :O