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.
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 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
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!
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.
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.
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.
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.
Before you flame me, let me state that I am a certified idiot.
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.
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.
Yeah, I know the post is pretty lame, but it was only moderated an aditional +1 above my current +2 posting bonus.
___
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.
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.
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.
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
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
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
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!
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.
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
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.
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."
___
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.
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'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
Yep. That's right. Client-side perl using Internet Explorer. Since 1997.
-- @rjamestaylor on Ello
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 ?
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.