Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

Something I wanted to share with the group.

by BigJoe (Curate)
on Aug 17, 2000 at 20:04 UTC ( [id://28312]=monkdiscuss: print w/replies, xml ) Need Help??

Recently my office was visited by a sales rep for a software tool developement company. They create tools for programmers to use for quick developement/testing and tracking. Currently our office is running MS but is being switched over to Linux servers. So when the sales rep started his speach about how it works with all of the most popular programming languages out there my boss yelled out "DOES IT WORK WITH PERL??"

His answer was "No, but...."
"We don't want it then"

The sales rep then gave my name to the head of the department that handles questions on these products. So I asked her the question I still had on my mind.

After watching his whole presentation that he gave to us, I had to laugh. The first reason was because throughout his speach he never once mentioned if his software was secure and the code it generated would be secure. Second everything that this set of software packages provided have equivelent modules at CPAN to do this.

I really think this email is an open invitation for MS bashing.
I am planning a seminar for the latter part of September and will certainly
include you on the invitation list  There will be a keynote speaker from the
lab that you can talk to directly about this.  We will also show these new
technologies.  I hope you can attend and will let you know the exact date
soon.
 
Regards,
XXXXX

-----Original Message-----
From: Harnish, Joe mailto:jharnish@ci.grand-rapids.mi.us
Sent: Thursday, August 17, 2000 11:02 AM
To: XXXXXXXXXXXXXXX
Subject: RE: Numega - Track Record



XXXXXX, 

Is there anything in the works to make it useable with PERL? 

Joseph Harnish 
456-4319 



-----Original Message----- 
From: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX 
Sent: Thursday, August 17, 2000 10:51 AM 
To: 'jharnish@ci.grand-rapids.mi.us' 
Subject: Numega - Track Record 



Hello Joe, 

Following your meeting with XXXXXXX XXXXXXX from XXXXXXXXX yesterday, I am 
sending this email to introduce myself as the NuMega sales representative. 
NuMega provides debugging solutions for VB, VC++, Java, and ASP. 
Additionally, we have stored procedure debuggers and Oracle SQL automated 
tuning.  Our Track Record product provides the ability to automate workflow 
and process automation including defect tracking. 

Attached is a weblink for additional information.  Please reference (on the 
left side of the first screen) DevPartner Studio Enterprise Edition, and 
under that heading, click on Tracking. 

http://www.numega.com <http://www.numega.com>  

My contact information is below, I look forward to hearing from you with any

comments or questions. 

Regards, 



The reason I posted this up was I need some information to present them about perl and that it is one of the fastest growing languages around. I want to be able to show them facts about this.

Also, what do you guys think of software that generates code for the programmer?

--BigJoe

Learn patience, you must.
Young PerlMonk, craves Not these things.
Use the source Luke.
  • Comment on Something I wanted to share with the group.

Replies are listed 'Best First'.
RE: Something I wanted to share with the group.
by KM (Priest) on Aug 17, 2000 at 20:22 UTC
    The reason I posted this up was I need some information to present them about perl and that it is one of the fastest growing languages around. I want to be able to show them facts about this.

    Success Stories, and noone can argue with the suck-o-meter!

    Also, what do you guys think of software that generates code for the programmer?

    No sir, I don't like it. Maybe for toy languages like Cold Fusion, ASP, D?HTML, XML, etc... it's ok, but not for Perl. One problem I have with software which does this is that if the people who program the software to write the code, can't code well themselves, then you get crappy code. Also, it helps people stay dumb, and not learn about (and how to effectively use and program) the language which is being created for them.

    Cheers,
    KM

RE: Something I wanted to share with the group.
by Russ (Deacon) on Aug 17, 2000 at 20:28 UTC
    I, for one, deeply distrust software that generates code for the programmer. With the possible exception of GUI building, I simply don't want anything to generate code for me. Anyone who relies on code generation (look at any HTML editor) is clearly not capable of evaluating the code it generates.

    Perl.com may have some statistics for you. I'm not sure I would be very interested in "helping" them corrupt our fine language with M$-style "automation"...

    :-)

    Russ
    Brainbench 'Most Valuable Professional' for Perl

      Anyone who relies on code generation (look at any HTML editor) is clearly not capable of evaluating the code it generates.

      Russ, I have to take issue with this. This is just *wrong*. I have some 300 HTML pages in the system I've implemented for the system at the office. Each one is not hand-coded and tuned, because it just doesn't matter. If you want to take the time in your favorite editor, and hand-type each and every HTML tag, and make sure it's perfectly optimized, then you clearly have more time than I do.

      The code the HotMetalPro produces is not perfect. I know this. And I don't care. It doesn't matter. And I can crank out a page, especially with a few interleaved tables, a lot faster than I can with 'vi'. And, furthermore, I can see the results as I edit. And no, I can't use CGI.pm, because it's a template type system, and also because someone behind may have to make changes to the pages, and they don't need to be mucking around in Perl code just to change a header.

      Hand tuned highly optimized HTML has a place, don't get me wrong. It's more important to be *aware* of the code that your tools generate. Use them when you can, avoid them when you can't. This same rule apples to Perl, 'C', and any other langauge you choose to pick. Perl doesn't produce perfect internal code. Neither does a 'C' compiler. It takes it best shot at it, and the majority of the time it's accurate. The only reason people are quick to judge the output of HTML, XML, and other editors is because the code is clearly much more visible than the assembly or byte code produced by a compiler. I imagine if your browser didn't have a view source button, you'd be a *lot* less aware of good vs. bad HTML.

      And besides, even if you do hand tune the HTML, the next bozo who comes along behind you may use FrontPage anyway, and all that nice work is shot. And on a 100mpbs (or even a 10mpbs) network, who cares if the line is broken in the middle, or has an extra "colspan" tag, as long as the HTML is valid, and produces the output required?

      I'm not advocating writing bad code, or bad HTML. I'm advocating being aware of the output you and your tools produce, be it the compiler, HTML editor, or whatever.

      By the way, it's my opinion that most HTML editing tools are designed to make web pages accessible to people who don't want to or shouldn't have to learn the intricacies of HTML. If it weren't for these people, even with their "Hello, World" web page, the web would be a much smaller, and less popular place.

      --Chris

      e-mail jcwren
        If you're not a 'professional' web designer, i see no point in you learning HTML, and if you are you should only use WYSIWYG editors when the boss says, "I need a new webpage in 5 min."

        In my opinion, handcoding is meant for 'template driven' sites. You just design your template, optimize your code, and populate the template with content in its reserved spot.

        Anyway most WYSIWYG editors have the option to edit the actual html source, and control any and all comment that get automatically generated.

        The real power of WYSiWYG editors is automation. For example, if you have a 'template driven' site with some 500 odd pages, DREAMWEAVER or FRONTPAGE will let you change the TEMPLATE and update every page accordingly and automatically.
         

        "cRaZy is co01, but sometimes cRaZy is cRaZy".
                                                              - crazyinsomniac

        While I sympathize with russ, I simply have to agree with you. Automatic code generation off of a data structure is a very powerful idea. In fact one of the nice things about Perl is how easy it makes this to do.

        Anyone who disagrees should simply stop and think about the process of pulling data out of a database and spitting out formatted HTML...

        EDIT
        I thought about it and an even better example would be something like Parse::RecDescent. Pass it a string description of a grammar. It generates a parser for you. An example of automatic code generation of Perl in Perl which has been recommended several times by the likes of merlyn.

        So while I absolutely think that a lot of code generation tools are abysmal, code generation (even generation of Perl) is a concept that should not be categorically thrown away.

        Each one is not hand-coded and tuned, because it just doesn't matter. If you want to take the time in your favorite editor, and hand-type each and every HTML tag, and make sure it's perfectly optimized, then you clearly have more time than I do.
        In my experience, I can hand-code HTML far easier than I can deal with an "editor." The HTML will come out clean and nicely indented, allowing much more efficient changes and extensions later. It might be different if I were tasked with 300 plain HTML files with no code, no functionality.

        However, I think you may have missed my point. I am addressing the "people who don't want to or shouldn't have to learn the intricacies of HTML." This may be acceptable for something simple, like HTML creation. But, do you really want people using "automatic" Perl code generators on your servers? Those people who don't want to learn the intricacies of Perl are the very people who should be forced to do so, or ask for professional assistance.

        Concerning the "extra colspan," I am referring to HTML that is a few K when hand-coded, but 40-50K from some editor. They tend to put gratuitous font tags around every element, create nested tables for no reason, duplicate style information and colors repeatedly and redundantly, over and over. This mess is far from maintainable, except in another editor, where the junk may be compounded even further.

        On a 10Mbps network, 50K files will download quickly. Are we willing to inflict that kind of wastefulness on an unsuspecting world (who likely do not have OC3 connections to the internet)? How long do you like to wait while Netscrape renders a pile of highly inefficient HTML? Bad HTML is a more serious problem than simple download times.

        Russ
        Brainbench 'Most Valuable Professional' for Perl

        If it weren't for these people, even with their "Hello, World" web page, the web would be a much smaller, and less popular place.

        Ok, now I'm confused, your english seems to imply that this would be a bad thing somehow ;-)

        Nuance Who doesn't have a web page because it would only say something banal like "hello world"

      Anyone who relies on code generation (look at any HTML editor) is clearly not capable of evaluating the code it generates.

      Then again, many of the functions in the CGI module generate HTML for us, and many other modules in Perl provide a cleaner user interface to some other language/system by generating the code for whatever the application is. So there is a place for it...

      On the other hand, I don't think I'd really be to psyched about seeing a product that automated Perl generation...

        One thing to remember about the CGI module although it can generate code,
        it was written by PERL programmers, for PERL programmers.
        I started out using HTML generators and they NEVER looked right.
        Simply because there are too many ways to write a page to look the same.
        The same is true of PERL it is too smart for one programmer or company.
        Anything that generates code strips the language of it's beauty.
        The craft should be left to the craftsperson.

        Many of the functions in CGI generate HTML, but I suspect that most people (like myself) tend to use CGI to grab and manipulate the form input, but not to write the html. (Of course, that doesn't include things like CGI::FastTemplate, but functions lik &h1())

      The reason I brought this up is because there seems to be a nice logging application that will monitor cahnges with programs, track progress, etc. I am not looking at the generating part. That just baffles me that programmers are actually buying $1 million worth of this product.

      --BigJoe

      Learn patience, you must.
      Young PerlMonk, craves Not these things.
      Use the source Luke.
        If all you want to do is monitor changes, log what's been done, and stuff like that, what's wrong with something like rcs? Of course I don't know what this program does, but I'm curious what it does that is so much better than the free tools.
RE: Something I wanted to share with the group.
by BigJoe (Curate) on Aug 17, 2000 at 20:08 UTC
    I forgot the first line of the email
    
    Joe, 
     
    Sorry, no.  Customers are pulling us in the direction of Java, ASP and
    process automation.  Our development efforts are concentrated on enhancing
    these technologies.
     
    


    --BigJoe

    Learn patience, you must.
    Young PerlMonk, craves Not these things.
    Use the source Luke.
RE: Something I wanted to share with the group.
by jlistf (Monk) on Aug 17, 2000 at 20:32 UTC
    Also, what do you guys think of software that generates code for the programmer?

    what?

    aren't programming languages (some of them at least) already pretty high-level. its not like we're working in machine code or assembly. most Perl programs (and Java and even C++ to some extent and probably python) are reasonably easy to understand if they were written well. what exactly would the user tell the program anyway? "write a program that will validate form data, enter it into a database and send the user an email." i guarantee that it wouldn't work out. for a simple language like HTML (which has no control structures, no variables, just text processing) you could do it (and it has been done), but not for higher-level languages. some routines could be automated, but isn't that the idea of OOP, modules and CPAN?

    another point. larry wall's a linguist (or was or knows the stuff or whatever). and he designed Perl to be similar to most natural languages. in order to write a program that automatically generates code, we're delving into some heavy-duty AI.

    jeff
RE: Something I wanted to share with the group.
by BlueLines (Hermit) on Aug 17, 2000 at 22:27 UTC
    have you played with glade before?

    i don't know about most of you, but i find X/GTK programming to be highly non-trivial. Glade is a GUI builder written in C and GTK. You can set up the user interface and tie particular actions to subroutines elsewhere. I've used it in C, but it (supposedly) can generate perl and python as well. I wouldn't consider the use of something like this as a "bad thing", as it still forces you to have functional and solid code underlying the fancy top....

    BlueLines

    Disclaimer: This post may contain inaccurate information, be habit forming, cause atomic warfare between peaceful countries, speed up male pattern baldness, interfere with your cable reception, exile you from certain third world countries, ruin your marriage, and generally spoil your day. No batteries included, no strings attached, your mileage may vary.

      Glade also has support for Perl. I gave this a try recently, to see if it would be usable for the Gtk/Perl Internet Chess Server client I am writing. I found it to produce pretty good code, but there are a few things I didn't like.

      First of all, instead of a script it produces a module. While this is the form I want my program's interface in, this behavior should be optional. Particularly because you end up with a Gtk object that you won't know how to use if you don't already know Gtk, or fish an example out of the distribution. To me this lack of flexability means it should not be used as a substitute for learning Gtk.

      Another problem is, it makes complex GUIs more difficult to build. If you just want to display a dialog with a couple buttons, fine. But if you have any sort of layered or variable layout, then it's not a good sollution. For example, drawing the board in my chess client. We need not only an 8x8 grid of colored pixmaps, but also another, initially blank, grid of pixmaps to display the pieces. Now, writing this by hand it is obvious that I want to represent the board as a data structure, populate it and show the widgets, and end up with an easy interface to access these widgets again later. Handcoding, this is fairly straightforward. But, using Glade it becomes more difficult, because you have to interact with the GUI via two different paradigms at the same time; the visual representation, and the logical representation in the code. Personally, if I am going to have to understand how the code creates the widgets anyway, then I'd rather be using my favorite editor than coding in Glade, with the other widgets in my way, and whathaveyou.

      Also, what if I create my program in Glade, release it, and then people start submitting patches? After adding these in, will I still be able to use Glade? Certainly I couldn't tell everybody else to code in Glade. And, it would be an embarrassing situation if I was neglecting to include bug fixes to my code, on account of not understanding my code in the first place...

      Paris Sinclair    |    4a75737420416e6f74686572
      pariss@efn.org    |    205065726c204861636b6572
      http://sinclairinternetwork.com
      
RE: Something I wanted to share with the group.
by gumpu (Friar) on Aug 18, 2000 at 13:35 UTC

    "Also, what do you guys think of software that generates code for the programmer?"

    We use two kind of tools that generate code. One is Rational Rose, which can create C++ code out of class diagrams. You just have to fill in the body of the methods. It can also do the reverse, that is create class diagrams out of existing code.

    This allows you to do round-trip engineering. It's quite nice idea as you can manipulate your code and view your system on a higher abstract level. However it's implementation is quite buggy it looks like.

    The other form of code generation we use is to automatically install sanitychecks and dangling pointer checks in existing C++ code. This based on the class hierarchy and attributes of a class. This is all done in Perl (and was a lot of fun to implement!).

    So code generation is quite useful, it allows you to manipulate programs on a higher level of abstraction. Code generation can be a bit of a pain for the people that have to maintain the code though. Because they want to make changes in the generated code they have to first understand how the code-generating code works.

    Have fun, Frans.

RE: Something I wanted to share with the group.
by lindex (Friar) on Aug 18, 2000 at 13:22 UTC
    "cut&paste" != "programming";


    lindex
    /****************************/ jason@gost.net, wh@ckz.org http://jason.gost.net /*****************************/
      Hey, wait a second! "cut-n-paste" is respected as "poor man's code reuse". Nowadays we call it "inheritance" in a fancy "object oriented language". {grin}

      -- Randal L. Schwartz, Perl hacker

RE: Something I wanted to share with the group.
by Adam (Vicar) on Aug 17, 2000 at 20:38 UTC

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: monkdiscuss [id://28312]
Approved by root
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others sharing their wisdom with the Monastery: (2)
As of 2024-04-20 09:05 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found