19 ms·
What's the Future of IDEs?
- moondowner 5y agoEclipse Che has been doing this for a while as well. https://github.com/eclipse/che https://github.com/eclipse/che
- emilwalk 5y agoDidn't know Che, I think I'll give it a chance :)
- shireboy 5y agoI’ve done all my dev work in a remote vm in azure for 3-4 years now and really like the model. I can start coding on one machine, pick back up on another, and zero dev-cruft on my local machine. I’m interested in container based ides for similar reason. The downsides he mentions are legit, but on the whole, I recommend trying the approach.
- The_rationalist 5y agoOmniscient debugging
- noisy_boy 5y agoFor me, IntelliJ is pretty much already there except speed. Too long to startup (I can live with that since I can keep the windows open for a while) but then it starts to slow down after few days and becomes quite slow, say, after a week or more. My opinion is that they should take a release or two to not add any new features and basically only focus on speed.
- xvilka 5y agoOr just rewrite it in Rust.
- gjvc 5y agotry changing the boot JVM to a version 15 JDK
- gjvc 5y ago(missed the edit window of the above comment) I wrote up how to do this here https://iam.georgecox.com/2021/11/24/making-jetbrains-ides-run-faster/ https://iam.georgecox.com/2021/11/24/making-jetbrains-ides-r...
- jimjams 5y ago"Can you selfhost the server-side?" is the biggest question If not, you're buying into dev platform-as-a-service.
- giansegato 5y ago100% this. That's why Projector is an interesting project, completely different from — say — VSCode or Replit.
- andrewmackrodt 5y agoJetBrains have recently released a new project (JetBrains Gateway) which is worth a look at too https://www.jetbrains.com/help/idea/2021.3/remote-development-starting-page.html https://www.jetbrains.com/help/idea/2021.3/remote-developmen...
- Scarbutt 5y agohmmm they are fucked, such a horrible UX compared to vscode remote development.
- deleted 5y ago[deleted]
- jaywalk 5y agoCompletely different from VSCode? The code for vscode.dev is already open source as part of VSCode. Microsoft doesn't provide any instructions for it (yet?) but that hasn't stopped the community from tackling it. A quick search turned up a couple different options: https://fribbledom.com/posts/selfhosting-vscode/ https://fribbledom.com/posts/selfhosting-vscode/ and https://www.gitpod.io/blog/openvscode-server-launch https://www.gitpod.io/blog/openvscode-server-launch
- technobabbler 5y agoFunny, it's the opposite for me: Would someone please host the serverside so I don't have to? I'd love to pay for an IDE-as-a-service that updates itself, syncs itself everywhere, has all the right extensions, auto-configures Docker and data stores and secrets and Git and linting and Webpack interation and and and... etc. Something like Vercel but for the IDE. I hate fighting IDEs (whether it's IntelliJ or VSCode) before I can write useful code. Javascript has gotten so bloated that half the challenge of any new project is setting up tooling. God, I'd love a 1-click "create new project" and then a GDocs-like IDE in the cloud, and would happily pay to never have to configure that again myself.
- lern_too_spel 5y ago> terrible keyboard, terrible screen This sounds like a problem with one device, not the whole concept. I have used devices with great keyboards and screens. You just have to pay more. > terrible shell experience In what way?
- Jyaif 5y agoWith a title like this I was hoping for something a little bit more grandiose, like discussing whether editing text files is the right way to describe computations.
- moritonal 5y agoSee that's what I want to talk about. We're moving towards a world where ML can generate code that compiles from a single comment. We have games like Battlefield now providing no-code options to FPS gamers. There are literal super computers that can spin-up environments in seconds, run a test suite and report back, all to give a little tick on a PR. Yet the IDE still just gives a messy error message if you forget a semi-colon or quote in the wrong place.
- vaylian 5y ago> We have games like Battlefield now providing no-code options to FPS gamers. Can you elaborate on that or drop some keywords that will help with a web search?
- discordance 5y agoCheck out Blueprint in Unreal Engine
- jaegerpicker 5y agoNot a massive fan of Blueprints, as a game developer who is also a long time software developer/security engineer. I think for non-coders it's a great system and can be helpful to view data flow/execution paths in a visual way. I wish the C++ and blueprints systems where better integrated. For example being able to generate one from the other or directly import and use each other (you can sorta do that but with limited access and some boiler plate). I'm not disparaging it, it is really a great attempt at visual coding but as a developer it's not a setup I'd choose to use pretty much ever. For me the best use would be for a non-coder game designer to use it to script levels and for me to integrate seemlessly from C++ as a dev and since I'm a single person indie dev it's of less use to me. It doesn't seem quite ready for that. Most games and examples I've seen with it are either blueprints or C++ not a lot of mixing yet that I've seen, though there is certainly some.
- speed_spread 5y ago- CI servers could do much more and their findings should be merged back into the IDE UI: integration tests, CVE analysis, tracking possible merge conflicts from concurrent feature branches - Bake the distributed nature of the software process into the IDE. What environments and servers is the developed software running on? That information is currently spread out over multiple tools and should be synthesized and presented coherently from the IDE, so one could dive straight from it's IDE into a problematic server and start debugging using the appropriate code without having to spend 2 hours reproducing the build configuration locally. - Finally, _Team Workflow_ is especially taken for granted, ground rules being implicit in most organisation but having the most actual impact on team productivity. How long should a PR take? How is the software qualified for release? How should new git branches be named? Important, basic stuff that changes across teams and projects that should be formally documented to lower friction for newcomers and small-time contributors. This would turn perceived arbitrary "gatekeeping" into a rational, safe processes.
- OneTimePetes 5y agoJust a addition to the _TeamWorkflow_ it would be great if there was a standardized Way to have a kan-ban pipeline mapped into the IDE. Like Icebox -> First Implementation -> Review -> etc -> Deploy & DevHops I always found that "assign" to person of gitlab to be clunky and the use of CI/CD Piplines to map the concept even clunkier. If every pipeline station becomes something abstract, and the people just check in with their station, in the IDE, with the IDE even pre-configured to the current Station (basically pipeline-modal) that would be real neat. Some of us already have that, as IDE Presets, switching manually, but having that baked in, would be a benefit.
- wing-_-nuts 5y agoI have to say I really disagree with the thought that one should bake a whole bunch of custom functionality into their ide. My company did this. A special, custom version of eclipse was required to even build or deploy their applications. What happened? It was abandoned, and since that build / deploy functionality never existed as independent utilities it was completely lost. I had to piece together how to build my application by pulling build files off of our old ass legacy cicd server and even that process is pretty horribly broken. As things stand, the legacy app I'm tasked with keeping alive is held together with bailing wire and chewing gum and almost all requests for new features are turned down. This is not a unique problem to my team, it's org wide. Tons of legacy apps are limping along because 'the knowledge' of how to do things properly was bundled up into eclipse plugins we no longer have access to.
- ilovecaching 5y agoIt's funny he mentions running on an iPad, because being able to use Vim or Emacs from on my iPad Pro with the Smart Keyboard via Blink is one of the big advantages of not using an IDE for me. Yes, web based IDEs/editors are becoming a thing, but if you really want something portable to any work environment no matter the platform/security concerns etc. there's really only terminal based editors.
- yayr 5y agoIn most use cases I don't see the benefit over a RDP access to that remote server. With RDP you as well have control over all the over things that you might want there, starting with a proper Terminal, File Manager, Process Monitor etc. Personally, I run my beefy Win/GPU/ML setup in the basement, while using it via RDP from my Mac. Awesome experience for me.
- the_gipsy 5y agoPersonally, I have gone from IDEs to vim + language-servers. I get all the benefits of an IDE that I want, and no useless clutter of features I never use or are better solved in CLI. One reason is that IDEs' vim-plugins never work quite well. Another one is speed and resource usage. Resource-usage may be solved with thin clients, but not speed. Also I don't want to give up control to some platform.
- smitty1e 5y agohttps://www.spacemacs.org/ https://www.spacemacs.org/ is the vim+emacs dark side. [resperator sounds]
- kolme 5y agoI've given Emacs a handful of good tries, but it always lets me down. I've tried out "vanilla", Spacemacs and Doom (the last one being my favorite so far), but it's not working for me. I keep going back to good old Vim. For example, when I was learning Clojure I used Doom Emacs for a few months, but gave up because: - Emacs is slow. There's no way around that. It's even slower than VSCode or other IDE-ish editors. If you're used to Vim speeds, that's pretty annoying. - The Vim keybindings are not available everywhere, for example in some plugins you would fall back to pinky-breaker, wrist punishing Emacs standard keybindings. - There's some uncanny valley where keybindings are mostly like Vim but you have constantly paper cuts from small differences here and there, among the occasional Emacs-mode fallback. Don't take me wrong, I can see how Emacs is a great editor, but for me, it's way too late it seems. Seems like I'm going to keep on vimming until the end.
- nathias 5y agoIDEs were a mistake, and you can see why and how if you have ever worked on a project where everyone except you is using VScode.
- mrweasel 5y agoI don't know if they are a mistake, but they certainly cover up a lot of cruft, which should have been handled. We now have languages which can't really be used without an IDE, like C# or Java. That in turn result in programmers who can't actually program very well. I started seeing it way back in 2007, where some coworkers basically just used tab-completion in Visual Studio until types matched what a method required, rather than sitting down and doing actual design.
- nathias 5y agoThis point is exactly what I mean, IDE bloat keeps creeping into the codebase and other tools, making parts of IDE a hard dependancy. I'm seeing that happen with VSCode where people are polluting the codebase so VSCode can work.
- hnlmorg 5y agoThe one feature I think lacking from IDEs is a way to remote collaborate. I know VSC does have a plugin that works (after a bit of tinkering) but I think having something built in would be a killer feature for teams who are on boarding and training junior developers in today's remote working / post COVID society.
- pjerem 5y agoIntelliJ have this too. But tbh, I've never found those tools to be useful. In my experience, Pair Programming is not only about code but also about processes (git, pull requests, the CI, IDE features, company internal tools ...). It's also inefficient if the involved team mates have different IDEs or habits ... As of today, I've found nothing better than screen sharing. And screen sharing could totally be improved because, afaik, you have to choose between correct interaction (ability seamlessly to take control of the distant screen) or correct image quality (Zoom is pretty impressive). Also, I'm open if you know collaboration tools with good screen sharing quality AND intuitive collaboration tools / distant control.
- b15h0p 5y agoIntelliJ's "Code With Me" plugin still has a long way to go but is really good already: On the "client side", it feels like working in your own IDE (sometimes, you run into "not implemented yet" spots, but for the most part it just works) with zero latency, HiDPI resolution and a color scheme of your liking. Plus, you can work independently (all participants can type at the same time), look stuff up if your pairing partner scrolls too quickly (or too slowly) and you can even share a terminal (if you want) and run tests on the "host". There is also built-in port forwarding, so that you can run a webapp in your local browser.
- pjerem 5y agoI don't understand why you are trying to convince me that Code With Me is a solution since I precisely mentioned it in my post with everything that, imo, lacks in it (and in all the "live edit" collaboration tools). Those tools cannot work, IMO, because programming never happens only in the IDE.
- solmag 5y agoRust and Rust-Analyzer shows that for program text editor, the language front end has to be kind of forth coming too.
- mhoad 5y agoI was recently playing around with a bit of a self assembled version of this using VSCode dev containers and exploring what a “GitHub Codespaces first” workflow could look like. I was honestly pretty happy with where I landed on it even in the context of a fairly complicated setup running a Flutter web app, a backend and an envoy sidecar proxy. I was also able to set up a consistent IDE experience by specifying the various plugins I wanted to use along with other tooling I needed like gcloud SDK etc… But just last week I did a remote pairing session with someone on a full stack web application entirely within a remote codespaces environment with zero other tooling (even the pairing was taken care of thanks to VSCode live share plugins). I thought that was a pretty cool experience overall. The thing I love most though is that I’m not specifically tied to a remote development environment I can get the exact same experience by just running the devcontainer locally on my machine.
- eitland 5y agoOne really nifty thing one can do in VS Code if you use Bitbucket at least (possibly others) is to open pull requests in VS Code using the Atlassian plugin. I'm no big Atlassian fan to put it mildly, but this is actually more brilliant than it sounds: Reviewing a pull request from the comfort of your IDE/editor, complete with ctrl-click navigation working, that is sometimes a game changer.
- tentacleuno 5y ago> Software-wise, a fully remote environment helps avoid dual-boot madness and incompatible-drivers fighting: my dev environment sits on an Ubuntu server, making tooling dramatically easier. This setup honestly sounds envigorating; I'm currently in a predicament where my course requires the use of Windows-only software, so I've got a dual-boot on the laptop. Whenever I forget to shut down Windows properly and boot into Linux, I find out the NTFS drive is read-only to prevent corruption. This means booting back into Windows, finishing up any work I might have on there, restarting to Linux, and getting personal development work done. The author hasn't specifically mentioned any Windows-specific setups here, but I'm sure it's possible with QEMU, a VPN, and some other tricks.
- pletnes 5y agoIf you treat a local VM as a remote server, this can also work well, without relying on working in a «remote desktop» style. This tends to cause UI lag which is more annoying than sending the run unit test» command to the remote server which anyway will take a few seconds to run.
- hollowturtle 5y agoRemote IDEs managed by the employer? A deal breaker for me. IMO that opens the gates of micromanagement. I consider myself a fair productive and successful guy, in my development job, with gaps of non productivity here and there during the day and I consider them physiological. IMO again, Developers should stay away from centralized coding collaborative platforms, despite all astonishing tech accomplishments I see burnout right around the corner. Plus since I have an M1 development machines that's super performant, that I planned to use for at least 4 years, that's just like paying 1euro/day.
- 2pEXgD0fZ5cF 5y ago> Remote IDEs managed by the employer? A deal breaker for me. IMO that opens the gates of micromanagement. Fully agree, this direction sounds like nightmare fuel to me.
- DogLover_ 5y agoI agree with this. However, I see it as inevitable. Big companies want to protect their their IP/source-code.
- feanaro 5y agoRemote IDEs will do absolutely nothing to accomplish increased protection, so that would just be a misdirection.
- jaywalk 5y agoRemote IDEs will not prevent theft, of course. But they certainly can do things that make it more difficult than simply dragging and dropping a folder onto a flash drive.
- johannes1234321 5y agoThey can especially help against somebody finding a laptop with code somewhere.
- herbst 5y agoSeems I am rather alone with using a boring code editor (Atom) with only necessary plugins (sometimes not more than syntax highlight for my current language) And do everything else in a tiled terminal window, I have always open anyway.
- rewgs 5y agoSame, but replace Atom with Sublime. Vim is too much of a time suck (I will customize until the end of time and get nothing done), VS Code is a bit busy and hectic for my tastes. Sublime is just lean and solid, I love it.
- tentacleuno 5y agoI would also mention code-server[0], created by Coder[1] for their hosted VSCode service. You can self-host it with Docker and login from outside your network. [0]: https://github.com/cdr/code-server https://github.com/cdr/code-server [1]: coder.com
- kohlerm 5y agoRemote dev environments certainly have a future, especially for larger teams working on cloud software, which usually is deployed to Linux servers. If you deploy on Linux then you should also develop on Linux. With regards to what will run remotely, the question is where do you draw the line? E.g. Will at least your editor run locally, aka (VS Code remote mode)? The additional latency of the network when typing could be very annoying. The big advantage of remote environments is IMHO not that they are easier to setup. E.g you can also achieve the same locally, but it is rather that you get access to potentially unlimited resources and you can potentially speed up builds, because you can have a high performance cache for build results close to where your development environment runs.
- itake 5y agoHigher end local hardware (like MacBooks) also have really nice displays. If you go cheap on the laptop then expensive on the remote server, you end up with a terrible screen and keyboard. I think remote IDEs make sense if you’re a massive company with an insane number of microservices that need to run for testing, but 99% of devs would be better off with local dev.
- omar_alt 5y agoBrowser based IDE's are not great for those that want a customised terminal or depend on applications that have key-bindings. For example Cloud 9 was good for getting started in the AWS account I was granted access to but was unable to run tmux or give me a full screen terminal. I am also conscious of the trap certain companies are laying where we end up paying ever increasing subscriptions for enhanced IDE sugar in the same way designers are dependent on paying Adobe for Creative Cloud.
- ngrilly 5y agoI really value being able to develop offline, without an Internet connection. That's the deal breaker for me regarding remote dev environments.
- vaylian 5y agoSame here. Especially on train rides.
- maccard 5y agoI work in games, and my applications require beefy hardware to compile (but much less to run). Using projector would let me use my own hardware locally (e.g. my Macbook) and remotely ruin the 32 core, 128GB ram behemoth to compile the damn app. _this_ would let me work on train rides!
- mikro2nd 5y agoWhat's old is new again. We were doing this (and with any application, not just IDEs) back in the early 90's with X-windows. X-server local, compute engine where-ever you could borrow/steal/hack it.
- redisman 5y agoMainframes!
- city41 5y agoSun Microsystems went all in on this approach. I never worked there, but as I understand it everyone simply had a dumb graphical terminal at their desk.
- mikro2nd 5y agoYou might(?) be thinking of the SunRay stuff, which was certainly not X-windows based, though similar in concept/architecture. There was never a time when "everyone simply had a dumb graphical terminal". (I never worked directly for Sun, though I did have a hell of a lot of dealings with both the Church and State sides of their business.)
- hliyan 5y agoAs recently as the mid-2000's, my personal computer had virtually nothing in terms of development setup, except for a terminal and an IDE. Even our files were stored remotely (although within a local datacenter, not on the Internet) and we either edited them directly on the terminal in VI, or in an IDE, with the repository working directory Samba-mapped. All builds, tests and deployments were on remote servers. Compared to those days, today's build and test setups seem nightmarishly complex.
- zigzag312 5y agoI was always wondering how it would be if IDE could treat curly braces blocks as virtual indentations. So you could work with language that uses curly braces as if it used indentations. Text file would still contain braces, but IDE would display them as indentation blocks. I'm not completely sure if UX would work out. There would be less visual noise, so reading would be easier. Writing is harder to solve as IDE would need to be smart and convert indentations to pairs of braces underneath in appropriate contexts. This feature would of course need to be togglable on/off.
- marcosdumay 5y agoWhat is the gain of deriving the braces from the indentation instead of deriving the indentation from the braces? You still have one character to start (tab?) and end (backspace?) a block, but now they are overloaded with the edition keys, and still need to keep track of the block with the same visual aid (indentation). The small changes I see are to the worse, that is overloading the keys and not letting you see the text verbatim.
- zigzag312 5y agoBraces by itself are very poor visual indicators of a block, so they are almost always (except in one liners) coupled with indentation of the code inside the block. So, in a raw text form (ignoring newline and space chars) it's two characters to start a block (brace and a tab). Sure, a good IDE will automatically create indentation when you type '{', so you need to only type a single character to start the block. We could actually say '{' is a shortcut key to start a block. IDE creates an indentation and draws a vertical line to enhance visual presentation of the block. Visually, braces are more or less just a noise, so removing them would improve "signal to noise ratio" and enhance reading experience. However, logically braces are better at defining blocks of code than tabs. With braces we have start '{' and end '}' characters, but with tabs each line needs to be indented by a correct number of chars (tabs/spaces). I am wondering, if we can have best of both worlds. In some cases we are trying to draw visual indications with text. Wouldn't be better, if we let the IDE do the drawing? Eg.: two vs four spaces of indentation? It doesn't matter, if you can configure visual indentation depth on the fly in the IDE.
- nickdothutton 5y agoFeels like we are going in a giant circle, back to when I ran LSE under DECWindows displaying on my local X11 terminal. Makes me wonder if at some stage we took a wrong turn.
- CRConrad 5y agoEverything goes in circles, but at the same time gets better -- or, "better" -- so when we get back to the same point "on the ground", it's "at a higher level": Evolution is a helix. AKA, a screw -- so in the long run, we're all screwed.
- ghking 5y agoI think it will be simple and simple, like vim!
- xyzzy21 5y agoThere's the future that is likely and then separately the future that would be ideal or preferred. The latter: * eliminate dependence on the cloud - the entire idea of "everything through port 80" was 100% wrong in the 1990s and it's even MORE WRONG today. Centralization is never the answer except as an instance within some cycling change. Distributed tools are still the better answer under all reasonable circumstances! * focus on implementation of both parsers and IDEs. New languages will always be created and anything that makes both parser AND IDE creation easier and more "automatic" is a good thing. Most everything else good can come from these to start with.
- inherently_juxt 5y agoThere are some benefits to usages of cloud-based tech, and there are some drawbacks. The cloud inherently attempts to decentralize computation (duh). If you can have multiple servers across a country, chances are, one freak accident (weather, power-grid failures, etc) is less likely to bring down your ecosystem. If it's well architected, your users may not even notice. In that sense, it can be fantastic for reliability and scalability since a lot of these cloud server companies allow for easily creating new instances of the same project. If your software is written poorly or your environment is poorly architected, then you can encounter issues using the cloud like centralization as you mentioned, and you'll also have to manage difficult or arcane deployments. You also run into a problem of dependence on your cloud platform of choice. No one likes vendor lock; it hurts flexibility and increases costs in the long run. If your project is AWS based for instance and has a dependence on Lambdas, for instance, what are you going to do if Amazon suddenly raises their costs beyond what your company can reasonably accommodate? There are some workarounds, but they obviously aren't as nice or immediately available. But also, what are your alternatives to using a cloud provider? Your company could create physical infrastructure in safe places, but all the prime spots would be taken up extremely quickly not to mention that it's waaay more costly to build a mainframe on or offsite than it is to spin up an EC2 instance or ten. And if your system isn't on-prem or thereabouts, then it seems like cloud is the only real solution there. Agree 100% with the IDE stuff though
- epberry 5y agoI work on what you might call a 'database IDE' and we have actually gone in the opposite direction, adding more features for offline development and maintaining state offline. We were pretty open either way but our users pulled us this way. Interestingly I think the enterprise may be more open to this remote environment thing, as long as it operates within their network.
- Lucasoato 5y agoHi Gianluca, great article, really. If you didn't know him, this guy developed Uniwhere, an app for university students that had to compete with a much worse one, funded by taxpayers money. They really tried every shady trick to make Uniwhere fail, they even banned it at some point, but at the end Gian won and nowadays his app is helping thousands of students. You made a very motivational speech at the CLab meeting some years ago, really thanks for sharing with us your experience.
- Jemm 5y agoI am hoping that IDEs start adopting accessibility over design. Yes most have some way to make text larger and higher contrast but those function often make the experience unusable.
- stephc_int13 5y agoI think that remote coding can obviously be practical in some cases but I also think that we should learn the lessons of Gmail/Facebook. If remote coding was the norm it would be an open door for corporate surveillance on a massive scale. I don't feel good about this idea, I think we should resist and fight back, this is not only a technical discussion. On the other hand, the thin client idea is cyclical but is usually short-lived and is often the wrong solution to a real problem (bloatware).
- jrm4 5y agoIf you have root, great idea. If not, terrible awful idea that will enslave us all. Joking, but also not.
- lmilcin 5y agoAnd thus we are completing a huge circle that starts with the world where computation is concentrated on a handful of large computers and users having only thin clients and we will end up more or less in the same state with PCs being nothing more than thin clients to run a think client layer like projector client, web browser, rdesktop, ssh, etc. The final step will be take away users' ability to do anything on the machine other than just reach cloud premises of their employers and service providers. This most likely will happen in the name of increased security and convenience.
- _pdp_ 5y agoDespite the developer pushback, I believe remote IDEs will be the standard in 5-10 years. There are many benefits to provide a standartised developer environment for productivity as well security point of view.
- ramesh31 5y agoHow about performance? The current paradigm seems to be either choose a huge bloated Java monstrosity like IntelliJ that has all the features you want, or settle for just a text editor. I would kill for something like Webstorm implemented in Rust or C++.
- ARandomerDude 5y agoI've worked in 4 different software shops over the last 15 years. My general observation is the developers who rely on heavily automated/magic tooling are significantly outclassed by those who use the terminal + a basic text editor. Terminal + Vim or Emacs/VSCode (depending on configuration) is not only all you need, it also produces developers who understand the systems they work with. I know a lot of people will disagree but my advice to more junior guys is always get rid of the toys and learn the tools.
- artwr 5y agoI would tend to agree for most languages I have touched (Python, C, ...) but I have mostly worked in medium codebases. Do people think it is still the case for large code bases and Java? I find the ability to quickly jump to definition in the IDE a huge help when on boarding into a new codebase.
- tl 5y agoI work "unofficially" on Java code because the Swift code I'm officially responsible for executes Java code (via HTTP request). I'm "not licensed" to use real Java IDEs. Visual Studio Code's Java support is not great and I do not have jump to definition. Find " name_of_function(" in files is good enough and catches a few useful cases outside Java's understanding, particularly when you have naming consistency throughout a codebase. Code's not as good as Emacs, but it's reliability installed on nearly every developer's machine regardless of discipline or at least the subset who are willing to ask for help when they encounter problems.
- Supermancho 5y agoTo answer the question in a more practical sense than the plugging of a specific workflow and asking "Is this the future?", that the article posits: 1. Back to easy indirection resolution (https://youtu.be/baxtyeFVn3w?t=1786 https://youtu.be/baxtyeFVn3w?t=1786, re: gtoolkit) 2. Comments that are not inline, but can point to various blocks/parts of code and overlap (multiple comments can apply to single parts of code). 3. More support for unit testing. function call tracking (https://stackoverflow.com/questions/51901676/get-the-lists-of-functions-used-called-within-a-function-in-python https://stackoverflow.com/questions/51901676/get-the-lists-o...). 4. Conducting behavioral studies via opt-in submission of eye tracking data. A great deal of data is flowing through IDEs and not being leveraged to improve the daily tools of developers.
- mr_tristan 5y agoI suspect there needs to be some newer patterns in open source build systems that help the cloud-based IDEs become a "thing". It's the build systems that give me confidence that my IDE choice isn't some permanent lock-in. I almost always add .gitignore rules to never check in preferences from anything made by JetBrains, and you know what? It always seems to work fine. For example, my Java project structures are defined by Maven and Gradle, not IntelliJ. IntelliJ uses those conventions. For this to _really_ take off, I sense we just need to be able to bounce offline or online if we want to. And the way that's going to happen is just via the build system defining the structure and workflow. This could happen, but it requires a lot of build work that I don't see happening right now. At least, not in the open
- mh8h 5y agoThis is what I wish for in an IDE in the future: https://twitter.com/TaliaRinger/status/1365433319572185092?s=20 https://twitter.com/TaliaRinger/status/1365433319572185092?s... The year is 2030. You're a software engineer at a company, writing tests for your program. After you write a few tests, your IDE is like, "hey, I noticed you were testing this; do you want this more general thing to hold?" and spits back a specification for you. You're not sure. You say, "give me some examples," and your IDE generates more tests for you. One of them looks off, so you tell your IDE, "no, not that one." Your IDE sends you another specification. This one looks better, so you approve it. Your IDE tells you to hang out for a bit while it tries to see if it actually holds. After ten seconds or so, it generates a failing test. You fix your code and try again. This time it's like, "I couldn't find any counterexamples, but I'm also not positive it's true. Can you help me prove it?" You say yes, of course. It asks you a couple of specific questions about your code. Thinks for a bit, and then tells you that your code is verified. In fact if you are an advanced user you can go check out the proof yourself. No need to, though. A couple of days later, you change your code. Your IDE notices this and tries to check the specification again. It tells you that it is no longer true; but based on the change you made, there is an analogous change in the specification, so maybe you want this new specification? You're not sure so you ask for some tests. It looks good. And this time the tool doesn't need to ask you any questions to prove it; the proof is similar enough to the proof of the old specification, so you're good. After a few more weeks of this, your IDE notices something else, though. You keep changing that function, and changing your specification to go with it. So it recommends a new abstraction for you that would have captured all of the past examples. It tells you, hey, if you use this, things might break less often to begin with . It looks good so you're like, "oh cool, yeah let's do that." And it drops into a guided refactoring mode, helping you through the change, asking you just a few questions but automating all of the tedium. Does this for your program, then for your proof. And your proof doesn't break again for months after that. Good shit.
- nixpulvis 5y agoDeath.
- Manna5 5y agoI think that most IDEs (with exceptions) are junk that do nothing but occupy disk space, it is far better to use only a text editor and command line compiler.
- mrfox321 5y agoIs your working memory sufficient in unfathomably large repositories? Or are you also excluding that from your argument?
- matchagaucho 5y agoDomain-Specific Languages (DSLs) are a logical fit for browser-based and cloud-hosted IDEs. Most recently I've been really impressed with the Remix IDE for Ethereum smart contracts. https://remix-project.org/ https://remix-project.org/ When working in cloud IDEs, I just need the safety net of backup/versioning via git commits.
- jcadam 5y agoI keep coming back to emacs. Used to have a custom .emacs.d I kept in github, but eventually just gave that up and went with spacemacs :) Employers that standardize on a single IDE (e.g., enterprise Java shops and eclipse - blech) are always terrible places to work.
- intrasight 5y agoMe too - coming back to emacs. On a .net team now and everyone else uses VS. They'd like me too also but haven't really pressured. I'm curious why you went with spacemacs.
- jcadam 5y agoMainly it gives me a "standard" config that's highly usable, easy to install, and that I no longer have to maintain myself :)
- foobarbaz33 5y agoJust curious. What Emacs features or 3rd party packages do you use for .NET development?
- intrasight 5y agojust csharp-mode right now. I had played around with LSP and omnisharp this summer, but didn't really succeed. I'll try again over the holiday.
- kstrauser 5y agoAt a previous job, I was happily working away on a large project when our VPEng ambled by. We had this conversation, and I swear I'm representing this honestly: VP: What editor is that? Me: That's Emacs. VP: Oh. Let's get you an IDE! Me: I have an IDE: Emacs. VP: I think you'd be more efficient with an IDE. Me: This is an IDE, and anyway, I've been using this for decades. VP: I think we can all be more efficient if we're using consistent tooling. Me: Are you happy with my work? Have I met my deadlines? VP: Yes... Me: Then don't fix it. I'm sticking with this. I was senior enough to get away with that. If I weren't, I'm sure I would've been stuck with whatever Eclipse-style thing he liked that year. Oh, this was the same VPEng that asked me when we should "upgrade from Python to Java". I don't think he loved me answer of "downgrade to Java? Never."
- amadeuspagel 5y ago> Chromebooks are going in the right direction, and not by chance. They’re an attempt to fulfill Google’s vision of “everything in the cloud”. I don’t think, though, that they could ever be a great machine to code on: terrible keyboard, terrible screen, terrible shell experience. What? There are chromebooks by many different manufacturers, and they all have a terrible keyboard and screen? As for the shell experience, that's not going to matter if development happens in the browser.
- z3t4 5y agoI think it's about the thin client, I imagine something like double 4k displays on light-weight googles and advanced finger tracking sensors so that you can "type" anywhere, even laying down. And plugged into a network cable, giving you close to zero latency while interacting with a high powered machine - in a data center fairly local.
- dleslie 5y agoI find the author is missing the forest for the trees. The magic of their experience was created by automatic environment configuration. It's the magic that let them start working without spending a day preparing an environment to start working within. It's something that VSCode does quite well, not perfectly, but well. It installs a decent environment automatically for most popular languages and toolkits. Emacs has _finally_ caught on, and lsp-mode will attempt to automatically install language servers for you.
- iostream23 5y agoIDEs will likely increase their use of so-called AI, and Apple will finally not be the only one who understands the link between a platform, it’s standard libraries, and the IDE linking environment. I suspect that they will resolve this in the usual bloated manner of simply including everything all over again as the primary unnamed platform I am referring to won’t be able to merely merge some headers… now, I’ll go read the article and see how this was actually about racehorse fiber intake and rectal cancer prescreening, doh, horses for courses?
- pjmlp 5y agoSomeone just rediscovered running IDEs over a modern version of X Windows.
- 19h 5y agoHonestly, I've been seeing the future of IDEs using GitHub Co-Pilot in the last few weeks. It has increased my productivity many-fold. I was so positively shocked by its suggestions that I kept positing videos of it in action with the team. It adapts to the structure and peculiarities of a specific project and you only really understand it once you are in a flow; you almost forget about it until one time you press return to write a new line of code and it correctly writes exactly what you wanted. It's creepy and absolutely incredible at the same time. Almost as if you're pairing with someone that you never speak with. Here's Co-Pilot finishing a coding kata for me: https://i.imgur.com/ih32sCy.mp4 https://i.imgur.com/ih32sCy.mp4 (trimmed to 60s b/c of imgur limit).
- siproprio 5y agoIn the future all IDE's will be using Comic Sans as their default font.