Originally posted by mbello
View Post
1) HTTP/HTML/CSS was originally built for these fully reloaded mostly static pages
2) JS started as a shitty toy language. It didn't really improve until 2010s
3) Nowadays we're abusing the whole sw "stack". Especially the most used JS features appeared during the last 5 years.
4) JS is still 6 to 8 times slower than Java. Java is in some cases 6 times slower than native. So basically all advancements we got from better hardware in 2010s are neutralized with this shitty performance. Maybe even those speedups we got in 2000s.
5) You can't control the machine that well with JS. You can't do your own double buffering, explicit memory allocation, decide yourself what to draw. The DOM model assumes all writes to DOM must be immediately rendered. It's retarded
6) JS is dynamically typed and large programs are being ported to JS. This will lead to increasing number of bugs thanks to dismissing all the language research done in 1970-2020.
But then why are we here now? That speaks mostly to the failure of Desktop GUI technology in evolving with times. Delphi and Visual C++/C#/Basic are no longer an option (we now actually care about supporting multiple platforms). Java never took off (for good reasons). There are some interesting options, like Qt, but C++ is a big reason not to even try it.
Maybe Flutter will finally fill this void?
Maybe Flutter will finally fill this void?
- GTK+ - object-oriented programming in C. Now in 2019 most of us know what a lie OOP was. It didn't deliver the properties it promised. OOP isn't that modular, for instance. Now, doing OOP in C is just totally fucked up. The only good thing is, writing bindings is easy. GTK1-2 are horribly outdated. Technically speaking, you want scene graphs, flicker & tear free graphics, smooth animation and video, and other such advanced features. You want to define control layouts with constraints, not pixels. GTK4 might be better, but the market has already leaned towards the browsers. The Qt folks will also continue to disagree with GTK.
- Qt - interfacing with C++ is horrible, the language is kind of high level, but with the inherent ability to easily shoot you limbs off with a gatling gun. They later developed a high level scripting language for C++ haters. It sort of solves many problems, but on low level you still need to interface with C++. There's also a difference between Qt and KDE apps. Updating Qt 3-> 4 -> 5 has been a major pain in the ass. It took years to port KDE. Not really a proof that the toolkit is productivity oriented in any way. Still, I think Qt is the most advanced toolkit for Linux users.
- EFL - rasterman doesn't get why void* pointers are bad. It's impossible to imagine any success until you learn the basics of programming languages you're supposed to use. There are threads in dailywtf about this.
- all the legacy unix toolkits - both, the programming feels clumsy and the technical solutions are badly outdated. They merely exist to support legacy apps and their GUIs.
- Mono ecosystem - not that bad IMO, but it matured a bit late. Everyone is using something else now. On Mono I'd probably use F#, not C#. But C# is there for the mediocre programmers.
- Java ecosystem - thanks to years of legal struggles, wasting money on crappy niche Unix systems, the Java GUI toolkits didn't get any updates after Swing. Swing was a horrible clusterfuck where you needed tons of classes, not only for containers, but layouts, panes on top of panes. It was a mess which they cleaned afterwards. They also fucked up JavaFX by first introducing a new clumsy scripting language. It took them years to recover. Only now the toolkit seems ok, but Oracle somehow screwed up the distribution and packaging your modular app is a PITA. The Java language is also constantly underestimating everyone's intelligence. You could use Clojure, but it's slow and less rigid with its type safety. Scala apparently fixes many problems, but the compile time is absolutely horrible, especially with Scalaz.
- all the other toolkits in other languages - people can't really decide what language to use so they'll stick with C, C++, Python, and JS. So no winners here even if there were good toolkits available.
Comment