News for hackers. Stuff that matters.
Re:The Hyper Plan by deadbunny on Thursday October 06, 2016 @02:35PM (#12654874)
Maybe I'm just a crotchety old admin but I really don't "get" the recent tsunami of everything being written in JS.

I mean what is the appeal of node for system applications over something a bit more systems oriented? Is it just an overspill of web developers getting into systems and not knowing any other language? Does JS really offer something different languages don't?

Re:The Hyper Plan by thaumaturgy on Thursday October 06, 2016 @02:53PM (#12655026)
There has been an Eternal September in systems administration.

The sysadmin niche has recently been flooded with young people coming from development backgrounds (which, today, the cutting edge is dominated by languages like JS and Go and Python), and they are approaching systems administration from a software development point of view -- attempting to abstract away the systems themselves, set up repeatable and testable environments, that sort of thing.

There's a lot of it that's not bad, but as always happens in these situations, they're ignoring the advice and experience of everyone that's kept the lights blinking for several decades now, and those older folks are finding it impossible to keep up with the flood of new people.

If anything kills this project one day, it'll be that it's no longer considered "okay" to connect to an individual server over ssh at all; you're supposed to use an IDE-like interface in a web browser, that connects to a service written in Node, that uses an API to download crowd-sourced pre-written web server configurations from a paid service, that then spins up a new VM using an API from another service, that then installs a daemon written in Go, that then installs the new web server configuration, and then all of your data gets migrated over to the new server and the old one gets decommissioned. If you actually ever touch a server or, gods forbid, edit your own Apache or nginx configuration files, you're a fool and an old-timer and you should retire.

(Inspired by an actual comment I saw on HN not too long ago.)

Re:The Hyper Plan by sheer_horror on Thursday October 06, 2016 @03:31PM (#12655358)
For you to have such a strong opinion on so many topics, you must know the in's and out's of Systems Administration. Would you consider writing tutorials or a blog about best practices, and why we should avoid complex systems built on Node?

For what it's worth, this comment is toxic. I am probably the kind of dev that would get lumped in to the group you're calling out, but I edit my own nginx files, I am interested in being close to the metal, and I'm focused on having strong fundamentals. So why not help out instead of being pessimistic? The eternal september thing is everywhere on the web. Everyone loves to talk about how much better it was 'back then'. It's very easy to look back and say that the past was better. You just strap on your rose tinted glasses and sense of superiority, and excuse yourself from any logical, productive discussion.

What I would like to see from experienced devs like yourself is some help with merging the best of both worlds. When should I be close to the metal? When should I work high up the stack? If you offer some real help, you could save us days or weeks or months, but if you take the easy route and point the finger then we all lose.

Re:The Hyper Plan by thaumaturgy on Thursday October 06, 2016 @04:08PM (#12655655)
You're not wrong, but communities are toxic too and after over twenty years of participating in them and discussions and arguments about "the right way" -- which is often only a matter of opinion anyway -- I've mostly opted out now. I just don't feel like putting up with the abuse that predictably comes back.

On HN specifically it's pretty challenging. I haven't made a billion dollars, I haven't scaled anything up to 10 million users, I don't have a Github project with thousands of stars, ergo there's no reason to listen to anything I have to say. I have no merits to spend on the meritocracy here.

HN also tends to rush to embrace the shiny and the new, so it's not sufficient to say something like, "build new things out of old, simple, battle-tested tools" -- which would be a stupidly obvious thing to say to a room full of greybeard sysadmins -- but you have to be able to justify why you should use older tools, and you have to be able to show that they're sufficiently better than the new thing, and you have to have specific examples, preferably from personal experience.

And I don't have the encyclopaedic knowledge to field that argument on much of anything, either.

...maybe a better way to handle this would be to just ask you, what is it that I could say that you would listen to?

Re:The Hyper Plan by sheer_horror on Friday October 07, 2016 @02:57AM (#12658722)
> what is it that I could say that you would listen to?

I am looking to build a single-page app that communicates with a server several times per second. The idea is to have some python code created interactively in the browser through some click-and-drag process. That python code is sent to the server and ran alongside other similar python scripts; the scripts are actually competing game AI's. So you build it in the browser, and run it on the server with the game state being sent back to the browser to be viewed.

If you have a picture of the fundamental architecture this requires, would you kindly explain the major components and their functionality? I could use something like Django/flask on the server, but how do I keep my front end updated? It's hard for me to imagine the full stack, so if you could paint the picture and explain the parts that would be useful.

Thank you

Re:The Hyper Plan by rch on Thursday October 06, 2016 @03:48PM (#12655473)
First, there are plenty of people who can help, and at reasonable rates too. I learned a ton from working with experienced people back in the late 90's.

> could save us days or weeks or months

I think you mean years or decades...

Re:The Hyper Plan by rublev on Tuesday October 11, 2016 @11:18PM (#12690223)
Hey, totally off topic but you replied to a comment of mine 22 days ago with a link that no longer works. Is there still a way to contact you?
Re:The Hyper Plan by deadbunny on Thursday October 06, 2016 @03:20PM (#12655275)
To be fair I agree with most of that (except the web IDE), abstraction can do a lot for productivity, stability, and scalability but you certainly need the hard won experience when it all goes wrong.

My point was more towards the JS side of things. JS just seems like a terrible choice of language for the tasks being performed where there are so many better alternatives, sure it makes writing a desktop app as easy as a web app but it just doesn't seem suited for the purpose. To me it's like writing complex systems in bash, sure it works but it's a pretty terrible choice.

Re:The Hyper Plan by thaumaturgy on Thursday October 06, 2016 @04:13PM (#12655701)
KDE (plasma), Windows, Gnome to a lesser extent, all web browsers, and now the server side all support application development in Javascript. If you're trying to write something once that, with a lot (a lot!) of effort, can run mostly anywhere, Javascript does make sense.

But I agree, I wish it had been a different language.

Re:The Hyper Plan by lhnz on Thursday October 06, 2016 @02:57PM (#12655062)
1. JavaScript's ecosystem is really huge. There are lots of libraries to help you quickly get a useful product out. (The problems you will have will arrive later and will be problems caused by building a large application in JavaScript.)

2. Electron and React allow you to create desktop applications similar to how you create web applications. This make it easier to recruit engineers to work on your project. This also means you can follow modern best practices.

3. There are perceived benefits to tools that are created with web technologies in how easily they interconnect to the web. For example:

  - This terminal supports displaying a website within itself.
  - You get things like cascading style sheets for cheap, rather than needing
    to build your own theme system.
I think it also gives a lease of life to the terminal environment. There has not been very much UX innovation there for a long while. Hyper in many ways is already much more interesting.
Re:The Hyper Plan by deadbunny on Thursday October 06, 2016 @03:24PM (#12655310)
Does it need any UX innovation? It's for entering text and control characters, what else does it need to do?

I certainly can't think of a time I've ever said "you know what my terminal needs? CSS!" and I have a browser to render webpages.

They also seem to be unclear the difference between a terminal and a shell.

Re:The Hyper Plan by sime2009 on Thursday October 06, 2016 @03:44PM (#12655450)
> Does it need any UX innovation? It's for entering text and control characters, what else does it need to do?

It could, for example let you operate and reuse the text it just displayed:

https://raw.githubusercontent.com/sedwards2009/extraterm/mas...

or even provide a command to let you reuse previous output, such as here:

https://raw.githubusercontent.com/sedwards2009/extraterm/mas...

More information and an implementation can be found here:

https://github.com/sedwards2009/extraterm/blob/master/docs/t...

Re:The Hyper Plan by deadbunny on Thursday October 06, 2016 @04:28PM (#12655828)
So you can rewrite terminal output (really? I know people like rewriting history in git but in you terminal?) and emulate `echo`?
Re:The Hyper Plan by sime2009 on Thursday October 06, 2016 @04:47PM (#12655956)
The point in these examples is that it is often very useful to be able to reuse the previous output to craft another command, or to work in a more iterative way by massaging the text and getting feedback along the way.
Re:The Hyper Plan by bobwaycott on Thursday October 06, 2016 @08:20PM (#12657236)
Isn't that what the pipe operator is for?
Re:The Hyper Plan by sime2009 on Friday October 07, 2016 @02:30AM (#12658645)
True, the classic shell tools like the pipe can do a lot of this. But there are important differences. Firstly, to use the pipe you need to know in advance which output you want to keep/capture when you run the command. (e.g. by redirecting into a tmp file or using a pipe directly.) In this terminal you can decide afterwards if you want to do something else with previous output.

Another difference is that this works across tabs, sessions and machines, but the classic pipe doesn't.

It makes your interactive shell a lot more interactive. Classic pipes etc still work as expected too, so you are feel to mix and match.

Re:The Hyper Plan by lhnz on Thursday October 06, 2016 @03:34PM (#12655374)
I don't think there needs to be a discussion and central planning over whether there 'needs to be UX innovation'.

It however does make it easier which increases the chances of useful innovation occurring naturally.

  * * *
When software moved first from the shell to the desktop and then from the shell to the browser it became less accessible and less interoperable.

Why shouldn't we be able to one day pipe Unix tools directly into our Web apps?

Re:The Hyper Plan by deadbunny on Thursday October 06, 2016 @04:14PM (#12655707)
You can, you use APIs.
Re:The Hyper Plan by lhnz on Thursday October 06, 2016 @04:25PM (#12655800)
I wrote a reply to you here: https://news.ycombinator.com/item?id=12655745

You can't do what I'm suggesting already. You're thinking of sending data to backend APIs which is completely different from sending data into a visualisation function.

Re:The Hyper Plan by markmontymark on Thursday October 06, 2016 @03:52PM (#12655511)
> "you know what my terminal needs? CSS!"

Actually, editing colors in my term... I could use some CSS there.

Re:The Hyper Plan by perlgeek on Thursday October 06, 2016 @03:45PM (#12655455)
When I first read about Hyperterm, I was pretty sure I wouldn't use a terminal emulator that uses a browser. Heavy-handed and a security nightmare.

But eventually I head a podcast[^1] about it, and it started to make sense. It's nearly all about hackability. If you simply compare the number of people that are comfortable with adding UI elements to a native application in GTK or QT or whatnot, to those that are comfortable with enhancing a web application, it suddenly makes sense.

[1]: https://changelog.com/213/

Also the design of Hyper is one where everything goes through events, which you can intercept (and possibly re-emit) in extensions, so you don't even need nasty DOM hacking or text parsing to write extensions/plugins.

So now I'm still skeptical, but I also see the upsides. I guess my next step should be to actually try it :-) At least when a Linux version becomes available...

Re:The Hyper Plan by maemilius on Thursday October 06, 2016 @04:23PM (#12655776)
According to the GitHub page, you can build it on Linux. I haven't tried it myself, as I see no reason to abandon bash just yet.
Re:The Hyper Plan by perlgeek on Friday October 07, 2016 @05:40AM (#12659308)
You can use bash inside the terminal emulator.

Hyper is just the window in which other programs such as bash, ls etc. run.

Re:The Hyper Plan by alexmingoia on Thursday October 06, 2016 @02:50PM (#12654988)
I think it's many things:

- Recent generation of developers who entered programming through JavaScript.

- Node.js being fashionable and hip.

- "Not invented here" syndrome.

- Open-source as a signaling mechanism for hiring and social pecking-order, which feeds the last three points.

Re:The Hyper Plan by ilaksh on Thursday October 06, 2016 @05:59PM (#12656484)
You may have noticed this phenomenon of 'browser bloat'.

Well, its gone way beyond bloat. Basically the idea of adding features to web browsers started snowballing years ago and then turned into a new animal.

That new animal is the web platform. The leading browsers now basically contain features that cover just about every single API a programmer could want. That even includes recently added experimental support for accessing USB devices.

So its an operating system that lives inside other operating systems.

The appeal of Hyper for me, as a JavaScript programmer who has been working with Linux for at least 15 years and likes the terminal -- (I do everything in zsh or fish shell, use vim to program, was playing TradeWars 2002 on telnet last night) is that now I can keep all of my cool ANSI and linux command-line workflow etc. PLUS I can add just about any fricking thing I can think of into my terminal. From sound to SVG to 3d graphics. Or just testing my JavaScript application or component.

But really it comes down to whether your belief system allows for the possibility of a terminal to have any feature that isn't in a classic terminal -- i.e. anything that isn't monospaced colorful text.

Also, if you don't like JavaScript, and ever consider expanding the capabilities of your terminal or integrating some other application somehow, there are tons of languages that can compile to JavaScript and therefore plug in to Hyper.app, including C or many languages that compile to C via emscripten, LiveScript, Haxe, TypeScript, Dart, Elm, RubyJS, Pyjs (Python), Nim, Shen (Erlang), Perlito (Perl), GWT (Java), Scala.js (Scala), Script# (C#), ClojureScript, Moby Scheme, OCamljs (OCaml), ghcjs (Haskell), Go2js (Go), jsForth (Forth), etc.

Re:The Hyper Plan by agumonkey on Thursday October 06, 2016 @03:26PM (#12655322)
A side effect of Programming Language orientation. Old systems requires programmers to map higher levels to the machin themselves and accept legacy the hard way.

With javascript level, you can play the abstraction game which "can" make learning and prototyping way easier and unleash ideas.

Re:The Hyper Plan by mshenfield on Thursday October 06, 2016 @03:40PM (#12655417)
It's just a different (and popular) platform for developing applications. Seems comparable to developing a terminal app with Java swing, or QT, or whatever native Mac apps are written in.
Re:The Hyper Plan by viiralvx on Thursday October 06, 2016 @02:45PM (#12654957)
I think with Electron, making desktop web apps become as easy as knowing HTML, CSS, and JS. So perhaps it's easier to style? I'm not sure, that would be my guess though.
Re:The Hyper Plan by catnaroek on Thursday October 06, 2016 @03:16PM (#12655240)
Will it be as easy as making forms in VB (classic, not .NET) used to be in the 90's?
Re:The Hyper Plan by jrs95 on Thursday October 06, 2016 @02:52PM (#12655015)
It might not be if you were working with the native toolkit on Mac or Windows, but for a cross platform application it's probably easier than something like Qt (and is already known by many developers).