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

Flutter builds pretty decent desktop apps these days.



I would develop a production-ready Datalog database system.

I am convinced a better alternative to the execrable SQL would significantly raise developer productivity.

http://frest.substack.com


If you are asking for the most general-purpose technology around right now, I would say Dart/Flutter.

Dart is a half-decent language, able to be used without excessive pain for mobile, desktop, web and backend development. It compiles to Javascript and WASM, as well as native code. And web can be either traditional HTML or a recreation of your mobile/desktop UI.

It’s a really healthy community with strong leadership and wide participation.

You’ll need SQL, but otherwise, you can build any kind of app with Dart and Flutter with reasonably fluidity.


At some point, I need to dig into how good a general UI environment I get with Godot. There appears to be something at least usable there.


I significantly prefer the Mac user experience over Windows (it’s bad, but Windows is abominable).

Still, I use Electron apps that UI-wise are fine. Well-known examples include Discord and Slack. They’re big and a bit slow, but they’re fine and I appreciate the uniform user experience when I use those apps on other platforms.

Flutter is just better, provides something close to a native experience, and slick experiences at that (really slick animation is easy) while being an efficient cross-platform development solution (for mobile, also).

But electron etc are a fine choice. The heft of the Javascript ecosystem, if nothing else, is a serious consideration.


If you really are doing this for yourself, Flutter has the best development efficiency and you can use animations and such pretty easily to make a slick product.

But no-one hires Flutter developers at least in the US and Canada. It’s pretty popular in India and China and some other parts, but you’ll struggle if you want to find work doing this, or if you try to hire someone to do it (although the latter wouldn’t be terrible, and you’d be hiring someone who’s choosing a tool for its virtues, not just its market share).

If those considerations bother you, then Electron or something lighter weight like Gluon or Electrino.

The other major alternative is React Native. You should look at that also.

But if this is really just you, Flutter, no contest. Desktop, mobile and even web (although it is not ideal for just a web app, but it would let you offer a web version with minimal extra affort, and it’s improving in this area rapidly).


https://frest.substack.com

I am working on better APIs driven by a better user interface experience.

The better APIs are REST but relational. The better UIs are driven by an embeddable component-based view of the API and its data.

The result is plastic software that out of the box more resembles Access or FileMaker than Ruby on Rails.


No.

There is a particular logic (“Classical Logic”) that people are usually thinking of when they mention logic. Many folks don’t know that there are many, many logics that have been invented by mathematicians and philosophers, and an infinity of possible logics. All are as mathematically sound as each other. They vary in how truth behaves (SQL’s true-false-null is a poor attempt at a 3-valued logic, for example; or you might include notions like necessity and possibility or time).

Fuzzy logic is another logic. It’s quite precise about how truth behaves, and truth is a real number on the range [0, 1]. And it does a nice job of providing a notion of partial truth.


To give an example: you can define "tall" for an adult human as being 0 if 150cm, 1 if 210cm, 0.7 if 190cm, etc.

Unlike boolean logic where you're either "tall" or "not tall".


I've learned fuzzy logic during my graduate control theory study, but never get what the point of it, at least in practice.

Using your example, if the control system can utilize non-binary, numerical input and do something with it in actuators, then just give it the actual height (in cm). If it can't, then introducing the concept of "semi-tall" isn't going to be helpful.

The example we learned in class is the classic thermostat of an air conditioner. Sure, it would be nice if it can tell between cold, warm and hot instead of a binary 0 and 1, but why not just use the actual numeral value (0.1, 0.22, etc.) then?


The most important thing it lets you do is combine and compare factors in nonlinear but intuitive ways.

The aircon example isn't really that great, to be honest, because there's only one rule and only one action you can take. If you add in "how full is the room" (and letting that be tuned for room size), an automated window vent, the outside temperature, and some sort of air quality reading, you can see how the job of making a room tolerable to be in starts to combine factors in interesting ways. https://en.wikipedia.org/wiki/Fuzzy_associative_matrix and https://en.wikipedia.org/wiki/Defuzzification are things I'm sure your course would have covered, but that's where I'd point at as a start.


Because when Fuzzy Logic for control was trying to gain popularity, processors were far more expensive. FL had the promise of being able to do complex control with really cheap hardware.


Computer programs needn’t be Turing Complete. There are plenty of useful languages that are not, the Relational Algebra being example 1, which is equivalent to First Order Logic, and is in a pretty strong sense about as good as you can do without Turing Completeness.

The entire industry’s understanding of the power of the relational model has been destroyed by SQL, which is the largest foot gun of so many in our industry.

In fact, much more of most business applications (hell, just about all applications) can and would profitably be expressable in First Order Logic. The resulting programs would be simpler, easier to modify, easier to get correct, and other things besides.

Much of what Bret Victor has shown could be expressed in First Order Logic.

Would you still want Turing Complete traditional programming languages? Of course. But both programmers and non-programmers would benefit from being able to express more of programs using the sorts of declarative idioms that Bret Victor has shown and that the relational model provides.


> The entire industry’s understanding of the power of the relational model has been destroyed by SQL, which is the largest foot gun of so many in our industry.

When people say stuff like this, I think of traditional post&beam construction guys complaining about the way that stud framing has destroyed the industry's understanding of the power of "real construction". Whether or not that's true, stud framing has been used to build homes for on the order of a million times more people than post&beam. Perhaps it is true that stud framing obscures a deeper understanding of the nature of wood, joinery, loads and so forth, but sometimes the point is just to build a shit ton of houses, cheaply, efficiently, effectively, knowing that changes in requirements will make most houses largely redundant before (most) stud framed houses are gone.

SQL: shallow, weak, wrong, incomplete, misleading, and how the world gets built.


Yes, I think we should build more DSL toolkits. Turing-complete languages are too expressive.

If we had a meta-language like Lisp or ML that had very good capabilities to quickly develop DSLs with very clean restricted semantics for every particular component of a big system, and tooling to automate proofs for said restricted DSLs, software would be more robust and easy to develop.

Alan Kay was pursuing parts of this vision at Viewpoints Research Institute. Racket is also very focused on DSLs. Any others?


90%[1] of popular DSLs turn into Turing-complete languages over time. And they usually end up as very badly designed Turing-complete languages.

[1] Or some other made up, but still very high number.


Are there languages today that embody first-order logic (perhaps Prolog)?


Datalog: https://en.m.wikipedia.org/wiki/Datalog

Prolog is actually Turing complete.


Indeed, sir.


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

Search: