RFC: Hosted terminal IDE for F# (am I crazy?)

40 views
Skip to first unread message

Matthew Moloney

unread,
Jan 6, 2017, 2:27:16 AM1/6/17
to F# Discussions
Hi folks,

I have an idea and I'm not sure if it's crazy so I would appreciate some feedback on it. It's not set in stone, just something I'm thinking about at this stage. As the famous philosopher Mike Tyson opined "Everyone has a plan until they get punched in the face."

The idea is to set up a distributed hosted terminal service for a Vim F# IDE so anyone can SSH / Mosh into the terminal server and experience a low latency and highly responsive terminal IDE - working name DavIDE.  The reason I'm building this is that I'm building a 3D MMORPG based IDE and I need a platform for testing and bootstrapping a globally distributed IDE. Some of you may remember Tsunami. The intent of Tsunami was test users capability and to see if there was a market for embedded IDEs. While the results were mixed the feedback from that endeavor was very useful.

I'm aware that the idea of using a terminal IDE that's hosted on a shared 'mainframe' sounds like the opposite of the future. I consider this a non-convex optimization; some things are harder, others are easier. Not having to rebuild unix in the browser is definitely easier. The intent is to get it to the point that there is no additional learning curve for someone who already knows how to program F# and can use Vim in the terminal. The main unique parts that I'll add to the mix include reduced code completion times for Vim (pre-jitted pool of hot compiler services servers) as well as simplified project and dependencies management system (e.g. cargo toml files for rust).  The idea is to get everything that is not writing your code out of your way. 

The intent of this project is to be free for everyone forever. If there is demand for a private on-premise version, that would be a paid, mainly because it would be extra work and I'd like to discourage it. Computers are pretty cheap these days and I'm pretty sure I can get the incremental memory usage way down so it'll be very efficient. Once it's going it will be easy to maintain. If people are using it I'd be happy to cover the hosting costs. 

So let me know if this is something that you would be interested in using. And, or if you think I've gone off the deep end, please let me know that as well.

Cheers,
Matt


Addendum:
*) No emacs, at least initially, as memory usage is too high
*) User settings will be maintained in a git repo that is synchronized between servers
*) Servers will be geographically distributed to reduce latency
*) Secure isolation via Jails (FreeBSD)
*) Expensive processing and tests are defered to AppVeyor
*) Anyone abusing the service or doing anything illegal will be banned



Karl Nilsson

unread,
Jan 6, 2017, 5:26:13 AM1/6/17
to F# Discussions
It sounds awesome however I am not sure how many fsharp vim users there really are in the world. I might have interacted with 20 or so during my work on vim-fsharp. I estimate there are fewer than 100 vim-fsharp users.

Cheers
Karl
--
--
To post, send email to fsharp-o...@googlegroups.com
To unsubscribe, send email to
fsharp-opensou...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/fsharp-opensource
---
You received this message because you are subscribed to the Google Groups "F# Discussions" group.
To unsubscribe from this group and stop receiving emails from it, send an email to fsharp-opensou...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Matthew Moloney

unread,
Jan 6, 2017, 9:11:42 AM1/6/17
to fsharp-o...@googlegroups.com
Thanks Karl, that is a little low. It would make some of the engineering a lot easier though. No need for automation or optimization. I could just set up a single server and manage access to the server manually and personally and see how it goes. I have some spare capacity and a dynamic dns so I can start right away.

Would this be of interest to anyone?

Cheers,
Matt



As an aside; I know people think 

You received this message because you are subscribed to a topic in the Google Groups "F# Discussions" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/fsharp-opensource/hi4j5TGkVmA/unsubscribe.
To unsubscribe from this group and all its topics, send an email to fsharp-opensou...@googlegroups.com.

Michael Newton

unread,
Jan 6, 2017, 9:20:39 AM1/6/17
to fsharp-o...@googlegroups.com
I'd definitely take it for a spin, but I'm not sure I'd become a regular user without some killer features. Be fun for coding when I'm not at my main machine (emacs with evil bindings) but apart from that I'm not fully sure I'm seeing the selling point?

Jimmy Burrell

unread,
Jan 6, 2017, 10:00:54 AM1/6/17
to F# Discussions
Matt,

A couple of questions. 1.) When you say 'distributed hosted terminal service' do you mean every individual gets their 'very own' or is this more like pair (or maybe mob) programming? 2.) Could it be made to host pair-(or more)-programming?

I'm an avid Vim user and F# devotee, though I've been experimenting with VS Code and Ionide. I would definitely find your project fun, although as some have pointed out, it is an unknown as to whether I'd become a repeat user.

If I were you, I wouldn't let negative feedback dissuade me from proceeding since the fun is in the building and learning. If you do decide to proceed, and your project is open source, please let us know the name of the repo so those interested can follow your progress or perhaps lend a hand :)

Good luck,

Jimmy...

P.S. I do remember Tsunami :)

On Friday, January 6, 2017 at 1:27:16 AM UTC-6, Matthew Moloney wrote:
Hi folks,

<snip>
...

Matthew Moloney

unread,
Jan 6, 2017, 10:04:20 AM1/6/17
to fsharp-o...@googlegroups.com
I have my own ideas on what the killer features would be but I do want to see how much of a hill I’ll have to climb with dev education so my hope is that others can see the benefit of a pre-configured hosted terminal IDE using a Mosh / Tmux / Vim / Unix stack. If not and I’m the only regular user then I’ll just stick to data science, that’s ok.

Matthew Moloney

unread,
Jan 6, 2017, 10:23:45 AM1/6/17
to fsharp-o...@googlegroups.com
Hi Jimmy,

1) Every user gets their own terminal but on shared computer, isolation provided by FreeBSD jails, so it’ll be like having your own computer without root access. Some monitoring and restrictions may be needed to prevent abuse.
2) Yes, the plan is to have directories that are group writeable for projects where individual git repos would be overkill 

Thanks for the encouragement, I’m not easily discouraged (i.e. ridiculously stubborn). This proposal is a stepping stone to what I really want to build (the MMORPG IDE). It will be extra work so I just want to see if there could be demand for it or if I should just solve my own problems and go straight to the MMORPG IDE. There is no point putting too much effort into trying to generate demand for the intermediate stage if it’s not something people want.

Cheers,
Matt


Stephen Swensen

unread,
Jan 6, 2017, 9:30:13 PM1/6/17
to F# Discussions
Hi Matt,

I think this is a really cool idea! FWIW I am an F# + vim user (thanks Karl for vim-fsharp!), and I work with another guy who is too...

Stephen

Matthew Moloney

unread,
Jan 7, 2017, 2:15:59 PM1/7/17
to F# Discussions
Hi Stephen,

Thanks.

BTW - I noticed this (http://www.commitstrip.com/en/2016/12/22/terminal-forever/?) on Jimmy Burrell's twitter :) 

And Alacritty a Terminal written in Rust and OpenGL was top story for a day in Hacker News yesterday (https://news.ycombinator.com/item?id=13338592)

I'll circle back around when I'm closer to actually doing this. Rough order of magnitude is in months.

Cheers,
Matt
Reply all
Reply to author
Forward
0 new messages