Mozilla x (Perl + Python) = New IDE
WhyteRabbyt
writes: "ActiveState have announced
Komodo, an open-source IDE for Perl, Python and Javascript. The
application framework is to be based on Mozilla. The press release is here."
tenchiken contributed a bit more
information about the project, writing: "More information is here
, including the announcement a few days ago that they would be writing
python and perl bindings to XPCOM. Like Perl? How 'bout client side perl!" No, it's not out yet -- but it's cool to see Mozilla as the engine behind yet another project.
If you've got a project due, you want to use the tools that help you complete the project in the shortest amount of time. I like IDEs cause they help you do a lot of the little things that make coding go quicker - auto indenting, parens matching, debugging, etc.
Granted, Visual Studio may not be the best tool to learn C++, for example. But it would be a major pain in the ass to write a decent windoze app with notepad.
Of course, there is a compromise between a lightweight text editor and an IDE -- its called Emacs. Never leave home without it.
Who's side are they on?
Money__, I think they're on your side.
I'm not surprised that Komodo uses parts of Mozilla this way. It's an obvious and practical job that Mozilla is well suited for.
In the next six months, I would be stunned if more programs don't use parts of Mozilla in exactly the way that Komodo does -- both in public and for private projects -- from custom document archiving, information kiosks, and no doubt in the 'Internet Appliances' we're seeing more and more of.
I don't expect that most of these new programs will be anything like web browsers. Mozilla -- as the mother of all monster widget sets -- is well suited to to be part of just about any program.
Mozilla has the ability to turn into a pervasive toolkit, as pervasive as Perl but even more visible to the user.
I pointed this out to a Mac user once, and they responded flatly "Well, I like IE".
Not getting the point, I said "Well, you could use IE as your browser, but parts of Mozilla will show up in more programs...it's the basis of many other programs."
Mac user: Blink. Blink. Silence.
On a different note, the only thing that concerns me with Mozilla are security problems with XML, though I'd expect XML engines to have problems once people push it a bit more. The security problems that I'm not aware of, similar to the ability to get postscript printers to do odd things -- like serve up web pages.
A firewall can not protect you from yourself. Turn off what you do not need. Do not use the firewall to do your work.
It was (and remains) an explicit goal of XPCOM to be compatible with COM on Windows. Of course, there are no open source COM implementations on other platforms, so Mozilla.org had no choice but either to roll their own COM clone, or else go with some CORBA solution. Given that XPCOM is used for very frequently accessed components (e.g. file access APIs, graphics calls), I think it was the right decision to avoid CORBA.
Actually the original poster was wrong. Client-side scripting, including DOM access, IS one of the goals of this project; you can read about it in netscape.public.mozilla.xpcom. Basically Activestate are going to go through the code and rip out all the Javascript-specific assumptions. It's going to rock!
The truth is, that they have to do client-side scripting to make this really useful, because building an application in Mozilla basically depends on the client-side scripting functionality.
MS was driven to support multiple scripting engines in IE3 because 1) they HAD to support Javascript (and still do) because everyone uses it and 2) they wanted to provide an MS-owned alternative, VBScript, that they could try to push people to use and get locked into.
It doesn't, of course. But the problem there is not the concept of the IDE.
What you are missing is the ease with which a good IDE will do much of that stuff. Visual C++ will tell you the parameter info of a function in a tooltip if you just position the mouse over it. It will put the same tooltip info up as you type parameters. Without any user interaction. It will give you a list of member functions to selection from if you type in a class instance and the '.' or '->'. Again, without any user interaction.
Yes, you can get the same information with VIM. But you can't get it as easily, or as transparently.
No, IDEs aren't perfect. But on (for example) a C/C++ project under Windows, IDEs clearly beat any editor I've ever found.
The cake is a pie
I know this is sortof offtopic, but i have a question, i program in perl for a living and currently i am using xemacs as my editor, but, honestly i really dont like (x)emacs, but i do like some features.
The features i like are the auto tab placement. You hit tab and it places your bracket or line in the proper position in line. The 'expression parenthesis highlighting'. You place your cursor on a left or right token and it will light up the whole expression in red if there are no matching right or left tokens or green if there is a matching one.
Can someone please help, i guess i should tell you i am running linux, so that eliminates windows software (obviously).
cristiana
--
A mind is a terrible thing to taste.
"A mind is a terrible thing to taste."
People have been using IDE's as a reason for not learning proper software design. There is no excuse for not knowing what function is required and what files need to include it prior to writing. It seems to me that an IDE is just another way to DUMB down the launguages to such a point as to no require people to actually know how to program. Programming is more than typing in the functions, its planning for how everything will work together in advance, not kludging your way along. As it stands IDE's do not provide a software DESIGN tool, and therefore are a restraint to how well a piece of software ends up being produced. I can think of thousands of software productions which had a great idea, but failed to design a piece of software which did its necissary function and did so in a way which was the result of a proper software design process. IDE's make it too easy to lameify coding to the point where it has no plan, except the final product, which is not enough. Don't piss me off about this, I'm planning a huge research study on it...
Spring is here. Don't believe me, look outside!
This objection to IDEs is a popular one, and there's some truth to it: how many C++ developers recoil at the thought of poorly done, MsgBox-laden code thrown together by some guy who just bought himself a copy of Visual Basic and thinks he's a programmer now? I think this image leads us to condemn IDEs as whole. But really, IDEs are not the problem. The problem is that, no matter how simple the tool, programming problems still require some complexity of thought that no RAD tool can replace. The developer's mind still has to figure out what needs to be done and then figure out how to do it, and that's seldom a trivial task.
For some tasks, IDEs make life simpler. For others, they just get in the way of productivity. In both cases, it's more a question of "What's the right tool for this particular job?"
As it stands IDE's do not provide a software DESIGN tool, and therefore are a restraint to how well a piece of software ends up being produced.
Here I agree with you. In many cases, people use some flashy IDE to build a mock-up, which quickly gets turned into the real thing before anyone has had time to think about really making the program useful. But I haven't seen a CLI text editor that's a good software design tool, either. My favorite software design tool is an 8.5x11" (or A4 in a pinch) piece of paper and an erasable pen. To each his own.
IDE's make it too easy to lameify coding to the point where it has no plan, except the final product, which is not enough.
I agree that this is an area of IDEs that needs to improve: they still generate horrendous code! I try to find ones that make "less horrendous code," or at least what my opinion of less horrendous code is.
I'd be interested to see the results of that study--post 'em on /. when you're done!
unDees
"I call a baby goat a 'goatse.'" -- my non-Internet-savvy 6-year-old stepdaughter
Do not assume I like IE just because I hate Mozilla. They all suck my ass and I never use either one. The only difference is that /.ers seem to like Mozilla just because it's Free (oh, sorry, "Open Source"). Free or not, it's still three orders of magnitude too large and doesn't even build on any platform other than those AOL finds commercially attractive. I expect my OS to be up for months or years. I expect my X server to up for months or years. I expect my databases to be up for months or years. Why is it that I should accept browsers that can't stay up more than minutes? And yes, last time I checked (four years ago) this applied to IE as well as Netscape, and it certainly applies to Mozilla. That is, it applies on i386-pc-linux. I can't even get past the Profile Creator on sparc-sun-linux. Good code is portable code. Mozilla is not good code.
Wouldn't know - I don't have windoze and I don't use IE. As far as I'm concerned Mozilla doesn't have XUL either. All it has is a profile manager that ignores all input, which I could hack up in 5 minutes, and a 400MB codebase that hasn't compiled in weeks.
Good things IDEs brought us:
- Syntax Highlighting!
- Statement completion, expanding arguments to calls as you type (dereffing against all include files, giving a list of structure/class members (basically ctrl+space in m$ words)
- Integrated debugger: Without that many starting programmers might still think printf() is the only way of debugging anything.
- Context sensitive online help
- Source control for the masses
Bad things IDEs brought us: Wizards. These hurt skills. (Imagine a visual studio adapt trying to set-up a motif application using only vi and gcc...)Common sense is not so common - Voltaire
I note your email domain (netscape.net)
t .com
netscape.net:netscape.com::hotmail.com:microsof
i.e. it's a webmail service. He's not speaking as a Netscape employee just as a hotmail.com address dosn't speak for Microsoft.
Anomalous: inconsistent with or deviating from what is usual, normal, or expected
Anomalous: deviating from what is usual, normal, or expected
Canard: a false or unfounded repor
As someone who has fielded around 100,000 lines of Perl, among the many "Real Soon Now" options for cross-platform web software development, I side with the strategy exemplified by Tibet 's approach to cross-browser compatiblity.
The difficulty of writing an application that will run on a variety of web browsers is already a primary challenge of software development. Adding more languages to the mix will only make things worse. Adding the relatively static Java to the dynamic Self-like Javascript was one of the biggest mistakes in the short history of the web (one for which Steve Jobs must accept a lot of the blame, but that is another story). By biasing toward installed language multiplicity rather than downloaded compatability-layer consistency, Komodo is in danger of becoming another, albiet lesser, mistake. IE isn't going to relinquish its dominance for a long time to come, not even with the US Federal Goverment fighting it.
IMNSHO, on the strength of environments like Tibet, demand for programmers of Javascript will beat Java "real soon now".
Watch this site for developments.
Seastead this.
5) Hand them a book on Java and tell them that intentionally obfuscating their code is grounds for dismissal.
.sig: Now legally binding!
I was of the same opinion as you until just recently when I started using VA Java full time...
Although a plain ol' text editor *may* be better for learning a language as you mentioned, once you're familiar with it a good IDE can really speed up development, and cut down on a number of plain old stupid errors as you're coding. This is especially true if versioning and checkin/checkout type tools are built in.
Besides, IMHO there are some things which are *much* nicer in an IDE than at the CLI, such as debugging (especially things like UI debugging).
But hey, to each their own, go with what works best for you!
X-ACTO
-- @rjamestaylor on Ello
And all will be revealed. Well, that's not true. Some will be revealed. More later.
...And a powerfull IDE using mozilla would have an easy time making killer features like line by line code step-through and variable tracking (because the IDE has the same code as the target platform).
Add to this the fact that Mozilla is going to run on everything from Linux to Mac to Windows to Name your favorite OS and its easy to see how much easier our lives are going to be when coding crossplatform apps.
On security, the Moz team will either make a sandbox or nobody is going to use Mozilla so I'm pretty sure they will think things out with great care.
(Posted using the latest nightly of Mozilla)
Mmmmmm.... Well this is my sig.
If you're using pico for programming, then it's no wonder you'd like a formal IDE.
You should invest in learning vim, emacs, jed, or some other programming friendly editor.
Are you getting the hint of who's to blame here?
You could help too if you weren't so busy wallowing in your own crapulence.
The amusing thing about all this is ActiveState are probably funding this venture partly with cash that Microsoft gave them to make Perl work better on Win32. I can see the headlines now - "Microsoft finances Mozilla development!"
The whole point of my argument is, that Emacs is not an IDE, neither is bash, or grep, or sawmill.
But those and a lot more tools together *form* an IDE, which you have right in front of you already if you have those tools installed.
O'Reilly, which has a partnership with ActiveState, has a very interesting piece up about this IDE.
The O'Reilly has some details not found in the other two links, especially concerning the features and protocols supported in the IDE.
Eternal vigilance only works if you look in every direction.
Emacs can do this. Currently there is support for editing C, C++, elisp, Perl, Tcl, Python, Scheme, Common Lisp, ML, Haskell, Ada, Fortran, TeX, awk, Java, and many more languages. It also supports gdb and ddd for debugging, CVS or RCS for version management. It can run make (or some other build system) and parse error output well enough to let you easily jump to the error. It has support for ctags, etags and cscope for searching for definitions in a number of languages, and there is also the speedbar for browsing source files. The OO-browser is a Smalltalk-like class browser for (X)Emacs. Integration with Common Lisp systems is excellent. Etc. :) Unless you don't have enough memory or fast enough CPU, in which case something else might be a better idea...
I could go on, but I think I've made my point, namely that whatever you need, Emacs either does it or can be made to do it.
I didn't mean to imply that I thought he worked for Netscape. I just figured he was firmly ensconced in the Netscape camp. Good catch, though; I'm glad that's clarified.
-- @rjamestaylor on Ello
There is a project under a GPL licence with which you can build RAD GUI applications for Python that will run on win32 and Linux... It is currently quite alpha, but you can already do some nifty things with it... It may even be competition for Linux Delphi... -ponder- Go HERE .
Yes I have used an IDE. I used Borland/Turbo C in the old days, and IBM VisualAge for C++ later on. Then I found GNU/Linux.
;)
.c, .h and .f files, I run:
As part of my job I had to port a large program to NT, so I decided to give VisualStudio a go, after all, I like IDEs very much (I do prefer the X+sawmill+Emacs+make+bash+... IDE, but the others were nice at the time too). I was fairly surprised that they actually had regexp search in, but the joy ended the second I needed to pipe input from one search into another, or just search all files matching a specific pattern... There are no pipes in the GUI unfortunately.
I agree that you don't want to do repetitive typing yourself if it can be avoided. If you could click a button (or preferably, as you already have your hands on the keyboard, just press a specific key) to perform some operation, that is as a starting poing a ``good thing''. This is actually what Emacs tries to do, and that's why you use C-s and C-r for searching, and "C-c C-v i" (longer sequence for less frequently required function) for inserting new files in version control. I don't agree that Emacs is entirely nice here, I just haven't found a better editor for code yet (yes, I use vi for config files and kernel code, but besides that it's emacs all the way).
However (!) If I did find a better editor, it would plug right into my existing framework of window manager, bash, grep, gazillions of other tools. You can't hot-plug the editor in VS.
Anyway, I did really try, believe me, I'm an open minded person, but Visual Studio is in my oppinion a *very* poor substutitute for a *the*real* IDE, for someone who knows various IDEs generally and *the*real* IDE specifically.
I don't know about sticky breakpoints, I rarely debug code (that way). I'd be surprised if GUD didn't supply such a feature (GUD is actually a little fun because while being the Grand Unified Debugger, in Danish it is also the word for God, so, I found God when searching for a debugger
The point about repetitive work I think needs another angle of view. Yes, we want to avoid it, and *no* you definitely do not want to type the same stuff over and over again in a shell.
Now, to rename the define F1OO to BAR1, F200 to BAR2 in all
find . -name '*.[chf]' | xargs perl -pie 's/F(\d)OO/BAR$1/'
AND THAT IS IT ! If your IDE doesn't have a button that says ``replace text matching some pattern with another pattern, in all files matching some pattern'', then *you* will have to do your repetitive work clicking buttons whil I have moved on to the next problem a long while ago.
Sure, you need to grasp regular expressions. But if you want to get real work done in any environment (now that even VS is catching on), you might as well do that anyway. And then you need to grasp pipes. Well, start by thinking of it as, say, a pipe.
Not meaning to be sarchastical (if I could only spell that), but I think most of the arguments in this discussion are based on people seeing the problem from some very narrow viewpoint. I may well be doing the same, but for now I'm convinced that I'm not, and looking forward to being proved wrong.
Have you tried KDevelop? It's a little basic still, but it organizes your files, does your makefiles for you, and color-codes your code. Its designed to work with gcc/g++. It also supports qt, so you have cross-platform support for GUI's. Runs under KDE or Gnome.
No, Thursday's out. How about never - is never good for you?
Visual Perl and Visual Python will be part of Visual Studio 7. Interesting because development tools are one of the good things MS makes. It would be interesting to see the color coding, drop-down object members, tree views of classes and functions, online help, and debugging applied to Perl. I wonder who will do the better job.
No, Thursday's out. How about never - is never good for you?
Try Visual Slickedit. It has a built in macro language (SlickC) and support for loads of languages. Yes, it's not Free software, but I think £200 is about right for a good IDE. It's the only IDE I know of that correctly syntax highlights languages inside HTML.
;-) I don't want to have to update a make file because I changed 2 dozen files out of 2 thousand. I don't want to have remember which files are checked in and out, that information should be visible to me; I want to concentrate on coding.
I like IDEs because they are a labour-saving device. How many ppl here use a machine to wash your clothes? (no, Mum does not count
Yes, there is the argument that hand crafted beats machine tooled, especially in software, but I don't want to spend time updating or fixing builds and headers when I don't have to.
----- Documentation is worth it just to be able to answer all your mail with 'RTFM' - Alan Cox.
I don't get why an end-user is involved in the equation: the end user just fires up a program to work with. He/she couldn't care less how that program will perform it's work, just that the work is DONE.
Btw: IE is a com object for years. It comes with several interfaces really, so you can just bind to the object and create your own editor with it within a few lines of code. (Homesite does that for example).
The funny thing you mention is 'DOS world'. that world is dead for ages, pal. Also: the world isn't about colliding zillion tiny programs on a command line with pipes, but dynamic loading and linking to binary libs, loading and linking to binary objects. THAT's the real deal. And unix is still far far away from that.
--
Never underestimate the relief of true separation of Religion and State.
Before you flame me, let me state that I am a certified idiot.
I have never heard "lightweight" and "Emacs" in the same sentence.
Dave
Barclay family motto:
Aut agere aut mori.
(Either action or death.)
dude, what's with the hostility? I thought stuff that was compiled ran faster, but I don't know a lot about programming which is why I asked the question. easy on the flames.
I agree that cross-broswer and cross-platform compatibility (at least in elegantly degraded modes) is crucial to a successful public Internet publication/application. But, don't forget there are occasions to use Internet technologies in the context of a controlled envirnoment. Think of an extended Intranet. On an Intranet, usually within an organization, the tools can be dictated: to use this Intranet you must use XXXX Browser on XXXX OS.
For a distributed internation organization, using a APN over the Internet enables cheap networking. Add web browser applications in place of legacy charater-mode application and you have a robust, cheap client-server architecture to deploy corporate applications. On such a system, the employer can dictate the OS and browser to be used.
It is such a dual-setting that I'm working in. We have a publically accessible web application (browser/OS nuetral) and a VPN-deployed application for an extended Intranet (on which we specify IE 5.01 and Windows 98).
So, I don't know about bulls, but maybe this explains is why human males have those "useless" things...
-- @rjamestaylor on Ello
There needs to be a cool, easy to use IDE for Python (and similar languages) that lets novice programmers do interesting things and learn how to program. We had BASIC. You typed stuff, it did it. You could make games, and do graphics. There needs to be an environment like that for budding programmers. This project looks like it might deliver.
At least these problems can be remedied in this case. I can't imagine adding you're favourite vi keybindings is going to need a CS degree. It's already xp and the language, I'm sure, can be altered or added to.
Many IDE's aren't even configurable enough to even allow the setting of complicated keybindings. Trying to force a non-modal editor to behave modal like vi would be a huge pain. There's also a lot more I like about my editor than keybindings. Trying to emulate my favorite editor in some other editor will always be a game of catch-up (much like GUI skins that try to emulate the native look and feel).
This sounds like an interesting point, could you explain a little further. Do you mean Delphi-like coordinates on forms vs. Java Swing layout components?
Yes, essentially. Java isn't unique in supporting layout management though. There are numerous problems with not using layout managers. The fact that most GUI builders don't let you use a layout manager makes them useless for real applications.
Again, this isn't a problem that has to exist. It's possible to make a GUI builder that supports layout management. Most of the existing GUI builders don't though. And the fact that most IDE's are closed (ie: don't let you pick and choose your components) means that you've got to find an IDE that not only has a proper GUI builder, but also has an editor you like, works on all of the platforms you support, supports all of the languages you use, and can deal with a huge number of source files. Combine that with the fact that each developer has their own favorite editor, and you've got a serious problem.
Chompz ranted: ... kludging your way along...
;^). Tools don't make people idiots, they were idiots before they picked up the tools.
>Programming is more than
HAHAHAHAHAHAHAHAHAHAHAHAHAHA! You must work for a software design house, or engineering firm, and probably not a particularly profitable one.
Here's a few cars for your clue train:
1) If it works now, and it needs to work now, it doesn't matter if it's elegant. How many $$$ (or lives, in some industries) need to be wasted while you plan your properly designed code? As far as your management is concerned, the process as a whole needs to work, and don't bother us with your intellectual pipe dreams.
2) The guy who can come in and hack the bug out of existence before the company haemorraghes its entire cashflow is the guy who gets the bonus. The guys writing the bonus checks don't read the code, so it doesn't matter how well designed it is as long as it gets the job done.
3) No program that is truly useful in the wired economy lives by itself. It is dependent on opsystem, web server, the users, the programs that feed its inputs and outputs. If you want the best possible program, you need to be intimately familiar with the internals of all the related programs - which is hardly practical. You're going to have to settle for what works, in the so-called "real world".
4) Saying that IDEs should not be used because they make it easy to produce bad code is like saying that the Internet should not be used because it lets morons post bad pr0n (wait, maybe that's true
5) Companies buy lots of stuff, and they hire people to make it interoperate. The stuff is capital expenditure that can be amortized, depreciated, etc. The people are a monthly drain on the company coffers - operating budget - and thus it's cheaper for a corporation to run bad code on awesome hardware than good code on crappy hardware. Why do you think NT is still selling? Why do you think W2K is selling? Pretend you are the smiling man for a moment and look at the economics of it.
Only free, open source software can save us from this situation - software that is written and/or improved from non-commercial motives. We're still at least 5 years away from an OSS world, though.
I don't use IDEs because I work on too many platforms simultaneously for an IDE to be useful to me - but if I had an IDE that could make code simultaneously for the mac, VMS, OS/390, Solaris, Linux, Win98, and WinNt you better believe I'd use it - even though the output from such an IDE would probably be suboptimal on most if not all of those platforms.
>Don't piss me off about this, I'm planning a huge research study on it..
"Be still my beating heart."
--Charlie
As for other projects in beta, well, they at least work equally well or poorly on different platforms. Mozilla is so nonportable that it won't even build on most of the platforms I use. And there are a lot of different meanings for "beta." For example, GIMP 1.1 is beta. I've used versions from 1.1.6 through 1.1.20 and I can say that not one has failed to compile for me, and not one has so thoroughly failed to function. Repeatable crashes that give you a nice backtrace versus a monstrosity of random failures each of which requires half a gig of memory and 12 hours just to find. It wouldn't even be so bad if I could get past their damn profile manager. But all it does is hang. No crash, no dump, no error messages. Just a hang. If it did that on every platform, it would have been fixed. But it's on sparc-sun-linux, which won't earn AOL a dime and they know it. So nobody cares.
I'll stick to lynx. It works, and best of all it actually fits in memory. If it breaks, I can probably fix it too. Amazing how much easier it is when there's no bloat.
It doesn't, of course. But the problem there is not the concept of the IDE.
I've already said I have nothing against IDE's per se. It's just that none of the existing ones meet my requirements. Multi-platform and multi-lnguage support are some of my requirements.
What you are missing is the ease with which a good IDE will do much of that stuff. Visual C++ will tell you the parameter info of a function in a tooltip if you just position the mouse over it. It will put the same tooltip info up as you type parameters. Without any user interaction. It will give you a list of member functions to selection from if you type in a class instance and the '.' or '->'. Again, without any user interaction.
Yes, you can get the same information with VIM. But you can't get it as easily, or as transparently.
This isn't a feature that requires an IDE. It could be implemented just as well in a stand-alone text editor. And while VIM doesn't support this particular feature, it does support loads of other features that Visual C++'s editor doesn't support. And what if I work with Java, or Python, or some other programming language? What if I need to look up a UNIX-specific function's signature? Will any of these features work? I don't do much Win32-specific C++ programming, so I fear most of VC++'s features will be of little use to me.
And the non-editting features of Visual C++ (project management, build management) simply won't work with my project, a minor feature like tooltips aren't particularly compelling, especially since I can use ctags to practically the same result, albeit in a slightly less "transparent" way... ^]yy^Tp
The recent growth of xpCOM is a worry.
A bit of history first: Netscape developed xpCOM recently, as a componentisation protocol. It is a ripoff of MS COM, with a few names changed and is incompatible with MS COM. Netscape did this just to annoy Microsoft.
Now, linux users are all catching on to componentisation, which has been around for years --- apparently only because it doesn't have MS's name on it now.
There has been an awful lot of COM development done, and there will soon be an awful lot of CORBA and xpCOM.
Somebody should sit down and try and reconcile the three, so that we can have components which are portable everywhere and connectable everywhere - instead of only with that sector of the programming world that used the same componentisation protocol.
Hear, hear. From your comments, you could as easily be working next to me...except that we don't really have "projects", but a library of code which is shared by many product and service lines. Strict separation between these would be suicide.
Oh, and there's also the minor fact - mainly for consultants - that different companies use different IDEs, and it is harder to transition out of an IDE one has learned than from command line tools. In fact, if one insists on using command line tools, one can usually get away with it no matter what environment or language one winds up working with, thus avoiding tool relearning (which cuts into personal productivity, and thus into how fast one can get raises).
As for debugging, printing checkpoint acknowledgements onto the command line or, where there is a GUI, into some reserved box on the GUI tends to work better than IDE checks - especially where one has to compile the code for use on a customer's machine and debug it on the customer's machine, in those cases where the customer's environment activated the bug.
GUI editors have another problem you did not mention. Even if one wishes to use coordinates, rather than geometry/layout, I can usually get better coordinates by measuring the coordinates and typing them in than by trying to match mouse coordinates exactly. For a number of the GUIs I have worked on, it turns out there is a mathematical model for the coordinates of widget placement. The model depends on the GUI, but the important thing is that it is there, and once it is deduced, it can be used to determine the coordinates of new widgets without having to place them and see them first. (It's still a good practice to review them visually once they're in place, if only to make sure the model doesn't need tweaking. But if the coordinates are correct, then nothing further needs to be done: what the reviewers are seeing *is* the actual GUI in implementation, not a rough sketch that then needs to be coded and compared with the model...which makes implementing GUIs significantly faster.)
The make language is miserably easy, but it isn't documented much (and C manuals certainly don't discuss it).
When you are learning C, you will get by fine with a single file or a small number of files, so you can just type "make programname" and not even need a makefile. Either that, or "gcc -o program file1.c file2.c file3.c", etc.
It's only when you want to use advanced compiler features or have large projects that the makefile comes into its own --- and by that time you should be a fair programmer anyway.
My POV on the IDE is that it is a great thing; some people choose to learn an IDE rather than concentrate on the language, but surely that is their choice. One might compare it to learning GCC extensions instead of ANSI C.
And whatever anybody might say, an IDE is *faster* for performing all these operations (finding a variable declaration, addings files to a project, editing multiple files, etc.) Even if its only a fraction of a second, it is immensely annoying if you are not able to change a line of code, whack F9, see the changes, then do the same again, all in a matter of seconds.
One point which I am surprised I have not seen mentioned, is integrated debugging. That is one of the greatest strengths of VC++ and BCB. Being able to step through a program, in the same place that you were coding it, and have watches available and having tooltip variable evaluations, being able to execute an expression you enter and then have the program continue, being able to modify the source and keep stepping through it, and so on.
Weeding out bugs in an integrated debugger is speedy and fun.
The only problem I have with the IDEs I've used is their lack of support for vi-style editing. Now, if it would let you specify a commandline to use as an editor within the IDE - perfect!
Sorry, I must have missed that key in emacs that pops up a wizard telling you how to properly document/comment your code.
Can you lend me some punchcards?
1. Emacs does syntax highlighting and auto-indent. I don't know what you mean by 'intellisense'. Auto-completion isn't that useful to me. I see it as a lazy man's way of not learning the damn function/variable names well enough. If you're working on a large project, you should at least be making an effort to grok the parts of the program you're working on.
Intellisense is the ability for the IDE to detect the methods signatures and object signatures and automatically display them to you in tooltips and dropboxes. You're definitely a beginner, I can'rt believe anyone wuld say that something that aids a programmer's workload as a lazy man's solution.
When you start working on large projects, you can't even remember functions that you write yourself, having the editor give you hints so you dont' have to go back to the documentation is quite useful (and being able to just to the definition of the function with a simple mouse click over the function name is useful too).
We're all humans, and it's SMART to know about out limitations when implementing systems. We for example, can only remember 7-8 things in our shortterm memory.
gdb is very bad when you compare it to VC++'s inplace source editor/debugger. Hover your mouse over a variable name and you get what it holds, edit the source code and continue debugging immediately without having to restart the whole program (edit-and-continue) etc....gdb is like stone knives in comparison.
Enjoy switching from xterm to xterm, recompiling and recompiling with every debug manually.
enjoy gdb. Just don't tell your boss how much time you're wasting.
I can't think of a single way it is more powerful - can you? More flexible? Configurable? You get to choose your editor....but that's it More efficient? A seasoned IDE programmer would be at least as efficient as a seasoned commandline programmer, no?
But for people still learning a language, and needing to look up documentation occasionally (and perform other misc tasks), an IDE may be a better choice.
Are there any serious programmers who do not need to look up documentation occasionally ????
This brings me to another point: most of the open source code I have looked at is hideous, ugly, undocumented (or with useless comments), and parts that haven't been worked on by seasoned coders are also rather inefficient.
Not a good example for someone learning C to look at -- and probably, that's why the situation isn't getting any better. I don't want to work on anyone else's open source project because I would spend most of my time figuring out someone else's code and rewriting it properly. This includes figuring out what I should expect from someone else's functions.
With a little (well, a lot) of practice, highlighting and copying and pasting in vim is just as easy as in Windows editors. (I say this having programmed extensively in both).
And with vim, you can even bind ^C to copy ('y') and ^V to paste ('p' or 'P') if it makes you feel more at home (after pressing 'v' or 'V' and selecting the text you want).
I prefer vim because you have the added advantage of having 26 copy buffers, rather than one -- and having append as well as overwrite. So I can go through a file (or several files), copying pieces of text as I go, and then paste the lot somewhere when I am done. Or I can copy several seperate pieces, and then re-paste them in any order.
If you want to use the mouse for highlighting, run vim in a window on your windows machine, and use windows highlight and paste.
Personally, I like the ease of use of Visual Studio
I used to like Visual Studio too. I work in the suit-based Microsoft world, so it's the best editor I have any reasonable hope of getting on-site.
The downside of "smart" environments is when they get out of date. If the "intelligence" it knows about HTML turns out to no longer be true, then it becomes counter-productive. As an example, I no longer write HTML, but always XHTML. The InterDev HTML editor fights you all the way with that ! It doesn't understand closing the tag on an empty element, and it doesn't know about quoting attributes. If you insert an without the size, then when you next look at the source InterDev will have gone in there and mangled it, "helpfully" putting width and height attributes onto it. Unfortunately:
<img src="foo.jpg" / WIDTH=120 HEIGHT=240>
isn't even valid HTML (the / that ought to stay at the end), let alone XHTML.
Your research study will probably be a waste of time then..
Blaming poor design on IDEs is ludicrous. I can write a badly designed project just as well in vi as i can in an IDE.
Failure to use an IDE simply does not suddenly make one's program better designed. In fact, in my experience, it makes it even worse.
I find design easier in an IDE because I can see all of my files at once, and rapidly ensure that each piece is in the right file, and see which pieces of which file call other files, and so on.
Now that I have learned (through long experience) how to design projects properly, I can and do do it just as well in an IDE as without an IDE.
Your study may well find that the best-designed projects are written with a text editor in UNIX. However, this will not imply that the use of a text editor caused it. A more likely explanation would be that most of those who have good design skills are the sharp-minded ones who are at home on a Unix box.
Although I've nothing against IDE's, I personally prefer a plain text-editor and the command-line compiler tools. I just wonder who else is like me and dislikes IDE's.
I'm willing to bet money that you have not done any professional programming, or have not done so for very long.
Uh huh. A plain text-editor? Right, so you don't think having syntax highlighting, autoindenting, intellisense, autocomplete etc are useful?
And as for command line compiler tools, what do you use for debugging? gdb? Lets say you have a 20K line multithreaded program, how long do you think it'll take you to debug that with gdb?
One reason I stay away from IDE's is because it somewhat locks you into a certain interface that you get accustomed to when programming in that language (or environment, whatever). I find it more useful to learn how to use the bare-bones text-editor / CLI interface first, to focus on learning the language itself rather than the IDE's interface.
Well you are contradicting yourself there. First you talk about getting locked into an interface, then you talk about needing to know a language first. So what is it? I don't see how an IDE will somehow change the language, perhaps VC++ lets you type in BASIC?
What IDEs do is make people unaware of some command line tools available (traditionally unix tools) like make, cc/gcc etc.
But these are hardly anything to do with the language, they're just some tools for the language - useful to know, but not essential. You can learn make in an hour or two anyway.
After I learned the language, then I find my learning more easily applied to any development environment -- IDE or otherwise.
Yes, but it wouldn't matter whether you learned the language in an IDE or in vi, except that with an IDE you don't have to worry about how to compile, how to debug. With IDEs like VC++ learners of C can do step by step wakl through of code and see variables change, and they can also manually change the code and continue debugging. It helps learning the language and programming in general a lot.
If I had started out with the IDE, I find myself lost when placed in a situation where only command-line tools are available, and need to spend a lot of time learning the "real thing".
Again you're confusing the language with basic tools. VC++ is just as valid a tool as gcc and make are.
It's so much better to learn it the hard way first, then your skills are more marketable/adaptable.
So what you're saying is that you are still learning it the hard way?
Well trust me, when you get a bit more experienced, you'll find that the novelty of doing it the hardway is no longer the best way (cause you've had your fun and learnt all the tricks).
Many modern software engineering companies are starting to use graphical UML tools like Rational Rose for essentially drawing classes that are then turned into code automatically.
Prorgamming is about what you write, not how you do it. The interest comes in the algorithms and the creation itself. And the easier you can do it the better - you can spend more time concentrating on what you're doing not how you do it.
ok?
You must be a college student or probably just learned how to program. An IDE is a tool, that may simplify certain tasks in certain environments.
That's a pretty inflamatory remark. I'm not a college student, and I've been progrmming for over 15 years, yet I tend to agree with the original poster. At every company I've worked at, almost no-one used IDE's because most state of the art IDE's suck. Virtully all existing IDE's are a crappy note-pad like editor with a "compile" button, a cheesy GUI builder, and a lame excuse for project management.
If the question is "Do you consider an IDE useful?", the answer is definitely yes. All it takes is trying to manage a project with 20 - 50 files each with a 1000 or more lines of code to quickly turn one against bare bones editors and towards IDEs.
Explain how increasing the number of files makes an IDE more useful? The project management features of most IDEs are a joke. The project I'm working on has over 6000 source files. We don't use an IDE. We use a revision control system for managing our files, and tools like ctags and cscope for finding things. How would an IDE help us? Oh, and did I mention that our source files are in at least 6 different languages?
Don't get me wrong, I have nothing against IDE's per se. It's just that every IDE I've ever seen has had a bunch of annoying problems. They tend to be difficult or impossible to extend, they don't let you use your favorite editor, they're not cross-platform, and they're usually tied to a particular language. The vast vajority of GUI editors also suck big time, because almost all of them use coordinate placement of components (instead of proper geometry/layout management).
An IDE is a tool. But trying to build real software with today's IDE's is like trying to build a house with tools like these. If a better IDE comes along, I might start using it. But today I'll stick with bash and VIM as my development environment.
I like IDEs cause they help you do a lot of the little things that make coding go quicker - auto indenting, parens matching, debugging, etc.
Most decent editors (like VIM or Emacs) have auto-indenting and parens matching. In fact, for virtually any editor feature you can think of, I'll bet that the stand-alone editors do at least as good a job, and in most cases a significantly better job, than most of the IDE's (debugging is not an editor feature). That's one of the main reasons I don't use an IDE. IDE's tend to have crappy editors. (that, and I have yet to see a compelling feature that would make me actually want to use an IDE. A "compile" button isn't a compelling feature...)
Ya, I do like to use command line editors such as pico when I can. However, if I am just starting a language or I'm shaky with it the IDE helps me calm down and see more of my code at a time.
Bottom line: if it is small and quick use text editors; if it is big and drawn out use an IDE.
Everytime you look at porn a devil gets their horns.
I don't really mind an IDE-as-an-editor. After all, couldn't Emacs be considered an IDE? What bugs me with most commercial IDEs is that they lock you into their project definition format. How about an IDE that simply provides pretty widgets to edit Makefiles instead of making their own format?
If there was an open source IDE that worked with many different compilers and uses Makefiles, I'd use it. That's why I do the majority of my coding in Emacs.
I'm not saying the average commercial IDE is bad (they do increase productivity for some people) I just think they could be more flexible...
-- 2 + 2 = 5, for very large values of 2
Yeah, I know the post is pretty lame, but it was only moderated an aditional +1 above my current +2 posting bonus.
___
You might be interested in Code Crusader. Nice editor with syntax highlighting and most of the other nice features of the good commercial IDE's. Works with all kinds of compilers, and uses Makefiles.
Regards,
-BK
Chemical Blog
The feature I really like in an IDE is online help and reference manual prettily displayed without having to fire up man in a console. And the abilty to extand it by writing scripts that can then be launched via a toolbar or menu. For these two reasons, an IDE is nicer than just bare bone editor.
Personnaly (and some trolls will hate me for that) I like KDevelop for C++ editing. There is not too much "IDE quirks", and I don't use them much neither. But the integrated help browser and the ability to jump to a function declaration by selecting its name in the class browser are really cool stuffs. (Oh, and we don't have to write by hand the complexes Makefiles needed by large configure-able project. A good point, too.)
Komodo will have integrated help. That is sufficient to make it interesting. But I hadn't seen mention of PHP. Too sad.
sigmentation fault
Then if they added IDE support for GCC, which is available for every platform under the sun, GCC could have a really cool IDE front end for *n?x, Windows & Mac.
A totally cross-platform kick-ass IDE for a totally cross-platform C++ compiler? Would work for me.
And they could add support for XPIDL + all the other 'native' C++ mozilla stuff.
Mozilla - welcome to the platform for the next decade.
Why doesn't the gene pool have a life guard?
Before some lamer replies saying "but you can do that at the commandline", the point is, yes you can, but IDEs did it first.
Another point I'll throw in here: Integrated Development Environment. Is that not exactly what Unix is ????
Perhaps this debate is merely over whose flavour of iceblock is the nicest.
Now, wizards - with or without a wizard, the person still isn't going to know how to do those things you mention.
I like wizards because they save me time. With development for GUI platforms, they are even more useful because there is a lot of code that has to be there for the GUI that is perfectly suited to wizards. Why risk getting it wrong myself when I can use someone else's code who has got it right?
Why the fuck did he get +3 for posting a paragraph out of one of the links which is in the original story !
Not as if he discussed it or analyzed it or anything, it's just a straight cut'n'paste.
+3 for saving us time by not having to actually click or select the link ? Please
Not so simple. Python (and I assume Perl but could be wrong) has had sandboxes designed for use in client-side scripting for a while now. It does not take Java to do this. Nor is Java sandboxing the end and be-all of what can and needs to be done to satisfy security issues.
We should use whatever tools in the opinions of the programmers involved best do the job. Waving security around to attempt to force people to your choice is pointless. Security as such is not a language dependent issue. At any particular time some language in some environment may be more or less secure.
Some very good points.
They tend to be difficult or impossible to extend, they don't let you use your favorite editor, they're not cross-platform, and they're usually tied to a particular language.
At least these problems can be remedied in this case. I can't imagine adding you're favourite vi keybindings is going to need a CS degree. It's already xp and the language, I'm sure, can be altered or added to.
The vast vajority of GUI editors also suck big time, because almost all of them use coordinate placement of components (instead of proper geometry/layout management).
This sounds like an interesting point, could you explain a little further. Do you mean Delphi-like coordinates on forms vs. Java Swing layout components?
It's the old developement speed vs. runtime speed -problem. Bying better hardware is cheap way to get your programs to run faster, so there's not much point in using C unless the runtime-speed difference is really big.
When you smile, the world laughs at you.
I can only see your point if you include in your definition of "IDE" the code-writing wizards that write GUIs for you, or the ones that make MFC code. Yep, at this point you are losing your control over what you write, and your understanding of how it works and how to fix it if it doesn't. But in any IDE you have the choice to forgo wizard-land and write proper code. I use Visual Studio at work (because I have to), but I write all my code by hand, since I'm not writing GUI code or MFC. I don't see that this is any different from using vim and make, in the control and understanding respect. It's just a crappier text editor with a graphical debugger and an automatic dependency figuring out thingy which is just an alternative to make.
I suppose if you learnt a language using Visual Studio and then started to use vim+make you would have to learn how to use vim and make. But this is just the same as the problems I had learning Visual Studio from a vim+make background.
You can using the JDE for Java development under emacs. Check it out here By using a combination of that and emacs' TAGS files, and speedbar, you get just about any IDE feature you want, not tied to any particular language, all in the World's Greatest Editor.
The only reason I don't use them is because I am forced to use a different built-in editor for each IDE. So instead I use UltraEdit for everything and sacrifice advanced IDE features to use an editor I am very familiar with.
What we really need is a modular editor with plugin support so that IDE like tools for specific languages can be developed as editor plugins. Then you can have the best of both worlds.
Can any exisitng editors do this? Emacs? Visual Studio? I don't use either so I'm not sure.
You Open-Sourcers think this is really great, implementing yet another scripting language into the already security-strained (Remember those scripted viruses?) web. Why don't you just take some time and learn a crossplatform language, like Java, that already does this? No, you have to have your favorite toy. What about when your favorite toy kills the hard drives of hundreds of major corporations worldwide and you are subjected to an investigation by the CIA because you assisted the 1337 haXorz that did it, how about then? When will you realize that another insecure coding language will wreak havok on the WORLD because you're too lazy to learn a decent language?!
Sorry about that. Just finished cleaning up the last bit of the ILOVEU virus. Apparently, some dumbass in sales forwarded a copy (yes, he saved it even after all of the media stuff) to his friend in marketing, who opened it, and, well, ouch. All we need is the super-powerful Perl becoming a scripted language.
Safe TCL was actually discussed as a possible extension language for e-mail, with prototypes done in Metamail.
A lot of people have talked about Java's "sandbox" security as being pretty feeble. A language designed from the start to be "Safe" may be able to provide more powerful constructs with fewer vulnerabilities.
...
The message on the other side of this sig is false.
...when we already have the ultimate one at hand: X + some window manager + some editor + make, shells, and tons of utilities.
:)
I feel that people can't see the forest because all the trees are in the way.
With Glade (or equivalents for Qt or VDK or whatever) for GUI design, Emacs/Vi/Joe/..., the make utility, and the incredible number of small utilities (egrep, find, perl -pie, etc.) in any combination you like combined with the power of the shell, you have an absolutely fantastic well integrated development environment that can not only suit most needs, but also be _made_ to suit unforseen needs.
The traditional IDEs are mere subsets of the *real IDE*, and they are good for beginners, no doubt. It's easy to tell someone that to compile press F9, and if you want to do regular expression substition on all files containing the word "SOMETHING", well, you can do it by hand.
For the rest of us, we can set up emacs to call make when we press F9, and we _can_ actually automate arbitrarily complex search or replace commands.
The power of shells and editors all in windows (so you can have multiple shells and editors on-screen simultaneously), where shells can run arbitrary combinations of utilities should not be underestimated.
Instead of re-editing and re-compiling you program to only show specific debug output, you stick an |egrep 'pattern' behind it when you run it. Nice and easy. I could go on forever with that
Still, better to have people developing new APIs than having them sell crack to children and what not. I would prefer if people could focus on improving the fantastic IDE we already _have_ though... There should be plenty of opportunity to come up with new small utilities and improvements to the window managers, to the build tools, to the editors, and to things we haven't even thought of yet.
I'm surprised no-one's mentioned it, so I will. KDevelop rocks. I'm not one for going overboard on evangelising technology (apart from the intel 82559 that's just made my BSD box go like a rocket), but KDevelop blows *all* other Unix IDE's totally out of the water.
/usr/ports/devel/kdevelop
:)
Why?
Maybe why not is a better approach. I don't use it to develop K applications. I have nothing to do with Qt. I've never even seen the dialog editor. The great thing with KDevelop is the debugger is integrated. Properly. It's like what ddd could have been.
And, dare I say it, yes - I come from a VC++ background. (Hi, my name is Dave and I have a Microsoft problem). I use Ctrl-C and Ctrl-V. I like to use the mouse to highlight things.
It just bloody works OK! I couldn't face emacs and was just about running out of patience with combinations of C-Forge, vi, UltraEdit over a samba share (yes, it got that desperate), ddd and all that.
cd
make all install
And retire to a safe distance. For quite a while. Then be productive.
Dave
I write a blog now, you should be afraid.
I definitely think someone should learn a language in the context of a text / CLI environment. But, if you look at the size of projects today, it's pretty insane to do everything that way. Once you've learned a language (or more importantly, "programming"), I find it an important step to move to an IDE that is usable and helpful.
...
Personally, I like the ease of use of Visual Studio (note Visual Studio - *not* Visual Basic).
Basically, let's say you want to add a function to a class. Well, right click the class' name, click "Add Function" and all you have to do is type in the return type and name of the function (and its privacy class if you like). Done. It even adds the correct include statement to the header file if, say, an argument in your function is the type of a class that isn't defined in your scope.
I like that. I also like the fact that, while typing, Visual Studio will display a tooltip that highlights the arguments of a function, so I know exactly how many arguments there are, of which type, and even overloaded functions are handled fine.
I most definitely like the debugger. It's *MUCH* better than:
gdb stuff
break
run
* break hit
next
list
next
and crap like that.
People say that it's not real programming. Well guess what, IDEs are tools. They help you get the job done. Dijkstra's algorithm doesn't change whether you're using an IDE or not. IDEs, in my opinion, are glorified text editors (expensive ones too...) which do the grunt work for you.
I love my IDE, and until *nix has something like it, I seriously doubt I'll be doing heavy development for the platforms.
You should never take life too seriously - You'll never get out of it alive.
I read on lwn that Code Fusion is to be open sourced by Red Hat. Code Fusion is the IDE that was being sold by Cygnus before they got bought by Red Hat. There was a mailing list on http://sourceware.cygnus.com but it seems to have gone away.
Well, for people like me that are stuck on Windoze, and haven't yet mastered Cygwin and the assorted complement of Unix tools, an 'IDE' of sorts can be useful. (granted, Perl means I really don't need to know sed and awk, and a coupla other things, heh.)
/would/ be nice to simply right click on a keyword or built-in function, and have the appropriate docs pop up.
I personally use Ultraedit 7. Not a real IDE, but more of a souped-up text editor. Has the syntax highlighting for a coupla commonly used languages, and the syntax file is pretty easy to edit, even without any documentation.
I like the idea of being able to shell out to various command-line tools with a key-combo, and have automatic arguments like the current file being edited passed to them. Makes the compile and run cycle go a lot faster.
And while it's true that IDEs are usually cumbersome, and less configurable than vi / emacs / whatever -you-use, they do tend to provide somewhat decent online docs for the language. While it's true that you could do just as well by shelling out of your text editor and going "man blah" or "perldoc blah" or whatever, integration _is_ convenient for the novice programmer.
Since Ultraedit isn't a true IDE, I usually end up having 2 command windows, a copy of Ultraedit, and 3 Opera windows open to various places in the Perl Bookshelf CD. It
All said, IMO, command-line development a la *NIX-programming is undeniably far more powerful, flexible, and configurable, and even more efficient, for the seasoned programmer.
But for people still learning a language, and needing to look up documentation occasionally (and perform other misc tasks), an IDE may be a better choice.
should be
Mozilla x (Perl + Python) = New IDE
Attention to details!
--
A mind is a terrible thing to taste.
"A mind is a terrible thing to taste."
XMLTerm is a mozilla based x-term, with some web-like features (check the screenshots). Here it is in the tree:
http://lxr.mozilla.org/mozi lla/source/extensions/xmlterm
amazing!
To try it out, you'll need the source, Luke:
./configure --with-extensions=xmlterm {others}
./mozilla -chrome chrome://xmlterm/content/xmlterm.xul
see the pages for more details.
--
"And is the Tao in the DOS for a personal computer?"
python -c "x='python -c %sx=%s; print x%%(chr(34),repr(x),chr(34))%s'; print x%(chr(34),repr(x),chr(34))"
ActiveState got into a business relationship with Microsoft about a year(?) ago. Forgive me if I err in some details, but AS got some money, and MS got better support for Perl, which apparently is used quite extensively within MS.
ActiveState also apparently benefit from MS knowledge, specifically at the time producing a version of fork() which would work on Perl for Win32.
I've used the Win32 version of ActivePerl extensively. It's a GOOD product, more than making up for the lack of decent command scripting tools in base NT. The only real deficiency at the time was the lack of multiprocessing or thread support, which the latest version (with fork()) has recently implemented.
You can get Python, Zope, Java for Windows. Free. Perl for Win32 has been around for a while, ActiveState just took it to a new level of professionalism. Even Apache has a Windows offering, which is an excellent and far less clunky replacement for PWS.
Some of us need to use Win32 at work. Some of us, shock horror, may even like some aspects of it.
I can't see ActiveState coercing Unix Perl users to go over to the enemy. Rather I think it may help give Win32 programmers an insight into Unix-based tools and maybe get them to check out this Linux stuff.
Zealotry and anti_MS paranoia does get really boring at times. Guilt-tripping AS because they don't share your paranoia about MS is in my opinion a sign of immaturity.
Eagles may soar, but weasels don't get sucked into jet engines.
Why, nothing. I never said they did. Only that their so-called open effort is obviously just a thin veil over their true goal of global mind control.
Mozilla builds fine as evidenced by the nightly builds that appear on Mozilla.org
I am aware of the nightlies. Nightlies for winbloze, and the occasional nightly for i386-peecee-linux. Never anything else.
The fact that you can't build says more about your competance than it does for Mozilla.
If I had written the code, yes. Since I didn't, no. I can follow instructions. Compiler errors due to buggy source are not my fault.
If it doesn't build on sparc then fix it for fuck's sake instead of whinging.
I don't have time to trace through 400 megabytes of fuxored code, as I explained. Nor do I have the half gig needed to run in a debugger, as I also explained. So there's little to no chance I'll be fixing anything. Instead I'll just use something that works, or that I can fix if it doesn't.
You only get what you put in.
The problem with Mozilla is that way, way too much has been put in. About 99% of it needs to be taken out.
Thanks for the tip; the official press release was far from clear on this point. :-)
I wish them luck. I guess one complicating factor here, though, might be the fact that there is a lot of DOM stuff in particular where the Javascript interface is essentially the de facto one (even if the W3C admits the possibility of other scripting language bindings). Which will make this all very interesting come upgrade time...
Babar
This I found in almost all IDE, starting with Emacs and going upward ( or downward? ).
The only other feature I look for is an MMI generator, if my app has MMI.
Code browsing ( graphical and not ) is nice, mainly if you have to handle other people code. But give me grep and a good naming policy, and I can survive without.
Other features I don't care much about. Wizards are for lusers, not for coders. Makefile generation is nice, but a coder shall know how to make its own makefiles and once you have written a good one, you only need to change the file names. Projects do little you can't do with file system hierarchy.
And yes, I always try to use on the development platform tools that I can use on the target platform ( which is rarely possible, since most tools are licenced on a per-installation base ). Failing this, I make sure I can handle the code also without the tools [e.g. separating tool-generated code from handly-written code].
Ciao
----
FB
No offense, but it is hard to beat "find definition" for speed
:)
erm isn't this what ctags is for? it's even harder to beat ^] for speed
TUIPeer is a text-mode look-and-feel for the Java AWT. Would it be possible to do the same thing for Mozilla? If that happened then Mozilla and all apps based on its widget set would be runnable over telnet or in an xterm. It might give the Lynx users something to worry about :-)
-- Ed Avis ed@membled.com
Fortunately Sun has signalled their intention to open source Forte (Community Edition at least) under the Mozilla Public License - I'm really looking forward to that (although they said it would be ready in April 2000!). It's cross-platform (almost pure Java I believe, apart from the installer) and it would probably give you 80-90% of the code that you would need to write an IDE with support for other languages than Java (in my ill-informed opinion).
Female Prison Rape in NY
And thus is the beauty of open source!
Certainly, you can use IE5 to develop full apps, but compared to the fully-documented, full-source-code mozilla, designing for IE5 becomes inordinately difficult and expensive, relitively speaking. The hooks to NS6 are both in modular format (real re-use, not just re-use the renderer like IE5) and through the XUL engine (who's your gatekeeper?) which makes the platform very accessable. I really want to see this IDE in action too! I would love a perl ide, as I wasted a lot of resources on my concentric site because I called a sub-shell, and it bonked me on the head for 256 user seconds each time! It would be nice to profile things before they go into production. Then again, I should have read the vde manual online at cnchost.com, but I didn't. This project would likely have saved me a lot of time!
Lowmag.net
Url got stuffed:
Here is the correct URL:
HERE
Apologies...
gee, that's old. i tried it on netscape (3.x?) back in 1996 or 1997 iirc. i downloaded it recently but it seems to annoy the hell out of x and netscape so i dropped it.
perlplus i think it's called.
US Citizen living abroad? Register to vote!
Actually Emacs can do something similar. All you do is type a few letters, then press Meta-. and it will match find words that begin with those letters. Keep hitting Meta-. unti you get the word you want.
Works great! It's simple and fast.
Vim has something similar also.
An IDE is just a tool like the graphing calculator. Does it matter which mathematican uses which texas instrument calculator? no. Of course it's nice to be able to find the definite intergral in a press of a button but it's not really making much of a difference to anyone who knows what they're doing. And anyone who learns math through a calculator will have problems showing their work on the blackboard, but anyone that learned math the old way wouldn't have problems learning a calculator. Do calculators replace the blackboard? no. Do blackboards make calculators unnecessary? no.
I agree with you 100%. I use vim and command line compilers/interpreters exclusively.
EXCEPT for some debugging that I do, that is.
ddd is a remarkable debugger, and I find it to be an almost perfect IDE for the purposes of debugging. It is all the debugger stuff, plus an "edit" button that opens the current file in vim so you can change it, and it has a "make" button to rebuild the program and automatically reload it into your debugger.
It's so minimal, yet it's incredibly powerful and quick. I find myself wondering "why didn't I think of that." But who cares...I am happy to be a ddd user.
If tits were wings it'd be flying around.
I don't think client-side scripting is the goal here; instead, they're more likely to work on making it possible to write XPCOM components in Python and Perl. Client-side is apparently a problem because there are various sections of code in Mozilla that are really JavaScript-specific. It's possible to fix this, but it's too big a job to do before Mozilla 1.0. Instead, you could prototype an XPCOM component in Python, get the interface right, and then translate the code to C++ once you're convinced the idea is practical, the interface is correct, and can deal with the slower development speed of c++. For an IDE, you'd probably never translate to C++. For example, the XML-RPC component that just went into Mozilla isn't accessible from JavaScript in a Web page at all, only to chrome and to other components, which are already sitting on your disk.
It sounds like a great idea already but if you throw in PHP support too, it would be revolutionary. Either way I'm all for it.
The dumbing-down of programming.
--
No offense, but it is hard to beat "find definition" for speed.
Certainly easier than trying to figure out which of the forty instances of the symbol you just grepped for is the definition. Especially if the code was written by an #ifdef crazy programmer.
The cake is a pie
For me, I'd have to say being able to click on an identifier, press a keyboard shortcut, and get help on the identifier (what header file to include, etc.) is the biggest reason I use an IDE. I dunno, can you do that with emacs/vi?
(I run Borland Turbo C++ 3.0 for DOS, btw. That compiler is FAST and its editor is nice.)
--
The shareholder is always right.
IDEs, in my opinion, are glorified text editors (expensive ones too...) which do the grunt work for you. I love my IDE, and until *nix has something like it, I seriously doubt I'll be doing heavy development for the platforms.
RHIDE is a free IDE by Robert Hoehne and Salvador Eduardo Tropea. It runs on DOS and Linux and looks just like Borland's old DOS IDE. It's a very good editor with project management and a frontend to GCC.
But are simple makefiles really that hard?
Will I retire or break 10K?
Damn /. doesn't know what "plain old text" means. That should be [right-click]"find definition".
The cake is a pie
we can set up emacs to call make when we press F9
There should be plenty of opportunity to come up with new small utilities and improvements to the window managers, to the build tools, to the editors, and to things we haven't even thought of yet.
If Emacs is to become an IDE, someone should write an interactive graphical editor for .emacs preference files. Newbies often have very serious problems setting them up. Need an example to steal? Look at Mac OS 10 to see how easy Eunuchs system administration can get.
Will I retire or break 10K?
At least, I've never seen it.
It is the single most useful feature I've used in an IDE - it speeds up typing and stops you having to look for documentation on the exact method names.
I use the Borland eqivalent feature in Delphi, and I can't live without it. Now, even when I'm typing in a work processor I find myself typing for any word longer than about four letters.
Breakpoints and intergrated debugging are wonderful things, too, but like you said, EMACS does them fine.
For me, I'd have to say being able to click on an identifier, press a keyboard shortcut, and get help on the identifier (what header file to include, etc.) is the biggest reason I use an IDE. I dunno, can you do that with emacs/vi?
I actually use VIM, not plain old vi. In VIM you can hit 'K' to do a "keyword lookup". By default this runs man on the keyword, but you can override that behaviour. The default works fairly well for standard C functions on a properly configured UNIX system. I don't use Emacs, but I suspect it supports something similar. I know Emacs also has an integrated "info" viewer for people who like that sort of thing... (I hate info myself)
You can also do a "ctags" lookup by hitting '^]' (ctrl-]) on a word. That's incredibly useful for internal functions (where often the only documentation is the inline comments). Plain vi supports ctags as well, and Emacs also has tags support. Both VIM and Emacs also have cscope support. (cscope is somewhat like ctags, but with multiple search types)
The best part about powerful programmer's editors like VIM and Emacs is that they're incredibly customizable. If your company/project has coding guidelines, you can often adjust settings or make mappings/bindings that encourage you to follow the guidelines. If there's some task you have to do over and over again, you can automate it. VIM lets you choose from it's own internal language (think "sed on steroids"), Python, Perl, and TCL. Emacs has elisp. Both can also easily call out to external programs.
OK, this is perhaps slightly off-topic... but I'm just curious, what percentage of slashdotters actually find an IDE useful?
Although I've nothing against IDE's, I personally prefer a plain text-editor and the command-line compiler tools. I just wonder who else is like me and dislikes IDE's. :-)
One reason I stay away from IDE's is because it somewhat locks you into a certain interface that you get accustomed to when programming in that language (or environment, whatever). I find it more useful to learn how to use the bare-bones text-editor / CLI interface first, to focus on learning the language itself rather than the IDE's interface. After I learned the language, then I find my learning more easily applied to any development environment -- IDE or otherwise. If I had started out with the IDE, I find myself lost when placed in a situation where only command-line tools are available, and need to spend a lot of time learning the "real thing". It's so much better to learn it the hard way first, then your skills are more marketable/adaptable.
---
mikre he sophia he tou Mikrosophou.
From: http://Activ eState.com/Corporate/Media_Center/News/Press959150 636.html "We view Mozilla as a very exciting platform as it offers an open, modern component framework for cross-platform application development," stated Dr. David Ascher, Senior Developer and Mozilla Product Leader, ActiveState. "Our contributions to the Mozilla open source effort will start with adding Python and Perl bindings to XPCOM, Mozilla's component architecture. This change will open the Mozilla architecture and eventually make it available to Perl and Python programmers."
___
Python is awesome. This site is powered by python. I feel that python is a powerful alternative to perl(actually I like it better than perl but I dont want you all yelling at me).
As much as I love the idea of , I'm not sure Perl has any framework for security. (Taint-mode is only useful when the script is trusted but the input is not.) Would this require a whole new security model to be grafted onto Perl?
Gates' Law: Every 18 months, the speed of software halves.
your wish, my command.
Good point.
timothy
jrnl: http://tinyurl.com/c2l8yr / foes: http://tinyurl.com/ckjno5
Something like freeBSD Jail(8). It's customizable, and as secure as you want it to be. I'm sure that you can use it or something similar to create 'jails' on the fly.
I don't think a security model based on the perl language would do for the following reasons:
* There's functionality being added into the interpreter all the time (a potential for new security holes)
* It's big and complicated, unlike a simple tcl or lisp interpreter, perl has got a lot of stuff, all of which you'd have to audit in order for it to be secure.
* Therefore if you want to make a security model for perl, you'd have to dissect the language, and add all sorts of checks right into it, slowing it down, which is not what you want.
* Or you could remove all the 'unsecure' functionality from the perl library, which would take a lot of work, and then you'd have a pretty secure but inflexible result.
On activestate's homepage there is a link to a press release about Visual Perl and Visual Pyhon for MS Visual Studio 7.0
cristiana
I suggest taking a look at this program. Although its features don't make it a world-class browser (slow, older HTML support), it does have some interesting ideas and the program is built with a very solid object model!
Oh, and um... just to troll: I'd like to see a browser in Perl! blah lol... actually, I think there is one. ;)
-- Ken Kinder ken@_nospam_kenkinder.com http://kenkinder.com/
I've heard about the JavaScript-specificness before. So help me, this has to be the silliest limitation in the whole Mozilla project. I mean, it's not as if they didn't bother abstracting away from the {user interface, rendering engine, networking code, fill-in-the-blank}. But Ecmascript was holy? It's a bit depressing when Microsoft, who probably had every reason to push VBscript as hard as possible, actually offer more choices for client-side scripting (by a lot) than Netscape/Mozilla/anything else.
That said, it will be pretty awesome to write XPCom stuff in the language of your choice. And the ActiveState people have a pretty good record for providing what they say they will.
Babar
Perl, fine. Python, fine. IDE, fine, if you must. But MOZILLA??? They must be on crack. I can't believe /.ers are this blind to the obvious fact that Mozilla should and will die the death.
The Man hereby predicts: Five years from now Mozilla will be known as the greatest failure in the history of Free Software.
Yep. That's right. Client-side perl using Internet Explorer. Since 1997.
-- @rjamestaylor on Ello
Please tell me this was supposed to be joke. ActiveState is all about providing great tools for Perl and Python. Often those tools are for Windows, because in the MS world, the PHB just don't get not having a company behind a product, and that helps the spread of Perl (for example) to have ActiveState attached to it. But they are not on anyone's side but the developers who use their stuff. I would prefer to use Linux or BSD, but I'm stuck with Windows at work, and having an nice IDE for Perl and Python might be a nice thing for some work project I'm thinking about doing. (*SOB* I admit it, I actually kind of like the DevStudio IDE...I feel so dirty) ActiveState job is to make tools, not to take sides in your little ideological war....
Insert clever sig here.
Exactly why does somebody have to pick a side, and stand with it? This "Linux r00lz, sux" is as bad as "Free software has no future; it has no guiding hand, no support, you cannot sue anybody". Both can be termed as factionalism.
:-). I'd love to see Mozilla succeed as much as the next guy. But I separate "the success of Mozilla" and "the failure of IE/MS" into *two separate events*. While I would not be displeased if both occurred, either one on it's own also makes me happy.
A couple of years ago, I interned at a web development company. We had a specific mantra - don't get involved in the browser battle. We ensured all our websites (even the fancy ones with JavaScript) worked on both Netscape and IE. In those days, that was *hard* to do. But we did it. I applaud ActiveState for attempting to walk the same line, and being browser agnostic. Last I checked, there was nothing in the Mozilla license which said, "Thou shalt not use, support or otherwise condone Microsoft or the use of Microsoft products".
Don't get me wrong. I live a Microsoft-free life, having divested myself of my Windows box at work some time back by the simple expedient of installing Linux on it (not even dual-boot
-- Before you moderate: Do you really believe somebody called 31337 d00d has anything useful to say?
ide is Internet Development Environment, right? doesn't slashdot run perl? I think slashdot is really cool gut its always hanging and flakin' out and stuff too. wouldn't it be better to do something like with like C or something?
What Open Source IDE's, Office Suites and other such things really need are Templets. And yes a proper GUI IDE has more in common with an Office suite than it dose with a Compiler + Editor + Debugger. Both in terms of functionality, design and target user.
:)
/mnt/cdrom either :).
What do I mean by Templets ? A typical commercial Office suite comes with literally hundreds of half finished documents and a Typical Commercial IDE has a pile of half finished programs.
Just start up the app, respond to a few questions for general things and you have a working app that may do part or even all of what you want ( if you have simple needs ). A really cool interface is nice and good online docs are extremely helpful but the REAL killer feature is the document files included in the distribution.
What I suggest is that the OSS IDEs designed for beginners ( This, GIDE and KDEvelop come to mind ) should have a well documented and simple method for creating wizards and templets. Then novices should be invited to work on these with the core developers only providing QA and guidance ( You don't want the IRC wizard to generate a client that must be setuid=root do you ?
Same goes for the Office suites, except that we should bundle a ton of clipart. Sure it means that latter on when you install Mandrake or Debian ( Both already 2 CDs each ) you have a 3rd CD called "templets and clipart" with nothing but royalty free graphics and sound plus BSD licensed sample source code. The apps will then know how to find it ( don't hardcode
BTW : Did anyone else notice that what separates the downloadeble WordPerfect 8 for Linux and the WP8 Office for Windows ( Motherboard driver disk version ) from the Shrink-wrapped full price versions is just the printed manuals, Templets, clipart and founts ?
--= Isn't it surprising how badly I spell ?
At least you could only delete things writeable by the luser who _did_ open such an attachment. Rather than a "sand tray", we need a Faraday cage.
Got time? Spend some of it coding or testing
And because YOU don't understand perl, it shouldn't be done? We should NEVER create any new programming languages because YOU (or your friends) don't know it already?? Yes, I'm aware of many problems perl can cause but if you have ever used it for text manipulation you wouldn't hate it so much.
Just like the GNU coding standards say: use only C, not C++. This rules should also be extended to Perl, Python and other inferior languages.
Again, please show me how easily you can generate part of HTML page (plain text source) on the fly and perhaps join/replace some strings on the way using C. After that I'll show the same in perl. Lets see how much time/code lines it takes for each implementation.
But for web pages I think we cannot use client side perl because we wouldn't be any better than those authors that use BASIC or some other non-standard client-side scripting in web pages. You know idea behind HTML is that you are not required to use some specified browser - we all love lynx and w3m anyway.
Maybe we still get good text editor on top of Mozilla (I would love to use REAL perl syntax in search/replace/macros in text editor). Security issues should be solved first - we don't need outlook-like-viruses for Mozilla.
_________________________
_________________________
Spelling and grammar mistakes left as an exercise for the reader.
Have you used an IDE?
<P>
Sans IDE you have to type the same things over & over, (ok shell history saves you some) but really
computers are supposed to save you repetitive work,
it's much nicer to point & click.
<P>
Something that you can't get outside of an IDE (I'd be delighted to be proved wrong) is sticky breakpoints. Say you need a dozen attempts at debugging something, and need a breakpoint on a certain line. You edit your source, & if your breakpoint is not on a whole function you've got to re-specify it each time you change its location.
<P>
I just doubt that a many of the people dissing IDEs
have used them.
Someday we'll all be negroes
This means you can use Perl as your scripting language with any application on Windows that supports ActiveX scripting, such as Internet Explorer, Active Server Pages files, and the Windows Scripting Host.
Woooooohoo! Party! Party! Let's have a party! Does anyone have a link to a valid ActiveX key and/or non-Windows signer? (-:
We can make an ILOVEYOU removal service, which sends itself around a bit to make sure all of those nasty ILOVEYOU virii really were erased. (-: I think a thousand-entry hashed sent-one-here list and a twenty-hop age limit would be enough. Being PERL, it would be difficult to figure out where the code ended and the has table began.
Got time? Spend some of it coding or testing
"Progamming is about what you write, not how you do it." That is a false statement flat out. I would like to see you get hired by saying that in an interview. One thing IDEs will never teach or reinforce is how to properly document/comment code which almost just as important as the code itself. You can write all the crafty algorithms you want but if no one can understand/read it, then it is worthless to anyone but you because it can't be maintained.
Finally PERL is getting an IDE! It will include Python and Javascript.
Does anyone know of one single IDE that can be configured for any programming language at all? I don't mean any text editor. I would like a full blown IDE that is configurable for any programming/scripting language that is, has been or will be.
I have to say i'm quite excited about Komodo. Its a tribute to the work thats gone in Mozilla come to fruition. Don't let anyone tell you that what we've been waiting for is a browser. Mozilla is the one of the coolest cross platform development frameworks ever concieved.
M ozillaOME/Mockups
I wanted to pass the word along about another interesting IDE based on Mozilla. Its the next generation Zope-IDE. Check out a screenshot
http://www.zope.org/Resources/Mozilla/Projects/
Also ActiveState picked up two key python developers at this year's Python Conference, David Ascher and Mark Hammond (the guy who did python extensions for win32). They're going to bring enterprise support to Python for companies that need that sort of thing and probably some more win32 tools.
Admittedly it makes me nervous as they aren't an open source company and they tend to snatch up some of the top developer of the community. But they do put out good products(ala Komodo) and bring the support that big iron likes to see before they official embrace software.
The last interesting ActiveState development is their going to be team up with Digitial Creations (www.digicool.com) to bring Perl Scripting to Zope. Check it out the press release at http://lwn.net/daily/zope-perl.html
Papa Smurf Says "When You Live In A Mushroom Everyone Looks Blue"
--
A mind is a terrible thing to taste.
"A mind is a terrible thing to taste."
We're using Visual Cafe exclusively for development. Unlike the previous poster, I've got my setup pretty stable, and the IDE has crashed only once in the past month. I've got my machine setup with Win2k (which hasn't crashed yet btw).. It was a little less stable under NT4 (crashed once a week).
On a side note, I've got CygWin (piles of GNU utils + a unix compatibility library for windows), Perl, Python, and a Vi clone installed. I use them all regularly. My development environment would suck a lot without all of them installed.. I'd die without grep, perl, find, etc. In fact, I've got a couple of perl scripts that I use to do transformations on Java sources.
The benefits of the IDE for me are clear:
- Classes tree view - Shows a hierarchy of the classes in the project and their methods if you expand the class at the lowest level (VERY useful when you've got SO MANY classes).. makes it very easy for me to make a couple of clicks and get to whatever class I wanted to mess with.
- Auto-Completion - I love this. It offers me with possible options as I type things and I can just hit tab and it completes it.. it does things like function definitions, class definitions, etc.. So if I type File.s and hit tab, I get File.separator. It's EXTREMELY helpful when you can't remember exactly what the function you wanted was called, you're plain lazy, or the function name is like 40 characters long. (I think microsoft labelled this IntelliSense when they added it to VB originally.).
- Integrated Revision Control - If I don't have something checked out and I try to modify it, it'll either won't let me if someone else has it out, or will check it out for me.. very useful. Check-in and Add-to integration are nice to have integrated too, but I'd get by without them.
- Go to definition - Jumps to the definition of a class, variable, or function
- Integrated Debugger
- Integrated Help - I can hit F1 on any JDK class or function and it pulls up a WinHelp conversion of the JDK docs for it.. which is usually good enough for me.
- Easily Customizable Syntax Highlighting - It's kinda nice.. i don't actually find it that necessary though.
- Java programmable plug-ins - It'd be nice if they'd freaking update the plug-in kit though. It's the same one they've had for like 2.5 years or something stupid, and it's clearly old.
I know I could do many of the above things in emacs, and a few in vim.. I do all of my non-java editing in vim, and I miss some of the ridiculous power features of it when I use Cafe, but it's good enough. The only thing that really pisses me off about Cafe's editor is that it's regular expression syntax doesn't resemble grep/perl/vi/etc..Probably the same as everyone else. They've been a client of mine since the incident; for proof, see the check they sent me!
Ok, so I do a lot of C/Perl programming in Linux, but I also do plenty of C++ and Java work too. For non-OOP languages, all I really need is a good way to jump to the definition or implementation of a particular function or structure. With some hassles, ctags/etags + vi or emacs can pull this off, and they're quite passable.
But with Java and C++, the advantages of an IDE become huge. Class browsers and Intellisense (also called autocompletion) actually make it intuitive to work with hundreds or thousands of different classes at one time. So sue me if I can't remember the order of the parameters that go into some obscure method on a class I hardly ever use. Intellisense makes that a total non-issue.
Also, many people who tried IDEs years ago, but haven't looked at the newest crop, should really take another shot. I mean, GUI-builders have become vastly more sophisticated in the past years, and wizards have grown from relatively-useless little aids to incredibly poerful tools. Think about how many programming tasks are really "boilerplate". Getting rid of repetitive tasks is NOT dumbing-down of programming. Really, it's just the opposite. Programmers should only have to spend their time THINKING. Not writing stupid makefiles. Not re-typing simple code that hundreds of other people have already written. And we certainly shouldn't have to spend our time switching back and forth between DDD, emacs, and cscope.
Why does everything have to be a war with you people? Why can't they simply sell a piece of software. What side is Carmack on after all he sells Quake on windows? What side is Linus on, after all he's said that he uses Powerpoint?
Zealot posts like this are what make it embarassing to read slashdot sometimes.
PS: I have triple digit karma so moderate away if you are offended by this post.