As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I have a good experience with Bash shell scripting and am now moving to Perl.
What is the best IDE for Perl 5?
Will Perl 6 kill Perl 5? Or will Perl 5 always be alive?
"Best" is, of course, a matter of taste. Rather than "best", I'll answer this as "what editor should I use for Perl if I don't already have a strong preference for an editor?" I went on a short quest to answer this question for my students.
What I recommend now is Atom. It's free, open source, available on most platforms, well maintained, well documented, easy to use, and has a rich ecosystem of plugins. It works well enough for just about any language so you don't get trapped in a language-specific IDE. And it's powerful enough without being bloated.
I also recommend you learn the basics of vi. This is the editor available on any Unix machine, and you'll need to use it when you inevitably find yourself needing to edit files on a Unix machine. It is very powerful, but also very baffling.
Atom has rendered the rest of this answer obsolete.
Padre is an IDE dedicated to Perl, however it hasn't seen a release in years.
Emacs (and all its variants) and vim (and all its variants) remain excellent, powerful, but quite baffling to anyone not used to them. Still, you should know at least the vim basics for when you inevitably find yourself needing to edit files on a Unix machine.
For Mac, there's TextMate, Aquamacs (emacs that acts like an OS X app with expected OS X hotkeys and menus) and TextWrangler.
On Windows Notepad++, Sublime Text and E Text Editor (no longer maintained) are good choices.
As for Perl 6, Perl 5 and Perl 6 are different languages with their own lives and development cycles. Neither one will kill the other.
For your first question, the best one for you is the most suitable one for you. I realise this isn't an answer as such, but for comparisons of features, see this chart.
With respect to your second question, I'm largely baffled by how close to release Perl6 is (e.g. see this blog entry). I don't know of any of my clients using Perl6, and given this and the extant documentation for Perl5, I would reach for Perl5 with little fear of being overtaken in the near future.
You can check EPIC plugin for Eclipse. Far from having all features, but you can do some debug and use Eclipse feature quite easily.
You can go safely with Perl 5. Perl 6 is a new language still being worked on and its date of release is unknown, so you shouldn't care about it for now.
Related
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
I'm setting up a test environment to test a program. This environment includes lots of text files that are given as input, and again the expected behaviour of the program is documented in another set of text files. I wanted to run the program with all the input files sequentially and compare the output generated with the reference files.
Since i have a choice over languages that i can use(shell or perl), i wanted to know what are the advantages / strengths of perl language.
Perl has at least the following advantages over just about any shell...
Portability
Works on Windows
Even on Unix the same shell command can behave very differently from system to system
A debugger
A wide selection of libraries
Better structures such as object-oriented and functional programming
Better ways to document with perldoc
Better testing facilities such as Test::More and 700+ other test libraries
Better packaging of projects for distribution
Most dynamic languages (Perl, Python, Ruby...) share these advantages.
Since Schwern listed quite some advantages, I'm only left with pointing the one weakness that continues bugging me.
Calling into other programs is a lot more complicated in Perl than in shell. There are a number of cornercases that you need to handle where shell mostly just does the right thing.
My personal rule of thumb is to use shell script when the task is mostly about calling other programs, and Perl when I'm working on data. If both are needed, I'd probably go with a shell script that calls into Perl for data munging, although it might turn out to be a full Perl script if only few external commands are issued.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 9 years ago.
I'm new to Java. I took an introductory course where I was using NetBeans, but I noticed that some of my classmates were using Eclipse. From what I've understood, Eclipse is the popular IDE among IT companies.
My question is, as a new programmer, should I stay with NetBeans or switch to Eclipse?
You forgot one more: IntelliJ.
They are all different and there is no single "best one", for example each has a feature that another doesn't.
My personal remarks:
Eclipse is probably the most open. It's very actively developed. It was the de facto standard at all 4 companies I worked for so far. Eclipse is completely free.
IntelliJ is kind of intelligent. It's really interesting to use, but not all features are available in the community edition. I evaluated it because somebody claimed that a study shows that it makes you about 10% more productive but I haven't seen the study itself. I think IntelliJ is awesome but I'm so used to Eclipse it's really hard to switch.
Unfortunately I've never even seen NetBeans.
Considering these points, Eclipse seems the safest choice, due to its popularity at my past workplaces and open and free nature. But your mileage may vary.
Just keep in mind that Eclipse/NetBeans/IntelliJ whatever are just tools. It doesn't matter whichever you choose, the most important thing is that you get coding, and code well. Use whichever makes you the most productive.
Honestly, I think both are equally prevalent. Once you learn one, it is not a huge deal to switch to the other. Those with whom I work have their own preferences, and the company does not have a preference - nor do the contracting companies that we work with. To each his own seems to be pretty standard policy. That being said, in my experience the IDE choice has sometimes been defined by the problem at hand (ease of use, different plugins for particular purposes, etc.).
Bottom line - learn both. It isn't that hard to do and you will probably use both eventually anyway.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 10 years ago.
I have a big project with many .c and .h files to navigate. What tool do you have the best experience?
I searched online and found users recommend etags, global, and ECB. I just wonder which one is best for my case so that I can stick with it. Thanks.
I think etags or ctags are easy to use. Many open source projects come with make rules to generate the databases for these type. For C++, ebrowse is better. Personally, I like to use a project bundled with emacs. If you download a 3rd party app, you will have to re-compile whenever you upgrade, and often there is more integration work. At least if you start with etags and ctags, you can find they don't have the needed features and then investigate some of the 3rd party eLISP packages.
I have made some assumptions.
You use *nix.
You use Gnu emacs.
Something else may be better with XEmacs and/or on Windows and OSx.
Apparently, global fits my criteria; but I have never used it personally. I have tried to get CEDET working and it is very difficult. It might be easier if your distro comes with a package (.deb, .rpm, etc) for something like CEDET.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
The current, official compiler for Go (http://code.google.com/p/go/) currently uses a handcrafted, arguably arcane code generator, which includes injecting custom sections into the ELF Binary.
This approach has spawned quite a few bugs related to utilities that directly read and/or write ELF Information, such as ldd, objdump or strip.
I believe that this could have been prevented by using a welltested crossplatform code generator, such as LLVM, and then just use linking facilities shipped with the OS, such as ld on Unix/Linux (or ld.exe on windows w/ MinGW), or link.exe on Windows with Visual Studio.
So why does Go use its very own code generator? Is it really just reinventing the wheel? Or are there more important reasons behind it?
For information on how to use gccgo, a more traditional compiler using the GCC back end, see Setting up and using gccgo.
The Go Language Specification is compiler agnostic. You can choose from the available compilers, write one yourself, or contribute to the LLVM Go frontend project.
For an historical perspective on the Go compiler technology, read the answer to this question: What compiler technology is used to build the compilers?
The reference compiler (5g, 6g, and 8g, collectively referred to as gc) was written by Ken Thompson based on the C compiler he wrote for the Plan 9 operating system. There are a couple reasons he did this:
He was already familiar with how his C compiler worked, so it was easier for him to adapt his existing work rather than learning an entirely new framework.
One of Go's goals is to compile fast. The gc compiler is probably faster than an LLVM-based compiler could be because it's just not doing as much work. Then again, it's also not optimizing as well.
As Peter mentioned, there's also gccgo, which uses gcc as a backend. I suspect there will eventually be other options for Go compilers, especially given that the Go libraries include a complete Go parser and a (partially complete) type checker.
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
Closed 11 years ago.
I'm looking for a lua IDE on linux. The majority of suggestions I've seen so far are windows only.
I would have liked to use one of the Eclipse plugins for lua, but both of them -- LuaEclipse and LunarEclipse -- haven't been updated in nearly two years, and don't seem to work with Eclipse 3.5. If you have had any luck in getting lua working in Eclipse, I would be very interested.
From this question you could try the beta site for LuaEclipse and see if it works.
LuaEclipse 1.2 and earlier does not work with newer Eclipses.
LuaEclipse 1.3 "beta" definitely does work with Eclipse 3.5 on Linux (at least on my Ubuntu box).
Grab it here: http://luaeclipse.luaforge.net/preview/update-site
Also you may try LuaEclipse 2.0 beta (less stable): http://github.com/KINFOO/LuaEclipse/#readme
KDevelop also has some support for Lua (at least syntax highligting, which is enough in many cases).
Note also, that if you do not want an IDE, but merely an editor, you may use kate, gedit, SciTE and many other programmer's editors, available for Linux. Most of them support Lua out of the box (at least for syntax highlighting, some even have some rudimentary code completion).
Not to mention vim and emacs. :-)
You might investigate SciTE. Its available for both Windows and Linux, and is based on the Scintilla programmer's text editor component. It also supports scripting the editor in Lua, and can be used to debug Lua scripts.
I use gedit with some plugins. That gives me syntax highlighting. I have a console in another window.
It would help to know what particular functionalities you need from your IDE, besides that.