News for hackers. Stuff that matters.
Re:Hyper 1.0.0 by rawfan on Monday December 12, 2016 @12:42PM (#13159967)
So let me get this straight. This is a mini-webserver written in Javascript running the terminal as a webapp in a mini-webbrowser, right? This makes sense why?

On the other hand: My favorite iOS SSH/Mosh client seems to be built on top of this and it's awesome.

Re:Hyper 1.0.0 by kowdermeister on Monday December 12, 2016 @01:01PM (#13160169)
This makes sense because the authors were comfortable writing apps this way. At least they started it on a stack that has the potential to be multi platform. I see way too many nice / stylish apps released as OSX only.
Re:Hyper 1.0.0 by imtringued on Tuesday December 13, 2016 @02:44AM (#13165232)
But it's only the potential. In practice you still have to depend on the vendor to decide to support your OS.
Re:Hyper 1.0.0 by sdegutis on Monday December 12, 2016 @02:48PM (#13161252)
On the other hand, it's really hard to make a closed-source app that you can sell, and still make it cross-platform.
Re:Hyper 1.0.0 by kowdermeister on Monday December 12, 2016 @02:56PM (#13161346)
I don't think if you plan ahead it would be to disaster to maintain. We have tools like QT or Skia that help you create native cross platform UI-s. I agree that the dev experience is a light-year ahead with CSS+JS, I've done it before, but once you go down that road, it's close to impossible to switch without a serious rewrite. This is not necessarily a bad thing, but something to keep in mind.
Re:Hyper 1.0.0 by Jizzle on Monday December 12, 2016 @01:30PM (#13160463)
Looks like it is using the electron framework http://electron.atom.io/

To be sure, JavaScript can sometimes be fairly terrible as the scope of projects grow. The advantage here is how easily rich (or even absurd) UI elements can be implemented across all platforms by using web technologies. It also makes it comparatively easy to create a platform that is highly customizable and pluggable.

Re:Hyper 1.0.0 by OhSoHumble on Monday December 12, 2016 @04:26PM (#13162066)
I'm excited because that would still be better than the terminals currently available for Windows.
Re:Hyper 1.0.0 by cookiecaper on Monday December 12, 2016 @12:49PM (#13160036)
It makes sense because JavaScript has, through several bizarre turns of events, become the language du jour, which means all sort of clueless people are falling over themselves to abuse it in increasingly convoluted ways, so that the clueless people in corporate HR who've been told "We need someone who is a JavaScript rockstar!" can be wowed by the description of some nightmarish contraption that "really takes insane JavaScript chops".

Language fads are very tiring.

Re:Hyper 1.0.0 by VeejayRampay on Monday December 12, 2016 @01:03PM (#13160185)
You know what's tiring? People getting out of their way to gratuitously criticize the collective effort of a coordinated group of passionate people who just want to have fun reinventing the wheel.
Re:Hyper 1.0.0 by stcredzero on Monday December 12, 2016 @01:20PM (#13160353)
the collective effort of a coordinated group of passionate people who just want to have fun reinventing the wheel

Best long winded alias for the field of programming to date!

Re:Hyper 1.0.0 by cookiecaper on Monday December 12, 2016 @01:44PM (#13160604)
I wouldn't say my post is gratuitous criticism. I believe my post describes the motives behind a sizable number of such projects. If that is not the case with Hyper, and the Hyper developers are aware and conscious that they made a bizarre language choice and are just trying to have fun with it (although they do seem to be recommending that random people use this as production, non-toy software), then that's great, more power to them. There's no reason for them to be offended or unsure of themselves based on my comments.
Re:Hyper 1.0.0 by nix0n on Monday December 12, 2016 @01:14PM (#13160281)
> passionate people who just want to have fun reinventing the wheel

Maybe instead of building square wheels they should work on improving some of the existing round wheels.

Re:Hyper 1.0.0 by zeven7 on Monday December 12, 2016 @01:21PM (#13160371)
Some people make round wheels better. Some people try to create a better wheel than a round one. Both types are usually good for society. The former is most likely to yield any results at all; the latter, when it yields any results, is most likely to produce massive steps forward.

Where would we be if Einstein had spent all his time trying to improve Newton's gravity rather than reinventing it?

Re:Hyper 1.0.0 by valarauca1 on Monday December 12, 2016 @01:46PM (#13160622)

    Where would we be if Einstein had spent all his time
    trying to improve Newton's gravity rather than
    reinventing it?
Einstein did just set out to improve Newtonian Mechanics. Special Relativity is just Newtonian Mechanics over the Lorentz Transform.

General Relativity is the implication of Special Relativity being true, generalized for all observers.

Einstein's approach was very much step 1, just repeated 2-3 times.

Special Relativity didn't necessarily destroy Newton's gravity. To be generalized in GR gravity had to stop being force. It was just a natural implication of a prior step.

The idea you can chase a total alien solution nobody supports and pull complete magic out of thin air is rarely true. Normally it is just a myth created by people who don't actually understand the solution or process that attained it.

Re:Hyper 1.0.0 by zeven7 on Monday December 12, 2016 @02:29PM (#13161060)
General relativity was seen as a huge leap forward at the time, and it still is today. I offer two quotes in support of this:

"As an older frield I must advise you against [generalizing relativity to incorporate gravity] for in the first place you will not succeed, and even if you succeed, no one will believe you." - Max Planck to Einstein, 2 years before Einstein succeeded. It was a big deal to even attempt to do this, and people tried to talk Einstein out of it.

And why did Planck say no one would believe Einstein? Because Einstein was trying to do something fundamentally different; he was trying to create a new kind of wheel.

"Newton, forgive me." - Albert Einstein -- why ask for forgiveness?

Einstein's role was something quite different from the role that most physicists play. Most physicists add small refinements to existing theories. Einstein upended quite a lot of existing physics and replaced it with something new. Newton saw gravity as action at a distance. Einstein showed that it was something quite different.

Re:Hyper 1.0.0 by cookiecaper on Monday December 12, 2016 @05:56PM (#13162832)
Einstein got there by starting with the conventional models and knowing it didn't fit, and working on a way to make it fit.

Einstein didn't start out in left field, he didn't set out to invent a new wheel. He just saw some problems in the old one, and suggested an updated wheel that would resolve them. That's the difference. One is being contrarian or experimenting on their own, which is not necessarily wrong and can certainly be useful experience to draw on, but it's just not likely to yield large advancements on its own.

Large advancements occur when someone is current with the cutting edge, accepting of the established truths, and still striving to solve the larger puzzle (which may involve rotating the puzzle pieces that make up parts of the "established truths" -- but you can't get there if you don't have the pieces at your disposal).

Do you suggest that these people set out to make a great terminal emulator, and were eventually driven into the arms of JavaScript as the one true answer to the fundamental problem?

I think it's more likely that they said "Let's try to do this thing that's been done hundreds of times ... IN JAVASCRIPT!!!" And again, there's not anything wrong with that per se. It just doesn't make a good value proposition when you're trying to convince users to use your product.

Re:Hyper 1.0.0 by valarauca1 on Monday December 12, 2016 @02:55PM (#13161330)
You offer vague platitude where I offer mathematics.

I'll repeat this quote

The idea you can chase a total alien solution nobody supports and pull complete magic out of thin air is rarely true. Normally it is just a myth created by people who don't actually understand the solution or process that attained it.

Re:Hyper 1.0.0 by castis on Monday December 12, 2016 @01:22PM (#13160375)
Which round wheels would you like to see improved?
Re:Hyper 1.0.0 by nix0n on Tuesday December 13, 2016 @10:36AM (#13167527)
They could be working on Konsole, or iTerm, or ConEmu, or a long list of others I haven't even heard of (although the admirable goal of being cross-platform seems to align most directly with Konsole).
Re:Hyper 1.0.0 by meddlepal on Monday December 12, 2016 @01:11PM (#13160248)
You know what's tiring have to over time be forced to use or maintain people's poor decision to reinvent the wheel.
Re:Hyper 1.0.0 by stcredzero on Monday December 12, 2016 @01:22PM (#13160372)
Don't complain. Figure out how to charge consulting fees!
Re:Hyper 1.0.0 by jsjohnst on Monday December 12, 2016 @12:59PM (#13160151)
JavaScript has become the PHP of ten years ago.

Runs everywhere (client and server), is the language picked up by beginners, and is abused to fit every square peg into a round hole.

Re:Hyper 1.0.0 by cookiecaper on Monday December 12, 2016 @03:08PM (#13161450)
Can't wait for the general sentiment to turn to match. Whereas PHP has been sneered at by non-PHP devs since time immemorial, JavaScript is seeing widespread uptake by supposedly "senior" people across the spectrum.

I've asked several of these people to explain the attraction (one of whom had a fascination with the even-worse CoffeeScript) and thus far I have not really come across a satisfactory explanation. To me, JavaScript is still the language you only use when you have to because it's the only runtime the browser vendors will embed.

Re:Hyper 1.0.0 by stcredzero on Monday December 12, 2016 @03:52PM (#13161790)
I've asked several of these people to explain the attraction

http://quoteinvestigator.com/2013/02/10/where-money-is/

Javascript is a "workable" or "decent" language, and it happens to run where the users are. This is also a large part of why C++ was a success and C before it.

Re:Hyper 1.0.0 by cookiecaper on Monday December 12, 2016 @04:50PM (#13162260)
This works when you're executing code "where the users are", as I conceded in the parent post (it's the language you use when you have to). It doesn't explain why they'd willingly switch away from another server-side language to re-implement the whole thing in server-side JavaScript.
Re:Hyper 1.0.0 by jsjohnst on Monday December 12, 2016 @08:50PM (#13163841)
The only really "good" reason in my opinion is to use the same code that renders the page in the browser to be used to render the page on the server. I've never seen this done well in production though.

Dav Glass did some awesome hack day projects in the early days of Node.js demonstrating how this could work for Yahoo mail. Hit your inbox for the first time in a browser session and it'll send back a full HTML page rather than a bunch of JS files and expect the client to render before anything appears. With this you could have less than one second full render times for a complex single page app. Imagine if Gmail did something like this, you wouldn't need to leave a tab open to avoid the 5-10sec it takes from login till inbox shows. Furthermore, you could build this out further where if the "compose page" JavaScript hadn't loaded yet, you could then roundtrip to the server and get the markup rather than waiting on it to parse and execute on a slower machine.

Not saying everyone should do this obviously, but it is a valid use case for JavaScript on the server if done right IMHO.

Re:Hyper 1.0.0 by debaserab2 on Monday December 12, 2016 @06:36PM (#13163143)
I can't really defend their language choice perse, but if you look at the aims of the project - make a terminal that's consistent across platforms and focuses on extendability and interface, what IS your best option? Writing natively for each platform doesn't seem feasible. Using something browser based that has many of those cross platform kinks ironed out doesn't seem like that bad of a choice if that's your top priority.

Whether or not that makes it a solid, durable terminal program is another question, though.

Re:Hyper 1.0.0 by jsjohnst on Monday December 12, 2016 @08:53PM (#13163854)
There's numerous cross-platform alternatives to using JavaScript. Not saying they are inherently better, but there are a hundred different ways to accomplish this.
Re:Hyper 1.0.0 by debaserab2 on Monday December 12, 2016 @11:21PM (#13164410)
OK, sure, but not exactly what I was pointing out.

If your goal is to provide a consistent look and user experience across platforms and be easily extendable, what do you choose? Feel free to name one.

Re:Hyper 1.0.0 by jsjohnst on Tuesday December 13, 2016 @01:11AM (#13164897)
Remember, this is a terminal emulator. It's fairly easy to get a consistent look and feel, even across platforms.

You asked for one, here's five:

* GTK+

* wxWidgets

* Swing

* SWT

* Tcl/Tk

You then mentioned "easily extendable". I'm not sure if you'll agree Swing/SWT are easily extendable (I'd argue they can be), but wxWidgets and GTK+ have bindings available in many common scripting languages (heck, even PHP!) which are just as easy to extend as JavaScript is.

Again, I'm not arguing any of these are better suited, just responding to your point that there was no alternative.

Re:Hyper 1.0.0 by debaserab2 on Tuesday December 13, 2016 @01:43AM (#13165025)
I said it "isn't a bad choice", not "there is no other alternative".

Of the 5 alternates you provided, can you name me an app that runs on major platforms that people describe as a good user experience? Not just that they work, but that they serve as good example of how to design a user experience. The only one that I can think of that I use on an everyday basis is the JetBrains apps which are built in java, although what UI implementation they're using I'm unsure. Beyond that, all the good cross platform apps that I can think that aren't using something webkit based (slack/atom/discord/etc) use native OS GUI implementations. I'm sure there are others, but it's hard to completely discredit the browser-as-an-app approach.

From what I gathered from the project, it's aim is to go beyond being just another terminal emulator and provide a certain amount of bells and whistles through its interface. Turns out interface bells and whistles is something that HTML+CSS+Javascript has nailed pretty well while remaining cross platform compatible.

Re:Hyper 1.0.0 by cookiecaper on Tuesday December 13, 2016 @01:23PM (#13169135)
First, I've never understood the obsession with the "native feel". I guess it just irks some people in a basic way that I can't relate to at all.

However, the major cross-platform toolkits of wxWidgets, Qt, and GTK+ have run long projects to allow for native interface components on the platforms they support. This is usually something that can be configured at compile time.

VLC is wxWidgets and it offers a consistent user experience across platforms. Chromium is GTK+ and it does so as well. I'm not sure what's trendy in the UX snob circles these days so I don't know if they qualify as "amazing UX" or not, but they're two widely-used, major projects that incorporate standard cross-platform desktop toolkits.

Personally, I've always been partial to Qt, though I can't think of something off the top of my head that uses Qt and has widespread usage across platforms (Qt of course powers the entire KDE suite, but that usually doesn't cross over to Mac or Windows users, and Amarok's glory days are long gone). I guess Clementine uses Qt, and it may be widely used. I used it on both Win and Linux and the UX is identical.

Re:Hyper 1.0.0 by jsjohnst on Tuesday December 13, 2016 @02:00PM (#13169608)
VLC uses Qt (since 0.9.0 I think). Pre-0.9.0 was wxWidgets.

Another very common Qt based app is Skype.

Re:Hyper 1.0.0 by stcredzero on Monday December 12, 2016 @05:14PM (#13162481)
Because it's the same code as the client, which is "where the users are." I guess you'd assert that having the same language on the client and server doesn't justify the cost of using the language.
Re:Hyper 1.0.0 by cookiecaper on Tuesday December 13, 2016 @01:16PM (#13169044)
Correct. This argument, IMO, is mainly made by programmers who are afraid of working in more than one language at once, traditionally .NET developers who are used to an entire, ready-made, tied-up-in-a-bow ecosystem being dropped on their doorstep. I have a lot of trouble sympathizing with that perspective (even though I've had multiple jobs as a full-time .NET developer).

JavaScript is not good. We should be working to get it out of the way, not converting everything in our environments to run on it.

Re:Hyper 1.0.0 by flukus on Monday December 12, 2016 @09:01PM (#13163880)
This is a desktop app, "where the users are" isn't a compelling argument because it could be in practically any language and have the same barrier to entry.
Re:Hyper 1.0.0 by stcredzero on Monday December 12, 2016 @01:21PM (#13160363)
Does it culminate with a cryptocash exchange written in it?
Re:Hyper 1.0.0 by grep4master on Monday December 12, 2016 @02:38PM (#13161154)
This made my whole day. Time for bed.
Re:Hyper 1.0.0 by stcredzero on Monday December 12, 2016 @01:19PM (#13160346)
the language du jour, which means all sort of clueless people are falling over themselves to abuse it in increasingly convoluted ways

That's simply how the programming "field" works. Also in the category of "how it works": People grousing about it. (Seriously, that is the way it works, and do we dare suppose there is a better way?)