Is C++ faddish like Java?

D

David

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
 
V

Vijai Kalyan

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

Stefan Arentz

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

Stefan Arentz

wee said:
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.
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.
 
W

wee

Stefan said:
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.
 
R

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.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
474,179
Messages
2,570,956
Members
47,509
Latest member
Jack116

Latest Threads

Top