I'll say what I said the last time Finalterm was discussed here (and what I often say when 'improved' terminal emulators are thrown around):
Much of what is being provided here could and should be implemented in the shell, not in the terminal emulator. Implemented in the shell, you could get many if not all of these features in any modern terminal emulator. If the terminal emulator genuinely does not provide the facilities that a shell needs to do something, then we can discuss extending the terminal emulator to provide generic facilities that the shell would then use.
The dropdowns in particular could and should be implemented in the shell. Look at what Vim does with its completion right now[0]; it doesn't need specialized terminal emulator support for that. Throwing in mouse support for those dropdowns would be nice, and could be done with existing terminal emulators.
Also, the last time this was discussed people raised concerns that additional parsing of terminal output presented an increased surface area for attack. xterm 'title' support has caused a vulnerability in the past, we should be careful to not repeat that.
Nice. I mean, is there anything more satisfying than comparing someone's concrete implementation with our perfect ideal of what they should have written? Ah, the software in our imagination is so wonderful! It is elegant! Bug-free! Conceptually unified! All of the abstractions match up nicely from hardware to application! Compared to our imagination, real software is a horrible, steaming, pile of shit.
And yet. I can't run your ideas on my computer, but I can run Finalterm. So Philipp Emanuel Weidmann wins the argument, by default. Sorry.
If HN isn't the place to have an honest discussion about the merits of a project's architecture, then I don't know where is.
The author of this has some very good ideas and I don't doubt that they are technically proficient. Nevertheless, I believe they have executed their idea the wrong way.
This may seem like a complaint that the end user doesn't have any reason to care about, but I disagree. Downthread[0] there is somebody lamenting tab being used to activate the completion. I don't know what shell they use, but if they use zsh they already have a myriad of completion options available to them. Taking advantage of the features provided in this terminal emulator and zsh simultaneously would undoubtedly be problematic (actually, last I heard they seem to have somehow broken 'vi support', so whether or not arbitrary zsh configurations will even work on it is questionable). If we want Finalterminal to support the extensive range of completion that zsh already does, we are going to have a lot of duplicated effort. Completion features should therefore be implemented at the same level that they have always existed at, the shell and/or application (think vim) layer.
But yours is not a criticism that Philip can really use. He's clearly decided on an approach: adding capability to a terminal. It's as if someone posted a Ruby framework and you criticized them for the fact that they should be using Python, because it's just better for web stuff. Or someone posts a Vim plugin and you criticize them for not using Emacs, etc. Or someone writing an IDE plugin and you say they should run it from the command line anyway. Etc.
It seems unlikely that the author of finalterm, Philip, didn't consider doing this as a shell addition. But, if he pops in here and says, "Gosh, I never thought of that! You're right I should scrap this project and do it in the shell!" then I will humbly apologize. But, I don't think that's going to happen.
I think you are misunderstanding the nature of my complaint however. This isn't an issue of somebody using a tool that I don't prefer.. use Vim, or use Emacs, or use Nano for all I care. You want to use gnome-terminal? I can't stand it, but be my guest.
This is me saying that Philip has a good idea but has implemented it in a way that does not play nicely with existing tools. He knows this obviously, since he (or maybe other Finalterm authors, I haven't really been paying attention to that) have pointed that out himself. What I am pointing out that this incompatibility is unnecessary and unfortunate.
The crux of my complaint is that he has ideas that I would like to use, but solely because he has implemented them in an unorthodox way, there is simply no way that I can incorporate this into my workflow.
I'm not going to not say this simply because he may have also thought of this and disagrees with me. HN should not be an echo chamber of praise.
A huge amount of FinalTerm's functionality is already provided by the "bash-completion" package for all major OSes (including MacPorts). It probably even goes further, as I can tab-complete remote directory paths in an `scp` command.
Or perhaps we should move away from the teletype altogether and move towards block oriented smart terminals ala IBM. This would also help with network latency on mobile.
It is not entirely clear to me what advantages moving in that direction would provide. IIRC however mosh sort of moves in that direction for latency improvements while remoting.
Of course mosh's design also has some implications I am not satisfied with... that's not really on topic here, though I do wonder if mosh would run under Finalterm. I suspect not, though I haven't tried.
Comments
I'll say what I said the last time Finalterm was discussed here (and what I often say when 'improved' terminal emulators are thrown around):
Much of what is being provided here could and should be implemented in the shell, not in the terminal emulator. Implemented in the shell, you could get many if not all of these features in any modern terminal emulator. If the terminal emulator genuinely does not provide the facilities that a shell needs to do something, then we can discuss extending the terminal emulator to provide generic facilities that the shell would then use.
The dropdowns in particular could and should be implemented in the shell. Look at what Vim does with its completion right now[0]; it doesn't need specialized terminal emulator support for that. Throwing in mouse support for those dropdowns would be nice, and could be done with existing terminal emulators.
Also, the last time this was discussed people raised concerns that additional parsing of terminal output presented an increased surface area for attack. xterm 'title' support has caused a vulnerability in the past, we should be careful to not repeat that.
[0] http://1.bp.blogspot.com/_ci2yBnqzJgM/TD1PfKTlwnI/AAAAAAAAAD...
Nice. I mean, is there anything more satisfying than comparing someone's concrete implementation with our perfect ideal of what they should have written? Ah, the software in our imagination is so wonderful! It is elegant! Bug-free! Conceptually unified! All of the abstractions match up nicely from hardware to application! Compared to our imagination, real software is a horrible, steaming, pile of shit.
And yet. I can't run your ideas on my computer, but I can run Finalterm. So Philipp Emanuel Weidmann wins the argument, by default. Sorry.
If HN isn't the place to have an honest discussion about the merits of a project's architecture, then I don't know where is.
The author of this has some very good ideas and I don't doubt that they are technically proficient. Nevertheless, I believe they have executed their idea the wrong way.
This may seem like a complaint that the end user doesn't have any reason to care about, but I disagree. Downthread[0] there is somebody lamenting tab being used to activate the completion. I don't know what shell they use, but if they use zsh they already have a myriad of completion options available to them. Taking advantage of the features provided in this terminal emulator and zsh simultaneously would undoubtedly be problematic (actually, last I heard they seem to have somehow broken 'vi support', so whether or not arbitrary zsh configurations will even work on it is questionable). If we want Finalterminal to support the extensive range of completion that zsh already does, we are going to have a lot of duplicated effort. Completion features should therefore be implemented at the same level that they have always existed at, the shell and/or application (think vim) layer.
[0]: https://news.ycombinator.com/item?id=6574405
But yours is not a criticism that Philip can really use. He's clearly decided on an approach: adding capability to a terminal. It's as if someone posted a Ruby framework and you criticized them for the fact that they should be using Python, because it's just better for web stuff. Or someone posts a Vim plugin and you criticize them for not using Emacs, etc. Or someone writing an IDE plugin and you say they should run it from the command line anyway. Etc.
It seems unlikely that the author of finalterm, Philip, didn't consider doing this as a shell addition. But, if he pops in here and says, "Gosh, I never thought of that! You're right I should scrap this project and do it in the shell!" then I will humbly apologize. But, I don't think that's going to happen.
I don't know what Philip did or did not think of.
I think you are misunderstanding the nature of my complaint however. This isn't an issue of somebody using a tool that I don't prefer.. use Vim, or use Emacs, or use Nano for all I care. You want to use gnome-terminal? I can't stand it, but be my guest.
This is me saying that Philip has a good idea but has implemented it in a way that does not play nicely with existing tools. He knows this obviously, since he (or maybe other Finalterm authors, I haven't really been paying attention to that) have pointed that out himself. What I am pointing out that this incompatibility is unnecessary and unfortunate.
The crux of my complaint is that he has ideas that I would like to use, but solely because he has implemented them in an unorthodox way, there is simply no way that I can incorporate this into my workflow.
I'm not going to not say this simply because he may have also thought of this and disagrees with me. HN should not be an echo chamber of praise.
A huge amount of FinalTerm's functionality is already provided by the "bash-completion" package for all major OSes (including MacPorts). It probably even goes further, as I can tab-complete remote directory paths in an `scp` command.
Or perhaps we should move away from the teletype altogether and move towards block oriented smart terminals ala IBM. This would also help with network latency on mobile.
http://en.wikipedia.org/wiki/Block-oriented_terminal
It is not entirely clear to me what advantages moving in that direction would provide. IIRC however mosh sort of moves in that direction for latency improvements while remoting.
Of course mosh's design also has some implications I am not satisfied with... that's not really on topic here, though I do wonder if mosh would run under Finalterm. I suspect not, though I haven't tried.