6 ms·
This is a crazy argument IMO. JavaScript tooling is stupid simple if you know what you're doing. Learning something new is always hard so if you're new to JavaS
by itslennysfault 8y ago
This is a crazy argument IMO. JavaScript tooling is stupid simple if you know what you're doing. Learning something new is always hard so if you're new to JavaScript (and have a JVM background) of course it'll seem hard at first.
I love node 'cause it "just works" (but really it does). The app I work on is node TypeScript Nest.js backend and TypeScript Angular frontend. The set up process for a new dev is install node (takes like 10 seconds), clone the repo, npm install, npm start. Ready to start developing.
TypeScript is as simple as installing typescript, and running tsc from the command line. With ts-node you can simply make your npm start script "ts-node ./index.ts" and you're off and running.
- wpietri 8y ago> JavaScript tooling is stupid simple if you know what you're doing. Do you mean simple, or easy? I think the latter. The JS tooling seems well optimized for the novice user, but I think it's hard to argue that it isn't complicated behind that friendly face. Also, I think most things seem easy once you know what you're doing. Almost tautologically so.
- cutler 8y agoThe trouble with Typescript is that the corporates have gotten their hands all over it as a means of turning JS into Java. TS turns lean, functional JS into an over-engineered smorgasbord of classes, interfaces and general OOP nonsense. JS was designed primarily as a functional language.
- pault 8y agoThis runs counter to my experience. I've found that TS will confirm to any style of programming you prefer to use. If you want to avoid classes and inheritance, just type your functions and data structures and call it a day.
- dboreham 8y ago>lean, functional JS into an over-engineered smorgasbord of classes, interfaces and general OOP nonsense Aka "code that someone other than you can understand"
- Gene_Parmesan 8y agoRight, because functional languages aren't known for having highly expressive type systems at all. And anyways, while Eich's original dream was to bring Scheme into the browser, it's obvious that forces at Sun, by telling him to make it more similar to Java, changed the nature of the language in a core way. It's absurd to say JS was designed primarily as a functional language when there is mutation everywhere, inconsistent use of equivalence, and one of the looser type systems still in existence. Either way, I'm surprised that that's been your experience, because I have found it to be the opposite. I've found TS to be most of what I like about C#'s typing (interfaces are an incredible, foundational tool) with much less of the ceremony. I still prefer C#, but I find TypeScript's flavor of OOP to be one of the lightest (in terms of enterprise-OOP, langs like Smalltalk obviously still take the overall cake).
- BrendanEich 8y agoHi, just for the record, Netscape management as well as Sun insisted that JS look like Java. Java was supposed to be the big language on the client side. That didn't pan out, but JS got big and begat WebAssembly thanks in part to the asmjs.org latent static type system (another part: WebGL typed arrays).
- bgorman 8y agoJavascript tooling is incredibly complicated compared to other languages. Lets compare Java and Angular 6 (using your example) Java Build system: Maven, javac Java module system: Class files Typescript Angular Project: (as of Angular 6): Typescript compiler, Angular compiler, Babel, Webpack, Npm/yarn (which are not always interchangeable). Now if you have a complicated CSS setup you might have to run multiple CSS post processors. If you are using webpack they might be css-loader and sass. Module system: CommonJS, AMD, UMD, ES6. Javascript isn't difficult - it is needlessly difficult. I bet it would take most front end developers over a day to set up all the dependencies for a "modern ES6 react-redux project" from scratch. That is why templates like "create-react-app" are popular- there is way too much plugin configuration and boilerplate necessary to get the toolchain working. Both Clojurescript and Elm have much saner development workflows on the front end for example. (Both have their own compilers and a better package ecosystem)
- tlrobinson 8y agoTry Parcel: https://parceljs.org/ https://parceljs.org/
- bgorman 8y agoI use parcel every day at work, and have used it for side-projects as well. In many ways Parcel is worse - Parcel is a giant monolith, so when things work it is great. For simple projects it is often fine. However when you are trying to do something complicated, it can be very difficult to debug. Parcel overrides node's module resolution with its own algorithm, and parcel does not use the same plugins as Webpack for all tasks. This means that Parcel. has it's own category of bugs and you will have to figure out if the problem (vs webpack) lies in the different plugin, or parcel's use of the plugin.
- Gene_Parmesan 8y agoI recognize that you're just being helpful, and I do appreciate that, and also my comment is half-facetious, but.. Responding to someone complaining, "The tooling for X is too complex, there's too much of it" by saying, "Here's the answer -- another tool," is maybe just a little bit silly.