where to start (branched)

where to start (branched)

Postby MyEmail » 01 Sep 2011, 16:10

I branched the original where to start topic because the original question is irrelevant to what I have in this post. I was attempting to offer my opinion and advice (it being an example of the benefits from leaning multiple languages), and was met with deliberate flaming from Zlodo that was completely off topic and irrelevant to the discussion. Zlodo's contribution to that thread was nothing more than a blatant attack on me. As such I have moved the thread here because my reply is nothing more than an equal response to his.

Zlodo {l Wrote}:You are very arrogant. How do you know I said that because I'm stuck into "conventional knowledge" rather than from a "been there, done that" point of view?

I could say the very same about you. Ive come across guys like you, and your a dime a dozen. When it comes to this scenario "conventional knowledge" and "been there, done that" is the same exact thing. Until you can provide me with an example implementation to show "been there, done that" you have done nothing more than derogative trolling. I don't care how you do it (flex, bison, perl pre-compile script), just bring me a solution that fixes the C macro system. Until proven otherwise your just another fool stuck on conventional knowledge, or even worse another noob making extravagant claims with no experience to back it up.

Zlodo {l Wrote}:I don't have to deal with any of those issues because I don't use macros.

That wasn't the point O genius one. The point was to show how languages can be extended to fit your personal needs (yours obviously being a more C++ style), and how you can push a language to its limits (Not to start a C vs C++ shitfight). From there I was backwards-integrated that into the original topic by using it to show the benefits of knowing multiple languages. To deny any of this is folly and you know it, which is why you deliberately avoided the argument by changing the subject.

Zlodo {l Wrote}:And in fact I don't see where and how your system actually avoids multiple macro parameters evaluation.

While my language is nowhere near perfect (yet) I am actively working on solutions. Improving my pre-compile script to take such scenarios into account is easy enough. Also, you are completely missing the potential that beefed-up macros have

Zlodo {l Wrote}:Or perhaps experienced enough to realize that they have been superseded by much better solution for almost every use case.

I would beg to differ, because I extremely highly doubt you have ever used Scheme. Scheme is amazing in that code can write code, and it makes the C macro system look like a toy hammer compared to a industrial power drill. Your lack of understanding of macros shows how inexperienced and dependent on conventional knowledge you really are. In many scenarios macros are far more powerful than their alternatives, and denying so is an admittance of your ignorance. Your just to stuck on conventional knowledge that says "C macros are bad!!" to realize that not all macro implementations are bad.

Zlodo {l Wrote}:And now I wish it would have stayed that way. But more seriously, I have seen (and myself wrote) lots of shitty code where people tried too hard to be clever but just ended up needlessly complicating everything for absolutely no gain at all. You are not unique.

Again, you missed the point. I wasn't trying to show off or prove myself smarter/cleverer than you (but for some reason you interpreted it that way? Lol? You feel threatened by me or something?). I was proving my point that learning multiple languages is vastly beneficial, which you can in now way argue with which is why you are harping on my C implementation.

I could spend an entire day typing up a 10-page article of the advantages of macros over their alternatives. Until you have actually used them yourself you have no idea of the vast potential they hold. Imagine how easy it is to unroll a loop? Which is such a pain in the ass in C++ using templates. Imagine how easy it is to have fine-detailed control over every aspect of your program, right down to the profiling, memory management (including memory tracking, leak detection, and everything found in a memory debugger), and the limitless possibilities. Macros give you everything C++ has but more, for the cost of expertise.

Zlodo {l Wrote}:You are wrong. Google "placement new".

Please do provide an example--Could you allocate a 30 structures, and call 30 separate constructors please, each constructor with a different number of arguments? This is a extreme-test case scenario that my macro system can handle with relative ease. I await your example code.

Zlodo {l Wrote}:lol (in response to: "The unimaginably great potential found in this basic example alone shows just useful it is.")

See, that just proves your ignorance. You have no idea how powerful macros can be or their uses. Your to stuck on conventional ways (whether it be by your own experience of "been their done that" or not, your still stuck) to realize there are better implementations of macros than the C macro system, and that macros are a very powerful tool when used correctly.

Zlodo {l Wrote}:You are wrong. Google "C++ name mangling".

Am I? Consider this scenario:
{l Code}: {l Select All Code}
void func1(object1 &obj);
void func1(object2 &obj);

// inline conversion operator goes here that converts object1 to a object2 type.

func(obj);
// oh snap, the wrong function was called!


Whereas in my C implementation the functions are expanded in macros:
{l Code}: {l Select All Code}
void object1_func1(object1 &obj);
void object2_func1(object2 &obj);

// impossible to call the wrong function
object1_func1(obj);


As I have thoroughly proved Zlodo, until you can provide undeniable proof your just another fool stuck on conventional knowledge.
MyEmail
 
Posts: 107
Joined: 06 Jul 2011, 08:58

Re: where to start (branched)

Postby Julius » 01 Sep 2011, 16:49

Honestly MyEmail... even though this will sound extremely unfair and evil to you, but you are very close to getting banned on this forum.

It is not so much that you are intentionally trolling the forums (or if you are then kudos to you for a very subtle trolling technique ;) ), but you are picking fights in nearly every thread you participate in, blowing small disagreements way out of proportion and are generally a person with very strong opinions (and unwilling to admit even partial fault).

Yes other people are involved in it too, but there is a clear pattern with shows that you are the main reason for all these flaming and insult posts that have shown up recently on these boards.

Oh and just to be clear about it... on other forums you would have been banned loooooong ago already.
User avatar
Julius
Community Moderator
 
Posts: 3297
Joined: 06 Dec 2009, 14:02

Re: where to start (branched)

Postby MyEmail » 01 Sep 2011, 16:54

I have strong opinions that other's don't agree with, that is for sure. However they pick the fights, I merely respond. You can see in this example how I was contributing my expertise to the parent thread than was met with deliberate flaming from Zlodo, and I merely responded. If anyone should be banned, it is my fan-base that follows me thread to thread solely to personally attack me rather than contributing to the thread (as it was in this example).

If the moderators here would actually moderate users' posts nobody would ever be able to deliberately attack me, and the problem would be solved.

Its almost as if they are goading me in order to get me banned. And if your going to ban me Julius go for it--but do so knowing I was right all along, and because this site lives in a fantasy world is why everyone here targets me for the harsh realities I put before them :).
MyEmail
 
Posts: 107
Joined: 06 Jul 2011, 08:58

Re: where to start (branched)

Postby Zlodo » 01 Sep 2011, 17:31

MyEmail {l Wrote}:I branched the original where to start topic because the original question is irrelevant to what I have in this post. I was attempting to offer my opinion and advice (it being an example of the benefits from leaning multiple languages), and was met with deliberate flaming from Zlodo that was completely off topic and irrelevant to the discussion. Zlodo's contribution to that thread was nothing more than a blatant attack on me. As such I have moved the thread here because my reply is nothing more than an equal response to his.

Oh god, you have such a gigantic, fragile ego. Put it aside for a second and just enjoy having a frank discussion, you [expletive] crybaby. (this last remark was a test. If you can overlook it and focus on the discussion, congratulations! Otherwise I'm looking forward to your paragraph-long rant about how it was uncalled for and how I'm a thoroughly awful person for being abrasive on the internet)

MyEmail {l Wrote}:Until you can provide me with an example implementation to show "been there, done that" you have done nothing more than derogative trolling. I don't care how you do it (flex, bison, perl pre-compile script), just bring me a solution that fixes the C macro system.

My "been there done that" was aimed at your more general assertion that I"m stuck into conventional things and never experimented with out of the box solutions. I never set around to "solve the C macro system" because I usually instead set out to solve a specific problem, and because C++ already have an arsenal of tools that replace "C macros" with better stuff, such as templates. Which is, in essence, a macro system, it's just not called that.

Regarding trolling, please don't be that guy that labels people as trolls because he disagrees with them.

MyEmail {l Wrote}:That wasn't the point O genius one. The point was to show how languages can be extended to fit your personal needs (yours obviously being a more C++ style), and how you can push a language to its limits (Not to start a C vs C++ shitfight). From there I was backwards-integrated that into the original topic by using it to show the benefits of knowing multiple languages. To deny any of this is folly and you know it, which is why you deliberately avoided the argument by changing the subject.

I'm not denying that there are benefits from knowing multiple languages, however shoehorning one language into another is a terrible example, especially if you chose to go that way over using a language that directly offer tools that can do what you want.
And I wasn't changing the subject, I was questioning the usefulness of the example you used to support your point. Basically you said "see knowing multiple languages is useful because you can do XXX" and I said "you can use YYY anyway which is easier so the point is moot".

MyEmail {l Wrote}:I would beg to differ, because I extremely highly doubt you have ever used Scheme. Scheme is amazing in that code can write code, and it makes the C macro system look like a hammer compared to a power drill. Your lack of understanding of macros shows how inexperienced and dependent on conventional knowledge you really are. In many scenarios macros are far more powerful than their alternatives, and denying so is an admittance of your ignorance to the power of macros. Your just to stuck on conventional knowledge that says "C macros are bad!!" to realize that not all macro implementations are bad.

I was talking in the context of C/C++ and the specific definition of "macro" in that context. I wasn't talking about macro in the general sense of the word. If you're using scheme as a macro system for C, you're still exactly in the same problematic place as with using the standard preprocessor. The issues with it is not so much the macro language in itself as it is that generating code in a language from another language is ugly and problematic.

I have nothing against scheme. I have something against shoehorning it into C by using it as a preprocessor. It does and will have the same problem as C macros, which is mainly the problems of two co-existing but unrelated languages that don't actually know anything about each other's semantics.

I also have nothing against code generators, sometimes they're a good solution (or perhaps the least horrible one). I have made a C++/javascript binding system in my engine by parsing an idl and outputing ungodly templates that expose classes, methods and properties through a compilation time visitor pattern (the repo's there if you want to see it for yourself http://chiselapp.com/user/achavasse/repository/nea), but I really would have preferred something even simpler. Unfortunately it's the best I could manage to do without littering my C++ classes with macros, and without writing lots of boilerplate codes in the classes I wanted to expose to javascript.

MyEmail {l Wrote}:I was proving my point that learning multiple languages is vastly beneficial, which you can in now way argue with which is why you are harping on my C implementation.

You tried to prove your point by using an example, and claimed it was doing things impossible to do in C++. I pointed out that those things can, in fact, be done in pure C++ in a simpler way than in your example. I therefore don't see how your example proves that mixing languages that way is useful.

MyEmail {l Wrote}:I could spend an entire day typing up a 10-page article of the advantages of macros over their alternatives. Until you have actually used them yourself you have no idea of the vast potential they hold. Imagine how easy it is to unroll a loop? Which is such a pain in the ass in C++ using templates.

Doing a compilation time loop with templates is easy. And you rarely have to unroll loops by hand, the optimizer usually does it just fine.

MyEmail {l Wrote}:Imagine how easy it is to have fine-detailed control over every aspect of your program, right down to the profiling, memory management (including memory tracking, leak detection, and everything found in a memory debugger), and the limitless possibilities.

You can do all that in C++ with operator overloading, custom allocators, adding debugging code to constructors and destructors etc.
The only useful property of macros for such uses is that you can get the source filename / function name / line number at which the macro is called.

But mostly, you just run your code through valgrind or other debugging/profiling tools.

MyEmail {l Wrote}:Please do provide an example--Could you allocate a 30 structures with 10 parameters, and call 30 separate constructors please? This is a extreme-test case scenario that my macro system can handle with relative ease. I await your example code.

I'm not going to entertain your contrived scenarios. You said you can't construct a C++ object in an array, I pointed out that you can. What would your scenario be useful for in practice anyway?

MyEmail {l Wrote}:lol (in response to: "The unimaginably great potential found in this basic example alone shows just useful it is.")
See, that just proves your ignorance. You have no idea how powerful macros can be or their uses.

And so far you seem unable to explain it except by repeating "it's unimaginably powerful" over and over again, or providing unconvincing examples.

Your to stuck on conventional ways (whether it be by your own experience of "been their done that" or not, your still stuck) to realize there are better implementations of macros than the C macro system,

Yes, there are! For instance, C++ templates.

MyEmail {l Wrote}:Am I? Consider this scenario:
{l Code}: {l Select All Code}
void func1(object1 &obj);
void func1(object2 &obj);

// inline conversion operator goes here that converts object1 to a object2 type.

func(obj);
// oh snap, the wrong function was called!


Whereas in my C implementation the functions are expanded in macros:
{l Code}: {l Select All Code}
void object1_func1(object1 &obj);
void object2_func1(object2 &obj);

// impossible to call the wrong function
object1_func1(obj);


That's hardly a fair example. You deliberately misuse function overloading in the C++ snippet (carelessly throwing random non-explicit type conversion functions around is definitely asking for trouble and no one reasonable does that - but of course every feature of every language can be intentionally misused if you want to "prove" that a language is bad).

On the other hand, your system can't call the wrong function, but it doesn't offer function overloading either, which IS very useful for meta-programming. This is relevant since that entire discussion is about meta-programming systems.

So in that example you're basically boasting about never having to suffer the downside of a feature that you're not implementing.
Zlodo
 
Posts: 17
Joined: 14 Dec 2009, 12:36

Re: where to start (branched)

Postby MyEmail » 01 Sep 2011, 17:46

Zlodo {l Wrote}:Oh god, you have such a gigantic, fragile ego. Put it aside for a second and just enjoy having a frank discussion, you fucking crybaby.


I didn't bother reading the rest, but is this not proof? I am not the issue here. Please ban.
MyEmail
 
Posts: 107
Joined: 06 Jul 2011, 08:58

Who is online

Users browsing this forum: No registered users and 1 guest