Ask Slashdot: What Are Your Experiences With Online IDEs For Web Development?
Qbertino writes: I'm toying with the thought of moving my web development (PHP, HTML, CSS, JavaScript with perhaps a little Python and Ruby thrown in) into the cloud. The upsides I expect would be: 1) No syncing hassles across machines. 2) No installation of toolchains to get working or back to work — a browser and a connection is all that would be required. 3) Easy teamwork. 4) Easy deployment. 5) A move to Chrome OS for ultra-cheap laptop goodness would become realistic.
Is this doable/feasible? What are your experiences? Note, this would be for professional web development, not hobbyist stuff. Serious interactive JS, non-trivial PHP/LAMP development, etc. Has anyone have real world experience doing something like this? Maybe even experience with moving to a completely web-centric environment with Chrome OS? What have you learned? What would you recommend? How has it impacted your productivity and what do you miss from the native pipelines? What keeps you in the cloud, and enables you to stay there? Are you working "totally cloud" with a team and if so, how does it work out/feel? Does it make sense? As for concrete solutions, I'm eyeing Cloud9, CodeAnywhere, CodeEnvy but also semi-FOSS stuff like NeutronDrive. Anything you would recommend for real world productivity? Have you tried this and moved back? If so, what are your experiences and what would need to be improved to make it worthwhile? Thanks for any insights.
Is this doable/feasible? What are your experiences? Note, this would be for professional web development, not hobbyist stuff. Serious interactive JS, non-trivial PHP/LAMP development, etc. Has anyone have real world experience doing something like this? Maybe even experience with moving to a completely web-centric environment with Chrome OS? What have you learned? What would you recommend? How has it impacted your productivity and what do you miss from the native pipelines? What keeps you in the cloud, and enables you to stay there? Are you working "totally cloud" with a team and if so, how does it work out/feel? Does it make sense? As for concrete solutions, I'm eyeing Cloud9, CodeAnywhere, CodeEnvy but also semi-FOSS stuff like NeutronDrive. Anything you would recommend for real world productivity? Have you tried this and moved back? If so, what are your experiences and what would need to be improved to make it worthwhile? Thanks for any insights.
So far, the only one that I've found really useful is R Studio server. Most of the others we've looked at have poor support for multi-user installations which we require. Another frequent drawback is interaction with the actual running, code. The how do you handle a terminal problem. I'd love to hear about ones that people use as their daily interface and not just a toy or occasional one.
My experience is No.
Try if you want, but make sure you have a plan if it becomes unfeasible.
Just stick with text editors... or be forever dependant on you web based IDE.
A move to Chrome OS for ultra-cheap laptop goodness would become realistic.
That sounds like a cruel thing to inflict on your developers. Especially since it prevents them from running a local backend server on their own machine. Annoying.
"First they came for the slanderers and i said nothing."
I've played with a bunch of them. Cloud9 was my favorite of them, but I ran into challenges when I wanted to play experiment with AngularJS. I ended up preferring to work with Brackets and pointing it at a Google Drive folder. Obviously, I'm not a professional developer. I just experiment, play, learn, and write a web app on occasion. Others in this thread will likely have better advice.
I'm sorry, but your opinion seems to be wrong.
I've switched to SATA years ago.
ssh -i yourkey.pem user@your-remote-host
Next fire up your favorite text editor. You now have a real-time streaming cloud IDE! You can even access all of your files and tune your webserver right from your de v environment! THE FUTURE!
If it is for a professional environment, you have a few bucks to burn getting a decent IDE. Stop being so cheap.
If you mean to do it anyway, why not install Crouton on your Chromebook, and then run Linux like a "normal" person?
If you are stuck on using the cloud, for a professional project, read the license agreement like a hawk. Make sure that you're not giving a free copy of all of your work to some random stranger on the web.
I spent some time with Cloud9 and although it was generally usable, it was just unresponsive enough as to be annoying. Also, I prefer a standalone machine so if I don't have any wifi access, I can still work. Recent plane trips come to mind as an example.
Sometimes you just need a quick and dirty site to smack together an XSL query or do some Regex. That's pretty handy and there are a bunch of options out there for various flavors / levels of usefulness. So it's convenient to have that option.
What's less handy are the sites that offer a "free" online IDE and then stop your flow to nag you about signing up / sending cash, at that point convenience is now weighed by annoyance.
Just put a donation link somewhere, if I use the site enough I'll send money, otherwise google and/or use the desktop version I've paid for already
These days I'm moving away from the cloud by storing my data on the local file server. The cloud requires an available connection to the Internet. Sometimes that connection is really fast or really slow on a good day.
Because cloud.
I want a list of atrocities done in your name - Recoil
I have yet to find one that could totally replace my desktop/laptop. Cloud9 and Nitrous are probably the best of the bunch. Both offer a nice IDE and desktop synch. However, you'll always sacrifice speed/performance and ease of use for convenience, even at the highest paid tier of service. When I used Cloud9 and Nitrous they were considerably slower than development on a desktop/laptop. Likewise, things always just seemed more difficult. If I were going to use a cloud IDE again I'd invest in server space at someplace like Digital Ocean and install the open source version of Cloud 9 (or a similar app) on the server to create my own personalized cloud service.
So you're going to completely reliant on TWC to provide your service and the cloud vendor to have your code. Seems like it's super risky.
Let's see. So I'm working hellish hours on project X which I hope will make me a billion dollars one day... But I'm going to give all the code to a third party to scan and peruse all they want because I can't take the time to manage my own local IDE. No FREAKING way.
Laws are rules for the court, but merely a bottom bar to hit for life. Think beyond laws in your actions always.
I use codeanywhere almost exclusively.
For me it went from having vagrants on my laptop to using short-term instances of linode/digitalocean for my "local dev" environment.
So, there was an increased cost (though not significant) and sometimes a small waiting period before my config was launched.
+1 for Cloud9 (c9.io) and (I'm going to regret this when everyone else is fighting me for server time) for c++ I use cpp.sh
If you become dependent on "the cloud", many, many entities have to vote - unanimously - to allow you to get your work done at any given time. And your vote doesn't count.
I evaluated a few, not for very long admittedly, but found all of them to be too slow.
Fundamentally, doing this stuff professionally means your workstation and tooling (ide or editor or whatever) needs to be an extension of you for you to be able to function efficiently and keep a good flow going. Some of this is muscle memory on keyboard layout and shortcuts, most of it (imo) is responsiveness and ui latency. If the ui cant respond faster than you notice it then it just hurts too much to create stuff effectively.
Hence, for me at least, native ide is important. Even if it syncs to a remote host on save for compile/preview/run (so long as it consistently does that quicker than i can alt+tab).
I love that integrated environments are available online, and i love the portability of that. But i just dont think it can be fast enough for serious development.
(Nb, by fast although ive not really done any benchmarking, the bottleneck so far as i can tell is the ide in javascript locally, even on a decent pc, rather than network latency)
R Studio isn't the only online IDE useful for web development. You're forgetting Emacs over x-forwarding.
: 1) No syncing hassles across machines.
What do you mean by that? Syncing what?
Source goes in source control, so that should take care of the "syncing hassles" regardless of what IDE is used. I'm unclear how online IDEs work with source control. I am trying to think of what other things you are talking about syncing.
It is free for designing.
http://saveie6.com/
I have always worried about providing server credentials (even git, but especially ssh directly to web docroots etc) ... what are peoples thoughts/experiences and best practices in determining which one is safe to trust?
I agree on all the "Pros" you listed. ... then you're gonna a have a baad time ..;
The problem I had with those IDEs is that they are really not as powerful as offline IDEs.
If you are using a powerful cross-language code completion with code intelligence every other minute, refactor, use different code navigation, search and replace in files options etc
If it is for a professional environment, you have a few bucks to burn getting a decent IDE. Stop being so cheap.
If you mean to do it anyway, why not install Crouton on your Chromebook, and then run Linux like a "normal" person?
If you are stuck on using the cloud, for a professional project, read the license agreement like a hawk. Make sure that you're not giving a free copy of all of your work to some random stranger on the web.
Quoted for visibility... it's actually not bad advice.
Quo usque tandem abutere, Nimbus, patientia nostra?
oh ok, grandpa. time for your nap.
seriously, it's so odd that people into computers are so "stuck in their ways" and cling to old technology.
I would never give any credentials to the cloud. Creds are for me, and me only. That is an absolute show stopper for me.
Laws are rules for the court, but merely a bottom bar to hit for life. Think beyond laws in your actions always.
Don't you see it? It is now.
The End.
No holy wars please. s/vim/$YOUREDITOR/g
If you're using a LAMP stack mainly (which it seems you are), the option of SSH and using a command line text editor could be of interest.
That being said, if you can create a dev environment that matches your production, why not git around? Where has this workflow failed you previously? Surely also you are developing on multiple servers for different projects, and there are things you do common to all servers?
For my sites I use generally two git repos - one for my toolchain (custom connection, management and setup scripts), one for base content. Given that I use Wordpress for a lot, I can duplicate some of the base work. I use digitalOcean, always a ubuntu 14.04 server, and always set up with the same scripts. I do have a test VM directly on my machine to test things that might seriously break stuff, or for dev when I'm on the go without network, but otherwise, a lot of what I do is "in the cloud" - just over SSH.
As to how this would map to your requirements:
1) No syncing hassles across machines If you're a team of one, SSH+cli editor should work - it's also lower processing power on your device. Better battery longevity. You can also quickly move back and forth between server logs and code from here too 2) No installation of toolchains to get working or back to work — a browser and a connection is all that would be required Unless I'm mistaken, you'll always have toolchains to install and update on every new site/server. So long as you maintain an easy way to deploy them fresh, and the new instances you spin up are always predictably similar, I see no problem with maintaining a toolchain deployment recipe in one place, and easily management of instances along the way in teh way you want (ansible, chef, puppet, custom scripts...). 3) Easy teamwork If the solution you want is for live coolaborative editing, maybe indeed a web-interface which facilitates this may be interesting, though you'll want to check that this mode of "team" working suites your team best, or if revision control-based solution works better for their workflows. Maybe a question for the web-based solution is, does it integrate well with individuals who like to work offline and sync as needed? I'll assume you've already had this talk with them. 4) Easy deployment I'd say this is down to DRY - Don't Repeat Yourself, or, have you automated everything you could have?At the end of the day, so long as you have revision control in whatever solution you choose, you have a decent chance of developing on production. Now about the databases...
-- "Simplicity is prerequisite for reliability." --Dijkstra
Note, this would be for professional web development, not hobbyist stuff.
At this point then you should have some kind of version control in place, and "sync hastles" shouldn't be much of a concern. Likewise deployment should be a largely automated process pulling from said version control and hopefully running a bunch of automated tests. If you're dev model revolves around everyone working on the same set of files on a server somewhere and you're deployment model is having Jim FTP the stuff from dev to production, I'd say paid or not you're not really doing professional anything.
I thought everyone just worked on their production code on the live web server like I do...?
Simply dont. If you are intending to do code professionally then you should be worrying about the security of your code against competitors / thieves /industrial espionage, and the worst way to do this is to put your code "in the cloud". And I will not touch the point of the performance of a "cloud IDE" because others have already shown examples to exhaustion. In short: Very, very bad idea.
Religion: The greatest weapon of mass destruction of all time
Personally I always find running something in a browser less than ideal compared to an app running locally, so my bias was a factor, but even allowing for that, all the online IDEs I found/tried were far clunkier usability-wise, far slower and obviously less secure than using something running locally.
However, I find with my dyslexia I just don't enough bang from them.
We will bankrupt ourselves in the vain search for absolute security. -- Dwight D. Eisenhower
Experiences with online IDEs? None, and I'd like to keep it that way, thanks.
I've been dabbling with this myself lately, for multiple reasons.
I'm currently using Cloud9 and frankly I can't tell much difference performance or feature wise (but I don't extensively use all the bells and whistles in any IDE anyway).
Cloud9 is cool because while you can use their servers to really quickly bring up dev environments, you can also just as easily SSH into your own box (I'm using AWS with Bitnami distros) for flexibility and security. You get convenient access to the files in the IDE just like it was local, plus any number of shells. And you get unlimited access for $20 a month.
Also, bringing a new developer online is super easy, and it makes for easy live collaboration.
The only disadvantages are that you need a decent internet access all the time, which can be a problem if you are a road warrior, and for me when I'm doing mobile app development with ionic framework the live update feature doesn't work, as well as launching the mobile app on the device from the shell (since its not directly connected). But that's pretty minor.
Being able to get good performance out of a lower specced machine is also nice, because it means I can custom build something and still do the same dev...
-- Senior Software Engineer, Attorney appearance services, locallawyerapp.com.
Don't bother and here's why:
1) No syncing hassles across machines.
Use a decent version control system. If there are no collisions, the syncing is trivial. If there are collisions then te web based system won't help you either.
2) No installation of toolchains to get working or back to work - a browser and a connection is all that would be required.
Figure out what packages you need. Then type:
sudo apt-get install a b c d e etc moar lolz hax package
into a file and save it on your github account. Then on any new machine, grab that line and run it as root. You don't need anything more than an internet connection to do that either, and it'll install a full-strength dev system with almost on effort.
It's generally a good idea to have this, it means you can set up a new laptop or desktop and be up and running in a few minutes.
Plus once you're set up you don't even need an internet connection.
3) Easy teamwork.
How is it easier than a version control system?
4) Easy deployment.
Doesn't that rather depend on what's being deployed and where? Either way though, it's not hard to set up a git repo (e.g. on githup) with testing, continuous integration, automatic deployment and all that stuff.
5) A move to Chrome OS for ultra-cheap laptop goodness would become realistic.
Are the cheap chromebooks substantially better than the cheap modern take on netbooks with Linux installed? You can still run chrome on the latter if you like, but get the benefit of much more flexibility.
Bear in mind that anything done in a web browser takes approximately 1.434762139548e+37 more CPU resoures than a corresponding native program. For example compare Atom to uh... just about anything really. If you're going to be doing "big" stuff in the browser then a weak laptop will get really annoying. For example google docs on my venerable eee 900 is now horrendous and barely usable where as LibreOffice is still fast and snappy.
vim of course loads instantly still.
SJW n. One who posts facts.
Once you start using an IDE forever will it dominate your destiny. Consume you it will.
Hrmmmm.
SJW n. One who posts facts.
I use vi on Linux and Notepad++ on Windows and constantly ftp up the latest edits (every time a line change is made.).
Ain't you got no skillz?
I switched to using cloud9 more than a year ago and I live on chromebooks for almost a year and my experience was generally positive. I use c9 to develop a C app, some python code, and some web service code. It generally works better than vim on a remote machine, with much faster response as all the syncing is done in background and is absolutely non-distracting. I also have some SSH c9 workspaces running on GCE to do testing as c9 uses very restrictive docker environment that just does not suite my needs. c9 was pretty buggy a year ago, up to the point that I periodically lost my work due to sync malfunction. I actively reported bugs and they fixed them. Nowadays it is much more stable than it was but is still noticeably buggier than desktop IDEs even with that limited functionality that it provides. Another concern is service uptime. I had problems accessing my environment about 10 times during last year for about 30 minutes each, but that's not that much. As for the chromebook itself - it is absolutely great, is somewhat buggier than ubuntu but it's okay, the most annoying thing is chrome os keyboard shortcuts that always stand in your way, but you can get used to it. Nevertheless I can say that it is absolutely doable and you really get all the benefits you think about, and these benefits absolutely worth it. But what I like the most is "disposable computing" concept - you can throw away your laptop, take another one, just log in and continue working from the point you stopped. You just get the job done, that simple. I use "VIM" mode all the time and c9 has a consistent vim mode support, although much of the rarely-used functionality is still missing. Verdict: I love it, cloud IDE is the future and I can recommend everyone to do a switch.
When it ain't broke, why "fix" it? What boggles me is that everyone sees something new and thinks "improvement". If what you have does 90% of what you need 99% of the time..... how much change and overhead is justified to fill that gap?
I want my code on local storage, doesn't matter what I am doing. I want the tools I use to update my code on local storage as well. I care less about whether I can fully test locally. I care a lot less about wiz-bang editor features.
IDEs are nice, but, syntax hilighting and code folding can both be done by VIM, along with all the features of VI.
I am not a web developer, I moved from shell code to ruby. I still do it all in vim. If I do something in Java, I might install eclipse or something again.
I would never even consider a web based editor for anything because, it violates the requirement of all local storage for both data and tools. Cloud storage is fine for backups and storing git repositories.
"I opened my eyes, and everything went dark again"
Yep. Since the earliest days of computer/end user interaction, the Baby Duck Syndrome has been a major issue. I've seen senior programmers and rank and file end users hang on to archaic tools many years longer than made sense, simply because they liked those programs and refused to change. I don't expect to see that change any time soon.
I would suggest checking out Eclipse Che (eclipse.org/che) - Che would meet all of the upside expectations you listed. Che can be used with any programing language, it's cloud based and is independent of local resources, it's shareable, it has a very comprehensive IDE built in but also allows you to SSH into the workspace and keep using your familiar IDE, and finally it's open source which allows for unlimited customization from you or your organization. Also for your JS stuff the Che comes with Intellisence because it's default JS editor is Orion.
Web 'design' is anything but professional if modern sites are any indication. Use a text editor like everyone else, one with syntax highlighting if you prefer. Everything else is just bulk that can break, causing grief. How many times have we all had to regenerate visual studio project files?
No matter what your profession is, you shouldn't ever try to cut corners on your every day tools. That's never a good idea. You should instead INVEST in the best tools that you need to do your job.
I don't respond to AC's.
Old tools and old methods are known and you can rely on them to do the work, why change at all? There has to be enough benefit to change to something new.
Especially in this era of "oh, new and shiny!" where things come and go every week, every month, every year. You can't even rely on most of the things that a company as huge as Google does because they have discontinued most of them within a really short time frame.
I know I'll get modded down for this, but usually only take web development projects that let me write in Visual Studio. Why?
1) People who are looking for C#-based projects have MONEY (they have to to afford non-Express SQL Server) and often pay their bills on time
2) Unit testing is easy to do...and my clients usually happily pay for a full test suite as a self-documenting quality check on my code
3) Expectations of bleeding-edge look-and-feel are often lower, which means I spend more time on the app and less time on browser-specific rendering and Javascript BS
For my own use (my marketing sites) I tend to build on frequently-updated web portal tools (often in PHP/JS/TS) and only do a few tweaks around the edges in a text editor like Sublime because just about all of what I need to interact with the rest of the world has already been written by somebody else.
X-forwarding is going away with Wayland. Enjoy it while you can.
random stranger? No, I'd expect them to be well-financed, entrenched, and have contracts to legally share my work with all their big-name third party partners.
I agree with the others regarding Cloud9. If you go with a cloud IDE, this is the one to use. It feels the most like a "real" IDE.
Oh, and it does C++ as well, so you don't need to bother with cpp.sh if you don't want to.
Sorry, Cowherd, you gotta log in to use the "grandpa" line around here. Get to back of the line, pokey.
What cracks me up are the supposed benefits. Perfect for people who already got all those benefits from OOP, then from XP, then from Agile, etc. The listed benefits are exactly the things it actually sucks at.
"Syncing is easy... because you're not allowed to do it, you just twiddle your thumbs until the network traffic resumes. Easy-peasy, you're welcome." Uhm, no. I'm old enough to have lived that. Thin clients were good, because thick clients were out of our price range, and allowed us to share a larger system that could do the stuff we needed. A cheap tablet computer has enough processing power for software development now. The use case just isn't there.
These days, if a person needs remote resources for dev my first thought is, "maybe it is time to finally learn autoconf so you can compile changes in 3 seconds instead of the 3 days your pasted Makefile is causing."
My second thought is, "do they know that managing a private cloud configuration is harder than managing a workstation, and generally requires sysadmin skills?"
Teamwork is easy, just choose a low (resume) value toolset nobody has experience with, and mandate it. See how easy teamwork is? Everybody just does everything the same way because we mandated it. And then since they already don't have choices, we stuck them with ChromeOS too. To make sure they don't get any ideas.
I have used PythonAnywhere for a couple of years. Obviously it's Python only (duh), but would say the experience has generally been excellent.
The ability to use two accounts on the service, using one as a development server, and the other as a deployment one is fabulous. It's also really cheap, and the reliability and support is first rate.
I do not work for them!
--- My dad's political betting
Gosh, to make those whippersnappers stop making up fake "syndromes" to name-call him with, waaaaaaah! Oh, wait, grandpa does not care what you think he has already lived a little and knows better.
People were already laughing at me for using emacs in the late 90s, and none of them ever had a point other than "haha, kitchen sink." One secret of software, unused capabilities that don't have buttons on the screen can be safely ignored forever. It isn't like an oversized hand tool that weighs more because it has more functions attached. I'm still using emacs, and I only know 5 or 6 "chords." I have to make minor changes to a lisp config file every 5 years or so. Not really understanding what the complaint is. If it was a 30 year old ham sandwich, I'd understand the complaint.
People have laughed at me for using sed to global replace something in a codebase, and then when I'm done and ask them how long it would take in their IDE they tell me, oh it would take about the same amount of time. One difference though, that I don't think they notice, is that my way I can do a dry run that lists all the changes to be made before actually doing it. They probably can too, but none of them did when I asked to show me their way. Presumably they thought that was some sort of staging thing, and they missed that I was reviewing the intended changes beforehand. I'd use a newer tool, but Perl isn't usually an improvement for that use case.
I have tried several of the online IDE's. I think in general it is a good idea to move toward. I would love to see the online IDE built into my dev_website with SSH access so I can really test what I am doing. My experience has been there is a shortcoming on the testing side. This leads to me having to try pushing/pulling code in different locations to get testing done, which inevitably leads to anger. Which as you all know, leads to hate, & hate leads to suffering. In most cases, if I have SSH access, I just end up SSHing in and using emacs anyway. It's faster.
The biggest issue I see is speed. Nothing on the web runs as fast as it would locally. If you're looking at cheap hardware you're thinking about it wrong. Time is money and development time is expensive. Trying to save money on hardware is penny-wise, pound foolish.
I'm a huge fan of fast machines and multiple large high-resolution monitors. The more code I can see, the quicker I can get confused, then lost, found and finally come up with a work-around that nobody will ever understand, but works.
HTML5 supports local storage, right? So in theory all of your local storage requirements can be met with a web-based development environment. Whether any of the existing web-based IDEs actually have that fully and seamlessly implemented, I have no idea.
But to me, there is no killer feature here. The closest thing to killer feature is nearly instant developer environment replacement. If my kids spill a drink on my work laptop or it's stolen, if I have a recent full disk image backup it will take me a few days to get back up and running. I have to buy the same hardware, and then put the backup image on the storage, and then I'm back to work. If I don't have a recent full disk image backup then I have to buy some kind of replacement and spend another day getting it ready. With a fully web-based IDE the loss of hardware is a ten minute annoyance - just boot up any other machine with a web browser, log back in, get back to work.
I've used Eclipse and Netbeans most recently, and they do have previews for text changes.
The problem with emacs and Vim isn't what they can do, it's the learning curve. IntelliJ, Visual Studio, KDevelop, Eclipse, Netbeans, etc... etc... have a learning curve that looks like a slope. Barebones Emacs and Vim usage is an easy slope, but if you want to be highly productive it's like rock-climbing.
Or to put it another way, once in a while at work we pair together over a screen-sharing application. When my colleagues and I use Eclipse, the other person will helpfully suggest menus and keyboard shortcuts to accelerate some tasks. When I'm watching someone use Vim, dictating, "escape colon one four two comma one nine five space ess forward slash caret space open square bracket...." to do a regex replacement on certain lines or create and run a macro or navigate with anything fancier than hjkl will give you a stroke. You'll either go insane watching the novice move slowly or drive them insane bombarding them with incomprehensible key combinations.
I moved my prototyping work (for a complex image processing application) into the cloud using Koding.com. It was easy to add custom stuff like OpenCV, and it's a huge relief to leave the system administration to others. It's great to be able pop in and get work done anywhere you happen to have access to a browser. The Koding.com guys are very responsive any time I've had tech support issues.
> But to me, there is no killer feature here. The closest thing to killer feature is nearly instant developer environment replacement.
Exactly, and....big whoop. Oh wow you saved time...um on average once every couple of years per dev?
90% of this issue is already solved by using revision control with a remote repository. Now all you need is to reinstall your dev tools and clone a repo....at most you lost back to your last push.
"I opened my eyes, and everything went dark again"
The response time is usually slow and makes it harder to work on the move, and testing is also a lot less efficient than what you'd get doing it locally. Besides, I usually avoid using IDEs at all when a properly constructed package and makefile functions with much less clutter.
What does a decently-spec'd MBP or non-Apple equivalent and a mid-grade commercial IDE cost these days? $2k at the most?
Even if you are hiring 18-year-olds in rural South Dakota, you are looking at $50k a year ($35k salary + other direct costs), the $2k is *nothing*. 16GB laptops, SSDs, giant screens, and huge backup arrays are close to nothing.
Don't be that cheap guy. Don't work for that cheap guy. If you are you own boss and are the one cheaping out on your own self... look in a mirror, do a Stuart Smalley Daily Affirmation and step away from cheapness-first.
Where does this penny-pinching come from in IT? I think I know where it comes from, because I was there. Let's take a random year like 1989. A new 'fancy' machine, like, say a Mac IIci with a color monitor was over $10,000 ($20k in 2016 dollars). No joke. Half a year's salary. If you were able to do much of the same stuff on a cobbled-together PC/AT clone for a third of the price, you were ahead. Great. I grew up poor, with a bunch of nerdy poor friends, and we were scrambling to put together thrown-out old Zenith 8088s. Great.
It's not 1989. Especially when you compare, say, a two-year-old Thinkpad for under $500 to 'making things work, mostly' on a slightly cheaper Chromebook (I'd want the former, no question)? It's Just. Not. Worth. It.
You want your developer to have the oomph to play with VMs and Docker and whatever cool crap comes out tomorrow.
As for everything else? With all my tooling scripted up and in version control, I can go from an Ubuntu iso to basically fully operational in about 90 minutes. Might suck a lot more with Windows fiddle-twiddling (especially if you're not big enough for images and domain-centric centralized management). Syncing, teamwork, and deployment are already covered... and it's not the IDE's bailiwick.
> My second thought is, "do they know that managing a private cloud configuration is harder than managing a workstation, and generally requires sysadmin skills?"
But that is the whole point....since its offered to you as a service, you don't need any of that. They want to lock you in to trusting them to do all that work competently and to respect the privacy of your data, and trusting them to not go under/shut their servers off tomorrow.
Its all about lock-in, in the name of providing convenience.
"I opened my eyes, and everything went dark again"
I mean, if you're just doing your own personal projects, that's one thing, but if you're doing real hardcore team-level website/app development where there's a significant amount of work, division of work between team members, etc. then go on AWS or wherever, set up a trac server, install git and set up a git repo that's linked to your trac server, get Eclipse, install the mylyn plugin, etc. If you want to go whole hog set up a docker container that has a copy of your web server environment in it for local testing. Now each team member can pull a copy of HEAD, do their stuff, push it back, test locally, etc, and deploy to your development instances, etc. There are other plugins that will let you use Maven2, and stuff to integrate with AWS so you can basically run the whole lifecycle of everything from your IDE.
My guess is you can find roughly similar capabilities in some other IDEs as well, Eclipse just has the advantage of having a lot of support and many tools (though usually you CAN find a stand-alone tool that does any given task better than the corresponding plugin, the advantage of integration is pretty nice).
Now, there's SOME work involved in constructing this sort of environment. You can build up to it though over a few smaller projects.
"Malo periculosam, libertatem quam quietam servitutem." -- Jefferson
Right, but are the previews you're talking about for changes in one file?
With an IDE, you have single files "open" in tabs or windows, if you're doing a global replace you can choose to replace everything with no preview, or it has to step through each one and open the file, show you the preview, and you click yes/no.
With sed, I dump all the proposed changes to a scrolling buffer, and can review them all at once, one per line. Then I re-run the command to make the changes for real.
If you have thousands of changes of a string across dozens of files, the old way gets way out ahead.
I think is rather funny your description of being efficient and saving time by having somebody spew out audio advice about menu options. I mean, come on. That is laughable for many reasons. And your description of a regex in vim is specious; the s and the slashes are typed very quickly, and the rest of the regex is the same meat of the replacement regardless of which tool you're using. You just spell out the sounds to make it sound longer than it is, but only in one case, to make that case look worse.
And I challenge this myth that being efficient with emacs is "like rock-climbing," even without knowing WTF that comparison is supposed to mean. (I hike near a rock wall and the experts can climb it as fast I can hike the stairs next to it.) If the hard parts of being productive are about your tools, you're probably using them poorly. The hard parts are entirely in deciding which code to write, which algorithms to use, how many layers of interfaces, where are the interface boundaries, etc.
If you memorize chords or write a macro or use a shell alias, those are mostly going to provide the same amount of efficiency, except that every time you switch between mouse and keyboard, or give/receive verbal commands, your brain goes into a pause-mode where there are whole extra seconds that passed that you didn't detect because you were switching contexts.
Right, but the "as a service" case is mostly a fail. Anybody old enough to have used thin clients can understand this.
Once the service you're using is unusable for a couple days because some script kiddie decided to DDoS it, then you'll find out you need your own cloud to work in the cloud.
They want to lock you in, but they can't actually keep you there. Cloud services will be around "forever," but not every use case will outlast the buzzword phase. For companies that paint themselves into a corner with this use case, they'll find out that they can keep most of their new tooling and just use their own cloud. That is where this road appears to lead. The providers of these services are probably not intending to be building a longterm business on it; they're selling shovels for the gold rush. They already know they'll be moving on in a few years.
Funny. But when you are trying to figure out how to "migrate" your project to yet another IDE and build system du jour, me and Grandpa will be getting work done because we don't have that dependency. And since we get work done, we also get paychecks. And raises. And bonuses. Galore.
But you kids go on ahead and learn the hard way. The humorous part is that both me AND the other grandpa are both still young enough that we will still be alive to enjoy watching you fail, and, (this is the beauty part) eventually end up telling the ignorant younger generation to stay with simple tools like text editors.
Good luck.
seriously, it's so odd that people into computers are so "stuck in their ways" and cling to old technology.
Really? So is using a text editor beyond your competence, or is it just using one for web development?
I bet GP is faster than you at web development, too. Hell, I'm probably faster, and I use a text editor for web development.
LIsten to parent. If you want to do this, sync the storage. Start MySQL/PostgreSQL in a sub-directory of your project, that's easily done since this is the way the test 'em themselves, so you can get the dev database sync'ed too (well, good enough for a dev environment where you can always load a new dump).
The tools are easy to install in Linux.
Why do you think ultra-cheap laptop goodness is a good thing? Whenever I've dealt with cheap laptops, they are usually slow, not very durable (random crap breaks on the case in 2 years) and generally annoying to use (keys stick, the screen resolution is tiny, the built in mouse/trackpad sucks.) As a developer, I tent to buy a high end laptop (or two) and then use it every day, carrying it around in my backpack, for three years, or more, before I have problems.
Unless you are poor, I don't really see why point #5 is a good thing. If you are poor, and you're a software developer, then maybe the thing to focus on is not being poor.
You mean I should stop using rcs?
Good point on sed vs. IDE for text replacements and the speed of preview.
The audio advice for the IDE is relatively rare. "It would be faster if you did Ctrl-Alt-____" every few minutes because most of the navigation is visual. Mouse wheel to scroll. Right click for options. etc... etc... A novice can still work pretty quickly with only occasional prompting. With Vim, everything except typing actual text is a funky command, so unless you want to watch someone navigate one keystroke at a time with hjkl you're going to be barking directions constantly.
With my regex example, the person I was working with was familiar with ":% s/foo/bar/g" but not ":(start line),(end line)" or Vim's handling of capture groups. I can't remember the syntactic differences between Vim regex and Perl regex, but he stumbled across one of them.
With 'rock climbing', I just meant that the learning curve for the useful features is almost a vertical wall. I'm sorry I didn't make the metaphor clearer. I am confident you're an emacs wizard and can move quickly, and that's great. But for two mostly equal new developers, the person with emacs plus sed will need months - frustrating months - to get to the point where they can pace the person who started with an IDE.
IDE's were nice when they were optional. Combining a text editor, a make facility and a debugger in a nicely integrated package does make life a little easier. The problem is that IDE's enable complexity - and without a good reason, complexity is a bad thing. IDE's have enabled the migration from comprehensible programs to micro services with myriad triggers tied to tidbits of code. And in the case of web apps, those tidbits are divided between CSS, JavaScript, tons of JavaScript libraries, and whatever's on the back end. All of this crap is virtually impossible to comprehend or manage without an IDE.
If the web weren't the best way to deploy code, it would certainly win as the worst way to develop it...
Posted from my Android phone. Oh, I can change this? There, that's better...
No, I've been using emacs for nearly 20 years and I'm not a "wizard" at all. I use less chords than I have fingers. The whole concept that programmer efficiency is based on things your GUI does for you is specious, as is the claim that emacs is difficult. You're not a crippled infant your first hour or week or year using emacs. You type in your code, it is pretty straightforwards. Learning features is for petty details like changing the colors of the syntax highlighting; things you learn over time, that may help a little, but mostly it is for personalization. All the normal stuff like search/replace is in the menu if you don't know the key combination. Almost all the integration is with command line tools and is therefore totally optional; you don't have to learn an emacs way of doing things, you just switch to a text terminal and run the command. If it is long or you have repeated options, you can learn how to store those options in a macro or key chord or shell alias; the solution to automate those things is essentially the same regardless of which tool you're using.
Vim obviously has a steeper learning curve because it is "mode based," and that isn't intuitive if you're not used to it. (that said, I do all my system admin editing in vim, not emacs; mode based editing shines on config files IMO)
If you sit down in front of emacs and never learn a single feature, it is notepad with syntax highlighting. How hard can that be? If there are complicated things it can do, that doesn't make it harder to use because those features do not step up and stand in your path; if you don't know about them, they basically don't exist. That isn't exactly what is implied by a steep learning curve.
Sed is obviously a much steeper curve. I don't recommend learning sed unless somebody is already spending a lot of time using a CLI. In that case, it is a time saver. There are GUI tools that do exactly the same thing, but ultimately the knowledge needed in both cases is almost identical; you have to learn the regex flavor your tool uses, and different tools will use different flavors. See also man 7 regex and man 1 perlre
These differences are mostly artificial. If you're used to an IDE, you might think emacs is hard, when really for you it is that the CLI is hard because you can't find anything. And if you're used to a CLI, then the GUI is hard because you often can't add options to a command, and it might not be obvious what feature steps in when you need to do something differently. Same problem on both sides; it is hard to find things when you're using an unfamiliar tool. The funny part about emacs being hard is that emacs isn't the part that people struggling with emacs are struggling with. They need to change screens and just use the normal CLI tool normally, and using emacs doesn't change that process at all for most users of it. Users who program in a lisp dialect probably use it for more things and code their automation into emacs directly, but that isn't the normal pattern.
In the context of TFQ, they're asking everybody regardless of background to use a new tool, because cloud.
Sorry, Cowherd, you gotta log in to use the "grandpa" line around here. Get to back of the line, pokey.
Yer dern tootin'. Besides, it takes us old folks a while to get our clay tablets out to start cuneiforming our responses.
WALSTIB!
I mostly use the exact setup you're talking about. I can't really speak to the "teamwork" aspects; for that I generally use CollabEdit, which is simpler for one-off collaboration. I got a Chromebook because I was planning on being in fairly impoverished areas in Central America for months or years, and I wanted a laptop that I was not going to worry about breaking. It works pretty well, all things considered. It's relatively simple to install a 'real' linux distro via crouton and get access to all the normal linux goodies. One specific advantage to ChromeOS is that it keeps track of what apps you have installed, and if you ever have to replace the unit, you can just sit at the new one, type your login info, and in about two minutes the new machine will have exactly the same stuff the old one did.
Having your development tools/files in the cloud means that they are inaccessible to you without an Internet connection, however, you don't need much of a net connection to be able to work: for Cloud9 there's an initial download of I believe about 1 MB for the editor, and actually editing code is possible down to a hundred bytes per second. Creating a local repo from a GitHub or Bitbucket repository is very simple, and each coding workspace gets its own little virtual machine, so you can install gems, run tests, and do anything you'd normally do. It also saves process state, so you can start (e.g.) pry, fool around with the interpreter, close the window, and the next time you start, pry will still be running. It actually saves quite a few brain cycles: you have less effort to figure out what you were doing the last time. Code completion and refactoring support exists, but is not what you would call world-class, more like SublimeEdit than intellij.
I have been using cloud9, but I have shopped around for various online editors at times, and so far I have not found any particularly compelling reasons to switch. I do not miss setting up a new chroot or container for a new project, or worrying about syncing code between workstations. Also note that there are online IDEs which can be run on your own private server (Cloud9 among them), for a hybrid approach, and of course there's nothing wrong with emacs over ssh if it comes down to it. At this point I doubt I would go back to a "real" IDE unless required to by an employer.
Those who advocate genocide deserve every protection afforded by law, and none afforded by common human decency.
I have tested all of them in the past. Some have moved in a direction that I don't think is right for a PHP developer. They are essentially moving to sandboxed virtual environments where they want you to develop on that virtual box.
I have been keeping my eye on codeanywhere as I believe it is going in the right direction. However with the lack of PHP (or any language) linting, it is useless. For those of you that don't know, linting is essentially the highlighting of syntax errors in your code. I believe this should be their top priority but is seems they could care less. If it is ever implemented, I will definitely give codeanywhere another try on a real project.
A few months ago I gave up on the cloud IDE's as well as cloud syncing. I carry around a 512 gig USB3 SSD with my projects as well as any applications and configurations/preferences I need. It works great for those that never know where they will be and always want access to their projects and preferred IDE. Just remember to back it up on a regular basis.
Online Emacs!
http://www.compileonline.com/online_emacs_editor.php
A well designed IDE can be a good learning environment. A poor one is much worse than a text editor, and can leave you feeling trapped.
FWIW, back when I used FOXPRO (before MS bought it) they had a good IDE, so there is(was) an existence proof.
OTOH, even if you know the language backwards and forwards, some purposes can benefit from an IDE. E.g., for importing graphics or sounds. But again, a poorly designed IDE is worse than not having any at all.
The problem is that most IDE designers have the wrong idea about what they're supposed to be doing. You can't even say marketing, because KDE Develop has the same attitude. They hide the details from the user, so the user never learns. That's what the FOXPRO IDE didn't do. It have fancy tools for laying out reports, but when you used them it showed you the generated code. (Among word processors, WordPerfect [some editions] used to have the same capability, which I really appreciated. Sometimes I'd hand edit the changes it applied, and that really improved its capability. For that matter, Microsoft Word 3.1 for the Macintosh used to allow you to hand edit the code that marked index entries, which I found quite useful.)
So it's not a simple question. IDEs can be quite beneficial. But most of them aren't.
I think we've pushed this "anyone can grow up to be president" thing too far.
Once you start using an IDE forever will it dominate your destiny. Consume you it will.
There is more truth in this than most people would be comfortable admitting.
Just cruising through this digital world at 33 1/3 rpm...
Cloud, schmoud.
cPanel's code editor is my main tool!
Rather than using a pseudo-commercial IDE with limited functionality, you could use a free cloud based Linux machine courtesy of the Sage cloud: cloud.sagemath.com.
The terminal they provide isn't the greatest, but with tmux and screen, plus vim, you should be able to easily create a decent multi-terminal programming environment, in addition to getting a couple of GB of free storage. Recently they have introduced a pay model under which network access costs $7/mo. This seems cheap to me. I doubt that they want you running a web server from their service, but you could easily rsync your code with your server of choice.
I do "cloud development" all the time. I spin up servers with ansible so they have GIT, latest source, and my login keys, and I use Eclipse/SSH with the Remote System Explorer (RSE) extension to develop, and more ansible/GIT to save the changes back to the repo and deploy to the rest of the cloud.
I've tried docker and various other deploy systems, but most of the time what you want is a carefully versioned Debian stack install with you source slapped on top, and there's nothing hard about that once you've got your workflow sorted.
Oh, you mean, is there a way of developing totally in a browser without local software installs to a professional standard and level of tooling?
Um, no. Not yet. Which is a shame. There are a few specific tools, (I've written a few) but not a whole "IDE".
(Unless as one wag suggested you count the cPanel text editor, which you really shouldn't. It tops out after about 1000 lines, for a start :-)
I've actually attempted such a thing a few times, and the main problem is that putting a full GNU compiler on the internet is a great way to have your box burned to the ground through makefile exploits. Compilers don't like being put in sandboxes either.
Jeremy Lee | Orinoco
I tried a few of these last year as I wanted to try doing professional development on a chromebook also (for the good of science!).
I ended up messing with a few of them, but my tools for the last 5 years have been vim plus tmux which led me to try a bunch of different virtual servers (linode, digital ocean, etc.) This was nice, but the economics didn't add up. I ended up buying a refurbished Dell and putting Linux on it. It's so much faster than any VM or cloud container-based service and I only have to pay for electricity now...as a bonus it's a home media server and backup server. I can ssh to it from my Macbook Pro or my Chromebook, and I can access it from anywhere.
If you sit down in front of emacs and never learn a single feature, it is notepad with syntax highlighting. How hard can that be? If there are complicated things it can do, that doesn't make it harder to use because those features do not step up and stand in your path; if you don't know about them, they basically don't exist. That isn't exactly what is implied by a steep learning curve.
Thank you! And how many GUIfied IDEs support the range of languages that GNU emacs does?
I have tried to go the cloud route route for development with a Chromebook. (I have tried both web development and general programming using remote services.) For development, it might work five years from now, but it does not work today (for me) for professional development.
The first problem is availability. Even the best services are not "always on." Part of this is on the service provider, part is on their service provider, and part is on your own local Internet provider. I always have deadlines for projects, and unpredictable reliability is a job-killer.
The second problem is performance. When I work on a task, I expect to immerse myself into the task and get into the flow. Remote services do not have reliably high performance. I spent far too much time waiting on the editor, command prompt, etc. Perhaps I am spoiled by modern computers, but I find waiting more than 250ms for editor feedback is unacceptable. Remote services are not always this slow, but they are slow frequently enough to significantly degrade my performance.
The third problem is what I would call compatibility. Remote services offer a suite a capabilities, with updates from time to time. As a developer, I find myself very frequently wanting to dip into this-or-that latest update, feature, etc. I found remote services to feel too restrictive with their fixed or slowly-evolving feature sets.
Remote services / cloud development are a great option for hobbyists, but today I find them too restrictive for professional work.
I would agree with the web based editor being suck squared, but sometime using a terminal for everything because "I hatez them GUI thingz" is bull.
And yes, I have someone working like that with me. His productivity is...problematic.
The dangers of excessive individualism are nothing compared to the oppressiveness of excessive collectivism
" A cheap tablet computer has enough processing power for software development now. "
True. The iPad3 was the first tablet to be faster than a Cray X/MP which was the machine I had wet dreams about when I was a student.
You really do have a supercomputer in your pocket.
The dangers of excessive individualism are nothing compared to the oppressiveness of excessive collectivism
I concede your point on the TFQ because of your arguments elsewhere. (No sarcasm.)
But with respect to emacs or Vim, if you're only using it like Windows Notepad, then you are nowhere near as productive as someone in an IDE. You can get work done, and in your free time you can use Vim only knowing 'i', 'Esc:q!', and 'Esc:wq' (or 'Esc:ZZ') and just typing away in insert mode. But if you want to work anywhere near as quickly as someone with an IDE, you'll need to learn navigating by word ending and beginning, jumping to the beginning and ending of a line, regex search, regex replace, multi-line indent and un-indent, visual select and then copy or delete, paging up and paging down without taking your fingers off the normal position in the keyboard, editing undo and redo, copying and pasting, etc... and that learning curve is much rougher - and in my opinion, the expertise is much harder to pass along to someone else - than working with an IDE.
A separate factor in the IDE vs. CLI question is the language in use. I happen to be working in Java professionally. I neither love nor hate the language, but it's a high ceremony language and the autocomplete and jump-to-declaration features of the IDE can be incredibly handy. A user would get much less utility from an IDE when writing in Python, Ruby, Perl, PHP, Scheme, etc... and on the all-too-rare but happy occasions my employer asks me to work on Python or Javascript, I close Eclipse and work in Vim.
HTML5 has "local storage" in that your disk space is physically used to store the app and/or the data, however the data is linked to the app. While in theory you can use extraction tools to get at it, ultimately the data isn't easily available outside of the app.
It solves the "Needs to be online all the time" issue, kinda, but doesn't really solve any of the other problems associated with tying your data to a webapp. In fact, in some ways, it makes matters worse. The cloud, after all, is in theory running on well maintained hardware that's supposedly superior to the tablet with its delicate spinning disk platters you bounce on your knee, and is available everywhere. But if you're using local storage, unless care has been taken to ensure the local storage really is being backed up to the cloud, you're stuck with data you can't access that will be destroyed if your computer fails.
Needless to say, this limitation means it's not used very often.
You are not alone. This is not normal. None of this is normal.
Heh, the second insightful comment you've made that warrants a response, in one thread too! Better watch out, I'll be filling your posts up with long-winded replies that are akin to Grandpa stories to some of these folks here.
On that note, and long those lines, I see I am not the only one. What is with this trend to return to the days of dumb terminals? Seriously, I don't get it. It seems so antithetical to the idea of user control and ownership. I don't even see a technological need for it.
Yes, I get the idea of hosted solutions and yes they make sense - but why not host them yourself? Hell, I could probably run a fairly robust email server for my old company on something like an RPi - and have extra resources to throw in localized, non-hosted, spam filtering. Seriously, we had about 220 people. I'd not be surprised to find an RPi could handle that email load - though I suspect email servers have become bloated. No, I'm not talking about running Exchange on it. I'm talking a straight up, plain, email server with POP3, SMTP, and IMAP. No, no chat... Sure, we can throw in support for contact lists. Hell, we can probably throw a calendering application on their too. No, it probably won't have automated meeting scheduling and things of that nature.
We had to do a lot with little hardware. Hell, we had to do disk arrays and clustered servers as we were working with data sets that neared a full terabyte in size by the end of the 1990s. Heh, it was a mess... Eventually, I was able to start hiring professionals there too and getting the one guy who'd been with me from the start a bit of help.
In reference to my earlier reply to you - the "ops" staff, I kind of hate that word, was actually relatively organized and had a direct chain of command! Sort of - remind me to tell you about our Wizard some time. He was our database admin. He was a character but strangely proficient and rarely seen and even more seldom heard. We bought him new hardware, in 1998 or so, and I don't think he ever asked for new hardware after that - I sold in 2007, finalized in 2008. I think he simply used re-purposed hardware after that, we went through a lot of hardware - I mean a lot. There's an "event" where we brought in Oracle, they left three months later (with no product installed or working) and then tried to sue us. The Wizard was mad for a couple of weeks. Our DB access was remarkably slow during that time but he got over it and things returned to normal. He was every bit the definition of the Truck Problem. Oh, the stories I could tell - I'll spare you...
At any rate... What the hell people? Why are we giving up control? Why are we going back to the days of the dumb terminal and renting time on a mainframe? What the hell do these people think AWS is? Yes, yes it's okay to do some remote stuff - like hosting your site or even email, if you're too small. But, Office 365 or whatever it's called? Your whole Exchange server/service? The applications? Your entire data center? Your friggen virtual machines and development environment? No sir, I do not like it, no not one bit! I do not like this trend nor do I see it being a real cost savings in the end. I'm not a futurologist or the likes but I do not predict this being as rosy, secure, robust, inexpensive, or efficient as they seem to believe it will be.
Hell, by design, the true owners of this hardware (and thus data) have full access to your stuff - unless it's encrypted properly and you don't, you know, back your damned keys up to the cloud!
We're returning to dumb terminals when we have the equivalent of super computers in our pockets. We're not writing anything (and I was never a good programmer so I might have liked this feature) but we're using someone else's libraries. We don't even always know what's in those libraries. Yet we throw them together and wonder why they're able to track our every move online. I block scripting with something called uMatrix (fancy stuff - I like it, it's like an old school software firewall for Windows except it's for t
"So long and thanks for all the fish."
See also man 7 regex and man 1 perlre
Having actually looked at that specific man page just the other day, I found my favorite man page quote... It's funny that you mention it today (well, yesterday) when I'd *just* looked at that man page not that long ago, as in late last week. By virtue of my experience, I'm actually moderately familiar with Perl's regular expressions. I don't recall any funny stuff in that man page but the regex man page includes this:
Having two kinds of REs is a botch.
That just cracks me up. Heh. I'm gonna have to add you to my favorite's list so that I can note your comments more easily in the future. That's what I use it for, I've no idea what others use it for except some seem to actually think it means something more and use it vindictively or whatnot. It's amusing to think that people are so self-centered as to think their personal opinions or feelings are significant to others. However, I suspect that I'm preaching to the choir in those regards. I'm just a bit taken aback that I'm relatively unfamiliar with your posts even though I've seen you post enough - it seems I'd just never bothered putting two and two together. That's a bit odd, in and of itself, as I actually make it a point (normally) to note the authors of posts. It's a habit long learned since the BBS and USENET days. The source matters, folks... The source of a comment is often as important as the author of the comment.
"So long and thanks for all the fish."
For it to be useful you would need for it to work seamlessly with both, right? You want local copies constantly synchronized so you can keep working during a loss of connectivity but you want remote copies constantly synchronized so that a problem with your local machine doesn't lose hours (or more) of work.
Most of that is either not needed, or is in the pull-down menus on emacs and named as the normal thing, with the key combination listed next to it. There is no learning curve at all there; applications that have traditional discoverability of features don't cause a user to suffer for not having already memorized regex replace. Not everybody will need to shave seconds off of that to be productive. You don't list anything persuasive at all.
Indenting you only need to indent, you don't need to partial indent or un-indent to be efficient. In emacs, auto-indent is generally turned on, and it only takes one command to re-indent the whole file, or the selection if you made a selection first. Most people these days are required to use a single project-wide (or language-wide) indentation scheme, and there is no utility in not indenting consistently. I'm in the large set of emacs users that have tab mapped to indent-line. One of the few commands I use! I can just press tab while the cursor is anwhere in the line, and it indents correctly.
The "IDE increases your efficiency" line has always been false, and it can't even find specifics to claim that would be time savers. If you keep it down to, "IDE increases my efficiency," everybody always agreed that people like different tools.
From the perspective of people using CLI tools, IDE people can spend large amounts of time, hours even, figuring out how to do the things that can be typed into --options. But they don't subtract any of that time from the time savings they believe they receive. It is a failed argument, and it was already so 20 years ago.
People who think that users of other tools have a difficult time copying and pasting with their tools probably have not seen those tools used in a professional setting.
The language support features you describe are also used by emacs and vim users, often it requires installing a single support file.
I can't even begin to tell you how much using a text editor would slow down my development process. I work on mostly in house Java EE portal applications (ERP, CRM, etc) and a public facing Java ecommerce application. These applications fairly large but the normal development tasks are not exactly difficult (once you know the program you can work on it fairly easy). Without the advanced search options, intelligent recommendations, intuitive tag/comment/other closing, etc, etc, etc my development speed would drop exponentially. I would constantly be referencing the Java Docs to see what methods / properties belong to what class). I would constantly have to switch from mouse to keyboard (even with something like vi or emacs). I would constantly need to use the OS directory structure instead of using project explorer directory structure that the IDE provides. etc etc etc
Dude, do you even vim?
While I love being able to use vim over a terminal connection, and most of my career has depended on my ability to do so.... its been a while since I have. Under linux there is gvim, and under windows well, just run vim, its basically the same thing.
Its text editing, you are editing text, it has the best text editing features....ever devised, plus syntax hilighting, code folding, split buffer editing, and.... is mouse support, and a menu bar.
I am talking vim here, not solaris 8 /bin/vi
"I opened my eyes, and everything went dark again"