Become a fan of Slashdot on Facebook

 



Forgot your password?
typodupeerror
×
Programming IT Technology

Mozilla x (Perl + Python) = New IDE 173

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.
This discussion has been archived. No new comments can be posted.

Mozilla X Perl + Python = New IDE

Comments Filter:
  • 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.
  • Maybe I'm a little nuts. When I mention this to others, they don't seem to get it. I'll let you decide...

    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.

  • 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.
  • And how does Visual C++ help me when I need to build the project on Linux or Solaris?

    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.

  • 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
  • Ahhhh... shaddup before I suggest that the x be changed to a *
    --

    A mind is a terrible thing to taste.

  • Play nice. Not all Mac users are newbies. Sheesh -- it's hard enough finding a good Python editor for the Mac (not to mention ssh!), but do we have to attack each other, too??

    Don't make me do Windows. And until they get Photoshop & Director running smoothly on Linux (and make it easy for the dozen or so production artists on my team to use every day) then I stay where I'm at.
  • 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...
  • People have been using IDE's as a reason for not learning proper software design.

    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

  • 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.
  • You're just jealous because IE doesn't have XUL yet.

    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.

  • IDEs are good. However, my experiences are that with larger projects you typically just want a bit more than the IDE can offer you. I tend to revert to the barebone compilation tools for that. Still using parts of the IDE (especially theeditor) if I can.

    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...)

  • Check out NEdit [nedit.org]. It's an open-source, highly customizable editor with the best mouse integration of any editor anywhere. Control-drag to make rectangular selections that can be dragged anywhere in the document. It has programmable smart indent for placing lines in the proper column. It doesn't highlight expressions when brackets are missing, but it automatically highlights matching brackets, so if one is missing it's pretty easy to tell. All this and it takes up a lot less memory than XEmacs. Run it in client/server mode and you'll only have one NEdit process in memory for all of your documents.

    The only downside is that it's not available for Windows and I've become spoiled for all other editors.

    -DA
  • Yeah and an even more informed Mac user would actually spend some time making the native UI for Mozilla, instead of sniveling about how it's not supported. Unfortunately, Mac users just want things done for them, and have no initiative to better an application for their own fucking operating system. In this, Mac and Windows users are the same. Both passively waiting for Steve Jobs and Bill Gates to give it to them up the ass cause they're too fucking lazy, instead of finding an operating system where they are free to choose, cooperate, and contribute.
  • (whats with this "more informed user" crap?)

    Mozilla could begin a bad trend. Where we have configure all our apps for consistancy.

    "Yeah and an even more informed Mac user would actually spend some time making the native UI for Mozilla, instead of sniveling about how it's not supported. Unfortunately, Mac users just want things done for them, and have no initiative to better an application for their own fucking operating system."

    Haven't you been paying attention? Computers aren't toys. They are *for* lazy people. Real men write letters by hand and calculate spreadsheets with abacuses. Lazy people use their computer for these things.

    If Mac people want things done for them, heck I, a Gnu/Linux user, want things done for me. Like a cron daemon to run scripts and for my logs to be rotated. I also want my apps to be consistant without me getting off my butt to do it. I don't want to write XML by hand to code such a thing. And then have it be slightly but noticable off.

    I like GNOME. Because it changes themes of *all* gtk apps. When I install Mozilla, it will change themes of all gtk apps *but* Mozilla. That isn't so bad in the GNU/Linux world, because we are used to that. But on the Maacintosh, they already have consistancy. Why would they want to give that up for some dissident they don't need? I certainly won't.

    Perhaps someone on the Mac platform will embed the rendering component into a native Mac app like they will being doing with GNOME and (I think) KDE. That is the optimal solution IMHO.

    So yeah, I *am* lazy. That's one of the reason I use GNU/Linux. So I can have my tasks done for me.
  • I note your email domain (netscape.net)

    netscape.net:netscape.com::hotmail.com:microsoft .com

    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
  • by Baldrson ( 78598 ) on Thursday May 25, 2000 @10:51PM (#1047173) Homepage Journal
    Cross-browser compatibility is, and will remain, the most important problem facing cross-platform developers.

    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 [technicalpursuit.com] '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 [sunlabs.com] 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" [ideosphere.com].

    Watch this site [lmarkets.com] for developments.

  • 5) Hand them a book on Java and tell them that intentionally obfuscating their code is grounds for dismissal.
  • 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
  • I note your email domain (netscape.net) but I don't think you're intentionally FUD'ing. PerlScript is not to Perl what JavaScript is to Java. (I like JavaScript, BTW, but I recognize that it has nothing to do with Java, except share some latin-based characters). This articl e [ndirect.co.uk] gives an excellent introduction to PerlScript. Here's an excerpt...this doesn't sound like emasculated Perl to me...
    Of course not everyone reading this article will be coming from a VBScript background. Perhaps you've come from a Perl background, and have used CGI, or mod_perl or some such solution. What can PerlScript offer you? I'll cover exactly what it can offer in detail, but the key thing is the object model. This is the built in system that allows access to:
    Inter-process communication, session management, form and query string values, cookies, timeouts, and many more things. Hopefully you will be used to CGI.pm handling all these things for you, but as you'll see there are some things that ASP does that even CGI.pm doesn't do (and probably shouldn't)
  • by Anonymous Coward
    man 3 Safe

    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)
  • 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.
  • Scripts are perfectly safe if you don't expose the objects or primitives to them that they can use to do harm. The reason for the ILOVEYOU virus was not the fact that scripting was there, but that:
    1. Microsoft chose to hide file extensions so ILOVEYOU.txt.vbs looked like ILOVEYOU.txt
    2. Microsoft chose to automatically run scripts when a user clicked on them
    3. Microsoft chose to design a black or white security model - either an object is safe or it isn't for scripting - and then proceeded to create highly dangerous 'safe' objects

    Are you getting the hint of who's to blame here?

  • Cretin. Plenty of people test it and raise bugs and fix them too. Mozilla is in beta so is it any wonder it's not perfect? It's certainly no worse of plenty of other open source projects were during beta cycles.

    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 [oreilly.com] 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.

  • To be fair, you can use VB and take parts of the IE browser and use them in your own application. Its just a different development model, instead of having the source, you have an API to the IE components. This is how AOL builds its browser and also is the basis of many of the kid-safe browsers. Windows only, of course.

    I prefer the open source model myself, but if you need a custom browser in 5 minutes using VB/IE components is a good way to go.

  • 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.
    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. :) Unless you don't have enough memory or fast enough CPU, in which case something else might be a better idea...
  • netscape.net:netscape.com::hotmail.com:microsoft.c om

    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.

  • 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.

    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 .c, .h and .f files, I run:
    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 [kdevelop.org]? 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.
  • Visual Perl and Visual Python [activestate.com] 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.
  • Try Visual Slickedit [slickedit.com]. 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 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 ;-) 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.

    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.

  • What you describe is called COM or in the stone age: OLE. reuse of building blocks of other programs in your own program. Windows programs today do that a lot. Perhaps it's new to Unix developers, but not to win32 developers.

    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.
    --

  • Unless someone were to develop some sort of security system for Perl (I'm not an expert, there may already be one) similar to the Java sandbox, client side perl would be worse than Active X. Given the choice between using Perl to parse /etc/password and using VB to access Windows security info, I'd say the Perl is easier!

    Before you flame me, let me state that I am a certified idiot.

  • A slightly more educated Mac user might have commented on how the Mozilla widgets look like 'Winblows', and there was no way in hell that he was going to touch any Mozilla-based application until it started to look and act like a Mac app.

    And, if they were a little more informed they'd know they'd know about chrome!

  • I have never heard "lightweight" and "Emacs" in the same sentence.

    Dave
  • 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.
  • this is as useless as tits on a bull unless it runs on more than one OS.

    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...

  • by YoJ ( 20860 )
    I don't personally use IDEs. Make is 10 times more powerful than any IDE I've tried. But IDEs are really important for new programmers. When you're learning your first language, you don't want to be simultaneously learning the make language.

    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:
    >Programming is more than ... kludging your way along...

    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 ;^). Tools don't make people idiots, they were idiots before they picked up the tools.
    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
  • Maybe, if I cared to try fixing something so fundamentally broken. I really don't see why people want a browser that won't fit in their machine's address space. I have the CVS repository sitting on my machine. But where in the midst of the 400MB of spaghetti code might problem 4553423 of 932497198 be? It's not worth my time. Other pieces of code are better-written, more instructive, and easier to understand.

    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.
  • 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.

    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 [w3.org]. 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?
  • I'm not surprised.

    One of the advantages of open source development is that, if you have enough projects going, you have a tremendous potential for reuse of code. Another is that since APIs and file formats are genuinely open standards, modules become more consistent and encapsulated. Still another consequence of using open standards is that 'embrace and extend' becomes very difficult, if not impossible. Adding new features is easy, but it is tough to lock your users into your product line.

    Result: (ok this isn't anything new for us, but I'm getting to my point) UNIX-- where you have a million highly optimized tiny programs that do one thing well (and are reused everywhere by everything) instead of a few monolithic packages that barely interact with one another.

    OK, nothing new so far. Here's the point: this is old hat to us, but a brand new concept to the end-user world! The whole idea that you could use parts of one application in another is just foreign to them. In the DOS/Mac world, features come from individual blocks of code. In the open source world, features are derived from the links between those blocks. If you didn't grow up with it, it is a totally new way to think about computing.

    Another result- development of brand new applications will be faster, too, since good code gains value with every re-use with minimal development, rather than having to be reimplemented.

    Say someone wants to create a WYSIWYG word processor, or a page layout program. Or some totally new application concept. Well, hey, let's just use pieces of Mozilla. And the program is in alpha release a few months later. I suspect that it will take years for the full significance of the concept to hit people.

  • 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 [etoys.com]. 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.
    ___
  • Play nice. Not all Mac users are newbies.

    I didn't mean to imply they were. This one was fairly experienced -- but not a tech -- so I was a bit surprised about thier dead-pan answer. In fact, I'll be quite happy to take any spare Mac hardware -- PPC+ -- you might have!

  • Bits are bits...I agree that you should always use what works for the task at hand. If you're focused on Python, it's probably because of what you're doing now.

    Mozilla is not limited to being a UI or part of an IDE...or a web browser. The ability to hook it up for your own uses is what makes it valuable.

    If your tasks change, you might see value in using Mozilla. I've not found it to be bloated, but it's not built to be a single-function widget...so I don't need to see it work like one. Stripping out the parts that aren't needed -- and that will happen -- will make it a bit peppier. The only question is what parts aren't needed? It's limited to the task at hand.

  • What, isn't Safe Perl done yet? There was a lot of (obviously pretty localized) noise about how much better Perl would be than Java or even (or especially?) JavaScript as the extension language for web clients. Ah, it doesn't look like Safe Perl got past the proposal stage [ox.ac.uk] back in 1995. Then again, "man Safe" gets me documentation for it. Time for a visit to CPAN [perl.com]!

    Safe TCL [scriptics.com] 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.

  • by Shaheen ( 313 ) on Thursday May 25, 2000 @06:50PM (#1047244) Homepage
    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.
  • by Captain Teflon ( 15632 ) on Thursday May 25, 2000 @06:59PM (#1047249)
    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.
  • 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.

    Thanks for the tip; the official press release was far from clear on this point. :-)

    Basically Activestate are going to go through the code and rip out all the Javascript-specific assumptions. It's going to rock!

    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...

  • TUIPeer [bmsi.com] 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 :-)

  • 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!

  • 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.
  • 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.
  • That's one way of looking at things, and it's obviously very popular -- but there is a price to pay. I highly recommend reading this excellent essay at Salon.com:

    The dumbing-down of programming [salon.com].

    --

  • 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.
  • 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?

  • Damn /. doesn't know what "plain old text" means. That should be [right-click]"find definition".
  • 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.

  • 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.

  • by Gurlia ( 110988 ) on Thursday May 25, 2000 @04:41PM (#1047273)

    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.


    ---
  • by Money__ ( 87045 ) on Thursday May 25, 2000 @04:41PM (#1047274)
    From: http://Activ eState.com/Corporate/Media_Center/News/Press959150 636.html [activestate.com] "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."
    ___
  • "client-side" perl doesn't mean that it has to be executing perl code downloaded from random webpages. it means that you can write a *local* app, in perl or python, using the mozilla framework. the perl/python/javascript code controls what the menus do, provide all the actual application interface. the app itself doesn't even need to be a webbrowser!
  • by Imperator ( 17614 ) <slashdot2@nOsPAm.omershenker.net> on Thursday May 25, 2000 @04:43PM (#1047278)
    As much as I love the idea of <script language="perl5.6.0"></script>, 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?
  • You don't need an IDE for that. ctags and etags have been around for years.
  • by SimonK ( 7722 )
    I've heard this before, but ctags can't even distinguish between a function's definition and its caller, let alone complicated things like what class it's in.

    I'm no big fan of the current notepad-with-a-compile-button species of IDEs, but this is, I think the biggest weakness of plain-old-text programming.
  • The Poll Mastah answers in the form of a Poll:

    What should you answer when someone asks you about Perl security?

    1. Use the Safe module
    2. Enable taint-checking mode (perl -T)
    3. Go and RTFM (sorry, no offense intended, this is just the obligatory Standard Slashdot Response)
    4. All of the above.
  • Sorry, but Chrome is a poor excuse for native UI widgets. Even if you can match the look - not always possible - the behavior is usually pretty shoddy.

    I don't get that you're "sorry".

    Instead I hear "Bitch, bitch, bitch". Do you have access to the source or not? What complaints do you have now? Are you doing anything to change things, or is it all complaints?


  • From my personal expeirnce, most IDE that I have used (on any platform) kinda blow. Every IDE I have used up to this point REQUIRED you to use the mouse. Which is really annonying if you right in middle of a peice of code.

    With [insert_favorite_text_edit] (mine is vi) you bang out a couple keystrokes and you can quickly do about anything from compling it, to running it, etc, etc without leaving the keyboard.

    It has became like second nature or a habit

    esc:w:!./program_name

    when writting and debugging perl scripts, takes 1 second, 2 at most. Most IDE (haven't used many for perl) take 2-10 mouse clicks to compile and run the program, takes 5 to 20 seconds at most.

    Personally I just find IDE uncomfortable compared to vi, virtual consoles and bash

    Hell most of the type I have a virual console open with bash or tcsh as the shell and to say compile or run the program I could just switch to the console and press the up key and enter and get a full screen output, not one of those tiny little windows

    Ctrl+Alt+F2 [up] [enter]

    Just habit I guess

    Plus awhere I am at, the development envoirment doesn't change, wheather it be Linux, OpenBSD, Solaris, etc. etc they all got vi and the say GNU goodies everyone has come to love (Perl, GCC, Python)

  • ---
    Yeah and an even more informed Mac user would actually spend some time making the native UI for Mozilla, instead of sniveling about how it's not supported.
    ---

    Yep, imagine that. Someone who doesn't want to code every app he or she uses. Believe it or not, some of us have a Real Job (involving coding, ironically) or a life outside computing that we'd like to see once in a while.

    Sorry, but not everyone lives in your little world. For some of us, coding a UI around a browser isn't an option. But do you, as a coder (although I'm not really convinced you are one) really prefer to code without any input from your userbase? If so, I'd hate to see the quality of any software you've written...



    - Jeff A. Campbell
    - VelociNews (http://www.velocinews.com [velocinews.com])
  • I love VIM. I have it installed on my Windows box. I learned to program C using vi and tutored other people in vi. I even wrote a vi-emulation mode for brief.

    But there is a hell of a lot an ide will do for you beyond a compile button. Visual C++ will automatically find where a variable is defined. it will allow me to add files to a project with a mouse click instead of a makefile edit. It will tell me what modules call the symbol I've highlited. It will show me the header comment attached to the function call I've highlited. That's just a few things. IDEs can be incredibly useful if you know how to use them.
  • by ninjaz ( 1202 ) on Thursday May 25, 2000 @07:22PM (#1047290)
    That's what the perl module Penguin does. You can find it on any CPAN mirror in the modules/by-module/Penguin directory. Eg., at ftp.freesoftwar e.com [freesoftware.com] in the /pub/perl/CPAN/modules/by-module/Penguin/ directory. Here's a snippet of the FAQ in its tarball explaning how it works:
    'Saaaay, what _is_ the design of Penguin?'

    Glad you asked.

    Consider two machines, foo and bar. A user on foo (or perhaps a program on foo) wishes to execute a program on machine bar. However, imagine that the people running bar don't want just anyone running code on their machine for security reasons. This is the normal case on the Internet, and one which the World Wide Web attempts to emulate with HTTP and CGI.

    Normally, there is no well-known channel for foo to transmit code to bar. Further, there is no provision for the code to undergo verification after transmission. Too, there is no well-defined way for bar to ensure that foo's code does not attempt to perform insecure or damaging operations.

    Penguin attempts to solve these issues while making sure the code language maintains some acceptable degree of sufficiency and power. Using Penguin, the user/program on foo 'digitally signs' the code that's earmarked for delivery to bar. The signature encodes the code in such a way that it is impossible to alter the code or deny that the signer signed it.

    The code is then wrapped up into a packet and transmitted through a 'channel' to a Penguin process running on machine bar. The channel's protocol layer is abstracted away enough that it becomes unimportant; Penguin code can just as easily be delivered through SMTP or AOL Mail as through TCP/IP, DECNet, AppleTalk, whatever.

    The Penguin process on bar unwraps the packet, which contains further verification and checksum information, and then 'digitally unsigns' the code, a process which provides the code in 'clear' form while telling the receiver who digitally signed it.

    The receiver then cross-references the signer's identity with a list of rights that the receiver associates with the signer, reverting to a set of default rights if the signer is unknown or unlisted.

    A safe compartment is then created, populated with the functions allowed to the signer, and told to limit the operations it can perform to only those permitted to the signer.

    The code is then compiled within that safe compartment. If it attempts to do something which the signer is not allowed to do, or if it attempts to call a function not permitted to the signer, the compartment immediately traps the operation and throws the code away before it can execute. If the code uses no unsafe or illegal operations, then it executes and produces a result.

    The code executing side then becomes the master in the transaction, and can send code to the original sender, send the return value back in a data packet, and so forth. The process repeats as necessary until both parties are done; the channel then closes, and the Penguin transaction is complete. The basic sentiment behind the idea of 'identity' being correlated to 'rights' in the receiver is that in signing the code, the signer commits her identity and her reputation on the correct operation of the code. 'highly trustable' signers (as one might imagine Larry Wall, Randal Schwartz, and Tom Christiansen to be) might be assigned very high levels of trust and equivalent degrees of 'rights', so that programs they sign can perform very complex and interesting operations on your computer. By the same token, paranoid sites or those wishing isolation could assign zero rights to everyone except for a select (perhaps internal) few.

    Part of the 'rights' given to signers include possibly specialized functions that encapsulate the functionality of extremely dangerous operations. For instance, a store opening up on the Internet might put up a Penguin server which put functions called 'list_items' and 'buy_item()' into the limited compartments all users get. 'list_items' might open up a file on the store's machine, read the contents, and spit them out -- an operation which, if allowed in the general case, would clearly breach security. However, by creating a specialized function, the security concern is removed, and by letting potential customers know of the function, the power and ease of use are kept high.

    Niggling but important technical issues currently being wrestled with include the way that foreign functions are registered into the namespace, the construction of a foreign function framework so that the names and function of the functions are well-known, and a superior-than-current 'digital signature' method.

  • ---
    And, if they were a little more informed they'd know they'd know about chrome!
    ---

    ...and the most informed of all will sneer derisively at the concept as chrome can never perfectly replicate the intricacies of an operating system's native widgets (look or feel), and as soon as the user decides to use a system-wide theming program such as Kaleidoscope [kaleidoscope.net] (or the built in MacOS theming system [macthemes.org]) Mozilla looks awfully out of place.

    Sorry, but Chrome is a poor excuse for native UI widgets. Even if you can match the look - not always possible - the behavior is usually pretty shoddy.

    (And it's going to be even worse when MacOS X [apple.com] hits...)

    - Jeff A. Campbell
    - VelociNews (http://www.velocinews.com [velocinews.com])
  • by pneuma_66 ( 1830 ) on Thursday May 25, 2000 @06:49PM (#1047294)
    On activestate's homepage there is a link [activestate.com] to a press release about Visual Perl and Visual Pyhon for MS Visual Studio 7.0

    cristiana
  • 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.

    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.

  • I can't see why anyone would need more than a few Xterms running vi, gdb, and the standard unix tools (grep, awk, sed, etc.)

    I've not yet seen an IDE as scriptable as bash.

    I've never seen an editor that lets you accomplish programming-related tasks than vi, although emacs is close and I admire many of its features.

    I must admit, however, I am currently being swayed down the dark path of some of the nicer GUI debuggers out there...
  • Client-side perl has been available for a long time. But it's only available using a certain browser:

    The folks at ActiveState have also developed something they call PerlScript, which is an ActiveX scripting engine for Perl. 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. Not too shabby, eh?
    (From http://msdn.microsoft.com/workshop/essentials/webm en/webmen1103.asp [microsoft.com])

    Yep. That's right. Client-side perl using Internet Explorer. Since 1997.

  • by Forge ( 2456 ) <kevinforge AT gmail DOT com> on Thursday May 25, 2000 @04:56PM (#1047308) Homepage Journal
    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.

    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 /mnt/cdrom either :).

    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 ?
  • ---
    I don't get that you're "sorry".
    ---

    Really?

    ---
    Instead I hear "Bitch, bitch, bitch". Do you have access to the source or not? What complaints do you have now?
    ---

    It's called 'feedback'. On occasion, some developers are known to be responsive to it, rather than telling their userbase to fuck off or to code it themselves.

    This isn't some obscure command line utility, this is Mozilla/Netscape which - I assume - is meant to be used extensively outside of the development community that created it. Since many developers can't develop user interfaces for shit (and the better ones will admit it), I'd hope that they'd be more receptive than you.

    ---
    Are you doing anything to change things, or is it all complaints?
    ---

    Guess what? Good companies spend a lot of time soliciting feedback from the public. The above statement makes the dubious assumption that my 'complaints' (for lack of a better term) aren't an attempt to 'change things'. I disagree, and hope that you're not as rude to your own userbase.

    ...Anyhow, would you rather respond to my actual points re: Mozilla's user interface, or are you going to attack me personally instead?


    - Jeff A. Campbell
    - VelociNews (http://www.velocinews.com [velocinews.com])
  • by JohnZed ( 20191 ) on Thursday May 25, 2000 @08:47PM (#1047323)
    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.
  • by Carnage4Life ( 106069 ) on Thursday May 25, 2000 @05:00PM (#1047327) Homepage Journal
    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.
    You contradict yourself by asking two contradictory questions. 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. Now if you are asking which is better to learn a language with then the answer definitely should be a bare bones editor so that certain quirks of the IDE do not seep into one's programming style. Novice programmers are fond of using IDEs as a crutch and more than once I've seen kids crash and burn when removed from the Visual Studio world and transplanted into a Unix environment. I hope this answers your question. Of course questions like yours ignore the fact that a programming language is merely a tool used to perform a task and not a religion or esoteric art to be mastered in all its minutae. Frankly anything that makes you more productive gets an A in my book.

    Now so as not to be marked offtopic by some anal retentive moderator here are my comments about the article, clientside perl will be welcome addition to the scripting arena, it is really cool that Mozilla's original plan to be more than a browser and instead to be an engine/building block component similar to MSFTs COM components is working. Go Mozilla!!!

Real Users know your home telephone number.

Working...