An entire CD's worth of songs is clearly what was meant. We are talking about an MP3 player;)
Step 1 - encode all cds to mp3.
Step 2 - whenever you want, move a cd worth of songs onto your iPod in under a minute.
Step 3 - call NASA and get an entire flight team to help you guide your hands to your ass, you're clearly having problems with this step.
You would load mp3s onto an mp3 player, from the net, your harddrive, whatever. But they would have to be already in MP3 format. You would NOT rip them from a cd, not in the player at least. You could do that on your computer, where you might want to have a 24 bit soundcard. You'd then load them in thru the ethernet connection. MP3 DOES have to be a lossy format. It is by definition. It doesn't have to be an AUDIBLE difference, but data IS lost - that's how it makes files smaller than wavs. Lossy isn't a dig, or a synonym for lousy, it's a technical description. There are lossless formats, MP3 is not one of them. If you convert a wav to an MP3 and then back into a wav, the second wav is not the same as the first, data has been lost. If they were the same, it would be lossless. What software are you using for ripping? What size are your files? 24 bit soundcards and mp3 are an unnecessary combination... if you need professional sound quality you need uncompressed audio, if you don't then the 24 bit quality will be totally lost in the resulting mp3.
For the most in-depth coverage of the MP3 format, including comparisons of encoders, file size, actual audio tests, etc. go to r3mix.net By the way, if all you care about is quality and not size, just don't convert to MP3. Seriously, 320 bit MP3's don't offer enough size savings to make the conversion worthwhile. There is a.shn shorten file format which is lossless and does make files smaller, don't know much about it.
Yes, the DMCA clearly states that you cannot wipe your ass without having microsoft's permission in triplicate.
Did you happen to notice this was not a cable box? Does your cable box have a 10/100 Base T Ethernet connection? RCA stereo out? 256 MB Ram?Keyboard and a mouse? Does it run Microsoft Win95, 98, NT, WinCE, RTOS QNX, Citrix, and Linux?
And let me guess.... you own a cable ready tv or vcr and you've never realized you don't need a set-top cable box (unless you have A/B channels).
You would want a 24 bit soundcard.... why? Because 24 is higher than 16? To play what? What mp3s are you going to find where that would matter? What level of encoding are you going to use where you'll be able to hear the difference between playback on a 16-bit versus 24-bit soundcard? MP3 is a lossy format, the bottleneck in quality will be in the mp3 files, not the sound card. Even the software you use to play back the mp3s will probably make a much bigger difference in the perceived sound quality than the 16/24 bit difference. Not all mp3 playing software is equal.
This is to be a component. It should function as reliably as your cd changer. 'May not be hugely reliable' pretty much rules out an OS that is to be used for a consumer electronics style interface. Particularly since there was to be a car version. What will you say when you crash your car because you were trying to play an mp3 when your os hung?
This is a box that you might stick on top of your 5x100 watt receiver in an enclosed space - do you want the os to be unreliable?
With anything on the back end:) What advantage does Java on the back end have over perl, tcl, python, php? Planning on moving your web app from platform to platform every week?
I can see you're a big Java fan, it just never seemed sufficiently high level or sufficiently low-level to me.
If you're a fan of those aspects of Java that you say you are, what do you think of.Net? It has aspects of real brilliance, taking the best things about Java and extending them into areas that Sun didn't think of. Check out Dr. Dobb's Journal article on it: http://www.ddj.com/articles/2000/0075/0075k/0075k. htm.
My company was 'locked into' microsoft technology from the very beginning. Like most are. Yes there are some Sun boxes for the web servers and databases, but people have PCs at their desks. That is NOT going to change. The only alternative to being locked into Microsoft technology for my company would be for my company to cease to exist as it does today.
You say they work flawlessly when you copy them? Tell me, are the boxes both running the Sun JVM? Would it work so flawlessly if one were using the Microsoft JVM? The same code won't run the same on different JVM's. So if you want the same code to work the same you need to do minor re-writes to accomodate the different JVM's. Or the alternative is only supporting one JVM, which it sounds like you do if this works flawlessly for you. Java is not the solution to the world's problems. It's C++ the way C++ should have been structured - but minus its speed.
why spend time coding for 3 platforms if it's only going to run on one? if your program is only going to run on a pc, there is no easier way to include a lot of windows functionality than to write in VB.
now of course it sucks that microsoft doesn't expose all those functions easily to outside languages, but c'est la microsoft.
VB isn't VBScript. VBScript is a subset of Visual Basic for Applications.
They're two separate issues, VBScripts are risky because of the way they're attached to emails, and there mainly because of Microsoft's default settings in Outlook.
What are you using VBScript for? You could probably port the code to a VB program. I think the only things VBScript has that aren't available in VB are the Execute and Eval functions. And you must add a reference to VBScript regular expressions if you want to use the RegExp object. Otherwise it would be a straight copy.
I think you're safe in assuming your IT department won't decide to universally block.exe files:)
take care of your primary market first
on
Microsoft's Future
·
· Score: 2
If you're writing an app that will be used mainly on one type of computer, say a pc, write it for that first. And VB is very easy to use for pc apps.
If you NEED to write an app that's usable by any system, you need to write a web app. That's actually mainly what I do, but web apps are slow in comparison to any kind of compiled code, and are unsuitable for many business applications. But they use accepted standards, have a really long useful life, and can be accessed from Macs, Linux boxes, PCs, etc.
You say not to try to predict the future. Yet that's what you're knocking yourself for not doing. Oftentimes the stuff I write ends up not used, or being quickly abandoned because of changing business relationships. Or someone decides to rearchitect a whole department and the entire way of doing business changes. In those cases, programs are dropped or have to be re-written from scratch. Although if you have good stored procs and some good useful functions you can re-use those pieces. If your department has changed the way it does business, then yes the app needs to be rewritten. If you haven't changed the way you do business, why can't you make minor modifications?
What was your primary market? A technology department using it for complicated stuff? You say it's a large and involved program. VB is best suited for quick business apps, though it can extend somewhat. Did you make much use of ActiveX controls? To encapsulate functionality so you can use those pieces later? Or is it all in one giant main()? Writing 'components' in any language encourages code re-use. Writing monolithic blocks always discourages code re-use. I don't think the use of VB really affects that much.
Again, I feel that strongly typed object oriented programming leads to the problems you describe above. So does highly 'optimized' code. Basic, clear syntax works best, even when it's not the most efficient. Take Moore's law into account when you worry about efficiency or speed, the hardware guys will continue cranking up the numbers.
VB is quick to write, and quick to re-write. Same with perl, python, and tcl. Scripting builds on powerful components. Similarly, VB uses the powerful windows api functions that Microsoft exposes. Toss in an instance of IE. Toss in menu bars for file operations. Toss in a button to print. Powerful functions that are easily implemented by the coder.
What is doing it 'the right way'? Defining classes and inheritance? Overloading functions? No. The right way is to write simple code, well commented and documented that any schlub of a programmer can read and modify. Don't compactify 10 lines of code into one 'just because you can'. Optimize for maintainability first, not cleanliness or even speed. PCs are disposable, and after 20 - 30 months of use whatever box is running your code will be replaced with one that's twice as fast. Do you think you can make such a big speed difference in your code? Would the expense of making the effort be worth it to your company? I didn't used to think like this. But my co-worker and I have spent so much time reverse engineering the code of the crazy genius russian coder who used to work here that any advantages he thought he was getting in his ever further 'optimizing' the code were far outweighed by the costs. He did it 'right' the first time, and his code was highly optimized for the exact situation we faced at the time. Detangling the lists of arrays afterwards to make slight changes took soooo long.
I don't think short-term gains have to have long-term costs. A lot of apps are almost disposable. Again, this is from a very business oriented point of view. If I were doing advanced cryptography research I would not have this point of view. But business apps?
The thread started about vb, and people dissing vb as a programming language. vb means vb. if you want to talk about vb script, say vb script. clear enough?
actually.... this is the meat of the debate
on
Microsoft's Future
·
· Score: 2
'Leveraging' seems to many of us to be clear abuse of monopoly power. It isn't established in case law however. This is a big issue in their cases.
If you're already an employee, there are probably 100 ways you can steal from the company, crash machines, give out passwords etc.
VB is not for making programs to distribute outside of a company. I think it's not well suited for that at all, though I know some people do use it for that. It is a rapid application development tool for little custom jobs.
Let me be clear here. I'm talking about things that are determined by business logic, not technology, and where the business logic isn't going to change much. If the business logic changes, then yes there need to be changes to programs. So? VB isn't any worse than any other language to maintain, change, etc. Better than a lot like perl which has so much odd syntax relying on special variables. The syntax is very straightforward and the convention of naming variables intTotal, etc. is wonderful. Have many of you actually used VB in a small business environment? I agree with your statement, but I feel that quick and dirty VB apps meet those criteria much better than complicated C++/Java object oriented programs.
Small businesses often don't HAVE 5x to spend today. But if they can spend 1x today, they hope to have 10x in the near future. If you have one or two developers, their time is a precious commodity. In my experience, writing things 'the right way' is usually at best a waste of time and often very counterproductive. Learn to accept and love the kludgy hack. By the time you need to change a program your company may have been bought twice, and any resources spent on doing cool geek stuff would have been wasted. Code is just instructions to a machine. The goal has to be allowing people to get their job done, not to tell the machine what to do in a cool way. Scripting languages are good at this, and VB is good at this. As far as I can tell strongly typed object oriented languages are more suited to academia or super high tech companies than to a business environment. Have you ever written a custom web browser with built in database access (to check urls against a current partner list)? Integrated with the company standard Outlook email program? In 3 weeks? VB rocks. It's not what I mainly use, but I enjoy using it for what it's meant for.
linux or any *nix is only cheaper if your client is trained in how to use it. if your app will be used by data entry clerks, spending a lot of time training them in how to use a *nix is not cost justified.
this obviously needs to be factored into any discussion of 'expense'.
training is very expensive.
training our marketing people on linux would probably exceed the GNP by a fair margin.
give them their windows forms, it is honestly cheaper.
because your client wants windows forms?
on
Microsoft's Future
·
· Score: 2
Professional programmers must meet the needs of their clients. Am I going to tell the marketing guys that I want to write the app they need to run only on *nix boxes? When they don't know what that is? Or am I going to give them VB forms and pop-up dialogues and a self-installing package?
Programmer-friendly doesn't really matter does it? Unless you're coding for fun.
What's with the hostility for VB?
on
Microsoft's Future
·
· Score: 3, Funny
It's a great tool for what it's meant for: rapid application development for small businesses where the software will be run on a windows pc and used by someone who wants to do all their work in windows forms. It's very very quick, and there are a lot of developers who know it. It's a good choice for internal company apps.
Some people have such glorified ideas of what a 'programmer' is. You give detailed instructions to a machine. If you spend a week writing beautiful code you cost your company 5x. If you spend a day writing ugly code you cost your company 1x. If both programs meet the functional requirements, the company that encourages spending one day will survive better. I have nothing against beautiful code, but I have nothing against utilitarian functional code either.
Information doesn't want to be free.
Information doesn't want anything.
People don't want to be free.
People don't want anything.
They are just bags of fluid, with chemicals moving around in the brain. Ascribing a motivation like 'want' is unwarranted.
What is your point? This is a poetic statement, a metaphor, not a scientific equation.
Constitutional basis for federal patent and copyright systems is to be found in the Constitution of the United States Article 1, Section 8, clause 8 which states:
"Congress shall have power... to promote the progress of science and useful arts by securing for limited times to authors and inventors the exclusive right to their respective writings and discoveries. "
Federal patent laws have existed since 1790. The first United States Patent Act, that of 1790 was a short act of seven sections only entitled "An act to promote the Progress of Useful Arts". Under its terms any two of the Secretary of State, the Secretary of War and the Attorney General were empowered to grant patents for terms of up to fourteen years for inventions that were "sufficiently useful and important" provided that the grantee submitted a specification describing the invention (and where appropriate a model thereof) to the Secretary of State at the time of the grant.
In 1793 this act was repealed and replaced by a slightly longer act, the drafting of which is largely attributed to Thomas Jefferson, who was at the time Secretary of State and therefore intimately involved in the administration of the 1790 Act. The Act is notable for its definition of what constitute patentable subject matter in the United States, which definition is almost unchanged up to now:
"any new and useful art, machine, manufacture or composition of matter and any new and useful improvement on any art, machine, manufacture or composition of matter."
In the same year the Supreme Court in Grant v. Raymond made it clear that failure to provide an adequate description of the invention was a ground under which a defendant might use when sued for patent infringement, it being held that
"as a preliminary to a patent a correct specification and description of the thing discovered (was required). This is necessary in order to give the public, after the privilege shall expire, the advantage for which the privilege is allowed and is the foundation of the power to issue the patent... "
A major review of the law was undertaken in 1836 in response to complaints about the grant of patents for things that lacked novelty. Under this revision the Patent Office was set up as part of the State Department and a specification had to be submitted to it and be examined for novelty before a patent would be granted. As a consequence of this provision of the 1793 Act requiring the inventor to distinguish his invention from the prior art was expanded upon to require the applicant to "particular specify and point out the part, improvement or combination, which he claims as his own invention or discovery".
Nowhere in there do I see anything about being designed to make money.
What I do see is that the Patent Office was set up to ENSURE sufficient novelty in those items submitted for patenting. If it fails in this IT IS FAILING IN THE ONE THING IT WAS DESIGNED TO DO!
An entire CD's worth of songs is clearly what was meant. We are talking about an MP3 player ;)
Step 1 - encode all cds to mp3.
Step 2 - whenever you want, move a cd worth of songs onto your iPod in under a minute.
Step 3 - call NASA and get an entire flight team to help you guide your hands to your ass, you're clearly having problems with this step.
Uh... I'm asking for a friend (grin)
I don't think any 9 yr old would grasp old english very well
Oh, yeah everyone making 60 g's in an office is so tempted to beat people up and take their lunch money.... Economic situation creates criminals.
Do YOU have an e-commerce job? Tell me then what the difference is between a rap music fan site and an information site on chemistry?
Why pick Nike instead of Monsanto or Dow or Lockheed Martin? Thousands of clothing companies do what Nike does.
This is an MP3 player. NOT a ripper.
.shn shorten file format which is lossless and does make files smaller, don't know much about it.
You would load mp3s onto an mp3 player, from the net, your harddrive, whatever. But they would have to be already in MP3 format. You would NOT rip them from a cd, not in the player at least. You could do that on your computer, where you might want to have a 24 bit soundcard. You'd then load them in thru the ethernet connection. MP3 DOES have to be a lossy format. It is by definition. It doesn't have to be an AUDIBLE difference, but data IS lost - that's how it makes files smaller than wavs. Lossy isn't a dig, or a synonym for lousy, it's a technical description. There are lossless formats, MP3 is not one of them. If you convert a wav to an MP3 and then back into a wav, the second wav is not the same as the first, data has been lost. If they were the same, it would be lossless. What software are you using for ripping? What size are your files? 24 bit soundcards and mp3 are an unnecessary combination... if you need professional sound quality you need uncompressed audio, if you don't then the 24 bit quality will be totally lost in the resulting mp3.
For the most in-depth coverage of the MP3 format, including comparisons of encoders, file size, actual audio tests, etc. go to r3mix.net By the way, if all you care about is quality and not size, just don't convert to MP3. Seriously, 320 bit MP3's don't offer enough size savings to make the conversion worthwhile. There is a
Yes, the DMCA clearly states that you cannot wipe your ass without having microsoft's permission in triplicate.
Did you happen to notice this was not a cable box? Does your cable box have a 10/100 Base T Ethernet connection? RCA stereo out? 256 MB Ram?Keyboard and a mouse? Does it run Microsoft Win95, 98, NT, WinCE, RTOS QNX, Citrix, and Linux?
And let me guess.... you own a cable ready tv or vcr and you've never realized you don't need a set-top cable box (unless you have A/B channels).
You would want a 24 bit soundcard.... why? Because 24 is higher than 16? To play what? What mp3s are you going to find where that would matter? What level of encoding are you going to use where you'll be able to hear the difference between playback on a 16-bit versus 24-bit soundcard? MP3 is a lossy format, the bottleneck in quality will be in the mp3 files, not the sound card. Even the software you use to play back the mp3s will probably make a much bigger difference in the perceived sound quality than the 16/24 bit difference. Not all mp3 playing software is equal.
This is to be a component. It should function as reliably as your cd changer. 'May not be hugely reliable' pretty much rules out an OS that is to be used for a consumer electronics style interface. Particularly since there was to be a car version. What will you say when you crash your car because you were trying to play an mp3 when your os hung?
This is a box that you might stick on top of your 5x100 watt receiver in an enclosed space - do you want the os to be unreliable?
With anything on the back end :) What advantage does Java on the back end have over perl, tcl, python, php? Planning on moving your web app from platform to platform every week?
.Net? It has aspects of real brilliance, taking the best things about Java and extending them into areas that Sun didn't think of. Check out Dr. Dobb's Journal article on it: http://www.ddj.com/articles/2000/0075/0075k/0075k. htm.
I can see you're a big Java fan, it just never seemed sufficiently high level or sufficiently low-level to me.
If you're a fan of those aspects of Java that you say you are, what do you think of
Patents normally take a LONG time to be granted.
When was this applied for? That's what matters.
My company was 'locked into' microsoft technology from the very beginning. Like most are. Yes there are some Sun boxes for the web servers and databases, but people have PCs at their desks. That is NOT going to change. The only alternative to being locked into Microsoft technology for my company would be for my company to cease to exist as it does today.
You say they work flawlessly when you copy them? Tell me, are the boxes both running the Sun JVM? Would it work so flawlessly if one were using the Microsoft JVM? The same code won't run the same on different JVM's. So if you want the same code to work the same you need to do minor re-writes to accomodate the different JVM's. Or the alternative is only supporting one JVM, which it sounds like you do if this works flawlessly for you. Java is not the solution to the world's problems. It's C++ the way C++ should have been structured - but minus its speed.
why spend time coding for 3 platforms if it's only going to run on one? if your program is only going to run on a pc, there is no easier way to include a lot of windows functionality than to write in VB.
now of course it sucks that microsoft doesn't expose all those functions easily to outside languages, but c'est la microsoft.
No way.
If you want universal interoperability write a web app.
Java never lived up to this claim.
VB isn't VBScript. VBScript is a subset of Visual Basic for Applications.
.exe files :)
They're two separate issues, VBScripts are risky because of the way they're attached to emails, and there mainly because of Microsoft's default settings in Outlook.
What are you using VBScript for? You could probably port the code to a VB program. I think the only things VBScript has that aren't available in VB are the Execute and Eval functions. And you must add a reference to VBScript regular expressions if you want to use the RegExp object. Otherwise it would be a straight copy.
I think you're safe in assuming your IT department won't decide to universally block
If you're writing an app that will be used mainly on one type of computer, say a pc, write it for that first. And VB is very easy to use for pc apps.
If you NEED to write an app that's usable by any system, you need to write a web app. That's actually mainly what I do, but web apps are slow in comparison to any kind of compiled code, and are unsuitable for many business applications. But they use accepted standards, have a really long useful life, and can be accessed from Macs, Linux boxes, PCs, etc.
You say not to try to predict the future. Yet that's what you're knocking yourself for not doing. Oftentimes the stuff I write ends up not used, or being quickly abandoned because of changing business relationships. Or someone decides to rearchitect a whole department and the entire way of doing business changes. In those cases, programs are dropped or have to be re-written from scratch. Although if you have good stored procs and some good useful functions you can re-use those pieces. If your department has changed the way it does business, then yes the app needs to be rewritten. If you haven't changed the way you do business, why can't you make minor modifications?
What was your primary market? A technology department using it for complicated stuff? You say it's a large and involved program. VB is best suited for quick business apps, though it can extend somewhat. Did you make much use of ActiveX controls? To encapsulate functionality so you can use those pieces later? Or is it all in one giant main()? Writing 'components' in any language encourages code re-use. Writing monolithic blocks always discourages code re-use. I don't think the use of VB really affects that much.
Again, I feel that strongly typed object oriented programming leads to the problems you describe above. So does highly 'optimized' code. Basic, clear syntax works best, even when it's not the most efficient. Take Moore's law into account when you worry about efficiency or speed, the hardware guys will continue cranking up the numbers.
VB is quick to write, and quick to re-write. Same with perl, python, and tcl. Scripting builds on powerful components. Similarly, VB uses the powerful windows api functions that Microsoft exposes. Toss in an instance of IE. Toss in menu bars for file operations. Toss in a button to print. Powerful functions that are easily implemented by the coder.
What is doing it 'the right way'? Defining classes and inheritance? Overloading functions? No. The right way is to write simple code, well commented and documented that any schlub of a programmer can read and modify. Don't compactify 10 lines of code into one 'just because you can'. Optimize for maintainability first, not cleanliness or even speed. PCs are disposable, and after 20 - 30 months of use whatever box is running your code will be replaced with one that's twice as fast. Do you think you can make such a big speed difference in your code? Would the expense of making the effort be worth it to your company? I didn't used to think like this. But my co-worker and I have spent so much time reverse engineering the code of the crazy genius russian coder who used to work here that any advantages he thought he was getting in his ever further 'optimizing' the code were far outweighed by the costs. He did it 'right' the first time, and his code was highly optimized for the exact situation we faced at the time. Detangling the lists of arrays afterwards to make slight changes took soooo long.
I don't think short-term gains have to have long-term costs. A lot of apps are almost disposable. Again, this is from a very business oriented point of view. If I were doing advanced cryptography research I would not have this point of view. But business apps?
The thread started about vb, and people dissing vb as a programming language. vb means vb. if you want to talk about vb script, say vb script. clear enough?
'Leveraging' seems to many of us to be clear abuse of monopoly power. It isn't established in case law however. This is a big issue in their cases.
I'm talking about internal apps.
If you're already an employee, there are probably 100 ways you can steal from the company, crash machines, give out passwords etc.
VB is not for making programs to distribute outside of a company. I think it's not well suited for that at all, though I know some people do use it for that. It is a rapid application development tool for little custom jobs.
Let me be clear here. I'm talking about things that are determined by business logic, not technology, and where the business logic isn't going to change much. If the business logic changes, then yes there need to be changes to programs. So? VB isn't any worse than any other language to maintain, change, etc. Better than a lot like perl which has so much odd syntax relying on special variables. The syntax is very straightforward and the convention of naming variables intTotal, etc. is wonderful. Have many of you actually used VB in a small business environment? I agree with your statement, but I feel that quick and dirty VB apps meet those criteria much better than complicated C++/Java object oriented programs.
Small businesses often don't HAVE 5x to spend today. But if they can spend 1x today, they hope to have 10x in the near future. If you have one or two developers, their time is a precious commodity. In my experience, writing things 'the right way' is usually at best a waste of time and often very counterproductive. Learn to accept and love the kludgy hack. By the time you need to change a program your company may have been bought twice, and any resources spent on doing cool geek stuff would have been wasted. Code is just instructions to a machine. The goal has to be allowing people to get their job done, not to tell the machine what to do in a cool way. Scripting languages are good at this, and VB is good at this. As far as I can tell strongly typed object oriented languages are more suited to academia or super high tech companies than to a business environment. Have you ever written a custom web browser with built in database access (to check urls against a current partner list)? Integrated with the company standard Outlook email program? In 3 weeks? VB rocks. It's not what I mainly use, but I enjoy using it for what it's meant for.
linux or any *nix is only cheaper if your client is trained in how to use it. if your app will be used by data entry clerks, spending a lot of time training them in how to use a *nix is not cost justified.
this obviously needs to be factored into any discussion of 'expense'.
training is very expensive.
training our marketing people on linux would probably exceed the GNP by a fair margin.
give them their windows forms, it is honestly cheaper.
Professional programmers must meet the needs of their clients. Am I going to tell the marketing guys that I want to write the app they need to run only on *nix boxes? When they don't know what that is? Or am I going to give them VB forms and pop-up dialogues and a self-installing package?
Programmer-friendly doesn't really matter does it? Unless you're coding for fun.
It's a great tool for what it's meant for: rapid application development for small businesses where the software will be run on a windows pc and used by someone who wants to do all their work in windows forms. It's very very quick, and there are a lot of developers who know it. It's a good choice for internal company apps.
Some people have such glorified ideas of what a 'programmer' is. You give detailed instructions to a machine. If you spend a week writing beautiful code you cost your company 5x. If you spend a day writing ugly code you cost your company 1x. If both programs meet the functional requirements, the company that encourages spending one day will survive better. I have nothing against beautiful code, but I have nothing against utilitarian functional code either.
Information doesn't want to be free.
Information doesn't want anything.
People don't want to be free.
People don't want anything.
They are just bags of fluid, with chemicals moving around in the brain. Ascribing a motivation like 'want' is unwarranted.
What is your point? This is a poetic statement, a metaphor, not a scientific equation.
Constitutional basis for federal patent and copyright systems is to be found in the Constitution of the United States Article 1, Section 8, clause 8 which states:
... to promote the progress of science and useful arts by securing for limited times to authors and inventors the exclusive right to their respective writings and discoveries. "
... "
"Congress shall have power
Federal patent laws have existed since 1790. The first United States Patent Act, that of 1790 was a short act of seven sections only entitled "An act to promote the Progress of Useful Arts". Under its terms any two of the Secretary of State, the Secretary of War and the Attorney General were empowered to grant patents for terms of up to fourteen years for inventions that were "sufficiently useful and important" provided that the grantee submitted a specification describing the invention (and where appropriate a model thereof) to the Secretary of State at the time of the grant.
In 1793 this act was repealed and replaced by a slightly longer act, the drafting of which is largely attributed to Thomas Jefferson, who was at the time Secretary of State and therefore intimately involved in the administration of the 1790 Act. The Act is notable for its definition of what constitute patentable subject matter in the United States, which definition is almost unchanged up to now:
"any new and useful art, machine, manufacture or composition of matter and any new and useful improvement on any art, machine, manufacture or composition of matter."
In the same year the Supreme Court in Grant v. Raymond made it clear that failure to provide an adequate description of the invention was a ground under which a defendant might use when sued for patent infringement, it being held that
"as a preliminary to a patent a correct specification and description of the thing discovered (was required). This is necessary in order to give the public, after the privilege shall expire, the advantage for which the privilege is allowed and is the foundation of the power to issue the patent
A major review of the law was undertaken in 1836 in response to complaints about the grant of patents for things that lacked novelty. Under this revision the Patent Office was set up as part of the State Department and a specification had to be submitted to it and be examined for novelty before a patent would be granted. As a consequence of this provision of the 1793 Act requiring the inventor to distinguish his invention from the prior art was expanded upon to require the applicant to "particular specify and point out the part, improvement or combination, which he claims as his own invention or discovery".
Nowhere in there do I see anything about being designed to make money.
What I do see is that the Patent Office was set up to ENSURE sufficient novelty in those items submitted for patenting. If it fails in this IT IS FAILING IN THE ONE THING IT WAS DESIGNED TO DO!