Thursday, August 11, 2011

Speculating about Future Development Environments

This series of essays, making up a sort of ode to the command line, got me thinking again about the user interface we face everyday, our software development environments. Remember when you were a kid and spent time imagining the ideal car — it should be able to fly and transform into a submarine —, or the ideal house — it should have an underwater garage to park the plane-submarine-car? No? Perhaps I was a weird kid. But that's what this post is about, conceiving what would be my ideal programming environment.

I can't get into this subject without first discussing the big rift: editors versus IDEs. I have to say I'm not a member of either faction, I love vim, I get a kick of learning new tricks (did you know that if you accidentally delete something and lose a previously yanked text, you can get it back with "0p ?), but I'm also a happy user of modern IDEs. In fact, I don't know why we have these factions. I suspect the origin is in the name IDE, Integrated Development Environment. It suggests a large piece of software integrating lots of tools to be used in the making of software, stuff like stupid code generation wizards and the always dissatisfying WYSIWYG interface designers. This perspective isn't entirely misleading, but I think it fails to capture the most important aspect of IDEs: they are editors that understand the programming language being used. They analyse your code's with regard to syntax, semantics and type structure to be able to realise feats such as jumping from a call to a definition site, changing a symbol definition and all it's uses, listing all lines of code that call a certain method/function, etc.

I see absolutely no reason why any programmer would forgo these abilities, but I see why many avoid current IDEs. The user interface is a mess of toolbars, menus, tabs, docked windows, popup windows of different sorts and gargantuan settings dialogs. Only after some time spent living in these strange environments one is expected to reap the benefits of working with a smart editor. In a way, the current crop of IDEs reminds me of the web just before Google appeared. To try to find anything with the search engines of the time was a guarantee of wasted time and probable frustration. The situation was so bleak that most of those search engines gave up on being starting points for the web and were becoming "portals", so users could stand a chance of finding what they were looking for within the sections and categories and subcategories of specifically produced pieces of information. Then came Google, with the right technology to extract relevance from the same sea of data everyone else was floundering on.

Aside from the immensely better ranking of search results, another striking difference was Google's minimalistic approach to user interfaces, showing little more than a search box and a list of results. That's where I'd start my ideal environment, a visually simple application to help the programmer focus on reading and writing code. Reading and writing code, not just text, and to be able to help with that, the application would need the code navigation and refactoring tools found in today's IDEs. The question then is, can this be done without all the cruft?

I think it can, and the way to do it is the same Google took to beat the competition: relevance and minimalism. All the housekeeping functionality we are accustomed to in current IDEs should be cast aside the in favor of a search centric interface. And there is plenty of housekeeping to get rid of: modules, windows, tabs, workspaces, perspectives, views, projects, buffers, editors, etc... As I envision it, a minimum productive environment would consist of a few tiled panes for editing code, with no tabs. The last part deserves a little explaining. The purpose of tabs is to show the currently opened files. My thinking is that whether a file is currently open or closed should be an implementation detail invisible to users. In order for this to work well, changes in files should be continuously saved and we should have access to a full version history (this is an old idea that is being picked up in Apple's latest OS).

As the ubiquitous file-tree view would be gone, all navigation would be done either directly — following a reference in a source file — or via search. The key to make this work is to go to extra lengths to perfect search relevance, perhaps taking contextual clues enriched by the abstract model of the code. For instance, a recently opened file that is close in the call graph to the file currently being edited would spring to the top of the results.

This minimalism isn't just an exercise in modernistic aesthetics; the problems caused by the litany of housekeeping features go beyond visual clutter. Each of those features generate work for the user, who has to spend time organising his environment and then remember where everything is. This is the kind of work we should delegate to computers, the user needs to deal only with the content he is currently working on and ask the environment for what he needs next. Don Norman makes a much better argument than I ever could for search based user interfaces in his column for the CACM.

Ok, so much for editing. What about the rest of the services of a modern IDE? Stuff like version-control integration, build systems, debuggers, test runners, console runners, diagram editors, kitchen-sink explorers, etc. My answer is that while many of these tools benefit from graphical user interfaces, they don't necessarily need to be in the same application as the editor. Some of them could maybe reuse some code from the IDE, but there is no need for them to share window space with the code.

So ends my wish-list for a future development environment, a fitting time to restate this is not a prediction, as I see no movement in this direction. Quite the opposite, actually, as most IDEs keep sprawling in ever larger feature matrices.


82 comments:

  1. Try QtCreator. It fits your description pretty accurately.

    ReplyDelete
  2. I definitely agree with you. I think one of the big draws of IDEs is that they appeal to beginning programmers - those are intimidated by the multistep process of compilation, linkage, etc. In my Intro to Java high school course, no one had touched a command line before. Even then we used TextPad to hide away "javac" and "-classpath" and etc - we just wanted to make games, not be bothered with all of this "compiling" nonsense. After the first year I discovered Netbeans and was immediately drawn in because of all of those useful features (code completion, etc.) that you described.

    Four years later I still use Netbeans for Java dev but I'm frustrated by the large amount of time spent configuring popups and default window visibility and locations of toolbars - basically exactly what you've described. All of that extra work also slows the IDE down and interferes with the most critical features like CC or even just responding quickly to text input.

    The DrScheme environment is perhaps one of my favorites - very succinct interface, very fast.

    ReplyDelete
  3. Wow...it would be my perfect environment too. Would love to see some IDE/Editor trying to produce something like that. Maybe this post should be read by the companies who produce textmate or intellij.

    ReplyDelete
  4. Wow...it would be my perfect environment too. Would love to see some IDE/Editor trying to produce something like that. Maybe this post should be read by the companies who produce textmate or intellij. pandora necklace germany , pandora necklace usa

    ReplyDelete
  5. Lol, your ideals are nothing short of fantasy. I think I should continue my search for a website where I can buy dissertation in England and outsource my dissertation to them. I will return to your post to read about your ideal programming environment. I am leaving the tab open.

    ReplyDelete


  6. Hello there! Quick question that’s entirely off topic. Do you know how to make your site mobile friendly?
    My web site looks weird when browsing from my iphone4. I’m trying to find
    a theme or plugin that might be able to resolve this issue.

    If you have any suggestions, please share. Cheers!

    Feel free to visit my page :::: 휴게텔

    (freaky)

    ReplyDelete
  7. These tips are very helpful for us and through these, we can enjoy a successful life. Many people are satisfied because they are enjoying good lives. Now, people will follow these guidelines and they will get more success in their lives. Buy Dissertation Online.

    ReplyDelete
  8. Great, that'd be my perfect setting as well. I'd like to see an IDE/Editor make an attempt to do something similar. This post should be viewed by the companies that manufacture text mate and interlay.

    ReplyDelete
  9. When I finished reading it, I was completely taken aback. I'd like to learn more about related subjects like Writing Services. Thank you, thank you, thank you, thank you, thank you, thank you, thank you,

    ReplyDelete
  10. This comment has been removed by the author.

    ReplyDelete
  11. It would be wiser if we used technology to create assistive devices or other tools to help people. For a better understanding, you might also get tech-related publications from Law essay writing service UK.

    ReplyDelete
  12. I can't get into this subject without first discussing the big rift: editors versus IDEs. I have to say I'm not a member of either faction but one must consider cheap towing service near me at affordable price.

    ReplyDelete
  13. Due to the extensive experience our lawyers and legal experts have working with various government organisations, embassies, and consulates, we are able to offer private citizens, small businesses, and multinational corporations cost-effective notarial services. We offer notary services and procedures that are intended to be as quick, easy, and straightforward for our clients as possible.

    ReplyDelete
  14. A selection of smart light switches, dimmers, and outlets, Legrand offers the ideal lighting solution for every house and with electradubai, legrand provides best legrand products abu dhabi. These solutions may be used for any project, application, or lifestyle.

    ReplyDelete
  15. The team behind our awesome assignment help service maintains strict policies against plagiarism. This is the best assignment writing service in the USA that offers assignment help material to all those students who lack confidence in finishing their assignment within the specified deadline

    ReplyDelete
  16. These suggestions are quite beneficial to us. If you want to save money without sacrificing quality or convenience, bookmark Best savings coupons today! We provide the most recent and exciting coupons for you to use.

    ReplyDelete
  17. of hassle and clear returns for any little mistakes. We have designed our services to make it as simple as possible Financial Instruments in Dubai to take advantage of our excellent offer because we are aware that your error is worth more to us than any amount of money. Tacb can help you get back on trackSBLC discounting in Dubai and effortlessly so that you can achieve your goals

    ReplyDelete
  18. You’re doing a remarkable process. Hold it up

    ReplyDelete
  19. Your article is very helpful for me.

    ReplyDelete
  20. ARiX digital's SEO services at all costs. We have all the resources and tools you require to optimise your website so that it appears higherSearch engine optimization dubai in search results, so you don't have to worry. With the help of our SEO services in Dubai, you'll receive professional advice on how to create high-quality content that will raise the position of your website in search engine results.

    ReplyDelete
  21. Speculating about Future Development Environments takes us on a journey of innovation. Just as developers speculate about tools, chemical injection in UAEoffers cutting-edge solutions to enhance industries. Both concepts envision a future where progress and efficiency are at the forefront.




    ReplyDelete
  22. As we ponder the future of development environments, one thing's for sure: convenience and efficiency will be paramount. Just like finding a Cheap Car Wash Near Me Ottawa is a breeze, developers will seek environments that offer cost-effective solutions without compromising quality and speed.

    ReplyDelete
  23. Well, I appreciate you sharing such a great thought. I like this blog and the topic, and I'm considering fixing it. Cheap Towing Near Me

    ReplyDelete
  24. Speculating about Future Development Environments" is an intriguing exploration of the evolving landscape in technology and innovation. It's a thought-provoking journey into what may lie ahead. In Eglo electra street abu dhabiilluminates not just the physical environment but also symbolizes the city's forward-looking approach

    ReplyDelete
  25. Speculating about Future Development Environments" is an intriguing topic that explores the evolving tech landscape. Just as we anticipate the future,Ottawa Car Wash services bring innovation and convenience to car cleaning, ensuring that vehicles are kept spotless and ready for the road ahead. It's about embracing progress, whether in technology or vehicle maintenance.




    ReplyDelete
  26. Speculating about future development environments sparks intriguing discussions on technological evolution. As we ponder the possibilities, let's ensure our present environments are maintained at their best with reliable tank cleaning houston Just as speculation fuels innovation, a clean and well-maintained tank environment ensures safety and efficiency. Here's to embracing the future and prioritizing the present, creating a balanced approach that harmonizes speculation with practical solutions for a resilient and sustainable future.





    ReplyDelete
  27. Speculating about future development environments is a thought-provoking journey into the evolving landscape of technology. Just as you anticipate the future in the digital realm, trust our fencing contractors Edmonton to shape a secure and durable environment for your properties. Elevate your safety standards with expert craftsmanship, ensuring a robust foundation for the innovations yet to come.





    ReplyDelete
  28. Diving into speculations about future development environments is a thought-provoking journey into the ever-evolving tech landscape. As we envision the possibilities, consider the efficiency of transfer pumps in Dammam for fluid handling in evolving industries. Elevate your operations with reliable solutions, ensuring a seamless flow in the future of industrial development.




    ReplyDelete
  29. Fascinating speculation on the future of development environments! As the tech landscape evolves, ensure seamless progress in the oil industry catering serviceswith specialized catering services. Just like innovative coding, top-notch catering sustains the workforce, fostering productivity and creativity. Here's to envisioning a future where both technology and culinary experiences seamlessly advance!





    ReplyDelete
  30. Intriguing speculations about future development environments! As the tech landscape evolves, savor the journey with the finestcoffee delivery dubai Just as developers envision the future, these beans offer a rich and aromatic experience, fueling creativity. Here's to the exciting possibilities ahead and the perfect cup of coffee to accompany the journey!





    ReplyDelete
  31. Exploring the realm of ideal programming environments is like crafting the perfect childhood dream. Just as we envision the extraordinary, let's sweeten the journey—don't forget to buy chocolate in makka for a taste of indulgence amidst code creation.





    ReplyDelete
  32. Thanks a lot for sharing. Keep blogging

    ReplyDelete
  33. Thank you so much for organizing and providing this quality information in an easy to understand way.

    ReplyDelete
  34. It’s great to know about many things from your website blog.

    ReplyDelete
  35. The post is very nice, by the way, I want to share with you information about the best.

    ReplyDelete
  36. I blog frequently and I seriously appreciate your information.

    ReplyDelete
  37. I was just stuck with the content of the post.

    ReplyDelete
  38. Thank you to the blog creator for their insightful content, dedication, and enriching contributions. Your efforts make a significant impact, inspiring and educating readers worldwide. Keep up the exceptional work! thanjavur painting in chennai

    ReplyDelete
  39. "Exploring the concept of an ideal programming environment sparks creativity and innovation. Just as we dreamt up fantastical inventions as children, envisioning the perfect tools for software development ignites imagination. And when you need a break from coding, unwind and rejuvenate at the relax massage center, where you can recharge and let your ideas flow freely."

    ReplyDelete
  40. Exploring the concept of the ideal programming environment is akin to crafting a blueprint for a futuristic dream world where innovation knows no bounds. Just as creativity knows no limits, the timeless elegance of Benedetta bags adds a touch of sophistication to any journey, whether in code or in life. 💻🌟👜

    ReplyDelete
  41. A new perspective on our everyday software interfaces is sparked by considering the simplicity and power of the command line. Partnering with fit out companies in Dubai firms for customized solutions is a viable option when designing creative workspaces that stimulate creativity and productivity.

    ReplyDelete
  42. I have joined your feed and look forward to see more of this magnificent blog, thanks

    ReplyDelete
  43. I am impressed with this blog work and skill you made here. Thank you so much

    ReplyDelete
  44. I am really happy that you writing content article like this. its greattt Thanksss

    ReplyDelete
  45. I have usually enjoyed checking out this site. Great work you showcase here

    ReplyDelete
  46. Reflecting on the command line as a foundational aspect of software development prompts a reevaluation of our everyday user interfaces. Just as innovation drives progress in technology, trust fit out company Abu Dubai to reimagine and enhance your living spaces with cutting-edge design concepts.


    ReplyDelete
  47. As someone who's passionate about [topic], I found your post incredibly insightful. It's evident that you've done your research, architects in chennai and your enthusiasm for the subject shines through in your writing.

    ReplyDelete
  48. Industry-specific considerations are crucial when conducting Financial statements analysis for companies in different sectors.

    ReplyDelete
  49. wonderful website It seems really professional! The fantastic work must continue!

    ReplyDelete
  50. Perfectly composed articles , thankyou for information.

    ReplyDelete
  51. I was impressed by your writing. Your writing is impressive.

    ReplyDelete
  52. That’s good articles also these teachers amazing, thanks for that quality articles.

    ReplyDelete
  53. Thanks for sharing This is really inspiring and I love to read more about this.

    ReplyDelete
  54. Excellent website! It seems extremely knowledgeable! Continue your wonderful effort!

    ReplyDelete
  55. Reflecting on the command line and our daily software environments is a valuable exercise in understanding the tools we use. It prompts us to consider efficiency, usability, and the evolution of technology. Concrete removal services in Edmonton recognize the importance of evaluating and optimizing processes for smoother operations.





    ReplyDelete
  56. I am really impressed with this blog article, Keep it up! Keep writing bloggg

    ReplyDelete
  57. I enjoyed learning more about this topic. Nice post, thanks have a nice day

    ReplyDelete
  58. I read a lot more here, Please do keep up the excellent job you've done

    ReplyDelete
  59. Nice post. It’s always interesting to read articles here. you really great

    ReplyDelete
  60. Look forward to seeking more of this fantastic post. Thanks for this!

    ReplyDelete
  61. This comment has been removed by the author.

    ReplyDelete
  62. This comment has been removed by the author.

    ReplyDelete
  63. I recently enjoyed a cup of هوت شوكليت سعودي, and it was absolutely delicious! The creamy texture and rich cocoa flavor make it a perfect drink for any time of day. Highly recommended for hot chocolate fans!

    ReplyDelete
  64. The information is really very interesting and very easy to understand, I really like this!

    ReplyDelete
  65. Nicely researched and presented. Thanks for delivering genuine info

    ReplyDelete
  66. The entire content of this blog and am very excited. Thank you very much

    ReplyDelete
  67. Pretty! This has been an wonderful post. Thanks for supplying this info.

    ReplyDelete
  68. Great insights, Rafael! Your thoughts on future development environments spark intriguing possibilities. Embracing flexibility and user-centric designs could revolutionize how we create and collaborate. Excited to see how emerging technologies shape the landscape! Keep up the fantastic work.

    ReplyDelete
  69. Nicely researched and presented. Thank you very much. If you have time visit my site : Mega888
    Mega888 apk

    ReplyDelete
  70. I appreciate reading this blog. Your blog is extremely beneficial to me. Corporate Tax in Dubai

    ReplyDelete
  71. Dental payment processing refers to the systems and tools dental practices use to handle payments efficiently. These solutions streamline transactions by accepting various payment methods, such as credit cards, debit cards, checks, and digital wallets. They often integrate with dental practice management software, enabling seamless billing, payment tracking, and patient account updates.

    Features like automated payment reminders, recurring billing, and secure encryption enhance convenience and security for both practices and patients. Effective payment processing improves cash flow, reduces administrative workload, and enhances patient satisfaction by providing flexible and accessible payment options, making it an essential component of modern dental practice operations.

    ReplyDelete
  72. Thank you so much for sharing such a wonderful blog post! Your thoughtful insights and clear writing really touched me. It was not only informative but also inspiring, and I found myself reflecting on your words long after I finished reading. Truly, it made a lasting impact! Glycemic index of jaggery

    ReplyDelete
  73. best cafe near me - This blog is pure gold! The examples you provided really helped clarify the topic. I can’t wait for your next post!

    ReplyDelete
  74. Thank you so much! That really means a lot—I'm glad you found it helpful. If there's anything you'd like to dig into further or if you have more questions on the topic, I'm totally here for it! Maria B

    ReplyDelete
  75. Honestly, I used to avoid assignment services because most just spam or copy-paste stuff. But after connecting with Ryan from Native Assignment Help Australia, I changed my view. They actually focus on what the student needs. If you're searching for Online Assignment Help Services in Australia that feel like they’re written by a human who understands uni stress, they’re it.

    ReplyDelete
  76. Yikes, I remember when I was drowning in back-to-back deadlines. Not even coffee helped. What did help was reaching out to Native Assignment Help Australia. If you’re stressing over your submissions, just say you need Help with Assignment Writing and they’ll basically rescue you

    ReplyDelete