
Go Terminal_ Elegant and Efficient Linux Terminal - bezzi
http://rungoterminal.com/
======
nameless912
There's literally nothing about this I like.

A terminal with a gradient background might look pretty for screenshots, but
for long sessions it just adds to fatigue and makes text harder to read.
"Saving your favorite commands" in a normal terminal involves writing an alias
into your rc file, not a bunch of button clicks. Same goes for the whole
"interactive flags" thing.

Whoever made this clearly hates the terminal and wanted to bring a hipstery
web 2.0 approach to the terminal. My question is, WHY?

Oh, and it's PAID? Fuck that. Learn to use a proper terminal or don't bother,
simple as that. That isn't me being a crotchety old timer, that's me giving
you serious life advice. You will _always_ be faster in the terminal if you
learn to use it properly. a 2 hour tutorial in shell scripting and learning to
use `man` is worth far more to your career than 10 bucks. Learn it the right
way if you're going to bother.

</rant>

~~~
benbenolson
I agree with each and every one of your comments; in addition, I would like to
know how this project was created: what language it was made in, why the
author found it necessary to create it, etc.

~~~
guessmyname
> what language it was made in

HTML + JavaScript + Electron

Just download that archive, extract its content, and you will find the
"goterminal" script that is basically an ASAR archive [1] with a copy of CEF
[2] as the webview for the web application that they (for some unknown reason)
decided to create.

[1] [https://github.com/electron/asar](https://github.com/electron/asar)

[2]
[https://bitbucket.org/chromiumembedded/cef](https://bitbucket.org/chromiumembedded/cef)

~~~
Myrmornis
> that they (for some unknown reason) decided to create.

That's unpleasant. This is a forum for programmers. Care to explain why you
are criticizing a participant for programming?

~~~
erlehmann_
I see at least two possible reasons to create such a terminal: One: The author
might have problems with how other terminals work. The other: The author just
wanted to create something, without providing a superior value proposition. If
it is indeed the latter scenario, it just wastes others' time.

~~~
Myrmornis
> If it is indeed the latter scenario, it just wastes others' time.

What an absurd, and disgusting, point of view. The author is free to create
whatever the fuck he/she wants, for fun. It's not wasting anyone's time -- no
one else is obliged to spend any time interacting with it in any way.

You should really reconsider your position. One point is that, while you may
have the skills and experience to only work on projects that improve the
status quo, many of us do not; and even those who do, as beginners had to pass
through the stage where they did not.

~~~
erlehmann_
If a project does not improve the status quo, I think it should not be
presented as something one “should have”.

The time wasted is exactly the time it takes to find out that “elegant and
efficient” is at best hyperbole, at worst a lie.

~~~
Myrmornis
Have you ever met a novice programmer?

------
ubertaco
It's a paid terminal emulator, written (by all appearances) in some kind of
Electron-like (so a much much higher footprint), with a GUI for what can
already be done via aliases, functions, and scripts.

And no telling how well $TERM detection works (show me vim! Show me something
that wants 256 colors!)

If it was free, I might still not use it, because my terminal emulator needs
to be lightweight and bulletproof, not heavy and shiny. A terminal emulator is
a hammer -- simple, solid, good for constant use -- not an art piece.

~~~
gnufied
This is how Emacs looks in it -
[http://imgur.com/E6cLkoF](http://imgur.com/E6cLkoF) . Turning off the theme I
am using fixes it, but many emacs shortcuts don't work.

------
robmccoll
Just what I've always wanted from a terminal - things I can only do with a GUI
and mouse. /sarcasm

This product seems to fundamentally misunderstand people that use terminals.
Perhaps it would do better to instead become more of a thing that puts quick
GUI wrappers around terminal commands and tries to parse the output and
present it in a pretty GUI way for people who'd prefer not to get their hands
dirty? Otherwise, this seems like what aliases and functions in my bashrc are
for.

Either way, why is there a group of people that seems to think we desperately
need to take applications that we are already running natively, wrap them in
HTML/CSS/JS, throw them inside of a webview, embed that webview into a
separate Chromium instance, and string it all together using a tool and
execution environment designed to take a client-side single threaded web
scripting language and use it for making servers? (Mugatu: I feel like I'm
taking crazy pills - does nobody see this?!?)

~~~
guessmyname
> why is there a group of people that [want to wrap everything] in HTML/CSS/JS

I believe you already know the answer to your own question, because to be
honest I think the answer is pretty obvious; but in case you are actually
curious about the answer here is what I think (mostly sarcasm, don't expect
much):

The majority of people making these applications are web developers who are
frustrated by the difficulty of learning one or more of the popular GUI
libraries available in the market (Cocoa, QT, GTK, etc), they found Node-
Webkit and then Electron and realized that they could target desktop users
using the same stack they have been using so far (HTML + CSS + JavaScript).
Since they are web developers and many of them were originally designers, it
is makes sense to think that they can make shiny websites to attract people
into trying their projects.

I think most of these programmers just want to show up, try this new Electron
thing, and get acknowledged by other people. I don't think they believe their
applications are actually good because it is obvious that they are not (as in
this case). As much as I hate this trend of web applications disguising
themselves as (native) desktop application I have to agree that Electron have
allowed some people to... Hmmm, you know what? I don't think Electron has
allowed anyone (with the exception of GitHub) to accomplish anything, fuck
that trend.

~~~
eberkund
Well there's Slack and VS Code just off the top of my head

~~~
guessmyname
Slack started as a website, then created the desktop and mobile clients, so if
I stick to my statement "accomplish anything" I would still keep Slack out of
the list because the "desktop" client does not provides anything special over
the original web interface. About Visual Studio Code, I don't know what have
Microsoft accomplished with that project yet, but I will give you a point for
that just because.

------
dc2
This appears superficial, and that this is paid as well with no (visible)
published open source turns me off. The mistakes in the GIF communicate that
this was a slapped-together product.

Additionally, requiring mouse clicks for a visual replacement of the alias
command with a few extra bells and whistles is not the greatest appeal to a
community of developers.

I hope that the fact that this was written in Go does not outweigh its
shortcomings in the eyes of HN.

~~~
guessmyname
Don't be fooled by the name, this application is not written in Go, that is
just a random word that they chose for the name. The application was written
in HTML and bundled with a webview powered by CEF (probably Electron). Just
download the application and execute `strings goterminal | grep chromium` and
you will see what I am talking about; again, this has 0% Go code.

EDIT: Here is the list of 720 NPM packages used by this:
[http://pastebin.com/raw/VhnuuDdX](http://pastebin.com/raw/VhnuuDdX)

EDIT2: To rub salt into the wound, this thing is ~620MB of HTML + JS +
Electron, that is more or less how an entire Ubuntu installation was six years
ago, like really? An entire basic Linux installation could have been included
in all this archive and these guys decided to fill it with JavaScript code.
Isn't a terminal emulator supposed to be lightweight?

~~~
nomel
> this thing is ~620MB of HTML + JS + Electron

Is it 620MB of source text? I'm not a web guy, so I literally I can't
understand this, unless, since it's a web tech, 30 minutes of cat videos are
required in the source.

~~~
guessmyname
Yes and no; there are some binary files too, but there are ~534MB of
JavaScript code mixed with additional assets. Once you extract the content
from the archive (using the tar.gz version) you will find a directory with
multiple sub-directories and files that roughtly weighs 636MB distributed like
this:

    
    
        9.1M - content_shell.pak
        60M  - goterminal
        9.8M - icudtl.dat
        4.0K - INSTALL
        2.5M - libffmpeg.so
        18M  - libnode.so
        20K  - LICENSE
        352K - locales
        404K - natives_blob.bin
        536M - resources
        604K - snapshot_blob.bin
    

The directory "resources" contains the ASAR file plus another sub-directory
named "app" that contains the assets and the "node_modules" tree, this
directory alone weighs 534MB because of the 720 NPM packages required by the
application.

------
JoshTriplett
Amusing idea, and this kind of "quick GUI-builder" mechanism reminds me of
ifttt or zapier in the way it gives more scripting/glue power to people who
normally have access to less of it. And this would be useful for a mobile or
tablet application, where GUI shortcuts to save typing help a great deal.

But the demo video shows one major issue that breaks its primary functionality
as a terminal: the font rendering has a vertical spacing problem going on,
with lines 1.5x spaced, which would break many screen-oriented applications,
especially those that use line-drawing characters. Notice how at 22s into the
video
([https://www.youtube.com/watch?v=XbDxvJn1jV0#t=22s](https://www.youtube.com/watch?v=XbDxvJn1jV0#t=22s)),
the inverse-colored character shortcuts at the bottom of nano's UI have space
between the white boxes; the white boxes should touch, like this:
[https://imgur.com/q0TERnM](https://imgur.com/q0TERnM)

This is either a bug with the terminal itself, or a bug with the font used. I
looked for a bug tracker to report the bug, at which point I noticed that it
wasn't FOSS, and promptly lost all interest in taking the time to make such a
report.

Also, while I realize that this uses a browser engine for its UI, there's
something surreal about a terminal emulator bundling libffmpeg.so.

------
microcolonel
This isn't even a decent terminal emulator in the basic ways. It has an
enormous memory footprint, abysmal compatibility, and very little in the way
of novel features to offer.

If you use a better shell (like fish) it leaves this even less appealing. I'm
sure this took some work to do, but I don't know anyone with a job to pay for
it, which would use it.

The word "efficient" describes the exact opposite of what this is.

In addition to all of that, the package includes all of the build-time
dependencies with it. And the package they use for the terminal emulator part
of it is explicitly abandoned by its author
([https://github.com/chjj/term.js/](https://github.com/chjj/term.js/))

Nobody should pay 10 dollars(let alone 20 dollars for limited ongoing support)
for more than half a gigabyte of unmaintained, deprecated open source code,
plus about 2000SLOC of proprietary code for a sidebar which does something
which is basically already built into the shell.

Also, there is no clear roadmap for this; so it's totally unclear what "3
years of updates" means when half of the thing is deprecated and it hasn't
even left beta!

------
delish
If you're like me, you'll think, "aliases!"

But, the shell is a bunch of nontrivial things to learn. Tools like Go
Terminal_ could make a less discontinuous learning path for shell. I recently
had to teach[0] someone a bit of shell, and I kept tripping over explanations
of:

    
    
        command -[flags] arg1 arg2 arg3 | something else
    

Merely explaining that -xvf modified tar and how was a challenge. After I
explained it, the user appended -xvf to cat in a different session. The above
line would be a dozen lines of code in a blub. Shell takes a long time to
grok.

All that said, I wouldn't call Go Terminal_ "efficient" ;).

[0] I did a terrible job.

~~~
sdegutis
> But, the shell is a bunch of nontrivial things to learn.

Yeah but if you're gonna learn this trade, you kinda gotta learn these things
eventually, so why settle for a pacifier indefinitely?

~~~
delish
I should have been more explicit. I'm wishing for a less discontinuous shell-
learning-path, meaning to say that you'd stick with Go Terminal_ until you
found you wanted something that zsh or tmux or whatever offered you.

Everything I've learned in programming I've learned that way: do something the
repetitive way until I notice it, then research or do something better.

------
farresito
Interesting concept, but I'm not sure who this is directed towards. I can see
some people using this, but not that much. (experienced) Developers will
naturally go towards the features that shells like bash/zsh offer (e.g.
aliases), and most inexperienced developers... well, I don't see them putting
that much effort into configuring their terminal, and besides this, most
people in the Linux world will hardly pay for something that they can get for
free from somewhere else, unless it really is a necessity, which doesn't seem
to be the case here. That said, I wish you the best on that. Always good to
see different stuff.

------
_navaneethan
I was trying to install this .deb package with ubuntu software center. My
system warns with the below message.

 _" This package is of bad quality:

The installation of a package which violates the quality standards isn't
allowed. This could cause serious problems on your computer. Please contact
the person or organisation who provided this package file and include the
details beneath.

The package doesn't provide a valid Installed-Size control field. See Debian
Policy 5.6.20."_

------
socceroos
You've been lambasted!

While I agree with pretty much all the criticisms raised by others, I would
just like to qualify that I like the idea of attempting to disrupt the
traditional terminal.

A terminal will always be a window from GUI land to the shell, but that
doesn't mean we can't play with it! :)

------
kazinator
In my experience, terminals like xterm and rxvt ran extremely efficiently on
machines 23 years ago, like, oh, a 66 MHz 486 DX2 with 8 Mb RAM. I can't say
that I ever had a complaint with the speed of scrolling, or rendering of
characters, or general responsiveness.

------
enugu
Looks like a visual version for an alias list.

Here are somethings which might be more substantial improvements.

A status bar which helps in understanding what a command does. So you type
'command -xva a b' and the status bar gives an English description that the
command is going to do such and such(based on flags) on files a and b.

Simple discoverability like an interactive version of reading man pages or
apropos, where after typing something like git or ls, the user who doesn't
remember the exact options, can press some shortcut and type a english
description like 'hidden files' 'reset' and the status bar displays the
relevant flags and their description. This kind of semantic autocomplete,
would save a visit to a long man page.

------
spriggan3
Why is the download 100MB big ? Isn't it a bit heavy for a simple terminal ?

~~~
guessmyname
Because it bundles Electron [1] which weighs (for version 1.2.6) around ~40MB,
if you also include the size of the 720 NPM packages [2] that this application
uses then you get the same size that you are complaining about. However, if
you also extract the content of the archive you will notice that it actually
weighs ~620MB LOL.

[1]
[https://github.com/electron/electron/releases/tag/v1.2.6](https://github.com/electron/electron/releases/tag/v1.2.6)

[2] [http://pastebin.com/raw/VhnuuDdX](http://pastebin.com/raw/VhnuuDdX)

------
bitmapbrother
Is this some type of sponsored post shit?

------
gravypod
I don't know how much of an advancement this is for a seasoned user, but I do
think this would be a great learning tool since you can visually see all the
commands generated by the terminal.

That's what shines in my eyes from this project.

------
saboot
I might not see a developer using this, but an administrator I could. Needing
to run one-off scripts and server management. However only if it would work
remotely, and with host specific configuration and command options.

~~~
stonogo
The proper response to seeing a systems administrator using one-off scripts
from his workstation to manage systems is to fire him immediately and hire
someone competent.

~~~
fapjacks
Right, because any sysadmin worth his salt is going to embed that ugly hack
right into the infrastructure for all eternity.

------
programath
IMO, it makes no sense.

------
knodi
alias is free

