Ask HN: What does your development stack look like in your favorite language?
We are living in an incredibly time with respect to programming languages; the choices and diversity available are amazing. But it's often difficult to get up and running.
What's your recipe to get from a fresh OS install to the minimum viable development environment to do "real" work (not just a helloworld program) in your favorite language?
(include as much or as little detail as you want)
59 comments
[ 3.5 ms ] story [ 124 ms ] thread2. Install Firefox and Chrome
3. Install Git
4. Install Visual Studio
5. New Asp.Net Core Project with MVC
6. a few hours later get bored and install Netflix and turn on the Office.
1. Install Git
2. Install Rustup
3. Install Visual Studio Code
4. Install Rust (rls) VS Code extension
Primary API server development is in Elixir since it’s just an elegant beast and can handle the vast majority of “pure” business logic.
If I need a database, in-memory store, or anything that can run in Docker I use Docker compose to run it. If it needs a bigger box or something managed in production I’ll just use whatever the hosting provider exposes (e.g. DigitalOcean’s Managed Databases).
Some stuff like bulky user data, random binary files, etc. goes to AWS S3.
Automated tests are developed alongside features and get run with GitLab’s continuous integration. This configuration usually reflects the dependencies that are run in Docker in development, but sometimes for low-impact tests I’ll just have it hit stateless production services.
Documentation gets auto-generated by Elixir’s ExDoc, or whatever language’s mainstream solution. Generating this for production documentation gets handled by GitLab CI of course.
Clients that hit the API are variable based on my needs but I usually make a React + Redux SPA or something in the Unity game engine. Web development is always set up with Gulp so that I can run and forget about whatever Webpack, Sass, and the files are doing underneath, it just updates automagically. Depending on the size of the project I often have multiple clients accessing overlapping subsets of API actions.
If this sounds like what your company is using or wants to use, please feel free to reach out at sam (at) mangane.se (I am in the USA even though the TLD is Swedish).
2. Install Chrome
3. Install Git
4. Install Java
5. Install Maven
6. Install IntelliJ
7. Create a new Spring Boot project using Spring Initializr
2. Install Vagrant
3. Install VirtualBox
4. Install Git
5. Clone Repo
6. run "vagrant up"
2. Install Emacs.
3. Install Git.
- Set git's core.editor to Emacs.
4. Install Chromium and Firefox.
5. Write JavaScript.
The site was fairly popular a decade ago. I'm glad it's still up and doing new interviews.
2. Install/update termite, neovim, git, python3, pip3 and Firefox.
3. Clone config from dotfiles repo.
4. Log in to Firefox Sync and let it install all the extensions.
Any OS
package manager => compilers, autotools, joe, dev libs, git, ...
emacs (with my .emacs since 1985)
lsp-mode with clangd, magit
[0] https://news.ycombinator.com/item?id=19690819
2. Git checkout dotfiles, repos
3. home-manager switch (sets up personal dev environment, down to vim plugins and GTK themes)
4. nix-shell -A shell (enters the shell for my project)
5. deploy-to-minikube (builds everything and deploys locally to kubernetes on a VM... No prior setup needed)
6. push-to-prod
2. brew install elixir
3. mix archive.install hex phx_new 1.4.3
4. Install VSCode
5. Install ElixirLS VSCode extension
1. Install VS Code
2. Install iTerm
3. Install RVM and setup a gemset with the latest ruby version.
4. Install Rails
5. Install Postgres.app
6. Start building
2. Install Java 8
3. Install Eclipse; configure eclipse.ini to use jvm.dll for launching and set max heap to not all my RAM
4. Install Tomcat; configure Eclipse to use Tomcat installation
5. Install MySQL 5.7
6. Install Toad for MySQL Freeware (no longer available; might break under MySQL 8.0 when the time comes to upgrade...)
6. Eclipse -> New Maven Project
Clone and run thoughtbot/laptop. Install thoughtbot/dotfiles and then personal dotfiles. Done.
Backend: Visual Studio Dotnet core Dapper FluentMigrator Azure SQL db Azure app services
Frontend:
Visual Studio / Code Stripped down Bootstrap/Materialize Vanilla js Chrome f12 Firebug Fiddler
I code in 2 envs
- IntelliJ Idea + IntelliJ Rust plugin (steps: install+run rustup, install IntelliJ, install Rust plug-in)
- Visual Studio + C# (steps: install vs, Done)
Mostly low level techy things like audio plugins, raytracers and similar.
For the occasional (rare) web project I do backend in one of the above and frontend in vs code, using whatever framework became most popular that morning.
1. Install Homebrew
2. Brew Install Git
3. Brew Install Emacs
4. Git Clone dotfiles
5. cd ./dotfiles && bootstrap.sh
This gives me my spacemacs config and all the MLPA packages, java, clojure, elixir, python, and a few others.
https://github.com/kbd/setup/blob/master/bootstrap.py
There are still some things that are manual:
* some macOS settings that can't easily be set via "defaults write"
* VS Code makes it hard to source control its settings, so I use the settings sync extension, but that requires manual config of the gist id and access token. It's super frustrating that a programmer's editor makes it hard to source control its settings!
* iterm2's config system is frustrating as well, with user-level config (eg. colors) mixed in with things like window positions and "last time checked for updates" timestamps. So I pretty much set up my last good config for it and then run 'git update-index --assume-unchanged' on its config so I don't have to see the file constantly dirty in my repo.
- Resharper
- Visual Studio Code
- Python
- Node
- Windows Subsystem for Linux with Ubuntu
- AWS CLI
- MySql WorkBench
- SQL WorkBench (AWS Redshift uses the Postgres protocol)
- TortoiseGit (so sue me. I don’t like using git from the command line)