 |
BorlandTalk.com Borland discussion newsgroups
|
| View previous topic :: View next topic |
| Author |
Message |
Ron Sawyer Guest
|
Posted: Fri Mar 03, 2006 9:03 pm Post subject: Opinions on using several programming languages for a projec |
|
|
I have accepted a new job. The team has been developing several custom
programs for customers and the manager wants me to lead the team in making
their code into a product.
They are currently using several development languages. When asked why they
told me that they used whatever sample code that they found that worked and
moved forward. "The best tool for the job."
I am against this kind of development. I would prefer to use one
development language where possible. I feel that it makes it more
maintainable. I feel that it makes it easier to find developers (you can
more easily find a developer who knows one language well, than several.)
A lot of their work is just a collection of scripts. Since the work is in
security, I am not comfortable with something that can be changed so easily.
There may be times when we will have to use a specific tool - maybe we won't
be able to rewrite it. But I think most of the time it would be better to
focus on one development language.
However, I like to open and I have, over the years, come to respect many of
the people here. So I would like to hear your opinions - for or against -
on using several languages for development as opposed to trying to focus on
one.
Thanks!  |
|
| Back to top |
|
 |
Alisdair Meredith[TeamB] Guest
|
Posted: Fri Mar 03, 2006 9:03 pm Post subject: Re: Opinions on using several programming languages for a pr |
|
|
Ron Sawyer wrote:
| Quote: | However, I like to open and I have, over the years, come to respect
many of the people here. So I would like to hear your opinions - for
or against - on using several languages for development as opposed to
trying to focus on one.
|
Time and again I see it is good, skilled developers that make the
difference, much more than the choice of tools. As a lead I would
recommend using whatever tools your team is most comfortable with, to
get the most out of them.
But that assumes you have good people working for you (we all like to
believe that ;?) and they are writing this code in 'best langauage for
the job' rather than pasting scripts off the internet.
THere is no magic tool that is the best choice in all circumstances,
and while there was a time you could reasonably argue C++ was always
the second best tool for any given problem, after the specialized tool
itself, I am frequently finding small problems that would be better
handled by a lighter 'scripting' language that supports much more agile
development / rapid iterations.
Likewise, I am yet to find the language I would prefer for
developing/maintaining large complex systems, especially as the
reliability requirements escalate.
So I am much more in favour of the right tool for the right job, so
long as you can clearly demonstrate it is the *right* tool, rather than
merely convenient. Let your team persuade you they have the skill to
develop and maintain this code, it each language should be easy to pick
up and maintain inside its domain (or else it was never the right
choice in the first place)
--
AlisdairM(TeamB) |
|
| Back to top |
|
 |
Robby Tanner Guest
|
Posted: Fri Mar 03, 2006 11:03 pm Post subject: Re: Opinions on using several programming languages for a pr |
|
|
"Alisdair Meredith[TeamB]"
<alisdair.meredith@no-spam-splease (AT) uk (DOT) renaultf1.com> wrote in message
news:4408acb1 (AT) newsgroups (DOT) borland.com...
For the most part, I'm in agreement. I've always preached the "right tool"
is based on some technical affinity it has for solving a problem elegantly.
However:
| Quote: | So I am much more in favour of the right tool for the right job, so
long as you can clearly demonstrate it is the *right* tool, rather than
merely convenient.
|
There are possibly occassions where the right tool is the most convenient
(depending on what your requirements are and who is specifying them). In
the event where schedule is more important than some technical
consideration, convenience would win out.
I'm not trying to be argumentative just for the sake of it, but the
convenience may have been a necessity due to some time constraints.
Cheers,
Rob |
|
| Back to top |
|
 |
Guest
|
Posted: Sat Mar 04, 2006 1:03 am Post subject: Re: Opinions on using several programming languages for a pr |
|
|
"Ron Sawyer" <XXXRSAWYER8128XQQXX (AT) aol (DOT) com> writes:
| Quote: | They are currently using several development languages. When asked why they
told me that they used whatever sample code that they found that worked and
moved forward. "The best tool for the job."
|
Not uncommon.
The project I am currently working on is written in C#, C++ and Ruby.
Another team in our firm is using java, Ruby, Python and TCL/TK. |
|
| Back to top |
|
 |
Duane Hebert Guest
|
Posted: Sat Mar 04, 2006 2:03 am Post subject: Re: Opinions on using several programming languages for a pr |
|
|
"Ron Sawyer" <XXXRSAWYER8128XQQXX (AT) aol (DOT) com> wrote in message
news:4408a5d4 (AT) newsgroups (DOT) borland.com...
| Quote: | A lot of their work is just a collection of scripts. Since the work is in
security, I am not comfortable with something that can be changed so
easily.
There may be times when we will have to use a specific tool - maybe we
won't
be able to rewrite it. But I think most of the time it would be better to
focus on one development language.
|
You also have to consider maintenance over the long term. The
more tools that are used, the more expertise required in the future.
You may have to replace some people for one reason or another
after a while. If these guys used something that no one else is
familiar with, you're going to have a learning curve to deal with
and it's likely to happen when you have the least time to deal with
it. If it's during the development cycle, it will delay release but if
it's a critical problem after release you may not have the time
you need to solve it.
A lot depends on what type of applications you sell. For us, if something
critical shows up that we missed, it get's patched ASAP. We need to make
sure that any one of us has a good chance of finding the problem. |
|
| Back to top |
|
 |
Darko Miletic Guest
|
Posted: Sat Mar 04, 2006 2:03 am Post subject: Re: Opinions on using several programming languages for a pr |
|
|
Ron Sawyer wrote:
| Quote: | I have accepted a new job. The team has been developing several custom
programs for customers and the manager wants me to lead the team in making
their code into a product.
They are currently using several development languages. When asked why they
told me that they used whatever sample code that they found that worked and
moved forward. "The best tool for the job."
I am against this kind of development. I would prefer to use one
development language where possible. I feel that it makes it more
maintainable. I feel that it makes it easier to find developers (you can
more easily find a developer who knows one language well, than several.)
|
I agree with your view completely. The only thing that can make you
decide to use more than one language is if you need to continue using
what already exist and there is not enugh time to write new version.
It is possible to have transitional period in which you will continue to
use what exists while in the mean time team will work on a purist
solution for the system. |
|
| Back to top |
|
 |
William Charles Nickerson Guest
|
Posted: Sat Mar 04, 2006 4:03 am Post subject: Re: Opinions on using several programming languages for a pr |
|
|
Ron Sawyer wrote:
| Quote: | I have accepted a new job. The team has been developing several custom
programs for customers and the manager wants me to lead the team in making
their code into a product.
They are currently using several development languages. When asked why they
told me that they used whatever sample code that they found that worked and
moved forward. "The best tool for the job."
|
This sounds scary to me -- not the multiple languages, but the "whatever
sample code that they found that worked" part. I imagine that this is
more common in custom software development than product development.
| Quote: | I am against this kind of development. I would prefer to use one
development language where possible. I feel that it makes it more
maintainable. I feel that it makes it easier to find developers (you can
more easily find a developer who knows one language well, than several.)
|
I have recently finished working on a system that uses LabVIEW, C++, VBA
under Windows and C, perl and sh under UNIX (that was the parts that I
wrote). This also interfaced to a system written in BBX (by another
programmer) through the transfer of XML files. While this is not a
marketable product, it fit the needs of the client and each of the
languages was chosen for a specific purpose.
I think that there is wisdom in limiting the languages that are used in
the development of a product, but the limit is not 1 -- especially given
the interoperability of development languages today. I think the makeup
of the team and their skill sets should be taken into account as well.
In the project I mentioned above, the one programmer has vast experience
in BBX and has been working on the business system of the client for a
couple decades. It would be foolish to throw out that knowledge and
legacy code but BBX is in no way suited to the task that I was
contracted to build. For that LabVIEW was an excellent fit for most
parts and the other tools facilitated areas that LabVIEW was not suited for.
I guess the biggest drawback to this is it can make things difficult if
you lose a resource that is the only one with knowledge of specific
language or tool -- especially if the language is not a mainstream one.
Good luck with your project.
Shalom
Bill |
|
| Back to top |
|
 |
Randall Parker Guest
|
Posted: Sat Mar 04, 2006 6:03 am Post subject: Re: Opinions on using several programming languages for a pr |
|
|
Ron Sawyer wrote:
| Quote: | They are currently using several development languages. When asked why they
told me that they used whatever sample code that they found that worked and
moved forward. "The best tool for the job."
I am against this kind of development. I would prefer to use one
development language where possible. I feel that it makes it more
maintainable. I feel that it makes it easier to find developers (you can
more easily find a developer who knows one language well, than several.)
|
Ron,
What are the languages?
I am of the view that one ought to be using multiple languages since not all problems
fit well in the same language.
Now, if you have PHP, Perl, Python, Java, C#, and Ruby all serving web pages then you
probably have too many languages.
But I could imagine using a Perl open source package for one part of your web site
and a PHP open source package for another part and then your own Java with Tapestry
for another part.
Also, it is good for programmers to work in multiple languages with multiple API
sets. It changes the way they think about problems and I think it helps their
productivity in all languages. Make them rotate around so that they each can work in
all the languages in your system. |
|
| Back to top |
|
 |
Alisdair Meredith[TeamB] Guest
|
Posted: Sat Mar 04, 2006 10:03 am Post subject: Re: Opinions on using several programming languages for a pr |
|
|
Robby Tanner wrote:
| Quote: | There are possibly occassions where the right tool is the most
convenient (depending on what your requirements are and who is
specifying them). In the event where schedule is more important than
some technical consideration, convenience would win out.
I'm not trying to be argumentative just for the sake of it, but the
convenience may have been a necessity due to some time constraints.
|
I think we are in agreement then, as in that case I would claim a
convenient tool IS the right too ;?)
The point is not to take the first 'convenient' solution, but the
best/most appropriate. In these cases there is rarely a choice of one,
eg. python / Ruby / Perl / PHP / ECMAScript(JavaScript) are all very
convenient choices, but I would still choose different languages for
specific problems, rather than say 'Ruby is the only language to use
when I need convenience'
--
AlisdairM(TeamB) |
|
| Back to top |
|
 |
Alisdair Meredith[TeamB] Guest
|
Posted: Sat Mar 04, 2006 10:03 am Post subject: Re: Opinions on using several programming languages for a pr |
|
|
Randall Parker wrote:
| Quote: | Also, it is good for programmers to work in multiple languages with
multiple API sets. It changes the way they think about problems and I
think it helps their productivity in all languages. Make them rotate
around so that they each can work in all the languages in your system.
|
I looked into research on this a few years back, and there is an
observable DECREASE in efficiency for mixing betweeb 2 and sometimes 3
languages, as you lose the true immersion and expertise that comes from
thinking natively in one language all the time (so long as the first
language is a suitable general purpose language)
Likewise, from 4 languages and up the polyglot was ahead, as the
routinely recognise problems according to the language designed to
solve that kind of issue. Not only do they have a bigger toolbox, but
they have a bigger pattern catalog to go with it.
There was also a slight tail-off after 6 or 7 languages. That seemed
to be 'enough'.
Of course, in order to be come highly productive with many languages,
you have to lose efficiency going throught the 2/3 language phase, but
if it was easy/obvious we would all be doing it ;¬)
--
AlisdairM(TeamB) |
|
| Back to top |
|
 |
Pete Fraser Guest
|
Posted: Sat Mar 04, 2006 11:03 am Post subject: Re: Opinions on using several programming languages for a pr |
|
|
I agree with you completely about maintenance.
We were using a tool at work written by an in-house guy
who used Java. Unfortunately he was the kind of guy
who got bored of maintaining an application and
wouldn't fix any reported bugs or add new features.
So I decided to re-write the app in C++ and it's
now a much better app with Undo/redo features.
He left recently so I'm rather glad that I re-wrote it.
Rgds Pete
"Duane Hebert" <spoo (AT) flarn2 (DOT) com> wrote in message
news:4408f1e1 (AT) newsgroups (DOT) borland.com...
| Quote: |
You also have to consider maintenance over the long term. The
more tools that are used, the more expertise required in the future. |
|
|
| Back to top |
|
 |
Randall Parker Guest
|
Posted: Sat Mar 04, 2006 7:03 pm Post subject: Re: Opinions on using several programming languages for a pr |
|
|
Alisdair Meredith[TeamB] wrote:
| Quote: | I looked into research on this a few years back, and there is an
observable DECREASE in efficiency for mixing betweeb 2 and sometimes 3
languages, as you lose the true immersion and expertise that comes from
thinking natively in one language all the time (so long as the first
language is a suitable general purpose language)
|
Alisdair,
I think this is partly dependent on whether the languages come with very different
API sets (e.g. switching between C# and VB.Net languages in .NET doesn't involve as
big an API set change as switching between C++/MFC and VB did on Win32), whether you
program in different problem domains in each language, and how different the
languages are from each other.
For example, if you solve problems well suited to Perl in Perl and problems well
suited to Java in Java then I'd expect you'd come out ahead as compared to solving
problems well suited to Java in Perl along with problems that really fit better in Perl.
| Quote: | Likewise, from 4 languages and up the polyglot was ahead, as the
routinely recognise problems according to the language designed to
solve that kind of issue. Not only do they have a bigger toolbox, but
they have a bigger pattern catalog to go with it.
|
But there is a selection bias. Smarter programmers tend to learn more languages than
the less bright programmers. At least that has been my experience. The best know more
languages, operating systems, API sets, problem domains. On average the guy who knows
4 languages is smarter than the guy who knows 1 language.
| Quote: | There was also a slight tail-off after 6 or 7 languages. That seemed
to be 'enough'.
Of course, in order to be come highly productive with many languages,
you have to lose efficiency going throught the 2/3 language phase, but
if it was easy/obvious we would all be doing it ;¬)
|
I think people end up learning fewer languages due to the market. Employers try to
hire people to do things those people have already done. The market tends to reward
specialization. So people find it hard to develop expertise in multiple languages.
I also think that companies internally tend to resist changing API sets because the
managers figure their less bright programmers will learn the new API sets and new
languages slowly. If one has an especially bright team then switching API sets is a
lot easier as curious and sharp people pick up new API sets pretty quickly. |
|
| Back to top |
|
 |
Ron Sawyer Guest
|
Posted: Sat Mar 04, 2006 8:03 pm Post subject: Re: Opinions on using several programming languages for a pr |
|
|
Thanks to all who have replied so far! I definitely agree with the right
tool for the job idea, but have found that I can do most anything in any one
of today's languages - usually.
Randall, the toolset is Visual Studio and the languages are VB, C# and C++
and VBScript.
AlisdairM made this observation and I think that is one of my issues:
| Quote: | SNIP>there is an
observable DECREASE in efficiency for mixing betweeb 2 and sometimes 3
languages, as you lose the true immersion and expertise that comes from
thinking natively in one language all the time (so long as the first
language is a suitable general purpose language)
|
The "true immersion and expertise" quote hits my feelings pretty close.
And this
| Quote: | But that assumes you have good people working for you (we all like to
believe that ;?) and they are writing this code in 'best langauage for
the job' rather than pasting scripts off the internet.
|
It is much too early for me to make a judgement (I have only met them once
and haven't started yet), but I am concerned that they are doing just that -
simply finding code that works and perhaps not understanding it, so not
rewriting it. (One reason I feel that they don't really understand things
is: They talked about using "sockets and listeners." I said something about
using TCP/IP and the one said: No, we *were* using TCP/IP sockets, but they
were blocking, so now we are using Asyncronous sockets.) (The more I think
about it, the more I think this is why I am so uneasy. I think that I would
want to see them grow as developers in one language first. Again though, I
will try to remain open minded, as evaluate them when I get there. The
manager is certainly concerned about their level of skill, but he is a
non-developer and maybe can't evaluate them well.)
The VBScript concerns me too because this is a security application and I am
worried that distributing scripts may make it easier to circumvent. No cite
on that, just an uneasy feeling. However, I have no background with
VBScript, so I may be wrong. (OK, I've done some scripts and find it easy
enough to use, but I am hardly an expert.)
I also worry about maintaining the code and as I mentioned finding new team
members who know all the languages well.
I doubt I will be able to limit to just one - but I want to put an end to
this practice of: finding code that works and just using it.
My background is C/C++, and normally I would be pushing Builder as the
toolset, but I am also uneasy about its future. I have started playing with
C# and although I am not nearly as proficient yet, I am excited about the
tool and think it has some real potential. I am thinking about pushing it
as the main tool. Most of the sercurity venders provide a C API for their
equipment and I think that it will be easy enough to use their tools with
C#. |
|
| Back to top |
|
 |
Randall Parker Guest
|
Posted: Sat Mar 04, 2006 11:03 pm Post subject: Re: Opinions on using several programming languages for a pr |
|
|
Ron Sawyer wrote:
| Quote: | Randall, the toolset is Visual Studio and the languages are VB, C# and C++
and VBScript.
|
Ron,
I think it is kinda weird to write in 4 different .NET languages all in the same
company. Translating a piece of VB.NET code to C# is not hard. But is some of the
code not .NET?
If you want to use 3rd party libs that are written in various .NET languages then you
can call them all from your own chosen .NET language.
What is the VBScript used for? Internal browser-side IE-specific code? Or scripting a
web site? Or other?
| Quote: | The "true immersion and expertise" quote hits my feelings pretty close.
|
If you are going to do .NET in a big way then what is more important is to learn the
many .NET APIs and how to use them to solve your various problems.
| Quote: | It is much too early for me to make a judgement (I have only met them once
and haven't started yet), but I am concerned that they are doing just that -
simply finding code that works and perhaps not understanding it, so not
rewriting it.
|
Well, on the bright side it says they tend to go looking for code to reuse rather
than write everything from scratch. I've met far too many programmers who want to
write everything when they ought to be out looks for libs and frameworks that already
solve large chunks of their problem. You don't want to force them into the mode where
they write a much larger fraction of what they use. That can seriously cut into
productivity.
| Quote: | (One reason I feel that they don't really understand things
is: They talked about using "sockets and listeners." I said something about
using TCP/IP and the one said: No, we *were* using TCP/IP sockets, but they
were blocking, so now we are using Asyncronous sockets.)
|
A lot of people use APIs that they just barely semi-understand. That seems a separate
problem than how many languages they use.
Parenthetically, I found it easier to write a small socket server in Python than in
C++ and I did both just a couple of months ago.
| Quote: | I also worry about maintaining the code and as I mentioned finding new team
members who know all the languages well.
|
You also need to find out just how much code has been written in each of the
languages they've used.
I recently found it more jarring to switch from C++ to C (e.g. got to declare all
vars at the top of a control block) than from C++ to Python or to C#. I find Java,
C#, and C++ not to hard to switch between, especially given all the web sites that
will answer questions on how to do things. Python and Javascript are further out in
the realm of different.
I spent the last week learning more advanced Javascript (like memory management and
variable scoping and going down the prototype chain to resolve property references)
and found the language is a lot weirder than casual use might lead you to believe. I
now understand some of the weirdness with creating functions with closure why that
can cause memory leaks in MS's implementation with circular references thru the DOM.
I'm still trying to grasp with "this" scope. C++ seems far more easy to grasp to me
and ditto C# and Java.
| Quote: | I doubt I will be able to limit to just one - but I want to put an end to
this practice of: finding code that works and just using it.
|
But you should balance that with the additional amount of time it takes to write it
yourself. Consider the size of the chunks they are getting, the sorts of places they
are getting them, their average quality, and how much time it would take to write
each one. Maybe these guys have been saving lots of money by using lots of stuff by
other people.
Of course, one could do that with fewer languages and still use a lot of open source
stuff of high quality.
| Quote: |
My background is C/C++, and normally I would be pushing Builder as the
toolset, but I am also uneasy about its future. I have started playing with
C# and although I am not nearly as proficient yet, I am excited about the
tool and think it has some real potential. I am thinking about pushing it
as the main tool. Most of the sercurity venders provide a C API for their
equipment and I think that it will be easy enough to use their tools with
C#.
|
I guess one question I'd ask is this: Do you want or need to be Windows specific?
Some of the non-MS scripting languages are very rich and give you cross-platform just
by sticking to their APIs.
To do sockets in Python I didn't have to learn Win32 WinSock things like to make some
call to initialize a DLL or other stuff that were platform specific. It was less code
to write in Python and I automatically got portability. One can even use WxWidgets
thru a lib that is portable and get portable UI in Python. |
|
| Back to top |
|
 |
Guest
|
|
| Back to top |
|
 |
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|