473,386 Members | 1,860 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,386 software developers and data experts.

Is C++ faddish like Java?

wee
I've been using Java for a few years now and am just amazed at how many
new "technologies" or tools come out all the time (i.e., Struts, Java
Server Faces, JMeter, jad, etc.). It is nigh impossible to keep up on
everything. It seems almost like it's a fad in which you've got to know
the next new thing or you aren't much.

I've always wondered: does the C++ world do this? Are there new
libraries coming out all the time, new paradigms, or new sets of words
that are the "in" thing and every employer wants them (even if they
don't know what they mean)? Do you know developers who are devotees of
a new thing every week? Or is it a more stabilized community with
well-known libraries and technologies? Or something else?

Thanks in advance,
wee

Aug 4 '05 #1
25 3103
wee wrote:
I've been using Java for a few years now and am just amazed at how many
new "technologies" or tools come out all the time (i.e., Struts, Java
Server Faces, JMeter, jad, etc.). It is nigh impossible to keep up on
everything.
Is it ever?
It seems almost like it's a fad in which you've got to know
the next new thing or you aren't much.
I am really sorry to hear that.
I've always wondered: does the C++ world do this?
Nope. Much less hype, much more real work.
Are there new
libraries coming out all the time, new paradigms, or new sets of words
that are the "in" thing and every employer wants them (even if they
don't know what they mean)?
Libraries? Yes, libraries do come out. Paradigms? Sometimes. Sets of
words? Can't really think of any. Employers... Most of those I know are
much more (a) technically savvy and/or (b) trusting the technical staff,
so, no "want them even if don't know what they mean" nonsense.
Do you know developers who are devotees of
a new thing every week?
Nope.
Or is it a more stabilized community with
well-known libraries and technologies? Or something else?


It's something else: The Real World.

V

P.S. Sorry for feeding the troll, everybody. I just can't resist their
appeal sometimes. Besides, I don't do this often...
Aug 4 '05 #2
wee
Thanks for your reply.

What do you mean by "feeding the troll"? (If you mean I'm not serious
or something, it's not true. I _am_ looking for real perspectives from
people with whom I don't usually have much contact. I would like to
turn toward the C++ world because I've gotten frustrated with the Java
realm as I've described it. It's very hard to get down to actual
programming; I've found myself just looking for the library that can do
what I need, or the new tech that'll fix everything. That's not what I
got into programming for.)

Aug 4 '05 #3
wee wrote:
What do you mean by "feeding the troll"? (If you mean I'm not serious
or something, it's not true. I _am_ looking for real perspectives from
people with whom I don't usually have much contact. I would like to
turn toward the C++ world because I've gotten frustrated with the Java
realm as I've described it. It's very hard to get down to actual
programming; I've found myself just looking for the library that can do
what I need, or the new tech that'll fix everything. That's not what I
got into programming for.)


You don't have to turn to C++ to find real perspectives. You simply need
to find real work. It's not the language that you use, it's the problems
you solve, and the methods you use to solve it, which define the "reality"
of it.

As to "feeding the troll", the reasons why I imply that you may be one are
very simple: what looks like a duck, walks like a duck, and squawks like
a duck, _is_ a duck. Traits of a newsgroup troll are well-known, and your
post fits.

V
Aug 4 '05 #4
wee
Didn't mean to "inflame" anyone with my post (I looked the troll phrase
up on Wiki). I thought since there were C++ programmers here that they
could easily answer an overview comparison question like what I posted.

I personally don't believe I could just easily get a job doing C++ with
my background. Hopefully, I'm wrong. Do employers looking for C++
programmers hire people who write Java at work and who've only done C++
on their own (i.e., made their own applications at home)? If not, what
would be a good way to get into C++ programming with my kind of
background?

Aug 4 '05 #5
wee wrote:
[..]

I personally don't believe I could just easily get a job doing C++ with
my background.
And that's probably not unfounded. However, the two languages have quite
a few similarities, so you could probably learn C++ fairly quickly enough
to hold an entry-level position with reasonable advancement opportunities.
Hopefully, I'm wrong. Do employers looking for C++
programmers hire people who write Java at work and who've only done C++
on their own (i.e., made their own applications at home)?
"All generalisations are bad". To answer the question, some probably do.
But I do not keep track of employment markets outside of my own locality
and sphere of interests, and many here probably don't either, so a better
place to ask would be some newsgroup where employers hang out (not that I
know of any).
If not, what
would be a good way to get into C++ programming with my kind of
background?


Get on a team that does both, get involved with both sides of the project,
and gradually begin doing more and more of C++ and less and less of Java.
There are probably other ways, but this one makes the most sense to me,
anyway.

V
Aug 4 '05 #6
wee
After reading several other interesting things on the web about trolls,
I now understand what you mean.

Thanks for shedding light on my uptight opinion here.

Aug 4 '05 #7
wee wrote:
I've been using Java for a few years now and am just amazed at how many
new "technologies" or tools come out all the time (i.e., Struts, Java
Server Faces, JMeter, jad, etc.). It is nigh impossible to keep up on
everything. It seems almost like it's a fad in which you've got to know
the next new thing or you aren't much.

I've always wondered: does the C++ world do this? Are there new
libraries coming out all the time, new paradigms, or new sets of words
that are the "in" thing and every employer wants them (even if they
don't know what they mean)? Do you know developers who are devotees of
a new thing every week? Or is it a more stabilized community with
well-known libraries and technologies? Or something else?

Thanks in advance,
wee


My impression is just the C++ programmers *tend* to be just the opposite to
a fault. That is, they tend to reject new ideas and new ways of looking at
things, even when they are good. It's probably because they are a bit
jaded. They seen so much hype already, when something new and different
comes along, they simply scoff at it as "the latest fad". If you say
something like Java (or C#) does such-n-such, they will often become
indignant and dismissive of the idea. That's not really a good attitude to
have. The people who work on designing Java and C# are very smart, and
often veterans of C and C++ programming. There are good ideas in these new
programs. Some of them could be adopted in C++ without any change to the
core language, and could be used to better effect, or implemented in more
efficient ways.
--
If our hypothesis is about anything and not about some one or more
particular things, then our deductions constitute mathematics. Thus
mathematics may be defined as the subject in which we never know what we
are talking about, nor whether what we are saying is true.-Bertrand Russell
Aug 4 '05 #8
Steven T. Hatton wrote:
wee wrote:
I've been using Java for a few years now and am just amazed at how many
new "technologies" or tools come out all the time (i.e., Struts, Java
Server Faces, JMeter, jad, etc.). It is nigh impossible to keep up on
everything. It seems almost like it's a fad in which you've got to know
the next new thing or you aren't much.

I've always wondered: does the C++ world do this? Are there new
libraries coming out all the time, new paradigms, or new sets of words
that are the "in" thing and every employer wants them (even if they
don't know what they mean)? Do you know developers who are devotees of
a new thing every week? Or is it a more stabilized community with
well-known libraries and technologies? Or something else?

Thanks in advance,
wee


My impression is just the C++ programmers *tend* to be just the opposite
to
a fault. That is, they tend to reject new ideas and new ways of looking
at
things, even when they are good. It's probably because they are a bit
jaded. They seen so much hype already, when something new and different
comes along, they simply scoff at it as "the latest fad". If you say
something like Java (or C#) does such-n-such, they will often become
indignant and dismissive of the idea. That's not really a good attitude
to
have. The people who work on designing Java and C# are very smart, and
often veterans of C and C++ programming. There are good ideas in these
new
programs. Some of them could be adopted in C++ without any change to the
core language, and could be used to better effect, or implemented in more
efficient ways.


Sorry about the bad grammar. I plead low blood caffein.
--
If our hypothesis is about anything and not about some one or more
particular things, then our deductions constitute mathematics. Thus
mathematics may be defined as the subject in which we never know what we
are talking about, nor whether what we are saying is true.-Bertrand Russell
Aug 4 '05 #9
On Thu, 4 Aug 2005 15:03:04 UTC, "wee" <we*******@yahoo.com> wrote:
I've been using Java for a few years now and am just amazed at how many
new "technologies" or tools come out all the time (i.e., Struts, Java
Server Faces, JMeter, jad, etc.). It is nigh impossible to keep up on
everything. It seems almost like it's a fad in which you've got to know
the next new thing or you aren't much.

I've always wondered: does the C++ world do this? Are there new
libraries coming out all the time, new paradigms, or new sets of words
that are the "in" thing and every employer wants them (even if they
don't know what they mean)? Do you know developers who are devotees of
a new thing every week? Or is it a more stabilized community with
well-known libraries and technologies? Or something else?

Thanks in advance,
wee


The Windows folks seem to have a new name for the same thing every
few months. Truth is, there isn't much new in computing for a long
time. Maybe that's a clue that I've been here a while.

C++ hasn't added a lot. A few people worked on stanardizing the
idea of sets and such once most users could agree on what was needed
and the compiler side managed to get templates working on most of the
pltaforms. Bsacially that resulted in the STL which just makes
common things to write a little more common.

There will aways be people that think they have something new and
it is generally something old or rediscovered. Extreme Programming
and stuff like that. We seem to go in cycles about what programmers
amd managers feel is an acceptable development protocol.

There are some new ideas out there that seem to come up in various
languages or discussions. The C++ groups seem to remember C often
enough that not everything is really new.

Java does appear to be part of the group that is often reinventing
itself. New tools for the same old tasks accomplished elsewhere.

I don't see many career developers or shops that get caught up
in that loop. Occasionally we'll get asked to interface with or
use something, but we've become selective about learning what the
job takes and not on free-associative learning. Developers are
always learning. Hopefully we can elimindate some of the more
mundance tasks of relearning how to develop in the next language
or operating system. Those tasks come along, but don't have to
dominate the landscape. Microsoft seems to cater to such crowds
and encourages the mahem. A team I was on briefly got their way
with using all the latest technologies and forgot the cost of
doing business that way. Eventually XML over slow serial
connections with encryption bit them pretty hard when the standard
customer of the previous product actually can back and started
begging for their productivity of the old DOS-based tools. It
wasn't DOS or the tools at the time that mattered. Those people
wrote with an understanding of what a serially connected device
could be tolerated by the customer. I'm not nieve enough to
imply that they actually made it that way on purpose the first
time around. However the next generation team that had the next
bigger embedded processor, serial links, and ethernet capability
went crazy with all kinds of tools to make their life simpler.
They even ordered hardware to blast the data into memory so they
didn't have to use the slow serial or ethernet conenctions and
could start with a loaded embedded device. When production
came around and the customers saw the new joy -- they had mixed
feelings. They didn't care about the underlying XML Database
because they couldn't use it that way. It was just slow to
manage and take care of and make it look like the old product
but a bit better via the grace of networking. The whole new
design actually consumed all the power of the processor and
it didn't do an earth-shattering amount more work than the
older system. I'm not entirely certain they figured out the
problem before they had to add all the compression and other
bells and whistles t actually make it more comfortable for
the end user.

The end goal you should strive for is not the new tools
and the new flashy interface at the beginning. Start where
the user needs you to start and work up from there. A nice
fancy underpinning could be the wrong solution even on the
new top of the line system. New is nice, a clean workable
interface that works all the time, reliably, and is responsive,
won't get the headlines at first, but it will get the users.
Are you in it for the long haul or just riding this periods
wave of tool hype?

David
Aug 5 '05 #10
On Thu, 4 Aug 2005 16:20:50 UTC, "wee" <we*******@yahoo.com> wrote:
Thanks for your reply.

What do you mean by "feeding the troll"? (If you mean I'm not serious
or something, it's not true. I _am_ looking for real perspectives from
people with whom I don't usually have much contact. I would like to
turn toward the C++ world because I've gotten frustrated with the Java
realm as I've described it. It's very hard to get down to actual
programming; I've found myself just looking for the library that can do
what I need, or the new tech that'll fix everything. That's not what I
got into programming for.)


That is a better attitide and it usually takes you further.

Java XYZ isn't what solved that xyz problem you had. There were many
solutions before and now there is XYZ for Java. There are likely
similar tools for C++ and other languages. The trick is understanding
what the XYZ tool gives you and if it is worth the investment.

XML can be easy or it can be quite complicated. The problem is,
if you're using it to talk between two of your components and you don't
need everything XML offers, there may be a simpler protocol. Yes,
XML is just fancy packaging. We've had lots of standards over the years.
XML is nice if the device you want to talk with understands it. If
the device simply speaks ASCII text with carriage returns for delimeters
is that less desirable? Not always.

C++ generally has more solutions for a given technology (say XML)
than other languages. They usually differ by how robust and complex
the developer needs them to be. You can write you own class to handle
SMTP email or buy someone elses code to do it. In the C++ world
you cna usually get the source code for at least a good example of
what you need. Combining all that can be a taks though.

In the end, C++ is more about just developing and just getting
the job done. Its not about establishing a standard and getting your
name on the protocol. C++ is also a bit more complex than your
friendly calculator. You can shoot yourself and everyone else when
you don't pay attention to the details. Most languages have that
aspect somewhere.

Actually at any given time, there is always more to learn and
understand about any given system you are developing. Even if we
isolate ourselves and learn no other tools that might also be
helpful. Master C++. Then master all the tools around it. Work
with others to make it happen. That won't happen overnight. Be
that (C++) craftsman that is saught out to make that fine product.
There are enough would-like-to-get-paid-big-bucks-for-anything-I-do
out there that all of them together wil never create that fine
product.

Yes, C++ is a way to accomplish that. Java will probably be
around for a while, but the mentality may get in the way. C++
has those traps too. Just do what you need for all the right
reasons.

David
Aug 5 '05 #11
On Thu, 4 Aug 2005 16:58:10 UTC, "wee" <we*******@yahoo.com> wrote:
Didn't mean to "inflame" anyone with my post (I looked the troll phrase
up on Wiki). I thought since there were C++ programmers here that they
could easily answer an overview comparison question like what I posted.

I personally don't believe I could just easily get a job doing C++ with
my background. Hopefully, I'm wrong. Do employers looking for C++
programmers hire people who write Java at work and who've only done C++
on their own (i.e., made their own applications at home)? If not, what
would be a good way to get into C++ programming with my kind of
background?


A background with multiple languages is usually desirable. However
you do need the experience the employer needs. Some people will suggest
open source and stuff like that. My suggestion is find a mentor --
somone to work with and explore what C++ can do. Perhaps you can do
that here. Talking over projects with others helps you develop the
thought process for making things that work.

Home experience is okay. Find a way to work into C++ work and see
if it matches what you think it is. Take that next Java task and
also write it in C++. At some point you may actually use both
languages and decide which to use. You need not support just one
language. Be good at most of them though. If you have ideas
show them around at work. Never mind that they are in C++. Learning
to design is also good. See where that takes you while you explore
the possibility of coming over the bright side of development.

David
Aug 5 '05 #12
Hi wee.

Deep down in the heart of the machine is machine language.
While the hardware of the machine has grown in complexity
the machine language has too.
But it is still pssible to see what is going on in the computer,
particularly at the level of subroutine calls.
This is one level that all of these languages have in common.
Tell the computer to set a breakpoint at a routine and it will.
All of these things produce routines.

This is merely a basis and all high level languages are severely
dependent upon that base. For example if we were to create a tri-branch
machine language instruction all of the code would change; what if the
computer takes the third branch and only two are specified? This would
require a universal branch instruction much like the ARM chip.
It has conditional code built into every machine instruction.

So anyhow, for ARM at least, a third branch conditional could present a
major hurdle.
Now, the entire software chain that they have been built on must
change. Certainly porting high level code would not be a big deal,
unless there was a significant branch cost savings. A savings of some
instructions could be a very good reason to assume that this model is
valid. Generating a logical meaning out of the tribranch is
ridiculously simple. Two threshhold values may be compared by one
threshhold comparison(note spare bit). So a three way branch is simply
a band function of two values. They can easily be half the size of the
full value and still be very meaningfull.

I'm just trying to construct an argument that points out the fact that
the low level machine is really where it is at. In this way java and
C++ are both poor, but java is worse. Java has to be machine
independent and so all of this talk above really posts a nail in them
as the top tier. Until a compiler is built for the chip, no code will
run on it. Code portability can hold up for some time, but there may be
breakpoints where the old code is too expensive to allow it to
run(remember the polling loop?)

-Tim

Aug 5 '05 #13
wee
> Are you in it for the long haul or just riding this periods
wave of tool hype?

I'm trying to get off of this period's wave at the moment, actually,
and get into a long haul stream. :-) I'm working as a Java programmer
right now, but am just getting fed up with scurrying around, trying to
use the newest thing (which is a re-packaged old thing, as you
referenced) to make my supervisor or the customer happy. Or, my project
lead decides what we use, and he currently is jumping from one thing to
the next, and never stops on one thing to master it or to use it in a
second project. We used jsp and javascript for one project, then Struts
for the next, and now we're skipping Java Server Faces (because we
missed that loop) and going right into Spring (some other redesigned
thing that sits on top of Struts I believe). At my prior company, it
was as bad if not worse because they kept using the newer JDK as soon
as it went beta (not too smart). They even threw out their Swing/AWT
GUI and implemented Eclipse's SWT GUI instead just because someone
mentioned it.

Personally, I'm annoyed at learning new words for the same old thing,
or repackaged libraries that are still based on the same thing, or
libraries that someone wrote as an alternative (not necessarily better)
to an older tech. As you said. . . .

I would love to work in a calm environment where the tools were
stabilized and I could focus all of my time on algorithms and
architectural design. That's why I'd like to migrate over to C++,
actually.

Aug 5 '05 #14
wee
> A background with multiple languages is usually desirable. However
you do need the experience the employer needs. Some people will
suggest
open source and stuff like that. My suggestion is find a mentor --
somone to work with and explore what C++ can do. Perhaps you can do
that here. Talking over projects with others helps you develop the
thought process for making things that work.

Home experience is okay. Find a way to work into C++ work and see
if it matches what you think it is. Take that next Java task and
also write it in C++. At some point you may actually use both
languages and decide which to use. You need not support just one
language. Be good at most of them though. If you have ideas
show them around at work. Never mind that they are in C++. Learning
to design is also good. See where that takes you while you explore
the possibility of coming over the bright side of development.

Thanks for this good solid information. Sounds like a plan. I will do
it!

Aug 5 '05 #15
wee wrote:
[...]
I would love to work in a calm environment where the tools were
stabilized and I could focus all of my time on algorithms and
architectural design. That's why I'd like to migrate over to C++,
actually.


A calm environment? Having stable tools does not necessarily mean
a calm environment, let me tell you... Besides, algorithms and
architectural design often do not depend on what language you're
using to implement them. Just so you know...
Aug 5 '05 #16
wee
> I'm just trying to construct an argument that points out the fact that
the low level machine is really where it is at. In this way java and
C++ are both poor


I agree 100%. However, I am only a beginner in Assembly (and I don't
know how to read machine), and cannot think of expecting someone to pay
me for that (though it would be very cool to work on that every day)!

I figure that C++ is closer to the machine than Java, since you can put
Assembly code inside a class file if you want/need to, and you can
touch most, if not all, of the components of the machine. Java, on the
other hand, handcuffs you before you ever make it near the components.

I've always felt a little like I was playing bumper pool when I wrote
in Java since it won't let you really hurt the machine much. The
opposite is true of Assembly, which is why it's so very cool (and scary
too). I guess I'd rather be closer than farther away from the machine,
and web programming in Java feels way too far away.

Thanks,
wee

Aug 5 '05 #17
wee
> A calm environment? Having stable tools does not necessarily mean
a calm environment, let me tell you...
Oh, I'm sure of that--I can hear it in your voice! :-)

By calm, I just meant an environment where I am not constantly scouring
the web for a new library to use in place of writing my own code (the
Java mentality I've seen is to prefer the former to the latter). By
calm, I mean that I'm not getting distracted every day by my peers
asking me about or my project lead asking me to use the newest tech
that they've heard of but never tried.
Besides, algorithms and architectural design often do not depend on what
language you're using to implement them. Just so you know...


I know. I write algorithms and use design patterns as much as I can in
the web programming I do at work now. It's just that the focus of my
team is not on that; for them (and in my prior 2 companies too--all of
the work in Java), algorithms & design are/were not even very important
compared to these other things.

Aug 5 '05 #18
wee wrote:
[..] I write algorithms and use design patterns as much as I can in
the web programming I do at work now. It's just that the focus of my
team is not on that; for them (and in my prior 2 companies too--all of
the work in Java), algorithms & design are/were not even very important
compared to these other things.


Unfortunately (or fortunately, depending from where you look), this is
much more often a characteristic of the group than any particular
technology. I am fairly certain that given enough time one can find
a very stable group and a reasonably calm environment doing pure Java.

Perhaps the C++ community at large is less prone to swings from tool to
tool or from library to library, but hey, there are still people doing
Fortran, they should be even stabler, no?
Aug 5 '05 #19
On Fri, 5 Aug 2005 16:16:34 UTC, "wee" <we*******@yahoo.com> wrote:
Are you in it for the long haul or just riding this periods

wave of tool hype?

I'm trying to get off of this period's wave at the moment, actually,
and get into a long haul stream. :-) I'm working as a Java programmer
right now, but am just getting fed up with scurrying around, trying to
use the newest thing (which is a re-packaged old thing, as you
referenced) to make my supervisor or the customer happy. Or, my project
lead decides what we use, and he currently is jumping from one thing to
the next, and never stops on one thing to master it or to use it in a
second project. We used jsp and javascript for one project, then Struts
for the next, and now we're skipping Java Server Faces (because we
missed that loop) and going right into Spring (some other redesigned
thing that sits on top of Struts I believe). At my prior company, it
was as bad if not worse because they kept using the newer JDK as soon
as it went beta (not too smart). They even threw out their Swing/AWT
GUI and implemented Eclipse's SWT GUI instead just because someone
mentioned it.

Personally, I'm annoyed at learning new words for the same old thing,
or repackaged libraries that are still based on the same thing, or
libraries that someone wrote as an alternative (not necessarily better)
to an older tech. As you said. . . .

I would love to work in a calm environment where the tools were
stabilized and I could focus all of my time on algorithms and
architectural design. That's why I'd like to migrate over to C++,
actually.


There are certainly groups of developers that fit more closely
with your desires. The C, C++, Forth, COBOL, FORTRAN, assembler,
and possibly even Java languages (to name a few) all have groups
that don't embrace new tools simply because they are new. As you
have also observed, there are also groups that thrive in that
environment. Perhaps part of your exploration should also include
moving to some other industry.

I suspect that your current focus is on web-based or at least
web-delivered applications that embrace a marketplace that tends
to buy what looks new and improved. There are those that do enjoy
exploring all the new gadgets out there. Personally, I don't like
or trust loading dozens of new add-ons or plug-ins to view a new
site that I may visit.

So what might be a stark contrast to the fast moving web
clientel? Consider some everyday products that use computers.
What does an ipod have inside it? Would they embrace a brand
new technology or go for some proven technologies? If you have a
car or have ridden in a plane and it had computers used to operate
and make it do you think that the latest version of technology
would be in there? Would you even want it to be? Perhaps you
have seen the cartoon where an airline passenger opens their
laptop during a flight and the ever helpful bluetooth agent
helps you aquire control of a nearby device -- the airplane!
The automobile and especially the airline industry is highly
focused on goals like cost cutting, safety, and reliability.
Another area group that might interest you is the medical
industry. While there are groups that use the new tools for
exploring molecular relationships, would unproven tools be
embraced for creating the next pacemaker? Not likely.
The entertainment industry also has groups that focus on
cheap, effective, reliable devices. Consider your television's
set-top box, TiVo, or a similar gadget. There are also groups
that will challenge even these careful folks. How about
the military and space agencies? Java was part of some recent
devices sent to Mars. So were some very reliable operating
systems and interpreted languages. You might like to read up
on the Mars Rover and its technologies.

I've worked in education, military, telecommunications,
internet, and medical groups over the years. Sometimes I'm
at the leading edge and other times at the trailing edge of
technology. It is always a great challenge to restructure
a system, build something reliable and valuable, and be able
to say that you contributed to some part of something that you
can point out to people. You will probably want to enjoy
your work environment and what you are working on. Perhaps
some of these areas will also interest you.

There are many other news groups you could also hang out in
that could help you explore other ideas. comp.arch.embedded
is a good one. The focus there is naturally embedded devices,
but that can mean many things. They explore reliability and
testability more than say a web developer group would.

Some of the above areas are likely not to be something you
want to do. I've applied for and been turned down for certain
radio and airline industry positions. The complaint was that
I wouldn't be happy making one of two changes every couple years
and filling out mountains of paperwork to justify and specify
every change. The medical device industry (implantable devices,
scanners, and diagnostic equipment) can also be kind of different.

What other interests do you have besides the obvious interest
in computers? Say that you are interested in medical technology.
While you may not be a leading expert on some facet of technology
or contribute at some doctoral level, there may be areas that
can be very rewarding. I've worked on several medical and
technical problems where there were terrific scientists that knew
how to do something like image recognition, however they weren't
professional programmers and wrote garbage for prototypes. Usually
they didn't even do the recognition tasks in an unlimited time,
let alone be able to repeat it for the next image. That is where
it is best to create a team of several professions of which you
may be just a small part.

Teams of developers come in all sizes and organizations. What
is comfortable for you? Would being part of a team of 20 people
writing some large business application for some company be
a good or bad experience? Would it even matter?

You are obviously a bit dissatisfied with a few aspects of your
current position. It is but one small step in a long career if
you would like it to be. I hope it is a satisfying one for you.

David
Aug 6 '05 #20
On Fri, 5 Aug 2005 16:29:01 UTC, "wee" <we*******@yahoo.com> wrote:
I'm just trying to construct an argument that points out the fact that
the low level machine is really where it is at. In this way java and
C++ are both poor


I agree 100%. However, I am only a beginner in Assembly (and I don't
know how to read machine), and cannot think of expecting someone to pay
me for that (though it would be very cool to work on that every day)!

I figure that C++ is closer to the machine than Java, since you can put
Assembly code inside a class file if you want/need to, and you can
touch most, if not all, of the components of the machine. Java, on the
other hand, handcuffs you before you ever make it near the components.

I've always felt a little like I was playing bumper pool when I wrote
in Java since it won't let you really hurt the machine much. The
opposite is true of Assembly, which is why it's so very cool (and scary
too). I guess I'd rather be closer than farther away from the machine,
and web programming in Java feels way too far away.

Thanks,
wee


C++, C, Forth, and assembler (in that order) can be very challenging
to maximize the potential of a machine. It can take a lot of thought.

There is also a large difference between diagnosing a problem with
your Java-Swing video control and an embedded control device that just
sits there and offers no help on what might be wrong. How might you
test and debug such a beast?

Some languages, like subsets of C, can be "compiled" into hardware.
On a device like an ipod, calculator, or cell phone there may be many
levels of hardware, firmware, and software. Different groups may be
allowed to change the various levels. Where might you want to spend
your time?

Forth is a different sort of language. It is often used in embedded
devices. Some of my larger firmware controlled devices at work use
a 6809 or similar computer that control perhaps four serial ports,
several audio channels, has about 32KB EPROM and 32KB RAM. I also
have control over all the protocols and PC control applications for
the devices. Forth is a lot like C in that you can shoot yourself
and the computer very, very easily. Forth is actually like assembler
in its ability to get you lost. It is also more evil in what it
will allow you to do. <evil grin> If the following line of code
would print the value 8, would it also do that somewhere else in a
program?

3 5 + ?

The answer is NO. Forth is a simple stack language. push 3 and 5
on the stack. '+' is a symbol for take two values off the stack,
add them, and push the result on the stack. '?' is a symbol for
take the top value off the stack and print it.

The problem is that Forth says that all symbols can be redefined
at any time. Each definition gets put in a dictionary of code
and can be popped off when your done with the definition.

The reason the above line could result in something othr than
8, is that every symbol could have been redefined. If you have
30 pages of code, you may have to read them with intense detail
to figure out what the program might do. You start with a few
basic definitions, which you could have changed anyway (in
assembler) and then build from there.

Forth is a good language where you would use lots of small
fragments of code over and over again. The result could look like
an archived mess and be very small.

David
Aug 6 '05 #21
Your problems with your project lead or your team does not reflect on
the language per se. It just reflects on the people you work with.

All programming languages are good for something, usually what they
were intended for. Programming directly in assembly may be "cool" but
it should be viewed against whether it achieves what you want it to
achieve. For example, the first stage of a boot-loader is usually
assembly (at least on PC's) where it has to load the second stage. The
second stage is usually written in C. Neither option of language is
particularly bad or particularly good. They are used because they serve
a particular purpose very well.

Design is important. However, you still need to know what a language
can do and cannot do. This presupposes that you do know the language
well first :) Algorithms are important too. Likewise using pattern's
are good too. But the more you harp on these things, the more you end
up being a person of one of those classes you named "devoted to a
particular tool or library ... ". IMHO, learn as you go, learn your
tools and pick the right tool for the right job. Keep your mind open. I
agree, an environment where you are jumping around often is bad. But,
why are you blaming the language for that. I really and absolutely see
no obvious connection between the two.

Aug 6 '05 #22
"wee" <we*******@yahoo.com> writes:

....
I've always felt a little like I was playing bumper pool when I wrote
in Java since it won't let you really hurt the machine much. The
opposite is true of Assembly, which is why it's so very cool (and scary
too). I guess I'd rather be closer than farther away from the machine,
and web programming in Java feels way too far away.


Well, in a previous post you mentioned that you work on web apps. That is
not realy rocket science. You choose a nice MVC or component-based web
framework, pick a persistence layer, choose a servet container or app
server nd then just write the boring app.

If you want to do more exciting stuff then move to a completely different
field. Maybe embedded, or servers in C++.

It really is not a language issue. More a career thing.

S.
Aug 6 '05 #23
"wee" <we*******@yahoo.com> writes:
A calm environment? Having stable tools does not necessarily mean
a calm environment, let me tell you...
Oh, I'm sure of that--I can hear it in your voice! :-)

By calm, I just meant an environment where I am not constantly scouring
the web for a new library to use in place of writing my own code (the
Java mentality I've seen is to prefer the former to the latter).


If you would work in my team then I would not let you write your own
code for things that already exist actually. There is a large amount
of very high quality Java components available. And in most cases it
is simply not worth it to rewrite things. What would be the point of
that. Your reason sounds like 'fun'. But maybe if you need a challenge
like that then you are simply in the wrong kind of business right now.
By
calm, I mean that I'm not getting distracted every day by my peers
asking me about or my project lead asking me to use the newest tech
that they've heard of but never tried.


That is a different problem. I agree that there is a lot of stuff to
choose from in the Java world which can be confusing.

But most people find their perfect mix of technologies after doing
some research. Focus is important. But that is not a language issue,
it is a project management issue.
Besides, algorithms and architectural design often do not depend on what
language you're using to implement them. Just so you know...


I know. I write algorithms and use design patterns as much as I can in
the web programming I do at work now. It's just that the focus of my
team is not on that; for them (and in my prior 2 companies too--all of
the work in Java), algorithms & design are/were not even very important
compared to these other things.


Of course they are not important. Web apps are boring and barely have
anything exciting in them. Don't make things more complicated as they
are.

S.
Aug 6 '05 #24
wee
Stefan Arentz wrote:
If you want to do more exciting stuff then move to a completely different
field. Maybe embedded, or servers in C++.

It really is not a language issue. More a career thing.


I would somewhat agree with you. But, as another poster pointed out,
each language has its use. It seems that Java's good use is for web
apps because that's where it shines--it makes it easy, though
consequently boring. :-)

So, I am thinking that perhaps it is a language AND a career thing, if
the employers know what they're doing. If I move into C++, then I
probably won't be working on web apps, and hopefully will have a more
challenging subject to code for (medical devices, flight or car
equipment, etc. as another poster wrote).

So, for all that, it might be a change of perspective and goal. I have
to figure out by research what industry looks inviting. I've actually
never thought about what industry I wanted to work in before; I've
taken whatever job seems interesting or good, usually based on whether
I had a chance (they were looking for Java), or for reasons other than
what the app did.

Aug 6 '05 #25
Ram
> I would somewhat agree with you. But, as another poster pointed out,
each language has its use. It seems that Java's good use is for web
apps because that's where it shines--it makes it easy, though
consequently boring. :-)
That's correct. Languages are just like tools, use what suits best to
your job. So it wudn't make much sense to compare C++ & Java in
generality. C++ is a very versatile & powerful language but that comes
a price and might be quite prohibitive if you don't need this (e.g. for
web apps).
So, I am thinking that perhaps it is a language AND a career thing, if
the employers know what they're doing. If I move into C++, then I
probably won't be working on web apps, and hopefully will have a more
challenging subject to code for (medical devices, flight or car
equipment, etc. as another poster wrote).


I guess so long as u concentrate just on the language, u will
eventually get bored with it. I love C++ but have many times felt bored
by it. My advice would be- try to concentrate on a domain e.g. medical,
telecom, etc. and then language will be a secondary consideration.

Aug 6 '05 #26

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

2
by: Michael | last post by:
Hello I am trying to write a Java-Program which converts a XML-file in a HTML. It should take the Transformation-file from the XML-file itself. Below find a possible XML-file: <?xml...
0
by: Ravi Tallury | last post by:
Hi We are having issues with our application, certain portions of it stop responding while the rest of the application is fine. I am attaching the Java Core dump. If someone can let me know what...
1
by: ptaz | last post by:
Hi I'm trying to run a web page but I get the following error. Ca anyone please tell me a solution to this. Thanks Ptaz HTTP Status 500 - type Exception report
11
by: DrUg13 | last post by:
In java, this seems so easy. You need a new object Object test = new Object() gives me exactly what I want. could someone please help me understand the different ways to do the same thing in...
0
by: Markus Wollny | last post by:
Hello! When I try to run ./configure --with-java, it complains that ant doesn't work. However ant is installed, as is the latest Java SDK 1.4.2 from sun, PATH and JAVA_HOME are set correctly; ...
0
by: mailkhurana | last post by:
Hii , I am trying to use a type 2 driver to connect to DB2 0n AIX 5 I have a small java test to class to establish a conneciton with the db .. I am NOT using WAS or any appserver When I try to...
1
by: David Van D | last post by:
Hi there, A few weeks until I begin my journey towards a degree in Computer Science at Canterbury University in New Zealand, Anyway the course tutors are going to be teaching us JAVA wth bluej...
0
oll3i
by: oll3i | last post by:
package library.common; import java.sql.ResultSet; public interface LibraryInterface { public ResultSet getBookByAuthor(String author); public ResultSet getBookByName(String name);
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.