18

I am looking to re-learn web development techniques for fun. It has been years since I have dealt with web development and want to get back into it some.

Requirements:

  • Linux compatible (GNOME-based, essentially Ubuntu)
  • Netbook friendly (easy on resources and a small screen)
  • Multi-language support as I will likely be using HTML5, JavaScript, jQuery, Perl, PHP, Python, etc. The main goal here is to learn.
  • Focus is on web development

Features I would like:

  • Auto-indent and code assist (again, it's about learning)
  • Easy to use but not WYSIWYG
  • Built in documentation and/or community support

NetBeans, Eclipse, etc. is out mainly due to resources and how much wasted space they take up on the screen.

Not sure if this matters, but I use a LAMP install for my server with PHP installed already. I would like to do more with Perl, Python and other languages.

I have searched around a bit but nothing seems to fit my needs. I am open to any system, including web applications, that will meet the requirements.

Note: The question about "Cross platform JS/PHP editor software with FTP support and code hinting" is similar but that one does not answer my needs at all. I need something lightweight (#1 answer, NetBeans is out, another answer Eclipse was eliminated as well). I need something Free (PHP Storm, #2 is out). The only solution that would come close to fitting my needs would be geany and it is just a text editor with plug ins. I am curious if there is possibly something ..... more.

6

Jan 2017 Update Sadly, Nitrous.io is no more. There is no longer a company and infrastructure behind it. In 2016 one of the founders mentioned a possible open source release of their platform.

Nitrous.io

Minimal usage is free. More serious usage starts at around $20/month.

There is a point system. If you do certain things, you get more points. Points are not expended, but are used when a virtual dev server is created and released when it is terminated. Some points are free, and you can get to enough points to have a free box, but the free boxes are reset periodically. This is obviously a free trial gimmick, but not a bad one. For $20/month you can have ~4-5 development boxes if you are reasonable on resources. Unbooted boxes count against resources. Deleting or Initializing boxes takes less than 30 seconds, and the choice of locations includes US East, US West, Europe, 2 in Asia, South America and Australia.

I have been using Nitrous.io for developing a client's project in MeteorJS now for a few weeks. It allows me to develop and test from any computer in any room of the house.

How it meets your requirements.

Linux compatible (Gnome based, essentially Ubuntu)

Although it does not require Gnome, it is web based and does not discriminate against Linux.

Netbook Friendly (Easy on resources, small screen)

Nitrous.io is web based, you need a web browser and internet connection to use it.

It will not work offline, as your code is being edited and executed on Nitrous's servers.

Multi-Language support as I will likely be using HTML5, JS, jQuery, Perl, PHP, > Python etc. The main goal here is to learn.

It supports container-based web app development in PHP, Python/Django, NodeJS (including Mongo), Ruby, and Go. Obviously you can also edit HTML, JS, etc.

Most environments have common languages like Python.

Focus is on web development

Yes. You can preview your site by running it in the console and clicking a preview menu to be taken to an SSL secured tunnel to your site.

Features I would like:

Auto-Indent and code assist (Again, it's about learning)

Auto-Indent exists. It works well for Python.

But in JavaScript it has a nasty habit of pre-adding spaces and messing up code indentation.

Code assist, like go-to-definition seemed better on Cloud9's hosted editor c9.io

You can link Cloud 9 to Nitrous if you are willing to pay for both....

Easy to use but not WYSIWYG

Very easy. You can add about 50 different packages to your dev environment from a pull down menu. If something you need is not on there though, you don't have root access, and need to install it in user mode. So far that hasn't been a problem. For example, to install Beautiful Soup in python within a user account you can pip install --user bs4

With Nitrous.io, you get a decent web based IDE. It can go full screen either for the console or the editor. The editor has language-specific behavior.

You can also add a key to ~/.ssh/authorized_keys, and login with ssh from your netbook. You can run commands, or say, emacs that way. You could use scp to move files in and out, or use git, curl or wget. There is also a way to deposit files via the web.

Built in documentation and/or community support

Docs are OK. Design is natural and it was obvious what everything did, so I did not refer to the docs much.

Has forums. Good, fast, friendly support team, too.

Problems?

One Friday evening my Nitrous.io virtual server was stuck in "booting-not ready" but support had it fixed in well under an hour. For a Friday, I was impressed.

  • 1
    It has been 20 months since I asked this question and I am still actively using Nitrous.io. If I could give you another upvote I would. Thank you. – Paul Muir Oct 6 '15 at 17:15
10

If you're willing to put a bit of work into the setup and handle a learning curve, Vim might be an option. It has autocomplete plugins for many languages, including Python, JavaScript, etc. (disclaimer: I haven't actually tried most of them, but I know they exist). There's even a blog post for using Vim as a Python IDE, including features like debugging.

Vim isn't the most intuitive editor out there, so there'll be a learning curve just to get started — even before installing the plugins. That said, it's a useful editor to know, in case you ever need to SSH into a remote machine and edit things through terminal.

I use Vim all the time for editing files, and while I don't take advantage of the autocomplete or run functionality you'd want in an IDE, I do use its general editing, syntax highlighting, file management and plugin functionality all the time. I usually use it when I don't feel like dealing with the "heavyweight" systems of an IDE, and in that sense I can strongly recommend it.

Pros (that I can speak to first-hand)

  • Lightweight
  • Will work just fine on a small screen
  • Syntax highlighting
  • GUI mode or through terminal (the latter is especially useful for "light" touches)
  • Lots of features: search/replace with regular expressions, select/edit by column, key macros, etc.
  • Vibrant community to help you
    • Lots of online documentation
    • On IRC, I know from experience that #vim on freenode is extremely helpful and newbie-friendly.
  • Can easily shell out commands, which means you can start services and such without leaving the IDE (could be useful for web application development)
  • Available through standard packages for install, if it's not already on your machine
  • Portable
  • Usable through SSH connections in the terminal (useful for when you deploy your web application, e.g. to AWS)

Pros (that I haven't personally taken advantage of):

  • Lots of plugins for autocomplete. I haven't tried them myself, but from googling:

Cons:

  • Learning curve just to save a "hello world" file, let alone access advanced editing techniques

I should also add that Emacs will probably also fit the bill, and have roughly the same pros and cons. But I happen not to be familiar with it, so I can't speak to its pros/cons specifically. My very rough sense is that Emacs used to be more popular a couple of decades ago, and Vim is now more popular — but Emacs is still very widely used, so that shouldn't be a major factor.

  • For IDE-like autocompletion in Vim, I particularly recommend the YouCompleteMe plugin. YCM hooks into and exposes Vim's native completion engine, so you can easily add additional plugins such as TernJS for JavaScript/Node.js and eclim for Java/Ruby/anything else that works with Eclipse. It also will surface UltiSnips snippets out-of-the-box. More info about YCM here: github.com/Valloric/YouCompleteMe – user456584 Mar 9 '14 at 20:24
  • Aaaaaaargh!!!! in the 21st century???!!! – Mawg Aug 30 '18 at 9:50
  • 1
    @Mawg Yes. Vim is awesome. (: – SilverWolf - Reinstate Monica Apr 22 at 22:11
  • It wasn't awesome even in 1991 – Mawg Apr 23 at 5:38
  • awe. - just about nails it ;-) – Mawg Apr 29 at 6:52
6

Easy to use is a requirement, but it's very subjective. For the purposes of this question, I will presume that easy to use is influenced heavily by the learning curve. I cannot go past brackets as a tool that would meet all your requirements.

Brackets has some very nice features which include the following:

  • Using a hot key to see exactly what CSS impacts the current tag in HTML that you're editing
  • Live code editing, as you change the code, the changes are pushed to your browser
  • Available on Windows, Linux, and Mac OS X
  • Active development (using sprints, each sprint is a release) so continual improvement
  • JavaScript debugging
  • Extensions available or you can write your own for your preferred language (a quick search showed extensions for PHP, Python, etc).

I should state that I'm a vi/Vim fan. I grew up on it prior to GUIs existing, so I'm very efficient and can type very fast. However, I find brackets to be far better in some ways that vi/Vim. Personally I tend to switch between the two (depends on what I'm doing).

I should also note that brackets is in alpha right now, but I've not found any problems that have stopped me from working on it. I've used it on a MacBook 5,1 with 2 GB of RAM running Ubuntu and Elementary OS and had no problems. It handles a small screen fine and is very light on resources.

A snapshot of the download page states the following requirements (you've stated netbook, but without specifications, so I cannot presume):

Mac OS X

  • Multicore Intel processor
  • Mac OS X v10.6, v10.7 or v10.8
  • 256 MB of RAM (2 GB of RAM recommended for live development) 200 MB of available hard-disk space for installation
  • 1280x800 display with 16-bit video card

Windows

  • Intel® Pentium® 4 or AMD Athlon® 64 processor
  • Windows XP, Vista, 7 or 8
  • 256 MB of RAM (2 GB of RAM recommended for live development)
  • 200 MB of available hard-disk space for installation
  • 1280x800 display with 16-bit video card

I should note that my late 2008 MacBook runs it fine in a window, so I think the 1280x800 is really just a guide. The MacBook I have is a 2.4 GHz duel core P8600 and the graphics card is a Nvidia C90 (GeForce 9400M), and it runs very fast for me. I have installed an SSD to speed bootup time and time to load applications.

BTW, if you're willing to invest the time then I suggest vi/Vim, however be aware that it will take a long time for you to be proficient and typing ability/speed will impact your performance initially.

  • 1
    +1 for the comment about Vi/Vim -- its a crucial dev "life skill" to be able to use Vim (via terminal) regardless of what GUI based editor or IDE you choose to use otherwise. The Vim learning curve will pay itself back the first time you need to do something critical. Ie, when X crashes, via SSH, etc. And to boot, its on just about every *nix install out there by default, so even working on ancient servers or old versions seems more in reach familiar. – dhaupin Jan 27 '16 at 15:18
1

I'm a big fan of Geany. Open Source, cross platform, has configurable build/execute/compile options, syntax highlighting, tag completion, hinting and auto-complete for many many languages, and much much more.

0

You go with Emacs.

  1. It has its own Git integration.
  2. It has modes for every programming language around the block.
  3. You can manage projects.
  4. Check your code as you type it.
  5. It has code completion.
  6. And LSP support.
0

Atom

A hackable text editor for the 21st Century

Atom is a free-of-cost and open-source text editor with IDE-like features. It has become quite popular lately.

Interestingly, it is a cross-platform (macOS, Windows, & Linux) desktop app built using web technologies, including JavaScript-related technologies.

Atom comes with syntax support for at least C/C++, C#, Clojure, COBOL, CSS, CoffeeScript, GitHub Flavored Markdown, Go, Git, HTML, JavaScript, Java, JSON, Julia, Less, Make, Mustache, Objective-C, PHP, Perl, Property List (Apple), Python, Ruby on Rails, Ruby, Sass, Shell script, Scala, SQL, TOML, XML, YAML. Atom is built to be customized, extended, and hacked-on, so I expect you will find add-ons for even more languages.

See the Wikipedia page.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.