Application and web app technologies

[email protected] wrote in message
news:[email protected]

time ago but have never actually written any C++). The problem is that
none of us can compare apples to apples, even though we more or less
can do what needs to be done with the tools we know.

I don’t expect the ‘magical beast.’ What I do expect is several posts
along the following lines: ‘We faced a similar situation, and used X,
Y, and Z. X proved the best choice because of reasons A, B, and C. The
problem with Y was D and the problem with Z was E.’

But that’s what makes it impossible to give you any meaningful advice:
every
situation is different. Without being intimate with your architecture
and
what exactly web scripting and admin scripting means to you, it’s nearly
impossible to give vanilla advice about what language to use. You also
need
to bear in mind the skill set at your disposal. If no one knows the
language
you want to use, do you have time to account for the learning curve? Do
you
really want to try and replace all your programmers?

In Perl’s defence, bad programmers write bad Perl code. There is nothing
about the language that makes for unreadable code, only how you choose
to
write it. Going OO should be a no-brainer if you stay with Perl (just
for
the maintenance savings alone), but regardless of which language you
choose
you should have your programmers develop an accepted style (everything
from
how to name functions to how to structure your code library). If you let
programmers build their own little universes they will!

we need to rewrite the code is because (1) it doesn’t work (due to
external changes) and (2) it takes us less time to write new routines
that it does to decypher the old ones and modify them.

That’s again a sign of poor documentation coupled with bad style. It
will
always take a while to get back into your code, no matter what language
you
use. If you maintain consistency as you go, however, it eases a lot of
the
curve when you have to go back. You should probably look at other
measures
that involve your programmers more in making the coding a collective
practice (peer review, for example). So long as the focus is
constructive,
it will help the group better understand what they should all be
striving
for and what they should all be doing. That more than anything will help
prevent you from winding up in the same mess in a few years when you
discover each person has their own coding ideas for whatever language
you
opt for.

Matt

If no one knows the language
you want to use, do you have time to account for the learning curve? Do you
really want to try and replace all your programmers?

We don’t have any ‘programmers’ on staff. At most, we have several
people writing, maybe, two hours of code a week, with maybe once a
year building an application. We are just your basic IT shop, system
and network administration, hardware, help desk, the web site, and
database administration. This is also the reason for the ‘bad code’ (
which we have in abundance.) People who are not programmers and whose
job it isn’t to program will not write good code. I’m not being
perjorative, just factual.

If you let
programmers build their own little universes they will!

Yeah, well, if you have a database admin writing his scripts, a network
admin writing his scripts, and a couple of floaters trying to fix
things that break, with no one holding the reins, you get little
universes. Which is what happened and which we want to be proactive and
prevent in the future.

You should probably look at other measures
that involve your programmers more in making the coding a collective
practice (peer review, for example). So long as the focus is constructive,
it will help the group better understand what they should all be striving
for and what they should all be doing. That more than anything will help
prevent you from winding up in the same mess in a few years when you
discover each person has their own coding ideas for whatever language you
opt for.

Exactly! And a major decision is deciding on a technology so that we’ll
all be using the same thing.

Actually, Java was a pretty easy decision to make, since we already had
a problem with Perl, no one wanted to do C or C++, and no one knows VB,
and most of us had used Java at some point along the way. HOWEVER, we
know we face a learning curve, and we want to get the most bang for the
buck, and we have a good enough handle on our Perl scripts so this
isn’t a time critical desicion, so we are just looking.

CC

On Jan 3, 2006, at 17:47, [email protected] wrote:

I have
learned to cringe when I reply, ‘Perl.’

For each language L you’ll need to cringe at someone because you use
L. Some people love Python, clean, design well-taste, blah, blah,
some can’t stand its whitespace conventions, can’t stand the mix
functions/methods, its documentation (that’s me) etc. Some people
love Ruby, some think it ends up being too dense, lack of mature
libraries versus such and such, blah, blah. Some people love Perl,
some say it’s line noise, blah, blah. Lisp, Java, Eiffel, C++, C, …

It’s a lost battle :-).

– fxn

ccc wrote:

We don’t have any ‘programmers’ on staff. At most, we have several
people writing, maybe, two hours of code a week,

Fine !

with maybe once a
year building an application. We are just your basic IT shop, system
and network administration, hardware, help desk, the web site, and
database administration. This is also the reason for the ‘bad code’ (
which we have in abundance.) People who are not programmers and whose
job it isn’t to program will not write good code. I’m not being
perjorative, just factual.

Let’s be positive : 2 hours of bad code a week is better than 40 hours
of bad code a week.

And what is bad code and what is good code ? Your problem doesn’t seem
to be a programming issue, Often, the problem is not at this level,
trying to find ‘the good language’ is just spending time, there is no
‘good language’, it is just a thing that doesn’t exist in the real
life,

Gathering code to make an heteroclitic system is never a good solution,
threwing heterodoxic code (but maybe good code) to the trashcan is not
a good solution, rewriting in another language is painful and bug
prone, therefore not a good solution if not the worst.

In the real life, there is no good solution but many false problems.
Your problem in not a programming problem but a liability problem, not
seeing this problem will give more problems.

What do you expect ? You crosspost to perl, python, java and ruby NGs,
Do you want me to say ‘Ruby is better’ ? This would be stupid.

You have Perl code that you seem to find non understandable ? Does it
work ? If it works, it’s ok but it would have been better if you
understood why.

My advice : Just don’t touch anything.

FU2

On Wed, Jan 04, 2006 at 06:37:58AM +0900, ccc wrote:

Actually, Java was a pretty easy decision to make, since we already had
a problem with Perl, no one wanted to do C or C++, and no one knows VB,
and most of us had used Java at some point along the way. HOWEVER, we
know we face a learning curve, and we want to get the most bang for the
buck, and we have a good enough handle on our Perl scripts so this
isn’t a time critical desicion, so we are just looking.

I don’t foresee this solving your problem in the least. Unreadable or
unmaintainable code can be written in any language.

That having been said, however, you could do worse than Java for your
purposes. After all, limiting the damage that large numbers of mediocre
programmers can do over an extended period is the one thing at which
Java seems to excel most.


Chad P. [ CCD CopyWrite | http://ccd.apotheon.org ]

“A script is what you give the actors. A program
is what you give the audience.” - Larry Wall

On Wed, 04 Jan 2006 00:47:22 +0100, Harpo [email protected]
wrote, quoted or indirectly quoted someone who said :

Gathering code to make an heteroclitic system is never a good solution,
threwing heterodoxic code (but maybe good code) to the trashcan is not
a good solution, rewriting in another language is painful and bug
prone, therefore not a good solution if not the worst.

heteroclitc – irregular, abnormal
heterodoxic – unorthodox

Xavier N. wrote:

For each language L you’ll need to cringe at someone because you use
L. Some people love Python, clean, design well-taste, blah, blah,
some can’t stand its whitespace conventions, can’t stand the mix
functions/methods, its documentation (that’s me) etc. Some people
love Ruby, some think it ends up being too dense, lack of mature
libraries versus such and such, blah, blah. Some people love Perl,
some say it’s line noise, blah, blah. Lisp, Java, Eiffel, C++, C, …

It’s a lost battle :-).

It’s not a lost battle here … unless you’re advocating something other
than Ruby. :slight_smile:

Seriously, though, Ruby is a young language that’s had a chance to learn
from the mistakes of its ancestors. The things it’s missing –
Lisp-style macros are the only major one I can think of at the moment –
aren’t things that necessarily are useful to a lot of programmers. A
few improvements in the performance of the run-time, and Ruby could well
rule the world.

But it will never replace R. :slight_smile:


M. Edward (Ed) Borasky

http://linuxcapacityplanning.com

ccc wrote:

Exactly! And a major decision is deciding on a technology so that we’ll
all be using the same thing.

If I had to pick a technology to unify in a development shop, it’d be
the source code repository. More important, though, is unifying the
version/build process.

Actually, Java was a pretty easy decision to make, since we already had
a problem with Perl, no one wanted to do C or C++, and no one knows VB,
and most of us had used Java at some point along the way. HOWEVER, we
know we face a learning curve, and we want to get the most bang for the
buck, and we have a good enough handle on our Perl scripts so this
isn’t a time critical desicion, so we are just looking.

Try Ruby. It’s friendly for Perl users, but object-oriented enough to be
competitive with Java (which, granted, isn’t saying much).
http://tryruby.hobix.com/

Of course, this is a Ruby mailing list, so don’t expect lack of bias…

I do agree with everyone else, though, that your solution may best be
acquired in a non-technical way first. Once you’ve found that your
process is improving, and you’re able to track changes, and whatnot,
then you can look around for new toys – er, technologies – to play
with.

Devin

I don’t foresee this solving your problem in the least. Unreadable or
unmaintainable code can be written in any language.

That having been said, however, you could do worse than Java for your
purposes. After all, limiting the damage that large numbers of mediocre
programmers can do over an extended period is the one thing at which
Java seems to excel most.

A pretty high priority is getting everyone to use the same language. If
we do that, we will at least have the benefits of cross pollination,
and other shoulders to cry on if something doesn’t work.

The pay is low, but one of the benefits of working at a school is that
you get your education at a greatly reduced cost. We have a PhD
candidate in SwEng, several MS candidates in CS, and several MSs in CS
floating around, and Java is real big right now in academia.
Personally, I just have this nagging suspicion, an anxiety really, that
we haven’t done everything we should unless we look at alternatives.

But we’ll probably gravitate to Java, kind of like a satillite falling
to earth – it’s gravitational attraction is so strong that it’s a lot
more work to try something different. That said, I really like Perl,
but it seems too hard to use in an environment where we have a lot of
turnover and always need to change something someone else has written.

Thanks for your advice, this exchange has been helpful for us.

CC

ccc wrote:

[snip] We are just your basic IT shop, system
and network administration, hardware, help desk, the web site, and
database administration. This is also the reason for the ‘bad code’ (
which we have in abundance.) People who are not programmers and whose
job it isn’t to program will not write good code.

Technology is not your problem just as the above are not the reasons
for the bad code. In my 15 years in IT, I’ve see bad COBOL, Quickjob,
JCL, Java, shell scripts, DB modeling, Perl, SQL, ABAP, etc. Bad code
moves from one language to another. Procedures such as good coding
standards, peer reviews, adherence to coding standards, etc are the
key.

Yeah, well, if you have a database admin writing his scripts, a network
admin writing his scripts, and a couple of floaters trying to fix
things that break, with no one holding the reins, you get little
universes. Which is what happened and which we want to be proactive and
prevent in the future.

Exactly! And a major decision is deciding on a technology so that we’ll
all be using the same thing.

Ah, one language fits all. Perhaps OO COBOL should be considered. :slight_smile:

Actually, Java was a pretty easy decision to make, since we already had
a problem with Perl, [snip]

IMO, your problem was not with Perl, it was not having standards,
reviews and quite possibility the staff’s unfamiliarity with the Perl
language. Is it unreadable code or code that uses more advanced
techniques than the programmers knowledge?

Len

but it surprises me that the ColdFusion web apps aren’t.
Call it a personal bias, and ignore it, I guess.

CF is like that torx screwdriver in the toolbox. It only works on a few
things, but boy, it does a good jopb on those. For our websites, we use
a combination of CF, Dreamweaver, and Photoshop, and these have worked
extremely well. I’m not a fan of proprietary software, but I’d put CF
up against PHP, ASP, and CGI-Perl/Python any day.

I’d never go so far as to say that any of
them are “the best”. Languages tend to have strengths and weaknesses,
and which is best to use for a given project depends on the project and
the people involved.

Right. We don’t build big apps, but we have a need for something that
isn’t too difficult for people to get up to speed on, that can be used
in different contexts, and that will be around for a while.

I’m a little confused by the desire to make everything use one language.

Not ‘everything’ but ‘everything we do.’ Probably about ninety percent
of what we do involves writing some kind of data to a DB, then reading
the data and spitting it out in one for or another. Unfortunately, we
also deal with a number of different systems, AIX, Linux, even BSD,
although our unit is primarily a MS shop.

It might make sense to standardize on a small number of languages,
depending on your organization’s needs (I’ve never done any information
technology work in academia so I wouldn’t really know its peculiar
needs), I doubt there’s a silver bullet language for you, no matter what
Sun and MS might tell you about Java and .NET respectively.

Yeah, and we have a couple of folks excited about Monad (MSH). I don’t
think our needs are any different from any other small shop. We have a
bunch of non-programmers hacking on code, using the language of their
choice, with the predictable results. Perl I think is the ‘silver
bullet’ that will kill all the vampires, but in our experience it’s
proven more than we can handle given our turnover and different
abilities and interests.

We’ll probably standardize on a ‘big’ language and a ‘little’ language.
Just before Christmas, I had to send a bulk email to students matching
certain criteria, and I wrote a little Perl script of less that 20
lines that ran the query, cleaned up the data, sent the email, and
generated reports on those getting the email and those not getting it
(6 out of some 200 names). I figure Java would have required a lot more
code, but I would hate to have to ever look at my Perl script again.
Which is why we are looking at trading some ease of development in
exchange for some persistence of the codebase.

CC

“ccc” [email protected] said:

I am a Perl fan, but after having looked at scripts someone else
wrote (who is no longer with us) with a view toward updating them, I
have concluded that a quick and dirty scripting language in someone
else’s idiom isn’t a very good choice institutionally. Which is why I’m
looking at OO Perl.

This tells a lot more about the original author of the scripts than the
language used. I’m seeing unmaintainable code written in pretty much any
language. Java (and in some ways, especially JSP in the web side) is no
cure for that.

Having said that, it may be easier to write unmaintainable Perl than
unmaintainable Java. The key is to educate (and to a certain limit
restrict) the programmers on what kind of code is acceptable to write.
And this work I think is not that dissimilar between different
languages.

Also, OO is not a magic bullet in making code readable. At worst it
gives the programmer a couple of extra levels of indirection to use
just to complicate the otherwise streamlined program. OO is good
where the data used naturally forms nice object relationships, but
there are a good number of cases where this does not happen (or at
least the relationships do not help that much in solving the actual
problem).

If you really, as you mentioned somewhere, want an all-around-language,
then Perl might be your best bet. Java is nice for web applications,
however I wouldn’t use it for sysadmin stuff (or, it could be used
for part, but part is that you need an one-off tool; something you
cook up fast and use once or twice – or a quick modification for
the existing tools). Also, much of sysadmin (esp. on Unix side) is
processing various text formats, which is one of the great strengths
of Perl. It’s not just regexes (which finally are available in Java
as well), but overall facilities of the language.

Then, regarding the performance/efficiency; yes; there are cases where
use of C is justified for performance reasons. This performance
comes at a cost of programmer productivity (and possible higher
rate of certain kinds of errors). Also, in higher-level languages
the libraries are getting pretty-well tuned at least for the general
case, so it may well be that much of the general routines you find
in the library of a given language are of better performance than
something you yourself cook in C.

Another area where C would be useful is for making the necessary
glue to access some backend system (for which only C interface
library is provided) in the higher-level language of your choice.
A good example of this are the various database connectivity modules
in Perl (part Perl, part C; linking to the database client library
code).

So, overall:

  • you’re a Perl shop - however have lost some of your assets
    (knowledgeable personnel)
  • one problem may have been too great independence of the developers,
    and lacking maintainability guidelines for the created code
  • making the hop to another language would be a major hurdle
    (possibly giving major gains, though)
  • could the same potential gains be realised without doing the
    language hurdle? Potentially yes; but would require more-or-less
    redesign/rewrite of the whole current environment, so a major
    hurdle anyway
  • does the current language limit what you can do - doesn’t seem so
  • what would be gained by another language? For some other languages
    it could be easier to find developers – however, finding competent
    developers appears to be hard for any language (competent defined
    as “able to produce code that is maintainable in the long run”)

… so, all in all, I wouldn’t be that eager in shifting from the
current. Java/JSP (and higher-level frameworks built on top of these)
could be good for web side - but these require quite a lot of knowledge
to do properly (just plugging things from a full Java/J2EE toolbox to
solve your problem could well give you nothing else but horrible
performance problems – whereas proper use of J2EE technologies could
give you a somewhat elegant solution).

Apologies for omitting completely Python, Ruby, and MS technologies;
I don’t know enough of them to do any comparision.

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs