News for hackers. Stuff that matters.
Re:Ask HN: What is the single top-priority software engineer... by simonw on Saturday February 08, 2020 @02:16PM (#22277728)
Development environments. The amount of time and hassle I've seen lost to getting a working development environment up and running is incredible.

Every time I talk to someone who's learning to program I tell them: "Setting up your development environment will be a nightmare. I have been doing this for twenty years and it's STILL a nightmare for me every time I do it. You are not alone."

Docker is reasonably good here... except you have to install Docker, and learn to use Docker Compose, and learn enough of the abstractions that you can fix it when something breaks.

https://glitch.com/ is by far the best step forward I've seen on this problem, but it's relatively limited in terms of what you can accomplish with it.

Re:Ask HN: What is the single top-priority software engineer... by amasad on Saturday February 08, 2020 @03:40PM (#22278190)
This is my calling. I'm the cofounder of Repl.it and I've dedicated my career to solving this problem.

Simon -- since you're the cocreator of Django, you might get a kick out of this: From loading up a Django environment to adding and rendering the first view takes less than a minute: https://gifs.amasad.repl.co/django.gif

Before starting this company I was a founding engineer on the React Native team where I focused speed of setting up and taking the drudgery out of cross-platform mobile dev. And before that I was a founding engineer at Codecademy where we were attacking the same problem from an education angle.

With Repl.it, however, we're determined to simultaneously solve the "getting started" problem while scaling the environment to allow real work. It's incredibly challenging but we've made great progress. If anyone is interested in working with us, collaborating, or if you're simply passionate about this problem and want to chat then I'd love to hear from you: [email protected]

Re:Ask HN: What is the single top-priority software engineer... by travisjungroth on Saturday February 08, 2020 @03:42PM (#22278202)
I read that comment and thought “repl.it founder’s gonna be in here real quick.” Then I saw your comment with ‘0 minutes ago’ at the top.
Re:Ask HN: What is the single top-priority software engineer... by AndrewKemendo on Saturday February 08, 2020 @04:23PM (#22278448)
I love Repl.it and taught my daughter python there. Can you please make a self hosted version? I think the only thing I've seen is that maybe sometime in the future you'll have it.
Re:Ask HN: What is the single top-priority software engineer... by amasad on Saturday February 08, 2020 @04:28PM (#22278483)
Great to hear :-)

Certainly the plan. Just a matter of priorities and time. I'm curious, what's so attractive about self hosted version?

Re:Ask HN: What is the single top-priority software engineer... by CamperBob2 on Saturday February 08, 2020 @04:47PM (#22278636)
As long as my critical infrastructure and tools depend on someone else's computer, I'm nothing more than a (potentially well-paid) sharecropper.

In fact, I think that's a valid answer to the question posed by the headline. Returning the power to the end user, and keeping it there, should be the most important priority for software developers. This is a social problem, not an engineering problem, but unlike many other social problems the solution will have to be engineering-driven.

In more concrete terms, that means being able to self-host your tools.

Re:Ask HN: What is the single top-priority software engineer... by Multicomp on Saturday February 08, 2020 @05:32PM (#22278991)
> As long as my critical infrastructure and tools depend on someone else's computer, I'm nothing more than a (potentially well-paid) sharecropper.

I heartily agree. There are so many new tools and things that are interesting concepts, that I don't try because there is no offline/self-hosted version available.

Current example (but can be replaced by a myriad of other tools, this is not specific to 'em): Notion. Apparently could be adopted into my personal knowledge management, has some interesting features most of the software I've seen so far does not, but why would I ever invest even a moment of time to pay the costs of using the system (let alone the membership fees etc.) if one day, poof, it's gone, like Frank Sinatra, like WiiWare, like Microsoft eBooks, like Google Reader.

> Returning the power to the end user, and keeping it there, should be the most important priority for software developers.

This is what we need to return to. Look at the open-source manifestos, FSF documents, heck even certain sections in the Windows 9x User interface guides and .NET Framework design guidelines indicate that the user should always be the focus, the user should be the one in control.

Re:Ask HN: What is the single top-priority software engineer... by AndrewKemendo on Saturday February 08, 2020 @05:13PM (#22278828)
It's a requirement for most of the US DoD (though that's changing). Which is where I work
Re:Ask HN: What is the single top-priority software engineer... by ta999999171 on Sunday February 09, 2020 @01:00AM (#22280638)
> (though that's changing)

Though I'm glad for the flexibility it will offer you...that doesn't seem like an awesome idea/trend.

Re:Ask HN: What is the single top-priority software engineer... by simonw on Saturday February 08, 2020 @08:51PM (#22279885)
That gif is a really excellent demo. I'd been mislead by your name - I assumed you were all about Jupyter-style REPL consoles. I didn't realise how much closer you were to Glitch.

I'll take a deeper look.

Re:Ask HN: What is the single top-priority software engineer... by amasad on Saturday February 08, 2020 @09:55PM (#22280093)
We started as just an editor and a console -- I initially modeled it after the Dr Scheme REPL (now Racket) -- but our users wanted more. Kids who learned to code using our repl wanted to use it to build and publish apps so we evolved the product towards becoming more of an IDE while trying to keep the simplicity.

Check out our community as well, lots of hackers, especially young ones, sharing and collaborating on code: https://repl.it/talk

Re:Ask HN: What is the single top-priority software engineer... by k__ on Saturday February 08, 2020 @06:40PM (#22279392)
How does it compare to Codesandbox?
Re:Ask HN: What is the single top-priority software engineer... by amasad on Saturday February 08, 2020 @08:19PM (#22279790)
Focused on simplicity, speed, and generality. They do really well on frontend and client-side execution. Our speciality, on the other hand, is language support and containers/general dev environments.
Re:Ask HN: What is the single top-priority software engineer... by k__ on Sunday February 09, 2020 @06:58AM (#22281685)
Ah, okay thanks.
Re:Ask HN: What is the single top-priority software engineer... by masterjefferson on Saturday February 08, 2020 @04:33PM (#22278524)
Thank you for your hard work!
Re:Ask HN: What is the single top-priority software engineer... by darzu on Saturday February 08, 2020 @03:31PM (#22278138)
My dream is a "Open in VSCode" button on each GitHub repo that would create a container dev environment (either locally or hosted), and that environment would be ready to run all test, CI, localhost etc.

You could trivially create a new environment to test out someones PR or work on a feature branch, etc. If you use hosted environments, then you could connect from any client. If you only have a web browser, then you could work from VSCode in the browser (it's all JS+HTML anyway).

Others could join your hosted environment for peer-programming Google Docs style.

On hosted environments, normally long builds could be done very quickly and smart caching on the backend could share incremental compilation state between your teammates and you.

We're pretty close to this already with VSCode Remote Containers[0], Visual Studio Online[1] and VSCode Live Share[2].

(Disclosure: I work at MSFT but not on these technologies.)

[0] https://code.visualstudio.com/docs/remote/containers

[1] https://code.visualstudio.com/docs/remote/vsonline

[2] https://visualstudio.microsoft.com/services/live-share/

Re:Ask HN: What is the single top-priority software engineer... by amasad on Saturday February 08, 2020 @03:45PM (#22278220)
We've made something similar at Repl.it -- we call it "Repl from Repo". It's far from running everything but it can run a lot: https://repl.it/blog/github

We tried to make it as seamless and as low configuration as possible. Our "run on repl.it" badge is currently growing exponentially on GitHub.

Re:Ask HN: What is the single top-priority software engineer... by ijpsud on Saturday February 08, 2020 @04:03PM (#22278329)
Great work on this. Is it open source? Or is there a way to use my own hardware? If not, then it seems like gitpod.io[0] is a much better fit for the open source ecosystem. That said, there's definitely a place for proprietary software in this space (I'm a Glitch user and I love it).

[0] https://www.gitpod.io/

Re:Ask HN: What is the single top-priority software engineer... by amasad on Saturday February 08, 2020 @04:10PM (#22278372)
Much of the component pieces are open-source, as I mention in this comment: https://news.ycombinator.com/item?id=22278301

And the goal is to get to open-source most, if not all of it.

Is GitPod fully open-source? AFAICT you still need to buy a license to self-host.

Re:Ask HN: What is the single top-priority software engineer... by lobo42 on Monday February 10, 2020 @05:17AM (#22287830)
Gitpod is open-source at core. I.e. we made the IDE completely open-source (https://theia-ide.org). I didn't know replit is open-source. Can you share a pointer?
Re:Ask HN: What is the single top-priority software engineer... by gavinray on Saturday February 08, 2020 @03:39PM (#22278187)
What you are talking about exists, and its fantastic:

https://www.gitpod.io/

Re:Ask HN: What is the single top-priority software engineer... by silviogutierrez on Saturday February 08, 2020 @05:20PM (#22278900)
Nix is the closest I've come to this dream.

I like docker, but it's too resource heavy on a Mac. I need it running directly and not in a VM.

So a simple nix file, and nix-shell shebangs[1] has been life changing. Throw in --pure and now you really know the environment works everywhere.

My repos all have a shell.nix with every dependency. Just call nix-shell and it works in Linux and OSX. Anywhere.

You can even bundle it into a docker image and use nix in there too. For production, etc.

Documentation and tutorials are lacking, but if you put in some time, I've found nothing comparable.

Version it in, pin the Nix channel[2], and you can come back a year later in a brand new machine and start where you left off.

[1] https://gist.github.com/travisbhartwell/f972aab227306edfcfea

[2] Highly counterintuitive: if you don't pin a Nix channel, it's a moving target and dependencies may go missing, be updated, etc.

Re:Ask HN: What is the single top-priority software engineer... by thundergolfer on Saturday February 08, 2020 @06:12PM (#22279281)
Agree that Nix is a great candidate. The PhD about it is quite readable and demonstrates the rigour with which the author approaches this problem space.

It’s pretty difficult to understand and use though.

Re:Ask HN: What is the single top-priority software engineer... by whateveracct on Saturday February 08, 2020 @06:29PM (#22279348)
Nix has pretty awful UX for sure. It's kind of a trial by fire to learn it.

But once you do, you can build abstractions to improve that UX. But it would be nice if vanilla Nix was easier.

Re:Ask HN: What is the single top-priority software engineer... by zelly on Sunday February 09, 2020 @01:10AM (#22280665)
Nix was a huge innovation in operating systems. The wider community has not caught up yet, but it will.
Re:Ask HN: What is the single top-priority software engineer... by chubot on Saturday February 08, 2020 @02:50PM (#22277928)
repl.it is a nice take on this problem:

https://repl.it/

I was impressed by the low latency (at least as of a few months ago). If you make a web app right, it can be faster than a resource-hogging local IDE!

I don't use it myself every day because I've already been using vim/screen/bash for 15+ years. Those are my lightweight REPLs.

But if I were advising someone to code, and they wanted to skip the dev env, I would probably try repl.it. They also have impressive concurrent editing facilities in any language.

----

I also think the question is malformed, because I would hesitate to say there's any "single problem" in software development. It's all death by a thousand paper cuts.

The "dev env" problem is real, but it's really a problem with 100+ different tools. It's an architecture/ecosystem problem.

repl.it has some creative solutions to these problems, though it's still a ton of work. I think they are doing great but it's not going to solve all problems.

For example, another popular dev env is for data science or machine learning researchers. RStudio is doing some good stuff there, and there's Google colab, etc.

Software development is very big diverse and it's hard to imagine one solution cutting across all of it.

Re:Ask HN: What is the single top-priority software engineer... by amasad on Saturday February 08, 2020 @03:59PM (#22278301)
Thanks so much for the mention. It's indeed a lot of work, but we've done so much with such a small team and it's only accelerating as we layer all of our solutions on top of each other. We're solving one problem at a time with focus on patterns and abstractions that makes it easily extensible and could support virtually any language.

With the Universal Package Manager (https://github.com/replit/upm) we're trying to encode the best practices in package management behind a single easy-to-use interface. One of the most fun features is that you can `import` or `require` a package and we'll just guess what you want to do, install the dependencies for you, generate a spec and lock file.

With prybar (https://github.com/replit/prybar) we're trying to create a universal interactive programming experience that behaves roughly the same for every language.

And, to be open-sourced soon, our window-tiling manager and workspace (https://repl.it/blog/ide), we're trying to build a framework that makes it so easy to build complex, plugin-based environments, such as IDEs, very easy to build.

We also leverage a lot of awesome open-source projects and standards, like the Language Server Protocol by VSCode/Microsoft, that abstract over language features and makes it easy to provide an amazing experience across languages.

Edit: if it's been a few months since you tried Repl.it, give it another try, we've made a lot of progress since then. Multiplayer is now out of beta, we have Git integration, and we've done a lot to make it faster and more reliable.

Re:Ask HN: What is the single top-priority software engineer... by ohthehugemanate on Saturday February 08, 2020 @05:50PM (#22279151)
Have you tried using VSCode's remote development extension?

In a nutshell: your repo contains a file (or directory) with everything needed to set up a containerized run environment for the project. VSCode adds its own server daemon, and your IDE runs half inside the container, half on the host machine. Once it's set up, everyone on the project (who has vscode) instantly has a one click clean, working development environment, including all the niceness you expect from local development (debugger, test integration, etc). It is fucking magical.

Detail: https://www.hanselman.com/blog/VisualStudioCodeRemoteDevelop...

Re:Ask HN: What is the single top-priority software engineer... by k__ on Saturday February 08, 2020 @06:42PM (#22279404)
I thought about creating an AMI for AWS that uses code-server instead of Cloud9.
Re:Ask HN: What is the single top-priority software engineer... by tfolbrecht on Saturday February 08, 2020 @07:29PM (#22279606)
Theres a great tool by cdr that uses ssh to prepare and launch a VScode environment. Works great in conjunction with AWS ec2 tools like the awscli.

https://github.com/cdr/sshcode

Re:Ask HN: What is the single top-priority software engineer... by ohthehugemanate on Saturday February 08, 2020 @07:38PM (#22279639)
right, this is something like what VSCode has built in, except rather than hosting all of VSCode on the remote server, it splits itself into a thin client on your host and a server backend on the remote machine. You can use SSH, or my preference is a local container.
Re:Ask HN: What is the single top-priority software engineer... by t-writescode on Saturday February 08, 2020 @02:33PM (#22277832)
And then after using Docker, sometimes you need to figure out how to get your debugger and IDE to talk inside the docker container, which has .. varying levels of success depending on the language.
Re:Ask HN: What is the single top-priority software engineer... by z3t4 on Saturday February 08, 2020 @05:13PM (#22278831)
I've been working on this for the last 3 year and at least solved the problem for myself. The crux is that there are about 100 programming languages, with a few frameworks each, and a couple of database solutions, with at least a dozen different versions of frameworks and databases that are used in parallel for app maintenance, and a few different platforms to run on. And on top of that developers like to customize their developer environment.
Re:Ask HN: What is the single top-priority software engineer... by closeparen on Saturday February 08, 2020 @06:54PM (#22279456)
It’s absolutely tragic that LSP isn’t meant to work remotely, because the actual editing and code intelligence interface really needs to be local. So practically speaking the whole dev environment has to be local. I’ve used rsync type solutions for both AWS and local VMs (docker for Mac), and in the end it was always better to just get the thing running natively.
Re:Ask HN: What is the single top-priority software engineer... by claudiawerner on Saturday February 08, 2020 @02:57PM (#22277968)
I'm interested in what features and integrations (possibly to be included in the default install) that Emacs and Vim need to compete with IDEs. A package for major OSs that contains Emacs+various packages, gcc, autotools and make all set up to run out of the box would be great.
Re:Ask HN: What is the single top-priority software engineer... by par on Saturday February 08, 2020 @02:45PM (#22277898)
Also, at least on Mac, docker can be a major resource hog.
Re:Ask HN: What is the single top-priority software engineer... by andbberger on Saturday February 08, 2020 @03:07PM (#22278028)
Pretty sure it just runs in a normal VM when not on linux
Re:Ask HN: What is the single top-priority software engineer... by PopeDotNinja on Saturday February 08, 2020 @03:33PM (#22278151)
Close. Docker for Mac runs in a paravirtual environment using Hyperkit, which uses Apple's Hypervisor.framework. At least that was true a couple years ago. A couple years before that, Docker Machine and boot2docker ran on hypervisor of choice (e.g. Virtualbox).

If you get a chance, Hyperkit can be fun to play with. I was able to write a bash script that downloads Hyperkit andba Debian ISO, and from that boot a running instance of Debian. It was an interesting exercise.

Re:Ask HN: What is the single top-priority software engineer... by michalf6 on Saturday February 08, 2020 @11:22PM (#22280387)
That’s what I like about working in a .net shop, it goes like this:

1) install windows 10 2) install visual studio

And I’m good to go. I’ve seen my friends from the uni setting up elaborate arch/vim contraptions and I’m kinda glad I don’t have to.

Re:Ask HN: What is the single top-priority software engineer... by fsloth on Saturday February 08, 2020 @04:11PM (#22278378)
Visual studio works really well with C++ and .net languages. The defaults are fairly reasonable. Of course if defaults don’t suffice it’s back again to painland.
Re:Ask HN: What is the single top-priority software engineer... by awinter-py on Saturday February 08, 2020 @04:34PM (#22278529)
dotfiles help a lot here, they should have them for more things

npm & git's local directory awareness is a lifesver

rvm / nvm are great when the shell integration is turned on, direnv is wonderful

gap seems to be with native packages -- there isn't one of these for brew / apt-get, and language-level package managers fail on these deps a lot

inability to map local hostnames to docker is also a problem -- that would make it easier to manage multiple environments at once

Re:Ask HN: What is the single top-priority software engineer... by globular-toast on Saturday February 08, 2020 @04:48PM (#22278640)
Why are you setting up new dev environments all the time? I have my dotfiles on github and they're always ready to go on any new Linux system I happen to be on. I have to initially set up new tools, of course, but once it's done it's done.
Re:Ask HN: What is the single top-priority software engineer... by k__ on Saturday February 08, 2020 @06:39PM (#22279389)
I was looking in offerings like Glitch lately.

Codesandbox had better UX than Glitch, at least for my taste.

Re:Ask HN: What is the single top-priority software engineer... by aosmith on Saturday February 08, 2020 @04:14PM (#22278390)
And let's not even get started on docker for mac volume mounts. My linux machine (that's not allowed anymore) is literally 10x faster for local dev.
Re:Ask HN: What is the single top-priority software engineer... by jcelerier on Sunday February 09, 2020 @03:55AM (#22281137)
My development environment is

    pacman -S qtcreator clang qt5 cmake ninja git hotspot heaptrack 
I can start pissing apps 10 minutes after a clean install of my system... what do you guys do that make it so hard ?!