newgame
Though I'd like to think that I presented clear arguments even though I didn't present _empirical_ evidence for my arguments. I presented ideas and logical steps how to arrive at them. Which, to me, makes it more than "just an opinion". Sure, you may disagree with the ideas and or the steps–it's not a mathematical proof, it's much softer. Sidenote: Nonetheless, I provided two links to empirical research finding counterintuitive results from TDD and from unit tests.
Clarification: I am not engaging in a strawman. I didn't claim that _you_ said these are the only dimensions. I tried to express, generally, that software quality is one of several important dimensions. I could have phrased it in a clearer way.
Lean Testing or Why Unit Tests Are Worse Than You Think
Lean Testing or Why Unit Tests Are Worse Than You Think
How to route like a hacker with MobX and router5
Towards a Better GUI Programming Benchmark
7GUIs: A GUI Programming Benchmark (2018)
Show HN: Mobile HN client built with MobX
Why MobX?
Challenges in GUI Programming
On Operational Environments
Remote: Yes
Willing to relocate: No
Technologies: Web/Frontend (HTML,CSS,JS), TypeScript, React, MobX, Kotlin, Android, Angular2, Java, Some backend experience (Node, Spring)
Résumé/CV: http://stackoverflow.com/story/eugenkiss
Email: [email protected]
Primarily interested in (mobile) UI app engineering position and, to a lesser extent, full-stack position.
On Tooling and Static Typing
Why React
Just to be clear, that does not make the approaches "incorrect". The list "names" is not necessarily an argument to a method. It might be a local, intermediate result that does not have the risk of "mutation at a distance".
for (int i = names.size()-1; i >= 0; i--) {
String name = names.get(i);
if (name.startsWith("B")) names.remove(i);
}
Admittedly, needing to use an explicit index counter is not as nice (and more prone to errors) as using the other for syntax. But one could imagine a language with e.g. macros that made the backwards-looping syntax more intuitive (I assume a single-threaded situation and an ArrayList).Your general point still stands though.
Let me give you some background information. The idea for 7GUIs was born while I was writing my master's thesis Comparison of Object-Oriented and Functional Programming for GUI Development[1]. My advisor and I first agreed to compare Java7/Swing and Clojure/Seesaw. That's the reason why you see these implementations in the repository. Over the course of writing the thesis we changed the scope to compare JavaFX in Java and Scala as well as some novel FRP-inspired frameworks and all that with a GUI _programming_ usability benchmark which I named 7GUIs. I received great input from my expert reviewers, especially Tomas Mikula[2].
Anyway, 7GUIs is work in progress although nowadays I have much less time to work on it (not studying anymore but working). Not all implementations are complete (e.g. Android/Elm) and I'm sure the existing ones can be improved. So I'd be very happy if others would help to extend 7GUIs with more implementations or analyses. I still want to try out other approaches myself and compare them with 7GUIs but again time is limited sadly.
You can find much more information in the thesis[1] if you're interested. I've also written a short overview blog post[3] that deals with Reactive GUI Programming.
[1]: http://www.eugenkiss.com/projects/thesis.pdf
[2]: http://tomasmikula.github.io/blog/
[3]: http://www.eugenkiss.com/b/overview-of-reactive-gui-programm...
FYI, Kotlin will have the same behavior as Ceylon in the future, i.e. it's going to be a runtime error in the first case: http://blog.jetbrains.com/kotlin/2014/10/making-platform-int...
It shares many features with Xtend but offers more. It has the opposite "problem" wrt IDE support though: Great IDEA support but no Eclipse support.
An Empirical Study on Program Comprehension with Reactive Programming [pdf]
There are some nice papers that give an overview of the FRP landscape.
“A Survey on Reactive Programming”: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.416...
“Towards Reactive Programming for Object-oriented Applications”: http://www.guidosalvaneschi.com/attachments/papers/2014_Towa...
[0]: https://github.com/TomasMikula/ReactFX
[1]: http://tomasmikula.github.io/blog/
[2]: http://tomasmikula.github.io/blog/2014/04/25/combining-react...
If you are confused by the term FRP and its different interpretations, I tried to summarize them in a stackoverflow answer: http://stackoverflow.com/questions/22795062/is-it-possible-t...
On Usability of Programming Languages
Simple and Interoperable Functional Reactive Programming with Scala.Rx
Programming Languages are the Least Usable, but Most Powerful User Interfaces
He pointed out that a more nominal type system is a solution. Because when you give meaningful names to your types the error messages will become clearer and not full of long, inferred types that reveal potentially confusing or unimportant implementation details.