Wednesday, October 10, 2018

Format code

Case 1:

Khi sử dụng vuejs webpack template để tạo project thì mặc định nó sẽ check format code sử dụng eslint.
Để tự động format code thì nên sử dụng ide webstorm và plugin là prettier để format code
b1: cài webstorm
b2: lên trang chủ prettier download plugin về máy
b3: webstorm > preference > plugins > search "prettier" > nếu ko có thì click vào install from disk
b4: mở project bằng webstorm
b4: vào trong project chạy lệnh npm install prettier --save-dev
b5: chọn file bất kỳ cần reformat và sử dụng alt+shift+cmd+P trên macos hoặc alt+shift+ctrl+P trên windows/linux để format file đó

Wednesday, January 3, 2018

Top 10 Free Source Code Editors – Reviewed

1. Notepad ++

Notepad++ is an open source replacement for the original Notepad program (which comes with Windows) and supports several languages. Even though it is built for Microsoft Windows, it can also run on Linux, Unix, BSD and Mac OS X (using Wine). Immediately upon starting Notepad++ you will notice the difference between it and the original Notepad. There are loads of additional buttons and features like plugin support, tabbed editing, drag and drop, split screen editing, synchronized scrolling, spell checker (via an included plugin), find and replace over multiple documents, file comparison, zooming and much more. “Notepadd++ supports syntax highlighting and syntax folding for 48 programming, scripting, and markup languages” (source).
As the website explains, the program is written in C++ and uses pure Win32 API and STL which ensures a higher execution speed and smaller program size. If you would like to learn how to make Notepadd++ your default text editor, you can find instructions here.
notepad ++

Pros

  • Lightweight and launches quickly
  • Tabbed editing interface
  • Plugin support and macros
  • Ability to add bookmarks
  • Drag and drop support
  • Find and replace across multiple documents
  • Full screen mode
  • Minimize to system tray
  • Style configurator for a customizable interface
  • Syntax and brace highlighting
  • Auto indentation
  • Auto completion
  • Code folding
  • Text folding
  • Compiler integration
  • Search and replace
  • Spell checker (via plugin)
  • Collaborative editing (via plugin)
  • FTP support (via plugin)
  • Multiple instances
  • File comparison

Cons

  • No HTTP, SSH or WebDav support for remote file editing
  • Does not support large files
  • Another program is needed in order to run on Mac OS X

2. TextWrangler

Unlike Notepadd++ mentioned above, TextWrangler is not open source and it is a Mac-only program. It also only supports one language: English. It is, however, a very “powerful general purpose text editor, and Unix and server administrator’s tool.” While on the surface it looks like just a plain and basic text editor, it possesses a lot of features. There’s a Documents Drawer (closed by default) that can be opened to view and compare selected documents. As a code editor it includes syntax coloring and function navigation for 44 programming languages like ActionScript, C++, HTML, JavaScript, Perl, Python, SQL and VBScript. With TextWrangler you can also open extremely large files; it’s only limited by the RAM on your computer and OS X limitation to files.
If you need more advanced features like FTP and SFTP open and save, AppleScript, Mac OS X Unix scripting suppor, sleep mode, auto-save and more you can upgrade to BBEdit.
textwrangler

Pros

  • Plugin support and macros
  • Built in FTP and Secure FTP
  • SSH support for remote file editing
  • Ability to compare two documents line-by-line
  • Syntax highlighting
  • Auto indentation
  • Auto completion
  • Code folding
  • Text folding
  • Compiler integration (via plugin)
  • Spell checker
  • Large file support (limited by computer memory)
  • Multiple instances

Cons

  • No collaborative editing
  • No HTTP or WebDav support for remote file editing
  • Doesn’t work on Tiger on the Power Macintosh G4 (Quicksilver) series

3. jEdit

jEdit, a program for Windows, Mac OS X, OS/2, Linux, BSD, Unix and VMS, is said to be for mature programmers only. Written in Java, it is open source and supports hundreds of plugins and macros. The main window can be split horizontally or vertically and also comes with “auto indent, and syntax highlighting for more than 130 languages.” There are many customization options for making everything from the dock to the status bar to the toolbar look and feel exactly the way you want. You can even “copy and paste with an unlimited number of clipboards.”
Programming languages supported include: ActionScript, ColdFusion, LOTOS, Ruby, Python and COBOL. All of jEdit’s features cannot possibly fit into this paragraph, but you can view them all here.
jedit

Pros

  • Powerful search engine for regular expressions
  • Syntax highlighting with customization options
  • Auto-indentation
  • Auto completion
  • Code folding
  • Text folding
  • Compiler integration (via plugin)
  • Plugin support and macros
  • Tabbed editing interface
  • Integrated FTP browser
  • Spell checker (via plugin)
  • FTP support (via plugin)
  • HTTP and WebDav (via plugin) support for remote file editing
  • Multiple instances

Cons

  • Heavyweight and often slow on startup
  • In

    Cons

    istent spell checker
  • Can be buggy on the Mac
  • No collaborative editing
  • No large file support
  • No SSH support for remote file editing

4. Crimson Editor

Crimson was written in C, is open source and is known as a professional source code editor for Windows only. It is also a suitable replacement for Notepad and supports programming in 60+ languages like Maple, LotusScript, C/C++, MySQL, Ruby, Perl and JScript. Currently it only supports the English language. Unfortunately, the last release of Crimson was in 2008, but it has been replaced by Emeral Editor.
As you can see from the image below, it resembles Notepad++ from the toolbar to the tabbed editing. It also supports plugins, which are called “tools,” and macros. There is even a built-in FTP client and you have the ability to manage groups of related files and save them as projects.
crimson editor

Pros

  • Syntax highlighting
  • Auto indentation
  • Compiler integration
  • Ability to add bookmarks
  • FTP support
  • Instant/live spell checker
  • Macros
  • Multiple instances

Cons

  • No auto completion
  • No code folding
  • No text folding
  • No collaborative editing
  • No large file support
  • No HTTP, SSH or WebDav support for remote file editing

5. Araneae

Araneae is an editor for Web professionals that runs on Windows only. You can download extensions to use with it and it includes syntax highlighting, drag and drop support, tabbed editing and the ability to insert customizable quick clips. “Araneae includes several extensions and localizations right out of the proverbial box’”no extra downloading required! This includes HTML, XHTML, CSS, XML, JavaScript, PHP and Ruby files, as well as English, French, Greek, Spanish, and Estonian localizations!” All toolbars are viewable by default and can be rearranged to suit your preference.
Araneae

Pros

  • Syntax highlighting
  • Drag and drop support
  • Tabbed editing interface
  • Quick clips
  • Search and replace
  • Multiple instances

Cons

  • No plugins or macros

6. EditPad Lite

EditPad Lite is another Windows-only, general-purpose text editor and is written in 10 different languages. It was built with Delphi and is small, compact and free for non-commercial use only. So, if you will be getting paid for the work that you do with it, then you’ll need to purchase EditPadPro. Features are limited, but it does have tabbed editing, can remain running in the system tray, supports auto indenting and can be configured to suit your own taste and eyesight.
EditPad Lite also resembles Notepad with the exception of the formatting toolbar and tabs.
EditPad Lite

Pros

  • Tabbed editing interface
  • Auto indentation
  • Unlimited undo and redo even after saving a file (as long as it remains open)
  • Large file support
  • FTP support
  • Multiple instances

Cons

  • No syntax highlighting
  • No auto completion
  • No code folding
  • No text folding
  • No compiler integration
  • No macros
  • No collaborative editing
  • Spell checker not included in free version
  • No HTTP, SSH or WebDav support for remote file editing

7. ATPad

ATPad is not much different than most of the others mentioned above: it’s another rendition of Notepad with a few upgrades. Besides English, you can get ATPad in 11 other languages. You get tabbed editing, customization options, line numbering, word wrapping, bookmarks (so that you don’t lose your place when returning), customizable snippets, sending via email and more. Since ATPad doesn’t require installation, you can open it from virtually any kind of drive and it doesn’t leave any traces behind. To remove it simply delete the ATPad directory.
ATPad

Pros

  • Allows tiling and cascading of windows
  • Tabbed editing interface
  • Line numbering
  • Text snippets
  • Can send documents via email
  • No installation required
  • Ability to add bookmarks
  • Unlimited find/replaces and undo/redo

Cons

  • Does not come with spell checker

8. RJ TextEd

RJ TextEd is for Windows only and supports 18 different languages and 20 programming languages. It was built on CodeGear Delphi and is not open source. There is both a PC and portable version for download along with a handful of plugins and tools that you can download separately. Unlike most of the clean cut programs mentioned above, RJ TextEd has toolbars, panes and tabs galore. You can also create projects and macros and customize your work environment.
RJ TextEd

Pros

  • Has a portable version
  • Syntax highlighting
  • Spell checker
  • Auto indentation
  • Auto completion
  • Code folding
  • Text folding
  • Compiler integration
  • Macros
  • FTP and Secure FTP support
  • SSH support for remote file editing
  • Multiple instances

Cons

  • No collaborative editing
  • No large file support
  • No HTTP or WebDav support for remote file editing

9. Komodo Edit

Komodo Edit is a fast open source program that can be used on Windows, Max OS X and Linux. It supports the following programming languages: PHP, Python, Ruby, JavaScript, Perl, Tcl, XML, HTML 5 and CSS 3. It also comes equipped with “customizable syntax coloring, folding, background syntax checking, and excellent auto-complete and calltips (called ‘code intelligence’).” Their pages and pages of extensions are equivalent to Firefox’s and their “tricked out” editor is one of the most advanced featured on this list. Along with all that you get remote file editing, a toolbox with shell command integration, macros, snippets and the list goes on. For more advanced features you can purchase Komodo IDE for Teams.
RJ TextEd

Pros

  • Extension support and macros
  • Syntax highlighting
  • Auto indentation
  • Auto completion
  • Code folding
  • Text folding
  • Code snippets

Cons

  • Spell checker not included
  • No compiler integration
  • No collaborative editing
  • No large file support
  • No multiple instances
  • For more advanced features you’ll need to upgrade for a hefty fee of $295 (without support and upgrades) or $382 (with support and upgrades)

10. KompoZer

Powered by Mozilla, “KompoZer is a complete Web Authoring System that combines web file management and easy-to-use WYSIWYG web page editing capabilities found in Microsoft FrontPage, Adobe DreamWeaver and other high end programs.” This easy to use program, for Windows, Mac OS X and Linux, is geared toward non-technical users who don’t know much about HTML or web coding. It’s available in 21 different languages, has integrated file management via FTP, tabbed editing, color picker and support for forms, tables and templates.
As you can see from the screenshot below, it’s meant to be more like DreamWeaver as opposed to Notepad (hence the catering to non-technical users).
KompoZer

Pros

  • Site manager and file tree
  • WYSIWYG editing
  • Has a portable version
  • FTP support
  • Spell checker
  • Supports templates
  • Page preview
  • Comparable to Adobe DreamWeaver and Microsoft FrontPage

Cons

  • No WebDAV support for remote file editing
  • No shared editing support
  • Does not support server-side scripting

11. TouchQode (Bonus)

As an added bonus we have TouchQode, which is an editor just for smartphones. It’s currently only available for Android, but you can subscribe to be notified about the iPhone release. For a smartphone editor, it has some great features like syntax highlighting, the ability to run (simple) scripts, an integrated FTP client, file syncing and more. TouchQode really gives the the ability to code anywhere you go!
TouchQode

Pros

  • Android app
  • Syntax highlighting
  • Code suggestions
  • Incremental search
  • File synchronization

Cons

  • No iPhone app (but coming soon)

Sunday, December 24, 2017

4 Best Modern Open Source Code Editors For Linux

Brief: Looking for best programming editors in Linux? Here’s a list of best code editors for Linux. The best part is that all of them are open source code editors.
If you ask the old school Linux users, their answer would be Vi, Vim, Emacs, Nano etc. But I am not talking about them. I am going to talk about new age, cutting edge, great looking, sleek and yet powerful, feature-rich best open source code editors for Linux that would enhance your programming experience.

Best modern Open Source editors for Linux

I use Ubuntu as my main desktop and hence I have provided installation instructions for Ubuntu based distributions. But this doesn’t make this list as best code editors for Ubuntu because the list is apt for any Linux distribution. Just to add, the list is not in any particular priority order.

1. Brackets

Brackets is an open source code editor from Adobe. Brackets focuses exclusively on the needs of web designers with built-in support for HTML, CSS and JavaScript. It is lightweight and yet powerful. It provides you with inline editing and live preview. There are plenty of plugins available to further enhance your experience with Brackets.
Some of the main features of Brackets code editor are:
  • Inline editing
  • Live preview
  • Preprocessor Support
  • Built-in extension manager
  • Cross-platform
You can get the source code as well as binaries for Linux, OS X and Windows on its website.

2. Atom

Atom is another modern and sleek looking open source editor for programmers. Atom is developed by Github and promoted as a “hackable text editor for the 21st century”. The looks of Atom resembles a lot like Sublime Text editor, a hugely popular but closed source text editors among programmers.
Some of the main features of Atom code editor are:
  • Easily extendible
  • Built-in package manager with a huge number of plugins available
  • Smart autocompletion
  • Split windows
  • Cross-platform
  • Embedded Git control
  • Command palette support
  • Looks customization
Atom has recently released .deb and .rpm packages so that one can easily install Atom in Debian and Fedora based Linux distributions. Of course, its source code is available as well.

3. Light Table

Flaunted as “the next generation code editor”, Light Table is another modern looking, underrated yet feature-rich open source code editor which is more of an IDE than a mere text editor.
There are numerous extensions available to enhance its capabilities. Inline evaluation is what you would love in it. You have to use it to believe how useful Light Table actually is.
Some of the main features of Light Table are:
  • Built-in extension manager
  • Inline evaluation obviates the need for printing to screen as you can evaluate the code in the editor live
  • ‘Watches’ feature lets you see your code running live
  • Cross-platform
If you are using Ubuntu-based Linux distribution, then installing Light Table is easier for you. However, officially, Light Table doesn’t provide any packages. You have to build it yourself.

4. Visual Studio Code

Visual Studio Code is a popular code editor from Microsoft. Now don’t push the panic button just yet. Visual Studio Code is completely open source.
In fact, Visual Studio Code was among the first few ‘peace offering’ from Microsoft to Linux and Open Source world. Microsoft has open sourced a number of its tools after that. Of course, that doesn’t include Microsoft Office.
Visual Studio Code is an excellent code editor, especially for web development. It is lightweight as well.  Some of the other main features are:
  • Intellisense provides useful hints and auto-completion features
  • Built-in Git support
  • Built-in extension manager with plenty of extensions available to download
  • Integrated terminal
  • Custom snippet support
  • Debugging tools
  • Support for a huge number of programming languages
  • Cross-platform

Wednesday, December 13, 2017

Source code editor

A source code editor is a text editor program designed specifically for editing source code of computer programs by programmers. It may be a standalone application or it may be built into an integrated development environment (IDE) or web browser. Source code editors are the most fundamental programming tool, as the fundamental job of programmers is to write and edit source code.

Contents

Features

Source code editors have features specifically designed to simplify and speed up input of source code, such as syntax highlighting, indentation, autocomplete and brace matching functionality. These editors also provide a convenient way to run a compiler, interpreter, debugger, or other program relevant for the software development process. So, while many text editors can be used to edit source code, if they don't enhance, automate or ease the editing of code, they are not source code editors, but simply text editors that can also be used to edit source code.
Structure editors are a different form of source code editor, where instead of editing raw text, one manipulates the code's structure, generally the abstract syntax tree. In this case features such as syntax highlighting, validation, and code formatting are easily and efficiently implemented from the concrete syntax tree or abstract syntax tree, but editing is often more rigid than free-form text. Structure editors also require extensive support for each language, and thus are harder to extend to new languages than text editors, where basic support only requires supporting syntax highlighting or indentation. For this reason, strict structure editors are not popular for source code editing, though some IDEs provide similar functionality.
A source code editor can check syntax while code is being entered and immediately warn of syntax problems. A few source code editors compress source code, typically converting common keywords into single-byte tokens, removing unnecessary whitespace, and converting numbers to a binary form. Such tokenizing editors later uncompress the source code when viewing it, possibly prettyprinting it with consistent capitalizing and spacing. A few source code editors do both.

Some well-known source code editors

Controversy

Many source code editors and IDEs have been involved in ongoing user arguments, sometimes referred to jovially as "holy wars" by the programming community. Notable examples include vi vs. Emacs and Eclipse vs. NetBeans. These arguments have formed a significant part of internet culture and they often start whenever either editor is mentioned anywhere.

Tuesday, December 12, 2017

A Beginner's Guide to Integrated Development Environments

If you're new to programming (or new to programming in a particular language) you might be looking for an IDE — that's an integrated development environment, the handy, dandy piece of software that acts as text editor, debugger and compiler all in one sometimes-bloated but generally useful package.
Unless you're committed to working in a text editor and a command prompt window (and there are compelling reasons for doing exactly that) you might be looking for some advice on how to choose a good IDE, the pros and cons of various varieties, the relative costs (financial or system resources) of running a particular IDE, what other languages the IDE might handle well, the operating system(s) it runs on and ever so much more.
I was recently in need of such advice, myself. As some of the readers of this blog know, I recently went back to school to study computer science. Being an utter novice, I made the mistake of asking developers in my sphere what IDE I should use.
The topic is apparently a minefield of catastrophic proportions. Developers are passionate, experienced and opinionated when it comes to optimizing their workflows, and recommendations (and anti-recommendations, e.g., "NetBeans is superlatively bad and will turn your hardware into Cream O' Wheat!") fly like shells over a battlefield.
Here's a less opinionated, concise but thorough look at IDEs for the new programmer. If you need more detailed information or want to find an IDE for a less common programming language, check out the Wikipedia article comparing just about every IDE known to humankind.
And if we left out an IDE you particularly love, let us know about it in the comments — but try to keep the NetBeans/Eclipse, Vim/Emacs flamewars to a minimum.

IDEs Built from Text Editors

It's a slightly more complicated setup, but some pro developers swear by these workflows, which take a lightweight, run-of-the-mill text editor and turn it into a full-fledged, be-all-end-all IDE.
Ars Technica has an excellent step-by-step article on how to turn Vim into a great IDE using Exuberant Ctags, completion modules, script collections and more.
Emacs users can also use commands to make this editor more developer-friendly. And of course, this topic gets a thorough discussion at StackOverflow.
When in doubt, search Google for tips on turning your favorite text editor into a great IDE for your language of choice. Chances are someone, somewhere has already attempted it and is willing to hand out advice.

Multi-Language IDEs

Aptana Image


As a beginning programmer, you might not need tools for coding in Ruby and Python and C++ and PHP, but if you're aiming for a multi-language career later on, you might consider learning the ropes of a multi-language IDE.
One kind gent (or lady) on Hacker News wrote, "Although many IDEs can handle more than one language, few do it well. Plus, it's likely overkill if you are just getting started." This individual suggested instead using a simple text editor such as gEdit (Linux) or TextMate (Mac) for multi-language practice.

Eclipse

Languages: C, C++, Python, Perl, PHP, Java, Ruby and more
Price: FREE
Eclipse is the free and open-source editor upon which many development frameworks are based. It's one of the granddaddies in its field and comes highly recommended by many a professional developer. Eclipse began as a Java development environment and has greatly expanded through a system of lightweight plugins.

NetBeans

Languages: Java, JavaScript, PHP, Python, Ruby, C, C++ and more
Price: FREE
NetBeans is neck-and-neck with Eclipse as the most-recommended IDE in this category. It's free and open-source, supports tons of languages with more plugins coming all the time, and is incredibly simple to install and use, even for a beginner.

Komodo

Languages: Perl, Python, Tcl, PHP, Ruby, Javascript and more
Price: $295
This enterprise-level tool might be best for the pro developer because of its higher price point. For beginners, you might also want to check out the Komodo-based, FOSS editor Open Komodo or Komodo's FOSS version, Komodo Edit.

Aptana

Languages: HTML, CSS, JavaScript, AJAX and others via plugins
Price: FREE
Aptana is a popular choice for web app development. Aptana Studio 2 can be used as a stand-alone IDE or can be plugged into Eclipse. Aptana comes with Firebug support built-in, and its developer community seems to release plugins for other languages as needed.

BlackAdder

Languages: Python and Ruby
Price: $59.99 (personal developer license)
This IDE is designed for Python and Ruby devs creating apps for Windows and Linux. It includes a text editor as well as a GUI designer that uses pyQT and QT Designer. The makers of BlackAdder allow you to test drive the IDE in a limited demo version.

Geany

Languages: C, Java, PHP, HTML, Python, Perl, Pascal and a boatload more
Price: FREE
Geany bills itself as a "small and fast" IDE, but it is by no means a lightweight. Its list of supported languages is about a block long; it's highly customizable; and it features a robust set of plugins which is open for hacking.
Here's a chart showing the differences and similarities between a few multi-language IDEs. An asterisk denotes the need to use a third-party or other plugin to achieve the desired functionality. The .NET column indicates support for .NET languages, particularly C#. "FOSS" is the acronym for "free and open-source." Click the image to see a slightly larger version.

IDEs for Mobile Development

These days, developing mobile applications is one of the most compelling and exciting reasons for learning how to code. We're still looking for that perfect, all-in-one, cross-platform mobile app IDE — in fact, we particularly welcome your comments and suggestions on this score — but here are a few ideas to get you started.
Try some of PhoneGap's cross-platform tools. PhoneGap works with Xcode and Eclipse for iPhone and Android, respectively. You could also try the web-based, hosted RhoHub, which allows for git-powered source control and team collaboration.
Another good bet for mobile developers is Appcelerator's Titanium Mobile, which lets you write in any language/IDE you choose, then translates your code to Objective-C or Java. You can also check out our list of cross-platform mobile development tools. Finally, the mobile development products (and resultant applications) from Adobe are getting more interesting all the time — we highly recommend keeping an eye on their developer tools.
Also, if you're already using a multi-language or other IDE, check the web to see if a mobile-development plugin already exists; many IDEs such as Eclipse have this functionality.

Web-Based IDEs

CodeRun Image


If you're working remotely or need a last-minute fix, these IDEs might be worth looking into.

CodeRun

Languages: ASP.NET, PHP, Ajax, C#, JavaScript, CSS, HTML and more
Price: FREE
This broswer-based IDE works in Chrome, Firefox, Safari and even good old Internet Explorer. Like the more robust multi-language IDEs, CodeRun supports Visual Studio projects and .NET languages. Best of all, your code is sharable via hyperlinks; it's even got built-in social sharing tools, should you want to tweet your code.

ShiftEdit

Languages: PHP, HTML, CSS and JavaScript
Price: FREE
ShiftEdit brings revision history and code snippets to the browser. Any files you access will stored until next time you log in. This IDE's text editor is based on Mozilla's Bespin (mentioned below).
If you need a collaborative, web-based code editor — great when working on joint projects or as part of a team — you might also want to check out Squad. And for HTML5-based code editing, try Mozilla's SkyWriter, formerly codenamed Bespin.

IDEs for Microsoft/.NET/C# and Apple/iPhone/Mac Devs

Some languages require a bit of special handling; not all multi-language IDEs support all languages, and if you're working with the Cocoa API, for example, or with a .NET framework language, you might want to consider something more specifically suited to a Microsoft or Apple development environment.
Another part of this category includes single-platform IDEs such as Coda and Espresso. They only run on Mac Operating Systems, but they allow for multi-language development within a very Apple-flavored GUI.

Visual Studio

Languages: Visual C++, VB.NET, C#, F# and others
Price: $549
Visual Studio is Microsoft's IDE. If you're building Silverlight apps or planning on working in a .NET shop (such as MySpace), you may want to spend some time with Visual Studio. Visual Basic has some support for non-Microsoft languages such as Python and Ruby, but you'll have to install those services yourself. A free, limited-time trial version is available.

Xcode

Languages: Objective-C, Objective-C 2, Cocoa and Cocoa Touch APIs
Price: FREE
This IDE is just for creating iOS and Mac apps. If you're thinking along Apple-y lines and want to get into iPhone or iPad development, Xcode might be your first stop. This IDE includes an iPhone simulator and GUI builder, too.

Monodevelop

Languages: C/C++, Visual Basic, C# and other .NET languages
Price: FREE
Monodevelop is a good option if you're working in a .NET languages and don't want (or need) to fork over the $550 for Visual Studio. This free-as-in-beer IDE also allows you to port your apps to Linux while maintaining a single codebase.

Espresso

Languages: HTML, CSS, XML, JavaScript and PHP
Price: $79.95
Espresso, a tool for Mac web devs, comes from the makers of CSSEdit. Its supported languages and other features are extensible through plugins known as "Sugars."

Coda

Languages: PHP, JavaScript, CSS, HTML, AppleScript and Cocoa API
Price: $99
Coda bills itself as "one-window development" for the Mac user, and its a favorite of many developers on this platform. It's a full-featured IDE, but one of its most interesting features is live collaboration with other users.
PHP IDE
It's not delirium tremens; it's just an elePHPant.

IDEs for Specific Languages

Here are a few suggestions for IDEs that cater to developers working in a single language. Some of these options are more costly than others, but most of the non-free IDEs here will also have a free trial version available for you to test-drive the software, learn to use it and decide whether or not you need and want its features and interface.
We only have space to highlight a few of the more popular programming languages here. If we left your preferred language out of this list, search StackOverflow for IDE recommendations, or ping the friendly devs over at Hacker News for their advice.

C/C++

C/C++ languages are some of the most widely used in the world of computer programming. Almost every multi-language IDE will support C/C++, but here are some dedicated IDEs just for C programmers.
Bloodshed Dev-C++
Price: FREE
Code::Blocks
Price: FREE
CodeLite
Price: FREE
C-Free
Price: $79.95 (single-user license)

Java

Yeah, yeah, I've heard about how much Java sucks more times than I can recall. But it's used in the Android stack as well as in a lot of intro-level programming courses, so here's a lineup of good Java IDEs.
Jikes
Price: FREE
Jcreator
Price: $89 (single-user license)
IntelliJ IDEA
Price: FREE

Python

Never mind the fu and bar, here's some spam and eggs. If you got that reference, you might want to check out these links. Here are a few IDEs dedicated to Python, a powerful, readable and fascinating language. For more suggestions and comparison information, check out this exhaustive StackOverflow list of Python IDEs.
Idle
Price: FREE
PyCharm
Price: $49 (personal license)
Pida
Price: FREE
Wing
Price: $35 (personal license, single OS)
Pyscripter
Price: FREE

PHP

PHP powers some of the most ubiquitous web apps around today, from WordPress to Facebook. Many of the free multi-language IDEs also support PHP development. Here are some full-featured, pro IDEs we've seen recommended.
PHPStorm
Price: $99 (personal license)
PhpED
Price: $119
Zend Studio
Price: $399
PHP Designer
Price: $45 (personal license)

Ruby/Rails

For a relatively young language, Ruby gets a lot of mileage, from consumer-facing apps like Twitter to dev-centric sites such as GitHub. In addition to these IDEs, also check out Ruby In Steel, a Ruby tool for Visual Studio, and Heroku, the so-hot-right-now PaaS for Ruby apps.
RubyMine
Price: $99 (commercial license)
Redcar
Price: FREE (and still under development)
RadRails
Price: FREE

Use What You Love, Love What You Use

Finally, after scores of links and a huge data-dump of information, we can only tell you this: Developers are passionate and opinionated about their IDEs because each individual has researched, chosen, used and come to appreciate a specific IDE (or set of IDEs) for personal as well as practical reasons.
We recommend you try out a few of the free (and free trial) IDEs before making a hard and fast choice as to what you'll use, but you should ultimately use the IDE that suits you best and makes you happiest. Anyone else's recommendations are just highly subjective suggestions.
We wish you well, and happy coding!
Disclosure: The author of this post uses gEdit, Notepad, NetBeans, JCreator, and a magnetic needle and a steady hand.

Integrated development environment

An Integrated Development Environment (IDE) is a software application that provides comprehensive facilities to computer programmers for software development. An IDE normally consists of a source code editor, build automation tools and a debugger. Most modern IDEs have intelligent code completion. Some IDEs, such as NetBeans and Eclipse, contain a compiler, interpreter, or both; others, such as SharpDevelop and Lazarus, do not. The boundary between an integrated development environment and other parts of the broader software development environment is not well-defined. Sometimes a version control system, or various tools to simplify the construction of a Graphical User Interface (GUI), are integrated. Many modern IDEs also have a class browser, an object browser, and a class hierarchy diagram, for use in object-oriented software development.

Contents

Overview

Integrated development environments are designed to maximize programmer productivity by providing tight-knit components with similar user interfaces. IDEs present a single program in which all development is done. This program typically provides many features for authoring, modifying, compiling, deploying and debugging software. This contrasts with software development using unrelated tools, such as vi, GCC or make.
One aim of the IDE is to reduce the configuration necessary to piece together multiple development utilities, instead providing the same set of capabilities as a cohesive unit. Reducing that setup time can increase developer productivity, in cases where learning to use the IDE is faster than manually integrating all of the individual tools. Tighter integration of all development tasks has the potential to improve overall productivity beyond just helping with setup tasks. For example, code can be continuously parsed while it is being edited, providing instant feedback when syntax errors are introduced. That can speed learning a new programming language and its associated libraries.
Some IDEs are dedicated to a specific programming language, allowing a feature set that most closely matches the programming paradigms of the language. However, there are many multiple-language IDEs.
While most modern IDEs are graphical, text-based IDEs such as Turbo Pascal were in popular use before the widespread availability of windowing systems like Microsoft Windows and the X Window System (X11). They commonly use function keys or hotkeys to execute frequently used commands or macros.

History

GNU Emacs, an extensible editor that is commonly used as an IDE on Unix-like systems
IDEs initially became possible when developing via a console or terminal. Early systems could not support one, since programs were prepared using flowcharts, entering programs with punched cards (or paper tape, etc.) before submitting them to a compiler. Dartmouth BASIC was the first language to be created with an IDE (and was also the first to be designed for use while sitting in front of a console or terminal).[citation needed] Its IDE (part of the Dartmouth Time Sharing System) was command-based, and therefore did not look much like the menu-driven, graphical IDEs popular after the advent of the Graphical User Interface. However it integrated editing, file management, compilation, debugging and execution in a manner consistent with a modern IDE.
Maestro I is a product from Softlab Munich and was the world's first integrated development environment[1] for software. Maestro I was installed for 22,000 programmers worldwide. Until 1989, 6,000 installations existed in the Federal Republic of Germany. Maestro was arguably the world leader in this field during the 1970s and 1980s. Today one of the last Maestro I can be found in the Museum of Information Technology at Arlington.
One of the first IDEs with a plug-in concept was Softbench. In 1995 Computerwoche commented that the use of an IDE was not well received by developers since it would fence in their creativity.
As of March 2015, the most popular IDEs are Eclipse and Visual Studio.[2] An example of a high-productivity Platform as a Service provider that incorporates an IDE is the OutSystems Platform, a Rapid Application Development platform which claims a 10x acceleration in development by using a robust IDE and a 'toolbox' of pre-built components. In 2016 OutSystems launched its P10 Platform which has been specifically designed to build applications for mobile.

Topics

Visual programming

Visual programming is a usage scenario in which an IDE is generally required. Visual Basic allows users to create new applications by moving programming, building blocks, or code nodes to create flowcharts or structure diagrams that are then compiled or interpreted. These flowcharts often are based on the Unified Modeling Language.
This interface has been popularized with the Lego Mindstorms system, and is being actively pursued by a number of companies wishing to capitalize on the power of custom browsers like those found at Mozilla. KTechlab supports flowcode and is a popular opensource IDE and Simulator for developing software for microcontrollers. Visual programming is also responsible for the power of distributed programming (cf. LabVIEW and EICASLAB software). An early visual programming system, Max, was modelled after analog synthesizer design and has been used to develop real-time music performance software since the 1980s. Another early example was Prograph, a dataflow-based system originally developed for the Macintosh. The graphical programming environment "Grape" is used to program qfix robot kits.
This approach is also used in specialist software such as Openlab, where the end users want the flexibility of a full programming language, without the traditional learning curve associated with one.

Language support

Some IDEs support multiple languages, such as GNU Emacs based on C and Emacs Lisp, and IntelliJ IDEA, Eclipse, MyEclipse or NetBeans, all based on Java, or MonoDevelop, based on C#.
Support for alternative languages is often provided by plugins, allowing them to be installed on the same IDE at the same time. For example, Flycheck is a modern on-the-fly syntax checking extension for GNU Emacs 24 with support for 39 languages.[3] Eclipse, and Netbeans have plugins for C/C++, Ada, GNAT (for example AdaGIDE), Perl, Python, Ruby, and PHP, which are selected between automatically based on file extension, environment or project settings.

Attitudes across different computing platforms

Unix programmers can combine command-line POSIX tools into a complete development environment, capable of developing large programs such as the Linux kernel and its environment.[4] In this sense, the entire Unix system functions as an IDE.[5] The free software GNU tools (GNU Compiler Collection (GCC), GNU Debugger (gdb), and GNU make) are available on many platforms, including Windows.[6] The pervasive Unix philosophy of "everything is a text stream" enables developers who favor command-line oriented tools to use editors with support for many of the standard Unix and GNU build tools, building an IDE with programs like Emacs[7][8][9] or Vim. Data Display Debugger is intended to be an advanced graphical front-end for many text-based debugger standard tools. Some programmers prefer managing makefiles and their derivatives to the similar code building tools included in a full IDE. For example, most contributors to the PostgreSQL database use make and gdb directly to develop new features.[10] Even when building PostgreSQL for Microsoft Windows using Visual C++, Perl scripts are used as a replacement for make rather than relying on any IDE features.[11] Some Linux IDEs such as Geany attempt to provide a graphical front end to traditional build operations.
On the various Microsoft Windows platforms, command-line tools for development are seldom used. Accordingly, there are many commercial and non-commercial products. However, each has a different design commonly creating incompatibilities. Most major compiler vendors for Windows still provide free copies of their command-line tools, including Microsoft (Visual C++, Platform SDK, .NET Framework SDK, nmake utility).
IDEs have always been popular on the Apple Macintosh's classic Mac OS and macOS, dating back to Macintosh Programmer's Workshop, Turbo Pascal, THINK Pascal and THINK C environments of the mid-1980s. Currently macOS programmers can choose between native IDEs like Xcode and open-source tools such as Eclipse and Netbeans. ActiveState Komodo is a proprietary multilanguage IDE supported on macOS.
With the advent of cloud computing, some IDEs are available online and run within web browsers.

Five Best Text Editors

Whether you’re a developer or a writer, a good text editor is a must-have on any computer, in any operating system. The humble text editor is great for managing code, writing down quick notes, or just as a distraction-free writing tool. This week, we’re looking at five of the best, based on your nominations.

Earlier this week we asked you for your favorite text editors, and while you suggested far more than we can highlight here, there were a few that earned more nominations than the others. Here are the tools you liked the best:

Sublime Text

Cross-platform and feature packed, Sublime Text was a crowd favorite in the call for contenders thread, partially because of its amazing feature-set. Plug-ins and add-ons are available for specific programming languages and uses in Sublime Text, the app features extremely powerful search and go-to features, tons of keyboard commands to help you never have to take your hands off the keyboard while you use it, a distraction-free mode that lets you focus right on your work—whatever that work may happen to be, and much much more. Sublime Text has a tabbed interface so you can have multiple documents open at the same time, and a 10,000ft view on the right so you can see where in your document you are at any time. You can select multiple rows to make simultaneous changes, customize shortcuts to suit your own needs, and even chain shortcuts together to perform complex—but fast—operations. It’s remarkably powerful.
Sublime Text is available for Windows, OS X, and Linux. It’s distributed as evaluation software (meaning it’s free to try, but there’s no time limit on how long you can use it for free) and a full license will cost you $70. A full license is per user, so you can use it on as many computers as you like once you have one. In the call for contenders thread, those of you who nominated Sublime praised its impressive feature-set, developer-friendly plug-ins and API, side-by-side file comparisons, and much more. Read all about it in the nomination thread here and here.

Notepad++

Notepad++ has been around for a long time, and many users have only ever used Notepad++ when they’re ready to upgrade from Notepad or Wordpad. It’s stil under development though, and combines the simple interface of Notepad or Wordpad with advanced features that will make writers and developers happy. Some of them include a customizable interface that you can make as minimal or toolbar-rich as you choose, a document map so you can see where you are in your work at any time, a tabbed interface so you can work in multiple documents, auto-completion and text shortening, macro recording so you can customize shortcuts, and more. You also get customizable syntax highlighting, text folding and collapsable parts of the document (to make things easier to read,) and options you can use to launch the app under certain parameters, just to make your work easier.
Notepad++ is free (free as in free speech and free beer) and available for Windows only. You can grab it as an installable app, or a portable app to run from a flash drive or cloud storage service like Dropbox. If you’re not sure exactly what you’re looking for in a text editor, it’s a good place to start, especially because it’s free. You can donate to the project though, and if you enjoy it, you should. The code is available too, so if you’d rather contribute, you can do that as well. Those of you who nominated it praised its simplicity, wealth of plug-ins for just about every type of user, and of course, its price tag. Read all about it in the nomination thread here.

Vim (and Its Iterations)

Oh boy, Vim. Designed to bring the simplicity of Vi to every platform and person who needed a configurable but not-too-heavy text editor, Vim is one banner of the Holy Text Editor Grail Wars to march under. It’s not without good reason—Vim is cross-platform, free, and while it’s aimed squarely at programmers who want an interface they can tweak to their liking and really get some work done in, you don’t have to be a programmer to get the most use out of it. Instead, you just have to take the time to configure it so it works the way you prefer. It won’t hold your hand (although its extensive help is useful for beginners), but once you remember its keyboard shortcuts and commands, download tons of user scripts to apply to it to streamline your work, and learn your way around, it quickly becomes an essential tool. It supports dozens of languages, keeps a history of your actions so you can easily repeat or undo them, supports macro recording, automatically recognizes file types, and lives—once installed—at your command line.
Vim—and most of its iterations, which include editors that add a GUI to the app so you can launch it without resorting to the command line—are free (GPL licensed). It’s available for any operating system with a command line of just about any type, and it’s charityware, meaning instead of paying for the app, the team behind it suggests you donate to children in Uganda who could use the support via the ICCF. Those of you who praised Vim noted that it takes some commitment to learn, but once you’re familiar with it, the sky’s the limit. Read more in the nomination thread here.

Atom

Calling itself a text editor “for the 21st century,” Atom earned a lot of praise in the nominations round for being a text editor designed for the needs of today’s developers. It’s built by the team at GitHub, and incorporates some of the lessons the team there learned by managing so much code on a regular basis. It’s flexible, customizable, themeable, and even though it’s relatively new, it already has a large following and tons of plugins, thanks to its open API. It operates like a native application, and even the application package is customizable so you only get the modules you need. It packs a tabbed interface, multi-paned layout, easy file browser, and easy learning curve so you can get up and running with it quickly. There’s also solid documentation to help you get started if you need it. Only downside though: Atom is currently in private beta, and you’ll have to sign up for an invite and cross your fingers if you want to give it a try.
Atom is currently OS X only (10.8+), although Windows and Linux versions are on the roadmap. It’s also free to use while it’s in beta, but when it’s finished and released, the team behind it says it’ll be “competitively priced.” Those of you who nominated it praised its customizability and available plugins, and pointed to the tool’s potential to become one of the best and most powerful text editors we’ve seen in many many years. You can read more about it in the nominations thread here.
Update 07/2015: Atom has released its first stable, 1.0 version, along with fully supported versions for Windows and Linux! You can check out the details here.

Emacs (and Its Iterations)

If you’ve used an operating system with a command line interface, you’ve had Emacs available to you. It’s been around for decades (since Richard Stallman and Guy Steele wrote it in 1976), and its the other major text editor to stand behind in the Holy Text Editor Grail Wars. It’s not the easiest tool, but it’s definitely one of the most powerful. It has a steep learning curve, but it’s always there, ready for use. It’s had a long and storied history, but the version that most people wind up using is GNU Emacs, linked above. It’s richly featured, too—Emacs can handle almost any type of text that you throw at it, handle simple documents or complex code, or be customized with startup scripts that add features or tweak the interface and shortcuts to match your project or preference. Similarly, Emacs supports macro recording, tons of shortcuts (that you’ll have to learn to get really familiar with it), and has a ton of modules created by third parties to leverage the app for completely non-programming purposes, like project planning, calendaring, news reading, and word processing. When we say it’s powerful, we’re not kidding. In large part, its power comes from the fact that anyone can play with it and mold it into something new and useful for everyone.
Emacs is completely cross platform, with versions and derivatives available for Windows, OS X, Linux, and just about every other operating system on the planet. It’s free, as in both free speech and free beer, and comes with detailed help, tutorials, and guides to help you get started using it if you’re new to using Emacs. Those of you who praised it in the call for contenders thread highlighted its flexibility and power, complete customizability, and the fact that you can play Tetris in it, which is admittedly a nice bonus. You can read all about it in its nominations thread here.

Now that you’ve seen the top five, it’s time to put them to an all-out vote to determine the Lifehacker community favorite.

What's The Best Text Editor (Poll Closed)
 
 
 
 
 
 
 
 
 
 
 
Total Votes: 16,294
Honorable mentions this week go out to TextWrangler (OS X) and UltraEdit (Windows/OS X/Linux). TextWrangler, as BBEdit’s lighter brother, works equally well as a writing tool as it does a development tool, although it’s designed to be the latter. It’s a great general-purpose text editor with an auto-saving cache that keeps all of your data and documents intact even if you don’t save them to disk between launching the application and closing it. UltraEdit on the other hand, is another crowd-favorite and sports a customizable layout, built-in FTP, find and replace that supports regular expressions, syntax highlighting, and more. Plus, it’s cross-platform. They’re both great options that just missed the top five if you want something more than the top five offers.
We really can’t say how many amazing nominees we got in the call for contenders thread this week. If you’re wondering where your favorite editor is, odds are it was nominated back in that thread, so make sure to go check it out. Remember, the top five are based on your most popular nominations from the call for contenders thread from earlier in the week. Don’t just complain about the top five, let us know what your preferred alternative is—and make your case for it—in the discussions below.