Advertisement

what lang. is the best to start programming?

Started by January 01, 2003 05:09 PM
195 comments, last by caandom 21 years, 10 months ago
quote: Original post by SabreMan
Do you often cite the first thing that is randomly spewed out of a web search?

Hang on.
quote: Original post by Me
Putting aside whether this is a load of bullshit or not, does it support my view that:

My point was that I had learned that this was what was meant by type safety, and I was trying to show that my view hadn''t appeared out of thin air. Whether I''d been misinformed or not.
quote: Original post by Sabreman
Have you made any effort whatsoever to verify the trustworthiness of the source?

It would seem that I am far too trusting of what I read in books and on the internet. But I don''t have much experience in research. I don''t quite know how I could go about verifying the source. You have made it clear that you think a number of popular views are bullshit. So I probably shouldn''t put all my faith in common opinion. In that case I need to have enough knowledge to be able to work out whether the conclusions are accurate in the first place, and as of yet, I don''t. And since I''ve got other studying priorities on the go at the moment, I''ll just content myself to discussing about something which I might be misinformed about, because at least it''s pointing it out.
quote: From Tunes
Strong type systems allow to catch a lot of common programming mistakes (typos, thinkos, lack of propagation of program modifications) that usually require a lot of debugging time to catch. Static type systems particularly allow to catch them quickly, as early as compile-time, without having to even worry about them. Type inference allows for such bug-catching to have no associated development costs, as long as the typesystem is powerful enough to express the considered program without the need for abuse or contorsions

Okay.
"C combines all the power of assembly language with all the ease of use of assembly language"
quote: Original post by Anonymous Poster
Do you have to?

I''m not talking about winning the argument, I''m talking about winning the right to even have a discussion without someone jumping on my case about something or other.
Advertisement
quote: Original post by SabreMan
I''m not talking about winning the argument, I''m talking about winning the right to even have a discussion without someone jumping on my case about something or other.


Ok, this is the last time.
I was referring to rantings such as ''brain damage'' etc.. not any other specifics which of course is not true and also ''pepper''.
As for statics we were referring to the int example and nothing else and that is certainly not hard is it? I have no idea were you got the other ideas from. As for the rest I have no interest to continue as it has degenerated due to some misunderstandings between us. I consider you to be an intelligent person but I have a problem with people who rant. Also notice how short my answers are, you can too.


____________________________________________________________
Treat others the way you want them to treat you!!
No no no no! :)
quote: Original post by MichaelT
Ok, this is the last time.

Why are you responding to a post which was not directed towards you? This has had the effect of making it very difficult to understand the context.
quote:
I was referring to rantings such as ''brain damage'' etc.. not any other specifics which of course is not true and also ''pepper''.

I really can''t parse that sentence. I mean, "pepper"? I know I used the word, but I don''t understand why you are focusing attention on it. My only guess is that you are taking offense at my use of the term brain-damage. I mean, you are aware that the term is a colloquialism, aren''t you? I don''t literally mean "brain-damage", I simply mean that they will come to believe what they have learned must always be the case, thus shutting-off other approaches.
quote:
As for statics we were referring to the int example and nothing else and that is certainly not hard is it?

Are you talking about the discussion we were having about the importance of a static type system? If so, your rebuttals consisted of "not true, not true, not true at all" and so on. Those are not rebuttals, they are contradictions and are lacking in explanation. Even so, I provided further substance to back up my points, and you are still yet to provide any serious explanation of why I am wrong and haven''t supported any of your own points.

I''ll ask again... which languages did you consider when arriving at the conclusion "most languages are static"? Do you agree that my generalised functor scenario provides an example of a problem with the C++ type system and therefore disproves your claim that "there is no problem"? Do you agree that using a language with a dynamic type-system does not prevent you from learning about the type-system and type-safety? Do you understand how a debate works? Oh sorry, I appear to be ranting again...
quote:
I have no idea were you got the other ideas from. As for the rest I have no interest to continue as it has degenerated due to some misunderstandings between us.

That''s very convenient. I take it you do not have any actual thoughts on C++''s type-system that you would like to share (beyond "there is no problem")?
quote:
Also notice how short my answers are

It appears to be no coincidence that they also lack any substance.
Side note (off topic): Sabreman I do appreciate you posting here unlike some anonymous posters. I find your discussions to be highly educational. For before this argument I didn''t quite understand the difference between dynamically typed language and static type language. Also I didn''t understand weakly typed and strongly typed. Can''t forget that I learned a new vocab word colloquial.

Also c++ can be a strongly typed language if you follow the rules of Scott Myers and make the compiler catch the errors.


Keep up the good work.
i know php down to an art, now learning c++

here''s a quick tip: if you have learned a previous language, forget what you know. retain the basic bits like thinking before you do something, thinking about it before ever starting, but forget that echo does this and function creates this and whatnot

c++ is a change from most other languages.

if you know vb/vbs, go for asp for web programming they are much the same, likewise, go for php if you know c, they''re not as similar, but still quite close
Advertisement
I am again referring to the int sample you provided, the statement "static" refers again to this as well. I am not talking about whether or not errors are found before compile time,during compiletime or in runtime.

I agree that using a language with a dynamic type-system does not prevent you from learning about the type-system and type-safety. I have also not stated otherwise infact I previously already stated this so why repeat it?

Issues like trees, templates and generic programming is not a beginners level material. This was also one of my points against why you insist on incorrectly using them as an argument. If you talk about problems for a beginner please provide samples that a beginner would be likely to face then I might change my standpoint. As long as you insist on using arguments well beyond their level I will refuse to debate with you on this issue. If I misunderstand you please explain with a clear sample what you mean and how int, float etc is difficult. Keep in mind that they will mostly use those for minor tasks such as simple calculations, formulas and simple applications. Because we seem to be discussing two entirely different subjects. Please refrain from using rarley used words also because English is not my native toungue.

"shutting-off other approaches" is not a case because that is not the way I teach them to think. You seem to think I do.

Also correct me if I am wrong but to my knowledge Python is not merely a little slower than c++ but very much so.
http://www.flat222.org/mac/bench

____________________________________________________________
Treat others the way you want them to treat you!!
No no no no! :)
quote: Original post by MichaelT
Issues like trees, templates and generic programming is not a beginners level material.

And therein lies the very issue I have been hinting at. I''ve provided an extensive example explaining how a generalised functor is most certainly not suitable for beginners. It is not suitable for beginners precisely because it is so hard to get right in C++, whereas Python makes it simple enough for a beginner to tackle if they so require. Similarly, I disagree with your claim that trees are unsuitable for beginners. If you cannot implement and traverse a binary tree, along with other basic data structures, then you are still a beginner. Perhaps you think otherwise? Perhaps you think it is more important to understand the intricacies of a static type-system, including things like type promotion sequences and overload resolution, than it is to be able to implement fundamental data structures and algorithms?

C++ makes various concepts hard, and that is due in no small part to the type system. A generalised functor is just one specific example of that. Do you understand the general point?
quote:
This was also one of my points against why you insist on incorrectly using them as an argument.

The generalised functor issue exactly makes the point I wanted to make, unless you refuse to see the point.
quote:
As long as you insist on using arguments well beyond their level I will refuse to debate with you on this issue.

The tasks that I have presented are not beyond the level of a beginner using Python. That''s precisely what I was talking about when I said C++ will slow the learning process.
quote:
If I misunderstand you please explain with a clear sample what you mean and how int, float etc is difficult.

I wasn''t making the claim that understanding int and float is difficult, I was pointing out that there is no loss of clarity if you omit "int" and "float" from the code. I was specifically making a counterpoint to your claim that having to explicitly state type somehow makes code more clear.
quote:
"shutting-off other approaches" is not a case because that is not the way I teach them to think.

That might be relevant if we were discussing your approach to teaching.
quote:
Also correct me if I am wrong but to my knowledge Python is not merely a little slower than c++ but very much so.

It is slower than C++. By how much depends on what you are doing with it. Much earlier in this thread I provided an explanation of what things we should not consider using Python for, due to performance. Please try and keep up.
quote: Much earlier in this thread I provided an explanation of what things we should not consider using Python for, due to performance. Please try and keep up.


I noticed games wasn''t on that list when performance is an issue how can python be usefull for game development?
quote: Original post by ph33r
I noticed games wasn''t on that list when performance is an issue how can python be usefull for game development?

There''s a couple of ways of answering that question, and I''ll provide both. Firstly, we''re talking about newbies learning to program, and most likely they want to learn to program games. My argument is that something like Python will make it easier for them to tackle the "learn to program" bit, and libraries like PyGame will allow them to use what they have learned in writing games. That argument is based on the idea that newbies are unlikely to want to write hardcore games, and therefore do not require out and out performance.

The second point relates to real-world programmers who are writing large high-performance simulations. In this case, the rules of premature optimisation apply. Basically, if you write an application in Python, it is easy to then replace components with C++ or C equivalents, once you''ve identified performance problems. This link explains a bit more.

This topic is closed to new replies.

Advertisement