Hacker News new | past | comments | ask | show | jobs | submit login

> Most web apps I work with daily have highly sophisticated in-browser interactions that are built with JavaScript and can only be built with JavaScript: Flickr, YouTube, Facebook, Twitter, GMail etc.

Good that GMail is created with GWT. So it doesn't even use JavaScript. Most people are so afraid of JavaScript that they create hella crazy abstractions (Angularjs [Google], ReactJS [Facebook]) and even then Microsoft and Google trying to avoid JavaScript more and more with Typescript or Dart, they transpile it. JavaScript maybe is valuable in the web, but not in it's current form. So much quirks that you either spend using a library or fixing browser incompabilites.

A lot of people here said that transpiling will be used a lot in the upcoming years, and I think that also. People will more and more. They want to use Python/Scala/Java/Whatever on both sides. Also it will reduce complexity by a lot.

Currently your typical webapp has, a server-side technology (even if you are using node), then you have a web frontend which uses at least npm, however mostly you end up with npm, bower, gulp/grunt, webpack and whatever.

> Client-server architectures instead of monoliths

What about small teams? They can't split their monolith since it will become unmanageable. So if they have two apps, frontend/backend it's still a mess to manage these projects with a small team.

> We need to stop excluding JavaScript apps from “the web as it was intended”. JavaScript apps are “of the web”, not just second-class citizens “on the web”.

In my eyes JavaScript should be used where it is needed, but not used in stuff which never should touch it. JavaScript is still a mess.




Gmail is not built with GWT, it's built with Closure Compiler.

Inbox is built with GWT and Closure compiler together, as a hybrid app, with the UI done in Closure/JS, and the business logic done in Java so it can be shared with Android and iOS.

Over the past 2 years, the GWT team has been honing a new JsInterop spec that removes the majority of the impedance mismatch between Java and JS for hybrid apps, which will be part of the 2.8 release.

One of my favorite features is automatic Java8 lambda <=> JS function conversion. Any single method interface in Java, when marked with @JsFunction, can be passed to JS where it can be called as a regular JS function, likewise, any JS function can be passed back to any Java function accepting a single-method-interface, and it will pretend to implement the interface.

You can now write (GWT 2.8), code like $("ul > li").click(e -> Window.alert('You clicked me')) with only a few lines of code to interface with jQuery for example.

You can see a deeper dive here: https://drive.google.com/a/google.com/file/d/0BwVGJUurq6uVR1...


> Also it will reduce complexity by a lot.

I have to disagree. Adding another layer of abstraction cannot reduce complexity, although it might make certain tasks easier. Consider assembly vs C as an example: C can make lots of programming tasks way easier, but the complexity of the system is not reduced.

With C, this becomes apparent when the program segfaults. A garbage-collected language or Rust can prevent segfaults using a subsystem to manage and/or enforce memory ownership, again making lots of tasks easier, while adding even more complexity.

In the case of transpile-to-JS languages, these can fix many of the shortcomings of JS and make lots of tasks easier, but they are a more complex system which can cause additional work if the generated code fails at run time, and the browser debugger brings up something completely different from your source code.

Your point that we will see more transpiled languages in the future makes sense.


I can see where it will reduce code complexity while upping stack complexity.

You're right that it's not always less complex. Trying to trace an error through some of these systems is ridiculous. I miss the days of it just pointing to a line number.


I think gmail was built using closure which is JavaScript. https://developers.google.com/closure/faq?hl=en#gwt


"Most people are so afraid of JavaScript that they create hella crazy abstractions (Angularjs [Google], ReactJS [Facebook])"

Much as I dislike JavaScript, every other language uses frameworks or "abstractions" to be more efficient. Why the hell would I reimplement all that crap myself in Python when Flask or Django have done 90% of my app for me.


> Most people are so afraid of JavaScript that they create hella crazy abstractions

Angular and React are not abstractions of JavaScript the language. They are abstractions of the DOM API.


> Most web apps I work with daily have highly sophisticated in-browser interactions that are built with JavaScript and can only be built with JavaScript: Flickr, YouTube, Facebook, Twitter, GMail etc.

Highly sophisticated browser interactions? You mean adding a comment? Which you actually just did on Hacker news using zero javascript.

None of those sites need or require a lot of Javascript. In fact, when I use Gmail I have the standard html version set to default. It's much faster and time to inbox is faster.


Lines prefixed with "> " usually indicate a quotation. The line you criticise was quoted from the article, not the Hacker News user.


It's commonly used to quote the article. I guess in this case he should have attributed it, but it's not an unusual use-case.




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

Search: