9 ms·
Maybe this isn't react-specic, but the places I usually work at have "react experts" who turn the frontend into an multi-gigabyte abomination of dependencies, u
by zug_zug 6y ago
Maybe this isn't react-specic, but the places I usually work at have "react experts" who turn the frontend into an multi-gigabyte abomination of dependencies, unpredictability ("Just blow away and npm install again"), and multi-minute "compiles" of an interpreted language.
- axegon_ 6y agoPrecisely.
- ironmagma 6y agoNone of that is about React, it’s about npm and webpack which are also used by the other libraries. With the compilation, it’s damned if you do and damned if you don’t. People complained before we had static analysis tools that JS wasn’t a real language, and now that they exist and add wait time, people complain as well. But all of that is beside the point where you were claiming that React doesn’t even need to exist, not that the development cycle is less than ideal.
- axegon_ 6y agoReact is a symptom of the disease that is js. Unorganized, entangled spaghetti of unreadable and undebuggable code and callbacks. And js is not a real language. Or to put it in another way, javascript is to a programming language what a paper plane is to a Eurofighter typhoon: one is a toy to entertain little children, the other one is an actual product of engineering.
- ironmagma 6y agoThat sounds very much like you’re just not trying. Debugging is simple in JS, just set a breakpoint or put a debugger statement, you can even evaluate arbitrary expressions at the console when execution is paused. As to spaghetti code, well that’s just what someone would say if they had no clue about the architecture of React, it forms a very specific flow of data from the top down. Some libraries allow or encourage spaghetti code such as jQuery, but that’s hardly specific to JS as the number of spaghetti code C programs is essentially uncountable. JavaScript interpreters are present and used on more systems than any other language which makes your claim extremely inaccurate and even ignorant.
- axegon_ 6y agoThe problem is that javascript is fundamentally flawed by design. It has the __WORST__ and most idiotic type system out there, it has no clue whether it wants to be oop or a functional language and there are outrageous amounts of inconsistencies everywhere you look. The argument for spaghetti C code is valid, but you'd find a lot more js spaghetti than C spaghetti, even if you adjust for the number of C code to match the amount of js code. And there are two reasons for it: 1. The horrid language that is javascript in it's core. 2. Everyone and their dog is a developer these days, and in 99% of all cases js developers without any fundamental understanding of memory management, data structures or algorithms(basically cs 101). For C, you need some fundamental understanding of all of those things for anything beyond "hello world". I'm willing to bet that if you ask 10000 js developers what the heap and stack are and how they work, 9998 of them would have never heard of those terms. And you'd probably have to add a few zeros before you get to someone who can answer that correctly. As for the extensive usage - well yeah... All you need is a browser to interpret it. In the same way all you need to keep yourself warm in winter is to chop down a tree and set it on fire. That doesn't mean it's a wise idea to go out chopping trees in mass, does it? I lost the countless attempts to make a better language for the web and they were all killed off by the Stalinists at w3 and mozilla. As I said, react is a symptom of that stupidity, not the cause. I've said it before, I'll say it again: a good engineer and a good community are defined by their ability to say "OK, that was a stupid idea, let's go back to the drawing board". The web is in it's worst shape it has ever been. Coldfusion, flash and the ridiculous java applets were heaven compared to what we have now.
- ironmagma 6y agoWhether the aesthetics are good or bad does not dictate whether a language is a “programming language.” That is determined by whether you can write programs with it. JavaScript is used to generate billions, if not trillions of dollars each year, through the fact that you can run programs on a computer with it, therefore being a programming language. There’s no subjectivity there, JavaScript is not a toy. Incidentally, there are a lot of spaghetti code encouraging platforms like LabView, Matlab, and PLC which nevertheless accomplish similar results, even in safety critical applications. Those are not toys either, despite their lack of sophistication. What the language designer accomplished is not simple. JS packaged functional expressivity and dynamic binding from Scheme and Smalltalk into a marketable form using Java/C syntax. That is not a corruption, it’s a design feature. Languages that use S-expressions, while pleasing to the purists, do not see much market traction. The best languages are the ones that balance functional idealism with pragmatism. It is true that the language has warts, but there is ultimately a reason that all the JS alternatives, such as Flash, Applets, Silverlight, VBScript and Pyodide failed. I agree the web is worse now, but it’s not due to technical reasons. We have more options for web coding than ever before with AsmJS and Wasm, plus all the compile-to-javascript languages. You can choose to write using one of those ‘superior languages’ like with Scala.js, Elm, Elixir, Clojurescript, or any number of runtime translation layers like Brython or Skulpt, but people don’t choose to. Because that isn’t the problem. The problem is that businesses want less logic in the backend and don’t find sufficient benefit in optimization to prioritize it over feature work. That’s a disturbing business trend and hardly related to technical choice. For most operations, JS is blazingly fast due to the millions of hours that have gone into optimizing it. Last, the people who are beginners and don’t understand the stack or heap, are not the ones running Webpack and writing (a significant amount of) React code. Those are distinctly different personas, and conflating them is insane. Either you are seasoned and can deal with the complexity that is the JS tooling infrastructure, or you are not and you probably aren’t using it as a result.
- deleted 6y ago[deleted]