Hacker Newsnew | past | comments | ask | show | jobs | submit | rahkiin's commentslogin

Lua is awful for anything large. It is untyped, refactoring does not exist, etc. C# is an amazing language with amazing tools and very good libraries.

Have you considered using tables?

It is funny how we keep asking more and more and more even though we already have it so much better than before. Can we never be happy with what we have?


> It is funny how we keep asking more and more and more even though we already have it so much better than before.

I've been developing web stuff for 15 years now and sometimes I can't believe comments like these. We didn't have it "so much better before". CSS sucked hard and getting things right for three devices was an incredible pain in the ass.

Tables have semantic meaning. They don't support fractional units. Reflowing for mobile is impossible and you need JS hacks like splitting tables. You can't reorder natively.


I have been developing web stuff for 20 years now and I also can’t believe comments like these.

Flex and grid enable layouts that are far beyond anything we could do with table layouts. Anyone who claims otherwise has obviously not done any amount of serious, production FE UI design and development.

Are there bits of DX ergonomics I’d like in flex and grid? Of course. Does the syntax sometimes feel a bit arcane? Yeah. But the raw power is there, and anyone who claims the contrary is either a gormless backend developer, or some troll who is trying to design things in MS Word.


Tbf it said “we have it so much better Than before” I think they agree with you

I saw a similar comment on HN recently that CSS was "better" back in the day and what we have today is either unnecessary or too hard.

I reminded that person we had to use floats and positioning hacks and abuse HTML tables for page layout before flexbox and CSS Grid were created.

There was no way simple method to center a div!


> we already have it so much better than before

They meant now. "we have it so much better than how it used to be."


How would tables solve the issue they're talking about?

Borders can be applied to table cells independent of the content inside cells.

Gap decorations allow you to add borders between flex/grid items, but without the woes of dealing with table quirks and behavior.

Common use cases would include mimicking design patterns found in print layouts, particularly newspapers and menus, to help divide groups of items or info.

Examples: https://developer.chrome.com/blog/gap-decorations


How are you currently retrieving feedback on the language design? Have you worked with teenagers and parents on it?

I went through the demo on the first page and found it quite complex (but then I am stuck in existing patterns of course).


I’ve got a Discord from my previous game of about 2000 people, mostly teenagers, and my testers have mostly come from there. To name one example, just yesterday a teenager completed a chess game after 3-4 weeks on Easel. I’ve been incorporating tons of feedback from the testers over the past year and a half.

I think that it may look strange to a person who has coded before because the language is semi-declarative. Most teenagers come to Easel as players with no prior programming experience, and begin by remixing their favourite game, and that’s when the semi-declarative model really shines. Many interesting changes can be done in a single edit because the code is clumped together in a hierarchy. Whereas in another programming language there may be more indirection and you might need to edit 3 separate parts in different files to make 1 change, and people who haven’t coded before don’t know how to find all the parts. I think Easel works for players becoming makers but can feel strange for people who come from other languages.


It is very interesting though! I have been interested in this kind of language design for interactive UI for a while. If there was a quick article outlining how all the "with" and "on" and "own" work to more experienced developers using references to existing language features, I'd love to read it. Right now it reminds me of the declarative style of qt ui and online primitives introduced in godot, but i haven't looked at it in more details. Also love your take on async. Wish you all the best luck, this seems like a really thought through language design!


This is a very kind comment, thank you! Yes it has been a LOT of iteration to make the language what it is. I think it would make sense to have a page for experienced developers to better understand what Easel is. Right now maybe the closest is this page: https://easel.games/docs/learn/key-concepts

Thanks again for your kind words!


This is really cool, these patterns (run once now and then once triggered) surface all the time and usually turn into ugly code! How many interations did it take?

So most lines like A { B{ on D{ print() } } C{} } equivalently desugar into something like a = A; b = B(); a.mount(b); d = D(); d.on(f); b.mount(d); .. ?

I got confused by a couple of things. One of them is whether object parameters act like context parameters and there for depend on names in the caller variable scope? Ie if i define 'fn ship.Explode', i must have variable ship at call site? But i can still otherwise pass it explicitly as alien_ship.Explode(), right? How do i know if a particular call takes the current object into account? If i have two variables in my nested scope: ship and asteriod and both have ship.Explode and asteroid.Explode, which one is picked if i do just `Explode`? The innermost? Or I can't have two functions like that because the first thing is literally just a named variable and not a "method"?

Overall, if you could provide some examples of how things could have de-sugured into a different language, that'd be very interesting! Maybe with some examples of why this or that pattern is useful? I think it does a good job for things like on / once, but I'm not grokking how one would structure an app using this variable scoping use clause and object parameters.

Also not sure how to define functions that could be on'd or once'd. (Ah, i see, delve)


Price. Data sovereignty. Legal. All are valid reasons to self-host


I’ve been using AirDrop to send files between different mames of iOS phone and tablet for ages.


The fact that you are impressed that different products from the same brand are interoperable between them says volumes about Apple and Apple users.


Android didn't have a way to share files between them for the longest time. Initially there was Beam but it never worked. The first semi-reliable way to exchange files between two android phones, without using a third party utility, was Nearby Share dates from 2020.

So yeah, it's a low bar, but one that only Apple bothered to clear from the get go apparently.


Ah, uneducated smugness, another Apple trait. It's been possible to share files between any android since 2009, via Bluetooth.


This example assumes 1fte=40 hours which is not nexessarily the case in all countries or under all collective agreements. 1fte can be 36, 38, or even 48 hours.


What you say about google might be true. And its changes to android might be bad…

But that does not mean xslt should be kept alive just because of that. It should be judged on its own merits


And thats part of the problem, they didn't judge it on its merits.

Google judged a 25 year old spec that is now 2 major versions out of date.


So why is almost nobody here actually defending it on its own merits? In my opinion XSLT was a bad idea ~20 years ago when I started in web development. It was convoluted, not nice to work with and the implementations buggy.

Most people seem to think it is bad because it is Google who want to remove it. Personally I just see Google finally doing something good.


There are plenty of defenders of XSLT around here. More importantly though, this thread isn't focused on debating the pros and cons the tech.


There is so much defense of XSLT it’s crazy you assume no one is here defending it. This thread isn’t the single defense point against Google.

Not only that Google engineers Mason Freed has shown pretty forcefully that he will not listen to defense, reason or logic. This further evidenced by Google repeatedly trying to kill it for 25 years.

Personally I just see you licking Google’s boot.


This still needs cohesive authorization and central file sharing and access rules across apps. And some central concept of projects to move all content away from people and into the org and roles


I recently needed to show a pdf file inside a div in my app. All i wanted was to show it and make it scrollable. The file comes from a fetch() with authorzation headers.

I could not find a way to do this without pdf.js.


The html object tag can just show a pdf file by default. Just fetch it and pass the source there.

What is the problem with that exactly in your case?


I think it can't do that on iOS? Don't know if that is the relevant thing in the choice being discussed though. Not sure about Android.


This made me try it once more and I got something to work with some Blobs, resource URLs, sanitazion and iframes.

So I guess it is possible


Yeah, blobs seem like the right way to do it.


There does not seem to be a way to configure anything though. It looks quite bad with the default zoom level and the toolbar…


https://www.npmjs.com/package/pdfobject works well as a wrapper around the <object> tag. No mobile support though.


Both work for me in the Netherlands


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: