Jump to content
Science Forums

Finally learning C++!


Recommended Posts

on to finish my thought, though my arm is aching from typing (gah, broken bones != fun)

 

Programming is not about the language or the syntax, i find that anyone who knows how to "program", not just throw syntactically correct lines together to solve simplistic problems, does not care what language to develop in. If you asked them to write code in Zygwygafirmian, a programming language i just made up to illustrate this point, knowing the logic, they can, within a week write mostly any code, within a month be completely profficient with the language, within 3 months know enough to write a book on the language, syntax is something you reference back to the reference manual to, logic is what programming truly is, logic, care for data, and efficiency are the factors that drive the best coding practices... IMHO

 

I completely agree, other than I would say someone who has worked in the language for 5 years will right a much better book than the one that has been at it for 3-12 months.

 

Proficiency can be had in less than a year. True beauty, clarity, and subtle design do take years of experience - no matter what the domain of experience.

Link to comment
Share on other sites

but the car does not produce anything, therefore the analogy perception is faulted.

 

lets break down programming terms for a car:

 

raw materials - assembly code, lowest level of language, something that defines objects that linkers use to link the code

 

nuts and bolts - linking objects, raw materials put together in their small sequences to make small objects that are common in all code

 

parts - for our intents and purposes these are groups of nuts and bolts put together to form more vague objects that we as programmers put together to make the car

 

the car - the end user product, its the ultimate top in the chain, you do not use multiple cars to make something else, thus the car represents and end-all product

 

A language does not produce anything without a programmer. A car does not produce anything without a driver. But with a skilled driver an Indy car can thrill millions of fans and produce multi-millions of dollars. With a reasonably skilled driver, an 18 wheeler can deliver 150 tons of goods to the other side of a continent in two days and make a decent profit for both the driver and the seller.

 

Ok I have to take part of that back. A vehicle without a driver can sit and idle and produce quite a bit of toxic carbon monoxide, but then alot of Microsoft code will eventually belch out enough memory leaks to crash any OS too :evil:

Link to comment
Share on other sites

I still argue that like a car, a program does not do anything without the user. It starts up, like a car, and then the user starts giving it inputs to make it do whatever it is. I don't want to break your view point, i am just telling you what my understanding of a car-programming correlation is, i see what you are saying nevertheless, i just don't think that dumbing down coding is a good way to go. If i pay for a piece of code, i expect the coder to know exactly what it does, so when i find the problem with his/her code, they fix it, not coming back with well its a logic object i dragged in, i don't know what it does behind the scenes... like photoshop web designers that get pissed off when you tell them that you want to slap them for not modifying the template after slicing to use percentages and that you had to spend 3 hours rewriting their sliced design template, basically from scratch...

 

I also think that you are of a wrong notion about microsoft, microsoft employs many thousands of programmers, many are great, and there are lots of simply brilliant programmers that work there. The problem is not the coders, the problem is not the environment, and i respect M$ for not using cubicles and for mostly not outsourcing development, the problems are driven by tight time lines, and by the inexperienced, not so well trained programmers. Remember with complex projects like this, its not the best code that has problems, its the worst, the rushed, the inexperienced programmer code B)

 

Experience shows me that there are many, many programs that are a lot more worse then windows...

Link to comment
Share on other sites

 

I also think that you are of a wrong notion about microsoft, microsoft employs many thousands of programmers, many are great, and there are lots of simply brilliant programmers that work there. The problem is not the coders, the problem is not the environment, and i respect M$ for not using cubicles and for mostly not outsourcing development, the problems are driven by tight time lines, and by the inexperienced, not so well trained programmers. Remember with complex projects like this, its not the best code that has problems, its the worst, the rushed, the inexperienced programmer code :)

 

Experience shows me that there are many, many programs that are a lot more worse then windows...

 

I agree with you that they hire some excellent programmers. But my observation is that by comparing it to Apple or Linux you can see that MS's problem is both at the top and at it's foundation, and their excellent programmers are caught in the middle.

 

Windows was build on a cheap/bad foundation (DOS) and they really screwed it up when some short sighted idiot came up with the Registry concept as a hack to make associations work like Apple did, by instead recording in each data object the program that was used to create it. Apple's approach is clean, simple, and correct. And MS's approach gives everyone nightmares and ruin's people's vacation time to this day. Most anyone I know who has had to wipe their machine has had to do so because either their Registry was corrupted or they got some nasty virus in the mail, or from hitting a dangerous web site using MS Internet Exploder... er Explorer.

 

But when the wrong antidote

is like a bulge in the throat

You run for cover in the heat

Why don't they

 

Do what they say, say what they mean

One thing leads to another

You told me something wrong

I know I listen too long

But then one thing leads to another

- The Fixx

 

Which pretty much also explains MS Outlook (aka security Swiss Cheese) whose work flow logic was designed bass akwards, and executes scripts passed in the mail instead of stored centrally on the server as Lotus Notes and other solid work flow systems correctly designed it. And to this day, anyone who runs MS Outlook is always the first to go down with a virus. MS is forever following up the destruction with a new patch. Strangely Apple and Linux users don't go down - and that is on top of the fact that Linux source code is visible for any hacker to read through.

 

I will agree that the root cause is the deadline and the managers who enforce it over delivering a quality product. And to my observation such an environment starts at the top and rolls down hill.

 

"The bitterness of poor quality remains long after the sweetness of meeting the schedule has been forgotten"

"By three methods we may learn wisdom:

First, by reflection, which is the noblest;

Second, by imitation, which is the easiest;

and third by experience, which is the bitterest."

- Confucius

 

Now the fact that they let their C programmers F with Visual Basic's syntax in .Net to the point that 95% of the VB coders still use VB6 to this day, and only use .Net when forced to - is a separate management problem - and a political one. They lost complete sight of Alan Coopers original benevolent (and ultimately profitable) intention of making Windows programming easy for the masses.

 

Clearly they have succeeded in annoying the more competent VB coders over to C#. Because if you are going to have to worry about crap like constructors and deconstructors then you might as well step up to the full enchilada. That just leaves many millions of self taught programmers (that have coded some pretty impressive things like entire stage light control systems talking to RS232) lost back at VB6.

 

Which group of phrases offers more empowering advice?

 

"Listen to me"

"Trust me"

"I can solve this problem"

 

"Listen to yourself"

"Trust yourself"

"You can solve this problem"

 

- Dr. Phil McGraw

 

I don't have a need to jealously guard my programming power. The more I give it away, the richer my environment becomes. Linux and Open Source are prime examples of this approach, as are several projects being given away by Google.

Link to comment
Share on other sites

I still argue that like a car, a program does not do anything without the user. It starts up, like a car, and then the user starts giving it inputs to make it do whatever it is. I don't want to break your view point, i am just telling you what my understanding of a car-programming correlation is, i see what you are saying nevertheless, i just don't think that dumbing down coding is a good way to go. If i pay for a piece of code, i expect the coder to know exactly what it does, so when i find the problem with his/her code, they fix it, not coming back with well its a logic object i dragged in, i don't know what it does behind the scenes... like photoshop web designers that get pissed off when you tell them that you want to slap them for not modifying the template after slicing to use percentages and that you had to spend 3 hours rewriting their sliced design template, basically from scratch...

 

When an 18 wheeler delivers a load of product, the product is not going to do anything either on it's own. It too must be activated or used by someone. And people will not want to use that product unless it's manufacturer stands behind it and knows how it works. But the manufacturer doesn't need to know a thing about how the 18 wheeler works, or for that matter care if it was delivered by airplane, ship, submarine, or a team of donkeys.

 

If the manufacturer is delivering lawn fertilizer, and the user fails to learn how to use the product properly, and instead piles it in a corner of their yard - they can expect to get a big burn patch of dead grass. I'm guessing the manufacturers phone support guys would feel much the same way you do about the web designers.

 

So my point is that if the product is software, then there are alot of home businesses all the way up to large corporations, that would like to have an easy to use, intuitive vehicle to deliver their product. Not something that requires an understanding of buffers, encryption, communication protocols, and rigid syntax etc just to run properly. That frees them up to do what it is that they do best - which is to create the best lawn fertilizer, baby heart monitor, book delivery service etc.

 

And I would also contend that there are alot of truckers out there that can rebuild their own engines if they need to. But I bet there are many of them that still prefer to ease into an ergonomic Cadillac or Lexus to drive down to the local convenience store, or to take their family across country rather than piling them into the back of their work vehicle. And in fact if they could have a Lexus set of controls that could still do all that their 18 wheeler could do, that they would much prefer the cushioned ride for most of their thousands of hours behind the wheel.

Link to comment
Share on other sites

Just to emphasize my point... if we review the opening to this thread, we can see that Ronthepon's main goal was to create some cool behavior in the game Half-Life. And probably didn't initially care about the details of programming. But he had found the current development environment and syntax too daunting to even begin.

 

To my observation this should not be the case. Having an intuitive drag and drop interface, designed with Half-Life metaphors would allow thousands of avid gamers to enhance their own and others experience. And I bet that ronthepon is also a damn good Half Life player... much better than any of us coders. So why should he have to take a large amount of time away from what it is that he does best, just to make a contribution to his environment?

 

Now I am all for those that want to delve deeper and understand the underlying technologies. But I do not think they should be forced to get a four year degree (or even take a 6 month course) to accomplish it.

 

Been around programmers for years, yet never actually got to work with them. Yes, I don't know one bit about computer programming. I've always wanted to know how to write programs, but I've never had the guts to go on the apparently difficult and gruelling path to become a programmer.

 

Things turned dark and cold when I got to Half-Life map editing. I knew how to make wonderful environments, and got to explore world I created. But the world were horribly empty, or simple repeats of the same things I had created only days back.:evil: I had the source code right under my nose, but didn't have one bit of knowledge about how to use the wonderful tools.:)

 

But now, everything's gonna change. After coming to my new college, I was introduced to a course 'EC-101A'. Instantly I knew that I was where I always wanted to be. I would get to learn C++ in my very first semester, and possibly java by the second...:)

 

So here I am, setting up my base camp, ready to build my bones. I hope others like me will join me in my quest, and those who already have undergone it will assist...

 

I begin tomorrow...

 

Till then, the compiler I use will be 'Dev-C++ 4.9.9.2', available from here.

Link to comment
Share on other sites

Strangely Apple and Linux users don't go down - and that is on top of the fact that Linux source code is visible for any hacker to read through.

you've got no clue, lol, i dont run linux on production laptops for the reason that i had to spend hours after almost every update fixing it. Having that said, there is more stable code, but that means that once people like myself used the cutting edge release, we hit problems ,some of which we were able to sort out, so the stable releases are already tested by the masses, and since there is a large eager to test community of linux users, partly because they themselves are developers, or because we have been waiting for a particular sometin in the release, the stable linux remains stable. But it's not as secure as the cutting edge code patches.

 

Apple does not have quite the problem, they tend to take their sweet time to test the patch, but if you make an OS that runs on 2 architectures and supports 150 different pieces of hardware, and your kernel code is written by another comany, and nobody really rushes you, well, why not create the patch, distribute it to a test network, test it, till you find issues, iron those out, put the patch on your network at work, run it for a week or two, iron out the rest ofthe bugs, and then release it to the public.... Aaaah, the laid back atmosphere of apple development, really provokes creative content...

 

So the hecticness of developing security patches goes as such:

Linux, patches for found security issues have sometimes been released within 45 minutes of vulnerability being found. Crazy linux admin calls, dev looks at it, a couple of hours later they send me the patch. Within a day or so, the patch makes it to the main stream update database, so everyone who uses the distribution gets it. At that time it is also reported to the software maker and the fixes go out on the next release of the software, so within a few weeks after the discovery, everyone who updates is patched, even people who didnt know they were vulnerable.

 

Windows, we release it within the week of having the project hit devs. Oh, we need at least a few thousand calls to get a security vulnerability to be lookedat and seen to be recognized as a problem, then we release a patch within a week, we will patch whatever gets broken by that patch later...

 

Mac, wait for apple care to be sure its not a setup issue, if the error is with a smallpiece of hardware, or a rare driver, ignore it. if it is indeed a threat, go and set up a meeting in a fully interactive, white conference room, right by the starbucks in your building. Get a bunch of your coworkers and create a fix, test it on your test machine, send it to test on a test network... fix issues, send it again, fix issues, deoploy building-wide.... wait for a bit, now send it for approval for oficial update, fix the bad code they point out, then, a few month later when this attack vector is already been discussed at a security conference, release a patch to fix it..

 

When an 18 wheeler delivers a load of product, the product is not going to do anything either on it's own.

like a big application, thhe kind of the car is merely the type of an application. A container ship can be a database, a truck might be a network stack, not all applications are directly riven by users, but like all different vehicles, different applications have different purposes, sizes and uses... Database stores data. it will not read data or write it until a driver tells it to. that close enough to a tractor trailer?

 

So my point is that if the product is software, then there are alot of home businesses all the way up to large corporations, that would like to have an easy to use, intuitive vehicle to deliver their product.

as a person who works at a company that moves over 12 million dollars of product a month, a company couldn't care less if the truck is drive by wire, or takes a nuclear physicist to operate, they care that the product is on their door step, that it is clean and not broken, that boxes are intact and that it is safe. More then anything they want that product to be delivered in a fast and efficient matter, the faster they get the product, the more the customer is satisfied.

 

Also working as a sysadmin for a company that runs an application that is built in VB, i can tell you, the easy way that the coders use to rapidly develop applications that fit more then a specific business model causes MUCH more problems then if it was written to be fast and efficient even though someone took extra 3 months initially to develop it right! You have no clue how many times i wanted to go to their headquarters and strangle some devs for creating this monstraucity that hogs up a quad 2.8 with 8 gigs of ram, and raided 15000 rpm sci drives, and all the user processing is done on the the client side, which continuously talks to the server by sending a 512 byte packet every couple of seconds..... and when you have 150+ users using it at any given time, when more then a simple database transactions make everyone slow down to a grind.

 

Listen, you say you dont care about efficiency, well, i just gave you one of my personal experiences who think that loosing ticks is ok, if you can piece it together quicker. Oh, the database management is so bad that they send me a sql script to test the database, and then another one to fix whatever itt is they found wrong, on almost a weekly basis! And this is one of a few applications like that that i see at work every day, i am sure that buffy has some good stories, too :)

 

Remember, any time you simplify the creation stage of the program, you take away efficiency. Last example, why do you think RoR made this gigantic splash, and now you dont hear of it too too much? Could it be that when the companies started to realize just how resource hungry RoR is, hiring back that PHP dev that took a bit longer to put together the code, but you could run that same app that now brings down your 3.3 core 2 with 4 gigs of ram with a raid 10 15k rpm sas setup, on a 2.0 with 768 megs on 7000 rpm ide drives with software striping, and you would put approximately the same strain on either box... makes one think that while dynamic program creation is a cool thing, and it has its place, dont take me wrong, but its not a solution to not having to write proper, precise code!

Link to comment
Share on other sites

you've got no clue, lol, i dont run linux on production laptops for the reason that i had to spend hours after almost every update fixing it. Having that said, there is more stable code, but that means that once people like myself used the cutting edge release, we hit problems ,some of which we were able to sort out, so the stable releases are already tested by the masses, and since there is a large eager to test community of linux users, partly because they themselves are developers, or because we have been waiting for a particular sometin in the release, the stable linux remains stable. But it's not as secure as the cutting edge code patches.

Have you tried doing the same thing for cutting edge MS Releases? Not pretty either. Apples to Apples (pardon the pun) all the Linux guys I know that take the stable releases are happier. It's just unfortunate that most business apps don't yet work on that platform.

 

 

Apple does not have quite the problem, they tend to take their sweet time to test the patch, but if you make an OS that runs on 2 architectures and supports 150 different pieces of hardware, and your kernel code is written by another comany, and nobody really rushes you, well, why not create the patch, distribute it to a test network, test it, till you find issues, iron those out, put the patch on your network at work, run it for a week or two, iron out the rest ofthe bugs, and then release it to the public.... Aaaah, the laid back atmosphere of apple development, really provokes creative content...

Hence the reason Apple has such a loyal following. In fact I hear that MS lets their developers have alternative OS's at their desk, and many of them choose to have Apples.

 

as a person who works at a company that moves over 12 million dollars of product a month, a company couldn't care less if the truck is drive by wire, or takes a nuclear physicist to operate, they care that the product is on their door step, that it is clean and not broken, that boxes are intact and that it is safe. More then anything they want that product to be delivered in a fast and efficient matter, the faster they get the product, the more the customer is satisfied.

 

Ok so while we are having a pissing contest... as a person who has worked on expert systems that process over 150 million in premiums per month, I can tell you there are companies that track how much they spend for programmer salaries closely, because that is one of their primary expenses, much more than hardware or software. And having a development tool that lets them successfully develop applications for less money (via faster development cycles and/or cheaper labor) would certainly show up on their radar. Which is to a large degree why outsourcing is so popular in IT these days.

 

Also working as a sysadmin for a company that runs an application that is built in VB, i can tell you, the easy way that the coders use to rapidly develop applications that fit more then a specific business model causes MUCH more problems then if it was written to be fast and efficient even though someone took extra 3 months initially to develop it right! You have no clue how many times i wanted to go to their headquarters and strangle some devs for creating this monstraucity that hogs up a quad 2.8 with 8 gigs of ram, and raided 15000 rpm sci drives, and all the user processing is done on the the client side, which continuously talks to the server by sending a 512 byte packet every couple of seconds..... and when you have 150+ users using it at any given time, when more then a simple database transactions make everyone slow down to a grind.

 

So why is it that most prototype apps are written in a scripting language like VB instead of VC? Based on my experience it is because they can develop it with fewer programmers and with about 1/40th the amount of code. Some of them go on to become production systems. Some of those are good enough to remain in VB, and some have to have components rewritten in VC or the like for performance reasons. But that decision is one for management, and it sounds like you guys have some poor planners there, that don't stay on top of their projects. Sorry to hear that.

 

Listen, you say you dont care about efficiency,

I never said I didn't care about efficiency. In fact most every reference I made included "being successful" and in my book that has to be efficient and cost effective. Having great bells and whistles is great, but it still has to perform at the end of the day.

 

Remember, any time you simplify the creation stage of the program, you take away efficiency. Last example, why do you think RoR made this gigantic splash, and now you dont hear of it too too much? Could it be that when the companies started to realize just how resource hungry RoR is, hiring back that PHP dev that took a bit longer to put together the code, but you could run that same app that now brings down your 3.3 core 2 with 4 gigs of ram with a raid 10 15k rpm sas setup, on a 2.0 with 768 megs on 7000 rpm ide drives with software striping, and you would put approximately the same strain on either box... makes one think that while dynamic program creation is a cool thing, and it has its place, dont take me wrong, but its not a solution to not having to write proper, precise code!

 

I agree! But who says that efficient and precise code has to be generated by a human programmer?

Link to comment
Share on other sites

And having a development tool that lets them successfully develop applications for less money

oh, but i most certainly agree, i just dont think that another form of basic is it, i think the direction of dynamic development platforms, and better optimization techniques of thereof is a better way then yet another dumbed down app development language. A smarter and better compiler and linker, a good set of solid libraries to import from, and openness of such a system with the encouragement to develop with your system for your system is the goal IMHO :)

 

I mean i think we are approaching the same problem from the same direction with a slightly different terminology. basically a language that has the beauty of a low-level c-like language, with the speed of development and smartness of a high level ror-like platform, developed with developers in mind....

Link to comment
Share on other sites

oh, but i most certainly agree, i just dont think that another form of basic is it, i think the direction of dynamic development platforms, and better optimization techniques of thereof is a better way then yet another dumbed down app development language. A smarter and better compiler and linker, a good set of solid libraries to import from, and openness of such a system with the encouragement to develop with your system for your system is the goal IMHO :phones:

 

I mean i think we are approaching the same problem from the same direction with a slightly different terminology. basically a language that has the beauty of a low-level c-like language, with the speed of development and smartness of a high level ror-like platform, developed with developers in mind....

 

Thanks for the pointer, but I am familiar with Ruby. And I am talking beyond a keyboard intensive language like Basic and other 4GLs. I'm talking more things like GraphLogic's PointDragon. Just faster, and maybe a local copy instead of web based.

Link to comment
Share on other sites

I dunno, i just dont see how you are going to bypass the laws of computing thus far by creating a metaprogramming language that will somehow be efficient.... I just dont see it....

 

Imagine telling someone in 1995 that your current operating system takes up 450meg of RAM at bootup and requires a 2.5gigahertz machine with a 128 meg video card accelerator to play any decent games, and that any standard application typically lays down a 600 meg footprint.

 

They would look at you like you were an alien and say "Gigawhat?!?"

 

I worked at a major oil company in 1995, and they were very proud of the 512meg of RAM and 1 terabyte of disk space they had across their 2 mainframe computers that cost them about $85 million and took up an entire water cooled floor of the building.

 

"Efficient" in a few years will look a whole lot different than it does right now.

Link to comment
Share on other sites

but as you have yourself shown. Higher performance hardware design does not drive things to be more efficient, but the development of new software drives the hardware manufacturers to provide you with hardware that will accomodate the ever-so-bloated, or ever so complex hardware.

 

The reason the current games are using more and more hardware resources, is not because somehow game designers switched to a higher level language, game developers care and invest a LOT into creating the most efficient code. Games take more resources because they try to emulate a 3d world in a 2d environment to higher and higher degrees of realism, aka mimicking real world processes to make it look real, the closer you get to real world, the more and more resources you will consume, and its a progressive power curve. Hardware manufacturers aim at efficiency and providing Low-level control to people so they can code on the level the firmware coders code. Notice they move to a language that is a lower level then C to improve efficiency.

 

Also what you are effectively saying is that in your eyes efficiency concept is redefined with new hardware? that's not true, efficiency is efficency no matter hte program, the hardware, the concept. And metaprogeramming language decreases... where in quick business apps it does not matter, in the world where creative logic is needed all the time, creative logic is specific to making an already efficient low-level code, to use less ticks/streams/registers...

 

how many algorithms can you come up with for this simple probllem:

 

you have 2 values: A and B

your task is to change the values around so that B becomes the value of A and A becomes the value of B

 

inial values if you need them

A=5

B=7

 

When you post your algos please note ticks and memory advantages and disadvantages

Link to comment
Share on other sites

but as you have yourself shown. Higher performance hardware design does not drive things to be more efficient, but the development of new software drives the hardware manufacturers to provide you with hardware that will accomodate the ever-so-bloated, or ever so complex hardware.

 

I'm just saying that hardware, soon enough, makes concerns over "inefficient" software like MS Windows, become irrelevant.

 

The reason the current games are using more and more hardware resources, is not because somehow game designers switched to a higher level language, game developers care and invest a LOT into creating the most efficient code. Games take more resources because they try to emulate a 3d world in a 2d environment to higher and higher degrees of realism, aka mimicking real world processes to make it look real, the closer you get to real world, the more and more resources you will consume, and its a progressive power curve. Hardware manufacturers aim at efficiency and providing Low-level control to people so they can code on the level the firmware coders code. Notice they move to a language that is a lower level then C to improve efficiency.

Which is generally what I am advocating for programming. I would like to see the difference from Pong, to Space Invaders, to Doom, to Halo be applied to programming. To basically go from a simple set of metaphors to a rich environment, very similar to the delivery target in terms of reality. At some point I would love to be sitting in my virtual reality moving coding objects around in a similar fashion to The Minority Report or The Matrix III. They don't have to be concerned if the data types match up. They just define a relationship and a process and let the computer figure out the rest.

http://whatisthematrix.warnerbros.com/reloaded_desktops/img/59_800x600.jpg[/img]

 

Also what you are effectively saying is that in your eyes efficiency concept is redefined with new hardware? that's not true, efficiency is efficency no matter hte program, the hardware, the concept. And metaprogeramming language decreases... where in quick business apps it does not matter, in the world where creative logic is needed all the time, creative logic is specific to making an already efficient low-level code, to use less ticks/streams/registers...

 

Do you consider Windows to be efficient? It is "sufficiently" efficient in this day and age. But take XP and try and run it on a 2 meg box designed for Windows 3.11 and you will find out that it ain't so. And I would say that the average layman could not tell you much at all that is different between the two operating systems other than XP has a bit fancier graphics. They basically perform the same operations. You and I know that the robustness of XP comes at a price. But that is not apparent to the user. They just want to email on the internet. And that technology sadly has not improved much in the last 15 years.

 

how many algorithms can you come up with for this simple probllem:

 

you have 2 values: A and B

your task is to change the values around so that B becomes the value of A and A becomes the value of B

 

inial values if you need them

A=5

B=7

 

When you post your algos please note ticks and memory advantages and disadvantages

Ok I'll byte. This was basically one of the first things my computer teacher ever taught me in 5th grade:

 

T=A

A=B

B=T

 

I'm not able to imagine any other way to do it until someone can invent a digital juggler with some air time for the values. So please enlighten us. :phones:

 

Now if you are talking syntax and want it down in Assembly, or even lower in AND, OR, and NAND gates then let me know. But I only know how to do the gates in binary :confused:

 

There are 10 kinds of people in this world.

Those who understand Binary, and those who don't

Link to comment
Share on other sites

I'm not able to imagine any other way to do it until someone can invent a digital juggler with some air time for the values. So please enlighten us.

 

I am not doing this to show that i am in any way better then anyone, all i am trying to do is to demonstrate that you dont get to improve programming logic, if you only think that there is one way of doing things.

 

So, you describe the most popular programatic way of solving this simple equation. There is another, and it comes from talking to a brilliant mathematician who also happened to be a good coder i talked to, a few years back. He sat down and by himself devised a different way of doing that, and he shared, so consider this:

 

A=A+B

B=A-B

A=A-B

 

this decreases the space to be consumed as well as ticks by not creating a third variable to deal with

 

Also knowing properties of c++ for example, one might also do that without moving anything in memory by using the pointer properties of the variables...

 

Once again i am not trying to show off here, but i am trying to show that thinking about creative logic is almost better, while being confined to the world that does count ticks.

 

But I only know how to do the gates in binary

lol so here is a trick question, does the compiled executable consit of 1's and 0's? (did you know that over 95% of compiter users will answer that wrong?)

 

i talk in anything you want, besides there are many kinds of assembly languages, and usually assembly coders use hex over binary too ;)

 

"inefficient" software like MS Windows, become irrelevant.

And which part of that software is inefficient? windows is more then a single piece of software, infact its much more then an OS, so which part of Windows are you referring to?

 

It is "sufficiently" efficient in this day and age

after you answer the question above, i want you to tell me which part of windowswon't run on that hardware, and why...

 

They don't have to be concerned if the data types match up. They just define a relationship and a process and let the computer figure out the rest.

Listen i am the first person who would jump to help you develop such language, i just want YOU to understand that you can not achieve "efficiency", in its one and only meaning, i am for designing a virtual object coding language that will generate and optimize code, but i want YOU to understand that it will not be efficient. It will be fast enough for fast-developed business applications, database apps, what have you, but it will not be efficient in the very core of that word. Once again, efficiency of a program depends not on the speed of the computer, just like the rate of acceleration of an object due to gravity depends not on the object's weight...

Link to comment
Share on other sites

I am not doing this to show that i am in any way better then anyone, all i am trying to do is to demonstrate that you dont get to improve programming logic, if you only think that there is one way of doing things.

 

So, you describe the most popular programatic way of solving this simple equation. There is another, and it comes from talking to a brilliant mathematician who also happened to be a good coder i talked to, a few years back. He sat down and by himself devised a different way of doing that, and he shared, so consider this:

 

A=A+B

B=A-B

A=A-B

 

this decreases the space to be consumed as well as ticks by not creating a third variable to deal with

 

Also knowing properties of c++ for example, one might also do that without moving anything in memory by using the pointer properties of the variables...

 

Once again i am not trying to show off here, but i am trying to show that thinking about creative logic is almost better, while being confined to the world that does count ticks.

I was being serious. Thanks for the trick! That has some good metaphors elsewhere as well. It reminds me a bit as well of the clever parity calculation between two RAID disks being kept in sync.

 

 

lol so here is a trick question, does the compiled executable consit of 1's and 0's? (did you know that over 95% of compiter users will answer that wrong?)

Well considering that everything that happens on a normal computer ends up as binary at some level then the answer is yes. But it also simultaneously exists as a charge in master/slave transistors as well. And also assembler. So it just seems like what setting you want to put your zoom lens at to get your answer.

 

I know that there were some specialized IBM 370's put into the Apollo capsules that had to run in base 13 because there was physically not enough space for it the hardware to have 16 bits. That would be an interesting way to program :help:

 

i talk in anything you want, besides there are many kinds of assembly languages, and usually assembly coders use hex over binary too ;)

 

 

And which part of that software is inefficient? windows is more then a single piece of software, infact its much more then an OS, so which part of Windows are you referring to?

Most all of it. The programmers were given the task of making it work. It was only the 2nd and third generation teams that were tasked with reducing the bloatware. A prime example of course was MS Word that had the flight simulator embedded within it. Granted it didn't get loaded into memory unless the key sequence was pressed. But my point is if they can hide a 150meg simulator in the code, imagine what lesser things they swept under the rug.

 

after you answer the question above, i want you to tell me which part of windowswon't run on that hardware, and why...

The XP won't boot on that hardware because it requires 250meg minimum of RAM just to load.

 

Listen i am the first person who would jump to help you develop such language, i just want YOU to understand that you can not achieve "efficiency", in its one and only meaning, i am for designing a virtual object coding language that will generate and optimize code, but i want YOU to understand that it will not be efficient. It will be fast enough for fast-developed business applications, database apps, what have you, but it will not be efficient in the very core of that word. Once again, efficiency of a program depends not on the speed of the computer, just like the rate of acceleration of an object due to gravity depends not on the object's weight...

I completely agree on the gravity metaphor. And I would love to have a product that was built with quality and efficiency. Clearly Toyota is a shining example of that premise here in the US. But that has to be instilled as a cultural thing for both the management and employees to make it happen.

 

I hope I posted that link to GraphLogic earlier. They have a nice start. We just need to get if fleshed out some more.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...