5 ms·
Ask HN: What's the most productive development environment you've used?
And what do you attribute that environment's productivity to?
- bhouston 8y agoFor c# visual studio .NET in 2012 (I really haven't used it since) with its refactoring tools was pretty quick and its compilation system with integrated error checking in the text editor. It was really productive. When I switched over to JavaScript I miss that a lot. Of course JavaScript just doesn't lean itself that well to automatic refactoring and the build process is significantly more complex too, so you only get local syntax checking usually in the editor. And then eventually VS.NET got auto-help where it would should you documentation in a side window if you typed in a function or hovered over one. That was nice when using APIs you were not familiar with. You could actually find all references/usages and be sure it was actually correct. I could click on an include and it would actually open the file no matter what and if it was referencing a DLL/Assembly it would immediate give me a decompile/documentation link. The downside of the visual studio approach was the lack of text-based configuration. I spend hours adjusting settings in project files. (This was addressed via CMake when dealing with C++ but I do not think there was an equivalent for C# that I was aware of that the time.)
- ivm 8y agoUnity3d: you can run a game in it and adjust everything live, including scripts. Also I've yet to see a UI framework as flexible as UGUI that is based on Unity's ECS architecture.
- amelius 8y agoTerminal + vim + window manager that supports multiple workspaces.
- vkareh 8y agoThis. I use non-composited Marco as my wm and several terminals and gvim instances. Switching workspaces and windows is super fast, and have vim configured with shortcuts to switch between buffers.
- icey 8y agoFor me it's either been emacs with a lisp (SBCL or Clojure), or C# with Visual Studio. In both cases the reasons were similar -- deep editor integration with the language. Having an editor that understands how the language works and is structured makes refactoring and navigation much simpler, and makes it faster for me to author code. That being said, most of the major editors are pretty great today. There's great support for all the top 10 languages in multiple editors, so if you want to write Go in VS Code, or Elixir in Atom, or Python in vim, you're probably going to have a good time (or at least the editor will do quite a lot for you). It's a great time to be a software developer!
- Zak 8y agoSomething that makes a big difference to me with Emacs and a Lisp relative to other languages and editors is that everything works by communicating to a running process. Need to look up function args or a docstring? It doesn't have a separate thing that statically analyzes the code. It asks the running process. Want to see what an updated function outputs? It can use the state of the running process. Trying out some other change? It doesn't have to reload anything, lose or persist state, etc... it just updates the running process and you go from there. Want that running process to be on a remote server? An Android device? A page running in a web browser? Your powerful desktop while you work from a small laptop while lying in your hammock? No problem. I don't understand why this hasn't caught on to the same degree with other languages. Most of them have REPLs and introspection tools, so they could behave this way.
- xxxdarrenxxx 8y agohttp://brackets.io/ http://brackets.io/ has a live view for basic html and css. There's a package for the nodejs ecosystem called "nodemon" https://github.com/remy/nodemon https://github.com/remy/nodemon That restarts the webserver on filechanges automatically. The former is very basic and I don't really use it, but nodemon is quite nifty.
- Zak 8y agoReload-on-change is a relatively common feature. While a lot of modern web programming frameworks and libraries don't rely heavily on in-memory state, this is very much a different experience from having your editor constantly communicating with a live process.
- rurban 8y agoVisual Lisp: Elegant and simple language, great graphical debugger with stepper (as in Visual Basic), great compiler, safe. No other Lisp or other IDE's come close, but I never worked on a lisp machine, which should have about the same features. I never warmed up to Smalltalk enough to use it productively. Visual Basic had a macro recorder feature (my lisp didn't have this, only emacs) and a similarily great IDE, but their language ecosystem is just horrible. You can easily write a fast and safe multithreaded server, but using their libraries just sucks. .NET got that better, but still not comparable. PHP Komodo was great, but still. It was PHP. Horrible libraries. Emacs+magit+c-mode+flycheck... or Visual C++ for my usual work is fine, but also very limited compared to better integrated systems. Haven't setup LSP yet though. This should improve things by a wide margin. I also had a nice MultiEdit Pro integration with all my tools and docs, which was better than my current Emacs setup. But that was decades ago, on DOS. Graphical development env's like Matlab Controldesk Simulink was nice, but not really productive. You constantly click in and out of nested blocks, connect dots and follow long lines, which is similar to counting parens manually with lisp. It sucks.
- mamcx 8y agoVisual FoxPro. By a long mile. I never need to install a package system, use VM, install a database engine or anything like that. Maybe the most was download some components from some site (I remenber was a large forum back them). Integrate REPL, form builder, report builder, rdbms, database builder, query builder, menu builder... ----- Second best was Delphi 3/7.
- rcdmd 8y agoWhat do you use now?
- mamcx 8y agoNow is a mix. Python, Swift, .NET/F#, Postgres, Sql Server, Firebird, etc......
- stuartd 8y agoI used VFP for 10 years, from the insanely buggy original 3.0 release to the final "Sedna" edition. I miss the Command Window occasionally, but nothing else. Visual Studio at the time was something of a car crash, but it is a solid IDE now. And I never really used the 'builders', probably a) because they were so buggy in the original release and b) because I like to do things myself so I know what's going on.
- segmondy 8y agoUnix Systems. Linux, BSDs, Sun/Solaris
- sologoub 8y agoVim + tmux + NERDTree + a bunch of other plugins to handle code completion, gutters, etc. Add a 34-inch ultrawide monitor (Dell has been best with color accuracy for me) to the mix and a nice keyboard, makes all the difference in the world!
- frfl 8y agoWould you mind sharing what plugins your using? I've tried combining and setting up yourcompleteme, ale and one or two others I can't recall, but it never work as flawlessly as say vs code or pycharm in terms of completion, suggestions and quick doc viewing. Are you using vim or neovim?
- nerdwaller 8y agoI use neovim with deoplete as the completion engine and all the plugins to deoplete required for my work (python, JavaScript, Go). There’s a number of other useful plugins, but that alone get me pretty close to IDE level completion.
- sologoub 8y agoAway from computer right now, but off the top of my head: Youcompleteme (works great for me, but I think I had to tinker with it) NERDTree NERDcommenter Gitgutter pdb (experimenting with it) Probably forgetting something.
- awiesenhofer 8y agoWhat kind of work do you do with that setup if you don't mind me asking?
- sologoub 8y agoThis is mostly for personal tinkering - typically Django and some APIs, or data stuff. I’m a product guy by trade. Currently, focusing on data-related products and functionality, but have done SaaS, telco, etc. For work I recently had to write some QA tools to extract data from BigQuery and verify that the payload is correct. Vim and google’s bq cli made it a lot easier than I expected.
- monocasa 8y agoI really like vscode with it's built-in terminal right now. It's a good balance for me of a nice modern IDE (intellisense, lint, fmt on save, etc.) and a classic Unix shell that I've been using for 20 years. Ctrl+click on grep -n results (or anything that looks like a relative path of the current open folder) opens the file/line in the editor.
- zimablue 8y agoVBA first and in second place jupyter. Everything I've ever been employed to do has pretty much been throwing data around, there's no substitute for being able to iterate and view dataframes interactively. I've used Visual Studio/pycharm for my coding coding but if I had to choose between no IDE and no data-repl I'd go no IDE every time.
- fractalwrench 8y agoIntelliJ. It has some great keyboard shortcuts for refactoring code, allows searching by symbol names, and has a wide selection of plugins. Surprisingly it's quite a consistent experience when editing across different languages, such as Java/Objective-C, which leads to less mental overhead with the tools (at least in my experience)
- CardenB 8y agoTMux + vim + YCM at google where everything was set up properly
- Agnosco 8y agoRstudio.
- Alir3z4 8y agoPython with PyCharm, especially when working with Django. It has a great understanding of whole toolkit and knows what to do and how to help you go faster. From integrated testing, database source viewer up to working with remote interpreters, basically everything is included to make you focus on work without leaving the IDE. The same goes when doing JavaScript, I'll go straight to WebStorm. Need to mention my go to OS is ArchLinux with the latest KDE on top of it. If I have to use Windows, then I'll fire up an Arch Linux VM and live with a SSH session.
- thdxr 8y agoArch Linux, i3, vscode with vim bindings, Firefox with Vimium. Optimized for not using your mouse. It's not so much about literally saving you time since typing is only small portion of your day, but being able to express yourself with less effort goes a long way in keeping you from feeling mentally drained
- vanous 8y agoIs there a simple way in vscode to pass selection of text to external tool like sort or python script, like vim can do? I tried but didn't find anything simple...
- ocdtrekkie 8y agoVisual Studio 6, when you could drag and drop your UI, double click elements to code what they do, and all of the generated code was human readable. I'm not sure we'll ever get a development environment designed to put together software that quickly again with all of our modern expectations for design, mobile friendliness, etc.
- stuartd 8y agoWell, you can still do that in Visual Studio 2017 with Windows Forms. Remember when when they tried to do the same with Web Forms? What a disaster. I suspect this may have been the reason they moved to declarative UI like WPF but I personally don't buy that approach. Then again, I work on conversational interfaces now where there literally is no UI at all except a textbox and a send button..
- naikrovek 8y agoThe drag & drop web stuff they had worked fine if you didn't need anything that it couldn't provide.
- stuartd 8y agoYeah like 'basic web functionality'. Unless you're happy with a full page refresh every time you click literally anything, And please don't suggest the UpdatePanel as a solution..
- ocdtrekkie 8y agoYeah, I've done a good amount of VS2017, but WinForms is far from recommended these days, and I think VS6 was the height of easy, quick application development. I don't think anyone's come close to making something similar that holds up as well. Someday I'll learn WPF.
- orta 8y agoTypeScript, VSCode, Relay, GraphQL, Jest, React/React Native - a lot of modular tools which combine into a really safe and fast development environment for web/iOS. Feedback is close to instant, tools are all open for improvements and the people running these projects are accessible.
- rom16384 8y agoVisual Basic Classic. It had an intuitive GUI builder, and database access built-in. This combined with a very good IDE and included documentation made for a very fast and effective development environment.
- nknealk 8y agoDataGrip by Jetbrains I have yet to encounter a better SQL IDE. In particular, it has fantastic auto complete and it has drivers for pretty much every database under the sun right out of the box.
- noir_lord 8y agoAgreed, also the DB tooling in the jet rain IDEs basically is datagrip it just use a different UI, the underlying layer is near identical, enough that I have IntelliJ ‘projects’ that just open a DB connection.
- Insanity 8y agoIt's hard to really measure productivity. For most things I'll use tmux + vim. For Java I'll use IntelliJ with the VIM plugin
- jiri 8y agoTurbo Pascal was great.
- aportnoy 8y agotmux + NeoVim for Python development. Switched from regular Vim after discovered NeoVim has much better Python support and a smarter terminal.
- yeswecatan 8y agoCan you expand on this a bit? I've been writing Python in vim using some plugins-- mainly jedi-vim, YouCompleteMe, ctrlp, and SimpylFold. What does NeoVim do better?
- 131hn 8y agonotepad2 gives me the highest ratio betwen my code and the environment around. I tried all others, but i keep coming back here (since always). As a platform, WSL is a huge productivity boost for me Also nodejs replace now 10+ y of custom created php helpers (as api wrappers mostly)
- dmmalam 8y agoVB6
- rom16384 8y agoI agree. VB6, Delphi and similar development environments are unmatched at quickly creating desktop applications. Is there anything similar to create web apps?
- T-A 8y agoDelphi 3.0 (it went downhill after that). You could slap together a GUI quickly in the form editor, wire it up to your code (i.e. fill out the auto-generated event handlers) and compile in seconds (on a 1990s PC!). There was a large selection of add-on GUI widgets and non-visual components, free and commercial, you could make your own and you could even modify the core Visual Component Library (the source was included). If you needed to talk to other applications via COM, or directly to the OS, or load C/C++ libraries, it was easy. And you could do all that in one integrated IDE, instead of having to learn and orchestrate a jumbled mess of different tools. It also didn't hurt that by targeting Windows only back then, you had something like 90% of the potential market covered. It was bliss while it lasted.
- chadcmulligan 8y agoI still use Delphi XE10 regularly, and it still is the most productive environment imho, (though object pascal is showing its age). Second choice - Swift and Appcode, Swift is the most productive language I have used so far - all the static type checking but also it feels like a dynamically typed language.
- coldcode 8y agoTurbo Pascal in 1983-84. The first IDE is ever saw, compiler, linker, editor and debugger ran in memory on a PC/XT with 640K RAM. I still have the impression today that it could build faster than I could think, but of course the expectation of software was much less than today.
- chadcmulligan 8y agoThis always gets me shaking my head - things that turbo pascal is smaller than http://prog21.dadgum.com/116.html http://prog21.dadgum.com/116.html. Turbo pascal was a marvel of its time
- PerfectElement 8y agoFor me it used to be Visual Studio + ReSharper, but last month I switched to Rider and it's been amazing. It's like VS + ReSharper without the performance issues.
- naikrovek 8y agoI think I'm about the only person left that doesn't like IntelliJ software. I can't even stand resharper. And their Java tooling, which everyone else loves more than their own children, sucks more than anything else of theirs. I just don't get it.
- scarejunba 8y agoIntelliJ with IdeaVim and some key remapping. Deep language awareness and integration. With IdeaVim, world class text manipulation. I feed it large RAM, about 12 gigs.
- johnnyOnTheSpot 8y agoLispworks.
- berns 8y agoFor those mentioning tools from the 80's and 90's: It cannot be ignored the tremendous impact on productivity that the creation of Git and Mercurial have had.
- humbleMouse 8y agoSpring boot/maven/intelli j baby!! Everything is set up just to work. No funny business, nothing complicated, just an endlessly extensible easy environment. Intelli j has plugins for everything. The darkula theme is easy on the eyes too.
- itpragmatik 8y agoPowerBuilder - by Sybase
- noir_lord 8y agoIntelliJ I swear by (and occasionally at) it. Having decent quality tooling across python, phi, JavaScript, typescript, SQL and Java as well as all the database featured for MySQL and Postgres is a huge win for me. There are probably better tools for each domain but not as heavily integrated or consistent. It’s a resource hog but I don’t care, it’s so good I’d spec an extra 8Gb of RAM if it needed it (it’s not that bad tbh in a world with electron at least).
- tomxor 8y agoi3wm + sakura + Atom ... that later is a love hate situation, amazingly extensible and customisable, performance is stupidly slow, lots of memory leaks in plugins, but the plugins are too damn useful - One day someone will make a fast open source replacement, or I will invest in vim.
- lupinglade 8y agoXcode and Swift.
- mahdix 8y agovim + bash
- stephenwithav 8y agotmux + emacs + emacsclient. Keyboard shortcuts and extensibility are the keys to success.
- superasn 8y agoI'd have to say PhpStorm. It makes web dev really super easy. I used to hate IDEs but now I love it so much that I use it for writing one off scripts too. Also laragon with Laravel is just amazing. Laragon makes it super easy to configure the environment (out of the box support for wamp, git, node, ngrok, you name it..)
- jdougan 8y agoVarious virtual image based Smalltalk systems. VisualWorks, Squeak, Pharo, etc.
- whitelio 8y agoHacking and programming by the dark web has been setting pace for years now and we surely are not ready to relent until we meet your hacking and programing needs as a firm. We aim to digitalize the world to the satisfaction and happiness of all. Kindly contact our main officer for all your HACKING and PROGRAMING services which may include <>Gmail, yahoomail, protonmail, electronic mail and other mail types hacking. <>Facebook, whatsapp, instagram, blackberry messenger,snapchat hacking. <>Iphone, icloud and mackbook hacking. <> CCTV hacking <> phone hacking and tracing [we can get text messages and redirect a copy of voice calls to a mail or phone,that would be a good one to stalk on your suspicious or cheating spouse] <>personal and office computer hacking <> school website hacking and grade changing/upgrading. <>Game and betting sites hacking[before and after game] <> bank details clearing <>criminal record clearing <> Bitcoin hacking <>Western Union hacking <> shopping website hacking <> we do virtually anything you want, money back guaranteed. contact our officer on DARKWEBOFF1@GMAIL.COM motto : not stopping until we digitalize
- rcarmo 8y ago- Vim + the right ser of plugins. IDEs are nice and I appreciate IntelliSense in VSCode, but too much automation can be a problem when you really need to understand how you’re piecing together things,
- reitanqild 8y ago-2011 eclipse (Java): seriosly good auto completion without the warts of vb. Code navigation and keyboard support were also top notch. -2011 - 2017 netbeans (Java and PHP): more stable and feature rich than eclipse. Still excellent code navigation and refactoring like eclipse. -2017 - VS Code (Angular and. Typescript, occasionally Java): fast, lightweight and still does most of the things I need. Improving every month. Extendable to edit any mainstream language it seems. Things I have left behind after spending serious time with it: - Sublime (was a paying customer but VS Code us now so much better I won't pay for another release) - IntelliJ (has had both personal and company license but after a few months I fell back to eclipse/Netbeans) - Visual Studio. (I like C#, find it better than Java but the IDE just doesn't cut it for someone who has been spoiled with Java tooling.)
- stunt 8y agoI'm using macOS at work and Linux at home. (quite disappointed about macOS ecosystem and performance..) I don't install any service on my machine and just run everything using Docker. (You can actually even run games using Docker (plz don't try it on macOS. Linux? Sure!) I use VIM keybindings in all text-editors and IDEs that I’m using. For desktop/window management, I use Xmonad (a tiling window manager). Which means I can organize all the open window(s), move them around, resize them, manage multiple workspace, and screens, all using keyboard. For terminal, I’m using fish-shell which is very powerful and highly customizable and friendly shell with a lot of aliases and functions to keep me productive. and also use Tmux only when needed. I use Vimium extension in Firefox (it is also available for Chrome) which allow me to use VIM keybindings in browser including navigation, selecting text, clicking on links, and some extra macros to do even more and all of that with VIM keybindings that I use everywhere. And finally, I have my dotfiles on Github which means I can setup my work environment on any machine in 5minutes. I use VScode, Intellija, and VIM (SublimeText way less than before because of VSCode) And it depends on what project I have to work with. Mostly because it is easier for instance to enable VIM keybindings in VSCode when I'm writing JS/Typescript comparing to setting up VIM and achieving same level of productivity. So I choose to stick to VIM keybindings and not VIM itself most of the time.
- slipwalker 8y agoPerl development with Visual SlickEdit on linux, by 2006-2007. i attribute to the fact that the language is extremely expressive, full of ready-to-use CPAN modules and VSE was/is compiled natively to the Operating System, from a nicely written codebase. So the IDE was actually helping me, instead of keeping me frustrated waiting many seconds for each context menu ( cof, eclipse, cof ). But it lacked ( by then ) on plugins for many other tasks on many other languages.
- Senkwich 8y agoFor work, I have a Mac with chunkwm as the tiling manager to give it nearly an i3 feel. It's surprising how far tiling has come on that platform. Linux I'm using XMonad, although I'll most likely switch to i3 next time I tweak my dev setup. I use neovim for most of my work, although I need to switch to atom with nuclide on occasion to debug code. I have bindings like the recommendation from the tmux navigator that enables me to move between panes with Ctrl+hjkl. Variety of other plugins for hack, python, JavaScript, Java, etc.