|
Java is not godsend. Its an answer to all the bad programmers who dont know how to work with pointers.
-prakash
|
|
|
|
|
Original poster mentioned Java, bt his point was GC.
IMO, GC is a good thing. Bt sometimes poor programmers don't care about resources (We have garbage collection, so what), instead of learning how GC works and how to use it as advantage. Like we say, it's a good friend, bt bad master. Basically, I agree with you, I just want to show the second side.
btw I don't work with Java
David
Never forget: "Stay kul and happy" (I.A.)
|
|
|
|
|
Mr.Prakash wrote:
Java is not godsend. Its an answer to all the bad programmers who dont know how to work with pointers
The fact of the matter is that even good programmers will make mistakes with memory management. And this is acknowledged by the likes of Bjarne Stroustrup, the inventor of C++, who is constantly criticising C++ developers for faffing around with pointers and low-level techniques in general instead of using the modern abstraction mechanisms of Standard C++.
Kevin
|
|
|
|
|
I would say Bjarne is wrong, He invented C++, thats cool but that does notmean that he would expect developers to design software or use C++ in such a way that he would like it.
If the program compiles with C++ compiler, the program works, but if the program crashes or gives wrong output, thats another matter.
-prakash
|
|
|
|
|
There are plenty of ways of writing correct programs in any programming language but this does not mean that all ways are equally recommended. Good programmers generally follow the recommemded idioms of whatever language they are using unless there are special reasons for departing from them. This is especially so when writing code that must be maintained by others. In my experience most actual C++ is pretty awful, not necessarily because of C++, but because most programmers are mediocre and then the complexity of C++ makes matters worse than they would be in a less complex language
Kevin
|
|
|
|
|
Xp3ll3d wrote:
Well i love C++'s ability to do anything. but i absolutely hate the way it handles pointers.
How so?
|
|
|
|
|
PaulMdx wrote:
Well i love C++'s ability to do anything. but i absolutely hate the way it handles pointers.
How so?
Curious about that myself. As an old time ASM programmer pointers were basically the same as in C or C++ with minor exceptions. I much prefer to access ALL data thru pointers but that is just my way of doing things and not to be taken as Gospel but I am curious as to how any pointer usage could be more robust or simple than that used in C or C++.
Richard
"Under certain circumstances, profanity provides a relief denied even to prayer
--Mark Twain (1835 - 1910)
|
|
|
|
|
Richard Stringer wrote:
I much prefer to access ALL data thru pointers but that is just my way of doing things and not to be taken as Gospel
This is fine if you're doing C but not recommended if you're doing C++. See Stroustrup's many comments on this issue.
Kevin
|
|
|
|
|
What is the Set feature in Pascal...?
--
Weiter, weiter, ins verderben.
Wir müssen leben bis wir sterben.
I blog too now[^]
|
|
|
|
|
A set is a collection that doesn't allow duplicate entries.
There's at least one CP Article[^] available on creating sets support in C#.
Grim (aka Toby) MCDBA, MCSD, MCP+SB
SELECT * FROM user WHERE clue IS NOT NULL
GO
(0 row(s) affected)
|
|
|
|
|
I think Jörgen knows about sets, given the fact he holds a MSCS degree. The question was IMHO, why Pascal sets in particular?
My programming blahblahblah blog. If you ever find anything useful here, please let me know to remove it.
|
|
|
|
|
That's something that should reside in a (standard) library rather than the language itself IMO.
A feature should only be included in the language if and only if it is required in some way. I am not a Pascal wiz, but I don't see anything in the Pascal language that requires a set. Or in any other imperative language for that matter.
--
Weiter, weiter, ins verderben.
Wir müssen leben bis wir sterben.
I blog too now[^]
|
|
|
|
|
I agree the concept, but I feel the cause and the effect had been reversed.
Pascal was definied to be "strongly typed". In it, operation like AND or OR were for BOOL only. A group of flag was mandatory to be at least an array of bool, and that was SET, as firstly implelemted: given an enumeral, a set of myenumeral was a bit array with each bit indicating the presence of a value in the set.
Further pressions from many programmers causes Pascal to "degenerate" into more efficient C-like operation on bits and integers. Thus & and | where also for int , like in C.
At thet point, set looses the most of its attractive, expecially between windows programmers, also considering the the most of the windows API makes uses of integer manifest constants (not enums or bit fields) to define flags.
2 bugs found.
> recompile ...
65534 bugs found.
|
|
|
|
|
|
yup, likely.
The most use sets got for making certain checks simpler to type (instead of x=c1 OR x=c2 OR x=c3 , you could write x in [c1, c2, c3] ), and for handling certain groups of characters (e.g. "chars allowed in my identifier").
The first is fairly ineffective, and the second useless with MBCS/UNICODE charsets. But you could sometimes "shortcut" a boring piece of code by imaginative use of sets.
A modern programming language should provide a set class through it's runtime library.
we are here to help each other get through this thing, whatever it is Vonnegut jr. boost your code || Fold With Us! || sighist | doxygen
|
|
|
|
|
|
Ah, like TSQL then. That is pretty handy.
regards,
Paul Watson
South Africa
The Code Project
|
|
|
|
|
|
it's for me the most powerful of these, kind of Level Two of "self-conciousness" of the language.
we are here to help each other get through this thing, whatever it is Vonnegut jr. boost your code || Fold With Us! || sighist | doxygen
|
|
|
|
|
I'm not so sure. Maybe I had too much C++ in my life, but reflection makes the type system more "dynamic", and I don't like that.
My programming blahblahblah blog. If you ever find anything useful here, please let me know to remove it.
|
|
|
|
|
Actually, reflection is the only thing I'm mssing, for for my company's software, I added some "manual reflection" capabilities. It's a charm. Extremely powerful really.
One "Serialize" function now can handles (binary) persistance in both directions including up/down compatibility, export to and import from a Matlab-like format, post processing update decisions, merging data sets, and data access to and from the scripting interface.
It's not complete, and adding a new type isn't done in two lines of code, I'm stuck with some early design decisions that make parts of it very hairy, and yes, I wished we'd have this right at the beginning. But that would have required reflection
we are here to help each other get through this thing, whatever it is Vonnegut jr. boost your code || Fold With Us! || sighist | doxygen
|
|
|
|
|
I agree, but nowadays u wont see much of code that does NOT contain a few goto 's.IMO used correctly (especially with switch/case blocks) is really powerful. Combine that now with some try/finaly blocks and u have very powerful flow control and subsequent cleanups. But reflection wins by a small edge.
top secret Download xacc-ide 0.0.3 now! See some screenshots
|
|
|
|
|
peterchen wrote:
it's for me the most powerful of these, kind of Level Two of "self-conciousness" of the language.
Amen!
Marc
MyXaml
Advanced Unit Testing
|
|
|
|
|
For me, it's sort of a "more work up front" vs. "more work later" decision... a good template system will speed initial development, whereas a good reflection system allows more flexibility for later changes. I chose templates, this would have been a close second.
"The time has come," the Walrus said,
"To talk of many things..."
|
|
|
|
|
Why this is not a multiple selection poll. I guess I need more than one thing out of those.
It is by Acts and not by ideas that people live-- Anatole France
My Articles
|
|
|
|